Backport from master (Bug#24033).
Inspired by a suggestion by Florian Weimer in:
https://sourceware.org/ml/libc-alpha/2016-07/msg00425.html
* src/emacs.c (main) [__PPC64__]:
Special case for __PPC64__, which needs ASLR disabled in
dumped Emacs too.
This expansion of the FIXME is so that future developers are aware of
the potential problems of aliasing fboundp to symbol-function without
taking backwards compatibility into account.
* src/data.c (fboundp): Note potential backwards compatibility issues in
FIXME.
Copyright-paperwork-exempt: yes
* src/editfns.c (Ftranspose_regions): Regions may overlap, so
use memmove instead of memcpy (bug#19213).
Copyright-paperwork-exempt: yes
This is a backport from trunk.
(cherry picked from commit 354f9f0fc6)
* lisp/emacs-lisp/cl-generic.el (cl-generic-apply): New function.
* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Fix incorrect
mapping between cl-no-applicable-method and EIEIO's no-applicable-method.
* lisp/emacs-lisp/eieio-core.el (eieio--class-precedence-c3):
`class' is not a symbol but a class object.
Make the documentation of the search functions more accurate,
complete, and uniform; in particular, extend the description of
the effect when the 'count' parameter is a negative number to all
of these functions.
* src/search.c (Fsearch_backward, Fsearch_forward)
(Fre_search_backward, Fre_search_forward)
(Fposix_search_backward, Fposix_search_forward):
* lisp/isearch.el (word-search-backward, word-search-forward)
(word-search-backward-lax, word-search-forward-lax): Improve doc
strings as described above.
* doc/lispref/searching.texi (String Search, Regexp Search)
(POSIX Regexps): Use 'count' instead of 'repeat' as the name of
the fourth parameter of the *-search-{forward,backward} functions
and improve documentation as described above.
* lisp/net/tramp-sh.el (tramp-get-env-with-u-option): New defun.
(tramp-sh-handle-start-file-process)
(tramp-sh-handle-process-file, ): Use it. (Bug#23952)
* lisp/simple.el (undo-auto--undoable-change-no-timer): New function.
* src/fileio.c (insert-buffer-contents): Call
undo-auto--undoably-changed-buffers before changes.
Addresses Bug#23785.
Do not merge to master as c98bc98 also addresses the same bug.
Problem reported by Christer Ekholm (Bug#23864).
Backport from master.
* src/process.c (wait_reading_process_output):
Fix typo introduced in 2015-07-06T02:19:13Z!eggert@cs.ucla.edu
when wait == INFINITY and got_output_end_time is invalid.
In this case the code should break, not continue.
* src/undo.c (record_insert): Use record_point instead of
prepare_record, and do so unconditionally.
(prepare_record): Do not record first change.
(record_point): Now conditional on state before the last command.
(record_delete): Call record_point unconditionally.
(record_property_change): Use prepare_record.
(record_marker_adjustments): Use prepare_record.
Addresses Bug# 21722
* src/search.c (Freplace_match): Error out if buffer modification
hooks triggered by buffer changes in replace_range, upcase-region,
and upcase-initials-region clobber the match data needed to be
adjusted for the replacement. (Bug#23869)
* doc/lispref/variables.texi (Lexical Binding): Clarify that symbol
arguments always refer to dynamic values (Bug #23781). Remove mention
of obsolete restriction regarding lexical binding for defun and
defmacro, this no longer applies since 61b108cc 2012-05-29 "*
lisp/emacs-lisp/byte-run.el (defmacro, defun): Move from C...".
* src/dispextern.h (FONT_TOO_HIGH): Don't consider a font "too
high" if its pixel_size value is zero. This avoids assertion
violations at the end of x_produce_glyphs.