From: Glenn Morris Date: Mon, 28 Jul 2014 09:39:09 +0000 (-0400) Subject: Merge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.org X-Git-Tag: emacs-25.0.90~2636^3~16 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=da41ffdd089b529c3d5216412d95840e065c3fe3;p=emacs.git Merge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.org --- da41ffdd089b529c3d5216412d95840e065c3fe3 diff --cc doc/misc/ChangeLog index d78543183df,0ad35d3803a..261f81f8b2f --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@@ -1,9 -1,9 +1,14 @@@ -2014-07-25 Stephen Berman ++2014-07-28 Stephen Berman + + * todo-mode.texi (Marked Items): Correct omission of item deletion + from commands applying to both todo and done items. + -2014-07-04 Stephen Berman +2014-07-18 Albert Krewinkel + + * gnus.texi (Posting Styles): Document the possibility to perform + string replacements when matching against headers. + +2014-07-09 Stephen Berman * todo-mode.texi (Levels of Organization): Comment out statement that Emacs recognizes todo files by their extension, since this diff --cc lisp/ChangeLog index 23e66fe3158,f68ee42680d..1d00a180e9c --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,181 -1,56 +1,227 @@@ -2014-07-28 Stephen Berman - - * doc-view.el (doc-view-open-text): Don't require that the - document is saved in a file (e.g., email attachment). - -2014-07-27 Eli Zaretskii ++2014-07-28 Eli Zaretskii + + * window.el (window--pixel-to-total): Use FRAME's root window, not + that of the selected frame. (Bug#18112, Bug#16674) + -2014-07-27 Andreas Schwab ++2014-07-28 Andreas Schwab + + * textmodes/tex-mode.el (tex-font-lock-verb): Doc fix. + (Bug#18117) + -2014-07-27 Fabián Ezequiel Gallina ++2014-07-28 Fabián Ezequiel Gallina + + * progmodes/python.el (inferior-python-mode): Doc fix. + -2014-07-25 Stephen Berman ++2014-07-28 Stephen Berman + + * calendar/todo-mode.el (todo-edit-item--next-key): If next key is + not a character, ignore it instead of raising an error. + -2014-07-25 Stephen Berman - + * calendar/todo-mode.el: Fix handling of marked items and make + minor code improvements. + (todo-edit-item): If there are marked items, ensure user can only + invoke editing commands that work with marked items. + (todo-edit-item--text): When there are marked items, make it a + noop if invoked with point not on an item; otherwise, ensure it + applies only to item at point. + (todo-item-undone): If there are marked not-done items, return + point to its original position before signaling user error. + (todo--user-error-if-marked-done-item): New function. + (todo-edit-item--header, todo-edit-item--diary-inclusion) + (todo-item-done): Use it. + -2014-07-25 Glenn Morris ++2014-07-28 Glenn Morris + + * files.el (toggle-read-only): Re-add basic doc-string. + * vc/vc-hooks.el (vc-toggle-read-only): Tweak obsolescence mesage. + + * progmodes/prolog.el (prolog-mode-keybindings-edit): + Replace missing `switch-to-prolog' with `run-prolog'. + (switch-to-prolog): Define as (obsolete) alias, as in 23.4. + -2014-07-22 Stephen Berman ++2014-07-28 Stephen Berman + + * calendar/todo-mode.el (todo-set-top-priorities): Fix overwriting + of file-wide setting when changing category-wide setting. + +2014-07-28 Stephen Berman + + * doc-view.el (doc-view-open-text): Don't require that the + document is saved in a file (e.g., email attachment). + +2014-07-28 Fabián Ezequiel Gallina + + Parse completion input in a iPython friendly way. (Bug#18084) + * progmodes/python.el + (python-shell-completion-at-point): Rename from + python-shell-completion-complete-at-point. + (inferior-python-mode): Use it. + (python-completion-at-point): Rename from + python-completion-complete-at-point. Parse input up to first + backward occurrence of whitespace, open-paren, close-paren or + string delimiter. + (python-mode): Use it. + +2014-07-28 Fabián Ezequiel Gallina + + Prevent Python process shell buffer to pop twice. + * progmodes/python.el (python-shell-switch-to-shell): Do not call + pop-to-buffer. + +2014-07-28 Fabián Ezequiel Gallina + + * progmodes/python.el + (python-shell-with-shell-buffer): New macro. + (python-shell-font-lock-get-or-create-buffer) + (python-shell-font-lock-kill-buffer) + (python-shell-font-lock-with-font-lock-buffer) + (python-shell-font-lock-cleanup-buffer) + (python-shell-font-lock-toggle): Use it. + (python-shell-font-lock-turn-on) + (python-shell-font-lock-turn-off): Use it. Make command. + +2014-07-28 Fabián Ezequiel Gallina + + Grab all Python process output before inferior-python-mode hooks. + * progmodes/python.el (inferior-python-mode): Call + accept-process-output and sit-for to ensure all output for process + has been received before running hooks. + (python-shell-internal-get-or-create-process): Cleanup + accept-process-output and sit-for calls. + +2014-07-28 Fabián Ezequiel Gallina + + More robust shell startup and code setup. + * progmodes/python.el (python-shell-make-comint): Remove + accept-process-output call. + (python-shell-get-buffer): Return current buffer if major-mode is + inferior-python-mode. + (python-shell-get-or-create-process): Use it. + (python-shell-send-setup-code): Send all setup code in one string, + output success message and accept-process-output. + +2014-07-27 Eli Zaretskii + + * scroll-bar.el (scroll-bar-toolkit-horizontal-scroll): Add + rudimentary support for bidirectional text. + +2014-07-27 Martin Rudalics + + * frame.el (frame-notice-user-settings): Rewrite using + frame-initial-frame-tool-bar-height. + * menu-bar.el (menu-bar-horizontal-scroll-bar) + (menu-bar-no-horizontal-scroll-bar): New functions. + (menu-bar-showhide-scroll-bar-menu): Add bindings for horizontal + scroll bars. + * scroll-bar.el (scroll-bar-lines) + (set-horizontal-scroll-bar-mode) + (get-horizontal-scroll-bar-mode, horizontal-scroll-bar-mode) + (scroll-bar-horizontal-drag-1, scroll-bar-horizontal-drag) + (scroll-bar-toolkit-horizontal-scroll): New functions. + (horizontal-scroll-bar-mode) + (previous-horizontal-scroll-bar-mode) + (horizontal-scroll-bar-mode-explicit): New variables. + (horizontal-scroll-bar-mode): New option. + (toggle-horizontal-scroll-bar): Do something. + (top-level): Bind horizontal-scroll-bar mouse-1. + * startup.el (tool-bar-originally-present): Remove variable. + (command-line): Don't set tool-bar-originally-present. + * window.el (window-min-height): Update doc-string. + (window--dump-frame): Dump horizontal scroll bar values. + (window--min-size-1): Handle minibuffer window separately. + Count in margins and horizontal scroll bar. Return safe value + iff IGNORE equals 'safe. + (frame-windows-min-size): New function (used by frame resizing + routines). + (fit-frame-to-buffer, fit-window-to-buffer): Count in horizontal + scroll bars. + (window--sanitize-window-sizes): New function. + (window-split-min-size): Remove. + (split-window): Count divider-width. Don't use + `window-split-min-size' any more. Reword error messages. + Sanitize windows sizes after splitting. + +2014-07-27 Thien-Thi Nguyen + + Use `defvar-local' more. + * progmodes/hideshow.el + (hs-c-start-regexp, hs-block-start-regexp) + (hs-block-start-mdata-select, hs-block-end-regexp) + (hs-forward-sexp-func, hs-adjust-block-beginning): ...here; + remove corresponding `make-variable-buffer-local' top-level calls. + +2014-07-27 Fabián Ezequiel Gallina + + Cleanup error signals. (Bug#18067) + * progmodes/python.el + (python-indent-shift-left): Use user-error instead. + (python-shell-prompt-detect): Use lwarn with python group. + (python-completion-complete-at-point) + (python-eldoc--get-doc-at-point): Don't signal error. + +2014-07-27 Fabián Ezequiel Gallina + + Support for packages in Python shell. (Bug#13570) + * progmodes/python.el (python-shell--package-depth): New var. + (python-shell-package-enable): New command. + (python-util-list-directories, python-util-list-files) + (python-util-list-packages): New functions. + +2014-07-27 Fabián Ezequiel Gallina + + Faster comint output. (Bug#16875) + * progmodes/python.el: + (python-comint-output-filter-function): Make obsolete. + (python-comint-postoutput-scroll-to-bottom): New function. + (inferior-python-mode): Set comint-output-filter-functions to a + minimum. + +2014-07-27 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-font-lock-post-command-hook): + Safeguard current point and undo history. + +2014-07-26 Fabián Ezequiel Gallina + + Robust shell syntax highlighting. (Bug#18084, Bug#16875) + * progmodes/python.el: + (python-shell-prompt-input-regexps): Add iPython block prompt. + (python-shell-output-syntax-table): Delete var. + (python-shell-font-lock-with-font-lock-buffer): New macro. + (python-shell-font-lock-get-or-create-buffer) + (python-shell-font-lock-kill-buffer) + (python-shell-font-lock-cleanup-buffer) + (python-shell-font-lock-post-command-hook) + (python-shell-font-lock-turn-off): New functions. + (python-shell-font-lock-turn-on): New function. + (inferior-python-mode): Use it. + (python-shell-font-lock-toggle): New command. + (python-shell-font-lock-enable): Rename from + python-shell-enable-font-lock. + (run-python-internal): Use it. + (python-shell-font-lock-comint-output-filter-function): New function. + (python-shell-comint-end-of-output-p): New function. + (python-shell-output-filter): Use it. + (python-util-comint-last-prompt): New function. + (python-util-text-properties-replace-name): New function. + +2014-07-25 Glenn Morris + + * vc/ediff-init.el (ediff-toggle-read-only-function): + * vc/ediff-util.el (ediff-toggle-read-only): + Replace obsolete toggle-read-only with read-only-mode. + +2014-07-24 Michael Albinus + + * net/tramp-cache.el (tramp-flush-file-function): Wrap the code + with `save-match-data'. (Bug#18095) + +2014-07-21 Vincent Belaïche + + * ses.el (ses-truncate-cell): Use cl-progv instead of eval in + order to ensure that row and col are lexically bound inside the + evaluated sexp. + 2014-07-21 Glenn Morris * progmodes/hideif.el (hide-ifdef-mode-submap): diff --cc lisp/progmodes/python.el index 7d882837abc,60121ac6b41..b08da8da029 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@@ -2329,10 -2121,9 +2329,9 @@@ interpreter is run. Variable `python-shell-prompt-regexp', `python-shell-prompt-output-regexp', `python-shell-prompt-block-regexp', -`python-shell-enable-font-lock', +`python-shell-font-lock-enable', `python-shell-completion-setup-code', `python-shell-completion-string-code', - `python-shell-completion-module-string-code', `python-eldoc-setup-code', `python-eldoc-string-code', `python-ffap-setup-code' and `python-ffap-string-code' can customize this mode for different Python interpreters. diff --cc src/ChangeLog index f74a46c4ad2,619efb479e6..57d49594d7a --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,512 -1,10 +1,516 @@@ 2014-07-28 Eli Zaretskii + * .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-07-20 Jan Djärv + * .gdbinit (xsubchartable): The members 'depth' and 'min_char' are + now C integers. + +2014-07-28 Dmitry Antipov + + 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. + +2014-07-28 Paul Eggert + + * frame.c (x_set_frame_parameters): Don't use uninitialized locals. + +2014-07-27 Jan Djärv + + * nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange): + Reinstate code removed by the prevoius commit to this file. + +2014-07-27 Martin Rudalics + + * 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 + + 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 + + * 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 + + * dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer): + Now static. + +2014-07-26 Dmitry Antipov + + * atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME + because atimer expiration is absolute rather than relative. + +2014-07-25 Eli Zaretskii + + * w32term.h (current_popup_menu, menubar_in_use): Move + declarations from w32term.c. + +2014-07-25 Martin Rudalics + + * w32fns.c (menubar_in_use): No more static. + * w32term.c (current_popup_menu, menubar_in_use): Declare. + +2014-07-25 Dmitry Antipov + + 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 + + Fix error reported by Angelo Graziosi in + + 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 + + * frame.c (Fset_frame_height): Take frame top margin into account. + Incorrect behavior was reported by Martin Rudalics in + + +2014-07-22 Dmitry Antipov + + * 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 + + * frame.c (Fframe_parameters): Always report frame height without + menu and tool bar lines. + +2014-07-21 Jan Djärv * nsterm.m (applicationDidFinishLaunching:): Call antialiasThresholdDidChange, register for antialias changes (Bug#17534).