]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
Merge from emacs-24
[gnu-emacs] / src / ChangeLog
index 7e1768e2cdaf4eaaf08f2190f31c6efda112985c..eb578278bea071d888824dc120b46d5248537719 100644 (file)
@@ -1,5 +1,370 @@
+2014-10-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
+       make a font_object from a tty frame (Bug#18573).
+       (Finternal_set_lisp_face_attribute): Add FIXME comment.
+
+2014-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_overlay): Assume that overlay boundaries are
+       always markers.  Add comment.
+       * lread.c (read_internal_start): Use convenient validate_subarray.
+       Adjust docstring.
+       (Fread_from_string): Adjust docstring.
+
+2014-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false.
+
+       * nsselect.m (ns-own-selection-internal, ns-disown-selection-internal):
+       Rename from the "x-" prefix.
+
+2014-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xselect.c (selection-converter-alist): Fix docstring.
+
+2014-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_spawnve): Avoid modification of the CMDNAME
+       argument passed by the caller, when we mirror all slashes into
+       backslashes.
+
+2014-10-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb):
+       Resurrect old code and fix compilation with GTK < 2.13.6.
+
+2014-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use AUTO_CONS instead of SCOPED_CONS, etc.
+       * frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER.
+       * lisp.h (AUTO_CONS): Rename from scoped_cons.
+       (AUTO_LIST1): Rename from scoped_list1.
+       (AUTO_LIST2): Rename from scoped_list2.
+       (AUTO_LIST3): Rename from scoped_list3.
+       (AUTO_LIST4): Rename from scoped_list4.
+       (AUTO_STRING): Rename from SCOPED_STRING.
+       * frame.h (AUTO_FRAME_ARG):
+       * lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3)
+       (AUTO_LIST4, AUTO_STRING):
+       Prepend a new argument 'name'.
+       Declare a variable instead of yielding a value.
+       All uses changed.
+       * lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros.
+
+2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (w32_createwindow): Accept an additional argument, an
+       array of 2 values specifying the coordinates of the frame's
+       top-left corner.  Use these values instead of calling x_get_arg,
+       which can cons Lisp objects, and therefore cannot be called except
+       from the main thread.  Remove redundant tests for the default
+       values.
+       (my_create_window): Move the calculation of the coordinates of the
+       frame's top-left edge here.  Pass them to the input thread via the
+       second parameter of the WM_EMACS_CREATEWINDOW message.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html
+       for the details.
+
+2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (cursor_row_fully_visible_p): Update commentary.
+       (redisplay_window): Treat the frame's frozen_window_starts flag
+       the same way as the optional_new_start flag for the window: only
+       obey it if the glyph row showing point will be fully visible.
+       Likewise when the window start is in a continuation line.  If,
+       after trying everything under the 'force_start' label, point is
+       still not fully visible, give up and scroll the window.  Add
+       debugging traces.  (Bug#18545)
+
+       * window.c (Frecenter): Set the window's redisplay flag.
+
+2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32term.c (w32_read_socket): Don't use frame dimensions for
+       resizing if GetClientRect returned an empty (0, 0, 0, 0)
+       rectangle.  Check the return value of GetClientRect, and don't use
+       the results if it didn't succeed.
+
+       * dispnew.c (change_frame_size_1): Recompute the frame dimensions
+       in columns and lines after correcting the pixel dimensions in
+       check_frame_size.
+       (adjust_decode_mode_spec_buffer): Add assertion to avoid passing
+       negative values to xrealloc.  (Bug#18528)
+
+2014-09-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c: Remove now-unnecessary check.
+       Suggested by Dmitry Antipov in:
+       http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00891.html
+
+       * xterm.c (x_term_init): Allocate temps on stack, not on heap.
+
+       * frame.c (x_set_frame_parameters): Port --enable-gcc-warnings
+       to Ubuntu 14.04.1 x86-64.
+
+       Simplify stack-allocated Lisp objects, and make them more portable.
+       The build_local_string macro was used in two ways: (1) string
+       literals for which scoped allocation suffices, and (2) file name
+       components, where it's not safe in general to assume bounded-size
+       ASCII data.  Simplify by defining a new macro SCOPED_STRING that
+       allocates a block-scope string, and by using SCOPED_STRING for (1)
+       and build_string for (2).  Furthermore, actually use stack
+       allocation only for objects known to have sufficient alignment.
+       This simpler implementation means Emacs can make
+       USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
+       GC_MAKE_GCPROS_NOOPS.
+       * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
+       for fewer differences among implementations.
+       (struct Lisp_String): Now GCALIGNED.
+       (USE_STACK_LISP_OBJECTS): Default to true, since the
+       implementation no longer insists on a nonempty GCALIGNED.
+       But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
+       (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
+       separately.  Move definiens to scoped_cons.  The old definition
+       was incorrect when GCALIGNED was defined to be empty.
+       (union Aligned_String): New type.
+       (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
+       implementation ports to compilers that don't align strictly enough.
+       Don't worry about the union sizes; it's not worth bothering about.
+       (scoped_cons, scoped_list1, scoped_list3, scoped_list4):
+       Rewrite using USE_STACK_CONS.
+       (scoped_cons): Assume the use of union Aligned_Cons.
+       (lisp_string_size, make_local_string, build_local_string): Remove.
+       Unless otherwise specified, all callers of build_local_string
+       changed to use SCOPED_STRING.
+       (SCOPED_STRING): New macro.
+       * data.c (wrong_choice):
+       * menu.c (single_menu_item):
+       * process.c (Fformat_network_address):
+       Hoist use of SCOPED_STRING out of a scope, so that its returned
+       object lives long enough.
+       * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
+       as the string might be long or might not be ASCII.
+
+2014-09-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * msdos.c (internal_terminal_init): Bump version to 25.
+
+2014-09-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Keep stack-allocated Lisp objects fast rather than versatile.
+       * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
+       (SCOPED_CONS_INITIALIZER): New macro.
+       (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
+       (USE_LOCAL_ALLOCA): Remove.
+       (local_cons, local_list1, local_list2, local_list3, local_list4):
+       Remove.  Stack overflow checking makes them too slow.
+       (make_local_vector): Likewise.  Also we just don't have enough
+       users for it.
+       (enum LISP_STRING_OVERHEAD): Remove.
+       (local_string_init, local_vector_init): Remove prototypes.
+       (make_local_string, build_local_string): Redesign to target short
+       compile-time string constants, fall back to regular string allocation
+       where appropriate.
+       (lisp_string_size): New function.
+       (verify_ascii) [ENABLE_CHECKING]: Add prototype.
+       * alloc.c (local_string_init, local_vector_init): Remove.
+       (verify_ascii) [ENABLE_CHECKING]: New function.
+       * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
+       * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
+       * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
+       * xselect.c, xterm.c: All related users changed.
+
+2014-09-28  Ken Brown  <kbrown@cornell.edu>
+
+       * sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.
+       * gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
+
+2014-09-27  Ken Brown  <kbrown@cornell.edu>
+
+       Fix implementation of HYBRID_MALLOC on Cygwin.
+       * sheap.c (bss_sbrk_buffer_end): Cast to void *.
+       (bss_sbrk_buffer_beg): New variable.  Use it...
+       * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
+       incorrect definition.
+
+2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (track-mouse): Rename to internal--track-mouse.
+       Make it into a function and change arg to be a function.
+
+       * lisp.mk (lisp): Add elisp-mode.elc.
+
+2014-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xfns.c (x_default_scroll_bar_color_parameter):
+       Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS,
+       to pacify --enable-gcc-warnings in non-scrollbar builds.
+
+2014-09-26  Ken Brown  <kbrown@cornell.edu>
+
+       * w32term.h (ALIGN_STACK): Fix the cpp condition.
+
+2014-09-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit
+       MinGW builds that use GCC before 4.2.
+
+       Default to stack objects on DOS_NT platforms as well.
+       * w32term.h (ALIGN_STACK) [__GNUC__]: Define to
+       __attribute__((force_align_arg_pointer)) for GCC 4.2 and later.
+
+       * lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition.
+
+       * w32proc.c (enum_locale_fn, enum_codepage_fn): Add the
+       ALIGN_STACK attribute.
+
+       * w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute.
+
+       * w32uniscribe.c (add_opentype_font_name_to_list): Add the
+       ALIGN_STACK attribute.
+
+       * w32font.c (add_font_name_to_list, add_font_entity_to_list)
+       (add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
+
+2014-09-25  Martin Rudalics  <rudalics@gmx.at>
+
+       * frame.c (frame_inhibit_resize):
+       * widget.c (EmacsFrameResize):
+       * window.c (resize_frame_windows, Fset_window_configuration):
+       * xdisp.c (expose_frame):
+       * xfns.c (x_change_tool_bar_height):
+       * xmenu.c (update_frame_menubar):
+       * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1):
+       Remove code left dead after 2014-07-27 changes.
+
+2014-09-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix local_cons etc. to not exhaust the stack when in a loop.
+       Problem reported in:
+       http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html
+       * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
+       * charset.c (load_charset_map_from_file, Ffind_charset_region)
+       (Ffind_charset_string):
+       * chartab.c (uniprop_encode_value_numeric, uniprop_table):
+       * data.c (wrong_range):
+       * editfns.c (Fpropertize, format2):
+       * emacs.c (init_cmdargs, decode_env_path):
+       * fileio.c (auto_save_error):
+       * fns.c (Fyes_or_no_p):
+       * font.c (font_style_to_value, font_parse_xlfd)
+       (font_parse_family_registry, font_delete_unmatched)
+       (font_add_log):
+       * fontset.c (Fset_fontset_font):
+       * frame.c (x_get_arg):
+       * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
+       (read_char_minibuf_menu_prompt):
+       * keymap.c (silly_event_symbol_error, describe_vector):
+       * lread.c (load_warn_old_style_backquotes):
+       * menu.c (single_menu_item):
+       * minibuf.c (Fread_buffer):
+       * process.c (status_message, Fformat_network_address)
+       (server_accept_connection):
+       * textprop.c (copy_text_properties):
+       * xdisp.c (Fcurrent_bidi_paragraph_direction):
+       * xfns.c (x_default_scroll_bar_color_parameter):
+       * xfont.c (xfont_open):
+       * xselect.c (x_clipboard_manager_error_1):
+       * xterm.c (x_term_init):
+       Put USE_LOCAL_ALLOCA at the start of the function.
+       * fns.c (maybe_resize_hash_table): Use build_string instead of
+       build_local_string, since we'd otherwise need a conditional
+       USE_LOCAL_ALLOCA here, but this is just debugging output and is
+       not worth the bother of optimization.
+       * font.c (font_delete_unmatched): Remove by-hand code that
+       observed MAX_ALLOCA limit, since it's now done automatically.
+       * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
+       since build_local_string needs its sa_alloc.
+       * lisp.h (lisp_word_count): New function.
+       (SAFE_ALLOCA_LISP): Use it.
+       (USE_LOCAL_ALLOCA): New macro.
+       (local_cons, make_local_vector, make_local_string):
+       Observe the MAX_ALLOCA limit.
+       (LISP_STRING_OVERHEAD): New constant.
+       (make_local_string): Use it.
+
+2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Default to stack objects on non-GNU/Linux, non-DOS_NT platforms.
+       * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true
+       if !defined DOS_NT && !defined GNU_LINUX.  I've tested this on AIX
+       and Solaris and it's likely to work on similar platforms.
+
+       Avoid signed integer overflow when converting Time to ptrdiff_t.
+       * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
+       New macros.
+       (position_to_Time, Time_to_position): New functions.
+       (gen_help_event, kbd_buffer_get_event): Use them.
+       * systime.h (Time) [emacs && !HAVE_X_WINDOWS]:
+       Go back to plain 'unsigned long', so that 'Time' is the same
+       for both X and non-X builds; this is less likely to cause surprise.
+       * termhooks.h: Remove compile-time check that Time and ptrdiff_t
+       are the same size; this is no longer required.
+
+       * keyboard.c (make_lispy_event): Avoid unnecessary tests
+       of bit 28 and of whether an unsigned value is negative.
+       This simplifies the code a bit, and pacifies clang 3.4.
+
+2014-09-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * systime.h (Time): Define as size_t, to be consistent with 64-bit
+       Windows builds, where 'long' is a 32-bit type.
+
+       * w32inevt.h (w32_console_mouse_position): Update the argument
+       types to use 'Time'.
+
+       * w32term.c (w32_mouse_position)
+       (x_horizontal_scroll_bar_report_motion)
+       (x_scroll_bar_report_motion): Update the argument types to use
+       'Time'.
+
+2014-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * termhooks.h (enum scroll_bar_part): Begin from 0 to allow...
+       (struct input_event): ...unsigned bitfields.  Likewise for
+       `event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
+       Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
+       * keyboard.c (gen_help_event, kbd_buffer_store_help_event)
+       (kbd_buffer_get_event): Adjust users.
+       (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
+       (make_scroll_bar_position): New function, refactored out of...
+       (make_lispy_event): ...adjusted user.
+       * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
+       * nsterm.m (ns_mouse_position, mouseUp):
+       * term.c (term_mouse_position):
+       * w32inevt.c (w32_console_mouse_position):
+       * w32term.c (w32_mouse_position):
+       * xterm.c (XTmouse_position): Use scroll_bar_above_handle.
+       (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
+       Prefer enum and explicit enum members to integers and numeric values.
+
+       * chartab.c (uniprop_encode_value_numeric):
+       * font.c (font_style_to_value): Use make_local_vector.
+       (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
+       * keymap.c (append_key): Use scoped_list1.
+
+       * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
+       && __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.
+
+2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some slow uses and misuses of strcat.
+       * doc.c (get_doc_string):
+       * gtkutil.c (get_utf8_string):
+       * xsmfns.c (x_session_initialize):
+       Avoid recomputation of string length.
+       * ftfont.c (ftfont_spec_pattern):
+       * xfns.c (xic_create_fontsetname):
+       Don't assume output buffer is initially zero.
+
 2014-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.
+       All callers changed.
+       * xterm.c (x_term_init): Use new functionality to avoid two needs
+       to compute a string length.
+
        * dispextern.h, xdisp.c (window_box_right_offset): Now static.
 
 2014-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
        * macfont.m (macfont_close): Release and free font-specific data
        only if it wasn't previously freed.
 
-2014-09-22  David Caldwell <david@porkrind.org> (tiny change)
+2014-09-22  David Caldwell <david@porkrind.org>  (tiny change)
 
        * unexmacosx.c (dump_it): Improve error message.
 
        * doc.c (store_function_docstring): Warn when we don't know where to
        put a docstring.
        (Fsubstitute_command_keys): Don't advertise the fact that
-       text-properties are dropped, since we think it's a bug that we'll fix
-       in 24.5.
+       text-properties are dropped, since we think it's a bug that we'll fix.
 
        * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
        * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
        * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
        scoped code (bug#11258).
 
-2013-08-28  Davor Cubranic  <cubranic@stat.ubc.ca> (tiny change)
+2013-08-28  Davor Cubranic  <cubranic@stat.ubc.ca>  (tiny change)
 
        * nsterm.m (last_window): New variable.
        (EV_TRAILER2): New macro.