+2015-02-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
+
+2015-02-25 Jan Djärv <jan.h.d@swipnet.se>
+
+ * 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.
+
+ * xmenu.c (create_and_show_popup_menu): Use XTranslateCoordinates
+ instead of OUTER_TO_INNER_DIFF macros.
+
+ * 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.
+
+ * w32fns.c (x_real_positions): Remove setting of x_pixels_diff,
+ y_pixels_diff.
+
+ * frame.h (struct frame): Remove x_pixels_diff, y_pixels_diff.
+
+2015-02-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
+2015-02-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (Fx_frame_geometry): New function.
+ (syms_of_nsfns): Defsubr Sx_frame_geometry.
+
+2015-02-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Spelling fixes
+ * lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
+ Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS. All uses changed.
+
+2015-02-21 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.c (queue_notifications):
+ * w32inevt.c (handle_file_notifications):
+ * w32font.c (w32_enumfont_pattern_entity): Prefer 'Qfoo' to
+ 'intern ("foo")'.
+
+2015-02-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
+2015-02-20 Jan Djärv <jan.h.d@swipnet.se>
+
+ * 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.
+
+2015-02-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
+2015-02-19 Eli Zaretskii <eliz@gnu.org>
+
+ * 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)
+
+2015-02-19 Fujii Hironori <fujii.hironori@gmail.com> (tiny change)
+
+ * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
+ message to DefWindowProc, after positioning the IME window, to
+ trigger its display. (Bug#11732)
+
+2015-02-18 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.c (Fkill_emacs): Exit with specified exit code even if
+ stdin is at EOF. (Bug#19897)
+
+2015-02-18 Oscar Fuentes <ofv@wanadoo.es>
+
+ * 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)
+
+2015-02-16 Kelly Dean <kelly@prtime.org>
+
+ * src/keyboard.c (timer_check_2): Fix incorrect comment.
+
+2015-02-14 Martin Rudalics <rudalics@gmx.at>
+
+ * xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
+ Suggested by Alan Mackenzie <acm@muc.de>.
+
+2015-02-14 Eli Zaretskii <eliz@gnu.org>
+
+ * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
+ x_relative_mouse_position only for X frames. (Bug#19862)
+
+2015-02-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
+2015-02-11 Martin Rudalics <rudalics@gmx.at>
+
+ * 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.
+
+2015-02-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
2015-02-01 Martin Rudalics <rudalics@gmx.at>
* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
(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.
+ (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)
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.
+ * 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
* 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.
+ * 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