* lisp/textmodes/flyspell.el
(flyspell-check-previous-highlighted-word): Really accept a
numeric argument, as the doc string describes. Fix an off-by-one
error in looking up overlays, so invocation with point immediately
after a word would check that word. Clarify the doc string as
Suggested by N. Jackson <nljlistbox2@gmail.com>. (Bug#21129)
* test/automated/tramp-tests.el (tramp-test31-*, tramp-test32-*):
Implement using the documented interface
`tramp-connection-properties', rather than with internal functions.
* lisp/skeleton.el (skeleton-read): Allow PROMPT to be a function.
* lisp/textmodes/sgml-mode.el (sgml-attributes, sgml-value): Pass
lambdas to `skeleton-read' (bug#20386).
Copyright-paperwork-exempt: yes
* lisp/textmodes/flyspell.el (flyspell-correct-word-before-point)
(flyspell-emacs-popup): Require neither a GUI frame nor mouse
support, since pop-up menus work with text terminals and can be
controlled via the keyboard.
* doc/emacs/fixit.texi (Spelling): Mention Flyspell commands that
can be invoked via the keyboard. Mention those commands by name
and add them to the fn index. (Bug#21125)
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Add "tab0" to stty call.
* test/automated/tramp-tests.el (tramp-persistency-file-name):
Set to nil.
(tramp--test-hpux-p): New defun.
(tramp--test-utf8): Use it.
* lisp/ffap.el (ffap-url-at-point): Set ffap-string-at-point-region,
as our callers expect. This was clobbered as part of fixing
bug#5673. (Bug#21107)
(ffap-gopher-at-point): Set ffap-string-at-point-region.
* lisp/progmodes/xref.el (xref--match-buffer-bounds): New
function, extracted from xref-pulse-momentarily.
(xref-query-replace): New command.
(xref--query-replace-1): New helper function.
(xref--xref-buffer-mode-map): Add `r' binding.
* lisp/progmodes/xref.el (xref-match-bounds): New generic function.
(xref-file-location): Add reader for the column slot.
(xref-match-item): New class.
(xref-match-bounds): A method implementation for it.
(xref-make-match): New constructor function.
(xref--current-item): New private variable.
(xref-pulse-momentarily): Use it.
(xref--pop-to-location): Change the first argument to an xref
item, instead of location, bind xref--current-item.
Update all callers.
(xref-next-line, xref-prev-line, xref--next-error-function)
(xref--mouse-2): Look for the property `xref-item',
instead of `xref-location'.
(xref--item-at-point): Likewise. This function replaces
`xref-location-at-point'. Update all callers.
(xref--insert-xrefs): Add the `xref-item' text property, instead
of `xref-location'.
(xref--collect-match): Use xref-make-match.
* lisp/progmodes/xref.el (xref-after-jump-hook)
(xref-after-return-hook): New hooks.
(xref-pulse-on-jump): Remove, in favor of the above.
(xref-pulse-momentarily): Rename from xref--maybe-pulse.
(xref--pop-to-location, xref--display-position)
(xref-pop-marker-stack): Use the new hooks, as requested in
http://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00213.html
* lisp/info.el (Info-find-node-2): Reset the buffer's encoding to
'undecided', so that it is set to the encoding of the Info file we
are about to insert. Otherwise, 'info-apropos' will fail to find
some index nodes in some UTF-8 encoded files, if the buffer's
previous encoding is Latin-N or some such.
* src/xdisp.c (Fmove_point_visually): When lines are truncated,
simulate display in a window of infinite width, to allow move_it_*
functions reach positions outside of normal window dimensions.
Remove code that tried to handle a subset of these situations by
manual iteration of buffer text. (Bug#17777)
* lisp/info.el (Info-read-subfile): Add to the returned value the
length of subfile preamble, after converting it to file's byte
offset, as expected by the caller. Use bufferpos-to-filepos.
(Info-find-node-2): If searching for a node with a
1000-character slop fails, try again with a 10000-character slop,
to account for known bugs in Texinfo 5.0 and 5.1. (Bug#21055)
* lisp/international/mule-util.el (bufferpos-to-filepos): New
function.
* etc/NEWS: Mention bufferpos-to-filepos.
Replace all instances of 'face with 'font-lock-face.
(describe-package-1): Improve some strings and move the summary up the
list.
(package-install-file): Update docstring.
(package-menu-hide-package): Bind to `H'.
Crowe's patch in:
https://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00106.html
A problem in this area has been reported by several users; see
Bug#16737, Bug#17101, Bug#17026, Bug#17172, Bug#19320, Bug#20283.
This fix differs from Mike Crowe's patch in that it should avoid a
race condition that could lose SIGIO signals. ignore_sigio dates
back to the 1980s when some platforms couldn't block signals, and
could only ignore them, which led to races when signals arrived
while being ignored. We shouldn't have to worry about those old
platforms now.
* src/dispextern.h, src/sysdep.c (ignore_sigio): Remove.
* src/emacs.c (shut_down_emacs):
Don't call ignore_sigio; unrequest_sigio should suffice.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Use unrequest_sigio, not ignore_sigio.
(kbd_buffer_get_event):
Call request_sigio when getting the ball rolling again.
* lisp/autorevert.el (auto-revert-handler): Do not check for
`buffer-modified-p'.
* lisp/files.el (buffer-stale--default-function): Check for
`buffer-modified-p'.
* test/automated/auto-revert-tests.el
(auto-revert-test02-auto-revert-mode-dired): Adapt test.
Improve the heuristic for distinguishing stack overflows from
other SIGSEGV causes (Bug#21004). Corinna Vinschen explained that
the getrlimit method wasn't portable to Cygwin; see:
https://www.cygwin.com/ml/cygwin/2015-07/msg00092.html
Corinna suggested pthread_getattr_np but this also has problems.
Instead, replace the low-level system stuff with a simple
heuristic based on known good stack addresses.
* src/eval.c, src/lisp.h (near_C_stack_top): New function.
* src/sysdep.c: Don't include <sys/resource.h>.
(stack_direction): Remove. All uses removed.
(stack_overflow): New function.
(handle_sigsegv): Use it instead of incorrect getrlimit heuristic.
Make SEGV fatal in non-main threads.