-2015-02-03 Eli Zaretskii <eliz@gnu.org>
++2015-03-03 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (handle_stop, handle_single_display_spec)
+ (next-element_from_image): Don't reset the
+ ignore_overlay_strings_at_pos_p flag here.
+ (next_element_from_buffer): Reset ignore_overlay_strings_at_pos_p
+ here.
+ (next_overlay_string): Set ignore_overlay_strings_at_pos_p here,
+ after we've exhausted all the overlay strings at the current
+ position. (Bug#19307)
+
-2015-02-02 Eli Zaretskii <eliz@gnu.org>
++2015-03-03 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_iterator_to_next): Set value of stop_charpos
+ according to the object we are about to resume iterating.
+ (Bug#19307)
+
+ * dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag
+ of the window whose current glyph matrix was resized, which
+ disables the mode-line row as side effect.
+
+ * xdisp.c (redisplay_window): Don't avoid redisplay of a window
+ whose update_mode_line flag is set. (Bug#19721)
+
-2015-01-30 Eli Zaretskii <eliz@gnu.org>
++2015-03-03 Eli Zaretskii <eliz@gnu.org>
+
+ * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
+2015-03-03 Daniel Colascione <dancol@dancol.org>
-2015-01-29 Hans Wennborg <hwennborg@google.com> (tiny change)
-
- * emacs.c (decode_env_path): Add parentheses around ternary
- operator to increase readability and pacify compiler warnings.
+ * alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'.
-2015-01-29 Eli Zaretskii <eliz@gnu.org>
+2015-03-03 Paul Eggert <eggert@cs.ucla.edu>
- * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
- ready") to ENOENT.
+ * alloc.c (run_finalizers): Omit unused local.
+ Also, redo newly-added code as per usual Emacs style.
-2015-01-28 Eli Zaretskii <eliz@gnu.org>
+2015-03-03 Martin Rudalics <rudalics@gmx.at>
- * dired.c (directory_files_internal, file_name_completion)
- [WINDOWSNT]: Signal an error when errno is set non-zero by
- 'readdir', regardless of its value.
+ * frame.c (adjust_frame_size): If the pixel sizes remain
+ unchanged but the number of lines or columns of the frame
+ changes, run `window--pixel-to-total' (Bug#19972).
+ (Qwindow_pixel_to_total): DEFSYM it.
- * w32.c (sys_readdir): Set errno to ENOENT when the directory
- doesn't exist and to EACCES when it's not accessible to the
- current user. Set errno to zero when FindNextFile exhausts the
- directory, so that callers don't interpret that as an error and
- don't signal a file-error.
- (open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
+2015-03-03 Daniel Colascione <dancol@dancol.org>
-2015-01-27 Eli Zaretskii <eliz@gnu.org>
+ * print.c (print_object): Print whether a finalizer has
+ been called.
- * dired.c (directory_files_internal) [WINDOWSNT]: If readdir
- returns NULL and errno is ENOTDIR, behave as if opendir failed to
- open the directory. (Bug#19701)
+ * data.c (Ftype_of): Make `type-of' work with finalizers.
+ (syms_of_data): Register Qfinalizer.
- * w32.c (sys_readdir): If FindFirstFile fails because the
- directory doesn't exist, set errno to ENOTDIR.
+2015-03-02 Daniel Colascione <dancol@dancol.org>
-2015-01-24 Jan Djärv <jan.h.d@swipnet.se>
+ * print.c (print_object): Print finalizers.
- * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
+ * alloc.c:
+ (finalizers, doomed_finalizers): New variables.
+ (init_finalizer_list, finalizer_insert, unchain_finalizer)
+ (mark_finalizer_list, queue_doomed_finalizers)
+ (run_finalizer_handler, run_finalizer_function, run_finalizers):
+ New functions.
+ (garbage_collect_1, mark_object, sweep_misc)
+ (init_alloc_once, syms_of_alloc): Support finalizers.
+ (gc-precise-p): New Lisp variable.
-2015-01-21 Paul Eggert <eggert@cs.ucla.edu>
+ * lisp.h (Lisp_Misc_Type): New value Lisp_Misc_Finalizer.
+ (FINALIZERP, XFINALIZER): New functions.
+ (Lisp_Finalizer): New structure.
- Fix coding.c subscript error
- * coding.c (CODING_ISO_INVOKED_CHARSET):
- Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
+2015-02-28 Paul Eggert <eggert@cs.ucla.edu>
- Backport: correct old fix for GTK font selection
- * gtkutil.c (xg_get_font): Fix off-by-2 typo.
- Fixes: bug#3228
+ * character.c (alphabeticp, decimalnump): Avoid undefined behavior
+ if CATEGORY is not an integer, or is an integer out of
+ unicode_category_t range.
-2015-01-21 Jan Djärv <jan.h.d@swipnet.se>
+2015-02-28 Martin Rudalics <rudalics@gmx.at>
- * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
+ * frame.c (make_initial_frame, Fmake_terminal_frame): Set
+ can_x_set_window_size and after_make_frame (Bug#19962).
-2015-01-17 Eli Zaretskii <eliz@gnu.org>
+2015-02-28 Eli Zaretskii <eliz@gnu.org>
- * xdisp.c (produce_image_glyph): Fix display of images in R2L
- screen lines: prepend the new glyph to the ones already there
- instead of appending it.
+ * character.c (alphabeticp, decimalnump): New functions.
+ * character.h (alphabeticp, decimalnump): Add prototypes.
-2015-01-14 Eli Zaretskii <eliz@gnu.org>
+ * regex.c (ISALNUM, ISALPHA): Check Unicode character properties
+ for multibyte characters by calling alphabeticp and decimalnump.
+ (BIT_ALPHA, BIT_ALNUM): New bit masks.
+ (re_wctype_to_bit): Return them when the class is RECC_ALPHA or
+ RECC_ALNUM.
+ (re_match_2_internal): Call ISALPHA and ISALNUM when appropriate.
+ (Bug#19878)
- * w32fns.c (w32_set_title_bar_text): New function, including
- support for titles with non-ASCII characters outside of the
- current system codepage.
- (x_set_name, x_set_title): Use it. (Bug#19590)
+2015-02-27 Jan Djärv <jan.h.d@swipnet.se>
-2015-01-10 Eli Zaretskii <eliz@gnu.org>
+ * xterm.h (x_real_pos_and_offsets): Take outer_border as arg also.
- * indent.c (Fvertical_motion): Return zero if we started from ZV
- and there's an overlay after-string there. (Bug#19553)
+ * xmenu.c (x_menu_show): Adjust for new arg to x_real_pos_and_offsets.
-2015-01-09 Eli Zaretskii <eliz@gnu.org>
+ * xfns.c (x_real_pos_and_offsets): Take outer_border as arg also.
+ Initialize all args. Get outer_border from window attributes.
+ Fix typo for top_offset_y.
+ (x_real_positions): Adjust for new arg to x_real_pos_and_offsets.
+ (Fx_frame_geometry): Get outer_border also. Use attrs.width/height.
- * emacs.c (usage_message): Fix the description of the -nl switch.
- (Bug#19542)
+2015-02-27 Mark Laws <mdl@60hz.org>
-2015-01-08 Eli Zaretskii <eliz@gnu.org>
+ Support daemon mode on MS-Windows (bug#19688)
+ * emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
+ (main) [WINDOWSNT]: Initialize it to NULL. Create the event to
+ signal clients we are ready for connections.
+ (Fdaemon_initialized): Use DAEMON_RUNNING.
+ [WINDOWSNT]: MS-Windows specific code to signal clients we are
+ ready for connections.
- * dispnew.c (buffer_posn_from_coords): Fix the value of the column
- returned for right-to-left screen lines. (Before the change on
- 2014-12-30, the incorrectly-computed X pixel coordinate concealed
- this bug.)
+ * lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
+ MS-Windows conditions for running in daemon mode.
-2015-01-05 Eli Zaretskii <eliz@gnu.org>
+ * minibuf.c (read_minibuf): Use DAEMON_RUNNING.
- * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
- end information if the window_end_valid flag is unset.
- (try_window_id): If the call to display_line invalidated the
- window end information, give up the try_window_id optimization.
- (Bug#19511)
+ * keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
-2015-01-04 Eli Zaretskii <eliz@gnu.org>
+ * dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
+ even in daemon mode.
- * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
+2015-02-26 Jan Djärv <jan.h.d@swipnet.se>
- * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
+ * xmenu.c (create_and_show_popup_menu): Call XTranslateCoordinates,
+ dont use OUTER_TO_INNER macros.
+ (x_menu_show): Call x_real_pos_and_offsets, don't use
+ OUTER_TO_INNER macros.
- * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
- (Bug#19502)
+2015-02-26 Eli Zaretskii <eliz@gnu.org>
-2014-12-30 Eli Zaretskii <eliz@gnu.org>
+ * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
- * xdisp.c (pos_visible_p): Fix up the X coordinate for
- right-to-left screen lines. (Bug#19473)
+2015-02-26 Hans Wennborg <hwennborg@google.com> (tiny change)
-2014-12-28 Eli Zaretskii <eliz@gnu.org>
+ * emacs.c (decode_env_path): Add parentheses around ternary
+ operator to increase readability and pacify compiler warnings.
- * w32proc.c (Fw32_get_codepage_charset): Doc fix. (Bug#19458)
+2015-02-26 Eli Zaretskii <eliz@gnu.org>
-2014-12-28 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
+ * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
+ ready") to ENOENT.
- Port memory-full checking to GnuTLS 3.3
- Instead of using gnutls_global_set_mem_functions, check every call
- to a GnuTLS function that might return an indication of memory
- exhaustion. Suggested by Dmitry Antipov in:
- http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
- * gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
- (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
- (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
- All uses removed.
- (check_memory_full): New function.
- (emacs_gnutls_handshake, emacs_gnutls_handle_error)
- (gnutls_make_error, Fgnutls_boot): Use it.
- (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
+2015-02-26 Paul Eggert <eggert@cs.ucla.edu>
-2014-12-25 Eli Zaretskii <eliz@gnu.org>
+ * xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
- * xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
- composition_compute_stop_pos to the number of characters in the
- string. (Bug#19435)
- <GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
+2015-02-25 Jan Djärv <jan.h.d@swipnet.se>
- * composite.c (composition_compute_stop_pos): If no composition
- was found in a string before ENDPOS, and ENDPOS is the string end,
- no need to back up to a safe point.
+ * xterm.h (struct x_output): Remove x_pixels_outer_diff,
+ y_pixels_outer_diff, FRAME_OUTER_TO_INNER_DIFF_X,
+ FRAME_OUTER_TO_INNER_DIFF_Y. Declare x_real_pos_and_offsets.
- * dispextern.h (struct it) <end_charpos>: Improve commentary.
+ * xmenu.c (create_and_show_popup_menu): Use XTranslateCoordinates
+ instead of OUTER_TO_INNER_DIFF macros.
-2014-12-24 Jan Djärv <jan.h.d@swipnet.se>
+ * xfns.c (x_real_pos_and_offsets): New function, basically the code
+ from x_real_positions.
+ (x_real_positions): Call x_real_pos_and_offsets.
+ (x_relative_mouse_position): Use XTranslateCoordinates instead of
+ OUTER_TO_INNER_DIFF macros.
+ (Fx_frame_geometry): Get offsets with x_real_pos_and_offsets,
+ border from window attributes. Adjust tool bar and menu widths.
- * nsimage.m (allocInitFromFile:): Initialize bmRep.
- (dealloc): Release bmRep.
- (setPixmapData): Make bmRep local so class member is not
- set (Bug#19133).
- (setPixmapData): Rename local variable bmRep to avoid compiler
- warning.
+ * w32fns.c (x_real_positions): Remove setting of x_pixels_diff,
+ y_pixels_diff.
-2014-12-24 Jan Djärv <jan.h.d@swipnet.se>
+ * frame.h (struct frame): Remove x_pixels_diff, y_pixels_diff.
- * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
- imageListSetNext, imageListNext.
+2015-02-25 Paul Eggert <eggert@cs.ucla.edu>
- * nsimage.m (ImageList, imageListNext, imageListSetNext:)
- (reference): Remove.
- (allocInitFromFile:): Remove searching ImageList and calling
- reference (Bug#18918).
- (dealloc): Remove handling if ImageList.
+ Backtrace after malloc arena is corrupted
+ Without this change, if the malloc arena is corrupted and then
+ 'backtrace' is called, the backtrace can crash because 'backtrace'
+ calls 'malloc'. For more, please see:
+ https://sourceware.org/ml/libc-alpha/2015-02/msg00678.html
+ * emacs.c (main): Initialize tables used by 'backtrace'.
+ * sysdep.c (emacs_backtrace): Document the newly used part of the API.
-2014-12-22 Jan Djärv <jan.h.d@swipnet.se>
+2015-02-22 Jan Djärv <jan.h.d@swipnet.se>
- * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
- when going to fullscreen (Bug#19427).
+ * nsfns.m (Fx_frame_geometry): New function.
+ (syms_of_nsfns): Defsubr Sx_frame_geometry.
-2014-12-18 Eli Zaretskii <eliz@gnu.org>
+2015-02-22 Paul Eggert <eggert@cs.ucla.edu>
- * window.c (Fwindow_body_width): Doc fix. (Bug#19395)
+ Spelling fixes
+ * lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
+ Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS. All uses changed.
-2014-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
+2015-02-21 Eli Zaretskii <eliz@gnu.org>
- * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
+ * w32term.c (queue_notifications):
+ * w32inevt.c (handle_file_notifications):
+ * w32font.c (w32_enumfont_pattern_entity): Prefer 'Qfoo' to
+ 'intern ("foo")'.
-2014-12-13 Eli Zaretskii <eliz@gnu.org>
+2015-02-21 Paul Eggert <eggert@cs.ucla.edu>
- * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
+ Prefer 'Qfoo' to 'intern ("foo")'
+ * buffer.c (syms_of_buffer):
+ * bytecode.c (exec_byte_code):
+ * callint.c (Fcall_interactively):
+ * callproc.c (create_temp_file):
+ * charset.c (define_charset_internal):
+ * coding.c (syms_of_coding):
+ * editfns.c (syms_of_editfns):
+ * emacs.c (main):
+ * fns.c (syms_of_fns):
+ * frame.c (delete_frame, Fframe_parameters):
+ * keyboard.c (syms_of_keyboard):
+ * keymap.c (syms_of_keymap):
+ * minibuf.c (read_minibuf, syms_of_minibuf):
+ * nsfns.m (ns_cursor_type_to_lisp):
+ * textprop.c (syms_of_textprop):
+ * xdisp.c (Fformat_mode_line, syms_of_xdisp):
+ * xfns.c (x_create_tip_frame, Fx_select_font):
+ * xml.c (parse_region):
+ Prefer constants like 'Qfoo' to calls like 'intern ("foo")'.
+ * buffer.c (syms_of_buffer): OK to do (put 'erase-buffer 'disabled
+ t) here now ...
+ (keys_of_buffer): ... instead of here.
+ * ftfont.c (syms_of_ftfont): Move DEFSYM of Qmono from here ...
+ * xfns.c (syms_of_xfns): ... to here, since ftfont.c is more
+ optional than xfns.c.
-2014-12-12 Eli Zaretskii <eliz@gnu.org>
+2015-02-20 Jan Djärv <jan.h.d@swipnet.se>
- * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
- Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
- them only once.
+ * emacs.c (terminate_due_to_signal): Move totally_unblock_input after
+ setting fatal_error_in_progress, so gobble_input and *read_socket are
+ not read if there are pending_signals.
-2014-12-11 Teodor Zlatanov <tzz@lifelogs.com>
+2015-02-20 Paul Eggert <eggert@cs.ucla.edu>
- * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
+ Simplify binary I/O configuration
+ * lread.c (Fload): Prefer FOPEN_TEXT and FOPEN_BINARY to #ifdef DOS_NT.
+ * sysstdio.h: Add copyright notice. Include <fcntl.h>.
+ (FOPEN_BINARY, FOPEN_TEXT): New macros.
+ * xfaces.c (Fx_load_color_file): Use FOPEN_TEXT, since POSIX
+ doesn't guarantee that "t" will work.
- * gnutls.h: Always declare syms_of_gnutls.
+2015-02-19 Eli Zaretskii <eliz@gnu.org>
- * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
- clarity. Let the availability check return Qnil when the GnuTLS
- integration is not available, instead of erroring out.
- (Bug#19346)
+ * keyboard.c (read_char): Make sure this_single_command_key_start
+ is in sync with this_command_key_count, around the call to
+ input-method-function. (Bug#19774)
-2014-12-10 Eli Zaretskii <eliz@gnu.org>
+2015-02-19 Fujii Hironori <fujii.hironori@gmail.com> (tiny change)
- * xdisp.c (move_it_in_display_line_to, display_line):
- Don't disallow overflow-newline-into-fringe when word-wrap is in
- effect. (Bug#19300)
+ * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
+ message to DefWindowProc, after positioning the IME window, to
+ trigger its display. (Bug#11732)
-2014-12-04 Lee Duhem <lee.duhem@gmail.com> (tiny change)
+2015-02-18 Eli Zaretskii <eliz@gnu.org>
- * eval.c (Fsignal): Remove duplicate test.
- (Fautoload_do_load): Fix up docstring.
+ * emacs.c (Fkill_emacs): Exit with specified exit code even if
+ stdin is at EOF. (Bug#19897)
-2014-12-02 Jan Djärv <jan.h.d@swipnet.se>
+2015-02-18 Oscar Fuentes <ofv@wanadoo.es>
- * nsterm.m (represented_filename, represented_frame): New variables.
- (ns_set_represented_filename): New function.
- (sendEvent:): Set represented filename here to avoid flicker,
- related to Bug#18757.
+ * keyboard.c (read_char): When there is an input method function,
+ do not restore the echo area if a prefix argument is being
+ introduced. (Bug#19875)
- * nsterm.h: Declare ns_set_represented_filename.
+2015-02-16 Kelly Dean <kelly@prtime.org>
- * nsfns.m (ns_set_name_as_filename): Don't set represented filename
- at once, call ns_set_represented_filename instead.
+ * src/keyboard.c (timer_check_2): Fix incorrect comment.
-2014-11-27 Eli Zaretskii <eliz@gnu.org>
+2015-02-14 Martin Rudalics <rudalics@gmx.at>
- * xdisp.c (handle_single_display_spec): When ignoring a fringe
- bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
- (next_element_from_buffer): When done with overlays, reset the
- ignore_overlay_strings_at_pos_p flag. (Bug#19201)
+ * xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
+ Suggested by Alan Mackenzie <acm@muc.de>.
-2014-11-25 Eli Zaretskii <eliz@gnu.org>
+2015-02-14 Eli Zaretskii <eliz@gnu.org>
- * w32fns.c (Fw32_shell_execute): Convert forward slashes in
- DOCUMENT to backslashes, if DOCUMENT is a file. (Bug#19141)
+ * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
+ x_relative_mouse_position only for X frames. (Bug#19862)
-2014-11-25 Ulrich Müller <ulm@gentoo.org>
+2015-02-13 Paul Eggert <eggert@cs.ucla.edu>
- * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
- for paxctl and setfattr. Fixes temacs startup failure with
- grsecurity/PaX enabled Linux kernel (bug#19067).
+ Better support for future plugins
+ * lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
+ DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END. All uses changed.
+ (DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
-2014-11-17 Oscar Fuentes <ofv@wanadoo.es>
+2015-02-11 Martin Rudalics <rudalics@gmx.at>
- * src/w32.c: Use MINGW_W64 instead of _W64.
+ * w32term.c (w32_read_socket): In SIZE_MAXIMIZED and
+ SIZE_RESTORED cases correctly handle `maximized' value for the
+ `fullscreen' parameter. Don't use 'maximized' frame parameter
+ any more.
+ (w32fullscreen_hook): Include menu bar height when calculating
+ new text height in FULLSCREEN_BOTH case.
+ * xterm.c (do_ewmh_fullscreen): Handle transition from
+ FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when
+ x_frame_normalize_before_maximize is set.
+
+2015-02-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xdisp.c
+ * dispextern.h (display_prop_intangible_p, resize_mini_window)
+ (pixel_to_glyph_coords, mark_window_display_accurate)
+ (compute_display_string_pos, handle_tool_bar_click)
+ (x_intersect_rectangles, clear_mouse_face, display_tty_menu_item):
+ * lisp.h (setup_echo_area_for_printing, message_with_string)
+ (pos_visible_p): Use bool for boolean.
+ * xdisp.c: Use bool, true, false intstead of int, 1, 0.
+ Remove unnecessary forward decls.
+ (trace_move) [DEBUG_TRACE_MOVE]: Now static.
+ (CHECK_IT, CHECK_WINDOW_END):
+ Now an inline function that is always defined.
+ (check_it) [0]:
+ (check_window_end) [oGLYPH_DEBUG && ENABLE_CHECKING]:
+ Remove; no longer needed.
+ (handle_stop): Prefer (X && !Y) to (X ? !Y : 0).
+ (get_overlay_strings): Omit unnecessary casts.
+ (forward_to_next_line_start):
+ (Ftool_bar_height):
+ Prefer !BOOL to (BOOL ? 0 : 1).
+ (next_element_function): New typedef.
+ (get_next_element): Use it. Now const.
+ (IT_POS_VALID_AFTER_MOVE_P): Prefer !X || Y==0 to (X ? Y==0 : 1).
+ (vmessage): Now ATTRIBUTE_FORMAT_PRINTF (1, 0), to pacify GCC 4.9.2
+ (display_echo_area): Prefer BOOLEXPR to BOOLEXPR ? 1 : 0.
+ (tool_bar_item_info): Simplify.
+ (invisible_prop): Rename from invisible_p, since it doesn't
+ return bool. All callers changed.
+ (x_produce_glyphs): Simplify.
+
+2015-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Check for some overflows in vertical-motion
+ * indent.c (window_column_x): New function.
+ (Fvertical_motion): Use it to protect against integer overflow
+ when computing column. Prefer extract_float to doing things by hand.
+ Avoid unnecessary casts.
+
+ * xfont.c: Minor style fixes
+ (xfont_list_pattern): Reindent to 80 cols and use Emacs-style comments.
+ Redo loop so that less indentation is needed.
+
+2015-02-09 Eli Zaretskii <eliz@gnu.org>
+
+ * indent.c (Fvertical_motion): Accept an additional argument
+ CUR-COL and use it as the starting screen coordinate.
+ * window.c (window_scroll_line_based, Fmove_to_window_line): All
+ callers of vertical-motion changed.
+
+2015-02-09 Dima Kogan <dima@secretsauce.net>
+
+ * font.c (font_score): Remove unused variable assignment.
+
+2015-02-09 Dima Kogan <dima@secretsauce.net>
+
+ * xfaces.c (realize_basic_faces): Don't set Qscalable_fonts_allowed to
+ t.
+ * font.c (font_score): Try to find a font without scaling first,
+ and only accept scalable fonts if we did not get a match (Bug#19117).
+
+2015-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (syms_of_keyboard): Use non-nil default value.
+
+2015-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use C99's INFINITY and NAN macros
+ * lread.c: Include <math.h>.
+ (string_to_number): Use INFINITY and NAN rather than rolling our own.
+ This avoids some runtime diagnostics when building with
+ gcc -fsanitize=undefined.
+
+ Fix bidi_explicit_dir_char undefined behavior
+ * bidi.c (bidi_explicit_dir_char): Avoid subscript error when
+ argument is BIDI_EOB. This can happen in bidi_level_of_next_char.
+
+ Better distinguish infinite from invalid times
+ * editfns.c (check_time_validity): New function.
+ (decode_time_components): Return int, not bool.
+ Return -1 (not 0) if the time is out of range.
+ All callers changed.
+ (lisp_time_struct, lisp_seconds_argument): Distinguish better
+ between time overflow and invalid time values.
+
+2015-02-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor tweaks to frame_size_history_add
+ * frame.c (frame_size_history_add): Don't assume length fits in 'int'.
+ Prefer XCAR and XCDR to Fcar and Fcdr when the arg is a cons.
+ (Fframe_after_make_frame): Simplify.
+ * gtkutil.c: Remove commented-out code.
+ * xfns.c (Fx_create_frame): Fix indenting.
+
+2015-02-08 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.c (Fframe_parameter): Don't replace a non-nil value of
+ foreground-color or background-color parameters with a nil value.
+ (Bug#19802)
+
+2015-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * data.c (Findirect_function): Like `symbol-function', don't signal an
+ error for void functions any more.
+
+2015-02-07 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (frame_size_history_add): New function.
+ (frame_inhibit_resize): Consider frame_inhibit_implied_resize
+ only after frame's after_make_frame slot is true.
+ Inhibit resizing fullwidth-/height frames in one direction only.
+ Update frame_size_history.
+ (adjust_frame_size): Call frame_size_history_add.
+ (make_frame): Initalize after_make_frame slot.
+ (Fmake_terminal_frame): Adjust adjust_frame_size call.
+ (Fcan_run_window_configuration_change_hook): Rename to
+ Fframe_after_make_frame. Set after_make_frame slot.
+ Return second argument.
+ (x_set_frame_parameters): Postpone handling fullscreen parameter
+ until after width and height parameters have been set.
+ Apply width and height changes only if can_x_set_window_size is true.
+ Update frame_size_history.
+ (Qadjust_frame_size_1, Qadjust_frame_size_2)
+ (Qadjust_frame_size_3, QEmacsFrameResize, Qframe_inhibit_resize)
+ (Qx_set_fullscreen, Qx_check_fullscreen, Qx_set_window_size_1)
+ (Qxg_frame_resized, Qxg_frame_set_char_size_1)
+ (Qxg_frame_set_char_size_2, Qxg_frame_set_char_size_3)
+ (Qxg_change_toolbar_position, Qx_net_wm_state)
+ (Qx_handle_net_wm_state, Qtb_size_cb, Qupdate_frame_tool_bar)
+ (Qfree_frame_tool_bar): New symbol for updating frame_size_history.
+ (Qtip_frame, Qterminal_frame): New symbols.
+ (Vframe_adjust_size_history): Rename to frame_size_history.
+ * frame.h (struct frame):
+ Rename can_run_window_configuration_change_hook slot to
+ after_make_frame.
+ (frame_size_history_add): Extern.
+ * gtkutil.c (xg_frame_resized): Call frame_size_history_add.
+ Don't set FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT here.
+ (xg_frame_set_char_size): Try to preserve the status of
+ fullwidth/-height frames. Call frame_size_history_add.
+ (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
+ (xg_change_toolbar_position): Call frame_size_history_add.
+ * w32fns.c (x_change_tool_bar_height): Handle frame's fullscreen
+ status.
+ (Fx_create_frame): Process fullscreen parameter after frame has
+ been resized.
+ (x_create_tip_frame): Pass Qtip_frame to adjust_frame_size.
+ (Fx_frame_geometry): Don't pollute pure storage.
+ * w32term.c (w32_read_socket): For WM_WINDOWPOSCHANGED,
+ WM_ACTIVATE and WM_ACTIVATEAPP set frame's visibility before
+ calling w32fullscreen_hook. For WM_DISPLAYCHANGE call
+ w32fullscreen_hook immediately.
+ (x_fullscreen_adjust, x_check_fullscreen): Remove.
+ (w32fullscreen_hook): Call change_frame_size just as with a
+ "normal" frame resize operation. Call do_pending_window_change.
+ (x_set_window_size): Try to handle fullwidth and fullheight more
+ accurately. Don't rely on w32_enable_frame_resize_hack.
+ (w32_enable_frame_resize_hack): Remove variable.
+ * widget.c (EmacsFrameResize): Remove dead code.
+ Call frame_size_history_add
+ * window.c (run_window_configuration_change_hook):
+ Check f->after_make_frame instead of
+ f->can_run_window_configuration_change_hook.
+ * xfns.c (x_change_tool_bar_height): Handle frame's fullscreen status.
+ (Fx_create_frame): Process fullscreen parameter after frame has
+ been resized.
+ (Fx_frame_geometry): Don't pollute pure storage.
+ * xterm.c (x_net_wm_state, x_handle_net_wm_state):
+ Call frame_size_history_add.
+ (do_ewmh_fullscreen): Handle x_frame_normalize_before_maximize.
+ (x_check_fullscreen): Count in menubar when calling
+ XResizeWindow. Wait for ConfigureNotify event.
+ Call frame_size_history_add.
+ (x_set_window_size_1): Remove PIXELWISE argument. Try to handle
+ changing a fullheight frame's width or a fullwidth frame's
+ height. Call frame_size_history_add.
+ (x_set_window_size): Simplify xg_frame_set_char_size and
+ x_set_window_size_1 calls.
+ (x_frame_normalize_before_maximize): New variable.
+
+2015-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Remove no-longer-used cursor_in_echo_area code
+ * dispnew.c (set_window_cursor_after_update, update_frame_1):
+ Remove checks for negative cursor_in_echo_area, since this var is
+ a boolean, and has been a boolean for some time. Simplify.
+ * dispnew.c (init_display):
+ * xdisp.c (message3_nolog, vmessage): Use bool for boolean.
+
+2015-02-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Ffunction): Handle the new (:documentation ...) form.
+ (syms_of_eval): Declare `:documentation'.
+
+2015-02-05 Martin Rudalics <rudalics@gmx.at>
+
+ * xdisp.c (Fwindow_text_pixel_size): Remove optional BUFFER
+ argument added on 2015-02-01.
+
+2015-02-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Remove no-longer-used two_byte_p calculations
+ * dispextern.h (struct glyph_string): Remove member two_byte_p.
+ All uses removed.
+ * xdisp.c (get_glyph_face_and_encoding): Remove arg two_byte_p.
+ All callers changed.
- * src/w32term.c: Likewise.
+2015-02-03 Paul Eggert <eggert@cs.ucla.edu>
-2014-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
+ Omit unnecessary var if GTK or NS
+ * frame.c, frame.h (frame_default_tool_bar_height) [USE_GTK||HAVE_NS]:
+ Now a constant zero on these platforms.
- * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
+2015-02-01 Martin Rudalics <rudalics@gmx.at>
-2014-11-15 Jan Djärv <jan.h.d@swipnet.se>
+ * xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
- * nsterm.m (ns_send_appdefined): Check for application defined
- event on Cocoa (Bug#18993). Backport from trunk.
+2015-01-31 Eli Zaretskii <eliz@gnu.org>
-2014-11-15 Eli Zaretskii <eliz@gnu.org>
+ * coding.c (raw_text_coding_system_p): New function.
- * window.c (window_scroll_pixel_based): Avoid truncation/rounding
- errors in computing the number of pixels to scroll.
- Suggested by Kelly Dean <kelly@prtime.org>. (Bug#19060)
+ * keyboard.c (read_decoded_event_from_main_queue): Use it when the
+ keyboard coding-system is 'raw-text'. (Bug#19532)
-2014-11-15 Jan Djärv <jan.h.d@swipnet.se>
+ * coding.h (raw_text_coding_system_p): Add prototype.
- * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
- call updateFrameSize.
+2015-01-31 Andreas Schwab <schwab@linux-m68k.org>
- * nsterm.m (setFrame:): Remove call to display (Bug#18757).
+ * Makefile.in (gl-stamp): Generate globals.h through the use of
+ move-if-change.
+ (globals.h): Replace with empty command.
-2014-11-14 Jan Djärv <jan.h.d@swipnet.se>
+2015-01-31 Eli Zaretskii <eliz@gnu.org>
- * nsfns.m (x_set_foreground_color, x_set_background_color)
- (x_set_cursor_color, Fxw_color_values): Block/unblock input,
- use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
+ * keyboard.c (kbd_buffer_store_event_hold): Ignore FOCUS_OUT_EVENT
+ and ICONIFY_EVENT for the purposes of breaking while-no-input
+ loops. (Bug#19547)
-2014-11-09 Eli Zaretskii <eliz@gnu.org>
+ * dired.c (read_dirent): Correct the "MSDOS hacks" hack: the
+ special code for errno = ENOENT or EACCES is needed for WINDOWSNT,
+ not for MSDOS.
- * fileio.c (Finsert_file_contents): Invalidate buffer caches also
- when the inserted text does not need decoding. (Bug#18982)
+2015-01-31 Paul Eggert <eggert@cs.ucla.edu>
- * w32heap.c (allocate_heap): Set the lower limit of heap at 8MB.
- (Bug#18995)
+ Simplify read_dirent's MSDOS hacks
+ * dired.c (read_dirent): Simplify by removing the need for the
+ DIR_ENTRY argument. All callers changed. This separates the
+ MS-DOS idiosyncrasies better from the rest of the code.
-2014-11-09 Jan Djärv <jan.h.d@swipnet.se>
+2015-01-30 Eli Zaretskii <eliz@gnu.org>
- * nsterm.h (EmacsScroller): judge returns bool.
+ * dired.c (read_dirent): Accept an additional argument
+ FIRST_ENTRY. If readdir fails with ENOENT or EACCES the first
+ time it is called, report the error as if it happened in
+ open_directory.
+ (directory_files_internal, file_name_completion): Adjust callers
+ or read_dirent.
- * nsterm.m (ns_set_vertical_scroll_bar): Release bar.
- (ns_judge_scroll_bars): Only set removed if judge returns true.
- (judge): Returns bool == condemned. Remove self from window.
- (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
+2015-01-30 Paul Eggert <eggert@cs.ucla.edu>
-2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
+ Refactor calls to opendir for simplicity
+ * dired.c (open_directory): Accept Lisp_Object, not char *, for
+ dirname. Signal an error if the open fails. All callers changed.
- * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA.
- (run): Ditto. Only use non-system event loop if OSX version is
- exactly 10.9 (Bug#18993).
- (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
- needed (Bug#18757).
+2015-01-29 Paul Eggert <eggert@cs.ucla.edu>
-2014-11-07 Michael Albinus <michael.albinus@gmx.de>
+ Report readdir failures
+ Previously, on non-MS-Windows platforms the code treated most
+ readdir failures as EOF. This was incorrect, e.g., when readdir
+ fails with errno == EOVERFLOW. Signal an error instead.
+ * dired.c (read_dirent):
+ New function, which signals an error when readdir fails.
+ (directory_files_internal, file_name_completion): Use it.
- * callproc.c (encode_current_directory): Support handling of file
- names prepended by "/:". (Bug#18891)
+2015-01-29 Eli Zaretskii <eliz@gnu.org>
-2014-11-06 Alan Mackenzie <acm@muc.de>
+ Use bool for boolean in w32menu.c, w32font.c, w32uniscribe.c.
+ * w32uniscribe.c (uniscribe_list, uniscribe_match): Use bool where
+ appropriate.
- * syntax.c (back_comment): Fix off-by-one error (bug#18022).
+ * w32font.c (struct font_callback_data, w32font_list_internal)
+ (w32font_driver, w32font_match_internal): Use bool where appropriate.
-2014-11-06 Dima Kogan <dima@secretsauce.net>
+ * w32menu.c (x_activate_menubar, set_frame_menubar)
+ (w32_dialog_show, initialize_frame_menubar, w32_menu_show)
+ (is_simple_dialog): Use bool where appropriate.
- * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
+2015-01-28 Paul Eggert <eggert@cs.ucla.edu>
-2014-11-05 Michael Albinus <michael.albinus@gmx.de>
+ Use bool, not int, to track face changes
+ * xfaces.c (face_change): Rename from face_change_count, and
+ change from int to bool. The var is now true (instead of nonzero)
+ if attributes have changed; this is simpler. All uses changed.
+ (Bug#19698)
- * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
- raises an error. (Bug#18891)
+2015-01-28 Eli Zaretskii <eliz@gnu.org>
-2014-11-03 Eli Zaretskii <eliz@gnu.org>
+ * dired.c (directory_files_internal, file_name_completion)
+ [WINDOWSNT]: Signal an error when errno is set non-zero by
+ 'readdir', regardless of its value.
- * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
- (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
- frame; instead, print an error message.
+ * w32.c (sys_readdir): Set errno to ENOENT when the directory
+ doesn't exist and to EACCES when it's not accessible to the
+ current user. Set errno to zero when FindNextFile exhausts the
+ directory, so that callers don't interpret that as an error and
+ don't signal a file-error.
+ (open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
-2014-11-03 Jan Djärv <jan.h.d@swipnet.se>
+ * dired.c (directory_files_internal) [WINDOWSNT]: If readdir
+ returns NULL and errno is ENOTDIR, behave as if opendir failed to
+ open the directory. (Bug#19701)
- * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
+ * w32.c (sys_readdir): If FindFirstFile fails because the
+ directory doesn't exist, set errno to ENOTDIR.
-2014-10-31 Jan Djärv <jan.h.d@swipnet.se>
+2015-01-28 Jan Djärv <jan.h.d@swipnet.se>
- * macfont.m (macfont_glyph_extents): Turn off syntetic bold
- if force_integral_p (i.e. no antialias).
- (macfont_draw): Check ns_antialias_text, also turn off syntetic
- bold if no antialias (Bug#18876).
+ * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
- * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
- was given (Bug#18846).
+2015-01-28 Paul Eggert <eggert@cs.ucla.edu>
-2014-10-30 Jan Djärv <jan.h.d@swipnet.se>
+ Fix coding.c subscript error
+ * coding.c (CODING_ISO_INVOKED_CHARSET):
+ Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
- * nsterm.h (ns_set_doc_edited): Declare taking no args.
+2015-01-28 Eli Zaretskii <eliz@gnu.org>
- * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
- instead of in xdisp.c, function now takes void. (Bug#18884).
+ * xdisp.c (produce_image_glyph): Fix display of images in R2L
+ screen lines: prepend the new glyph to the ones already there
+ instead of appending it.
- * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
- (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
+ * w32fns.c (w32_set_title_bar_text): New function, including
+ support for titles with non-ASCII characters outside of the
+ current system codepage.
+ (x_set_name, x_set_title): Use it. (Bug#19590)
- * nsterm.h (EmacsScroller): Replace Lisp_Object win with
- struct window* (Bug#18889).
- Remove getMouseMotionPart.
- (ns_output): Make icon_top/left int.
+ * indent.c (Fvertical_motion): Return zero if we started from ZV
+ and there's an overlay after-string there. (Bug#19553)
- * nsfns.m (x_icon): icon_top/left is int.
+ * emacs.c (usage_message): Fix the description of the -nl switch.
+ (Bug#19542)
- * nsterm.m (ns_mouse_position): Remove unused code.
- (initFrame:window:, dealloc): Use window instead of win.
- (getMouseMotionPart:window:x:y:): Remove, unused.
- (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
+ * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
+ end information if the window_end_valid flag is unset.
+ (try_window_id): If the call to display_line invalidated the
+ window end information, give up the try_window_id optimization.
+ (Bug#19511)
-2014-10-30 Samuel Bronson <naesten@gmail.com>
+ * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
+ * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
- * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
+ * emacs.c (syms_of_emacs) <system-configuration>: Doc fix. (Bug#19502)
-2014-10-28 Eli Zaretskii <eliz@gnu.org>
+2015-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
- * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
- build_string, when importing a home directory. (Bug#18873)
+ * lisp.mk (lisp): Add cl-preloaded.
-2014-10-26 Eli Zaretskii <eliz@gnu.org>
+2015-01-27 Paul Eggert <eggert@cs.ucla.edu>
- * dispnew.c (buffer_posn_from_coords):
- Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
- account for the header-line height. (Bug#18839)
+ Use bool for boolean in xfaces.c
+ * dispextern.h: Adjust to signature changes.
+ * font.c (font_at, font_range):
+ * fontset.c (Finternal_char_font):
+ * fringe.c (draw_fringe_bitmap_1):
+ * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
+ (get_next_display_element, highlight_trailing_whitespace)
+ (display_string, calc_line_height_property)
+ (note_mode_line_or_margin_highlight, note_mouse_highlight):
+ * xfaces.c (tty_suppress_bold_inverse_default_colors_p)
+ (menu_face_changed_default, recompute_basic_faces)
+ (Fbitmap_spec_p, parse_rgb_list, tty_lookup_color)
+ (tty_defined_color, defined_color, face_color_gray_p)
+ (face_color_supported_p, load_color2, load_face_colors)
+ (Fx_list_fonts, LFACEP, push_named_merge_point)
+ (resolve_face_name, lface_from_face_name_no_resolve)
+ (lface_from_face_name, get_lface_attributes_no_remap)
+ (get_lface_attributes, lface_fully_specified_p)
+ (set_lface_from_font, merge_face_vectors, merge_named_face)
+ (merge_face_ref, Finternal_make_lisp_face)
+ (Finternal_lisp_face_p, Finternal_copy_lisp_face)
+ (Finternal_set_lisp_face_attribute)
+ (update_face_from_frame_parameter, set_font_frame_param)
+ (face_boolean_x_resource_value)
+ (Finternal_set_lisp_face_attribute_from_resource)
+ (x_update_menu_appearance, Finternal_get_lisp_face_attribute)
+ (Finternal_merge_in_global_face, Fface_font, face_attr_equal_p)
+ (lface_equal_p, Finternal_lisp_face_equal_p)
+ (Finternal_lisp_face_empty_p, lface_same_font_attributes_p)
+ (Fcolor_distance, lookup_named_face, lookup_basic_face)
+ (lookup_derived_face, Fface_attributes_as_vector)
+ (x_supports_face_attributes_p, tty_supports_face_attributes_p)
+ (Fdisplay_supports_face_attributes_p, realize_basic_faces)
+ (realize_default_face, realize_named_face)
+ (realize_non_ascii_face, realize_x_face, map_tty_color)
+ (realize_tty_face, compute_char_face, face_at_buffer_position)
+ (face_for_overlay_string, face_at_string_position):
+ Use bool for boolean.
+ * xfaces.c (set_lface_from_font):
+ Return void, since callers never use the result.
-2014-10-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+2015-01-26 Andreas Schwab <schwab@linux-m68k.org>
- * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
- [Backport]
- (erase_phys_cursor): Fix confusion between window-relative and
- text area-relative x-coordinates. [Backport]
+ * image.c (lookup_pixel_color): Reorder conditions that are
+ written backwards.
+ (x_to_xcolors): Likewise.
+ (x_detect_edges): Likewise.
+ (png_load_body): Likewise.
+ (gif_close): Likewise.
+ (gif_load): Likewise.
-2014-10-20 Glenn Morris <rgm@gnu.org>
+2015-01-25 Eli Zaretskii <eliz@gnu.org>
- * minibuf.c (history-length): Increase default from 30 to 100.
- [Backport]
+ Use bool for boolean in w32term.c
+ * w32term.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, x_after_update_window_line)
+ (x_set_glyph_string_gc, x_draw_glyph_string_background)
+ (x_draw_glyph_string_foreground)
+ (x_draw_composite_glyph_string_foreground)
+ (x_draw_glyphless_glyph_string_foreground)
+ (x_draw_image_glyph_string, x_draw_glyph_string)
+ (x_draw_stretch_glyph_string, note_mouse_movement)
+ (w32_mouse_position, x_scroll_bar_report_motion)
+ (x_horizontal_scroll_bar_report_motion, w32_read_socket)
+ (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
+ (w32_draw_window_cursor, x_new_font, x_set_offset)
+ (x_set_window_size, x_make_frame_invisible, x_iconify_frame):
+ Use bool where appropriate.
+
+ Use bool for boolean in w32fns.c
+ * w32fns.c (w32_defined_color, x_decode_color)
+ (Fxw_color_defined_p, Fxw_color_values, x_set_icon_type)
+ (x_set_menu_bar_lines, x_change_tool_bar_height)
+ (x_set_internal_border_width, x_explicitly_set_name)
+ (x_implicitly_set_name, Fx_create_frame, w32_window)
+ (x_create_tip_frame, Fx_show_tip): Use bool where appropriate.
+
+2015-01-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xfns.c
+ * xfaces.c (x_update_menu_appearance):
+ * xfns.c (x_real_positions, x_defined_color, x_decode_color)
+ (xg_set_icon, xg_set_icon_from_xpm_data, x_set_cursor_color)
+ (x_set_icon_type, x_set_icon_name, x_set_menu_bar_lines)
+ (x_change_tool_bar_height, x_set_internal_border_width)
+ (x_encode_text, x_set_name_internal, x_explicitly_set_name)
+ (x_implicitly_set_name, x_default_scroll_bar_color_parameter)
+ (hack_wm_protocols, xic_create_fontsetname, xic_free_xfontset)
+ (x_window, x_icon, Fx_wm_set_size_hint, Fx_create_frame)
+ (Fxw_color_defined_p, Fxw_color_values, x_create_tip_frame)
+ (Fx_show_tip, clean_up_file_dialog, Fx_file_dialog)
+ (clean_up_dialog, syms_of_xfns):
+ * xterm.h (xg_set_icon, xg_set_icon_from_xpm_data)
+ (xic_create_fontsetname):
+ Use bool for boolean.
+ * xfns.c: Include bitmaps/gray.xbm unconditionally.
+
+ Count MANY function args more reliably
+ * alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
+ * buffer.c (Fbuffer_list, Fkill_buffer):
+ * callint.c (read_file_name, Fcall_interactively):
+ * charset.c (Fset_charset_priority, syms_of_charset):
+ * chartab.c (uniprop_encode_value_numeric):
+ * coding.c (syms_of_coding):
+ * composite.c (syms_of_composite):
+ * data.c (wrong_range):
+ * dbusbind.c (syms_of_dbusbind):
+ * dired.c (file_attributes):
+ * editfns.c (Fdecode_time, update_buffer_properties, format2):
+ * eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
+ (call4, call5, call6, call7):
+ * fileio.c (Finsert_file_contents, choose_write_coding_system)
+ (Fcar_less_than_car, build_annotations, auto_save_error):
+ * filelock.c (get_boot_time):
+ * fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
+ (maybe_resize_hash_table, secure_hash):
+ * font.c (font_style_to_value, font_open_by_name, Flist_fonts):
+ * fontset.c (fontset_add, Fset_fontset_font):
+ * ftfont.c (ftfont_lookup_cache):
+ * gtkutil.c (xg_get_font):
+ * insdel.c (signal_before_change, signal_after_change):
+ * keymap.c (append_key):
+ * lread.c (load_warn_old_style_backquotes, Fload, init_lread):
+ * minibuf.c (Fread_buffer):
+ * print.c (print_preprocess):
+ * process.c (Fformat_network_address, Fmake_network_process)
+ (server_accept_connection):
+ * sound.c (Fplay_sound_internal):
+ * term.c (Fsuspend_tty, Fresume_tty):
+ * window.c (window_list):
+ * xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
+ (message_with_string):
+ * xfaces.c (Fx_list_fonts):
+ * xfont.c (syms_of_xfont):
+ * xselect.c (x_handle_selection_request)
+ (x_handle_selection_clear, x_clear_frame_selections)
+ (x_clipboard_manager_error_1):
+ Prefer CALLMANY and CALLN to counting args by hand.
+ * doc.c (reread_doc_file): Remove unused code.
+ * fns.c (concat2, concat3): Redo to avoid need for local-var vector.
+ (cmpfn_user_defined, hashfn_user_defined, Fmaphash):
+ Prefer call1 and call2 to Ffuncall.
+ * keyboard.c (safe_run_hook_funcall, safe_run_hooks):
+ Use struct literal rather than a local var, for simplicity.
+ * keymap.c (where_is_internal): Use NULL rather than a pointer
+ to unused args.
+ * lisp.h (CALLMANY, CALLN): New macros.
+ * sound.c (Fplay_sound_internal): Coalesce duplicate code.
+ Fixes: bug#19634
+
+ Use gnustep-config if available
+ * emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
+ It doesn't appear to be needed, and the inclusion breaks on
+ Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
+
+2015-01-22 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (init_iterator): Restore a comment lost in transition.
+
+2015-01-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xfont.c, xftfont.c, xgselect.c
+ * xfont.c (xfont_driver, xfont_chars_supported)
+ (xfont_text_extents):
+ * xftfont.c (xftfont_get_colors, xftfont_open)
+ (xftfont_prepare_face, xftfont_done_face)
+ (xftfont_cached_font_ok):
+ * xgselect.c (xg_select):
+ Use bool for boolean.
+
+ Don't downcase system diagnostics' first letters
+ * fileio.c (report_file_errno): Don't downcase, and simplify.
+ Fixes: bug#19642
+
+ Isolate NIL_IS_ZERO-assuming code better
+ Suggested by Stefan Monnier in:
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
+ * alloc.c (allocate_pseudovector):
+ Use memclear, not memsetnil, to remove a 'verify'.
+ * callint.c (Fcall_interactively):
+ * dispnew.c (realloc_glyph_pool):
+ * xdisp.c (init_iterator):
+ Use memclear, not memset, to remove a 'verify'.
+ * lisp.h (memclear): Rename from memsetnil, and take a byte
+ count rather than a word count. All callers changed.
+
+2015-01-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Undo port to hypothetical nonzero Qnil case
+ This mostly undoes the previous change in this area. See:
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00570.html
+ * alloc.c (allocate_pseudovector):
+ * callint.c (Fcall_interactively):
+ * dispnew.c (realloc_glyph_pool):
+ * fringe.c (init_fringe):
+ * lisp.h (memsetnil):
+ * xdisp.c (init_iterator):
+ Simplify by assuming that Qnil is zero, but verify the assumption.
+ * lisp.h (NIL_IS_ZERO): Revert back to this symbol, removing
+ NIL_IS_NONZERO. All uses changed.
+
+2015-01-20 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
+
+2015-01-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Prefer xlispstrdup to avoid dumb calls to strlen.
+ * nsfont.m (ns_get_family):
+ * nsterm.m (ns_term_init):
+ * w32fns.c (w32_window):
+ * xfns.c (x_window, Fx_select_font): Use xlispstrdup.
+
+2015-01-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ Correct an old fix for GTK font selection
+ * gtkutil.c (xg_get_font): Fix off-by-2 typo.
+ Fixes: bug#3228
+
+ Fix minor bugs with printing null bytes
+ * minibuf.c (read_minibuf_noninteractive):
+ * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]:
+ Work even if the Lisp string contains a null byte.
+
+ Port to hypothetical case where Qnil is nonzero
+ * alloc.c (allocate_pseudovector):
+ * callint.c (Fcall_interactively):
+ * coding.c (syms_of_coding):
+ * dispnew.c (realloc_glyph_pool):
+ * fringe.c (init_fringe):
+ * lisp.h (memsetnil):
+ * xdisp.c (init_iterator):
+ Port to the currently-hypothetical case where Qnil is nonzero.
+ * dispnew.c (adjust_glyph_matrix): Remove unnecessary verification,
+ as there are no Lisp_Object values in the data here.
+ * lisp.h (NIL_IS_NONZERO): New symbol, replacing NIL_IS_ZERO.
+ All uses changed. Define only if not already defined, so that one
+ can debug with -DNIL_IS_NONZERO.
+ * xdisp.c (init_iterator): Remove unnecessary initializations to 0.
+
+2015-01-19 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool): Verify that
+ Qnil is represented as zero, before using that to initialize parts
+ of the glyph structure.
+
+ * xdisp.c (init_iterator): Verify that Qnil is represented as
+ zero, before using that to initialize parts of the iterator
+ structure.
+
+2015-01-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ Prefer memset to repeatedly assigning Qnil
+ * alloc.c (allocate_pseudovector): Catch more bogus values.
+ * alloc.c (allocate_pseudovector):
+ * callint.c (Fcall_interactively):
+ * coding.c (syms_of_coding):
+ * fringe.c (init_fringe):
+ Verify that Qnil == 0.
+ * callint.c (Fcall_interactively):
+ * eval.c (Fapply, Ffuncall):
+ * fns.c (mapcar1, larger_vector):
+ * font.c (font_expand_wildcards):
+ * fringe.c (init_fringe):
+ Prefer memset to assigning zeros by hand.
+ * callint.c (Fcall_interactively):
+ Remove duplicate assignment of Qnil to args[i].
+ * coding.c (syms_of_coding):
+ Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
+ * fileio.c (Ffile_selinux_context):
+ Rewrite to avoid need for Lisp_Object array.
+ * lisp.h (XLI_BUILTIN_LISPSYM): New macro.
+ (DEFINE_LISP_SYMBOL_END): Use it.
+ (NIL_IS_ZERO): New constant.
+ (memsetnil): New function.
+
+2015-01-16 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Tune pseudovector allocation assuming Qnil == 0.
+ * alloc.c (allocate_pseudovector): Use memset for both
+ Lisp_Objects and regular slots. Add zerolen arg.
+ * lisp.h (allocate_pseudovector): Adjust prototype.
+ (ALLOCATE_PSEUDOVECTOR): Adjust user.
+ (ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
+ (allocate_hash_table, allocate_window, allocate_frame)
+ (allocate_process, allocate_terminal): Remove prototypes.
+ * fns.c (allocate_hash_table): Now static here.
+ * frame.c (allocate_frame):
+ * process.c (allocate_process):
+ * terminal.c (allocate_terminal):
+ * window.c (allocate_window): Now static here.
+ Use ALLOCATE_ZEROED_PSEUDOVECTOR. Add comment.
+
+ * lisp.h (XTERMINAL): Add eassert.
+ * process.c (make_lisp_proc): Now static here.
+
+ Prefer INLINE functions in font.h to match style used in lisp.h.
+ * font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
+ (CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
+ (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
+ Now functions.
+ * font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
+ * ftfont.c (ftfont_shape):
+ * macfont.m (macfont_shape):
+ * w32uniscribe.c (uniscribe_shape):
+ * xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.
+
+2015-01-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Give up on -Wsuggest-attribute=const
+ * decompress.c (Fzlib_available_p):
+ * gnutls.c (Fgnutls_available_p):
+ * gtkutil.h (xg_uses_old_file_dialog):
+ * xdisp.c (Ftool_bar_height):
+ * xmenu.c (popup_activated):
+ No longer const, since it's not const on at lest some
+ configurations, and we shouldn't lie to the compiler.
+
+2015-01-15 Eli Zaretskii <eliz@gnu.org>
+
+ * fileio.c: Include binary-io.h.
+ (Fset_binary_mode): New function.
+ (syms_of_fileio): Defsubr it.
+ (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
+
+2015-01-15 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
+ (Fgnutls_peer_status): Use it to set the :self-signed flag.
+ Rename the previous :self-signed to :unknown-ca. (Bug#19404)
+ (Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
+
+2015-01-14 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
+ when FLAGS indicate the item is not highlighted. (Bug#19596)
+
+2015-01-14 Martin Rudalics <rudalics@gmx.at>
+
+ * xmenu.c (update_frame_menubar): Remove garbaged code.
+
+2015-01-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ remove_slash_colon need not be inline
+ * process.c, process.h (remove_slash_colon): No longer inline.
+ This saves text bytes without hurting runtime performance.
+
+2015-01-14 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid extra multibyteness check in ENCODE_FILE users.
+ * callproc.c (encode_current_directory, Fcall_process, call_process):
+ * dired.c (directory_files_internal, file_name_completion):
+ Do not check for STRING_MULTIBYTE because encode_file_name
+ is a no-op for unibyte strings.
+
+ * process.h (remove_slash_colon): New function.
+ * callproc.c (encode_current_directory, call_process):
+ * process.c (Fstart_process): Use it.
+
+ Consistently handle time zone specification.
+ * editfns.c (decode_time_zone): New function, refactored out from ...
+ (Fencode_time): ... adjusted user.
+ (Fset_time_zone_rule): Use decode_time_zone.
+
+ * editfns.c (make_buffer_string_both): If requested range intersects
+ the gap, don't move the latter but copy in two regions, thus avoiding
+ unnecessary relocation of buffer data.
+
+2015-01-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xmenu.c, xml.c
+ * xmenu.c (x_menu_set_in_use, popup_get_selection)
+ (Fx_menu_bar_open_internal, popup_widget_loop)
+ (x_activate_menubar, xg_crazy_callback_abort)
+ (update_frame_menubar, set_frame_menubar)
+ (initialize_frame_menubar, free_frame_menubar)
+ (create_and_show_popup_menu, x_menu_show)
+ (create_and_show_dialog, x_dialog_show):
+ * xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
+ (Flibxml_parse_html_region, Flibxml_parse_xml_region):
+ * xrdb.c (main) [TESTRM]:
+ * xsettings.c (init_gsettings):
+ * xterm.c (XFillRectangle, xg_scroll_callback)
+ (xg_end_scroll_callback):
+ * xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
+ Use bool for boolean.
+ * xmenu.c (TRUE): Remove; no longer used.
+ (show_help_event): Remove long-unused code.
+ (set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.
+
+2015-01-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't say Fnext_read_file_uses_dialog_p is const
+ It's const only if a windowing system is not used; don't say it's
+ const otherwise. See:
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00310.html
+ * fileio.c (next_read_file_uses_dialog_p): Remove.
+ Move guts back to ...
+ (Fnext_read_file_uses_dialog_p): ... here.
+ Don't declare as const, as make-docfile.c now has a special case
+ for this function. This is an ugly hack, but it's better than
+ lying to the compiler.
+
+ Remove now-unnecessary forward XTYPE decl
+ * lisp.h (XTYPE): Remove forward declaration. The recent merge
+ from emacs-24 fixed the problem in a better way, by moving XPNTR's
+ definition to after XTYPE's.
+
+2015-01-13 Eli Zaretskii <eliz@gnu.org>
+
+ Fix problems with 32-bit wide-int build exposed by MinGW.
+ * lisp.h (XPNTR): Move definition to after XTYPE, to avoid
+ compilation error in an unoptimized build when !USE_LSB_TAG.
+
+ * w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
+ same larger value as for the 64-bit build.
+
+ * w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
+ avoid compiler warnings.
+
+ * w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
+ Avoid compiler warnings about cast from integer to pointer of
+ different size.
+
+ * w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
+ UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
+ casting from integer to pointer of different size.
+ (add_menu_item): Pass the help-echo string as a pointer to
+ Lisp_String, not as a Lisp_Object.
+ (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
+ string object from its C pointer.
+
+ * w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
+ make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
+ C pointer.
+ <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
+ (Fx_create_frame): Type-cast the result of XFASTINT to avoild
+ compiler warnings about size differences.
+ (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
+ pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
+ (Fw32_toggle_lock_key): Pass the new state of the key as a C
+ integer; use -1 for nil. Doc fix.
+
+ * .gdbinit (xgetsym): New subroutine.
+ (xsymname, xsymbol): Use it.
+ (xprintsym): No need to call xgetptr.
+
+2015-01-13 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (adjust_frame_size): Make sure new numbers of
+ lines/columns get installed after font size change (Bug#19575).
+
+2015-01-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Add DEFUN attributes.
+ * callint.c (Finteractive):
+ * character.c (Fcharacterp, Fmax_char):
+ * data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
+ (Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
+ (Ffloatp, Fbyteorder):
+ * decompress.c (Fzlib_available_p):
+ * fns.c (Fidentity):
+ * frame.c (Fframe_windows_min_size):
+ * gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
+ * window.c (Fwindow__sanitize_window_sizes):
+ * xdisp.c (Ftool_bar_height):
+ * xfaces.c (Fface_attribute_relative_p): Add const attribute.
+ * emacs.c (Fkill_emacs):
+ * eval.c (Fthrow):
+ * keyboard.c (Ftop_level, Fexit_recursive_edit)
+ (Fabor_recursive_edit): Add noreturn attribute.
+
+ * search.c (fast_string_match_internal): New function,
+ consolidated from...
+ (fast_string_match, fast_string_match_ignore_case): ...functions
+ which are...
+ * lisp.h (fast_string_match, fast_string_match_ignore_case):
+ inlined from here now.
+ (fast_string_match_internal): Add prototype.
+ * dired.c (file_name_completion): Use fast_string_match_internal.
+
+ * fileio.c (next_read_file_uses_dialog_p): New workaround ...
+ (Fnext_read_file_uses_dialog_p): ... called from here to avoid
+ ATTRIBUTE_CONST dependency from #ifdefs. For details, see
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00289.html.
+
+2015-01-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to 32-bit MingGW --with-wide-int
+ Problem reported by Eli Zaretskii in:
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00265.html
+ * lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
+ what we think it is, rather than checking only its alignment (and
+ doing so incorrectly on MinGW).
+
+2015-01-12 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
+ Remove dead NILP check.
+ * image.c (Flookup_image): Use regular format for docstring.
+ * keyboard.c (apply_modifiers_uncached): Use stpcpy.
+
+2015-01-12 Martin Rudalics <rudalics@gmx.at>
+
+ * dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
+ adjust_frame_size.
+ * frame.c (frame_default_tool_bar_height): New variable.
+ (adjust_frame_size): Possibly add requested adjustment to
+ Vframe_adjust_size_history.
+ (make_frame): Initialize tool_bar_redisplayed_once slot.
+ (Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
+ doc-string. Call adjust_frame_size unconditionally (the frame's
+ text size may remain unaltered but the pixel size may change).
+ (x_figure_window_size): If frame_default_tool_bar_height was
+ set, use it instead of calculating the tool bar height from
+ DEFAULT_TOOL_BAR_IMAGE_HEIGHT. Don't set
+ Vframe_initial_frame_tool_bar_height.
+ (Qchange_frame_size, Qxg_frame_set_char_size)
+ (Qset_window_configuration, Qx_create_frame_1)
+ (Qx_create_frame_2): New symbols.
+ (Vframe_initial_frame_tool_bar_height): Remove.
+ (Vframe_adjust_size_history): New history variable for debugging
+ frame size adjustments.
+ * frame.h (struct frame): New boolean slot
+ tool_bar_redisplayed_once.
+ (frame_default_tool_bar_height): Extern.
+ * gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
+ to adjust_frame_size.
+ * nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
+ Qx_create_frame_2 to adjust_frame_size.
+ * w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
+ inhibit 1 when we have not redisplayed the tool bar yet.
+ (Fx_create_frame): Pass Pass Qx_create_frame_1 and
+ Qx_create_frame_2 to adjust_frame_size.
+ * w32menu.c (set_frame_menubar): Simplify adjust_frame_size
+ call.
+ * window.c (Fset_window_configuration):
+ Pass Qset_window_configuration to adjust_frame_size.
+ * xdisp.c (redisplay_tool_bar): Assign new height to
+ frame_default_tool_bar_height.
+ (redisplay_internal): If we haven't redisplayed this frame's
+ tool bar, call redisplay_tool_bar early so we can adjust the
+ frame size accordingly.
+ * xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
+ inhibit 1 when we have not redisplayed the tool bar yet.
+ (Fx_create_frame): Pass Pass Qx_create_frame_1 and
+ Qx_create_frame_2 to adjust_frame_size.
+
+2015-01-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Have 'make' output better GEN names
+ * Makefile.in (gl-stamp, globals.h): Simplify by putting the new
+ contents of globals.h into gl-stamp. This lets us use AM_V_GEN
+ more naturally so that 'make' can output more-accurate names.
+
+2015-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * buffer.c (init_buffer_once): Initialize buffer_local_flags before
+ calling reset_buffer_local_variables, and make sure we initialize
+ it completely.
+
+2015-01-11 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * coding.c (Fcoding_system_plist): Use common style for docstring.
+
+2015-01-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to MSB hosts without optimization
+ E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
+ the inline function XTYPE needs to be declared before being used.
+ * lisp.h (XTYPE): New forward declaration.
+
+2015-01-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to 32-bit --with-wide-int
+ Prefer symbol indexes to struct Lisp_Symbol * casted and then
+ widened, as the latter had trouble with GCC on Fedora 21 when
+ configured --with-wide-int and when used in static initializers.
+ * alloc.c (garbage_collect_1, which_symbols):
+ * lread.c (init_obarray):
+ Prefer builtin_lisp_symbol when it can be used.
+ * dispextern.h (struct image_type.type):
+ * font.c (font_property_table.key):
+ * frame.c (struct frame_parm_table.sym):
+ * keyboard.c (scroll_bar_parts, struct event_head):
+ * xdisp.c (struct props.name):
+ Use the index of a builtin symbol rather than its address.
+ All uses changed.
+ * lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
+ (TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
+ symbol indexes rather than pointers, and which work better on MSB
+ hosts because they shift right before tagging. All uses changed.
+ (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
+ No longer noops on wide-int hosts, since they work now.
+ (builtin_lisp_symbol): New function.
+
+ Port to HAVE_FREETYPE && !HAVE_XFT
+ * dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
+ * font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
+ Declare in this case too.
+
+2015-01-10 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
+
+ * w32notify.c (Fw32notify_add_watch, w32_get_watch_object):
+ Use make_pointer_integer instead of XIL.
+ (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
+
+ * w32inevt.c (handle_file_notifications): Use make_pointer_integer
+ instead of XIL. Put a list of the descriptor, action, and file
+ name in event->arg, instead of spreading them between event->code
+ and event->arg.
+
+ * w32term.c (queue_notifications): Use make_pointer_integer
+ instead of XIL. Put a list of the descriptor, action, and file
+ name in event->arg, instead of spreading them between event->code
+ and event->arg.
+
+ * keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
+ event creation to changes in w32term.c and w32inevt.c above.
+
+2015-01-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port Qnil==0 changes to 32-bit --with-wide-int
+ * lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
+ macro-implemented version. For the non-USE_LSB_TAG case, supply
+ a new inline function that is the inverse of the new TAG_SYMPTR.
+ (lisp_h_XUNTAGBASE, XUNTAGBASE): Remove. All uses removed.
+ (TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
+ negative number, don't allow sign bits to bleed into the encoded
+ value. Shift in zero bits instead.
+
+ Refactor pointer-to-integer conversion
+ * gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
+ Rename and move to lisp.h. All uses changed.
+ * lisp.h (XINTPTR, make_pointer_integer): New inline functions,
+ which are renamed from gfilenotify.c's lisp_to_monitor and
+ monitor_to_lisp, and with more-generic void * signatures.
+
+2015-01-08 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords): Fix the value of the column
+ returned for right-to-left screen lines. (Before the change on
+ 2014-12-30, the incorrectly-computed X pixel coordinate concealed
+ this bug.)
+
+ * .gdbinit (xsymname): New subroutine.
+ (xprintsym, initial-tbreak): Use it to access the name of a symbol
+ in a way that doesn't cause GDB to barf when it tries to
+ dereference a NULL pointer.
+
+ * xdisp.c (next_element_from_c_string): Use Lisp integer zero as
+ the object.
+ (set_cursor_from_row, try_cursor_movement, dump_glyph)
+ (insert_left_trunc_glyphs, append_space_for_newline)
+ (extend_face_to_end_of_line, highlight_trailing_whitespace)
+ (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
+ (Fbidi_resolved_levels, produce_special_glyphs)
+ (rows_from_pos_range, mouse_face_from_buffer_pos)
+ (note_mouse_highlight): Use nil as the object for glyphs inserted
+ by the display engine, and test with NILP instead of INTEGERP.
+ (Bug#19535)
+
+ * w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
+ the display engine.
+
+ * xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
+ the display engine.
+
+ * dispextern.h (struct glyph, struct it): Update comments for the
+ OBJECT members.
+
+2015-01-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port new Lisp symbol init to x86 --with-wide-int
+ * lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
+ Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
+ GCC (at least) does not allow a constant initializer to widen an
+ address constant.
+
+ * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
+ This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
+ Although clang doesn't need it, some other compiler might, and
+ it's easy enough to be safe.
+
+ * conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
+ Apparently clang removed support for the alloc_size attribute.
+
+ Port Qnil==0 XUNTAG to clang
+ clang has undefined behavior if the program subtracts an integer
+ from (char *) 0. Problem reported by YAMAMOTO Mitsuharu in:
+ http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
+ * lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
+ (XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
+
+ Port GFileMonitor * hack to Qnil==0 platforms
+ Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
+ * gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
+ (dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
+
+2015-01-06 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (x_set_window_size): Call updateFrameSize to get real
+ size instead of using widht/height. The frame may be constrained.
+
+2015-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lisp.h (XSYMBOL): Parenthesize id in forward decl.
+ Needed when neither optimizing nor inlining.
+ Also, sort decls alphabetically.
+
+2015-01-05 Eli Zaretskii <eliz@gnu.org>
+
+ * w32proc.c, w32.h, w32fns.c, w32font.c, w32menu.c, w32notify.c:
+ * w32proc.c, w32select.c, w32term.c, w32uniscribe.c: Remove
+ declarations of Q* variables that represent symbols.
+
+2015-01-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use 0 for Qnil
+ Fixes Bug#15880.
+ If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
+ that NILP (x) is equivalent to testing whether x is 0 at the
+ machine level. The overall effects of this and the previous patch
+ shrink the size of the text segment by 2.3% and speeds up
+ compilation of all the .elc files by about 0.5% on my platform,
+ which is Fedora 20 x86-64.
+ * lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
+ (make_lisp_symbol) [USE_LSB_TAG]:
+ Symbols now tag the difference from lispsym, not the pointer.
+ (lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
+ (Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
+ Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
+ (XSYMBOL): New forward decl.
+ (XUNTAGBASE): New function.
+ (XUNTAG): Use it.
+
+ Compute C decls for DEFSYMs automatically
+ Fixes Bug#15880.
+ This patch also makes Q constants (e.g., Qnil) constant addresses
+ from the C point of view.
+ * alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle.c:
+ * casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
+ * composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
+ * doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
+ * frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
+ * image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
+ * macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
+ * nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
+ * search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
+ * window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
+ * xselect.c, xsettings.c, xterm.c:
+ Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
+ These names are now defined automatically by make-docfile.
+ * alloc.c (init_symbol): New function.
+ (Fmake_symbol): Use it.
+ (c_symbol_p): New function.
+ (valid_lisp_object_p, purecopy): Use it.
+ * alloc.c (marked_pinned_symbols):
+ Use make_lisp_symbol instead of make_lisp_ptr.
+ (garbage_collect_1): Mark lispsym symbols.
+ (CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
+ (mark_object): Use it.
+ (sweep_symbols): Sweep lispsym symbols.
+ (symbol_uses_obj): New function.
+ (which_symbols): Use it. Work for lispsym symbols, too.
+ (init_alloc_once): Initialize Vpurify_flag here; no need to wait,
+ since Qt's address is already known now.
+ (syms_of_alloc): Add lispsym count to symbols_consed.
+ * buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
+ when testing whether storage is all bits zero.
+ * dispextern.h (struct image_type):
+ * font.c (font_property_table):
+ * frame.c (struct frame_parm_table, frame_parms):
+ * keyboard.c (scroll_bar_parts, struct event_head):
+ * xdisp.c (struct props):
+ Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
+ Lisp_Object *, since Qfoo is no longer an object whose address can be
+ taken. All uses changed.
+ * eval.c (run_hook): New function. Most uses of Frun_hooks changed to
+ use it, so that they no longer need to take the address of a Lisp sym.
+ (syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
+ * frame.c (syms_of_frame): Add defsyms for the frame_parms table.
+ * keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
+ DEFSYM Qdeactivate_mark before the corresponding var.
+ * keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
+ instead of interning their symbols; this avoids duplicates.
+ (LISP_INITIALLY, TAG_PTR)
+ (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
+ New macros.
+ (LISP_INITIALLY_ZERO): Use it.
+ (enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
+ (EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
+ Move decls up, to avoid forward uses. Include globals.h earlier, too.
+ (make_lisp_symbol): New function.
+ (XSETSYMBOL): Use it.
+ (DEFSYM): Now just a placeholder for make-docfile.
+ * lread.c (DEFINE_SYMBOLS): Define, for globals.h.
+ (intern_sym): New function, with body taken from old intern_driver.
+ (intern_driver): Use it. Last arg is now Lisp integer, not ptrdiff_t.
+ All uses changed.
+ (define_symbol): New function.
+ (init_obarray): Define the C symbols taken from lispsym.
+ Use plain DEFSYM for Qt and Qnil.
+ * syntax.c (init_syntax_once): No need to worry about
+ Qchar_table_extra_slots.
+
+2015-01-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ 'temacs -nw' should not call missing functions
+ Without this patch, "temacs -nw" fails with the diagnostic
+ "emacs: Symbol's function definition is void: frame-windows-min-size"
+ and messes up the tty's state.
+ * frame.c (Fframe_windows_min_size): New placeholder function.
+ (syms_of_frame): Define it.
+ * window.c (Fwindow__sanitize_window_sizes): New placeholder.
+ (syms_of_window): Define it.
+
+ Less 'make' chatter for lisp dir
+ * Makefile.in (%.elc): Adjust to compile-onefile change in
+ ../lisp/Makefile.in.
+
+ batch write-region no longer says "Wrote FOO"
+ This cuts down on 'make' chatter a bit.
+ * fileio.c (Fwrite_region):
+ Don't output "Wrote /whatever/foo.elc" if noninteractive.
+
+2015-01-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Revert previous change to produce_composite_glyph
+ * term.c (produce_composite_glyph): Revert previous change (Bug#19496).
+
+ Pacify gcc -Wparentheses
+ * frame.c (x_set_frame_parameters): Add parens (Bug#19428).
+
+2015-01-03 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (x_set_frame_parameters): Call Fset_frame_size only if
+ f->can_x_set_window_size is true.
+ * xterm.c (x_set_window_size_1): Call change_frame_size with
+ text sizes instead of pixel sizes (Bug#19428).
+
+2015-01-01 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (pos_visible_p): Fix up the X coordinate for
+ right-to-left screen lines. (Bug#19473)
+
+2015-01-01 Eli Zaretskii <eliz@gnu.org>
+
+ * w32proc.c (Fw32_get_codepage_charset): Doc fix. (Bug#19458)
+
+2014-12-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify setfattr use by assuming GNU make
+ * Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros.
+ (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them.
+ Simplify by using GNU make rather than shell conditionals,
+ by using ln -f rather than rm -f followed by ln,
+ and by preferring $@ to spelling out the destination.
+
+2014-12-29 Eli Zaretskii <eliz@gnu.org>
+
+ * sysdep.c [WINDOWSNT]: Include sys/socket.h, without which this
+ file doesn't compile on MS-Windows.
+
+2014-12-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ Allow return value of system-name to vary. (Bug#19438)
+ * filelock.c (current_lock_owner):
+ * xrdb.c (get_environ_db):
+ * xterm.c (same_x_server):
+ * xterm.c (x_term_init):
+ Prefer (system-name) to system-name, and avoid naming
+ locals 'system-name'.
+ * editfns.c (cached_system_name): New static var.
+ (init_and_cache_system_name): New function.
+ (init_editfns, Fsystem_name): Use it.
+ (syms_of_editfns): Initialize it and Vsystem_name to the same value.
+ * sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
+ (h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
+ (init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
+ Don't create a new string if the current value is already correct.
+
+2014-12-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix produce_composite_width typo
+ * term.c (produce_composite_glyph):
+ Fix typo that confused number of columns for pixel width.
+
+2014-12-28 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
+
+ Wrap dll functions more simply
+ * decompress.c, gnutls.c, image.c, xml.c:
+ If WINDOWSNT, use '#define FOO fn_FOO' to wrap dll functions,
+ rather than the inverse when not WINDOWSNT. This isolates the
+ fn_* business into the WINDOWSNT-specific section of the code,
+ which makes it easier to maintain the generic code.
+ * decompress.c (DEF_ZLIB_FN, LOAD_ZLIB_FN):
+ * gnutls.c (DEF_GNUTLS_FN, LOAD_GNUTLS_FN):
+ * image.c (DEF_IMGLIB_FN, LOAD_IMGLIB_FN):
+ * xml.c (DEF_XML2_FN, LOAD_XML2_FN):
+ Remove. All uses replaced by DEF_DLL_FN.
+ * decompress.c (inflateInit2): Remove; no longer needed.
+ * w32.h (DEF_DLL_FN, LOAD_DLL_FN): New macros.
+
+ Port memory-full checking to GnuTLS 3.3
+ Instead of using gnutls_global_set_mem_functions, check every call
+ to a GnuTLS function that might return an indication of memory
+ exhaustion. Suggested by Dmitry Antipov in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
+ * gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
+ (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
+ (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
+ All uses removed.
+ (check_memory_full): New function.
+ (emacs_gnutls_handshake, emacs_gnutls_handle_error)
+ (gnutls_make_error, gnutls_certificate_details, Fgnutls_peer_status)
+ (Fgnutls_boot): Use it.
+ (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
+
+2014-12-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix parse_settings to match internal documentation
+ * xsettings.c (parse_settings): Return the number of settings seen.
+ Count the settings changes accurately.
+ (read_settings): Don't confuse number of settings changes with
+ the return code from XGetWindowProperty.
+
+2014-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
+ composition_compute_stop_pos to the number of characters in the
+ string. (Bug#19435)
+ <GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
+
+ * composite.c (composition_compute_stop_pos): If no composition
+ was found in a string before ENDPOS, and ENDPOS is the string end,
+ no need to back up to a safe point.
+
+ * dispextern.h (struct it) <end_charpos>: Improve commentary.
+
+2014-12-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsimage.m (allocInitFromFile:): Initialize bmRep.
+ (dealloc): Release bmRep.
+ (setPixmapData): Make bmRep local so class member is not
+ set (Bug#19133).
+ (setPixmapData): Rename local variable bmRep to avoid compiler
+ warning.
+
+2014-12-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
+ when going to fullscreen (Bug#0x180004f).
+
+2014-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ * window.c (Fwindow_body_width): Doc fix. (Bug#19395)
+
+2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
+
+2014-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
+
+2014-12-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xselect.c, xsettings.c
+ * xselect.c (x_get_local_selection, struct selection_data)
+ (x_selection_request_lisp_error, struct prop_location)
+ (x_handle_selection_request, x_convert_selection)
+ (waiting_for_other_props_on_window, expect_property_change)
+ (wait_for_property_change, x_handle_property_notify)
+ (x_get_foreign_selection, x_get_window_property)
+ (receive_incremental_selection)
+ (x_get_window_property_as_lisp_data)
+ (lisp_data_to_selection_data, Fx_get_selection_internal)
+ (x_send_client_event):
+ * xselect.c, xterm.h (x_handle_dnd_message):
+ * xsettings.c (dpyinfo_valid, parse_settings, read_settings)
+ (apply_xft_settings, read_and_apply_settings)
+ (xft_settings_event, init_gsettings, init_xsettings)
+ (syms_of_xsettings):
+ Use bool for boolean.
+ * xselect.c (x_get_window_property): Omit last arg, which was an
+ unused boolean.
+ * xsettings.c (apply_xft_settings): Remove 2nd arg, which was
+ always true. All callers changed.
+
+2014-12-26 Eli Zaretskii <eliz@gnu.org>
+
+ * w32proc.c (sys_spawnve, get_lcid_callback): Use strcpy instead
+ of strcat.
+
+ * w32menu.c (add_menu_item): Use stpcpy instead of strcat.
+
+ * w32.c (sys_readdir, stat_worker, symlink): Use strcpy instead of
+ strcat.
+
+2014-12-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xsmfns.c
+ * xsmfns.c, xterm.h (x_session_have_connection):
+ * xsmfns.c (doing_interact, smc_interact_CB, Fhandle_save_session):
+ Use bool for boolean.
+ (x_session_initialize, Fhandle_save_session):
+ Prefer NILP (x) to EQ (x, Qnil).
+
+2014-12-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * callproc.c (child_setup):
+ * dbusbind.c (xd_signature_cat):
+ * doc.c (get_doc_string, Fsnarf_documentation):
+ * editfns.c (Fuser_full_name):
+ * frame.c (xrdb_get_resource):
+ * gtkutil.c (xg_get_file_with_chooser):
+ * tparam.c (tparam1):
+ * xfns.c (xic_create_fontsetname):
+ * xrdb.c (gethomedir, get_user_db, get_environ_db):
+ * xsmfns.c (smc_save_yourself_CB):
+ Rewrite to avoid the need for strcat, typically by using stpcpy
+ and/or lispstpcpy. strcat tends to be part of O(N**2) algorithms.
+ * doc.c (sibling_etc):
+ * xrdb.c (xdefaults):
+ Now a top-level static constant.
+
+2014-12-23 Didier Verna <didier@didierverna.net> (tiny change).
+
+ * nsselect.m (Fns_selection_owner_p): Return a Lisp boolean, not a
+ C one (Bug#19396).
+
+2014-12-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_bitmap_icon): Partly revert change from 2014-03-21 which
+ breaks icon setting for Gtk+ except for initial frame (Bug#19403).
+
+2014-12-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use bool for boolean in xterm.c
+ * frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
+ (x_set_window_size, x_bitmap_icon):
+ * nsterm.m (ns_frame_raise_lower, x_new_font):
+ * termhooks.h (struct terminal.toggle_invisible_pointer_hook)
+ (struct terminal.frame_raise_lower_hook):
+ * w32term.c (w32_frame_raise_lower):
+ * xterm.c, xterm.h (x_text_icon):
+ * xterm.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, x_after_update_window_line)
+ (x_set_glyph_string_gc, x_draw_glyph_string_background)
+ (x_draw_glyph_string_foreground)
+ (x_draw_composite_glyph_string_foreground)
+ (x_alloc_lighter_color, x_draw_relief_rect)
+ (x_draw_glyph_string_box, x_draw_image_relief)
+ (x_draw_image_glyph_string, x_draw_stretch_glyph_string)
+ (x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
+ (x_hide_hourglass):
+ (XFillRectangle) [HAVE_GTK3]:
+ (XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
+ (x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
+ (XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
+ (x_send_scroll_bar_event, xm_scroll_callback)
+ (xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
+ (x_create_toolkit_scroll_bar)
+ (x_create_horizontal_toolkit_scroll_bar)
+ (x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
+ (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
+ (XTset_horizontal_scroll_bar, x_scroll_bar_expose)
+ (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
+ (x_scroll_bar_report_motion)
+ (x_horizontal_scroll_bar_report_motion, x_net_wm_state)
+ (handle_one_xevent, XTread_socket, x_draw_bar_cursor)
+ (x_draw_window_cursor, x_clear_errors)
+ (x_trace_wire, x_new_font, x_set_offset, wm_supports)
+ (set_wm_state, x_set_sticky, get_current_wm_state)
+ (do_ewmh_fullscreen, x_handle_net_wm_state)
+ (x_check_expected_move, x_sync_with_move, x_wait_for_event)
+ (x_set_window_size_1, XTframe_raise_lower)
+ (x_make_frame_visible, x_iconify_frame)
+ (x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
+ (x_term_init, x_process_timeouts, x_activate_timeout_atimer)
+ (x_delete_terminal, x_initialize, syms_of_xterm):
+ Use bool for boolean.
+
+2014-12-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * composite.h (struct composition.width): Now int
+ instead of unsigned short, as we prefer signed integers.
+
+ Let charset tick grow past USHRT_MAX
+ * charset.c, charset.h (charset_ordered_list_tick):
+ Now EMACS_UINT, not unsigned short.
+ * fontset.c (reorder_font_vector): Allow the tick to grow to the
+ maximum representable Emacs integer value before wrapping it around.
+
+ Simplify unexec file mode setting
+ * unexaix.c, unexcoff.c, unexelf.c, unexmacosx.c:
+ Don't include <sys/stat.h> when no longer needed.
+ (unexec): Create file with correct mode in the first place,
+ rather than overwriting the mode later and fiddling with the
+ global umask in the mean time. Avoid bogus usage like
+ 'umask (777)', which should have been 'umask (0777)'.
+ (mark_x): Remove. All callers removed.
+
+2014-12-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor cleanups for Lisp objects and symbols
+ * alloc.c (next_vector, set_next_vector):
+ * lisp.h (lisp_h_INTEGERP, make_number, XFASTINT, make_natnum):
+ (lisp_h_make_number) [USE_LSB_TAG]:
+ Use Lisp_Int0 instead of the mystery constant 0.
+ * alloc.c (mark_object): Always set and use po; that's simpler.
+ (CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE):
+ Properly parenthesize definientia.
+ * bidi.c (bidi_initialize):
+ * buffer.c (init_buffer_once):
+ * nsfns.m (syms_of_nsfns):
+ * nsmenu.m (syms_of_nsmenu):
+ * nsselect.m (syms_of_nsselect):
+ Prefer DEFSYM to defining by hand.
+ * buffer.c (syms_of_buffer): Omit unneeded staticpros.
+ * data.c: Fix too-long line.
+ * lisp.h (DECLARE_GDB_SYM): New macro.
+ (DEFINE_GDB_SYMBOL_BEGIN): Use it.
+ (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END) [!MAIN_PROGRAM]:
+ Declare the symbol, so it's visible to everywhere lisp.h is included.
+ Move forward decls as far forward as they can go,
+ to allow future changes to use them.
+
+2014-12-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gnutls.c: Include gnutls.h.
+ This to check syms_of_gnutls's API even when !HAVE_GNUTLS.
+ * image.c (svg_load): Fix pointer signedness.
+
+2014-12-18 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (frame_windows_min_size): New argument IGNORE.
+ (adjust_frame_size): When called from change_frame_size call
+ frame_windows_min_size with IGNORE Qt so we can ignore size
+ restrictions.
+
+2014-12-18 Eli Zaretskii <eliz@gnu.org>
+
+ * font.c (Ffont_info): Add more font information to the vector
+ returned by the function, inspired by query-font. Doc fix.
+ (Bug#19395)
+
+2014-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (input_was_pending): New var.
+ (read_char): Use it to make sure we only skip redisplay when we can't
+ keep up with the repeat rate.
+
+2014-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (swallow_events): Don't redisplay if there's input pending.
+
+2014-12-17 Ulf Jasper <ulf.jasper@web.de>
+
+ * image.c (svg_load): Watch out for nil value of current buffer's
+ filename. Re-enable filename thing for not-a-file case.
+
+2014-12-17 Ulf Jasper <ulf.jasper@web.de>
+
+ Partially disabled previous change.
+
+ * image.c (svg_load): Temporarily disabled filename thing for
+ not-a-file case as it can cause crashs.
+
+2014-12-17 Ulf Jasper <ulf.jasper@web.de>
+
+ Fix problem with images referenced within svg files. (bug#19373)
+
+ * image.c: Additional parameter 'filename' for
+ svg_load_image. Include "buffer.h". Define library function
+ rsvg_handle_set_base_uri for WINDOWSNT.
+ (init_svg_functions): Initialize rsvg_handle_set_base_uri.
+ (fn_rsvg_handle_set_base_uri): Define fn_rsvg_handle_set_base_uri.
+ (svg_load): Pass a filename to svg_load_image: either name of
+ actual file or of current buffer's file.
+ (svg_load_image): New parameter 'filename', used for setting
+ base_uri, necessary for loading referenced images. (bug#19373)
+
+2014-12-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lread.c (init_obarray): Declare Qt as special.
+ This fixes a typo in the 2012-05-15 patch that
+ tried to declare Qt as special.
+
+2014-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Various fixes to use bool type and constants.
+ * dispnew.c (update_single_window): Remove arg `force_p' since it's
+ always true.
+ * xfaces.c (clear_face_cache): Use bool for the argument type.
+
+2014-12-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ Correct same_at_end when restoring window points
+ * fileio.c (Finsert_file_contents): Compute same_at_end character
+ position using the old buffer size, not the new one, since
+ restore_window_points wants the old size.
+ Fixes: debbugs:19161
+
+2014-12-14 Alan Mackenzie <acm@muc.de>
+
+ New feature optionally to accelerate auto-repeated scrolling.
+
+ * xdisp.c: Remove "static" from declaration of Qfontification_functions.
+
+ * window.c (window_scroll): Bind fontification-functions to nil
+ when scrolling by whole screens and
+ fast-but-imprecise-scrolling is non-nil.
+ (syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling.
+
+ * lisp.h (bool): Declare Qfontification_functions extern.
+
+2014-12-14 Eli Zaretskii <eliz@gnu.org>
+
+ Load system's default trusted Certificate Authorities if available.
+ * gnutls.c (gnutls_certificate_set_x509_system_trust)
+ [GNUTLS >= 3.0.20]: Declare for WINDOWSNT.
+ (init_gnutls_functions)(gnutls_certificate_set_x509_system_trust)
+ [GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT.
+ (fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]:
+ Define new macro.
+ (Fgnutls_boot) [GNUTLS >= 3.0.20]:
+ Call gnutls_certificate_set_x509_system_trust. Log an error message if
+ it fails.
+
+2014-12-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * regex.c (analyze_first): Rename from analyze_first.
+
+2014-12-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * alloc.c (XMALLOC_BASE_ALIGNMENT): Use max_align_t instead of
+ a hack involving a union.
+
+2014-12-13 Eli Zaretskii <eliz@gnu.org>
+
+ * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
+ Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
+ them only once.
+
+2014-12-13 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
+
+ * gnutls.h: Always declare syms_of_gnutls.
+
+ * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
+ clarity. Let the availability check return Qnil when the GnuTLS
+ integration is not available, instead of erroring out.
+ (Bug#19346)
+
+2014-12-13 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (move_it_in_display_line_to, display_line):
+ Don't disallow overflow-newline-into-fringe when word-wrap is in
+ effect. (Bug#19300)
+
+2014-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * fileio.c: Better preserve window-points during revert (bug#19161).
+ (Qget_buffer_window_list): New var.
+ (get_window_points_and_markers, restore_window_points): New functions.
+ (Finsert_file_contents): Use them to save and restore window-points.
+
+2014-12-11 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xterm.c (x_delete_terminal): Call emacs_close for X connection
+ descriptor if called from x_connection_closed and always delete
+ this descriptor from keyboard waiting set (Bug#19147).
+
+2014-12-10 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT): New macro.
+ (bidi_cache_max_elts): New global variable.
+ (bidi_shelve_header_size): Add the sizeof bidi_cache_max_elts.
+ (bidi_cache_shrink, bidi_initialize): Reset bidi_cache_max_elts to
+ its initial value.
+ (bidi_cache_search): Handle overflown cache. Improve commentary.
+ (bidi_cache_ensure_space): Limit allocations to the current value
+ of bidi_cache_max_elts. Force xpalloc not to over-allocate.
+ If less than a full BIDI_CACHE_CHUNK is left to the limit, decrease
+ the increment to not exceed the limit.
+ (bidi_cache_iterator_state): Now returns non-zero if succeeded to
+ cache, zero otherwise (meaning the cache overflowed). In the
+ latter case, set bidi_cache_last_idx to -1.
+ (bidi_peek_at_next_level): Handle overflown cache.
+ (bidi_push_it): Increase the cache limit for iterating the new object.
+ (bidi_pop_it): Decrease the cache limit back to previous value.
+ (bidi_shelve_cache): Shelve the current value of the cache limit.
+ (bidi_unshelve_cache): Restore the value of cache limit.
+ (bidi_find_bracket_pairs): If the cache overflows while looking
+ for the paired bracket, give up and let bidi_resolve_neutrals
+ process the bracket as a simple neutral. (Bug#19322)
+ (bidi_find_other_level_edge): If the cache overflows, fall back on
+ Plan B, which effectively stops the reordering and restarts it on
+ the next character (after resetting the cache).
+ (bidi_move_to_visually_next): When the cache overflows, reset it
+ after processing the last cached character.
+
+2014-12-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix glitches in gnutls.c, mostly memory-related
+ * gnutls.c: Sort macro definitions by name.
+ (fn_gnutls_transport_set_errno): Omit unreachable definition.
+ (fn_gnutls_x509_crt_get_signature): Omit unused symbol.
+ (gnutls_hex_string): Arg is now unsigned char *, to avoid a cast.
+ Prefer ptrdiff_t for sizes. Check for arithmetic overflow when
+ calculating string length. Use make_uninit_string, to avoid
+ copying the string. Cast the char, not the pointer.
+ (gnutls_certificate_details): Use xmalloc and xfree, not malloc
+ and free. Work even for dates past the year 9999. Use void *
+ for buffers, to avoid casts.
+
+2014-12-09 Andy Moreton <andrewjmoreton@gmail.com> (tiny change)
+
+ * gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo.
+
+2014-12-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (Fgnutls_peer_status): Return the key exchange, cipher
+ and MAC algorithms.
+
+2014-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * process.c: Whitespace and line-break nitpicks.
+
+2014-12-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (gnutls_certificate_details): The :signature isn't
+ that useful, so remove it.
+ (gnutls_certificate_details): Clean up whitespace slightly.
+ (Fgnutls_peer_status): Return the Diffie-Hellman prime bits for
+ the connection.
+ (gnutls_certificate_details): Put :signature-algorithm back again,
+ which was removed by mistake.
+ (emacs_gnutls_handle_error): Fatal errors should be on level 1, so
+ that they are not messaged by default (bug#16253).
+ (Fgnutls_error_fatalp): Doc fix (bug#18210).
+
+ * gnutls.c: Add Windows specs for gnutls_dh_get_prime_bits.
+
+2014-12-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsimage.m (setPixmapData): Make bmRep local so class member is not
+ set (Bug#19133).
+
+2014-12-05 Lee Duhem <lee.duhem@gmail.com> (tiny change)
+
+ * eval.c (Fsignal): Remove duplicate test.
+ (Fautoload_do_load): Fix up docstring.
+
+2014-12-05 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (represented_filename, represented_frame): New variables.
+ (ns_set_represented_filename): New function.
+ (sendEvent:): Set represented filename here to avoid flicker,
+ related to Bug#18757.
+
+ * nsterm.h: Declare ns_set_represented_filename.
+
+ * nsfns.m (ns_set_name_as_filename): Don't set represented filename
+ at once, call ns_set_represented_filename instead.
+
+2014-12-05 Eli Zaretskii <eliz@gnu.org>
+
+ * dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero.
+ (struct bidi_stack): Reduce size by using bit fields and by
+ packing sos, override, and isolate_status into a single 8-bit
+ byte called 'flags'.
+
+ * bidi.c (ISOLATE_STATUS, OVERRIDE): New macros.
+ (bidi_push_embedding_level): Construct flags from individual
+ bits. Adapt to changes in prev_for_neutral and next_for_neutral
+ members.
+ (bidi_pop_embedding_level): Use ISOLATE_STATUS. Extract 'sos'
+ from flags. Adapt to changes in prev_for_neutral,
+ next_for_neutral, and last_strong members.
+ (bidi_line_init): Initialize flags to zero.
+ (bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets)
+ (bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE.
+
+2014-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (backtrace_eval_unrewind): Rewind also the excursions.
+ (Fapply): Try and simplify the control flow.
+
+2014-12-03 Chris Zheng <chriszheng99@gmail.com> (tiny change)
+
+ * gnutls.c (init_gnutls_functions, gnutls_certificate_details):
+ Use gnutls_sign_get_name directly because
+ gnutls_sign_algorithm_get_name is a macro on MinGW (bug#19231).
+ (init_gnutls_functions): Load missing gnutls_server_name_set.
+
+2014-12-02 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_find_first_overridden): New function.
+
+ * xdisp.c (Fbidi_find_overridden_directionality): New function.
+ (syms_of_xdisp): Defsubr it.
+
+ * dispextern.h (bidi_find_first_overridden): Add prototype.
+
+2014-12-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsimage.m (initFromSkipXBM:width:height:flip:length:): Set bmRep
+ to nil after release (Bug#9133).
+
+2014-11-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port better to AddressSanitizer.
+ These changes suffice for temacs on x86-64 with GCC 4.9.2 and
+ -fsanitize=address.
+ * alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]:
+ Return -1 or 0, as the pipe trick doesn't work.
+ * alloc.c (relocatable_string_data_p, mark_object, sweep_symbols):
+ * data.c (Ffset):
+ * print.c (print_object):
+ When a pointer-check primitive returns -1, do not assume this
+ means the pointer is valid or that the underlying system has failed.
+ It could just be that addresses are being sanitized so Emacs can't
+ test for pointer validity.
+ * lisp.h (defined_GC_CHECK_STRING_BYTES): New constant.
+ (USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the
+ string validity checker doesn't work on stack-based strings.
+
+2014-11-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve clarity of USE_LSB_TAG definition.
+ Reported by Lee Duhem. Suggested by Andreas Schwab in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg02222.html
+ * lisp.h (USE_LSB_TAG): Define in terms of the (simpler)
+ VAL_MAX / 2 rather than in terms of the (more complicated)
+ EMACS_INT_MAX >> GCTYPEBITS, and adjust commentary to match.
+
+2014-11-29 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (handle_single_display_spec): When ignoring a fringe
+ bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
+ (next_element_from_buffer): When done with overlays, reset the
+ ignore_overlay_strings_at_pos_p flag. (Bug#19201)
+
+2014-11-29 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (Fw32_shell_execute): Convert forward slashes in
+ DOCUMENT to backslashes, if DOCUMENT is a file. (Bug#19141)
+
+2014-11-29 Ulrich Müller <ulm@gentoo.org>
+
+ * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
+ for paxctl and setfattr. Fixes temacs startup failure with
+ grsecurity/PaX enabled Linux kernel (bug#19067).
+
+2014-11-27 Oscar Fuentes <ofv@wanadoo.es>
+
+ * w32.c, w32heap.c, w32term.c:
+ Use MINGW_W64 instead of _W64.
+
+2014-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
+
+2014-11-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (gnutls_ip_address_p): New function.
+ (Fgnutls_boot): Only send SNI if the host name is not an IP address.
+
+2014-11-26 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change)
+
+ * gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).
+
+2014-11-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix gnutls problems caught by static checking.
+ * gnutls.c (Fgnutls_boot): Remove unused local.
+ (Fgnutls_boot): Fix pointer signedness.
+
+2014-11-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c (gnutls_certificate_details): Don't include certain
+ certificate details on older gnutls versions (bug#19168).
+ (syms_of_gnutls): Export gnutls_peer_status_warning_describe.
+ (gnutls_certificate_details): Reversed check in last checkin.
+
+2014-11-25 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnutls.c (Fgnutls_peer_status): Check GNUTLS_INITSTAGE, not gnutls_p.
+ (Fgnutls_peer_status_warning_describe): Add function to describe a
+ peer verification warning symbol.
+ (Fgnutls_peer_status): Use it.
+ (Fgnutls_boot): Use it. Minor logging fixes.
+
+2014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings.
+
+2014-11-24 Glenn Morris <rgm@gnu.org>
+
+ * emacs.c (main) <--version>: Make use of PACKAGE_NAME.
+
+ * Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it.
+ (ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused.
+
+2014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnutls.c: Fix Windows function definition of
+ gnutls_x509_crt_get_fingerprint.
+
+ * gnutls.c: Fix Windows return value for gnutls_pk_algorithm_get_name.
+
+ * gnutls.c (Fgnutls_boot): Save certificate for later inspection.
+
+ * process.h: Added more fields to Lisp_Process to track
+ certificate details.
+
+ * gnutls.c (gnutls_hex_string, gnutls_certificate_details)
+ (Fgnutls_peer_status): New functions to export TLS certificate
+ details to Emacs Lisp.
+
+2014-11-23 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (gtk_adjustment_configure): Define for Gtk+ < 2.14.
+ (xg_set_toolkit_horizontal_scroll_bar_thumb): Remove wrong version
+ check for gtk_adjustment_configure (Bug#19149).
+ (gtk_adjustment_configure): Don't use 2.14 functions (Bug#19149).
+
+2014-11-22 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (emacs.res): Add dependency on icons/hand.cur. Use $<.
+
+2014-11-22 Martin Rudalics <rudalics@gmx.at>
+
+ Don't shrink frame when using desktop-save-mode (Bug#19048).
+ * w32fns.c (x_set_tool_bar_lines): Always call
+ x_change_tool_bar_height (Bug#19048).
+ (x_change_tool_bar_height): Mark frame as garbaged since
+ adjust_frame_size might not have done that.
+ * xfns.c (x_set_tool_bar_lines): Always call
+ x_change_tool_bar_height (Bug#19048).
+ (x_change_tool_bar_height): Mark frame as garbaged since
+ adjust_frame_size might not have done that.
+
+2014-11-21 Ulf Jasper <ulf.jasper@web.de>
+
+ * xml.c (parse_region): Take care of new optional parameter
+ 'discard-comments' of 'libxml-parse(html|xml)-region'.
+ (Flibxml_parse_html_region, Flibxml_parse_xml_region):
+ New optional parameter 'discard-comments'.
+
+2014-11-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve time stamp handling, and be more consistent about it.
+ * editfns.c (invalid_time): New function.
+ Use it instead of 'error ("Invalid time specification")'.
+ (time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p)
+ (decode_float_time, lisp_to_timespec, lisp_time_struct):
+ New functions.
+ (make_time_tail, make_time): Remove. All uses changed to use
+ new functions or plain list4i.
+ (disassemble_lisp_time): Return effective length if successful.
+ Check that LOW is an integer, if it's combined with other components.
+ (decode_time_components): Decode into struct lisp_time, not
+ struct timespec, so that we can support a wide set of times
+ regardless of whether time_t is signed. Decode plain numbers
+ as seconds since the Epoch, and nil as the current time.
+ (lisp_time_argument, lisp_seconds_argument, Ffloat_time):
+ Reimplement in terms of new functions.
+ (Fencode_time): Just use list2i.
+ (syms_of_editfns): Add time-add, time-subtract, time-less-p.
+ * keyboard.c (decode_timer): Don't allow the new formats (floating
+ point or nil) in timers.
+ * systime.h (LO_TIME_BITS): New constant. Use it everywhere in
+ place of the magic number '16'.
+ (struct lisp_time): New type.
+ (decode_time_components): Use it.
+ (lisp_to_timespec): New decl.
+
+2014-11-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only'
+ text property.
+
+ * callint.c (Fcall_interactively): Pass in nil as argument to
+ Fbarf_if_buffer_read_only.
+
+ * fileio.c (Finsert_file_contents): Ditto.
+
+ * insdel.c (prepare_to_modify_buffer_1): Pass start region in.
+
+ * textprop.c (verify_interval_modification): Check buffer
+ readedness after the last interval.
+
+ * buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if
+ the text at POSITION (new optional argument) has the
+ `inhibit-read-only' text property set.
+
+2014-11-16 Eli Zaretskii <eliz@gnu.org>
+
+ * window.c (window_scroll_pixel_based): Avoid truncation/rounding
+ errors in computing the number of pixels to scroll.
+ Suggested by Kelly Dean <kelly@prtime.org>. (Bug#19060)
+
+2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
+ call updateFrameSize.
+
+ * nsterm.m (setFrame:): Remove call to display (Bug#18757).
+
+2014-11-16 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (x_set_foreground_color, x_set_background_color)
+ (x_set_cursor_color, Fxw_color_values): Block/unblock input,
+ use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
+
+2014-11-15 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_send_appdefined): Check for application defined
+ event on Cocoa (Bug#18993).
+ (run): Restore code before the previous 18993 fix.
+
+2014-11-14 David Reitter <david.reitter@gmail.com>
+
+ * nsterm.m (run): Set timeout for event loop to prevent hang.
+ (Bug#18993)
+
+2014-11-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .gitignore: Add emacs-[1-9]*, to ignore files like emacs-25.0.50.1.
+
+2014-11-14 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xfont.c (xfont_list_pattern): Do not allocate font entity object
+ for each candidate font but attempt to reuse it from previous improper
+ candidate, if any.
+
+2014-11-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Avoid undefined behavior in color table hashing.
+ * image.c (CT_HASH_RGB) [COLOR_TABLE_SUPPORT]: Remove, replacing with ...
+ (ct_hash_rgb) [COLOR_TABLE_SUPPORT]: New function. All uses changed.
+ This function avoids undefined behavior with signed shift overflow.
+
+2014-11-10 Eli Zaretskii <eliz@gnu.org>
+
+ * fileio.c (Finsert_file_contents): Invalidate buffer caches also
+ when the inserted text does not need decoding. (Bug#18982)
+
+2014-11-10 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.h (EmacsScroller): judge returns bool.
+
+ * nsterm.m (ns_set_vertical_scroll_bar): Release bar.
+ (ns_judge_scroll_bars): Only set removed if judge returns true.
+ (judge): Returns bool == condemned. Remove self from window.
+ (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
+
+2014-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (command_loop_1): Record this-command in recent-keys.
+ (Frecent_keys): Rewrite. and add optional `include-cmds' arg.
+
+2014-11-09 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_set_vertical_scroll_bar)
+ (ns_set_horizontal_scroll_bar): Cleanup merge error.
+
+2014-11-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
+ merely because tmo_in_millisec is nonnegative. The 1st call
+ to g_main_context_query could succeed while the 2nd one fails.
+
+ * frame.c (Fcan_run_window_configuration_change_hook): Return a value.
+
+2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (run): Only use non-system event loop if OSX version is
+ exactly 10.9 (Bug#18993).
+ (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
+ needed (Bug#18757).
+
+2014-11-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * callproc.c (encode_current_directory): Support handling of file
+ names prepended by "/:". (Bug#18891)
+
+2014-11-08 Alan Mackenzie <acm@muc.de>
+
+ * syntax.c (back_comment): Fix off-by-one error (bug#18022).
+
+2014-11-08 Dima Kogan <dima@secretsauce.net>
+
+ * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
+
+2014-11-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
+ raises an error. (Bug#18891)
+
+2014-11-08 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (adjust_frame_size): Call x_set_window_size only if
+ f->can_x_set_window_size is set.
+ (make_frame): Initialize f->can_x_set_window_size and
+ f->can_run_window_configuration_change_hook.
+ (Fcan_run_window_configuration_change_hook): New function.
+ * frame.h (frame): Split `official' into `can_x_set_window_size'
+ and `can_run_window_configuration_change_hook'.
+ * nsfns.m (Fx_create_frame): Set f->can_x_set_window_size.
+ * w32fns.c (Fx_create_frame, x_create_tip_frame):
+ Set f->can_x_set_window_size.
+ * window.c (run_window_configuration_change_hook):
+ Return immediately if either f->can_x_set_window_size or
+ f->can_run_window_configuration_change_hook are false.
+ (Fset_window_configuration): Instead of f->official set
+ f->can_x_set_window_size.
+ * xfns.c (Fx_create_frame, x_create_tip_frame):
+ Set f->can_x_set_window_size.
+
+2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (EmacsScroller.dealloc): Reinstate, removed at merge
+ cleanup from 2014-11-01 (Bug#18972).
+
+2014-11-07 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c: Call gui-set-selection instead of x-set-selection.
+ * xdisp.c (window-scroll-functions): Improve docstring.
+
+2014-11-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Uniquify the 'size' symbol.
+ * frame.c (Qsize):
+ * w32notify.c (Qsize): Remove.
+ * lisp.h (Qsize): New decl.
+ * lread.c (Qsize): Now extern.
+ * w32notify.c (syms_of_w32notify): No need to defsym.
+
+2014-11-07 Martin Rudalics <rudalics@gmx.at>
+
+ * dispnew.c (change_frame_size_1): Fix call of
+ adjust_frame_size.
+ * frame.c (Qsize, Qframe_position, Qframe_outer_size)
+ (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
+ (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
+ (Qtool_bar_size): New constants.
+ (frame_inhibit_resize, adjust_frame_size): New argument to
+ handle case where frame_inhibit_implied_resize is a list.
+ (Fmake_terminal_frame, Fset_frame_height, Fset_frame_width)
+ (Fset_frame_size, x_set_left_fringe, x_set_right_fringe)
+ (x_set_right_divider_width, x_set_bottom_divider_width)
+ (x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars)
+ (x_set_scroll_bar_width, x_set_scroll_bar_height):
+ Update callers.
+ (frame-inhibit-implied-resize): Rewrite doc-string.
+ * frame.h (frame_inhibit_resize, adjust_frame_size):
+ Fix external declarations.
+ (Qframe_position, Qframe_outer_size)
+ (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
+ (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
+ (Qtool_bar_size): Extern them.
+ * gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH)
+ (xg_height_or_width_changed): Remove.
+ (xg_frame_set_char_size): Adjust adjust_frame_size calls.
+ (menubar_map_cb, xg_update_frame_menubar, free_frame_menubar)
+ (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
+ (xg_change_toolbar_position): Call adjust_frame_size directly.
+ * nsfns.m (x_set_internal_border_width, Fx_create_frame):
+ Fix calls of adjust_frame_size.
+ * w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines)
+ (Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size calls.
+ (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
+ frame can get resized when tool-bar-lines parameter changes from
+ or to zero.
+ (Fw32_frame_menu_bar_size): Return fourth value.
+ (Fw32_frame_rect): Block input around system calls
+ (Fx_frame_geometry): New function.
+ * w32menu.c (set_frame_menubar): Adjust adjust_frame_size call.
+ * w32term.c (x_new_font): Adjust adjust_frame_size call.
+ * widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize call.
+ * window.c (Fset_window_configuration): Adjust adjust_frame_size call.
+ * xfns.c (x_set_menu_bar_lines, x_set_internal_border_width)
+ (Fx_create_frame): Adjust adjust_frame_size calls.
+ (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
+ frame can get resized when tool-bar-lines parameter changes from
+ or to zero.
+ (Fx_frame_geometry): New function.
+ * xmenu.c (update_frame_menubar): On Lucid call
+ adjust_frame_size with one pixel less height to avoid that
+ repeatedly adding/removing the menu bar grows the frame.
+ (free_frame_menubar): On Motif arrange to optionally preserve
+ the old frame height when removing the menu bar.
+ * xterm.c (x_new_font): Adjust adjust_frame_size call.
+
+2014-11-03 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
+ (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
+ frame; instead, print an error message.
+
+2014-11-03 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
+
+2014-11-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsimage.m (allocInitFromFile:): Initialize bmRep.
+ (dealloc): Release bmRep.
+
+ * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
+ imageListSetNext, imageListNext.
+
+ * nsimage.m (ImageList, imageListNext, imageListSetNext:)
+ (reference): Remove.
+ (allocInitFromFile:): Remove searching ImageList and calling
+ reference (Bug#18918).
+ (dealloc): Remove handling if ImageList.
+
+2014-11-02 Andreas Schwab <schwab@linux-m68k.org>
+
+ * process.c (catch_child_signal): Fix incorrect assertion.
+
+2014-11-01 Jan Djärv <jan.h.d@swipnet.se>
+
+ * macfont.m (macfont_draw):
+ * nsterm.m (ns_mouse_position, judge): Clean up merge conflict.
+
+ * macfont.m (macfont_glyph_extents): Turn off synthetic bold
+ if force_integral_p (i.e. no antialias).
+ (macfont_draw): Check ns_antialias_text, also turn off synthetic
+ bold if no antialias (Bug#18876).
+
+ * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
+ was given (Bug#18846).
+
+ * nsterm.h (ns_set_doc_edited): Declare taking no args.
+
+ * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
+ instead of in xdisp.c, function now takes void. (Bug#18884).
+
+ * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
+ (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
+
+ * nsterm.h (EmacsScroller): Replace Lisp_Object win with
+ struct window* (Bug#18889).
+ Remove getMouseMotionPart.
+ (ns_output): Make icon_top/left int.
+
+ * nsfns.m (x_icon): icon_top/left is int.
+
+ * nsterm.m (ns_mouse_position): Remove unused code.
+ (initFrame:window:, dealloc): Use window instead of win.
+ (getMouseMotionPart:window:x:y:): Remove, unused.
+ (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
+
+2014-11-01 Eli Zaretskii <eliz@gnu.org>
+
+ * keyboard.c (readable_events): When FLAGS include
+ READABLE_EVENTS_FILTER_EVENTS, ignore BUFFER_SWITCH_EVENT events.
+ This avoids returning non-nil from input-pending-p when only such
+ events are in the queue. (Bug#18856)
+
+2014-11-01 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME)
+ (NXPrimaryPboard, NXSecondaryPboard): Declare static.
+ (Qforeign_selection): Remove.
+ (ns_get_local_selection): Identation fix.
+ (syms_of_nsselect): Remove Qforeign_selection, ns-lost-selection-hooks
+
+ * nsselect.m (ns_get_local_selection): Remove calling of
+ functions in Vselection_converter_alist (Bug#18911).
+ (syms_of_nsselect): Remove Vselection_converter_alist.
+
+2014-10-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * font.c (copy_font_spec): Redesign to avoid Fcopy_alist
+ and unnecessary initialization. Adjust comments.
+
+2014-10-30 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_cache_reset_to): Invalidate bidi_cache_last_idx by
+ setting it to -1.
+ (bidi_find_bracket_pairs): Pass to bidi_cache_reset_to a relative
+ index, not an absolute one, as that's what the function expects.
+
+2014-10-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to realize
+ font on an initial frame when running as a daemon (Bug#18869).
+
+ * fontset.c (toplevel): Adjust comment to match 2014-06-19 change.
+
+2014-10-30 Eli Zaretskii <eliz@gnu.org>
+
+ * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
+ build_string, when importing a home directory. (Bug#18873)
+
+2014-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords):
+ Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
+ account for the header-line height. (Bug#18839)
+
+2014-10-28 Ulf Jasper <ulf.jasper@web.de>
+
+ * xml.c (parse_region): Do not forget the first document child.
+
+2014-10-25 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsselect.m: pasteboard_changecount is new.
+ (ns_store_pb_change_count, ns_get_pb_change_count)
+ (ns_get_our_change_count_for): New functions.
+ (ns_string_to_pasteboard_internal): Correct comment.
+ type => gtype in eassert, Call ns_store_pb_change_count.
+ (Fns_own_selection_internal): Remove data, use value (Bug#18799).
+ (Fns_disown_selection_internal, Fns_selection_owner_p):
+ Replace Vselection_alist check, with change count check.
+ (Fns_get_selection): Initialize val to Qnil. Only get local
+ selection if change counts match (Bug#18799).
+ (nxatoms_of_nsselect): Initialize pasteboard_changecount.
+
+2014-10-25 Noam Postavsky <npostavs@users.sourceforget.net>
+
+ * w32proc.c (create_child): If calling a quoted batch file,
+ pass NULL for exe. (Bug#18745)
+
+2014-10-24 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
+ (bidi_resolve_brackets): Use end of string position rather than ZV
+ when iterating over a string. (Bug#18815)
+
+2014-10-24 Martin Rudalics <rudalics@gmx.at>
+
+ * keyboard.c (make_lispy_position): Return coordinates also when
+ on scroll bars, fringes, margins or not in a window.
+ * xdisp.c (show_mouse_face): Don't change cursor face during
+ mouse tracking.
+
+2014-10-23 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size)
+ (frame_resize_pixelwise, frame_inhibit_implied_resize):
+ Fix doc-strings (Bug#18789).
+
+2014-10-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
+
+2014-10-22 Eli Zaretskii <eliz@gnu.org>
+
+ Optimize redisplay of simple bracketed text.
+ * bidi.c (bidi_cache_reset_to): New function.
+ (bidi_cache_reset): Call it.
+ (bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
+ member to -1.
+ (bidi_resolve_explicit): Reset bracket_pairing_pos and
+ bracket_enclosed_type only if bracket_pairing_pos's value is not
+ ZV.
+ (MAX_BPA_STACK): Make sure the value is signed.
+ (PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
+ stop pushing values onto the stack.
+ (bidi_find_bracket_pairs): If the bracketed text is only on the
+ base embedding level, remove all the states cached by this
+ function from the cache, and return zero, so that the brackets in
+ this segment of text are processed as normal neutrals.
+ (bidi_resolve_brackets): Detect the brackets that are to be
+ processed as neutrals, and don't call bidi_find_bracket_pairs on
+ them. (Bug#18778)
+
+2014-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * w32select.c (Fw32_selection_exists_p): Rename from
+ Fx_selection_exists_p.
+ (syms_of_w32select): Adjust accordingly.
+
+ * w16select.c (Fw16_selection_exists_p): Rename from
+ Fx_selection_exists_p.
+ (syms_of_win16select): Adjust accordingly.
+
+ * nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
+ (Fns_own_selection_internal): Tighten scoping.
+ (Fns_selection_exists_p): Rename from Fx_selection_exists_p.
+ (Fns_get_selection): Rename from Fx_get_selection_internal.
+ (Fns_get_selection_internal, Fns_store_selection_internal):
+ Remove functions.
+ (syms_of_nsselect): Adjust accordingly.
+
+2014-10-21 Martin Rudalics <rudalics@gmx.at>
+
+ * w32fns.c (Fw32_frame_menu_bar_size): New function.
+ * w32term.c (x_set_window_size): Account for wrapped menu bar
+ lines when setting up frame height (Bug#15174 and Bug#18720).
+ (w32_add_wrapped_menu_bar_lines): New variable.
+
+2014-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
+ move point.
+
+2014-10-20 Glenn Morris <rgm@gnu.org>
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-19 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call
+ g_object_notify for label if Gtk+ >= 2.16 (Bug#16522).
+
+ * xterm.h (x_output): Remove net_wm_state_hidden_seen.
+
+ * xterm.c (handle_one_xevent): Check return value from
+ x_handle_net_wm_state, remove net_wm_state_hidden_seen (Bug#18722).
+ (get_current_wm_state): Remove net_wm_state_hidden_seen setting.
+
+ * gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
+ Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14 (Bug#18674).
+ (make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
+ Gtk+ >= 3.14 (Bug#18674).
+ (update_frame_tool_bar): Don't use gtk_misc_set_padding on
+ Gtk+ >= 3.14 (Bug#18674).
+
+2014-10-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gtkutil.c: Remove no-longer-used code.
+ (xg_update_menubar): Remove unused local and unnecessary call to
+ gtk_menu_item_get_submenu.
+ (XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback)
+ (xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback)
+ (TOOLBAR_TOP_WIDGET): Remove; no longer used.
+
+2014-10-18 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar.
+
+ * xterm.h (handlebox_widget): Remove.
+
+ * xmenu.c (set_frame_menubar): Remove GTK block that calls
+ xg_have_tear_offs.
+
+ * gtkutil.h (xg_have_tear_offs): Remove declaration.
+
+ * gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines
+ to handle Gtk versions.
+ (xg_get_file_with_chooser): Use them.
+ (xg_have_tear_offs, tearoff_remove, tearoff_activate):
+ Remove (create_menus): Remove teroff argument and code.
+ Remove call to gtk_menu_set_title.
+ (xg_update_menubar, xg_update_submenu): Remove tearoff code.
+ Adjust args to create_menus.
+ (xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback)
+ (xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove.
+ (xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code.
+ (xg_make_tool_item): Remove detach code.
+ (xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET.
+ (find_icon_from_name): New function.
+ (update_frame_tool_bar): Remove GtkStockItem code, move to
+ find_icon_from_name. Let stock be a list of icon names to try.
+ Only use gtk_image_new_from_stock on Gtk+ < 3.10.
+ Replace TOOLBAR_TOP_WIDGET.
+ (free_frame_tool_bar, xg_change_toolbar_position ):
+ Replace TOOLBAR_TOP_WIDGET.
+ (xg_initialize): Remove tearoff code.
+
+2014-10-18 Eli Zaretskii <eliz@gnu.org>
+
+ * xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1
+ pixel from the window's cursor glyph width, since X renders hollow
+ blocks 1 pixel wider than the 'width' parameter.
+
+ * xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from
+ glyph->pixel_width; this is now done in xterm.c.
+
+ Fix reordering of bracket characters in isolates.
+ * bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
+ RESOLVED_ONLY; when non-zero, return from the cache only fully
+ resolved states. All callers changed.
+ (CANONICAL_EQU): New macro.
+ (PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
+ equivalent of the paired closing bracket character.
+ (bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
+ the default non-negative value, to be checked later in
+ bidi_resolve_brackets. Use CANONICAL_EQU to test candidate
+ characters against those pushed onto the BPA stack.
+ (bidi_record_type_for_neutral): New function.
+ (bidi_resolve_brackets): Record next_for_neutral and
+ prev_for_neutral when embedding level gets pushed. Force
+ resolution of bracket pairs when entering a level run that was not
+ yet BPA-resolved.
+ (bidi_resolve_neutral): Add assertions before calling
+ bidi_resolve_neutral_1.
+ (bidi_level_of_next_char): Remove the code that attempted to
+ resolve unresolved neutrals; that is now done by
+ bidi_resolve_neutral.
+
+ * w32select.c (owner_callback): Mark with ALIGN_STACK attribute.
+
+2014-10-17 Eli Zaretskii <eliz@gnu.org>
+
+ * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
+ 1-pixel R2L characters.
+ Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
+ http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
+
+2014-10-16 Eli Zaretskii <eliz@gnu.org>
+
+ * bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing
+ useful.
+
+2014-10-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bidi.c (bidi_find_bracket_pairs): Initialize local var.
+ This pacifies GCC 4.9.1 with --enable-gcc-warnings.
+ It's not clear to me whether the initialization is needed,
+ but it can't hurt so I played it safe.
+
+2014-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
+
+2014-10-15 Eli Zaretskii <eliz@gnu.org>
+
+ Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
+ * bidi.c (bidi_ignore_explicit_marks_for_paragraph_level):
+ Remove variable.
+ (bidi_get_type): Return the isolate initiators and terminator types.
+ (bidi_isolate_fmt_char, bidi_paired_bracket_type)
+ (bidi_fetch_char_skip_isolates, find_first_strong_char)
+ (bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
+ (bidi_set_sos_type): Rename from bidi_set_sor_type and updated
+ for the new features.
+ (bidi_push_embedding_level, bidi_pop_embedding_level): Update to
+ push and pop correctly for isolates.
+ (bidi_remember_char): Modify to accept an additional argument
+ and record the bidi type according to its value.
+ (bidi_cache_iterator_state): Accept an additional argument to only
+ update an existing state. Handle the new members of struct bidi_it.
+ (bidi_cache_find): Arguments changed: no longer accepts a level,
+ instead accepts a flag telling it whether it is okay to return
+ unresolved neutrals.
+ (bidi_initialize): Initiate and staticpro the bracket-type uniprop
+ table. Initialize new isolate-related members.
+ (bidi_paragraph_init): Some code factored out into
+ find_first_strong_char.
+ (bidi_resolve_explicit_1): Function deleted, its code incorporated
+ into bidi_resolve_explicit.
+ (bidi_resolve_explicit): Support the isolate initiators and
+ terminator. Fix handling of embeddings and overrides according to
+ new UBA requirements. Record information about previously seen
+ characters here (moved from bidi_level_of_next_char).
+ (bidi_resolve_weak): Adapt to changes in struct members.
+ (FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
+ (STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
+ (bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
+ paired bracket resolution. Handle isolate initiators and
+ terminator.
+ (bidi_type_of_next_char): Remove unneeded code for BN limit.
+ (bidi_level_of_next_char): Move the code that records information
+ about previous characters to bidi_resolve_explicit. Fix logic of
+ resolving neutrals and make sure their cache entries are updated.
+ Remove now unneeded special handling of PDF level.
+
+ * dispextern.h (struct glyph): Enlarge the width of resolved_level.
+ (BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
+ enlarged per Unicode 6.3.
+ (enum bidi_bracket_type_t): New data type.
+ (struct bidi_saved_info): Leave only 2 type members out of 4.
+ Remove bytepos.
+ (struct bidi_stack): Add members necessary to support isolating
+ sequences.
+ (struct bidi_it): Add new members necessary to support isolating
+ sequences and bracket pair resolution.
+
+ * xdisp.c (Fbidi_resolved_levels): New function.
+ (syms_of_xdisp): Defsubr it.
+ (append_glyph, append_composite_glyph, produce_image_glyph)
+ (append_stretch_glyph, append_glyphless_glyph): Convert aborts to
+ assertions.
+ (syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
+
+ * term.c (append_glyph, append_composite_glyph)
+ (append_glyphless_glyph): Convert aborts to assertions.
+
+ * .gdbinit (pgx): Display the character codepoint, resolved level,
+ and bidi type also for glyphless glyphs.
+
+2014-10-15 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid unwanted point motion in Fline_beginning_position.
+ * lisp.h (scan_newline_from_point): Add prototype.
+ * search.c (scan_newline_from_point): New function, refactored from...
+ * cmds.c (Fforward_line): ...adjusted user.
+ * editfns.c (Fline_beginning_position): Use scan_newline_from_point
+ and simplify the former since the latter doesn't move point.
+
+2014-10-14 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Cleanup terminal handling code.
+ * dispextern.h (get_named_tty): Remove prototype but...
+ * termhooks.h (get_named_terminal): ...resurrect it under
+ more meaningful name.
+ (get_terminal): Likewise, but with...
+ (decode_live_terminal): ...this name.
+ (decode_tty_terminal): Add prototype.
+ * term.c (get_tty_terminal): Remove.
+ (get_named_tty): Remove.
+ (Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
+ (Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
+ Use decode_tty_terminal.
+ (Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
+ * terminal.c (get_terminal): Refactor to...
+ (decode_terminal, decode_live_terminal): ...new functions.
+ (decode_tty_terminal): Replacement for get_tty_terminal.
+ (get_named_terminal): Likewise for get_named_tty.
+ * coding.c (Fset_terminal_coding_system_internal)
+ (Fterminal_coding_system, Fset_keyboard_coding_system_internal):
+ (Fkeyboard_coding_system):
+ * composite.c (Fcomposition_get_gstring):
+ * dispnew.c (Fsend_string_to_terminal):
+ * frame.c (Fmake_terminal_frame):
+ * nsfns.m (check_ns_display_info):
+ * w32fns.c, xfns.c (check_x_display_info):
+ * xselect.c (frame_for_x_selection): Use decode_live_terminal.
+ * keyboard.c (handle_interrupt_signal, handle_interrupt)
+ (Fset_quit_char): Use get_named_terminal.
+ (Fset_output_flow_control, Fset_input_meta_mode):
+ Use decode_tty_terminal.
+
+2014-10-13 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish
+ between 32-bit and 64-bit MinGW builds. (Bug#18699)
+
+2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
+ * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
+
+2014-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
+ (bug#18638).
+
+2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * editfns.c (dump_tz_string): No longer const.
+ It might be modified.
+
+ * nsmenu.m (clear): Assume OS X 10.6 or later.
+
+2014-10-12 Jan Djärv <jan.h.d@swipnet.se>
+
+ * unexmacosx.c: Remove include ppc/reloc.h.
+ (unrelocate, copy_dysymtab): Remove PPC code.
+ (rebase_reloc_address): Remove, only used for PPC:
+
+ * nsterm.m: Always include macfont.h on COCOA.
+ (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
+ (ns_dumpglyphs_image, ns_check_menu_open)
+ (applicationDidFinishLaunching)
+ (antialiasThresholdDidChange:)
+ (keyDown:, toggleFullScreen:, setPosition:portion:whole:):
+ Remove checks for OSX <= 10.5/10.6.
+ (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
+ (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
+ GNUSTEP.
+
+ * nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
+ (NS_HAVE_NSINTEGER): Remove block.
+ Remove >= OSX 10.6 tests.
+
+ * nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
+ (x_activate_menubar, trackingNotification:): Remove check for
+ OSX >= 10.5.
+ (menuNeedsUpdate:): Remove check for OSX < 10.5.
+
+ * nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.
+
+ * nsfns.m: Always include macfont.h on COCOA.
+ (ns_filename_from_panel, ns_directory_from_panel)
+ (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
+ (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6
+
+ * macfont.m: Remove >= 1050 check.
+ (macfont_create_family_with_symbol)
+ (macfont_get_glyph_for_character)
+ (mac_font_get_glyphs_for_variants)
+ (mac_ctfont_create_available_families, syms_of_macfont):
+ Remove code for OSX < 10.6.
+ (mac_font_family_group, mac_font_family_compare): Remove, only used
+ for OSX < 10.6.
+
+ * macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
+ (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6
+
+ * Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
+ comment.
+
+2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix putenv race conditions with undefined behavior (Bug#8705).
+ Do all putenv calls before Emacs creates any threads.
+ Use a safer way to modify the TZ environment variable in the
+ presence of multiple threads. For further thread-safety,
+ prefer localtime_r and gmtime_r to localtime and gmtime,
+ and prefer struct tm's tm_gmtoff (if available) to calling
+ both localtime_r and gmtime_r.
+ * dbusbind.c (Fdbus__init_bus): Move xputenv call from here ...
+ (init_dbusbind): ... to this new function.
+ * emacs.c (main) [HAVE_DBUS]: Call it before creating threads.
+ * xterm.c (x_term_init): Move xputenv call from here ...
+ (init_xterm): ... to this new function.
+ * emacs.c (main) [USE_GTK]: Call it before creating threads.
+ * editfns.c (HAVE_TM_GMTOFF): Default to false.
+ (dump_tz_string): New constant.
+ (init_editfns): Use it. This centralizes the dump_tz stuff.
+ Call set_time_zone_rule here, so that its xputenv is done
+ before Emacs goes multithreaded.
+ (mktime_z) [!HAVE_TZALLOC]: New function, which is typically
+ thread-safe enough for Emacs.
+ (format_time_string, Fdecode_time, Fcurrent_time_string)
+ (Fcurrent_time_zone):
+ Prefer localtime_r and gmtime_r, which are more thread-safe, to
+ localtime and gmtime. Remove now-unnecessary calls to block_input.
+ (tm_gmtoff): New static function.
+ (Fdecode_time, Fcurrent_time_zone): Use it.
+ (Fencode_time): Use mktime_z, for better thread-safety.
+ (set_time_zone_rule): Now static. Rewrite to be mostly thread-safe,
+ i.e., not quite thread-safe but good enough for Emacs typical usage.
+ Do not reclaim storage that is in the environment; let it leak.
+ Always call tzset, since localtime_r does not.
+ * emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff.
+ This is now done in init_editfns.
+ * systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]:
+ New macros and declarations, for platforms lacking tzalloc & friends.
+
+2014-10-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
+ On x86 platforms this works around GCC bug 63495
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
+ and more generally should fix a portability problem in Emacs.
+ Reported by Stefan Monnier in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html
+
+2014-10-08 Leo Liu <sdl.web@gmail.com>
+
+ Enhance terpri to allow conditionally output a newline. (Bug#18652)
+ * keymap.c (describe_vector_princ):
+ * keyboard.c (Fcommand_error_default_function): Adapt to change to
+ Fterpri.
+
+ * print.c (printchar_stdout_last): Declare.
+ (printchar): Record the last char written to stdout.
+ (Fterpri): Add optional argument ENSURE.
+
+2014-10-08 Eli Zaretskii <eliz@gnu.org>
+
+ * w32inevt.c (maybe_generate_resize_event): Pass non-zero as the
+ DELAY argument to change_frame_size, so that the frame size
+ changes, if any are needed, are delayed until the next redisplay.
+ This is to avoid a too early QUIT inside change_frame_size, when
+ it calls Lisp in frame_windows_min_size, in case one of the events
+ we've read sets the quit-flag. (Bug#18649)
+
+ * w32fns.c (check_x_display_info): Accept terminal objects as
+ argument, to follow what xfns.c does.
+
+2014-10-07 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in ($(srcdir)/macuvs.h)
+ ($(lispsource)/international/charprop.el): Add explicit FORCE.
+
+2014-10-07 Eli Zaretskii <eliz@gnu.org>
+
+ * decompress.c (init_zlib_functions): Move the message about zlib
+ being unavailable from here...
+ (Fzlib_decompress_region): ...to here. (Bug#18650)
+
+2014-10-07 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * font.c (Ffont_get_glyphs): Use validate_subarray and fix
+ the case where an optional string is used. Adjust docstring.
+
+2014-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lisp.mk (lisp): Remove w32-common-fns.elc.
+
+2014-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927).
+ These were already defined in buffer.c, and the duplicate
+ definitions cause problems on platforms like 'gcc -fno-common'.
+ Reported by Peter Dyballa in: http://bugs.gnu.org/9927#137
+
+2014-10-05 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (updateFrameSize:): Only call update_frame_tool_bar
+ if toolbar is visible.
+
+ * nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than
+ 0.23 (Bug#18030).
+
+ * nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new.
+ (toggleFullScreen:): Use ns-use-fullscreen-animation for animate.
+ (ns_select, ns_read_socket): Use unwind_protect to decrease
+ apploopnr (Bug#18345).
+ (ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than
+ line height (Bug#17977).
+
+ * macfont.m: Fix indentation and import changes from macport 24.3.94.
+ (macfont_closest_traits_index): New function.
+ (macfont_closest_traits_index_p): Rename from
+ macfont_closest_traits_index.
+ (macfont_list): Use macfont_closest_traits_index_p.
+
+2014-10-05 K. Handa <handa@gnu.org>
+
+ * coding.c (detect_coding_iso_2022): Set coding->rejected
+ correctly when an invalid escape sequence is found (Bug#18610).
+
+2014-10-04 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (create_menus): Only add tearoffs to empty menus.
+ (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
+ for add_tearoff_p.
+
+2014-10-04 Martin Rudalics <rudalics@gmx.at>
+
+ * buffer.c (scroll_bar_width, scroll_bar_height):
+ Fix doc-strings.
+ * window.c (Fset_window_scroll_bars): Fix doc-string.
+ (Fwindow_scroll_bars): Have it return what the doc-string says.
+
+2014-10-03 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
+ iterator backwards, to resync the bidi iterator. (Bug#18584)
+
+2014-10-03 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Consistently use min and max macros from lisp.h.
+ * coding.c (min, max):
+ * font.c (MAX):
+ * unexhp9k800.c (min):
+ * unexw32.c (min, max): Use definitions from lisp.h.
+ * regex.c (MAX, MIN) [!emacs]: Define own max and min as such.
+ Adjust users.
+ * gmalloc.c (min): Tiny style change.
+
+ * fileio.c (emacs_readlinkat, Finsert_file_contents):
+ * w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING.
+
+2014-10-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586).
+ * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN)
+ (X_ULONG_MAX): Move these macros to xterm.h.
+ (x_fill_property_data): Be more generous about allowing either
+ signed or unsigned data of the appropriate width.
+ * xterm.h (x_display_set_last_user_time): New function.
+ All setters of last_user_time changd to use this function.
+ If ENABLE_CHECKING, check that the times are in range.
+
+2014-10-02 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of
+ 'ssize_t'. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
+
+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>
+
+ Use known length of a Lisp string to copy it faster.
+ * lisp.h (lispstrcpy): New function. Add comment.
+ * callproc.c (child_setup):
+ * dbusbind.c (xd_append_arg):
+ * doc.c (get_doc_string):
+ * font.c (Ffont_xlfd_name):
+ * frame.c (xrdb_get_resource):
+ * process.c (Fmake_network_process, network_interface_info):
+ * w32fns.c (Fx_open_connection):
+ * w32proc.c (sys_spawnve):
+ * xfns.c (select_visual):
+ * xfont.c (xfont_list):
+ * xsmfns.c (x_session_initialize):
+ * xterm.c (x_term_init): Use it.
+
+2014-09-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix SAFE_ALLOCA to not exhaust the stack when in a loop.
+ Reported by Dmitry Antipov in thread leading to:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html
+ This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP;
+ the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS
+ remain unfixed.
+ * callproc.c (call_process): Save and restore sa_avail.
+ * lisp.h (USE_SAFE_ALLOCA): Define sa_avail.
+ (AVAIL_ALLOCA): New macro.
+ (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP):
+ Use it, and check against sa_avail rather than MAX_ALLOCA.
+
+2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ On OSX, do not free font-specific data more than once (Bug#18501).
+ * 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)
+
+ * unexmacosx.c (dump_it): Improve error message.
+
+2014-09-22 Juri Linkov <juri@jurta.org>
+
+ * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
+ (Bug#10747, bug#18334)
+
+2014-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
+ units in which the position is measured. (Bug#18493)
+
+ * xdisp.c (redisplay_internal): Force redisplay of all windows
+ that show a buffer whose narrowing has changed. (Bug#18490)
+
+2014-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
+ * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
+ lines, draw the hollow-box and hbar cursors on the right side of
+ cursor-glyph. Thanks to martin rudalics <rudalics@gmx.at> for
+ testing on X.
+
+ * xterm.c (x_draw_stretch_glyph_string):
+ * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
+ caused the block cursor to disappear on a TAB in R2L lines in
+ every window except the leftmost one. Reported by Martin Rudalics
+ <rudalics@gmx.at>.
+
+2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Always use matched specpdl entry to record call arguments (Bug#18473).
+ * lisp.h (record_in_backtrace): Adjust prototype.
+ * eval.c (record_in_backtrace): Return current specpdl level.
+ (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users.
+ (eval_sub, Ffuncall): Record call arguments in matched specpdl
+ entry and use that entry in call to backtrace_debug_on_exit.
+ (apply_lambda): Likewise. Get current specpdl level as 3rd arg.
+ (do_debug_on_call): Get current specpdl level as 2nd arg.
+
+ Prefer ptrdiff_t to int and avoid integer overflows.
+ * fileio.c (make_temp_name):
+ * font.c (font_parse_family_registry): Avoid integer
+ overflow on string size calculation.
+ * data.c (Faset): Likewise for byte index.
+
+2014-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ Fix display of R2L lines in partial-width windows.
+ * xdisp.c (init_iterator): Don't use it->bidi_p before it is
+ assigned the correct value.
+ (extend_face_to_end_of_line): Account for truncation and
+ continuation glyphs in R2L rows when one of the fringes is not
+ displayed.
+ (display_line): Don't assign negative X offset to a row if we are
+ going to produce a truncation glyph for it. When handling
+ truncated R2L rows, consider the width of the left fringe instead
+ of the right one.
+ (produce_special_glyphs): Fix bogus assignments.
+
+2014-09-22 Eli Zaretskii <eliz@gnu.org>
+
+ * fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is
+ always set to a valid value. Make sure the size passed to alloca
+ is always positive. (Bug#18516)
+
+2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid extra call to oblookup when interning symbols.
+ * lisp.h (intern_driver): Add prototype.
+ * lread.c (intern_driver): New function.
+ (intern1, intern_c_string_1, Fintern):
+ * font.c (font_intern_prop):
+ * w32font.c (intern_font_name): Use it.
+
+2014-09-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor improvements to new stack-allocated Lisp objects.
+ * frame.h (FRAME_PARAMETER):
+ Prefer scoped_list1 to local_list1 where either would do.
+ * lisp.h (scoped_list4): New macro.
+ (local_cons, local_list1, local_list2, local_list3, local_list4)
+ (make_local_vector, make_local_string, build_local_string):
+ Prefer functions to macros where either would do.
+ * xdisp.c (build_desired_tool_bar_string):
+ Prefer scoped_list4 to local_list4 where either would do.
+
+2014-09-18 Dmitry Antipov <dmantipov@yandex.ru>
+
+ More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS.
+ * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro.
+ [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4.
+ * frame.h (FRAME_PARAMETER): New macro.
+ * dispnew.c (init_display):
+ * fontset.c (Fset_fontset_font):
+ * frame.c (x_default_parameter):
+ * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face):
+ * xfns.c (x_default_scroll_bar_color_parameter)
+ (x_default_font_parameter, x_create_tip_frame): Use it.
+ * editfns.c (Fpropertize): Use local_cons.
+ * process.c (status_message): Use build_local_string.
+ * xfont.c (xfont_open): Use make_local_string.
+ * xdisp.c (build_desired_tool_bar_string): Use local_list4.
+
+2014-09-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.
+ * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ &&
+ !__clang__. This works with GCC and with clang and is safer for
+ compilers we don't know about.
+ (local_cons): Rename parameter to make capture less likely.
+
+2014-09-17 Samuel Bronson <naesten@gmail.com>
+
+ * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
+
+2014-09-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix minor problems found by static checking.
+ * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj):
+ Remove; now unused.
+ * buffer.h (decode_buffer): Doc and indentation fixes.
+ * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static.
+
+2014-09-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid clang-specific warnings.
+ * buffer.c (init_buffer): Shut up -Wself-assign.
+ * process.c (server_accept_connection): Shut up -Wunsequenced.
+
+2014-09-16 Daniel Colascione <dancol@dancol.org>
+
+ * fns.c (sxhash): For symbols, use address as hash code.
+
+2014-09-16 Dmitry Antipov <dmantipov@yandex.ru>
+
+ If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack.
+ * charset.c (load_charset_map_from_file): Use scoped_list2
+ and build_local_string.
+ * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
+ * emacs.c (init_cmdargs, decode_env_path):
+ * fileio.c (Fexpand_file_name):
+ * fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]:
+ * frame.c (x_get_arg):
+ * keyboard.c (safe_run_hooks_error):
+ * lread.c (load_warn_old_style_backquotes):
+ * xdisp.c (Fcurrent_bidi_paragraph_direction):
+ * xfns.c (x_default_scroll_bar_color_parameter, select_visual):
+ * xselect.c (x_clipboard_manager_error_1)
+ (x_clipboard_manager_save_all):
+ * xterm.c (x_term_init): Use build_local_string.
+
+ Avoid more integer overflows on string size calculations.
+ * category.c (Fmake_category_set):
+ * xdisp.c (get_overlay_arrow_glyph_row):
+ * w32font.c (intern_font_name): Prefer ptrdiff_t to int.
+
+2014-09-15 Eli Zaretskii <eliz@gnu.org>
+
+ * sound.c [WINDOWSNT]: Include w32common.h and mbstring.h.
+ (SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the
+ error message format. Use message_with_string to have non-ASCII
+ file names properly displayed.
+ (do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files
+ when w32-unicode-filenames is non-nil, but not on Windows 9X,
+ where these APIs are not available even in UNICOWS.DLL.
+ Improve the format of error messages and include the file name in them
+ where appropriate.
+ (Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch
+ call play-sound-functions, per documentation.
+
+ * w32.c (w32_get_long_filename, w32_get_short_filename):
+ Constify the input file name arguments.
+
+ * w32.h (w32_get_long_filename, w32_get_short_filename):
+ Update prototypes.
+
+2014-09-15 Dmitry Antipov <dmantipov@yandex.ru>
+
+ If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack.
+ * lisp.h (local_cons, local_list1, local_list2, local_list3)
+ [USE_LOCAL_ALLOCATORS]: New macros.
+ [!USE_LOCAL_ALLOCATORS]: Fall back to regular functions.
+ (build_local_string): Avoid argument name expansion clash with
+ make_local_string.
+ * alloc.c (toplevel)
+ [USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]:
+ Preprocessor guard to avoid impossible configuration.
+ * charset.c (Ffind_charset_region, Ffind_charset_string):
+ Use make_local_vector.
+ * lread.c (read1, substitute_object_recurse): Use scoped_cons.
+ * textprop.c (Fput_text_property, Fadd_face_text_property):
+ Use scoped_list2.
+ (copy_text_properties): Use local_cons and local_list3.
+ * chartab.c (uniprop_table):
+ * data.c (wrong_choice, wrong_range):
+ * doc.c (get_doc_string):
+ * editfns.c (format2):
+ * fileio.c (Fexpand_file_name, auto_save_error):
+ * fns.c (Fyes_or_no_p):
+ * font.c (font_parse_xlfd, font_parse_family_registry, font_add_log):
+ * fontset.c (Fset_fontset_font):
+ * keyboard.c (echo_add_key, echo_dash, parse_menu_item)
+ (read_char_minibuf_menu_prompt):
+ * keymap.c (silly_event_symbol_error, describe_vector):
+ * menu.c (single_menu_item):
+ * minibuf.c (Fread_buffer):
+ * process.c (status_message, Fformat_network_address)
+ (server_accept_connection): Use make_local_string and
+ build_local_string. Prefer compound literals where appropriate.
+
+2014-09-15 Daniel Colascione <dancol@dancol.org>
+
+ * fns.c (Fsort): Tweak sort docstring.
+
+2014-09-15 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes.
+ (sys_write): When a write to a non-blocking pipe returns ENOSPC,
+ set errno to EAGAIN instead, to allow the caller to retry the
+ write after some waiting. Fixes deadlocks when Emacs exchanges a
+ lot of data through the pipe. (Bug#18420)
+
+ * sound.c (Fplay_sound_internal): Encode the sound file name in
+ the ANSI codepage. Expand it against data-directory, as per docs,
+ not against the current directory. No need to make a local copy
+ of the file name; pass the encoded file name directly to
+ do_play_sound. (Bug#18463)
+
+ * w32.c (ansi_encode_filename): If w32_get_short_filename returns
+ NULL, and the file name is not encodable in ANSI codepage, return
+ the string with "?" replacement characters, which will fail the
+ caller. This avoids returning a random value in that case.
+
+2014-09-15 Martin Rudalics <rudalics@gmx.at>
+
+ * window.c (Fresize_mini_window_internal): Set w->total_lines
+ from w->pixel_height (Bug#18422).
+
+2014-09-15 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
+ (toggleFullScreen:): Take frame_resize_pixelwise into account when
+ setting resize increments (Bug#18435).
+
+2014-09-15 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (pos_visible_p): Properly save and restore the iterator
+ state around the call to line_bottom, since it can move the
+ iterator to another screen line. This fixes off-by-one errors in
+ the reported row in some rare cases.
+
+2014-09-14 Jan Djärv <jan.h.d@swipnet.se>
+
+ * callproc.c (init_callproc): Fix bug introduced at
+ 2014-09-07 (Bug#18474).
+
+2014-09-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Prefer ptrdiff_t to int and avoid integer overflows.
+ * fileio.c (make_temp_name):
+ * font.c (font_parse_family_registry): Avoid integer
+ overflow on string size calculation.
+ * data.c (Faset): Likewise for byte index.
+
+2014-09-12 Detlev Zundel <dzu@member.fsf.org>
+
+ * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
+
+2014-09-11 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * lisp.h (make_local_string): Nitpick indent.
+ * print.c (Fprin1_to_string): Remove unused GCPROs.
+
+ More debugging aids around GCPROs.
+ * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members.
+ (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7):
+ Minor restyle. If DEBUG_GCPRO, initialize extra fields.
+
+ * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix
+ bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
+
+ Remove redundant GCPROs around Ffuncall and Fapply calls.
+ This is safe because Ffuncall protects all of its arguments by itself.
+ * charset.c (map_charset_for_dump): Remove redundant GCPRO.
+ * eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5)
+ (call6, call7): Likewise. Use compound literals where applicable.
+ (run_hook_with_args_2): Use compound literal.
+
+2014-09-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Pacify --enable-gcc-warnings when no window system is used.
+ These warnings found that subscript error, so they seem worthwhile.
+ * composite.c (char_composable_p): Simplify a bit.
+ * frame.c (x_set_frame_parameters): Add an IF_LINT.
+ * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
+ * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
+ * window.c (set_window_scroll_bars):
+ Use USE_HORIZONTAL_SCROLL_BARS for simplicity.
+ * frame.h [! USE_HORIZONTAL_SCROLL_BARS]:
+ Ignore -Wsuggest-attribute=const.
+ * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro.
+ (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it.
+
+2014-09-10 Paul Eggert <eggert@penguin.cs.ucla.edu>
+
+ * charset.c (Fget_unused_iso_final_char): Fix subscript error.
+ Use check_iso_charset_parameter instead of doing the checks by hand.
+ (check_iso_charset_parameter): Move up. Check parameters a bit
+ more carefully, and return true for 96-char sets. All callers changed.
+
+2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify lisp.h by removing the __COUNTER__ business.
+ Reported by Dmitry Antipov in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00220.html
+ * lisp.h (make_local_vector, make_local_string)
+ (build_local_string): Simplify by not bothering with __COUNTER__.
+ The __COUNTER__ business wasn't working properly, and was needed
+ only for hypothetical future expansion anyway.
+
+2014-09-10 Alp Aker <alp.tekin.aker@gmail.com>
+
+ * nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other
+ terms to determine bitmap color. (Bug#18437)
+
+2014-09-10 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
+ translation buffer.
+
+2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
+
+2014-09-10 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (handle_one_xevent): Detect iconified by looking at
+ _NET_WM_STATE_HIDDEN.
+
+2014-09-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove.
+ These can generate a constant with the correct value but the wrong
+ width, which doesn't work as a printf argument. All uses removed.
+ Reported by Dmitry Antipov in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00213.html
+ (ENUMABLE): Remove; no longer needed.
+ (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
+ Remove; no longer needed because of the above change.
+ Each definiens moved to the only use.
+
+ Improve the experimental local and scoped allocation.
+ * alloc.c (local_string_init, local_vector_init):
+ New functions, defined if USE_LOCAL_ALLOCATORS.
+ Mostly, these are moved here from lisp.h, as it's not
+ clear it's worth making them inline.
+ * lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
+ (GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
+ USE_STACK_LISP_OBJECTS, not on a laundry list.
+ (local_string_init, local_vector_init): New decls.
+ (union Aligned_Cons): New type.
+ (scoped_cons): Use it. Give up on the char trick, as it's a too
+ much of a maintenance hassle; if someone wants this speedup
+ they'll just need to convince their compiler to align properly.
+ Conversely, use the speedup if struct Lisp_Cons happens to
+ be aligned even without a directive. Better yet, help it along
+ by using union Aligned_Cons rather than struct Lisp_Cons.
+ (pointer_valid_for_lisp_object): Remove. This check is not
+ necessary, since make_lisp_ptr is already doing it. All uses removed.
+ (local_vector_init, local_string_init): Move to alloc.c.
+ (build_local_vector): Remove this awkward macro, replacing with ...
+ (make_local_vector): New macro, which acts more like a function.
+ Use statement expressions and use __COUNTER__ to avoid macro
+ capture. Fall back on functions if these features are not supported.
+ (build_local_string, make_local_string): Likewise.
+
+2014-09-09 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xterm.c (x_term_init): Consolidate duplicated code.
+ [USE_LUCID]: Revert 2014-04-02 change (Bug#18403). Add comment.
+ (x_delete_terminal): Do not close X connection fd (Bug#18403).
+ Add eassert and mark dpyinfo as dead only if it was alive.
+
+ Add macros to allocate temporary Lisp objects with alloca.
+ Respect MAX_ALLOCA and fall back to regular GC for large objects.
+ * character.h (parse_str_as_multibyte): Move prototype to ...
+ * lisp.h (parse_str_as_multibyte): ... here.
+ (struct Lisp_Cons): Add GCALIGNED attribute if supported.
+ (scoped_cons, scoped_list2, build_local_vector, build_local_string):
+ New macros.
+ (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
+ (local_string_init): New functions.
+ * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
+ (init_alloc_once): Call it.
+
+ Cleanup last change and make all new stuff conditional.
+ * lisp.h (build_local_string): Rename to ...
+ (make_local_string): ... this macro.
+ (build_local_string, scoped_list1, scoped_list3): New macros.
+ (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros
+ and functions as such, use regular fallbacks otherwise.
+ * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define
+ conditionally.
+
+2014-09-08 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
+ always make sure the marginal areas of the row are in sync with
+ what the window wants. (Bug#18419)
+
+ * data.c (set_internal): Use assq_no_quit, not Fassq, to find an
+ existing binding of a variable, to avoid silently aborting
+ commands that use specbind. (Bug#18331)
+
+2014-09-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix bug uncovered by changing alloca to auto buffer (Bug#18410).
+ * coding.c (growable_destination): New function.
+ (produce_chars): Use it for sanity checks. Do not fiddle with
+ dst_end if the source and destination are both nil, as it's
+ the caller's responsibility to avoid overlap.
+ * keyboard.c (read_decoded_event_from_main_queue):
+ The destination must be MAX_MULTIBYTE_LENGTH times the max source
+ length, not 4 times, to prevent decode_coding_c_string from trying
+ to reallocate a destination. This removes the need for the FIXME.
+
+ * callproc.c (exec_failed) [DOS_NT]: Define a dummy.
+ All callers simplified. Add a comment about exec_failed, vfork,
+ and alloca.
+
+ Adjust drag-and-drop fix when window is above top (Bug#18303).
+ * xselect.c (x_fill_property_data): Don't let sign bit of negative
+ XCDR bleed into XCAR's encoded value. Improve checks for
+ out-of-range data while we're at it.
+
+2014-09-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xselect.c (x_fill_property_data): Handle negative XCDR when data
+ is CONSP (Bug#18303).
+
+2014-09-07 Eli Zaretskii <eliz@gnu.org>
+
+ * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
+ 'alloca' gets passed arguments larger than MAX_ALLOCA.
+
+ * font.c (MAX): Define if not defined elsewhere.
+
+2014-09-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
+ here for destination buffer, to work around what appears to be a
+ bug in decode_coding_c_string when the source and destination are
+ both C strings.
+
+ Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410).
+ This follows up on the recent thread in emacs-devel on alloca; see:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html
+ This patch also cleans up alloca-related glitches noted while
+ examining the code looking for unbounded alloca.
+ * alloc.c (listn):
+ * callproc.c (init_callproc):
+ Rewrite to avoid need for alloca.
+ * buffer.c (mouse_face_overlay_overlaps)
+ (report_overlay_modification):
+ * buffer.h (GET_OVERLAYS_AT):
+ * coding.c (make_subsidiaries):
+ * doc.c (Fsnarf_documentation):
+ * editfns.c (Fuser_full_name):
+ * fileio.c (Ffile_name_directory, Fexpand_file_name)
+ (search_embedded_absfilename, Fsubstitute_in_file_name):
+ * fns.c (Fmake_hash_table):
+ * font.c (font_vconcat_entity_vectors, font_update_drivers):
+ * fontset.c (fontset_pattern_regexp, Ffontset_info):
+ * frame.c (Fmake_terminal_frame, x_set_frame_parameters)
+ (xrdb_get_resource, x_get_resource_string):
+ * ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf):
+ * ftxfont.c (ftxfont_draw):
+ * image.c (xbm_load, xpm_load, jpeg_load_body):
+ * keyboard.c (echo_add_key, menu_bar_items, tool_bar_items)
+
+ * keymap.c (Fdescribe_buffer_bindings, describe_map):
+ * lread.c (openp):
+ * menu.c (digest_single_submenu, find_and_call_menu_selection)
+ (find_and_return_menu_selection):
+ * print.c (PRINTFINISH):
+ * process.c (Fformat_network_address):
+ * scroll.c (do_scrolling, do_direct_scrolling, scrolling_1):
+ * search.c (search_buffer, Fmatch_data, Fregexp_quote):
+ * sound.c (wav_play, au_play):
+ * syntax.c (skip_chars):
+ * term.c (tty_menu_activate, tty_menu_show):
+ * textprop.c (get_char_property_and_overlay):
+ * window.c (Fset_window_configuration):
+ * xdisp.c (safe__call, next_overlay_change, vmessage)
+ (compute_overhangs_and_x, draw_glyphs, note_mouse_highlight):
+ * xfaces.c (face_at_buffer_position):
+ * xmenu.c (x_menu_show):
+ Use SAFE_ALLOCA etc. instead of plain alloca, since the
+ allocation size isn't bounded.
+ * callint.c (Fcall_interactively): Redo memory_full check
+ so that it can be done at compile-time on some platforms.
+ * coding.c (MAX_LOOKUP_MAX): New constant.
+ (get_translation_table): Use it.
+ * callproc.c (call_process): Use SAFE_NALLOCA instead of
+ SAFE_ALLOCA, to catch integer overflows on size calculation.
+ (exec_failed) [!DOS_NT]: New function.
+ (child_setup) [!DOS_NT]: Use it.
+ * editfns.c (Ftranspose_regions):
+ Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'.
+ * editfns.c (check_translation):
+ Allocate larger buffers on the heap.
+ * eval.c (internal_lisp_condition_case):
+ Check for MAX_ALLOCA overflow.
+ * fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector.
+ (Fbase64_encode_region, Fbase64_decode_region):
+ Avoid unnecessary calls to SAFE_FREE before 'error'.
+ * buffer.c (mouse_face_overlay_overlaps):
+ * editfns.c (Fget_pos_property, check_translation):
+ * eval.c (Ffuncall):
+ * font.c (font_unparse_xlfd, font_find_for_lface):
+ * ftfont.c (ftfont_drive_otf):
+ * keyboard.c (echo_add_key, read_decoded_event_from_main_queue)
+ (menu_bar_items, tool_bar_items):
+ * sound.c (Fplay_sound_internal):
+ * xdisp.c (load_overlay_strings, dump_glyph_row):
+ Use an ordinary auto buffer rather than alloca, since the
+ allocation size is fixed and small.
+ * ftfont.c: Include <c-strcase.h>.
+ (matching_prefix): New function.
+ (get_adstyle_property): Use it, to avoid need for alloca.
+ * keyboard.c (echo_add_key):
+ * keymap.c (describe_map): Use ptrdiff_t, not int.
+ * keyboard.c (echo_add_key): Prefer sizeof to strlen.
+ * keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS,
+ when counting bytes.
+ * lisp.h (xlispstrdupa): Remove, replacing with ...
+ (SAFE_ALLOCA_STRING): ... new macro with different API.
+ This fixes a portability problem, namely, alloca result
+ passed to another function. All uses changed.
+ (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA,
+ not MAX_ALLOCA - 1.
+ * regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE)
+ (REGEX_ALLOCATE): New macros.
+ (REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK)
+ (REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal):
+ Use them.
+ * xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it
+ by hand.
+ (decode_mode_spec_coding): Store directly into buf rather than
+ into an alloca temporary and copying the temporary to the buf.
+
+2014-09-06 Eli Zaretskii <eliz@gnu.org>
+
+ * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used. (Bug#18416)
+
+2014-09-04 Jan D <jan.h.d@swipnet.se>
+
+ * xterm.c (x_term_init): Don't call x_session_initialize if running
+ as a daemon (Bug#18375).
+
+ * xsmfns.c: Initialize ice_fd.
+
+2014-09-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Less chatter in 'make' output.
+ * Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at)
+ (am__v_at_, am__v_at_0, am__v_at_1): New macros, taken from Automake.
+ ($(etc)/DOC, buildobj.h, gl-stamp): Use them.
+
+2014-09-03 Martin Rudalics <rudalics@gmx.at>
+
+ * buffer.c (scroll-bar-height): Fix typo in doc-string.
+ * frame.c (Vdefault_frame_horizontal_scroll_bars):
+ Remove variable.
+ * nsfns.m (Fx_create_frame):
+ * w32fns.c (Fx_create_frame):
+ * xfns.c (Fx_create_frame): Default horizontal scroll bars to
+ nil.
+
+2014-09-03 Eli Zaretskii <eliz@gnu.org>
+
+ * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
+ the reported row in the case of a window with a header line, by
+ improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
+ eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc. (Bug#18384)
+
+2014-09-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * eval.c (internal_lisp_condition_case): Don't overrun the stack
+ when configured --with-wide-int on typical 32-bit platforms.
+
+2014-09-03 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
+ when HPOS is negative, for the benefit of R2L glyph rows whose
+ newline overflows into the fringe.
+
+2014-09-03 Ken Brown <kbrown@cornell.edu>
+
+ * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define. (Bug#18366)
+
+2014-09-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor cleanup of recent strlen-avoiding patch.
+ * fileio.c (CHECK_LENGTH): Remove.
+ Rewrite callers so that they don't need it.
+ (Fexpand_file_name) [DOS_NT]: Fix a case where directory length
+ variable wasn't set.
+
+2014-09-02 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * fileio.c (CHECK_LENGTH): New macro.
+ (Fexpand_file_name): Use it and get rid of a few more calls
+ to strlen and strcat.
+ * callproc.c (egetenv_internal): Add arg and rename from egetenv ...
+ * lisp.h (egetenv): ... because of a new inline function used to
+ avoid calls to strlen for a compile-time constants.
+
+ * buffer.h (decode_buffer): New function.
+ * buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
+ (Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
+ (Fbuffer_chars_modified_tick, Fdelete_all_overlays):
+ * data.c (Flocal_variables_p):
+ * fileio.c (Fverify_visited_file_modtime):
+ * marker.c (live_buffer): Use it.
+
+2014-09-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid extra calls to strlen in filesystem I/O routines.
+ * fileio.c (Fexpand_file_name): Avoid calls to strlen if
+ the length of 'newdir' is known or may be precalculated.
+ (file_accessible_directory_p): Prefer to pass Lisp_Object,
+ not 'char *', and so use precalculated length.
+ (Ffile_accessible_directory_p):
+ * callproc.c (encode_current_directory, init_callproc):
+ * charset.c (init_charset):
+ * lread.c (load_path_check, load_path_default): Adjust users.
+ * lisp.h (file_accessible_directory_p): Tweak prototype.
+
+2014-09-01 Eli Zaretskii <eliz@gnu.org>
+
+ * w32proc.c (w32_compare_strings): Support "C" and "POSIX"
+ locales.
+
+2014-09-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ --enable-silent-rules now suppresses more chatter.
+ * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
+ (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
+ (am__v_CCLD_1): New macros, taken from Automake.
+ (.c.o, .m.o, temacs$(EXEEXT)): Use them.
+
+ Clean up extern decls a bit.
+ * bytecode.c: Include blockinput.h and keyboard.h rather
+ than rolling their APIs by hand.
+ * emacs.c: Include regex.h and rely on its and lisp.h's API
+ rather than rolling them by hand.
+ * lastfile.c: Include lisp.h, to check this file's API.
+ * lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
+ New decls.
+ * regex.h (re_max_failures): New decl.
+ * unexcw.c, unexmacosx.c, unexw32.c:
+ Rely on lisp.h's API rather than rolling it by hand.
+ * vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
+ Declare at top level, to pacify GCC -Wnested-externs.
+
+2014-08-31 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a
+ clipping rectangle become negative (i.e. large positive, since
+ it's an unsigned data type). This can happen in R2L hscrolled
+ glyph rows, and caused us to draw the cursor glyph on the fringe.
+ For the details, see
+ http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html.
+
+2014-08-31 Ken Brown <kbrown@cornell.edu>
+
+ * gmalloc.c: Don't include <stdlib.h>. Declare system malloc and
+ friends before defining hybrid_malloc and friends if HYBRID_MALLOC
+ is defined. (Bug#18368)
+
+2014-08-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Vector-sorting fixes (Bug#18361).
+ It's not safe to call qsort or qsort_r, since they have undefined
+ behavior if the user-specified predicate is not a total order.
+ Also, watch out for garbage-collection while sorting vectors.
+ * fns.c: Include <vla.h>.
+ (sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
+ (sort_vector_compare): Remove, replacing with ....
+ (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
+ ... these new functions.
+ (sort_vector): Rewrite to use the new functions.
+ GCPRO locals, since the predicate can invoke the GC.
+ Since it's in-place return void; caller changed.
+ (merge): Use 'inorder', for clarity.
+
+ * sysdep.c (str_collate): Clear errno just before wcscoll(_l).
+ One can't hoist this out of the 'if', because intervening calls to
+ newlocale, twolower, etc. can change errno.
+
+2014-08-30 Eli Zaretskii <eliz@gnu.org>
+
+ * sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
+ wording of the error messages.
+ (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings
+ sets errno.
+
+ * w32proc.c (get_lcid_callback): Accept locale specifications
+ without the country part, as in "enu" vs "enu_USA".
+ (w32_compare_strings): Signal an error if a locale was specified,
+ but couldn't be translated into a valid LCID.
+
+2014-08-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
+
+2014-08-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at
+ errno after towlower_l. errno's value is not specified after
+ towlower_l. Instead, assume that towlower_l returns its argument
+ on failure, which is portable in practice.
+
+2014-08-29 Eli Zaretskii <eliz@gnu.org>
+
+ * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix.
+
+ * w32proc.c (w32_compare_strings): Accept additional argument
+ IGNORE_CASE. Set up the flags for CompareStringW to ignore case
+ if requested. If w32-collate-ignore-punctuation is non-nil, add
+ NORM_IGNORESYMBOLS to the flags.
+ (LINGUISTIC_IGNORECASE): Define if not already defined.
+ (syms_of_ntproc) <Vw32_collate_ignore_punctuation>: New variable.
+
+ * sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface
+ change.
+
+2014-08-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l):
+ Define substitutes for platforms that lack them.
+ (str_collate): Add arguments locale and ignore_case.
+
+ * fns.c (Fstring_collate_lessp, Fstring_collate_equalp):
+ Add optional arguments LOCALE and IGNORE-CASE.
+
+ * lisp.h (str_collate): Adapt argument list.
+
+2014-08-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Add vectors support to Fsort.
+ * fns.c (sort_vector, sort_vector_compare): New functions.
+ (sort_list): Likewise, refactored out of ...
+ (Fsort): ... adjusted user. Mention vectors in docstring.
+ (sort_vector_predicate) [!HAVE_QSORT_R]: New variable.
+ * alloc.c (make_save_int_obj): New function.
+ * lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ.
+ (make_save_int_obj): Add prototype.
+
+ Fix last change to support Darwin/OSX and FreeBSD (Bug#18354).
+ * sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]:
+ Conditionally define to match system's qsort_r signature.
+ (sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r.
+
+2014-08-28 Ken Brown <kbrown@cornell.edu>
+
+ Add support for HYBRID_MALLOC, allowing the use of gmalloc before
+ dumping and the system malloc after dumping. (Bug#18222)
+
+ * conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
+ Define as macros, expanding to hybrid_malloc, etc.
+ (HYBRID_GET_CURRENT_DIR_NAME): New macro.
+ (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
+ macro.
+ * gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
+ full implementation on Cygwin. Remove Cygwin-specific code that
+ is no longer needed.
+ (malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
+ Redefine as macros expanding to gmalloc, grealloc, etc.
+ (DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
+ (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
+ (USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
+ (hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
+ [HYBRID_MALLOC]:
+ (hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
+ (hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
+ HAVE_POSIX_MEMALIGN)]: New functions.
+ * alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
+ HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
+ hybrid_aligned_alloc; declare.
+ (USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
+ HAVE_POSIX_MEMALIGN)]: Define.
+ (refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
+ * sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
+ Define as macro, expanding to gget_current_dir_name, and define
+ the latter.
+ * emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
+ malloc_enable_thread(). Don't initialize malloc.
+ * lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
+ no longer defined on Cygwin).
+ (refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
+ * sheap.c (bss_sbrk_buffer_end): New variable.
+ * unexcw.c (__malloc_initialized): Remove variable.
+ * ralloc.c: Throughout, treat HYBRID_MALLOC the same as
+ SYSTEM_MALLOC.
+ * xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
+ Vmemory_full.
+
+2014-08-28 Martin Rudalics <rudalics@gmx.at>
+
+ * w32term.c (w32_horizontal_scroll_bar_handle_click):
+ In `event->y' return entire range (the size of the scroll bar minus
+ that of the thumb).
+ * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole'
+ return entire range (the scaled size of the scroll bar minus
+ that of the slider). In `portion' return the scaled position of
+ the slider.
+ (xaw_jump_callback): Restore part of code for vertical scroll
+ bar broken in change from 2014-07-27.
+ (xaw_scroll_callback): Provide incremental scrolling with
+ horizontal scroll bars.
+
+2014-08-28 Eli Zaretskii <eliz@gnu.org>
+
+ * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
+
+ * indent.c (Fvertical_motion): Fix vertical motion up through a
+ display property after a newline. (Bug#18276)
+
+ * xdisp.c (display_line): Don't assume that the call to
+ reseat_at_next_visible_line_start ends up at a character
+ immediately following the newline on the previous line.
+ Avoids setting the ends_at_zv_p flag on screen lines that are not at or
+ beyond ZV, which causes infloop in redisplay. For the details, see
+ http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
+
+ * dispnew.c (buffer_posn_from_coords): Fix mirroring of X
+ coordinate for hscrolled R2L screen lines. (Bug#18277)
+
+2014-08-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
+ (Bug#18051).
+
+2014-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * syntax.c (scan_lists): Don't examine positions before BEGV.
+ (Bug#18339)
+
+2014-08-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve robustness of new string-collation code (Bug#18051).
+ * sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
+ (newlocale, wcscoll_l): Define substitutes for platforms that
+ lack them, so as to simplify the mainline code.
+ (str_collate): Simplify the code by assuming the above definitions.
+ Use wcscoll_l, not uselocale, as uselocale is too fragile.
+ For example, the old version left the Emacs in the wrong locale if
+ wcscoll reported an error. Use 'int', not ptrdiff_t, for the int
+ result. Report an error if newlocale fails.
+
+2014-08-27 Michael Albinus <michael.albinus@gmx.de>
+
+ * lisp.h (str_collate):
+ * sysdep.c (str_collate): Return int.
+ (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll.
+
+2014-08-27 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix some glitches in previous change.
+ * sysdep.c (stack_direction): Replace stack_grows_down
+ to simplify calculation of stack boundaries.
+ (handle_sigsegv): Check whether we really crash somewhere near
+ to stack boundary, and handle fatal signal as usual if not.
+ (init_sigsegv): Adjust accordingly.
+ * keyboard.c (Vtop_level_message): Rename to
+ Vinternal__top_level_message, as suggested by Stefan Monnier in
+ http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html
+ All related users changed.
+
+2014-08-26 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Handle C stack overflow caused by too nested Lisp evaluation.
+ * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
+ siglongjmp point to transfer control from SIGSEGV handler.
+ * keyboard.c (return_to_command_loop, recover_top_level_message)
+ [HAVE_STACK_OVERFLOW_HANDLING]: New variables.
+ (regular_top_level_message): New variable.
+ (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
+ exit from SIGSEGV handler and adjust message displayed by Vtop_level
+ if appropriate.
+ (syms_of_keyboard): DEFVAR Vtop_level_message and initialize
+ new variables described above.
+ * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
+ (stack_grows_down, sigsegv_stack, handle_sigsegv)
+ [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
+ (init_sigsegv): New function.
+ (init_signals): Use it.
+
+2014-08-25 Ken Brown <kbrown@cornell.edu>
+
+ * emacs.c (main): Remove use of obsolete macro
+ G_SLICE_ALWAYS_MALLOC.
+
+2014-08-25 Eli Zaretskii <eliz@gnu.org>
+
+ Implement locale-sensitive string collation for MS-Windows.
+ * w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
+ New functions. (Bug#18051)
+
+ * w32.h (w32_compare_strings): Add prototype.
+
+ * w32.c <g_b_init_compare_string_w>: New global flag.
+ (globals_of_w32): Initialize it.
+
+ * sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
+
+ * fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
+ [WINDOWSNT]: Call str_collate on MS-Windows.
+
+2014-08-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ One more minor cleanup of font subsystem.
+ * font.h (struct font_driver): Convert text_extents to
+ return void because returned value is never actually used.
+ * macfont.m (macfont_text_extents):
+ * w32font.c (w32font_text_extents):
+ * xftfont.c (xftfont_text_extents): Adjust to return void
+ and assume that 'metrics' argument is always non-NULL.
+ * ftfont.c (ftfont_text_extents):
+ * xfont.c (xfont_text_extents): Likewise. Avoid redundant memset.
+
+2014-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor cleanups of str_collate fix (Bug#18051).
+ * fns.c (str_collate): Move decl from here ...
+ * lisp.h (str_collate): ... to here.
+ * sysdep.c (str_collate): Prune away some of the forest of ifdefs.
+ Remove unnecessary casts. Use SAFE_NALLOCA to avoid
+ potential problems with integer overflow. Don't assume
+ setlocale succeeds. Remove unnecessary test before restoring
+ locale via setlocale, and free the copied setlocale string
+ when done with it.
+
+2014-08-24 Michael Albinus <michael.albinus@gmx.de>
+
+ * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.
+
+ * sysdep.c (str_collate): New function. (Bug#18051)
+
+2014-08-23 Karol Ostrovsky <karol.ostrovsky@gmail.com> (tiny change)
+
+ * Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
+ if the initial "rm -f" fails. This is for MinGW builds, where
+ MS-Windows will not allow deleting the executable file of a
+ running program.
+
+2014-08-20 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.c (w32_scroll_bar_handle_click)
+ (w32_horizontal_scroll_bar_handle_click)
+ (x_scroll_bar_report_motion)
+ (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
+ SB_THUMBTRACK, use the 32-bit position information returned by
+ GetScrollInfo, not the 16-bit information returned in the Windows
+ message sent to us.
+
+2014-08-19 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
+ second coordinate ('y') reported for dragging the horizontal
+ scroll bar thumb.
+
+2014-08-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * xdisp.c (erase_phys_cursor): Fix confusion between window-relative
+ and text area-relative x-coordinates.
+
+2014-08-17 Eli Zaretskii <eliz@gnu.org>
+
+ Avoid overwriting the reversed_p flags in the glyph matrices when
+ init_iterator or start_display are called.
+ * xdisp.c (init_iterator): Don't initialize the reversed_p flag of
+ the glyph row here.
+ (tool_bar_height, redisplay_tool_bar, try_window)
+ (try_window_reusing_current_matrix, try_window_id)
+ (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
+ reversed_p flag of the iterator's glyph row where the glyph row
+ is going to be redrawn.
+
+2014-08-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.
+
+2014-08-16 Martin Rudalics <rudalics@gmx.at>
+
+ * w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
+ of emacs_event return length from si.nPage to si.nMax.
+ * xdisp.c (set_horizontal_scroll_bar): For right-to-left text
+ interchange start and end of thumb.
+
+2014-08-15 Ken Brown <kbrown@cornell.edu>
+
+ * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
+ ERRORCHECK mutexes. (Bug#18222)
+
+2014-08-12 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (set_menu_bar_lines_1): Remove.
+ (set_menu_bar_lines): Call change_frame_size instead of
+ set_menu_bar_lines_1.
+
+2014-08-11 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (Fx_create_frame): Call adjust_frame_size,
+ set f->official.
+
+2014-08-11 Glenn Morris <rgm@gnu.org>
+
+ * fileio.c: Revert 2013-01-31 change, which chose coding system for
+ writing before backing up, since it causes a more serious problem
+ than the one it solves. (Closes Bug#18141, reopens Bug#13522.)
+ (choose_write_coding_system): No longer callable from Lisp.
+ Move last piece back here from Fwrite_region.
+ (Fwrite_region, syms_of_fileio): Update for above changes.
+
+2014-08-11 Martin Rudalics <rudalics@gmx.at>
+
+ * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
+ (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
+ (Fwindow_new_pixel, Fset_window_new_pixel)
+ (Fset_window_new_total, Fset_window_new_normal)
+ (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
+ See also:
+ http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
+
+2014-08-11 Eli Zaretskii <eliz@gnu.org>
+
+ * fontset.c (Finternal_char_font): Recompute basic faces if the
+ frame's face cache was cleared. (Bug#18162)
+
+2014-08-11 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
+ * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
+ base buffer's undo list.
+
+2014-08-10 Reuben Thomas <rrt@sc3d.org>
+
+ Fix a couple of recent inadvertent breaks of the MSDOS port.
+ * msdos.c: include required menu.h
+ * term.c: set correct menu_show_hook on MSDOS.
+
+2014-08-10 Martin Rudalics <rudalics@gmx.at>
+
+ Fix handling of menu bar line on TTY frames (Bug#18136)
+ (Bug#18196).
+ * dispnew.c (handle_window_change_signal):
+ * keyboard.c (Fsuspend_emacs): Call change_frame_size with
+ frame's menu bar lines subtracted from height.
+ * frame.c (frame_inhibit_resize): Inhibit resizing of TTY
+ frames.
+ (adjust_frame_size): Count in menu bar when setting FrameRows.
+ (make_terminal_frame): When setting up the frame's lines and
+ text height don't count in the menu bar.
+ (Fmake_terminal_frame): Call adjust_frame_size with menu bar
+ lines subtracted from height.
+ (do_switch_frame): Set tty's FrameRows to number of total lines
+ of frame.
+ (Fframe_pixel_height, Fframe_pixel_width): If no window system
+ is used, return total number of lines and columns.
+ * menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
+ of FRAME_LINES.
+ * term.c (OUTPUT, tty_set_terminal_modes)
+ (tty_set_terminal_window, tty_set_scroll_region)
+ (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
+ (tty_ins_del_lines, tty_menu_display, tty_menu_activate):
+ Use FRAME_TOTAL_LINES instead of FRAME_LINES.
+ (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
+ Call change_frame_size with frame's menu bar lines subtracted
+ from height.
+ * w32console.c (w32con_clear_to_end, w32con_clear_frame)
+ (w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
+ FRAME_LINES.
+
+2014-08-09 Reuben Thomas <rrt@sc3d.org>
+
+ * alloc.c (Fmemory_info): Remove a stray brace.
+
+ * process.c: Fix a comment typo.
+
+ * msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02.
+
+2014-08-09 Jan Djärv <jan.h.d@swipnet.se>
+
+ * widgetprv.h (EmacsFramePart): Remove font.
+
+ * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
+ (resources, setup_frame_cursor_bits): Remove unused variables and
+ functions, esp. wrt. font (Bug#18227).
+
+2014-08-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).
+
+2014-08-07 Reuben Thomas <rrt@sc3d.org>
+
+ Refer to MS-DOS using the same name everywhere.
+
+ * editfns.c: Fix a couple of ``MS-DOG''s missed in the previous
+ commit.
+ * xfaces.c: ditto.
+
+2014-08-05 Martin Rudalics <rudalics@gmx.at>
+
+ * w32term.c (w32_redeem_scroll_bar):
+ * xterm.c (XTredeem_scroll_bar): Revert part of last change by
+ not redeeming scroll bars that have been turned off.
+
+2014-08-05 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * keyboard.c (safe_run_hooks): Follow the convenient style to bind
+ inhibit-quit to t and pass 2 args to safe_run_hook_funcall. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
+ (safe_run_hook_funcall): Adjust accordingly.
+
+2014-08-04 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
+ Condition correctly according to toolkit used.
+ * frame.c (make_initial_frame, make_terminal_frame)
+ (x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
+ (Vdefault_frame_horizontal_scroll_bars): Correctly condition
+ assignments according to presence of toolkit scrollbars.
+ * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR):
+ Condition correctly according to toolkit used.
+ * window.c (set_window_scroll_bars): Set horizontal scroll bar
+ only if toolkit supports it.
+ * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
+ present.
+ * xterm.c (x_scroll_bar_create): Initialize horizontal slot for
+ non-toolkit builds.
+ (XTredeem_scroll_bar): Always redeem scroll bar if present.
+
+2014-08-04 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * keyboard.c (safe_run_hook_funcall): Avoid consing around
+ Vinhibit_quit and prefer internal_condition_case_n to pass args.
+ (safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
+ (safe_run_hooks): Remove comment which is not relevant any more.
+
+2014-08-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't let big frames overrun the stack.
+ * dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
+ Use SAFE_NALLOCA, not alloca.
+
+ Fix bug with clang + directory_files_internal + GC (Bug#16986).
+ * dired.c (directory_files_internal): Use a volatile variable
+ to prevent the compiler from optimizing away all copies of a local.
+ I wonder how many other GC-related bugs like this lurk elsewhere?
+
+ Avoid 100% CPU utilization on ssh session exit (Bug#17691).
+ * xterm.h (struct x_display_info): New member 'connection'.
+ * xterm.c (x_term_init, x_delete_terminal): Set and use it,
+ so that x_delete_terminal has a file descriptor to pass to
+ delete_keyboard_wait_descriptor.
+
+ Don't mishandle year-9999 dates (Bug#18176).
+ * editfns.c (decode_time_components): Store an invalid timespec
+ on overflow, instead of returning false, so that the caller can
+ distinguish overflow from other errors.
+ (lisp_time_argument, lisp_seconds_argument): If the time is out
+ of range, signal a time overflow instead of an invalid time spec.
+ * keyboard.c (decode_timer): Treat time overflow like other
+ timespec errors.
+
+ Avoid undefined behavior with signed left shift.
+ Caught by 'gcc -fsanitize=undefined'.
+ * dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
+ * dispnew.c (line_hash_code, scrolling):
+ * scroll.c (calculate_scrolling, calculate_direct_scrolling):
+ Use 'unsigned', not 'int', for line hashes.
+ (scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
+
+2014-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Make compare-strings more compatible with old behavior (Bug#17903).
+ * fns.c (Fcompare_strings): Silently bring too-large ends into range.
+
+2014-08-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (create_dialog): Force min spacing 10 between buttons.
+ Don't add label between left and right buttons (Bug#18129).
+
+2014-08-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ Make functions static that no longer need to be extern.
+ * frame.c, frame.h (set_menu_bar_lines):
+ * keyboard.c (Qleftmost, Qrightmost):
+ * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
+ (x_set_internal_border_width):
+ Now static.
+
+2014-08-01 Eli Zaretskii <eliz@gnu.org>
+
+ Fix display of R2L lines when the last character fits only partially.
+ See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
+ for the details.
+ * xdisp.c (extend_face_to_end_of_line): If the last glyph of an
+ R2L row is visible only partially, give the row a negative x
+ offset.
+ (display_line): Fix the calculation of the glyph whose pixel width
+ is used to decide whether the last produced glyph fits on the
+ line. When the last glyph fits only partially, give the row a
+ negative x offset.
+
+ Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
+ * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
+ pixel width of the first glyph that is hscrolled from display.
+ (display_line): In R2L glyph rows, don't give a negative offset to
+ row->x when the first glyph begins before first_visible_x.
+
+ * xdisp.c (display_line): If called with iterator set up to write
+ to a marginal area, delay the call to handle_line_prefix until we
+ switch back to the text area. (Bug#18035)
+
+ * .gdbinit (xwindow): The members total_cols, total_lines,
+ left_col, and top_line are C integers (and has been so for the
+ last 1.5 years).
+
+2014-08-01 Andreas Schwab <schwab@suse.de>
+
+ * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
+ kbd_macro_end together with kbd_macro_buffer. (Bug#18140)
+
+2014-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
+ (timerfd_callback): Ignore weird events with no data. Add tight
+ assertions and comments.
+ (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
+ disable timerfd-based timer. Use TFD_NONBLOCK for timer descriptor.
+
+2014-08-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * frame.c (x_set_frame_parameters): Fix typo in previous patch.
+ I had confused && with ||.
+
+2014-07-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify timerfd configuration and fix some minor glitches.
+ * atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
+ (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
+ Fall back on timer_create if timerfd_create fails at runtime.
+ (resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
+ kernel primitives to do resolution. All uses removed.
+ (timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
+ (turn_on_atimers): Clear timer_create-based timers too,
+ for consistency.
+
+ * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
+ Without this change, the code can access the local variable 'width'
+ even when it has not been initialized, and likewise for 'height';
+ in either case this leads to undefined behavior.
+
+2014-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictly
+ necessary, put horizontal scroll bar resources as well. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00430.html>.
+ * xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.
+
+2014-07-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll bar
+ background value to match the resource of its vertical counterpart.
+
+2014-07-29 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of
+ FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).
+
+2014-07-28 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (x_set_frame_parameters): Revert part of 2014-07-24
+ change that added the top margin height to the requested height
+ and revert (undocumented) part of 2014-07-28 change that changed
+ the logic of whether a size change occurred.
+
+2014-07-28 Eli Zaretskii <eliz@gnu.org>
+
+ * .gdbinit (xwindow): The members total_cols, total_lines,
+ left_col, and top_line are C integers (and has been so for the
+ last 1.5 years).
+
+ * .gdbinit (xsubchartable): The members 'depth' and 'min_char' are
+ now C integers.
+
+2014-07-28 Dmitry Antipov <dmantipov@yandex.ru>
+
+ On GNU/Linux, use timerfd for asynchronous timers.
+ * atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
+ (toplevel): Rename alarm_timer_ok to special_timer_available.
+ [HAVE_TIMERFD]: Declare timerfd.
+ [HAVE_CLOCK_GETRES]: Declare resolution.
+ (start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
+ system timer resolution.
+ (set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
+ (timerfd_callback) [HAVE_TIMERFD]: New function.
+ (atimer_result, debug_timer_callback, Fdebug_timer_check)
+ [ENABLE_CHECKING]: New function for the sake of automated tests.
+ (init_atimer) [HAVE_TIMERFD]: Setup timerfd.
+ [HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
+ [ENABLE_CHECKING]: Defsubr test function.
+ * atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
+ * lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
+ * process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
+
+ Fix --without-x build and pacify --enable-gcc-warnings.
+ Problems reported in Bug#18122 and Bug#18124.
+ * frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM.
+ (frame_windows_min_size): Now static.
+ * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]:
+ Define as no-op.
+ (adjust_frame_size): Always declare prototype.
+
+ Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
+ <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00370.html>.
+ * atimer.c (timerfd_callback): Always read expiration data.
+ Add comment.
+ (turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer.
+ * process.c (add_timer_wait_descriptor): Add timer descriptor
+ to input_wait_mask and non_process_wait_mask as well.
+
+2014-07-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
+
+2014-07-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
+ Reinstate code removed by the prevoius commit to this file.
+
+2014-07-27 Martin Rudalics <rudalics@gmx.at>
+
+ * buffer.h (struct buffer): New fields scroll_bar_height and
+ horizontal_scroll_bar_type.
+ * buffer.c (bset_scroll_bar_height)
+ (bset_horizontal_scroll_bar_type): New functions.
+ (Fbuffer_swap_text): Handle old_pointm field.
+ (init_buffer_once): Set defaults for scroll_bar_height and
+ horizontal_scroll_bar_type.
+ (syms_of_buffer): New variables scroll_bar_height and
+ horizontal_scroll_bar_type.
+ * dispextern.h (window_part): Rename ON_SCROLL_BAR to
+ ON_VERTICAL_SCROLL_BAR. Add ON_HORIZONTAL_SCROLL_BAR.
+ (set_vertical_scroll_bar): Remove prototype.
+ (x_change_tool_bar_height): Add prototype.
+ * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
+ (window_to_frame_vpos, update_frame_1, scrolling, init_display):
+ Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
+ and FRAME_LINES.
+ (adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
+ (update_window): Start mode_line_row->y after horizontal scroll
+ bar.
+ (change_frame_size_1): Call adjust_frame_size.
+ (init_display): When changing the size of a tty frame do not
+ pass height of menu bar.
+ (Qframe_windows_min_size): New symbol.
+ * frame.h (struct frame): List tool bar fields after menu bar
+ fields. Add official, total_lines, horizontal_scroll_bars,
+ config_scroll_bar_height and config_scroll_bar_lines fields.
+ (FRAME_HAS_HORIZONTAL_SCROLL_BARS)
+ (FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
+ (FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
+ (FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
+ (FRAME_WINDOWS_HEIGHT): New macros.
+ (SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
+ (FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
+ (FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
+ horizontal scroll bar.
+ (frame_inhibit_resize, adjust_frame_size)
+ (frame_windows_min_size): Add declarations.
+ (Qscroll_bar_height, Qhorizontal_scroll_bars)
+ (x_set_scroll_bar_default_height, x_set_left_fringe)
+ (x_set_right_fringe, x_set_vertical_scroll_bars)
+ (x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
+ (x_set_scroll_bar_height): Add external declarations.
+ * frame.c: (frame_inhibit_resize, frame_windows_min_size)
+ (adjust_frame_size): New functions.
+ (make_frame): Initial horizontal_scroll_bars field.
+ Use SET_FRAME_LINES. Don't allow horizontal scroll bar in
+ minibuffer window.
+ (make_initial_frame, make_terminal_frame): No horizontal scroll
+ bar in initial and terminal frames. Use adjust_frame_size.
+ (Fframe_total_cols): Fix doc-string.
+ (Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
+ (Fset_frame_height, Fset_frame_width, Fset_frame_size):
+ Rewrite using adjust_frame_size.
+ (Qscroll_bar_height, Qhorizontal_scroll_bars)
+ (Qframe_windows_min_size): New symbols.
+ (x_set_frame_parameters): Remove call of check_frame_size.
+ (x_report_frame_params): Return scroll_bar_height value.
+ (x_set_left_fringe, x_set_right_fringe): New functions.
+ (adjust_frame_height, x_set_internal_border_width)
+ (x_set_fringe_width): Remove.
+ (x_set_internal_border_width, x_set_vertical_scroll_bars)
+ (x_set_scroll_bar_width, x_set_right_divider_width)
+ (x_set_bottom_divider_width): Rewrite using adjust_frame_size.
+ (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
+ New functions.
+ (x_figure_window_size): Rewrite to make frame display the
+ expected number of lines.
+ (Vdefault_frame_scroll_bars): Rewrite doc-string.
+ (Vdefault_frame_horizontal_scroll_bars)
+ (Vframe_initial_frame_tool_bar_height)
+ (frame_inhibit_implied_resize): New variables.
+ * fringe.c (compute_fringe_widths): Remove.
+ * gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
+ (xg_create_horizontal_scroll_bar)
+ (xg_update_horizontal_scrollbar_pos)
+ (xg_set_toolkit_horizontal_scroll_bar_thumb)
+ (xg_get_default_scrollbar_height)
+ (xg_clear_under_internal_border): Extern.
+ * gtkutil.c (xg_frame_resized): Don't call
+ do_pending_window_change.
+ (xg_frame_set_char_size): Use adjust_frame_size.
+ (style_changed_cb): Call update_theme_scrollbar_height and
+ x_set_scroll_bar_default_height.
+ (x_wm_set_size_hint): Don't call check_frame_size.
+ (update_theme_scrollbar_height)
+ (xg_get_default_scrollbar_height)
+ (xg_create_horizontal_scroll_bar)
+ (xg_update_horizontal_scrollbar_pos)
+ (xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
+ (xg_create_scroll_bar): Set horizontal slot of bar.
+ (xg_initialize): Call update_theme_scrollbar_height.
+ (xg_clear_under_internal_border): No more static.
+ * insdel.c (adjust_suspend_auto_hscroll): New function.
+ (adjust_markers_for_delete, adjust_markers_for_insert)
+ (adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
+ * keyboard.c (readable_events, discard_mouse_events)
+ (make_lispy_event): Handle horizontal scroll bar click events.
+ (Fsuspend_emacs): When changing the size of a tty frame do not
+ pass height of menu bar.
+ (Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
+ (Qright, Qleftmost, Qrightmost): New symbols.
+ * menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
+ FRAME_LINES.
+ * minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
+ * nsfns.m (x_set_internal_border_width): New function.
+ * nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
+ Remove extended fringe code.
+ (x_set_window_size, x_new_font): Don't call
+ compute_fringe_widths.
+ * term.c (Fresume_tty): When changing the size of a tty frame do
+ not pass height of menu bar.
+ (clear_tty_hooks, set_tty_hooks):
+ Clear horizontal_scroll_bar_hook.
+ (init_tty): Frame has no horizontal scroll bars.
+ * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
+ scroll_bar_before_handle, scroll_bar_horizontal_handle,
+ scroll_bar_after_handle, scroll_bar_left_arrow,
+ scroll_bar_right_arrow, scroll_bar_to_leftmost and
+ scroll_bar_to_rightmost entries.
+ (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
+ (struct terminal): Add set_horizontal_scroll_bar_hook.
+ * w32console.c (initialize_w32_display):
+ Clear horizontal_scroll_bar_hook.
+ * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
+ FRAME_X_DISPLAY.
+ (x_clear_under_internal_border, x_set_internal_border_width):
+ New functions.
+ (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.
+ Set windows_or_buffers_changed when adding the menu bar.
+ (x_set_tool_bar_lines): Rewrite using adjust_frame_size.
+ (x_change_tool_bar_height, x_set_scroll_bar_default_height)
+ (w32_createhscrollbar): New functions.
+ (w32_createscrollbar): Rename to w32_createvscrollbar.
+ (w32_createwindow): Init WND_HSCROLLBAR_INDEX.
+ (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
+ WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.
+ Add WM_EMACS_SHOWCURSOR.
+ (w32_wnd_proc): Handle WM_HSCROLL case. In WM_WINDOWPOSCHANGING
+ case do not artificially impose WM size hints.
+ Handle WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case
+ by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
+ cases.
+ (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
+ WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
+ (unwind_create_frame_1): Remove.
+ (Fx_create_frame): Make both scrollbars the system standard
+ width and height. Use official field of frame structure to
+ inhibit running window-configuration-change-hook.
+ (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
+ pixelwise. Handle frame's official field.
+ (w32_frame_parm_handlers): Remove x_set_fringe_width
+ entries. Add x_set_scroll_bar_height,
+ x_set_horizontal_scroll_bars, x_set_left_fringe and
+ x_set_right_fringe.
+ * w32inevt.c (resize_event, maybe_generate_resize_event): Do not
+ pass height of menu bar to change_frame_size.
+ * w32menu.c (set_frame_menubar): Rewrite using
+ frame_inhibit_resize.
+ * w32term.h (struct w32_display_info):
+ Add horizontal_scroll_bar_cursor and cursor_display_counter.
+ (struct scroll_bar): Add horizontal.
+ (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
+ (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
+ (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
+ (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
+ (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
+ (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
+ (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
+ (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
+ (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR):
+ Define instead of WM_EMACS_CREATESCROLLBAR.
+ (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
+ WND_SCROLLBAR_INDEX.
+ * w32term.c (horizontal_scroll_bar_min_handle)
+ (horizontal_scroll_bar_left_border)
+ (horizontal_scroll_bar_right_border): New integers.
+ (x_set_frame_alpha): Replace x_highlight_frame by
+ w32_focus_frame.
+ (x_window_to_scroll_bar): New argument "type". Update callers
+ accordingly.
+ (w32_set_horizontal_scroll_bar_thumb)
+ (x_horizontal_scroll_bar_report_motion)
+ (w32_set_horizontal_scroll_bar)
+ (w32_horizontal_scroll_bar_handle_click)
+ (x_horizontal_scroll_bar_report_motion): New functions.
+ (w32_mouse_position): Discriminate horizontal and vertical
+ scrollbar cases.
+ (my_create_scrollbar): Replace with two new functions
+ my_create_vscrollbar and my_create_hscrollbar.
+ (x_scroll_bar_create): New argument "horizontal".
+ Update callers accordingly.
+ (x_scroll_bar_remove, w32_condemn_scroll_bars)
+ (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
+ scroll bar case.
+ (w32_read_socket): Handle WM_HSCROLL cae.
+ (x_new_font): Don't recompute fringe widths.
+ Use frame_inhibit_resize. Calculate new menu bar height iff we
+ build without toolkit. Always clear under internal border.
+ (x_set_window_size): Don't check frame size or recompute
+ fringes. Reset fullscreen status before applying sizes.
+ Always resize as requested by pixelwise argument. Don't call
+ do_pending_window_change.
+ (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
+ (w32_initialize_display_info): Initialize dpyinfo's
+ horizontal_scroll_bar_cursor entry.
+ (w32_create_terminal): Add set_horizontal_scroll_bar_hook.
+ (w32_initialize): Init horizontal_scroll_bar_min_handle and
+ horizontal_scroll_bar_left_border.
+ (w32fullscreen_hook): Intermittently resize window to normal
+ when switching from fullscreen to maximized state.
+ (run_window_configuration_change_hook): Don't run it if frame is
+ not official yet.
+ (unwind_change_frame): Remove.
+ (Fset_window_configuration): Rewrite using frame's official field.
+ * widget.c (set_frame_size): Don't call compute_fringe_widths.
+ (EmacsFrameSetCharSize): Obey frame_inhibit_resize.
+ * window.h (struct window): New fields old_pointm,
+ horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
+ scroll_bar_height and suspend_auto_hscroll.
+ (wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
+ New functions.
+ (sanitize_window_sizes): Extern.
+ (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
+ (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
+ (WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
+ (WINDOW_CONFIG_SCROLL_BAR_LINES)
+ (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT):
+ New macros.
+ (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
+ (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
+ (WINDOW_VERTICAL_SCROLL_BAR_TYPE)
+ (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
+ (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
+ (WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
+ (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
+ (WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
+ * window.c (wset_old_pointm, Fwindow_scroll_bar_height)
+ (Fwindow_old_point, sanitize_window_sizes): New functions.
+ (Qwindow_sanitize_window_sizes): New symbol.
+ (window_body_height): Count in horizontal scroll bar.
+ (set_window_hscroll, Fscroll_left, Fscroll_right):
+ Set suspend_auto_hscroll slot.
+ (Fwindow_inside_edges): Count fringes pixelwise.
+ (coordinates_in_window, Fcoordinates_in_window_p):
+ Consider horizontal scroll bar.
+ (check_frame_size, adjust_window_margins): Remove functions and
+ corresponding calls.
+ (set_window_buffer): Initialize old_pointm and horizontal scroll bars.
+ (temp_output_buffer_show): Reset hscroll related fields.
+ Initialize old_pointm.
+ (make_parent_window): Initialize old_pointm.
+ (make_window): Initialize old_pointm, horizontal scroll bar type,
+ and scroll bar height.
+ (resize_frame_windows): Don't count top margin in new sizes.
+ Don't use safe sizes when shrinking a frame; let the window
+ manager do the clipping.
+ (Fsplit_window_internal): Inherit horizontal scroll bar type and
+ height.
+ (Fdelete_window_internal): Unchain old_pointm marker.
+ (window_scroll_pixel_based, Fscroll_other_window):
+ Adjust old_pointm.
+ (Fwindow_text_width, Fwindow_text_height): New argument
+ "pixelwise".
+ (struct saved_window): New fields, old_pointm, hscroll_whole,
+ suspend_auto_hscroll, scroll_bar_height and
+ horizontal_scroll_bar_type.
+ (Fset_window_configuration, save_window_save): Set new fields of
+ saved_window.
+ (apply_window_adjustment): Don't call adjust_window_margins.
+ (set_window_margins): Don't change margins if new sizes don't
+ fit into window.
+ (set_window_scroll_bars): New argument "horizontal_type".
+ Handle horizontal scroll bars. Don't change scroll bars if they
+ don't fit into window.
+ (Fset_window_scroll_bars): New argument "horizontal_type".
+ (Fwindow_scroll_bars): Return values for horizontal scroll bars.
+ (compare_window_configurations): Compare horizontal scroll bar
+ settings.
+ * xdisp.c (window_text_bottom_y, window_box_height): Count in
+ horizontal scroll bar height.
+ (pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
+ instead of FRAME_LINES.
+ (remember_mouse_glyph): Case ON_SCROLL_BAR changed to
+ ON_VERTICAL_SCROLL_BAR.
+ (with_echo_area_buffer): Initialize old_pointm.
+ (with_echo_area_buffer_unwind_data): Store old_pointm values in
+ vector.
+ (unwind_with_echo_area_buffer): Handle old_pointm.
+ (update_tool_bar): Set do_update when the tool bar window has at
+ least one line (since this is what the user sets).
+ (MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
+ (redisplay_tool_bar): Return early when toolbar has zero lines.
+ Call x_change_tool_bar_height. Don't use max_tool_bar_height.
+ (hscroll_window_tree): Handle suspension of auto_hscroll and
+ old_pointm.
+ (set_horizontal_scroll_bar): New function.
+ (redisplay_window): Set ignore_mouse_drag_p when tool bar has
+ more than one line. Handle horizontal scroll bars.
+ (note_mouse_highlight): Handle horizontal scrol bars.
+ (expose_frame): Set dimensions of XRectangle from frame's text
+ sizes.
+ (Vvoid_text_area_pointer): Update doc-string.
+ * xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
+ (x_change_tool_bar_height, x_set_scroll_bar_default_height)
+ (x_set_internal_border_width): New functions.
+ (x_set_tool_bar_lines): Call x_change_tool_bar_height.
+ (unwind_create_frame_1): Remove.
+ (Fx_create_frame): Handle horizontal scroll bars. Use official
+ field of frame structure to inhibit running
+ window-configuration-change-hook.
+ (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
+ pixelwise. Handle frame's official field.
+ (x_frame_parm_handlers): Add x_set_scroll_bar_height,
+ x_set_horizontal_scroll_bars, x_set_left_fringe,
+ x_set_right_fringe.
+ * xmenu.c (update_frame_menubar, free_frame_menubar):
+ Use adjust_frame_size.
+ * xterm.h (struct x_display_info):
+ Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
+ slots.
+ (struct scroll_bar): Add horizontal slot.
+ (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
+ (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
+ (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
+ (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
+ (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
+ (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
+ (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
+ (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
+ (x_clear_under_internal_border): Remove.
+ * xterm.c (XTmouse_position): Handle horizontal scroll bars.
+ (x_window_to_scroll_bar): New argument TYPE. Update callers.
+ (x_send_scroll_bar_event, x_scroll_bar_create): New arguments
+ HORIZONTAL. Update callers.
+ (horizontal_action_hook_id): New action hook id.
+ (x_horizontal_scroll_bar_to_input_event)
+ (x_create_horizontal_toolkit_scroll_bar)
+ (xt_horizontal_action_hook)
+ (x_set_toolkit_horizontal_scroll_bar_thumb)
+ (XTset_horizontal_scroll_bar, x_net_wm_state)
+ (x_horizontal_scroll_bar_report_motion): New functions.
+ (xg_scroll_callback, x_scroll_bar_handle_click):
+ Handle horizontal scroll bars.
+ (SCROLL_BAR_HORIZONTAL_NAME): Define.
+ (XTset_vertical_scroll_bar): Attempt to clear areas not covered
+ by scroll bar.
+ (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.
+ Handle horizontal scroll bars.
+ (handle_one_xevent): Handle horizontal scroll bar events.
+ Call x_net_wm_state.
+ (x_set_window_size_1, x_wm_set_size_hint): Don't call
+ check_frame_size.
+ (x_set_window_size): Don't call check_frame_size and
+ do_pending_window_change.
+ (x_term_init): Init horizontal_scroll_bar_cursor display info.
+ (x_create_terminal): Add set_horizontal_scroll_bar_hook.
+ (x_scroll_bar_set_handle): Add some checks when calling
+ x_clear_area.
+
+2014-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Revert previous change.
+ There is certainly nothing wrong with writing code like 'lo <= i
+ && i <= hi', even if LO happens to a constant. There isn't even
+ anything wrong in general with writing 'a <= b' if A happens to
+ be a constant. At any rate stylistic changes shouldn't
+ be done like this without discussion.
+
+2014-07-26 Andreas Schwab <schwab@linux-m68k.org>
+
+ * alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value)
+ (Fgarbage_collect): Reorder conditions that are written backwards.
+ * data.c (cons_to_unsigned): Likewise.
+ * dispnew.c (update_frame_1, sit_for): Likewise.
+ * fileio.c (file_offset): Likewise.
+ * filelock.c (read_lock_data, lock_file): Likewise.
+ * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
+ Likewise.
+ * font.c (font_intern_prop, font_style_symbolic): Likewise.
+ * lisp.h (FIXNUM_OVERFLOW_P): Likewise.
+ * lread.c (read1): Likewise.
+ * minibuf.c (read_minibuf_noninteractive): Likewise.
+ * nsterm.m (x_set_frame_alpha): Likewise.
+ * process.c (wait_reading_process_output): Likewise.
+ * region-cache.c (delete_cache_boundaries): Likewise.
+ * xterm.c (x_set_frame_alpha): Likewise.
+
+2014-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
+ Now static.
+
+2014-07-26 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
+ because atimer expiration is absolute rather than relative.
+
+2014-07-25 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.h (current_popup_menu, menubar_in_use):
+ Move declarations from w32term.c.
+
+2014-07-25 Martin Rudalics <rudalics@gmx.at>
+
+ * w32fns.c (menubar_in_use): No more static.
+ * w32term.c (current_popup_menu, menubar_in_use): Declare.
+
+2014-07-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Move hourglass machinery to RIF.
+ * dispextern.h (struct redisplay_interface): New members
+ show_hourglass and hide_hourglass. Indent comments.
+ (show_hourglass, hide_hourglass): Remove prototypes.
+ * nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
+ (ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
+ (ns_redisplay_interface): Add them.
+ * w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
+ * w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
+ (w32_arrow_cursor): New function to hack around non-GUI frames.
+ (w32_redisplay_interface): Add new functions.
+ * w32term.h (w32_arror_cursor): Add prototype.
+ * xdisp.c (show_hourglass): New function, refactored out from
+ platform-dependent code.
+ (cancel_hourglass): Now call to RIF function.
+ * xfns.c (show_hourglass, hide_hourglass): Refactor to ...
+ * xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
+ (x_redisplay_interface): Add new functions.
+
+2014-07-24 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
+ <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00274.html>
+ and complete previous change.
+ * frame.c (adjust_frame_height): New function.
+ (Fset_frame_height, Fset_frame_size): Use it.
+ (x_set_frame_parameters): Take frame top margin into account.
+
+2014-07-23 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (Fset_frame_height): Take frame top margin into account.
+ Incorrect behavior was reported by Martin Rudalics <rudalics@gmx.at> in
+ <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00258.html>
+
+2014-07-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
+ menubar_height as such. Tweak comment.
+ [USE_LUCID && USE_TOOLKIT_SCROLL_BARS]: Likewise for
+ scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel.
+ All related users changed.
+ (FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op.
+ * xterm.c (handle_one_xevent):
+ * gtkutil.c (xg_event_is_for_menubar):
+ * xfns.c (x_window) [USE_X_TOOLKIT]:
+ * xmenu.c (set_frame_menubar, free_frame_menubar):
+ Prefer to use FRAME_MENUBAR_HEIGHT.
+
+2014-07-21 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (Fframe_parameters): Always report frame height without
+ menu and tool bar lines.
+
+2014-07-21 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (applicationDidFinishLaunching:): Call
+ antialiasThresholdDidChange, register for antialias changes (Bug#17534).
+ (antialiasThresholdDidChange:): New method for EmacsApp.
+
+ * nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
+
+ * macfont.m (macfont_update_antialias_threshold): Remove static.
+
+ * macfont.h (macfont_update_antialias_threshold): Declare.
+
+2014-07-21 Eli Zaretskii <eliz@gnu.org>
+
+ * w32select.c (setup_windows_coding_system):
+ Apply CODING_ANNOTATION_MASK to the common_flags member of struct
+ coding_system. Reported by martin rudalics <rudalics@gmx.at>.
+
+ * w16select.c (Fw16_get_clipboard_data):
+ Apply CODING_ANNOTATION_MASK to the common_flags member of struct
+ coding_system.
+
+ * xdisp.c (init_iterator): Initialize it->stop_charpos to the
+ buffer position where we are to start the iteration.
+ (handle_invisible_prop): Record in it->stop_charpos the position
+ where the invisible text ends. (Bug#18035)
+ (hscroll_window_tree): Don't try hscrolling windows whose cursor
+ row has zero buffer position as their start position.
+ Reported by martin rudalics <rudalics@gmx.at>.
+
+ * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
+ infinite looping in redisplay when display lines don't have enough
+ space to display even a single character. (Bug#18036)
+
+2014-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
+ * xfns.c (x_window): Use it to allow xfree later.
+ (x_encode_text): Drop 3rd arg; unused. Tweak comment and adjust users
+ where appropriate. Use bool for booleans and remove redundant checks.
+ (Fx_backspace_delete_keys_p): Use XkbFreeKeyboard; explain why.
+ * xterm.c (x_free_frame_resources): Free shell_position.
+
+2014-07-19 K. Handa <handa@gnu.org>
+
+ * xfaces.c (realize_x_face): Call font_load_for_lface with no
+ mandatory font spec (Bug#17973).
+
+2014-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * font.c (font_score): Return the worst score if the size of
+ ENTITY is wrong by more than a factor 2 (Bug#17973).
+
+2014-07-18 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (frame_unspecified_color): New function
+ refactored out from ...
+ (Fframe_parameters, Fframe_parameter): ... adjusted users.
+ (x_fullscreen_adjust, set_frame_param): Move Windows-specific
+ function to ...
+ * w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
+ * frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
+ * lisp.h (set_frame_param): Remove prototype.
+ * xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
+ * xterm.h (x_display_pixel_width, x_display_pixel_height): ...
+ inlined from here.
+
+ Prefer 'x_display_info *' to 'Display *' in X selection code.
+ This helps to avoid unneeded calls to x_display_info_for_display.
+ * xterm.h (struct selection_input_event): Record 'x_display_info *'
+ instead of 'Display *'.
+ (SELECTION_EVENT_DPYINFO): New macro.
+ (SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
+ it as an lvalue. Mention this in comment.
+ * xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
+ * xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
+ (selection_data_to_lisp_data, receive_incremental_selection):
+ Convert to use 'x_display_info *'. Adjust users where appropriate.
+ (lisp_data_to_selection_data): Likewise. Also pass 'struct
+ selection data *' as last arg to not return values in args.
+ (unexpect_property_change): Use common removal technique.
+
+2014-07-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * print.c (print_preprocess): Adjust to match changed
+ sub char-table structure and avoid crash (Bug#18038).
+
+ * data.c (wrong_choice): Not static any more.
+ * lisp.h (wrong_choice): Add prototype.
+ * frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
+ Declare namebuf as such. Tweak comment.
+ [USE_GTK]: Likewise for tool_bar_position.
+ (fset_tool_bar_position) [USE_GTK]: Ditto.
+ (FRAME_TOOL_BAR_POSITION): New macro.
+ * frame.c (x_report_frame_params):
+ * gtkutil.c (update_frame_tool_bar):
+ * xfns.c (Fx_create_frame): Use it.
+ (x_set_tool_bar_position): Add meaningful diagnostic messages.
+
+2014-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (decode_mode_spec): Call file-remote-p on the current
+ buffer's default-directory only if it is a string. (Bug#17986)
+
+2014-07-16 Dmitry Antipov <dmantipov@yandex.ru>
+
+ More precise control over values of some buffer-local variables.
+ * keyboard.c (Qvertical_scroll_bar):
+ * frame.c (Qleft, Qright): Move to ...
+ * buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
+ * buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
+ (syms_of_buffer): DEFSYM all of the above, attach special properties.
+ Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
+ vertical-scroll-bar, scroll-up-aggressively
+ and scroll-down-aggressively.
+ * buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
+ Add declarations.
+ * nsfns.m, frame.h (Qleft, Qright):
+ * nsterm.m (Qleft): Remove declarations.
+ * gtkutil.c (toplevel): Include buffer.h.
+ * data.c (wrong_choice, wrong_range): New functions.
+ (store_symval_forwarding): Handle special properties of buffer-local
+ variables and use functions from the above to signal error, if any.
+
+ * frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
+ values. Add comment.
+ (struct frame): Re-arrange layout to avoid extra padding and use bit
+ fields for output_method, want_fullscreen and vertical_scroll_bar_type.
+ (FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
+ (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
+ (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
+ Define as no-ops because there are no scroll bars anyway.
+ * frame.c (make_frame, make_terminal_frame, make_initial_frame):
+ Adjust users.
+
+ * font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
+ Add convenient setter.
+ (font_put_frame_data, font_get_frame_data): Use it.
+
+2014-07-15 Daiki Ueno <ueno@gnu.org>
+
+ * nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
+ pointer argument, before dereferencing.
+ (XCHAR2B_BYTE2): Likewise.
+
+2014-07-15 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
+ (pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
+ (create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
+ Use record_unwind_protect_int and avoid consing.
+ (syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.
+
+ * regex.c (re_search_2): Use ssize_t to avoid integer overflow.
+
+2014-07-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
+ * callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
+ * emacs.c [MSDOS]:
+ * emacs.c (main) [DOS_NT]: Don't mess with _fmode.
+ (main) [MSDOS]: Use SET_BINARY instead of setmode.
+ * minibuf.c: Include binary-io.h instead of fcntl.h.
+ (read_minibuf_noninteractive):
+ Use set_binary_mode instead of handcrafted code.
+ Don't call emacs_set_tty if emacs_get_tty failed.
+ * sysdep.c, systty.h (emacs_get_tty): Return int, not void.
+ * sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
+ * w32.c (pipe2): Adjust eassert to include O_BINARY.
+
+ * macros.c (Fstart_kbd_macro): Avoid need for overflow check.
+ This works around a GCC compiler bug when Emacs is configured with
+ --enable-gcc-warnings.
+
+2014-07-14 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
+ or characters in string, respectively. Add comment.
+ * fringe.c (Fdefine_fringe_bitmap):
+ * fns.c (Fsubstring, substring_both): Use it.
+ * keymap.c (Fdefine_key, Flookup_key):
+ * macros.c (Fstart_kbd_macro): Likewise. Avoid call to Flength.
+
+ * term.c (tty_menu_add_pane, tty_menu_add_selection):
+ Use menu_item_width.
+ (tty_menu_show): Simplify because tty_menu_create never return NULL.
+
+2014-07-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve behavior of 'bzr up; cd src; make -k'.
+ * Makefile.in (top_srcdir): New var.
+ (ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
+ Use '$(top_srcdir)' instead of '$(srcdir)/..';
+ its expansion is a bit shorter.
+ (../config.status): Actually build config.status instead of
+ just complaining.
+ (ACLOCAL_INPUTS, AUTOCONF_INPUTS):
+ New macros, copied and relocated from ../Makefile.in.
+ ($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
+ (../config.status, Makefile): New dependencies and rules,
+ copied with relocation from ../Makefile.in. This should be more
+ likely to rebuild the build machinery properly if you do a 'make'
+ in the src directory.
+
+2014-07-12 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (display_line): Don't call FETCH_BYTE with argument less
+ than 1. (Bug#17962)
+
+ * w32fns.c (Fx_file_dialog): Mention in the doc string the
+ behavior on Windows 7 and later when the function is repeatedly
+ invoked with the same value of DIR. (Bug#17950)
+
+ * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
+ string to match the one in w32fns.c.
+
+ * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
+ stdin to binary mode only if it is connected to a terminal.
+
+2014-07-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Coalesce extern decls.
+ * minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
+ * sysdep.c (emacs_get_tty, emacs_set_tty):
+ Move duplicate extern decls from here ...
+ * systty.h: ... to here, so that there's just one copy.
+
+2014-07-11 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.
+
+ * nsfns.m (Fns_popup_font_panel): Ditto.
+
+2014-07-11 Eli Zaretskii <eliz@gnu.org>
+
+ * minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
+ not only on '\n'.
+ [WINDOWSNT]: Switch stdin to binary mode when not echoing input.
+
+ * sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
+ [DOS_NT]: Implement for WINDOWSNT.
+
+ * systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
+ unsigned.
+
+2014-07-11 Michael Albinus <michael.albinus@gmx.de>
+
+ * sysdep.c (suppress_echo_on_tty): New function.
+ * minibuf.c (read_minibuf_noninteractive): Use it.
+
+2014-07-11 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
+ sysinfo failed. Adjust docstring.
+
+2014-07-11 Eli Zaretskii <eliz@gnu.org>
+
+ Implement memory-info for MS-DOS.
+ * dosfns.c (dos_memory_info): New function.
+ * dosfns.h (dos_memory_info): Add prototype.
+ * alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
+ * vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
+ of doing some of its job.
+
+ * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
+ reference termios structure members.
+
+2014-07-11 Michael Albinus <michael.albinus@gmx.de>
+
+ * sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.
+
+ * minibuf.c (top): Include systty.h. Declare external
+ emacs_get_tty and emacs_set_tty.
+ (Vread_hide_char): New lisp variable.
+ (read_minibuf_noninteractive): Hide characters with
+ Vread_hide_char if it is a character. (Bug#17839)
+
+2014-07-10 Eli Zaretskii <eliz@gnu.org>
+
+ Implement memory-info for MS-Windows.
+ * w32.c (w32_memory_info): New function.
+ * w32.h (w32_memory_info): Prototype it.
+ * alloc.c (Fmemory_info) [WINDOWSNT]: Call it.
+
+2014-07-10 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * coding.h (struct coding_system): Remove 'error_positions' (unused)
+ and 'errors' (set but unused) fields. Use bitfields for 'eol_seen',
+ 'mode', 'common_flags' and 'result' fields, adjust layout to avoid
+ extra padding and shrink struct coding_system by 56 bytes (x86_64).
+ * coding.c (decode_coding_utf_8, decode_coding_utf_16)
+ (decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
+ (decode_coding_big5, decode_coding_charset, decode_coding)
+ (encode_coding): Adjust users.
+
+ * alloc.c (Fmemory_info): New function.
+
+2014-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * syntax.c (back_comment): Use more-natural location for label.
+
+ * font.c, font.h (font_unparse_fcname): Now static.
+ Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
+
+2014-07-09 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Next minor cleanup of font subsystem.
+ * font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
+ users) and FONT_FORMAT_INDEX (set by a few font drivers but never
+ really used).
+ (FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
+ unused.
+ * ftfont.h (ftfont_font_format): Remove prototype.
+ * ftfont.c (ftfont_font_format): Remove; now unused.
+ (ftfont_open):
+ * nsfont.m (nsfont_open):
+ * w32font.c (w32font_open_internal):
+ * w32uniscribe.c (uniscribe_open):
+ * xfont.c (xfont_open):
+ * xftfont.c (xftfont_open): All users changed.
+
+ * coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
+ so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
+
+2014-07-09 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (move_it_to): Adjust calculation of line_start_x to what
+ x_produce_glyphs does when it generates a stretch glyph that
+ represents a TAB. (Bug#17969)
+
+ * xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
+ and there is a display property at that position, don't call
+ move_it_to to move to a position before window start. (Bug#17942)
+ Fix condition for finding CHARPOS by the first call to move_it_to.
+ (Bug#17944)
+
+2014-07-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.c (find_defun_start): Try the cache even
+ if !open_paren_in_column_0_is_defun_start.
+ (back_comment): If find_defun_start was pessimistic, use the
+ scan_sexps_forward result to improve the cache (bug#16526).
+
+2014-07-09 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (redisplay_window): If redisplay of a window ends up
+ with point in a partially visible line at end of the window, make
+ sure the amended position of point actually has smaller Y
+ coordinate; if not, give up and scroll the display. (Bug#17905)
-2014-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
+ * window.c (window_scroll_pixel_based): When point ends up at the
+ last fully visible line, don't let move_it_to stop at the left
+ edge of the line and dupe us into thinking point is inside the
+ scroll margin.
- * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
- move point.
+ * w32.c (network_interface_info): Make sure the argument is a
+ Lisp string.
-2014-10-20 Glenn Morris <rgm@gnu.org>
+2014-07-08 Paul Eggert <eggert@cs.ucla.edu>
- * Version 24.4 released.
+ * process.c (read_and_dispose_of_process_output): Fix typo
+ in previous patch: we want nonnegative fds, not nonzero fds.
-2014-10-17 Eli Zaretskii <eliz@gnu.org>
+2014-07-08 Dmitry Antipov <dmantipov@yandex.ru>
- * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
- 1-pixel R2L characters.
- Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
- http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
+ * chartab.c (char_table_translate): Move to...
+ * character.h (char_table_translate): ... inline function here.
+ Avoid Faref and assume that args are always valid. This helps to
+ speedup search, which is especially important for a huge buffers.
+ * lisp.h (char_table_translate): Remove prototype.
-2014-10-10 Paul Eggert <eggert@cs.ucla.edu>
+ * nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
+ * font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
+ New function, with an intention to avoid code duplication between
+ a few font drivers.
+ * font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
+ Add prototype.
+ * ftfont.c (ftfont_open):
+ * macfont.m (macfont_open):
+ * xftfont.c (xftfont_open): Use it.
+
+2014-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * process.c: Add sanity checks for file descriptors (Bug#17844).
+ (wait_reading_process_output, Fprocess_filter_multibyte_p):
+ Check that infd is nonnegative before using it as an fd.
+ (read_and_dispose_of_process_output, Fprocess_send_eof):
+ Likewise, for outfd.
+ (wait_reading_process_output): Omit unnecessary check of infd.
+
+2014-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor fixups related to usage of the 'long' type.
+ * gnutls.c (emacs_gnutls_handshake):
+ * xfaces.c (dump_realized_face):
+ Work even if 'long' is narrower than 'void *'.
+ * termcap.c (scan_file):
+ * xselect.c (x_decline_selection_request)
+ (x_reply_selection_request, x_get_window_property):
+ * xterm.c (x_set_frame_alpha):
+ Remove unnecessary 'L' suffixes of integer constants.
+ * xfns.c (hack_wm_protocols):
+ * xselect.c (x_fill_property_data):
+ * xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
+ Remove unnecessary casts to 'long'.
+ (set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
+
+ Minor ImageMagick safety fixes.
+ * image.c (imagemagick_compute_animated_image):
+ Remove useless assignment to local. Avoid problems if dest_width is 0.
+ (imagemagick_load_image): Use int for pixel counts that can't
+ exceed INT_MAX. Avoid problem if PixelGetNextIteratorRow returns
+ a row width greater than the image width (or greater than LONG_MAX!).
+
+2014-07-04 K. Handa <handa@gnu.org>
+
+ * coding.c (MIN_CHARBUF_SIZE): Delete it.
+ (MAX_CHARBUF_EXTRA_SIZE): New macro.
+ (ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.
+
+2014-07-04 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * font.h (struct font_driver): Remove get_outline and free_outline;
+ not used by any font driver.
+ * ftfont.c (ftfont_driver):
+ * macfont.m (macfont_driver):
+ * nsfont.m (nsfont_driver):
+ * w32font.c (w32font_driver):
+ * w32uniscribe.c (uniscribe_font_driver):
+ * xfont.c (xfont_driver): Related users changed.
+ * xselect.c (x_get_window_property): Use convenient xmalloc.
+ Call to xfree only if some data was really allocated.
+
+2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
+
+ On MS-Windows, display busy cursor on all GUI frames.
+ This is similar to what we have on X. Quickly tested by Dani Moncayo.
+ * w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
+ (w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
+ Likewise.
+ (hide_hourglass, show_hourglass): Redesign to match X counterparts.
+ * xdisp.c (start_hourglass): Remove Windows-specific bits.
+
+2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Use convenient alists to manage per-frame font driver-specific data.
+ * frame.h (struct frame): Rename font_data_list to...
+ [HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
+ * font.h (struct font_data_list): Remove; no longer need a special
+ data type.
+ (font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
+ Adjust prototypes.
+ * font.c (font_put_frame_data, font_get_frame_data)
+ [HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
+ management.
+ * xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
+ Related users changed.
+ * ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
+ Prefer convenient xmalloc and xfree.
- Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
- * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
+2014-07-03 Eli Zaretskii <eliz@gnu.org>
-2014-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
+ * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
+ the window whose glyph row is being prepared and a flag whether it
+ is for mode/header line. Make sure the glyph row's marginal areas
+ are in sync with what the window wants.
+ (Bug#17892)
- * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
- (bug#18638).
+ * xdisp.c (display_line, display_mode_line):
+ Call prepare_desired_row with additional arguments, as appropriate.
-2014-10-08 K. Handa <handa@gnu.org>
+ * dispextern.h (prepare_desired_row): Adjust prototype.
- * coding.c (detect_coding_iso_2022): Set coding->rejected
- correctly when an invalid escape sequence is found (Bug#18610).
+2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
-2014-10-03 Dmitry Antipov <dmantipov@yandex.ru>
+ * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
+ * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
+ caused by xw_popup_dialog in daemon mode (Bug#17891).
- * font.c (font_list_entities): Do not add empty vector to font cache.
- (font_matching_entity): Likewise. If matching entity is found, insert
- 1-item vector with this entity instead of an entity itself (Bug#17125).
+2014-07-03 Eli Zaretskii <eliz@gnu.org>
-2014-10-02 Eli Zaretskii <eliz@gnu.org>
+ * frame.c (do_switch_frame): When switching to another TTY frame,
+ make sure FrameCols and FrameRows are in sync with the new frame's
+ data. (Bug#17875)
- * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
- iterator backwards, to resync the bidi iterator. (Bug#18584)
+2014-07-02 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
+ * lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
+ min_char slots. Adjust comment.
+ (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
+ Add SUB_CHAR_TABLE_OFFSET member.
+ (make_uninit_sub_char_table): New function.
+ (toplevel): Add compile-time assert to verify suitable member layout
+ in Lisp_Sub_Char_Table.
+ * alloc.c (mark_char_table): Add extra argument to denote char table
+ subtype. Adjust to match new layout of sub char-table.
+ (mark_object): Always mark sub char-tables with mark_char_table.
+ * chartab.c (make_sub_char_table, copy_sub_char_table)
+ (sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
+ (sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
+ (map_sub_char_table_for_charset, uniprop_table_uncompress):
+ All related users changed.
+ * lread.c (read1): Adjust to match new layout of sub char-table.
+ * print.c (print_object): Likewise (Bug#17898).
-2014-10-01 Jan Djärv <jan.h.d@swipnet.se>
+2014-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
- * 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.
+ * keymap.c (get_keyelt): Simplify.
+ (copy_keymap_item): Remove left-over code for when we had
+ key-shortcut caches.
-2014-09-30 Eli Zaretskii <eliz@gnu.org>
+2014-06-30 Jan Djärv <jan.h.d@swipnet.se>
- * 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.
+ * nsterm.m (judge): EmacsScroller: Move dealloc code here.
+ (dealloc): Remove for EmacsScroller.
-2014-09-29 Eli Zaretskii <eliz@gnu.org>
+ * nsterm.h (EmacsScroller): Remove dealloc.
- * 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)
+2014-06-30 Eli Zaretskii <eliz@gnu.org>
- * window.c (Frecenter): Set the window's redisplay flag.
+ * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32. (Bug#17881)
-2014-09-24 Eli Zaretskii <eliz@gnu.org>
+2014-06-30 Jan Djärv <jan.h.d@swipnet.se>
- * 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.
+ * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
+ when setNeedsDisplay is called so we don't trigger redisplay for every
+ tool bar update.
- * 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)
+ * nsterm.m (any_help_event_p): New variable.
+ (mouseMoved:): Set any_help_event_p to YES if help event is
+ generated. Remove else with empty help event that triggered redisplay
+ for every mouse move.
+ (windowDidResignKey:): If any_help_event_p, generate empty help event.
-2014-09-22 Dmitry Antipov <dmantipov@yandex.ru>
+2014-06-29 Dmitry Antipov <dmantipov@yandex.ru>
- On OSX, do not free font-specific data more than once (Bug#18501).
- * macfont.m (macfont_close): Release and free font-specific data
- only if it wasn't previously freed.
+ * xfns.c (Qsuppress_icon): Remove; no real users.
+ (syms_of_xfns): Don't DEFSYM it. Remove ancient comments.
+ * w32fns.c (Qsuppress_icon): Remove, for the same reason.
+ (syms_of_w32fns): Don't DEFSYM it.
-2014-09-21 David Caldwell <david@porkrind.org> (tiny change)
+2014-06-29 Glenn Morris <rgm@gnu.org>
- * unexmacosx.c (dump_it): Improve error message.
+ * Makefile.in (ns-app): Mark as PHONY.
-2014-09-18 Juri Linkov <juri@jurta.org>
+2014-06-28 Glenn Morris <rgm@gnu.org>
- * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
- (Bug#10747, bug#18334)
+ * Makefile.in (mostlyclean): There are no libXMenu11.a,
+ liblw.a in this directory.
-2014-09-18 Eli Zaretskii <eliz@gnu.org>
+2014-06-28 Andreas Schwab <schwab@linux-m68k.org>
- * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
- units in which the position is measured. (Bug#18493)
+ * coding.c (encode_coding_utf_8): Correctly count produced_chars
+ also in unibyte case. (Bug#17865)
- * xdisp.c (redisplay_internal): Force redisplay of all windows
- that show a buffer whose narrowing has changed. (Bug#18490)
+2014-06-28 K. Handa <handa@gnu.org>
-2014-09-16 Eli Zaretskii <eliz@gnu.org>
+ * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE.
+ (MIN_CHARBUF_SIZE): New macro.
+ (ALLOC_CONVERSION_WORK_AREA): New arg SIZE. Callers changed.
- * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
- * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
- lines, draw the hollow-box and hbar cursors on the right side of
- cursor-glyph. Thanks to martin rudalics <rudalics@gmx.at> for
- testing on X.
+2014-06-27 Glenn Morris <rgm@gnu.org>
- * xterm.c (x_draw_stretch_glyph_string):
- * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
- caused the block cursor to disappear on a TAB in R2L lines in
- every window except the leftmost one. Reported by Martin Rudalics
- <rudalics@gmx.at>.
+ * Makefile.in: Replace BOOTSTRAPEMACS sleight-of-hand
+ with an order-only dependence on bootstrap-emacs. (Bug#2151)
+ (.el.elc): Replace suffix rule with pattern rule.
+ (%.elc): New pattern rule, with order-only prerequisite.
+ ($(lisp)): No more need to depend on BOOTSTRAPEMACS.
+ ($(lispsource)/loaddefs.el): Use an order-only prerequisite
+ in place of BOOTSTRAPEMACS.
-2014-09-16 Dmitry Antipov <dmantipov@yandex.ru>
+2014-06-26 Dmitry Antipov <dmantipov@yandex.ru>
- Always use matched specpdl entry to record call arguments (Bug#18473).
- * lisp.h (record_in_backtrace): Adjust prototype.
- * eval.c (record_in_backtrace): Return current specpdl level.
- (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users.
- (eval_sub, Ffuncall): Record call arguments in matched specpdl
- entry and use that entry in call to backtrace_debug_on_exit.
- (apply_lambda): Likewise. Get current specpdl level as 3rd arg.
- (do_debug_on_call): Get current specpdl level as 2nd arg.
+ * fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
- Prefer ptrdiff_t to int and avoid integer overflows.
- * fileio.c (make_temp_name):
- * font.c (font_parse_family_registry): Avoid integer
- overflow on string size calculation.
- * data.c (Faset): Likewise for byte index.
+2014-06-25 Dmitry Antipov <dmantipov@yandex.ru>
-2014-09-15 Eli Zaretskii <eliz@gnu.org>
+ Consistently use validate_subarray to verify substring.
+ * fns.c (validate_substring): Not static any more. Adjust to
+ use ptrdiff_t, not EMACS_INT, because string and vector limits
+ can't exceed ptrdiff_t even if EMACS_INT is wider.
+ (Fcompare_strings, Fsubstring, Fsubstring_no_properties)
+ (secure_hash): Adjust user.
+ * lisp.h (validate_subarray): Add prototype.
+ * coding.c (Fundecodable_char_position):
+ * composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
+ Use validate_subarray. Adjust comment to mention substring.
- Fix display of R2L lines in partial-width windows.
- * xdisp.c (init_iterator): Don't use it->bidi_p before it is
- assigned the correct value.
- (extend_face_to_end_of_line): Account for truncation and
- continuation glyphs in R2L rows when one of the fringes is not
- displayed.
- (display_line): Don't assign negative X offset to a row if we are
- going to produce a truncation glyph for it. When handling
- truncated R2L rows, consider the width of the left fringe instead
- of the right one.
- (produce_special_glyphs): Fix bogus assignments.
+2014-06-25 Dmitry Antipov <dmantipov@yandex.ru>
-2014-09-14 Eli Zaretskii <eliz@gnu.org>
+ Do not allow out-of-range character position in Fcompare_strings.
+ * fns.c (validate_subarray): Add prototype.
+ (Fcompare_substring): Use validate_subarray to check ranges.
+ Adjust comment to mention that the semantics was changed. Also see
+ http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00447.html.
- * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of
- pipes.
- (sys_write): When a write to a non-blocking pipe returns ENOSPC,
- set errno to EAGAIN instead, to allow the caller to retry the
- write after some waiting. Fixes deadlocks when Emacs exchanges a
- lot of data through the pipe. (Bug#18420)
+2014-06-24 Paul Eggert <eggert@cs.ucla.edu>
-2014-09-13 Eli Zaretskii <eliz@gnu.org>
+ Be more consistent about the 'Qfoo' naming convention.
+ * image.c (Fimagemagick_types):
+ * lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
+ * process.c (Fmake_network_process):
+ Rename C local identifier 'Qfoo to avoid giving the false
+ impression that it stands for the symbol 'foo'.
- * sound.c (Fplay_sound_internal): Encode the sound file name in
- the ANSI codepage. Expand it against data-directory, as per docs,
- not against the current directory. No need to make a local copy
- of the file name; pass the encoded file name directly to
- do_play_sound. (Bug#18463)
+2014-06-23 Dmitry Antipov <dmantipov@yandex.ru>
- * w32.c (ansi_encode_filename): If w32_get_short_filename returns
- NULL, and the file name is not encodable in ANSI codepage, return
- the string with "?" replacement characters, which will fail the
- caller. This avoids returning a random value in that case.
+ Simplify and cleanup character conversion stuff.
+ * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe):
+ Remove prototypes.
+ * character.c (multibyte_char_to_unibyte)
+ (multibyte_char_to_unibyte_safe): Remove; no longer used.
+ * character.h (make_char): Remove; unused.
+ (CHAR_TO_BYTE8, CHAR_TO_BYTE_SAFE): Simplify.
+ (ASCII_BYTE_P): Remove; ASCII_CHAR_P does the same thing.
+ * buffer.c, charset.c, charset.h, cmds.c, coding.c, editfns.c:
+ * fileio.c, indent.c, insdel.c, keyboard.c, lread.c, print.c:
+ * search.c, term.c, xdisp.c, xterm.c: Related users changed.
+
+2014-06-22 Mario Lang <mlang@delysid.org>
+
+ * w32fns.c (Fw32_shell_execute): The the -> the.
+
+2014-06-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xmenu.c (mouse_position_for_popup):
+ * xselect.c (mouse_position_for_drop): Do not duplicate ...
+ * xfns.c (x_relative_mouse_position): ... and prefer this function.
+ * menu.c (Fx_popup_menu):
+ * xselect.c (x_handle_dnd_message): Adjust users.
+ * menu.h (mouse_position_for_popup): Remove prototype.
+ * xterm.h (x_relative_mouse_position): Add prototype.
+ * xterm.c (x_find_topmost_parent): Break from the loop and do not
+ call XFree if XQueryTree returns zero.
-2014-09-11 Martin Rudalics <rudalics@gmx.at>
+2014-06-21 Eli Zaretskii <eliz@gnu.org>
- * window.c (Fresize_mini_window_internal): Set w->total_lines
- from w->pixel_height (Bug#18422).
+ * indent.c (Fvertical_motion): Doc fix.
+ Move to the goal column, if any, with a single call to
+ move_it_in_display_line, not in two calls. Doing this with two
+ calls causes move_it_in_display_line apply the line-prefix
+ handling twice instead of just once. (Bug#17823)
-2014-09-09 Jan Djärv <jan.h.d@swipnet.se>
+2014-06-21 Paul Eggert <eggert@cs.ucla.edu>
- * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
- (toggleFullScreen:): Take frame_resize_pixelwise into account when
- setting resize increments (Bug#18435).
+ Port to OS X ACLs (Bug#17810).
+ * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
+ ACL_TYPE_ACCESS) doesn't work.
-2014-09-09 Eli Zaretskii <eliz@gnu.org>
+2014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
- * xdisp.c (pos_visible_p): Properly save and restore the iterator
- state around the call to line_bottom, since it can move the
- iterator to another screen line. This fixes off-by-one errors in
- the reported row in some rare cases.
+ * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
+ before checking key-translation-map (bug#17659).
-2014-09-07 Eli Zaretskii <eliz@gnu.org>
+2014-06-21 Dmitry Antipov <dmantipov@yandex.ru>
- * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
- always make sure the marginal areas of the row are in sync with
- what the window wants. (Bug#18419)
+ * font.c (font_make_object): Avoid dangling pointer which may
+ crash GC (Bug#17771).
-2014-09-04 Eli Zaretskii <eliz@gnu.org>
+2014-06-21 Eli Zaretskii <eliz@gnu.org>
- * data.c (set_internal): Use assq_no_quit, not Fassq, to find an
- existing binding of a variable, to avoid silently aborting
- commands that use specbind. (Bug#18331)
+ * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
+ prototype of DGifCloseFile as appropriate for older and newer
+ versions of giflib.
+ (gif_close): New function, encapsulates the differences in the
+ calling sequence of DGifCloseFile before v5.1.0 and after it.
+ (gif_load): Call gif_close instead of DGifCloseFile. Divulge the
+ error string where appropriate. (Bug#17790)
-2014-09-02 Eli Zaretskii <eliz@gnu.org>
+ * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
+ macro execution, make sure point didn't move since last complete
+ redisplay, as the condition for using the glyph matrix
+ information. (Bug#17777)
- * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
- the reported row in the case of a window with a header line, by
- improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
- eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc. (Bug#18384)
+2014-06-19 Dmitry Antipov <dmantipov@yandex.ru>
-2014-09-02 Paul Eggert <eggert@cs.ucla.edu>
+ Minor cleanup of fonset code.
+ * fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
+ (set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
+ (FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
+ (set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
+ (FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
+ (set_fontset_fallback): Reorder extra slots and avoid unused slots.
+ (free_realized_fontset): Remove because a no-op since 2008.
+ (free_face_fontset): Adjust user.
+ (syms_of_fontset): Shrink fontset by one extra slot.
+
+2014-06-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ Omit redundant extern decls.
+ Most of this patch is from Dmitry Antipov, in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
+ * commands.h (update_mode_lines):
+ * frame.h (Qbackground_color, Qforeground_color)
+ (x_set_menu_bar_lines):
+ * ftfont.c (ftfont_font_format):
+ * intervals.h (Qkeymap, Qfont):
+ * keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
+ * lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
+ (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
+ (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
+ (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
+ (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
+ (Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
+ (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
+ (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
+ (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
+ (Qtool_bar, Qheader_line):
+ * macros.c (Fexecute_kbd_macro):
+ * xdisp.c (Ftool_bar_height, Ftool_bar_height):
+ * xterm.c (x_delete_terminal, XSetIMValues):
+ * xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
+ (x_implicitly_set_name, popup_activated)
+ (widget_store_internal_border):
+ Remove redundant decls.
+ * frame.c [USE_X_TOOLKIT]: Include widget.h.
+ * keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
+ Remove _Noreturn, as make-docfile now does that for us.
+ * lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
+ (Qregion_extract_function): New decl.
+ * window.c, xfns.c: Include menu.h.
+
+2014-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * callint.c (Fcall_interactively): Fix up last change (bug#17701).
+
+2014-06-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * fileio.c (Fread_file_name): Do not pass redundant args and ...
+ * callint.c (read_file_name): ... convert to static here.
+ * lisp.h (Fread_file_name): Do not EXFUN it.
+ (STRING_COPYIN): Remove; unused.
+ * composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
+ (char_composable_p): ... static function. All users changed.
+ * eval.c (toplevel): Remove redundant #include directives.
+ * xterm.c (x_initialize): Add static to match prototype.
+ * ccl.c (Fccl_execute_on_string):
+ * font.c (fon_intern_prop): Use make_specified_string.
- * eval.c (internal_lisp_condition_case): Don't overrun the stack
- when configured --with-wide-int on typical 32-bit platforms.
+2014-06-16 Paul Eggert <eggert@cs.ucla.edu>
-2014-08-31 Eli Zaretskii <eliz@gnu.org>
+ * Makefile.in (ns-app): Fix typo that broke build on OS X.
+ Reported by David Caldwell in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00251.html
- * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
- when HPOS is negative, for the benefit of R2L glyph rows whose
- newline overflows into the fringe.
+2014-06-16 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Do not ask for XRender extension each time XFT font is opened.
+ * xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
+ * xterm.c (x_term_init) [HAVE_XFT]: ... to here. Adjust comment.
+
+2014-06-15 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Use `make -C' rather than `cd && make' throughout.
+
+2014-06-15 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
+ information if we are in the middle of executing a keyboard macro,
+ since redisplay doesn't update the screen until the macro is
+ finished. (Bug#17777)
+
+ * alloc.c (cleanup_vector): Don't dereference a font driver
+ pointer if it is NULL. (Bug#17771)
+
+2014-06-13 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
+ ($(lispsource)/international/charprop.el)
+ ($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
+ ($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
+ ($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
+ GNU make automatically passes command-line arguments to sub-makes.
+
+2014-06-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ Avoid hangs in accept-process-output (Bug#17647).
+ * lisp.h, process.c (wait_reading_process_input):
+ Return int, not bool. All uses changed.
+ * process.c (SELECT_CANT_DO_WRITE_MASK):
+ Remove macro, replacing with ...
+ (SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
+ All uses changed.
+ (status_notify): New arg WAIT_PROC. Return int, not void.
+ All uses changed.
+
+2014-06-13 Eli Zaretskii <eliz@gnu.org>
+
+ * menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
+ the frame is the initial frame, because the hook is not set up
+ then, and Emacs crashes.
+ Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
+
+2014-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymap.c (silly_event_symbol_error): Don't recommend the use
+ of strings.
+
+2014-06-11 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
+ matching overlay strings with 'cursor' property against buffer
+ positions traversed in the glyph row. (Bug#17744)
+
+2014-06-11 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
+ on Cocoa.
+
+ * nsterm.m (run): Always compile for Cocoa. Use runtime check to
+ determine 10.9 (Bug#17751).
+
+ * macfont.m (macfont_draw): Positions were not freed.
+
+2014-06-10 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
+ * xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
+ function. Also adjust comment.
+ * fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.
+
+ * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
+ * font.c (font_done_for_face):
+ * xfaces.c (realize_non_ascii_face): Adjust user.
+ * font.h (struct font_driver): Convert 'prepare_face' to return
+ void because its return value is never used anyway.
+ * xfont.c (xfont_prepare_face): Return void.
+ * xftfont.c (xftfont_prepare_face): Likewise. Use xmalloc.
+ (xftfont_done_face): Use xfree.
+
+ * dispextern.h (last_tool_bar_item): Remove declaration.
+ * frame.h (struct frame): New member last_tool_bar_item.
+ * frame.c (make_frame): Initialize it.
+ * xdisp.c (toplevel): Remove last_tool_bar_item.
+ (handle_tool_bar_click, note_tool_bar_highlight):
+ * w32term.c (w32_read_socket, w32_initialize):
+ * xterm.c (handle_one_xevent, x_initialize): Adjust users.
+
+ * frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
+ * frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.
+
+2014-06-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Say (accept-process-output P)'s result pertains to P if P is non-nil.
+ * process.c (Faccept_process_output)
+ (wait_reading_process_output): Mention that if PROCESS is non-nil,
+ the return value is about PROCESS, not about other processes.
+
+2014-06-09 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Further adjustments to mark_object and friends.
+ Now the mark_object's stack is just 32 bytes on a 64-bit
+ system, which means extra 20% off the stack usage.
+ * alloc.c (mark_save_value): As before, refactored out from ...
+ (mark_object): ... adjusted user. Also add comment.
+
+2014-06-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix core dump after a dropped X connection (Bug#17704).
+ * sysdep.c (stuff_char): Don't abort merely because the selected frame
+ is dead, as we may be shutting down.
+
+2014-06-08 Glenn Morris <rgm@gnu.org>
+
+ * fileio.c (write-region-inhibit-fsync): Doc tweak.
+
+ * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
+
+2014-06-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ If a C name must be extern on some platforms, make it extern on all.
+ * dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
+ (load_color):
+ * font.h (ftxfont_driver) [HAVE_XFT]:
+ * keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
+ * lisp.h (get_frame_param):
+ * menu.h (tty_menu_show):
+ * process.h (conv_sockaddr_to_lisp, catch_child_signal):
+ * termhooks.h (encode_terminal_code):
+ * xterm.h (x_menu_wait_for_event):
+ Always declare.
+ * frame.c (get_frame_param):
+ * fringe.c (max_used_fringe_bitmap):
+ * ftxfont.c (ftxfont_driver):
+ * keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
+ * menu.c (menu_items_inuse):
+ * process.c (conv_sockaddr_to_lisp, catch_child_signal):
+ * term.c (encode_terminal_code, tty_menu_show):
+ * xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
+ * xfaces.c (load_color):
+ * xmenu.c (x_menu_wait_for_event):
+ Now always extern.
+
+2014-06-08 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Change object marking routines to minimize stack usage.
+ This change moves a few cold paths from mark_object to NO_INLINE
+ functions and adjusts symbol marking loop. According to GCC 4.8.2
+ -Wstack-usage, this reduces mark_object's stack usage from 80 to
+ 48 bytes on a 64-bit system. For a long byte-force-recompile runs,
+ stack usage at the mark phase is reduced up to 28%. Surprisingly,
+ it also gains up to 3% in speed (with default '-O2 -g3' flags).
+ * alloc.c (mark_compiled, mark_localized_symbol): New functions,
+ refactored out from ...
+ (mark_object): ... adjusted user. Also mark symbols in a tight
+ inner loop.
+ (mark_face_cache): Add NO_INLINE.
+
+2014-06-08 Eli Zaretskii <eliz@gnu.org>
+
+ * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
+ contains garbage on WINDOWSNT (which could potentially infloop at
+ exit).
-2014-08-30 Ken Brown <kbrown@cornell.edu>
+ Minimize cursor motion during TTY menu updates.
+ * term.c (tty_menu_display): Don't position cursor here.
+ Instead, pass the cursor coordinates to update_frame_with_menu.
+ (tty_menu_activate): Send the hide cursor command only once in an
+ iteration through the outer 'while' loop.
- * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define.
- (Bug#18366)
+ * dispnew.c (update_frame_1): Accept an additional argument
+ SET_CURSOR_P, and position the cursor at the end of the frame
+ update only if that argument is non-zero. All callers changed to
+ provide the additional argument as non-zero, except for
+ update_frame_with_menu.
+ (update_frame_with_menu): Accept 2 additional arguments ROW and
+ COL; if they are non-negative, instruct update_frame_1 not to
+ position the cursor, and instead position it according to ROW and COL.
-2014-08-28 Eli Zaretskii <eliz@gnu.org>
+ * dispextern.h (update_frame_with_menu): Update prototype.
- * syntax.c (scan_lists): Don't examine positions before BEGV.
- (Bug#18339)
+2014-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
-2014-08-25 Eli Zaretskii <eliz@gnu.org>
+ * callproc.c (call_process): Don't check read-only if we don't insert
+ anything (bug#17666).
- * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
+2014-06-08 Eli Zaretskii <eliz@gnu.org>
-2014-08-18 Eli Zaretskii <eliz@gnu.org>
+ * dispnew.c (update_frame_with_menu): Set display_completed.
- * xdisp.c (handle_stop): Improve commentary.
+2014-06-07 Eli Zaretskii <eliz@gnu.org>
- * indent.c (Fvertical_motion): Fix vertical motion up through a
- display property after a newline. (Bug#18276)
+ * term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
+ only for WINDOWSNT.
+ * menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.
-2014-08-17 Eli Zaretskii <eliz@gnu.org>
+2014-06-06 Paul Eggert <eggert@cs.ucla.edu>
- * xdisp.c (display_line): Don't assume that the call to
- reseat_at_next_visible_line_start ends up at a character
- immediately following the newline on the previous line.
- Avoids setting the ends_at_zv_p flag on screen lines that are not at or
- beyond ZV, which causes infloop in redisplay. For the details, see
- http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
+ * term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
+ * menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.
- * dispnew.c (buffer_posn_from_coords): Fix mirroring of X
- coordinate for hscrolled R2L screen lines. (Bug#18277)
+2014-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
-2014-08-11 Ken Brown <kbrown@cornell.edu>
+ * window.c (Frecenter): Signal an error if window-buffer is not
+ current-buffer.
- * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
- ERRORCHECK mutexes. (Bug#18222)
+ * keyboard.c (make_lispy_position): Don't include a buffer position in
+ mode/header-line mouse events.
-2014-08-11 Glenn Morris <rgm@gnu.org>
+ * keyboard.c (read_char): Handle (t . <event>) in the second use of
+ Vunread_command_events (bug#17650).
- * fileio.c: Revert 2013-01-31 change, which chose coding system for
- writing before backing up, since it causes a more serious problem
- than the one it solves. (Closes Bug#18141, reopens Bug#13522.)
- (choose_write_coding_system): No longer callable from Lisp.
- Move last piece back here from Fwrite_region.
- (Fwrite_region, syms_of_fileio): Update for above changes.
+2014-06-06 Dmitry Antipov <dmantipov@yandex.ru>
-2014-08-09 Martin Rudalics <rudalics@gmx.at>
+ * xterm.c (x_setup_pointer_blanking):
+ Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
- * window.c (Fwindow_new_total, Fwindow_new_normal)
- (Fwindow_new_pixel, Fset_window_new_pixel)
- (Fset_window_new_total, Fset_window_new_normal): Second attempt
- to fix the doc-strings of these functions. See:
- http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
+2014-06-05 Dmitry Antipov <dmantipov@yandex.ru>
-2014-08-08 Martin Rudalics <rudalics@gmx.at>
+ * keyboard.c, process.c: Do not define POLL_FOR_INPUT here
+ because it will be defined in generated config.h if needed.
- * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
- (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
- (Fwindow_new_pixel, Fset_window_new_pixel)
- (Fset_window_new_total, Fset_window_new_normal)
- (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
+2014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
-2014-08-07 Eli Zaretskii <eliz@gnu.org>
+ Use terminal-specific hooks to display popup dialogs.
+ * termhooks.h (struct terminal): New field popup_dialog_hook.
+ * menu.c (emulate_dialog_with_menu): New function, refactored from ...
+ (Fx_popup_dialog): ... adjusted user. Also remove old #if 0
+ code and use popup_dialog_hook.
+ * nsmenu.m (ns_popup_dialog): Make hook-compatible.
+ * nsterm.h (ns_popup_dialog): Adjust prototype.
+ * nsterm.m (ns_create_terminal):
+ * w32term.c (w32_create_terminal):
+ * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
+ Setup popup_dialog_hook.
- * fontset.c (Finternal_char_font): Recompute basic faces if the
- frame's face cache was cleared. (Bug#18162)
+2014-06-04 Eli Zaretskii <eliz@gnu.org>
-2014-08-05 Dmitry Antipov <dmantipov@yandex.ru>
+ * w32heap.c (report_temacs_memory_usage): Improve the report by
+ reporting the large blocks that are actually occupied at dump time.
- Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
- * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
- base buffer's undo list.
+ * w32console.c (initialize_w32_display): Set the console
+ menu_show_hook, otherwise TTY menus are broken on w32.
-2014-08-03 Dmitry Antipov <dmantipov@yandex.ru>
+2014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
- Fix bug with an attempt to select uninitialized frame (Bug#18161).
- * xfns.c (Fx_create_frame): Move call to change_frame_size to
- a section where Lisp evaluation is disabled. This way a pointer
- to uninitialized frame is not accessible from Lisp, which becomes
- critical if following call to x_figure_window_size throws an error.
+ Use terminal-specific hooks to display menus.
+ * termhooks.h (struct terminal): New field menu_show_hook.
+ * menu.h (<anonymous enum>): Bit flags for menu hooks.
+ (x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
+ Adjust prototypes.
+ * menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
+ * nsmenu.m (ns_menu_show):
+ * w32menu.c (w32_menu_show):
+ * xmenu.c (x_menu_show):
+ * term.c (tty_menu_show): Adjust to use bit flags.
+ (set_tty_hooks): Set menu_show_hook.
+ * xterm.c (x_create_terminal):
+ * nsterm.m (ns_create_terminal):
+ * msdos.c (initialize_msdos_display):
+ * w32term.c (w32_create_terminal): Likewise.
-2014-08-02 Paul Eggert <eggert@cs.ucla.edu>
+2014-06-03 Juanma Barranquero <lekktu@gmail.com>
- Fix bug with clang + directory_files_internal + GC (Bug#16986).
- * dired.c (directory_files_internal): Use a volatile variable
- to prevent the compiler from optimizing away all copies of a local.
- I wonder how many other GC-related bugs like this lurk elsewhere?
+ * w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
- Avoid 100% CPU utilization on ssh session exit (Bug#17691).
- * xterm.h (struct x_display_info): New member 'connection'.
- * xterm.c (x_term_init, x_delete_terminal): Set and use it,
- so that x_delete_terminal has a file descriptor to pass to
- delete_keyboard_wait_descriptor.
+2014-06-03 Eli Zaretskii <eliz@gnu.org>
-2014-08-01 Eli Zaretskii <eliz@gnu.org>
+ * sysselect.h (fd_CLR, fd_ISSET, fd_SET, FD_CLR, FD_ISSET)
+ (FD_SET): Don't define on WINDOWSNT.
- Fix display of R2L lines when the last character fits only partially.
- See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
- for the details.
- * xdisp.c (extend_face_to_end_of_line): If the last glyph of an
- R2L row is visible only partially, give the row a negative x
- offset.
- (display_line): Fix the calculation of the glyph whose pixel width
- is used to decide whether the last produced glyph fits on the
- line. When the last glyph fits only partially, give the row a
- negative x offset.
+2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
-2014-07-29 Eli Zaretskii <eliz@gnu.org>
+ * emacs.c: Include "sysselect.h", to define its inline functions.
+ Reported by Glenn Morris in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00077.html
- Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
- * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
- pixel width of the first glyph that is hscrolled from display.
- (display_line): In R2L glyph rows, don't give a negative offset to
- row->x when the first glyph begins before first_visible_x.
+ Do not require libXt-devel when building with gtk.
+ * gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
+ dependency on libXt-devel.
+ * menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
+ (enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
+ lwlib-widget.h now does this.
+ * nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
-2014-07-29 Andreas Schwab <schwab@suse.de>
+2014-06-03 Paul Eggert <eggert@penguin.cs.ucla.edu>
- * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
- kbd_macro_end together with kbd_macro_buffer. (Bug#18140)
+ If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
+ * process.c (add_read_fd, delete_read_fd, add_write_fd)
+ (delete_write_fd, wait_reading_process_output):
+ Remove now-redundant easserts.
+ * sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
+ Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+ (fd_CLR, fd_ISSET, fd_SET): New inline functions.
+ (FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
-2014-07-28 Eli Zaretskii <eliz@gnu.org>
+2014-06-03 Eli Zaretskii <eliz@gnu.org>
- * xdisp.c (display_line): If called with iterator set up to write
- to a marginal area, delay the call to handle_line_prefix until we
- switch back to the text area. (Bug#18035)
+ * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use
+ HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
+ (calloc): Don't undef, it is never defined.
+ (HEAP_ENTRY_SHIFT): Remove unused macro.
- * .gdbinit (xwindow): The members total_cols, total_lines,
- left_col, and top_line are C integers (and has been so for the
- last 1.5 years).
+ * Makefile.in (C_HEAP_SWITCH): Remove.
+ (ALL_CFLAGS): Don't use $(C_HEAP_SWITCH).
-2014-07-20 Jan Djärv <jan.h.d@swipnet.se>
+ Fix MS-Windows build broken by menu changes on 2014-06-02.
+ * w32menu.c (w32_menu_show): Fix a typo that broke compilation.
- * nsterm.m (applicationDidFinishLaunching:): Call
- antialiasThresholdDidChange, register for antialias changes (Bug#17534).
- (antialiasThresholdDidChange:): New method for EmacsApp.
+ * menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]:
+ Define instead of including ../lwlib/lwlib.h, which causes
+ compilation errors due to missing X11 headers.
- * nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
+2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
- * macfont.m (macfont_update_antialias_threshold): Remove static.
+ * process.c (wait_reading_process_output): Omit incorrect test of
+ p->infd against zero. Add easserts for infd having a plausible value.
- * macfont.h (macfont_update_antialias_threshold): Declare.
+2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
-2014-07-17 Eli Zaretskii <eliz@gnu.org>
+ Adjust to match recent lwlib changes.
+ * menu.h (xmalloc_widget_value): Replace by ...
+ (make_widget_value): ... new prototype.
+ * menu.c (xmalloc_widget_value): Replace by ...
+ (make_widget_value): ... new function.
+ (free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
+ * gtkutil.c (malloc_widget_value, free_widget_value):
+ (widget_value_free_list, malloc_cpt): Remove old lwlib-compatible code.
+ * keyboard.h (enum button_type, struct _widget_value):
+ * gtkutil.h, nsgui.h, w32gui.h (malloc_widget_value, free_widget_value):
+ Likewise.
+ * nsmenu.m (ns_update_menubar, ns_menu_show):
+ * w32menu.c (set_frame_menubar, w32_menu_show, w32_dialog_show):
+ * xmenu.c (set_frame_menubar, xmenu_show, x_dialog_show): Adjust users.
+ * xterm.h (XtParent) [USE_GTK]: Remove unused macro.
- * w32select.c (setup_windows_coding_system):
- Apply CODING_ANNOTATION_MASK to the common_flags member of struct
- coding_system. Reported by martin rudalics <rudalics@gmx.at>.
+2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
- * w16select.c (Fw16_get_clipboard_data):
- Apply CODING_ANNOTATION_MASK to the common_flags member of struct
- coding_system.
+ * image.c (x_query_frame_background_color)
+ [HAVE_PNG || HAVE_NS || HAVE_IMAGEMAGICK || HAVE_RSVG]:
+ Fix --enable-gcc-warnings compilation without image libraries.
- * xdisp.c (init_iterator): Initialize it->stop_charpos to the
- buffer position where we are to start the iteration.
- (handle_invisible_prop): Record in it->stop_charpos the position
- where the invisible text ends. (Bug#18035)
- (hscroll_window_tree): Don't try hscrolling windows whose cursor
- row has zero buffer position as their start position.
- Reported by martin rudalics <rudalics@gmx.at>.
+2014-06-02 Eli Zaretskii <eliz@gnu.org>
-2014-07-16 Eli Zaretskii <eliz@gnu.org>
+ * w32heap.c (malloc_after_dump, realloc_after_dump): Update the
+ emulated break value only if it goes up.
+ (sbrk): Add assertion that the INCREMENT argument is strictly
+ zero. Improve and correct the commentary.
- * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
- infinite looping in redisplay when display lines don't have enough
- space to display even a single character. (Bug#18036)
+2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
-2014-07-13 Eli Zaretskii <eliz@gnu.org>
+ Improve AIX-related merge from emacs-24.
+ * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment.
+ * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're
+ not on AIX; since we're on the trunk we can use enums more broadly.
- * xdisp.c (decode_mode_spec): Call file-remote-p on the current
- buffer's default-directory only if it is a string. (Bug#17986)
+ * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
-2014-07-12 Eli Zaretskii <eliz@gnu.org>
+2014-06-02 Jan Djärv <jan.h.d@swipnet.se>
- * xdisp.c (display_line): Don't call FETCH_BYTE with argument less
- than 1. (Bug#17962)
+ * xterm.c (xg_scroll_callback): Remove position, for jump set portion
+ to min(value, whole).
- * w32fns.c (Fx_file_dialog): Mention in the doc string the
- behavior on Windows 7 and later when the function is repeatedly
- invoked with the same value of DIR. (Bug#17950)
+2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
- * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
- string to match the one in w32fns.c.
+ Bring back the changes to GDB-visible symbols, but only on AIX.
+ And only if it's not pre-4.2 GCC.
+ * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
+ (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
+ New macros.
-2014-07-08 Eli Zaretskii <eliz@gnu.org>
+2014-06-02 Eli Zaretskii <eliz@gnu.org>
- * xdisp.c (move_it_to): Adjust calculation of line_start_x to what
- x_produce_glyphs does when it generates a stretch glyph that
- represents a TAB. (Bug#17969)
+ * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
+ with PT, not GPT. (Bug#16433)
-2014-07-05 Eli Zaretskii <eliz@gnu.org>
+ Revert last changes to GDB-visible symbols.
+ * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
+ (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
+ Delete macros.
- * xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
- and there is a display property at that position, don't call
- move_it_to to move to a position before window start. (Bug#17942)
- Fix condition for finding CHARPOS by the first call to move_it_to.
- (Bug#17944)
+2014-06-02 Glenn Morris <rgm@gnu.org>
-2014-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
+ * cmds.c (Fself_insert_command): Allow zero repeat count. (Bug#17649)
- * syntax.c (find_defun_start): Try the cache even
- if !open_paren_in_column_0_is_defun_start.
- (back_comment): If find_defun_start was pessimistic, use the
- scan_sexps_forward result to improve the cache (bug#16526).
+2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
-2014-07-04 Daniel Colascione <dancol@dancol.org>
+ Fix port to 32-bit AIX with xlc (Bug#17598).
+ * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
+ * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
+ * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
+ to work around a compiler bug in IBM xlc 12.1.
- Backport from trunk.
- * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
- only if xic_style calls for it. This change allows Emacs to work
- with ibus. Also, don't leak resources if create_frame_xic fails,
- and stop caching xic_style across different displays (Bug#17928).
- (supported_xim_styles): Make const.
- (best_xim_style): Remove first parameter: it's always just
- supported_xim_styles. Change to look at supported_xim_styles directly.
+2014-06-02 Eli Zaretskii <eliz@gnu.org>
-2014-07-04 Eli Zaretskii <eliz@gnu.org>
+ * xterm.c (x_update_window_end): Don't invalidate the entire
+ mouse-highlight info, just signal frame_up_to_date_hook that mouse
+ highlight needs to be redisplayed. (Bug#17588)
- * xdisp.c (redisplay_window): If redisplay of a window ends up
- with point in a partially visible line at end of the window, make
- sure the amended position of point actually has smaller Y
- coordinate; if not, give up and scroll the display. (Bug#17905)
+2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
- * window.c (window_scroll_pixel_based): When point ends up at the
- last fully visible line, don't let move_it_to stop at the left
- edge of the line and dupe us into thinking point is inside the
- scroll margin.
+ Port the GDB-visible symbols to AIX.
+ Without them, GDB doesn't work to debug Emacs, since the AIX linker
+ optimizes away the relevant external symbols. Use enums instead;
+ this suffices for the AIX port, which is 32-bit-only anyway.
+ * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
+ (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
+ New macros.
- * w32.c (network_interface_info): Make sure the argument is a
- Lisp string.
+ Include sources used to create macuvs.h.
+ * Makefile.in ($(srcdir)/macuvs.h): New rule.
+ * macuvs.h: Use automatically-generated header.
-2014-07-01 Eli Zaretskii <eliz@gnu.org>
+2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
- * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
- the window whose glyph row is being prepared and a flag whether it
- is for mode/header line. Make sure the glyph row's marginal areas
- are in sync with what the window wants.
- (Bug#17892)
+ Port signal-handling to DragonFly BSD (Bug#17646).
+ * callproc.c, sysdep.c (block_child_signal, unblock_child_signal):
+ Move implementations from callproc.c to sysdep.c.
+ * process.h, syssignal.h (block_child_signal, unblock_child_signal):
+ Move declarations from process.h to syssignal.h.
- * xdisp.c (display_line, display_mode_line):
- Call prepare_desired_row with additional arguments, as appropriate.
+2014-06-01 Juanma Barranquero <lekktu@gmail.com>
- * dispextern.h (prepare_desired_row): Adjust prototype.
+ * callint.c (Ffuncall_interactively): Add usage.
-2014-07-01 Dmitry Antipov <dmantipov@yandex.ru>
+2014-06-01 Jan Djärv <jan.h.d@swipnet.se>
- * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
- * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
- caused by xw_popup_dialog in daemon mode (Bug#17891).
+ * nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
-2014-06-30 Eli Zaretskii <eliz@gnu.org>
+2014-05-30 Eli Zaretskii <eliz@gnu.org>
- * frame.c (do_switch_frame): When switching to another TTY frame,
- make sure FrameCols and FrameRows are in sync with the new frame's
- data. (Bug#17875)
+ * w32heap.c (malloc_before_dump, malloc_after_dump)
+ (malloc_before_dump, realloc_after_dump, realloc_before_dump)
+ (mmap_alloc, mmap_realloc): Check for errors more thoroughly and
+ set errno where appropriate to emulate CRT functions.
-2014-06-28 Andreas Schwab <schwab@linux-m68k.org>
+2014-05-30 Dmitry Antipov <dmantipov@yandex.ru>
- * coding.c (encode_coding_utf_8): Correctly count produced_chars
- also in unibyte case. (Bug#17865)
+ Debugging facility to check whether 'const char *' points to
+ relocatable data of non-pure Lisp string.
+ * alloc.c (maybe_lisp_pointer): New function, refactored out of ...
+ (mark_maybe_pointer): ... adjusted user.
+ (relocatable_string_data_p): New function.
+ * lisp.h (relocatable_string_data_p): Add prototype.
+ * xdisp.c (message_with_string): If ENABLE_CHECKING, make sure
+ the pointer to relocatable Lisp data is not used.
-2014-06-25 Glenn Morris <rgm@gnu.org>
+2014-05-30 Paul Eggert <eggert@cs.ucla.edu>
- * puresize.h (BASE_PURESIZE): Increase a bit. (Bug#17846)
+ Don't let SIGINT handling block SIGCHLD indefinitely (Bug#17561).
+ * atimer.c (block_atimers):
+ * callproc.c (block_child_signal): Block SIGINT too;
+ otherwise, its handler might now unblock signals that it shouldn't.
+ * keyboard.c (read_char): Clear signal mask, since we may
+ be in a SIGINT handler, and many signals may be masked.
+ * keyboard.c (handle_interrupt):
+ * sysdep.c (handle_arith_signal):
+ Clear signal mask instead of just unblocking the signal that
+ was received, since several signals may be blocked at this point.
-2014-06-21 Eli Zaretskii <eliz@gnu.org>
+2014-05-29 Eli Zaretskii <eliz@gnu.org>
- * indent.c (Fvertical_motion): Doc fix.
- Move to the goal column, if any, with a single call to
- move_it_in_display_line, not in two calls. Doing this with two
- calls causes move_it_in_display_line apply the line-prefix
- handling twice instead of just once. (Bug#17823)
+ * Makefile.in (TEMACS_POST_LINK): Remove target.
+ (emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
+ (temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
-2014-06-21 Paul Eggert <eggert@cs.ucla.edu>
+2014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
- Port to OS X ACLs (Bug#17810).
- * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
- ACL_TYPE_ACCESS) doesn't work.
+ * xmenu.c (xdialog_show): Remove prototype, rename to
+ x_dialog_show, remove 2nd arg because it's always zero
+ and simplify accordingly.
+ (xw_popup_dialog): Adjust user.
+ * w32menu.c (w32_dialog_show): Adjust prototype, remove
+ 2nd arg because it's always zero and simplify accordingly.
+ (w32_popup_dialog): Adjust user.
-2014-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
+2014-05-29 Eli Zaretskii <eliz@gnu.org>
- * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
- before checking key-translation-map (bug#17659).
+ * w32heap.c (report_temacs_memory_usage): New function.
-2014-06-19 Dmitry Antipov <dmantipov@yandex.ru>
+ * unexw32.c (unexec) [ENABLE_CHECKING]:
+ Call report_temacs_memory_usage.
- * font.c (font_make_object): Avoid dangling pointer which may
- crash GC (Bug#17771).
+ * w32heap.h (report_temacs_memory_usage): Add prototype.
-2014-06-18 Eli Zaretskii <eliz@gnu.org>
+2014-05-29 Paul Eggert <eggert@cs.ucla.edu>
- * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
- prototype of DGifCloseFile as appropriate for older and newer
- versions of giflib.
- (gif_close): New function, encapsulates the differences in the
- calling sequence of DGifCloseFile before v5.1.0 and after it.
- (gif_load): Call gif_close instead of DGifCloseFile. Divulge the
- error string where appropriate. (Bug#17790)
+ Don't substitute sigprocmask for pthread_sigmask (Bug#17561).
+ * Makefile.in (LIB_PTHREAD_SIGMASK): Remove; all uses removed.
-2014-06-16 Eli Zaretskii <eliz@gnu.org>
+2014-05-29 Eli Zaretskii <eliz@gnu.org>
- * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
- macro execution, make sure point didn't move since last complete
- redisplay, as the condition for using the glyph matrix
- information. (Bug#17777)
+ * buffer.c (init_buffer): Accept an argument 'initialized'.
+ [USE_MMAP_FOR_BUFFERS]: If 'initialized' is non-zero, reset
+ mmap_regions and mmap_fd, to avoid referencing stale data from the
+ dump phase. Add an assertion for buffer text of buffers created
+ in temacs before this function is called. (Bug#17622)
+ (mmap_regions_1, mmap_fd_1): Remove unused variables.
-2014-06-14 Eli Zaretskii <eliz@gnu.org>
+ * lisp.h (init_buffer): Update prototype.
- * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
- information if we are in the middle of executing a keyboard macro,
- since redisplay doesn't update the screen until the macro is
- finished. (Bug#17777)
+ * emacs.c (main): Pass 'initialized' as the argument to init_buffer.
-2014-06-13 Eli Zaretskii <eliz@gnu.org>
+2014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
- * alloc.c (cleanup_vector): Don't dereference a font driver
- pointer if it is NULL. (Bug#17771)
+ * alloc.c (Fgarbage_collect): Fix compilation with
+ GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
-2014-06-11 Eli Zaretskii <eliz@gnu.org>
+2014-05-29 Paul Eggert <eggert@cs.ucla.edu>
- * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
- matching overlay strings with 'cursor' property against buffer
- positions traversed in the glyph row. (Bug#17744)
+ * frame.c, frame.h (frame_char_to_pixel_position)
+ (frame_set_mouse_position): Now static, and made private in
+ frame.c rather than public in frame.h.
-2014-06-08 Glenn Morris <rgm@gnu.org>
+2014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
- * fileio.c (write-region-inhibit-fsync): Doc tweak.
+ Refactor mouse positioning stuff to avoid code duplication.
+ * frame.h (frame_char_to_pixel_position): New function.
+ (x_set_mouse_position): Rename to...
+ (frame_set_mouse_position): ...new function.
+ (frame_set_mouse_pixel_position): Add prototype.
+ * nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
+ Rename to frame_set_mouse_pixel_position.
+ * frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
+ Adjust users.
+ * xterm.h, w32term.h ( x_set_mouse_position)
+ (x_set_mouse_pixel_position): Remove prototypes.
- * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
+2014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
-2014-06-04 Eli Zaretskii <eliz@gnu.org>
+ On X, always make pointer visible when deleting frame (Bug#17609).
+ * frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
+ Pass frame as arg.
+ * frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
+ Adjust prototypes.
+ * cmds.c (Fself_insert_command): Use SELECTED_FRAME.
+ * keyboard.c (gobble_input): If there is no terminal input error,
+ make sure the pointer is visible for all frames on this terminal.
+ * xterm.c (x_free_frame_resources): Enable pointer visibility if
+ it was previously disabled.
- * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
- contains garbage on WINDOWSNT (which could potentially infloop at
- exit).
+2014-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
- Minimize cursor motion during TTY menu updates.
- * term.c (tty_menu_display): Don't position cursor here. Instead,
- pass the cursor coordinates to update_frame_with_menu.
- (tty_menu_activate): Send the hide cursor command only once in an
- iteration through the outer 'while' loop.
+ * data.c (Fzerop): Move to Elisp.
+ (syms_of_data): Don't defsubr it.
+ * keyboard.c (echo_keystrokes_p): New function.
+ (read_char, record_menu_key, read_key_sequence): Use it.
- * dispnew.c (update_frame_1): Accept an additional argument
- SET_CURSOR_P, and position the cursor at the end of the frame
- update only if that argument is non-zero. All callers changed to
- provide the additional argument as non-zero, except for
- update_frame_with_menu.
- (update_frame_with_menu): Accept 2 additional arguments ROW and
- COL; if they are non-negative, instruct update_frame_1 not to
- position the cursor, and instead position it according to ROW and
- COL.
+ * callint.c (Qfuncall_interactively): New var.
+ (Qcall_interactively): Remove.
+ (Ffuncall_interactively): New function.
+ (Fcall_interactively): Use it.
+ (syms_of_callint): Defsubr it.
- * dispextern.h (update_frame_with_menu): Update prototype.
+2014-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
-2014-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
+ * bytecode.c (FETCH) [BYTE_CODE_SAFE]: Check the bytecode wasn't
+ relocated from under us.
- * callproc.c (call_process): Don't check read-only if we don't insert
- anything (bug#17666).
+2014-05-27 Fabrice Popineau <fabrice.popineau@gmail.com>
-2014-06-02 Eli Zaretskii <eliz@gnu.org>
+ Use mmap(2) emulation for allocating buffer text on MS-Windows.
+ * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
+ configure, not from HEAPSIZE.
+ (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
- * dispnew.c (update_frame_with_menu): Set display_completed.
+ * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
+ for MinGW, since it no longer uses gmalloc.
-2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
+ * buffer.c: Do not define mmap allocations functions for Windows.
+ Remove mmap_find which is unused. Remove mmap_set_vars which does
+ nothing useful.
+ [WINDOWSNT]: Include w32heap.h.
+ (init_buffer): Always allocate new memory for buffers.
- * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
+ * emacs.c: Remove mmap_set_vars calls.
-2014-06-01 Jan Djärv <jan.h.d@swipnet.se>
+ * image.c (free_image): Undef free for Windows because it is
+ redirected to our private version.
- * xterm.c (xg_scroll_callback): Remove position, for jump set portion
- to min(value, whole).
+ * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
+ (copy_executable_and_dump_data): Remove dumping the heap section.
+ (unexec): Restore using_dynamic_heap after dumping.
-2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
+ * w32heap.c (dumped_data_commit, malloc_after_dump)
+ (malloc_before_dump, realloc_after_dump, realloc_before_dump)
+ (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
+ (mmap_free): New functions.
- Bring back the changes to GDB-visible symbols, but only on AIX.
- And only if it's not pre-4.2 GCC.
- * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
- (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
- (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
- New macros.
+ * w32heap.h: Declare dumped_data and mmap_* function prototypes.
-2014-05-31 Eli Zaretskii <eliz@gnu.org>
+2014-05-27 Paul Eggert <eggert@cs.ucla.edu>
- * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
- with PT, not GPT. (Bug#16433)
+ * image.c (imagemagick_load_image): Use MagickRealType for local
+ 'color_scale', instead of double, to avoid a GCC warning about
+ double promotion.
- Revert last changes to GDB-visible symbols.
- * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
- (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
- (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
- Delete macros.
+ * xfns.c (Fx_window_property): Remove unused local.
-2014-05-31 Glenn Morris <rgm@gnu.org>
+ Don't kill already-reaped process (Bug#17561).
+ * process.c (process_send_signal): Fix race condition where a
+ subprocess was reaped by a signal handler between the check for
+ liveness and calling 'kill', which meant that Emacs could in
+ theory kill an innocent bystander process. Do the fix by blocking
+ SIGCHLD in a critical section that checks liveness before killing.
- * cmds.c (Fself_insert_command): Allow zero repeat count. (Bug#17649)
+2014-05-26 Eli Zaretskii <eliz@gnu.org>
-2014-05-30 Paul Eggert <eggert@cs.ucla.edu>
+ * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
- Fix port to 32-bit AIX with xlc (Bug#17598).
- * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
- * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
- * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
- to work around a compiler bug in IBM xlc 12.1.
+2014-05-26 Ken Brown <kbrown@cornell.edu>
-2014-05-29 Eli Zaretskii <eliz@gnu.org>
+ * w32term.c (x_delete_display): Don't free dpyinfo->w32_id_name,
+ even if !CYGWIN (see bug#17510).
- * xterm.c (x_update_window_end): Don't invalidate the entire
- mouse-highlight info, just signal frame_up_to_date_hook that mouse
- highlight needs to be redisplayed. (Bug#17588)
+2014-05-26 Jan Djärv <jan.h.d@swipnet.se>
-2014-05-29 Paul Eggert <eggert@cs.ucla.edu>
+ * nsfns.m (Fns_do_applescript): Surround NSApp run
+ with calls to ns_init_events, ns_finish_events (Bug#17424).
- Port the GDB-visible symbols to AIX.
- Without them, GDB doesn't work to debug Emacs, since the AIX linker
- optimizes away the relevant external symbols. Use enums instead;
- this suffices for the AIX port, which is 32-bit-only anyway.
- * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
- (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
- (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
- New macros.
+ * nsterm.h (ns_init_events, ns_finish_events): Declare.
-2014-05-26 Paul Eggert <eggert@cs.ucla.edu>
+ * nsterm.m (ns_init_events, ns_finish_events): New functions.
+ (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
- Include sources used to create macuvs.h.
- * Makefile.in ($(srcdir)/macuvs.h): New rule.
- * macuvs.h: Use automatically-generated header.
+ * nsfns.m (ns_do_applescript): Surround executeAndReturnError
+ with calls to ns_init_events, ns_finish_events (Bug#17424).
-2014-05-25 Eli Zaretskii <eliz@gnu.org>
+2014-05-26 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (move_it_in_display_line_to): Don't record wrap position
if we are iterating over an object that generates glyphs for