]> git.eshelyaron.com Git - emacs.git/log
emacs.git
10 years agoFix some issues with setting the frame height.
Martin Rudalics [Mon, 28 Jul 2014 17:03:23 +0000 (19:03 +0200)]
Fix some issues with setting the frame height.

* 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.

10 years agoFix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
Dmitry Antipov [Mon, 28 Jul 2014 14:50:55 +0000 (18:50 +0400)]
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.

10 years agoMerge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.org
Glenn Morris [Mon, 28 Jul 2014 09:39:09 +0000 (05:39 -0400)]
Merge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.org

10 years agoMerge commit 2014-07-28T09:07:56Z!tsdh@gnu.org from trunk.
Tassilo Horn [Mon, 28 Jul 2014 09:32:25 +0000 (11:32 +0200)]
Merge commit 2014-07-28T09:07:56Z!tsdh@gnu.org from trunk.

10 years agoOpen doc text also if it's not saved to a file.
Stephen Berman [Mon, 28 Jul 2014 09:07:56 +0000 (11:07 +0200)]
Open doc text also if it's not saved to a file.

* doc-view.el (doc-view-open-text): Don't require that the
document is saved in a file (e.g., email attachment).

10 years agoFix --without-x build and pacify --enable-gcc-warnings.
Dmitry Antipov [Mon, 28 Jul 2014 08:07:55 +0000 (12:07 +0400)]
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.

10 years agosrc/ChangeLog: Fix a typo.
Eli Zaretskii [Mon, 28 Jul 2014 07:18:46 +0000 (10:18 +0300)]
src/ChangeLog: Fix a typo.

10 years agoFix the GDB xsubchartable command.
Eli Zaretskii [Mon, 28 Jul 2014 07:17:22 +0000 (10:17 +0300)]
Fix the GDB xsubchartable command.

 src/.gdbinit (xsubchartable): The members 'depth' and 'min_char' are
 now C integers.

10 years agoFix GDB xwindow command.
Eli Zaretskii [Mon, 28 Jul 2014 07:10:17 +0000 (10:10 +0300)]
Fix GDB xwindow command.

 src/.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).

10 years agoOn GNU/Linux, use timerfd for asynchronous timers.
Dmitry Antipov [Mon, 28 Jul 2014 06:28:15 +0000 (10:28 +0400)]
On GNU/Linux, use timerfd for asynchronous timers.
* configure.ac (toplevel): Check whether GNU/Linux-specific
timerfd functions and macros are available.
* m4/clock_time.m4 (gl_CLOCK_TIME): Check for clock_getres as well.
* src/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.
* src/atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
* src/lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
* src/process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
* test/automated/timer-tests.el (timer-tests-debug-timer-check): New test.

10 years agoParse completion input in a iPython friendly way.
Fabián Ezequiel Gallina [Mon, 28 Jul 2014 04:32:28 +0000 (01:32 -0300)]
Parse completion input in a iPython friendly way.

* lisp/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.

Fixes: debbugs:18084
10 years agoPrevent Python process shell buffer to pop twice.
Fabián Ezequiel Gallina [Mon, 28 Jul 2014 03:58:06 +0000 (00:58 -0300)]
Prevent Python process shell buffer to pop twice.
* lisp/progmodes/python.el (python-shell-switch-to-shell): Do not call
pop-to-buffer.

10 years ago* lisp/progmodes/python.el
Fabián Ezequiel Gallina [Mon, 28 Jul 2014 03:35:37 +0000 (00:35 -0300)]
* lisp/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.

10 years agoGrab all Python process output before inferior-python-mode hooks.
Fabián Ezequiel Gallina [Mon, 28 Jul 2014 02:47:29 +0000 (23:47 -0300)]
Grab all Python process output before inferior-python-mode hooks.

* lisp/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.

10 years ago* frame.c (x_set_frame_parameters): Don't use uninitialized locals.
Paul Eggert [Mon, 28 Jul 2014 02:13:11 +0000 (19:13 -0700)]
* frame.c (x_set_frame_parameters): Don't use uninitialized locals.

10 years agoMore robust shell startup and code setup.
Fabián Ezequiel Gallina [Mon, 28 Jul 2014 01:41:29 +0000 (22:41 -0300)]
More robust shell startup and code setup.

* lisp/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.

10 years agoSupport horizontal scrolling of bidirectional text.
Eli Zaretskii [Sun, 27 Jul 2014 18:05:37 +0000 (21:05 +0300)]
Support horizontal scrolling of bidirectional text.

 lisp/scroll-bar.el (scroll-bar-toolkit-horizontal-scroll): Add
 rudimentary support for bidirectional text.

10 years agoReinstate removed code.
Jan Djärv [Sun, 27 Jul 2014 14:45:26 +0000 (16:45 +0200)]
Reinstate removed code.

* nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
Reinstate code removed by the prevoius commit to this file.

10 years agoComplete pixelwise frame/window resizing, add horizontal scrollbar support.
Martin Rudalics [Sun, 27 Jul 2014 13:21:30 +0000 (15:21 +0200)]
Complete pixelwise frame/window resizing, add horizontal scrollbar support.

* 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.
* 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.

10 years agoFix bugs #16674 and #18112 with resizing TTY frames after switching terminals.
Eli Zaretskii [Sun, 27 Jul 2014 13:01:07 +0000 (16:01 +0300)]
Fix bugs #16674 and #18112 with resizing TTY frames after switching terminals.

 lisp/window.el (window--pixel-to-total): Use FRAME's root window, not
 that of the selected frame.

10 years agosrc/window.c (window_resize_check, window_resize_apply): Fix typos in comments.
Eli Zaretskii [Sun, 27 Jul 2014 12:04:29 +0000 (15:04 +0300)]
src/window.c (window_resize_check, window_resize_apply): Fix typos in comments.

10 years agoFixes: debbugs:18117
Andreas Schwab [Sun, 27 Jul 2014 11:38:59 +0000 (13:38 +0200)]
Fixes: debbugs:18117
* textmodes/tex-mode.el (tex-font-lock-verb): Doc fix.

10 years agoUse `defvar-local' more.
Thien-Thi Nguyen [Sun, 27 Jul 2014 09:41:59 +0000 (11:41 +0200)]
Use `defvar-local' more.

* lisp/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.

10 years agoCleanup error signals.
Fabián Ezequiel Gallina [Sun, 27 Jul 2014 07:05:13 +0000 (04:05 -0300)]
Cleanup error signals.

* lisp/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.

Fixes: debbugs:18067
10 years agoSupport for packages in Python shell.
Fabián Ezequiel Gallina [Sun, 27 Jul 2014 06:39:17 +0000 (03:39 -0300)]
Support for packages in Python shell.

* lisp/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.

Fixes: debbugs:13570
10 years agosrc/dispnew.c (allocate_matrices_for_frame_redisplay): Fix typo in a comment.
Eli Zaretskii [Sun, 27 Jul 2014 06:32:56 +0000 (09:32 +0300)]
src/dispnew.c (allocate_matrices_for_frame_redisplay): Fix typo in a comment.

10 years ago* python.el (python-shell-enable-font-lock): Fix typo in earlier change.
Glenn Morris [Sun, 27 Jul 2014 02:59:49 +0000 (22:59 -0400)]
* python.el (python-shell-enable-font-lock): Fix typo in earlier change.

10 years agoFaster comint output.
Fabián Ezequiel Gallina [Sun, 27 Jul 2014 02:02:38 +0000 (23:02 -0300)]
Faster comint output.

* lisp/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.

Fixes: debbugs:16875
10 years ago* lisp/progmodes/python.el (inferior-python-mode): Doc fix.
Fabián Ezequiel Gallina [Sun, 27 Jul 2014 01:36:48 +0000 (22:36 -0300)]
* lisp/progmodes/python.el (inferior-python-mode): Doc fix.

10 years ago* lisp/progmodes/python.el (python-shell-font-lock-post-command-hook):
Fabián Ezequiel Gallina [Sun, 27 Jul 2014 01:00:26 +0000 (22:00 -0300)]
* lisp/progmodes/python.el (python-shell-font-lock-post-command-hook):
Safeguard current point and undo history.

10 years agoRobust shell syntax highlighting. (Bug#18084, Bug#16875)
Fabián Ezequiel Gallina [Sat, 26 Jul 2014 23:43:51 +0000 (20:43 -0300)]
Robust shell syntax highlighting.  (Bug#18084, Bug#16875)

* lisp/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.

10 years agoFix bug #18113 with ambiguous wording in etc/DEBUG.
Eli Zaretskii [Sat, 26 Jul 2014 13:40:53 +0000 (16:40 +0300)]
Fix bug #18113 with ambiguous wording in etc/DEBUG.

 etc/DEBUG: Improve wording.

10 years agoRevert previous change.
Paul Eggert [Sat, 26 Jul 2014 13:17:25 +0000 (06:17 -0700)]
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.

10 years agoWork around the failures in icalendar-tests which occasionally occur
Ulf Jasper [Sat, 26 Jul 2014 12:53:36 +0000 (14:53 +0200)]
Work around the failures in icalendar-tests which occasionally occur
on hydra.nixos.org.

* automated/icalendar-tests.el (icalendar-tests--do-test-import):
Work around the failures in icalendar-tests which occasionally occur on
hydra.nixos.org.

10 years agoReorder conditions that are written backwards
Andreas Schwab [Sat, 26 Jul 2014 12:14:42 +0000 (14:14 +0200)]
Reorder conditions that are written backwards

* 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.

10 years agoReorder conditions that are written backwards
Andreas Schwab [Sat, 26 Jul 2014 11:58:24 +0000 (13:58 +0200)]
Reorder conditions that are written backwards

* 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.

10 years ago* calendar/todo-mode.el (todo-edit-item--next-key): If next key is
Stephen Berman [Fri, 25 Jul 2014 21:53:52 +0000 (23:53 +0200)]
* calendar/todo-mode.el (todo-edit-item--next-key): If next key is
not a character, ignore it instead of raising an error.

10 years ago* dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
Paul Eggert [Fri, 25 Jul 2014 21:51:29 +0000 (14:51 -0700)]
* dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):

Now static.

10 years ago* atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
Dmitry Antipov [Fri, 25 Jul 2014 17:14:01 +0000 (21:14 +0400)]
* atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
because atimer expiration is absolute rather than relative.

10 years agoFix code and doc involving marked items.
Stephen Berman [Fri, 25 Jul 2014 16:01:05 +0000 (18:01 +0200)]
Fix code and doc involving marked items.

* todo-mode.texi (Marked Items): Correct omission of item deletion
from commands applying to both todo and done items.

* 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.

10 years agoFix last commit in w32term.c.
Eli Zaretskii [Fri, 25 Jul 2014 11:58:36 +0000 (14:58 +0300)]
Fix last commit in w32term.c.

 src/w32term.h (current_popup_menu, menubar_in_use): Move
 declarations from w32term.c.

10 years agovc-hooks.el: Fix doc typo in previous
Glenn Morris [Fri, 25 Jul 2014 10:05:10 +0000 (06:05 -0400)]
vc-hooks.el: Fix doc typo in previous

10 years agoediff: Replace obsolete toggle-read-only with read-only-mode
Glenn Morris [Fri, 25 Jul 2014 09:37:07 +0000 (05:37 -0400)]
ediff: Replace obsolete toggle-read-only with read-only-mode

* lisp/vc/ediff-init.el (ediff-toggle-read-only-function):
* lisp/vc/ediff-util.el (ediff-toggle-read-only):
Replace obsolete toggle-read-only with read-only-mode.

10 years agoProvisionally fix Windows build broken by last commit.
Martin Rudalics [Fri, 25 Jul 2014 09:29:23 +0000 (11:29 +0200)]
Provisionally fix Windows build broken by last commit.

* w32fns.c (menubar_in_use): No more static.
* w32term.c (current_popup_menu, menubar_in_use): Declare.

10 years agoMore toggle-read-only doc tweaks
Glenn Morris [Fri, 25 Jul 2014 09:24:53 +0000 (05:24 -0400)]
More toggle-read-only doc tweaks

* lisp/files.el (toggle-read-only): Re-add basic doc-string.

* lisp/vc/vc-hooks.el (vc-toggle-read-only): Tweak obsolescence mesage.

10 years agoprolog.el: Fix for missing `switch-to-prolog'
Glenn Morris [Fri, 25 Jul 2014 08:24:00 +0000 (04:24 -0400)]
prolog.el: Fix for missing `switch-to-prolog'

Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00228.html

* lisp/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.

10 years agoFix ChangeLog typo.
Dmitry Antipov [Fri, 25 Jul 2014 06:07:14 +0000 (10:07 +0400)]
Fix ChangeLog typo.

10 years agoMove hourglass machinery to RIF.
Dmitry Antipov [Fri, 25 Jul 2014 06:01:39 +0000 (10:01 +0400)]
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-dependend 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.

10 years ago* net/tramp-cache.el (tramp-flush-file-function): Wrap the code
Michael Albinus [Thu, 24 Jul 2014 07:30:36 +0000 (09:30 +0200)]
* net/tramp-cache.el (tramp-flush-file-function): Wrap the code
with `save-match-data'.

Fixes: debbugs:18095
10 years agoFix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
Dmitry Antipov [Thu, 24 Jul 2014 05:49:14 +0000 (09:49 +0400)]
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.

10 years ago* frame.c (Fset_frame_height): Take frame top margin into account.
Dmitry Antipov [Wed, 23 Jul 2014 16:09:34 +0000 (20:09 +0400)]
* 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>

10 years ago* calendar/todo-mode.el (todo-set-top-priorities): Fix overwriting
Stephen Berman [Tue, 22 Jul 2014 21:32:04 +0000 (23:32 +0200)]
* calendar/todo-mode.el (todo-set-top-priorities): Fix overwriting
of file-wide setting when changing category-wide setting.

10 years ago* xterm.h (struct x_output) [USE_LUCID && USE_TOOLKIT_SCROLL_BARS]:
Dmitry Antipov [Tue, 22 Jul 2014 13:55:04 +0000 (17:55 +0400)]
* xterm.h (struct x_output) [USE_LUCID && USE_TOOLKIT_SCROLL_BARS]:
Define scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel
as such.  All related users changed.

10 years ago* xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
Dmitry Antipov [Tue, 22 Jul 2014 10:34:05 +0000 (14:34 +0400)]
* xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
menubar_height as such.  Tweak comment.
(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.

10 years agognus-utils.el (gnus-recursive-directory-files): Unify hard or symbolic links (bug...
Katsumi Yamaoka [Tue, 22 Jul 2014 06:37:31 +0000 (06:37 +0000)]
gnus-utils.el (gnus-recursive-directory-files): Unify hard or symbolic links (bug#18063)

10 years agoCorrect ses-truncate-cell bug implied by setting ses.el in lexical binding: row and...
Vincent Belaïche [Mon, 21 Jul 2014 17:53:38 +0000 (19:53 +0200)]
Correct ses-truncate-cell bug implied by setting ses.el in lexical binding: row and col had been erronously made unbound.

10 years ago* src/frame.c (Fframe_parameters): Always report frame height without
Dmitry Antipov [Mon, 21 Jul 2014 16:58:12 +0000 (20:58 +0400)]
* src/frame.c (Fframe_parameters): Always report frame height without
menu and tool bar lines.
* etc/TODO: remove frame height remark.

10 years agoSpelling fixes.
Paul Eggert [Mon, 21 Jul 2014 14:41:19 +0000 (07:41 -0700)]
Spelling fixes.

10 years agoNEWS copyedit
Glenn Morris [Mon, 21 Jul 2014 06:18:01 +0000 (02:18 -0400)]
NEWS copyedit

10 years agoMerge from emacs-24; up to 2014-06-25T10:17:41Z!rgm@gnu.org
Glenn Morris [Mon, 21 Jul 2014 06:03:08 +0000 (02:03 -0400)]
Merge from emacs-24; up to 2014-06-25T10:17:41Z!rgm@gnu.org

10 years agoNEWS tweaks
Glenn Morris [Mon, 21 Jul 2014 05:58:27 +0000 (01:58 -0400)]
NEWS tweaks

10 years agoSmall fixes re toggle-read-only, mainly doc
Glenn Morris [Mon, 21 Jul 2014 05:38:17 +0000 (01:38 -0400)]
Small fixes re toggle-read-only, mainly doc

* progmodes/hideif.el (hide-ifdef-mode-submap): Also substitute read-only-mode.

* bindings.el (mode-line-toggle-read-only):
* bs.el (bs-toggle-readonly):
* buff-menu.el (Buffer-menu-toggle-read-only):
* dired.el (dired-toggle-read-only):
* files.el (view-read-only, find-file-read-only)
(find-file-read-only-other-window)
(find-file-read-only-other-frame):
* progmodes/hideif.el (hide-ifdef-toggle-outside-read-only):
Doc fixes re toggle-read-only.

* view.el: Comment updates.

10 years ago* doc/emacs/emacs.texi (Intro): Workaround makeinfo 4 @acronym bug.
Glenn Morris [Mon, 21 Jul 2014 03:31:36 +0000 (23:31 -0400)]
* doc/emacs/emacs.texi (Intro): Workaround makeinfo 4 @acronym bug.

Fixes: debbugs:18040
10 years ago* emacs-lisp/smie.el (smie-config--guess-1): Split from smie-config--guess.
Stefan Monnier [Mon, 21 Jul 2014 01:58:43 +0000 (21:58 -0400)]
* emacs-lisp/smie.el (smie-config--guess-1): Split from smie-config--guess.
(smie-config--guess): Use it.

10 years ago* lisp/emacs-lisp/edebug.el: Use nadvice.
Stefan Monnier [Mon, 21 Jul 2014 01:56:54 +0000 (21:56 -0400)]
* lisp/emacs-lisp/edebug.el: Use nadvice.
(edebug-original-read): Remove.
(edebug--read): Rename from edebug-read and add `orig' arg.
(edebug-uninstall-read-eval-functions)
(edebug-install-read-eval-functions): Use nadvice.
(edebug-read-sexp, edebug-read-storing-offsets, edebug-read-symbol)
(edebug-read-and-maybe-wrap-form1, edebug-instrument-callee)
(edebug-read-string, edebug-read-function): Use just `read'.
(edebug-original-debug-on-entry): Remove.
(edebug--debug-on-entry): Rename from edebug-debug-on-entry and add
`orig' arg.
(debug-on-entry): Override with nadvice.

10 years agoIndentation, punctuation, and other nitpicks.
Stefan Monnier [Mon, 21 Jul 2014 01:41:59 +0000 (21:41 -0400)]
Indentation, punctuation, and other nitpicks.

10 years ago* lisp/mouse.el (tear-off-window): Rename from mouse-tear-off-window since
Stefan Monnier [Mon, 21 Jul 2014 01:38:21 +0000 (21:38 -0400)]
* lisp/mouse.el (tear-off-window): Rename from mouse-tear-off-window since
it also makes sense to bind it to a non-mouse event.

10 years ago* test/automated/advice-tests.el (advice-test-call-interactively): Make sure
Stefan Monnier [Mon, 21 Jul 2014 01:34:03 +0000 (21:34 -0400)]
* test/automated/advice-tests.el (advice-test-call-interactively): Make sure
the function's definition is fully restored at the end.

10 years ago* lisp/vc/vc-bzr.el (vc-bzr-shelve): Make it operate on fileset.
Stefan Monnier [Mon, 21 Jul 2014 01:25:59 +0000 (21:25 -0400)]
* lisp/vc/vc-bzr.el (vc-bzr-shelve): Make it operate on fileset.

10 years ago* lisp/progmodes/python.el: Add comment about pipe buffering and
Fabián Ezequiel Gallina [Sun, 20 Jul 2014 19:51:16 +0000 (16:51 -0300)]
* lisp/progmodes/python.el: Add comment about pipe buffering and
solutions for missing/delayed output in inferior Python shells.

Fixes: debbugs:17304
10 years ago* lisp/progmodes/python.el (python-mode): Don't set
Fabián Ezequiel Gallina [Sun, 20 Jul 2014 18:28:50 +0000 (15:28 -0300)]
* lisp/progmodes/python.el (python-mode): Don't set
mode-require-final-newline.

Fixes: debbugs:17990
10 years agoMake python.el work with IPython automatically.
Fabián Ezequiel Gallina [Sun, 20 Jul 2014 18:12:30 +0000 (15:12 -0300)]
Make python.el work with IPython automatically.

* lisp/progmodes/python.el:
(python-shell-completion-setup-code): New value supporting iPython.
(python-shell-completion-string-code): New value supporting iPython.
(python-shell-completion-get-completions): Use them.
(python-shell-completion-module-string-code): Make obsolete.
(python-shell-prompt-input-regexps)
(python-shell-prompt-output-regexps): Add safeguard for ipdb.
(python-shell-output-filter): Fix comment typo.

* test/automated/python-tests.el:
(python-util-clone-local-variables-1): Fix test.

Fixes: debbugs:15510
10 years ago* frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
Dmitry Antipov [Sun, 20 Jul 2014 16:14:58 +0000 (20:14 +0400)]
* 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.

10 years ago* macfont.h (macfont_update_antialias_threshold): Declare.
Jan Djärv [Sun, 20 Jul 2014 13:18:47 +0000 (15:18 +0200)]
* macfont.h (macfont_update_antialias_threshold): Declare.

* macfont.m (macfont_update_antialias_threshold): Remove static.

* nsterm.h (EmacsApp): Add antialiasThresholdDidChange.

* nsterm.m (applicationDidFinishLaunching:): Call
antialiasThresholdDidChange, register for antialias changes.
(antialiasThresholdDidChange:): New method for EmacsApp.

Fixes: debbugs:17534
10 years agoFix Python shell prompts detection for remote hosts.
Fabián Ezequiel Gallina [Sat, 19 Jul 2014 19:19:47 +0000 (16:19 -0300)]
Fix Python shell prompts detection for remote hosts.

* lisp/progmodes/python.el (python-shell-prompt-detect): Replace
call-process with process-file and make it more robust.

10 years ago* lisp/xt-mouse.el (xterm-mouse-event): Don't assume last-click is non-nil.
Stefan Monnier [Sat, 19 Jul 2014 16:56:40 +0000 (12:56 -0400)]
* lisp/xt-mouse.el (xterm-mouse-event): Don't assume last-click is non-nil.

Fixes: debbugs:18015
10 years ago2014-07-19 Kenichi Handa <handa@gnu.org>
Kenichi Handa [Sat, 19 Jul 2014 15:18:23 +0000 (00:18 +0900)]
2014-07-19  Kenichi 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).

10 years agoAutodetect Python shell prompts.
Fabián Ezequiel Gallina [Sat, 19 Jul 2014 13:13:07 +0000 (10:13 -0300)]
Autodetect Python shell prompts.

* lisp/progmodes/python.el:
(python-shell-interpreter-interactive-arg)
(python-shell-prompt-detect-enabled)
(python-shell-prompt-detect-failure-warning)
(python-shell-prompt-input-regexps)
(python-shell-prompt-output-regexps): New vars.
(python-shell-prompt-calculated-input-regexp)
(python-shell-prompt-calculated-output-regexp): New vars.
(python-shell-get-process-name)
(python-shell-internal-get-process-name)
(python-shell-output-filter)
(python-shell-completion-get-completions): Use them.
(python-shell-prompt-detect)
(python-shell-prompt-validate-regexps): New functions.
(python-shell-prompt-set-calculated-regexps): New function.
(inferior-python-mode): Use it.  Also honor overriden
python-shell-interpreter and python-shell-interpreter-args.
(python-shell-make-comint): Honor overriden
python-shell-interpreter and python-shell-interpreter-args.
(python-shell-get-or-create-process): Make it testable by allowing
to call run-python non-interactively.
(python-util-valid-regexp-p): New function.
(python-shell-prompt-regexp, python-shell-prompt-block-regexp)
(python-shell-prompt-output-regexp)
(python-shell-prompt-pdb-regexp): Use it as defcustom :safe.

* test/automated/python-tests.el (python-shell-make-comint-1):
(python-shell-make-comint-2): Fix indentation.
(python-shell-make-comint-3)
(python-shell-make-comint-4): New tests.
(python-shell-get-or-create-process-1): Fix test.
(python-shell-get-or-create-process-2)
(python-shell-get-or-create-process-3): New tests.
(python-shell-internal-get-or-create-process-1): Fix test.
(python-shell-prompt-detect-1): New test.
(python-shell-prompt-detect-2): New test.  (Bug#17370)
(python-shell-prompt-detect-3)
(python-shell-prompt-detect-4)
(python-shell-prompt-detect-5)
(python-shell-prompt-detect-6)
(python-shell-prompt-validate-regexps-1)
(python-shell-prompt-validate-regexps-2)
(python-shell-prompt-validate-regexps-3)
(python-shell-prompt-validate-regexps-4)
(python-shell-prompt-validate-regexps-5)
(python-shell-prompt-validate-regexps-6)
(python-shell-prompt-validate-regexps-7)
(python-shell-prompt-set-calculated-regexps-1)
(python-shell-prompt-set-calculated-regexps-2)
(python-shell-prompt-set-calculated-regexps-3)
(python-shell-prompt-set-calculated-regexps-4)
(python-shell-prompt-set-calculated-regexps-5)
(python-shell-prompt-set-calculated-regexps-6)
(python-util-valid-regexp-p-1): New tests.

10 years ago* lisp/rect.el (rectangle--string-preview): Don't assume there
Stefan Monnier [Sat, 19 Jul 2014 01:43:29 +0000 (21:43 -0400)]
* lisp/rect.el (rectangle--string-preview): Don't assume there
a non-nil default.

Fixes: debbugs:17984
10 years agoPrefer 'x_display_info *' to 'Display *' in X selection code.
Dmitry Antipov [Fri, 18 Jul 2014 11:04:37 +0000 (15:04 +0400)]
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.

10 years ago* lisp/gnus/gnus-msg.el (gnus-configure-posting-style):
Albert Krewinkel [Fri, 18 Jul 2014 08:23:49 +0000 (08:23 +0000)]
* lisp/gnus/gnus-msg.el (gnus-configure-posting-style):
Allow string replacements in values when matching against a header.

* doc/misc/gnus.texi (Posting Styles): Document the possibility to
perform string replacements when matching against headers.

10 years ago* frame.c (frame_unspecified_color): New function
Dmitry Antipov [Fri, 18 Jul 2014 06:02:19 +0000 (10:02 +0400)]
* 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.

10 years agoFix last commit of src/w16select.c.
Eli Zaretskii [Thu, 17 Jul 2014 15:40:18 +0000 (18:40 +0300)]
Fix last commit of src/w16select.c.

10 years agoFix src/ChangeLog entry of last commit.
Eli Zaretskii [Thu, 17 Jul 2014 15:39:07 +0000 (18:39 +0300)]
Fix src/ChangeLog entry of last commit.

10 years agoFix setting up coding-systems for clipboard access on MS-Windows and MS-DOS.
Eli Zaretskii [Thu, 17 Jul 2014 15:37:48 +0000 (18:37 +0300)]
Fix setting up coding-systems for clipboard access on MS-Windows and MS-DOS.

 src/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>.
 src/w16select.c (Fw16_get_clipboard_data): Apply
 CODING_ANNOTATION_MASK to the common_flags member of struct
 coding_system.

10 years agoFix assertion violation when restoring hscrolled window configurations.
Eli Zaretskii [Thu, 17 Jul 2014 15:25:21 +0000 (18:25 +0300)]
Fix assertion violation when restoring hscrolled window configurations.

 src/xdisp.c (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>.

10 years agoFix part of bug #18035 with overlay strings on invisible text.
Eli Zaretskii [Thu, 17 Jul 2014 15:17:52 +0000 (18:17 +0300)]
Fix part of bug #18035 with overlay strings on invisible text.

 src/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.

10 years ago* data.c (wrong_choice): Not static any more.
Dmitry Antipov [Thu, 17 Jul 2014 10:18:19 +0000 (14:18 +0400)]
* 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.

10 years ago* print.c (print_preprocess): Adjust to match changed
Dmitry Antipov [Thu, 17 Jul 2014 09:12:51 +0000 (13:12 +0400)]
* print.c (print_preprocess): Adjust to match changed
sub char-table structure and avoid crash (Bug#18038).

10 years agoFix bug #18036 with infloop in redisplay with huge fringes.
Eli Zaretskii [Wed, 16 Jul 2014 18:39:35 +0000 (21:39 +0300)]
Fix bug #18036 with infloop in redisplay with huge fringes.

 src/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.

10 years agoMerge from emacs-24; up to 2014-06-23T06:25:47Z!rgm@gnu.org
Glenn Morris [Wed, 16 Jul 2014 17:06:12 +0000 (13:06 -0400)]
Merge from emacs-24; up to 2014-06-23T06:25:47Z!rgm@gnu.org

10 years ago* frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
Dmitry Antipov [Wed, 16 Jul 2014 15:39:15 +0000 (19:39 +0400)]
* 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.

10 years agoMore precise control over values of some buffer-local variables.
Dmitry Antipov [Wed, 16 Jul 2014 08:45:22 +0000 (12:45 +0400)]
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.

10 years agoRevert 2014-07-16T04:11:08Z!ueno@gnu.org and fix XCHAR2B_BYTE[12] in nsgui.h only
Daiki Ueno [Wed, 16 Jul 2014 05:44:05 +0000 (14:44 +0900)]
Revert 2014-07-16T04:11:08Z!ueno@gnu.org and fix XCHAR2B_BYTE[12] in nsgui.h only

* nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
pointer argument, before dereferencing.
(XCHAR2B_BYTE2): Likewise.

10 years agoRemove unnecessary ifdef from nsgui.h, introduced by my last commit
Daiki Ueno [Wed, 16 Jul 2014 04:40:43 +0000 (13:40 +0900)]
Remove unnecessary ifdef from nsgui.h, introduced by my last commit

10 years agoMove back the XChar2b definition to w32gui.h and nsgui.h
Daiki Ueno [Wed, 16 Jul 2014 04:31:31 +0000 (13:31 +0900)]
Move back the XChar2b definition to w32gui.h and nsgui.h

Fix the last change.  XChar2b still needs to be defined platform dependently,
to match with the argument types of drawing functions.

10 years ago* lisp/desktop.el (after-init-hook): Disable startup frame restoration
Glenn Morris [Wed, 16 Jul 2014 04:28:42 +0000 (21:28 -0700)]
* lisp/desktop.el (after-init-hook): Disable startup frame restoration
in non-graphical situations.

Fixes: debbugs:17693
10 years agoConsolidate XChar2b macros for the X, W32, and NS
Daiki Ueno [Wed, 16 Jul 2014 04:11:08 +0000 (13:11 +0900)]
Consolidate XChar2b macros for the X, W32, and NS

Suggested by Jan Djärv in:
https://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00203.html
* w32gui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
Move the fallback definitions to dispextern.h.
* nsgui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
Likewise.  Share the same definition with W32.
* xterm.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Move to ...
* dispextern.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
... here for the consistency with W32 and NS.

10 years agoUse "b" flag more consistently; avoid "t".
Paul Eggert [Tue, 15 Jul 2014 19:28:25 +0000 (12:28 -0700)]
Use "b" flag more consistently; avoid "t".

* make-docfile.c (READ_TEXT): Remove; all uses replaced by "r".
(READ_BINARY): Remove; all uses replaced by "rb".

Fixes: debbugs:18006
10 years agoetc/TODO: Minor updates.
Eli Zaretskii [Tue, 15 Jul 2014 16:11:33 +0000 (19:11 +0300)]
etc/TODO: Minor updates.