Eli Zaretskii [Wed, 20 Aug 2014 14:41:15 +0000 (17:41 +0300)]
Remove 16-bit limitations in scroll bar position reporting on MS-Windows.
src/w32term.c (w32_scroll_bar_handle_click)
(w32_horizontal_scroll_bar_handle_click)
(x_scroll_bar_report_motion)
(x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
SB_THUMBTRACK, use the 32-bit position information returned by
GetScrollInfo, not the 16-bit information returned in the Windows
message sent to us.
* lisp/emacs-lisp/eldoc.el (eldoc-highlight-function-argument): Add support
for &key args.
* emacs-lisp/eldoc.el (eldoc-argument-case): Obsolete and change default.
(eldoc-function-argstring-format): Remove.
(eldoc-function-argstring): Always return upcase args.
Use help-make-usage. Don't add parens.
(eldoc-get-fnsym-args-string): Don't obey eldoc-argument-case since
it's too late to do it right (bug#18048).
Eli Zaretskii [Mon, 18 Aug 2014 14:39:26 +0000 (17:39 +0300)]
Fix horizontal scrolling in non-selected windows.
lisp/scroll-bar.el (scroll-bar-horizontal-drag-1)
(scroll-bar-toolkit-horizontal-scroll): When determining the
paragraph direction, use the buffer of the window designated in
the event.
Eli Zaretskii [Sun, 17 Aug 2014 14:58:04 +0000 (17:58 +0300)]
Avoid overwriting the reversed_p flags in the glyph matrices.
Avoid overwriting the reversed_p flags in the glyph matrices when
init_iterator or start_display are called.
src/xdisp.c (init_iterator): Don't initialize the reversed_p flag of
the glyph row here.
(tool_bar_height, redisplay_tool_bar, try_window)
(try_window_reusing_current_matrix, try_window_id)
(get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
reversed_p flag of the iterator's glyph row where the glyph row
is going to be redrawn.
Paul Eggert [Sat, 16 Aug 2014 16:50:32 +0000 (09:50 -0700)]
Add dependencies to fix loaddefs race during parallel builds.
Without this, for example, 'make -j bootstrap' can fail and report
"Opening input file: no such file or directory,
.../lisp/calendar/diary-loaddefs.el ... recipe for target
'calendar/hol-loaddefs.el' failed", where the hol-loaddefs.el rule
got confused because diary-loaddefs.el was being built in parallel.
* Makefile.in ($(CAL_DIR)/diary-loaddefs.el):
Depend on $(CAL_DIR)/cal-loaddefs.el.
($(CAL_DIR)/hol-loaddefs.el): Depend on $(CAL_DIR)/diary-loaddefs.el.
Martin Rudalics [Sat, 16 Aug 2014 15:47:38 +0000 (17:47 +0200)]
Preliminary attempt to fix horizontal scroll bar dragging with bidi text.
* w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
of emacs_event return length from si.nPage to si.nMax.
* xdisp.c (set_horizontal_scroll_bar): For right-to-left text
interchange start and end of thumb.
* scroll-bar.el (scroll-bar-horizontal-drag-1): Use cdr of
portion-whole for scrolling right-to-left text.
* image-mode.el (image-transform-reset): New command and menu item.
(image-mode-map): Rearrange the menu items to put presumably more
obscure items at the end.
* src/fileio.c: Revert 2013-01-31 change.
(choose_write_coding_system): No longer callable from Lisp.
Move last piece back here from Fwrite_region.
(Fwrite_region, syms_of_fileio): Update for above changes.
* test/automated/data/files-bug18141.el.gz: New file.
* test/automated/files.el (files-test-bug-18141-file):
New variable and test.
Paul Eggert [Sun, 10 Aug 2014 20:40:57 +0000 (13:40 -0700)]
Don't prevent random file systems from being unmounted.
This fix relies on having the 'fchdir' function, and on having
"." be searchable (or at least readable, on platforms lacking O_SEARCH),
but that's good enough to handle the vast majority of cases and the
remaining folks can just live with the annoyance of file systems
that occasionally can't be unmounted.
* configure.ac (fchdir): New function to check for.
* lib/save-cwd.c: Copy from gnulib, except omit the part that
allocates memory, since that can cause problems in Emacs.
* lib/save-cwd.h: Copy from gnulib.
* calendar/icalendar.el (icalendar-export-sexp-enumerate-all)
(icalendar-export-sexp-enumeration-days): New
(icalendar-export-region): `icalendar--convert-to-ical' now
returns a cons cell or a list of cons cells.
(icalendar--convert-to-ical): Take care of
`icalendar-export-sexp-enumerate-all'. Return (a list of) cons
cells.
(icalendar--convert-ordinary-to-ical),
(icalendar--convert-weekly-to-ical),
(icalendar--convert-yearly-to-ical),
(icalendar--convert-block-to-ical),
(icalendar--convert-block-to-ical),
(icalendar--convert-float-to-ical),
(icalendar--convert-cyclic-to-ical),
(icalendar--convert-anniversary-to-ical): Return cons cell.
(icalendar--convert-sexp-to-ical): Enumerate evaluated sexp
entries. Return (list of) cons cells.
Martin Rudalics [Sun, 10 Aug 2014 08:26:28 +0000 (10:26 +0200)]
Fix handling of menu bar line on TTY frames (Bug#18136) (Bug#18196).
* dispnew.c (handle_window_change_signal):
* keyboard.c (Fsuspend_emacs): Call change_frame_size with
frame's menu bar lines subtracted from height.
* frame.c (frame_inhibit_resize): Inhibit resizing of TTY
frames.
(adjust_frame_size): Count in menu bar when setting FrameRows.
(make_terminal_frame): When setting up the frame's lines and
text height don't count in the menu bar.
(Fmake_terminal_frame): Call adjust_frame_size with menu bar
lines subtracted from height.
(do_switch_frame): Set tty's FrameRows to number of total lines
of frame.
(Fframe_pixel_height, Fframe_pixel_width): If no window system
is used, return total number of lines and columns.
* menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
of FRAME_LINES.
* term.c (OUTPUT, tty_set_terminal_modes)
(tty_set_terminal_window, tty_set_scroll_region)
(tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
(tty_ins_del_lines, tty_menu_display, tty_menu_activate): Use
FRAME_TOTAL_LINES instead of FRAME_LINES.
(Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
Call change_frame_size with frame's menu bar lines subtracted
from height.
* w32console.c (w32con_clear_to_end, w32con_clear_frame)
(w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
FRAME_LINES.
Alan Mackenzie [Sat, 9 Aug 2014 20:54:04 +0000 (20:54 +0000)]
progmodes/cc-fonts.el (c-font-lock-declarators): Remove check for
top-level that can cause unacceptable slow-down in scrolling.
See email Subject: Huge {...} blocks in C/C++ again, from Dmitry Antipov
from 2013-10-14 in emacs-devel.
Martin Rudalics [Sat, 9 Aug 2014 16:50:13 +0000 (18:50 +0200)]
In display-buffer-below-selected reuse window below selected if it shows buffer already (Bug#18181).
* window.el (display-buffer-below-selected): Restore original
behavior if buffer is already displayed in the window below the
selected one (Bug#18181).
Martin Rudalics [Sat, 9 Aug 2014 11:12:45 +0000 (13:12 +0200)]
Second attempt to fix some doc-strings in window.c.
* window.c (Fwindow_new_total, Fwindow_new_normal)
(Fwindow_new_pixel, Fset_window_new_pixel)
(Fset_window_new_total, Fset_window_new_normal): Second attempt
to fix the doc-strings of these functions. See:
http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
Paul Eggert [Sat, 9 Aug 2014 06:57:59 +0000 (23:57 -0700)]
Merge from gnulib.
This incorporates:
2014-08-07 getdtablesize: fall back on sysconf (_SC_OPEN_MAX)
2014-08-05 sys_select: fix FD_ZERO problem on Solaris 10
* lib/getdtablesize.c, lib/sys_select.in.h: Update from gnulib.
ibuffer.el (ibuffer-mode-map): Use toggle button for
`ibuffer-auto-mode' menu entry.
(ibuffer-mode-hook): Add `ibuffer-auto-mode' customization option.
Reuben Thomas [Thu, 7 Aug 2014 11:49:36 +0000 (12:49 +0100)]
Remove remaining mentions of VMS as a host
* notes/exit-value: Remove specific discussion of VMS.
* doc/emacs/programs.texi (Program Modes): Don't advertise VMS DCL support
any more.
* doc/misc/ediff.texi (Merging and diff3): Don't mention lack of support
for VMS diff, we no longer support VMS.
* lisp/progmodes/ada-mode.el:
* lisp/net/tramp.el (tramp-handle-file-symlink-p):
* lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler): Remove a comment
about VMS, which we no longer support.
* lisp/progmodes/ada-xref.el (ada-xref-current): Remove mention of VMS,
and fix a FIXME, using convert-standard-filename in place of
removed ada-convert-file-name.
* lisp/url/url-handlers.el: Remove a comment about VMS, which we no longer
support.
Reuben Thomas [Thu, 7 Aug 2014 10:15:52 +0000 (11:15 +0100)]
Fix a few ``MS-DOG''s overlooked in the previous commit.
* README: ``MSDOG'' becomes ``MS-DOS''.
* lisp/arc-mode.el: Fix a couple of ``MS-DOG''s missed in the previous
commit.
* lisp/file-mode.el: ditto.
* src/editfns.c: Fix a couple of ``MS-DOG''s missed in the previous commit.
* src/xfaces.c: ditto.
Eric Abrahamsen [Wed, 6 Aug 2014 00:33:37 +0000 (00:33 +0000)]
* gnus-sum.el (gnus-summary-expire-articles): Functions registered to
the gnus-summary-article-expire-hook should be told where the function
is going. In particular, the Gnus registry might want to know.
Eli Zaretskii [Tue, 5 Aug 2014 13:34:06 +0000 (16:34 +0300)]
Fix bug #18195 with inaccurate results from window-screen-lines.
lisp/simple.el (default-line-height): A floating-point value of
line-spacing means a fraction of the default frame font's height,
not of the font currently used by the 'default' face. Truncate
the pixel value, like the display engine does.
(window-screen-lines): Use window-inside-pixel-edges for
determining the window height in pixels.
Martin Rudalics [Tue, 5 Aug 2014 08:25:28 +0000 (10:25 +0200)]
Don't redeem scroll bars that have been turned off.
* w32term.c (w32_redeem_scroll_bar):
* xterm.c (XTredeem_scroll_bar): Revert part of last change by
not redeeming scroll bars that have been turned off.
Dmitry Antipov [Tue, 5 Aug 2014 06:04:38 +0000 (10:04 +0400)]
Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
* buffer.c (Fmake_indirect_buffer): Initialize undo list with the
base buffer's undo list.
Dmitry Antipov [Tue, 5 Aug 2014 05:43:35 +0000 (09:43 +0400)]
* keyboard.c (safe_run_hooks): Follow the convenient style to bind
inhibit-quit to t and pass 2 args to safe_run_hook_funcall. See
<http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
(safe_run_hook_funcall): Adjust accordingly.
Martin Rudalics [Mon, 4 Aug 2014 16:47:27 +0000 (18:47 +0200)]
Fix scroll bar handling for non-toolkit builds.
* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition
correctly according to toolkit used.
* frame.c (make_initial_frame, make_terminal_frame)
(x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
(Vdefault_frame_horizontal_scroll_bars): Correctly condition
assignments according to presence of toolkit scrollbars.
* window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition
correctly according to toolkit used.
* window.c (set_window_scroll_bars): Set horizontal scroll bar
only if toolkit supports it.
* w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
present.
* xterm.c (x_scroll_bar_create): Initialize horizontal slot for
non-toolkit builds.
(XTredeem_scroll_bar): Always redeem scroll bar if present.
Dmitry Antipov [Mon, 4 Aug 2014 04:03:31 +0000 (08:03 +0400)]
* keyboard.c (safe_run_hook_funcall): Avoid consing around
Vinhibit_quit and prefer internal_condition_case_n to pass args.
(safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
(safe_run_hooks): Remove comment which is not relevant any more.