Merge from origin/emacs-26

8c8b673288 Fix backing up remote files in local directories on MS-Win...
8eb6870be6 Fix vertical cursor motion in pixel-scroll.el
625e84f156 Fix typos in doc strings of message.el
9292276a44 Fix a typo in the Emacs manual
42509c0649 Improve the documentation of 'table-insert-sequence'
93dc7ae4a4 Port better to QNX
ad99550610 Make tramp-test42-auto-load more robust
af0ce33d08 ; * lisp/composite.el (find-composition): Fix a typo in la...
bdbcdbac43 Avoid assertions in find-composition
This commit is contained in:
Paul Eggert 2017-12-02 21:38:05 -08:00
commit f1204e1dda
9 changed files with 83 additions and 54 deletions

View file

@ -702,7 +702,9 @@ case "${canonical}" in
## QNX Neutrino
*-nto-qnx* )
opsys=qnxnto
test -z "$CC" && CC=qcc
CFLAGS="$CFLAGS -D__NO_EXT_QNX"
LDFLAGS="-N2MB $LDFLAGS"
;;
## Intel 386 machines where we don't care about the manufacturer.
@ -2218,7 +2220,7 @@ test "$CANNOT_DUMP" = yes ||
case "$opsys" in
## darwin ld insists on the use of malloc routines in the System framework.
darwin | mingw32 | nacl | sol2-10) ;;
cygwin | qnxto | freebsd)
cygwin | qnxnto | freebsd)
hybrid_malloc=yes
system_malloc= ;;
*) test "$ac_cv_func_sbrk" = yes && system_malloc=$emacs_cv_sanitize_address;;

View file

@ -62,8 +62,8 @@ definition for the current major mode overrides a global definition.
You can define abbrevs interactively during the editing session,
irrespective of whether Abbrev mode is enabled. You can also save
lists of abbrev definitions in files, which you can the reload for use
in later sessions.
lists of abbrev definitions in files, which you can then reload for
use in later sessions.
@node Defining Abbrevs
@section Defining Abbrevs

View file

@ -2814,9 +2814,14 @@ high, the table is 67 characters wide and 16 lines high with 2 columns
and 3 rows, and a total of 5 cells.
@findex table-insert-sequence
@kbd{M-x table-insert-sequence} inserts a string into each cell.
Each string is a part of a sequence i.e., a series of increasing
integer numbers.
@kbd{M-x table-insert-sequence} traverses the cells of a table
inserting a sequence of text strings into each cell as it goes. It
asks for the base string of the sequence, and then produces the
sequence by ``incrementing'' the base string, either numerically (if
the base string ends in numerical characters) or in the
@acronym{ASCII} order. In addition to the base string, the command
prompts for the number of elements in the sequence, the increment, the
cell interval, and the justification of the text in each cell.
@cindex table for HTML and LaTeX
@findex table-generate-source

View file

@ -337,8 +337,9 @@ When Automatic Composition mode is on, this function also finds a
chunk of text that is automatically composed. If such a chunk is
found closer to POS than the position that has `composition'
property, the value is a list of FROM, TO, and a glyph-string
that specifies how the chunk is to be composed. See the function
`composition-get-gstring' for the format of the glyph-string."
that specifies how the chunk is to be composed; DETAIL-P is
inored in this case. See the function `composition-get-gstring'
for the format of the glyph-string."
(let ((result (find-composition-internal pos limit string detail-p)))
(if (and detail-p (> (length result) 3) (nth 2 result) (not (nth 3 result)))
;; This is a valid rule-base composition.

View file

@ -4653,25 +4653,41 @@ The function `find-backup-file-name' also uses this."
;; "/drive_x".
(or (file-name-absolute-p file)
(setq file (expand-file-name file))) ; make defaults explicit
;; Replace any invalid file-name characters (for the
;; case of backing up remote files).
(setq file (expand-file-name (convert-standard-filename file)))
(if (eq (aref file 1) ?:)
(setq file (concat "/"
"drive_"
(char-to-string (downcase (aref file 0)))
(if (eq (aref file 2) ?/)
""
"/")
(substring file 2)))))
;; Make the name unique by substituting directory
;; separators. It may not really be worth bothering about
;; doubling `!'s in the original name...
(expand-file-name
(subst-char-in-string
?/ ?!
(replace-regexp-in-string "!" "!!" file))
backup-directory))
(cond
((file-remote-p file)
;; Remove the leading slash, if any, to prevent
;; expand-file-name from adding a drive letter.
(and (memq (aref file 0) '(?/ ?\\))
(setq file (substring file 1)))
;; Replace any invalid file-name characters.
(setq file (convert-standard-filename file))
;; Replace slashes to make the file name unique, and
;; prepend backup-directory.
(expand-file-name
(subst-char-in-string
?/ ?!
(replace-regexp-in-string "!" "!!"
(concat "/" file)))
backup-directory))
(t
;; Replace any invalid file-name characters.
(setq file (expand-file-name (convert-standard-filename file)))
(if (eq (aref file 1) ?:)
(setq file (concat "/"
"drive_"
(char-to-string (downcase (aref file 0)))
(if (eq (aref file 2) ?/)
""
"/")
(substring file 2))))
;; Make the name unique by substituting directory
;; separators. It may not really be worth bothering about
;; doubling `!'s in the original name...
(expand-file-name
(subst-char-in-string
?/ ?!
(replace-regexp-in-string "!" "!!" file))
backup-directory)))))
(expand-file-name (file-name-nondirectory file)
(file-name-as-directory abs-backup-directory))))))

View file

@ -1433,7 +1433,7 @@ starting with `not' and followed by regexps."
(:foreground "MidnightBlue" :bold t))
(t
(:bold t :italic t)))
"Face used for displaying From headers."
"Face used for displaying To headers."
:group 'message-faces)
;; backward-compatibility alias
(put 'message-header-to-face 'face-alias 'message-header-to)
@ -1463,7 +1463,7 @@ starting with `not' and followed by regexps."
(:foreground "navy blue" :bold t))
(t
(:bold t)))
"Face used for displaying subject headers."
"Face used for displaying Subject headers."
:group 'message-faces)
;; backward-compatibility alias
(put 'message-header-subject-face 'face-alias 'message-header-subject)
@ -1478,7 +1478,7 @@ starting with `not' and followed by regexps."
(:foreground "blue4" :bold t :italic t))
(t
(:bold t :italic t)))
"Face used for displaying newsgroups headers."
"Face used for displaying Newsgroups headers."
:group 'message-faces)
;; backward-compatibility alias
(put 'message-header-newsgroups-face 'face-alias 'message-header-newsgroups)
@ -1493,7 +1493,7 @@ starting with `not' and followed by regexps."
(:foreground "steel blue"))
(t
(:bold t :italic t)))
"Face used for displaying newsgroups headers."
"Face used for displaying other headers."
:group 'message-faces)
;; backward-compatibility alias
(put 'message-header-other-face 'face-alias 'message-header-other)

View file

@ -110,11 +110,11 @@ This is an alternative of `scroll-up'. Scope moves downward."
pixel-resolution-fine-flag
(frame-char-height))
(pixel-line-height))))
(if (pixel-eob-at-top-p) ; when end-of-the-buffer is close
(scroll-up 1) ; relay on robust method
(while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
(vertical-motion 1)) ; move point downward
(pixel-scroll-pixel-up amt))))) ; move scope downward
(while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
(vertical-motion 1)) ; move point downward
(if (pixel-eob-at-top-p) ; when end-of-the-buffer is close
(scroll-up 1) ; relay on robust method
(pixel-scroll-pixel-up amt))))) ; move scope downward
(defun pixel-scroll-down (&optional arg)
"Scroll text of selected window down ARG lines.
@ -127,11 +127,11 @@ This is and alternative of `scroll-down'. Scope moves upward."
pixel-resolution-fine-flag
(frame-char-height))
(pixel-line-height -1))))
(if (or (pixel-bob-at-top-p amt) ; when beginning-of-the-buffer is seen
(pixel-eob-at-top-p)) ; for file with a long line
(scroll-down 1) ; relay on robust method
(while (pixel-point-at-bottom-p amt) ; prevent too late (multi tries)
(vertical-motion -1))
(while (pixel-point-at-bottom-p amt) ; prevent too late (multi tries)
(vertical-motion -1)) ; move point upward
(if (or (pixel-bob-at-top-p amt) ; when beginning-of-the-buffer is seen
(pixel-eob-at-top-p)) ; for file with a long line
(scroll-down 1) ; relay on robust method
(pixel-scroll-pixel-down amt)))))
(defun pixel-bob-at-top-p (amt)

View file

@ -3794,19 +3794,26 @@ font_range (ptrdiff_t pos, ptrdiff_t pos_byte, ptrdiff_t *limit,
int c;
Lisp_Object font_object = Qnil;
if (NILP (string))
if (!face)
{
if (! face)
{
int face_id;
struct frame *f = XFRAME (w->frame);
int face_id;
face_id = face_at_buffer_position (w, pos, &ignore,
*limit, false, -1);
face = FACE_FROM_ID (XFRAME (w->frame), face_id);
if (NILP (string))
face_id = face_at_buffer_position (w, pos, &ignore, *limit,
false, -1);
else
{
face_id =
NILP (Vface_remapping_alist)
? DEFAULT_FACE_ID
: lookup_basic_face (f, DEFAULT_FACE_ID);
face_id = face_at_string_position (w, string, pos, 0, &ignore,
face_id, false);
}
face = FACE_FROM_ID (f, face_id);
}
else
eassert (face);
while (pos < *limit)
{

View file

@ -4624,15 +4624,13 @@ process sentinels. They shall not disturb each other."
(ignore-errors (cancel-timer timer))
(ignore-errors (delete-directory tmp-name 'recursive)))))))
;; This test is inspired by Bug#29163.
(ert-deftest tramp-test42-auto-load ()
"Check that Tramp autoloads properly."
(skip-unless (tramp--test-enabled))
(skip-unless (not (tramp--test-mock-p)))
(let ((default-directory (expand-file-name temporary-file-directory))
(code
(format
"(message \"Tramp loaded: %%s\" (consp (file-attributes %S)))"
"(message \"Tramp loaded: %%s\" (and (file-remote-p %S) t))"
tramp-test-temporary-file-directory)))
(should
(string-match