From: Paul Eggert Date: Sat, 25 Jun 2016 22:16:25 +0000 (+0200) Subject: Merge from origin/emacs-25 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/fdcf46d33eebc59e56a35fcea186c61aad3c81d0?hp=d6930356cabd3036e445cc6a2f668b1fd3e0cde4 Merge from origin/emacs-25 0377fe2 ; Spelling fixes f253695 Update docs for `customize-mode' 4395aaa Fix documentation of 'assoc-string' and 'compare-strings' ab0ebb9 ; Only load .elc file in tests. a98aa02 Error on multibyte characters in HTTP request ea512a7 * lisp/gnus/mm-decode.el (mm-convert-shr-links): Mask keys th... 8297331 ; Revert "Ensure undo-boundary after insert-file-contents." dc5e65b Unset GIT_DIR when calling Git commands 6cdd8f7 Ensure undo-boundary after insert-file-contents. 4793f5f Clarify documentation of 'line-spacing' and 'line-height' 5f37572 Fix removal of variables from process-environment e5e886d * admin/authors.el (authors-ignored-files, authors-valid-file... db0777b * admin/authors.el (authors-aliases, authors-fixed-case): Add... # Conflicts: # doc/lispref/modes.texi # lisp/gnus/mm-decode.el --- diff --git a/admin/authors.el b/admin/authors.el index 1447bd4f49..0738e2a8dd 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -45,7 +45,9 @@ files.") '( (nil "A\\. N\\. Other") ; unknown author 2014-12-03, later removed ("Aaron S. Hawley" "Aaron Hawley") + ("Alan Third" "Alan J Third") ("Alexandru Harsanyi" "Alex Harsanyi") + ("Álvar Jesús Ibeas Martín" "Álvar Ibeas") ("Andrew Csillag" "Drew Csillag") ("Anna M. Bigatti" "Anna Bigatti") ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." @@ -61,6 +63,7 @@ files.") ("David J. Biesack" "David Biesack") ("David De La Harpe Golden" "David Golden") ("David Gillespie" "Dave Gillespie") + ("David S. Goldberg" "Dave Goldberg") ("David Kågedal" "David K..edal") ("David M. Koppelman" "David Koppelman") ("David M. Smith" "David Smith" "David M Smith") @@ -72,6 +75,7 @@ files.") ("Eric M. Ludlam" "Eric Ludlam") ("Eric S. Raymond" "Eric Raymond") ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina") + ("Francis Litterio" "Fran Litterio") ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright") ("François Pinard" "Francois Pinard") ("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`") @@ -122,11 +126,12 @@ files.") ("Michaël Cadilhac" "Michael Cadilhac") ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG") ("Michael R. Cook" "Michael Cook") - ("Michael Sperber" "Michael Sperber \\[Mr. Preprocessor\\]") + ("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]") ("Mikio Nakajima" "Nakajima Mikio") ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira") ("Noorul Islam" "Noorul Islam K M") ;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME? + ("Óscar Fuentes" "Oscar Fuentes") ("Paul Eggert" "Paul R\\. Eggert") ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik") ("Pavel Kobiakov" "Pavel Kobyakov") @@ -136,6 +141,7 @@ files.") ("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith") ("Peter Runestig" "Peter 'luna' Runestig") ("Piotr Zieliński" "Piotr Zielinski") + ("Przemysław Wojnowski" "Przemyslaw Wojnowski") ("Rainer Schöpf" "Rainer Schoepf") ("Raja R. Harinath" "Raja R Harinath") ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski") @@ -143,13 +149,16 @@ files.") ("Richard M. Stallman" "Richard Stallman" "rms@gnu.org") ("Robert J. Chassell" "Bob Chassell") ("Roberto Huelga Díaz" "Roberto Huelga") + ("Rodney J. Whitby" "Rod Whitby") ("Roland B. Roberts" "Roland B Roberts" "Roland Roberts") + ("Ron Schnell" "Ronnie Schnell") ("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}") ("Sacha Chua" "Sandra Jean Chua") ("Sam Steingold" "Sam Shteingold") ("Satyaki Das" "Indexed search by Satyaki Das") ("Sébastien Vauban" "Sebastien Vauban") ("Sergey Litvinov" "Litvinov Sergey") + ("Shun-ichi Goto" "Shun-ichi GOTO") ;; There are other Stefans. ;;; ("Stefan Monnier" "Stefan") ("Steven L. Baur" "SL Baur" "Steven L Baur") @@ -186,12 +195,14 @@ If REALNAME is nil, ignore that author.") ;; FIXME seems it would be less fragile to check for O', Mc, etc. (defconst authors-fixed-case '("Barry O'Reilly" + "Brian McKenna" "Brian van den Broek" "Bryan O'Sullivan" "Christian von Roques" "Christophe de Dinechin" "Craig McDaniel" "Daniel LaLiberte" + "Daniel McClanahan" "David J. MacKenzie" "David McCabe" "David O'Toole" @@ -222,6 +233,7 @@ If REALNAME is nil, ignore that author.") "Shun-ichi Goto" "Thomas DeWeese" "Tijs van Bakel" + "Titus von der Malsburg" "Yu-ji Hosokawa") "List of authors whose names cannot be simply capitalized.") @@ -280,6 +292,7 @@ Changes to files matching one of the regexps in this list are not listed.") "gfdl.1" "texi/Makefile.in" "autodeps.mk" + "lwlib/autodeps.mk" "oldXMenu/autodeps.mk" "src/autodeps.mk" "Imakefile" "icons/sink.ico" "aixcc.lex" @@ -371,9 +384,11 @@ Changes to files matching one of the regexps in this list are not listed.") "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" ;; files from old MS Windows build procedures "makefile.w32-in" + "admin/unidata/makefile.w32-in" "unidata/makefile.w32-in" "lib/makefile.w32-in" "leim/makefile.w32-in" + "lisp/makefile.w32-in" "src/makefile.w32-in" "nt/emacs-src.tags" "doc/emacs/makefile.w32-in" @@ -692,8 +707,9 @@ Changes to files in this list are not listed.") "net/zone-mode.el" "xesam.el" "term/mac-win.el" "sup-mouse.el" "term/apollo.el" - "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" - "term/vt320.el" "term/vt400.el" "term/vt420.el" + "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" + "term/vt240.el" "term/vt300.el" "term/vt320.el" "term/vt400.el" + "term/vt420.el" "url-https.el" "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el" @@ -738,6 +754,7 @@ Changes to files in this list are not listed.") "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" "test-distrib.c" "testfile" "tpu-edt.doc" ; see below + "lisp/obsolete/vc-mcvs.el" ) "File names which are valid, but no longer exist (or cannot be found) in the repository.") @@ -829,11 +846,14 @@ in the repository.") ("emulation/crisp.el" . "crisp.el") ("emulation/tpu-edt.el" . "tpu-edt.el") ("emulation/tpu-extras.el" . "tpu-extras.el") + ("emulation/tpu-mapper.el" . "tpu-mapper.el") ("emulation/vi.el" . "vi.el") ("emulation/vip.el" . "vip.el") ("emulation/ws-mode.el" . "ws-mode.el") ("mail/mailpost.el" . "mailpost.el") + ("net/eudcb-ph.el" . "eudcb-ph.el") ("play/bruce.el" . "bruce.el") + ("lisp/play/landmark.el" . "landmark.el") ("play/yow.el" . "yow.el") ("patcomp.el" . "patcomp.el") ("emulation/ws-mode.el" . "ws-mode.el") @@ -914,6 +934,7 @@ in the repository.") ("grammars" . "grammars") ;; Moved from lisp/emacs-lisp/ to admin/. ("emacs-lisp/authors.el" . "authors.el") + ("emacs-lisp/find-gc.el" . "admin/find-gc.el") ;; From etc to lisp/cedet/semantic/. ("grammars/bovine-grammar.el" . "bovine/grammar.el") ("grammars/wisent-grammar.el" . "wisent/grammar.el") diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 1956ee5503..a7c1d0992d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1996,15 +1996,17 @@ newline. If the property value is @code{t}, the newline character has no effect on the displayed height of the line---the visible contents -alone determine the height. This is useful for tiling small images -(or image slices) without adding blank areas between the images. +alone determine the height. The @code{line-spacing} property, +described below, is also ignored in this case. This is useful for +tiling small images (or image slices) without adding blank areas +between the images. If the property value is a list of the form @code{(@var{height} @var{total})}, that adds extra space @emph{below} the display line. First Emacs uses @var{height} as a height spec to control extra space @emph{above} the line; then it adds enough space @emph{below} the line -to bring the total line height up to @var{total}. In this case, the -other ways to specify the line spacing are ignored. +to bring the total line height up to @var{total}. In this case, any +value of @code{line-spacing} property for the newline is ignored. @cindex height spec Any other kind of property value is a height spec, which translates @@ -2054,9 +2056,10 @@ overrides line spacings specified for the frame. @kindex line-spacing @r{(text property)} Finally, a newline can have a @code{line-spacing} text or overlay -property that overrides the default frame line spacing and the buffer -local @code{line-spacing} variable, for the display line ending in -that newline. +property that can enlarge the default frame line spacing and the +buffer local @code{line-spacing} variable: if its value is larger than +the buffer or frame defaults, that larger value is used instead, for +the display line ending in that newline. One way or another, these mechanisms specify a Lisp value for the spacing of each line. The value is a height spec, and it translates diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 1285c1c69e..368d882a4b 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -799,10 +799,9 @@ if @var{parent} is @code{nil}. (Again, a @code{nil} value is @item :group If this is specified, the value should be the customization group for -this mode. (Not all major modes have one.) Only the (still -experimental and unadvertised) command @code{customize-mode} currently -uses this. @code{define-derived-mode} does @emph{not} automatically -define the specified customization group. +this mode. (Not all major modes have one.) The command +@code{customize-mode} uses this. @code{define-derived-mode} does +@emph{not} automatically define the specified customization group. @item :after-hook This optional keyword specifies a single Lisp form to evaluate as the diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index fc356af51b..4e4c239291 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -668,7 +668,7 @@ The strings are compared by the numeric values of their characters. For instance, @var{str1} is considered less than @var{str2} if its first differing character has a smaller numeric value. If @var{ignore-case} is non-@code{nil}, characters are converted to -lower-case before comparing them. Unibyte strings are converted to +upper-case before comparing them. Unibyte strings are converted to multibyte for comparison (@pxref{Text Representations}), so that a unibyte string and its conversion to multibyte are always regarded as equal. @@ -685,7 +685,8 @@ specified portion) is less. This function works like @code{assoc}, except that @var{key} must be a string or symbol, and comparison is done using @code{compare-strings}. Symbols are converted to strings before testing. -If @var{case-fold} is non-@code{nil}, it ignores case differences. +If @var{case-fold} is non-@code{nil}, @var{key} and the elements of +@var{alist} are converted to upper-case before comparison. Unlike @code{assoc}, this function can also match elements of the alist that are strings or symbols rather than conses. In particular, @var{alist} can be a list of strings or symbols rather than an actual alist. diff --git a/etc/AUTHORS b/etc/AUTHORS index 9a4aaf6d55..dc5a28eac4 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -3682,7 +3682,7 @@ Prestoo Ten: changed screen.el Primoz Peterlin: changed TUTORIAL.sl -Przemyslaw Wojnowski: changed cl-lib-tests.el +Przemysław Wojnowski: changed cl-lib-tests.el Przemysław Wojnowski: wrote obarray-tests.el sgml-mode-tests.el and changed obarray.el sgml-mode.el diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index a1eb1d2001..60d07f9bc7 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1072,9 +1072,10 @@ are shown; the contents of those subgroups are initially hidden." ;;;###autoload (defun customize-mode (mode) - "Customize options related to the current major mode. -If a prefix \\[universal-argument] was given (or if the current major mode has no known group), -then prompt for the MODE to customize." + "Customize options related to a major or minor mode. +By default the current major mode is used. With a prefix +argument or if the current major mode has no known group, prompt +for the MODE to customize." (interactive (list (let ((completion-regexp-list '("-mode\\'")) @@ -1083,8 +1084,8 @@ then prompt for the MODE to customize." major-mode (intern (completing-read (if group - (format "Major mode (default %s): " major-mode) - "Major mode: ") + (format "Mode (default %s): " major-mode) + "Mode: ") obarray 'custom-group-of-mode t nil nil (if group (symbol-name major-mode)))))))) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 744474ca11..c653d73554 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1840,10 +1840,11 @@ If RECURSIVE, search recursively." (defvar shr-image-map) (autoload 'widget-convert-button "wid-edit") +(defvar widget-keymap) (defun mm-convert-shr-links () (let ((start (point-min)) - end) + end keymap) (while (and start (< start (point-max))) (when (setq start (text-property-not-all start (point-max) 'shr-url nil)) @@ -1851,10 +1852,16 @@ If RECURSIVE, search recursively." (widget-convert-button 'url-link start end :help-echo (get-text-property start 'help-echo) - ;;; FIXME Should only use the image map on images. - :keymap shr-image-map + :keymap (setq keymap (copy-keymap shr-map)) (get-text-property start 'shr-url)) - (put-text-property start end 'local-map nil) + ;; Remove keymap that `shr-urlify' adds. + (put-text-property start end 'keymap nil) + ;; Mask keys that launch `widget-button-click'. + ;; Those bindings are provided by `widget-keymap' + ;; that is a parent of `gnus-article-mode-map'. + (dolist (key (where-is-internal #'widget-button-click widget-keymap)) + (unless (lookup-key keymap key) + (define-key keymap key #'ignore))) (dolist (overlay (overlays-at start)) (overlay-put overlay 'face nil)) (setq start end))))) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 306b36ae95..ef7b77969e 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -307,19 +307,7 @@ The string is based on `url-privacy-level' and `url-user-agent'." ;; allows us to elide null lines directly, at the cost of making ;; the layout less clear. (setq request - ;; We used to concat directly, but if one of the strings happens - ;; to being multibyte (even if it only contains pure ASCII) then - ;; every string gets converted with `string-MAKE-multibyte' which - ;; turns the 127-255 codes into things like latin-1 accented chars - ;; (it would work right if it used `string-TO-multibyte' instead). - ;; So to avoid the problem we force every string to be unibyte. - (mapconcat - ;; FIXME: Instead of `string-AS-unibyte' we'd want - ;; `string-to-unibyte', so as to properly signal an error if one - ;; of the strings contains a multibyte char. - 'string-as-unibyte - (delq nil - (list + (concat ;; The request (or url-http-method "GET") " " (if using-proxy (url-recreate-url url-http-target-url) real-fname) @@ -398,7 +386,10 @@ The string is based on `url-privacy-level' and `url-user-agent'." "\r\n" ;; Any data url-http-data)) - "")) + ;; Bug#23750 + (unless (= (string-bytes request) + (length request)) + (error "Multibyte text in HTTP request: %s" request)) (url-http-debug "Request is: \n%s" request) request)) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 783ea89c6c..e6fe0196d8 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1434,7 +1434,8 @@ The difference to vc-do-command is that this function always invokes (let ((coding-system-for-read (or coding-system-for-read vc-git-log-output-coding-system)) (coding-system-for-write - (or coding-system-for-write vc-git-commits-coding-system))) + (or coding-system-for-write vc-git-commits-coding-system)) + (process-environment (cons "GIT_DIR" process-environment))) (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program ;; http://debbugs.gnu.org/16897 (unless (and (not (cdr-safe file-or-list)) @@ -1462,6 +1463,7 @@ The difference to vc-do-command is that this function always invokes (coding-system-for-write (or coding-system-for-write vc-git-commits-coding-system)) (process-environment (cons "PAGER=" process-environment))) + (push "GIT_DIR" process-environment) (apply 'process-file vc-git-program nil buffer nil command args))) (defun vc-git--out-ok (command &rest args) diff --git a/src/callproc.c b/src/callproc.c index 07297820ca..7008b916da 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1094,7 +1094,7 @@ add_env (char **env, char **new_env, char *string) char *p = *ep, *q = string; while (ok) { - if (*q != *p) + if (*p && *q != *p) break; if (*q == 0) /* The string is a lone variable name; keep it for now, we diff --git a/src/fns.c b/src/fns.c index 731f0a899a..dbee33aa9f 100644 --- a/src/fns.c +++ b/src/fns.c @@ -226,7 +226,7 @@ Like in `substring', negative values are counted from the end. The strings are compared by the numeric values of their characters. For instance, STR1 is "less than" STR2 if its first differing character has a smaller numeric value. If IGNORE-CASE is non-nil, -characters are converted to lower-case before comparing them. Unibyte +characters are converted to upper-case before comparing them. Unibyte strings are converted to multibyte for comparison. The value is t if the strings (or specified portions) match. diff --git a/src/minibuf.c b/src/minibuf.c index 7bad6f0e01..efce7e26b2 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1838,8 +1838,8 @@ DEFUN ("assoc-string", Fassoc_string, Sassoc_string, 2, 3, 0, This returns the first element of LIST whose car matches the string or symbol KEY, or nil if no match exists. When performing the comparison, symbols are first converted to strings, and unibyte -strings to multibyte. If the optional arg CASE-FOLD is non-nil, case -is ignored. +strings to multibyte. If the optional arg CASE-FOLD is non-nil, both +KEY and the elements of LIST are upcased for comparison. Unlike `assoc', KEY can also match an entry in LIST consisting of a single string, rather than a cons cell whose car is a string. */) diff --git a/test/ChangeLog.1 b/test/ChangeLog.1 index 3520f13df6..367ca74b7b 100644 --- a/test/ChangeLog.1 +++ b/test/ChangeLog.1 @@ -79,7 +79,7 @@ * indent/js-indent-first-initialiser-dynamic.js: New tests for `js-indent-first-initialiser'. -2015-03-10 Przemyslaw Wojnowski +2015-03-10 Przemysław Wojnowski * automated/cl-lib-tests.el: Add tests for plusp, second, ... (cl-lib-test-plusp, cl-lib-test-minusp) diff --git a/test/lisp/emulation/viper-tests.el b/test/lisp/emulation/viper-tests.el index 074dd63753..0d6095b2c9 100644 --- a/test/lisp/emulation/viper-tests.el +++ b/test/lisp/emulation/viper-tests.el @@ -38,7 +38,7 @@ after itself, although it will leave a buffer called ;; Select an expert-level for the same reason. (viper-expert-level 5) ;; viper loads this even with -q so make sure it's empty! - (viper-custom-file-name (make-temp-file "viper-tests")) + (viper-custom-file-name (make-temp-file "viper-tests" nil ".elc")) (before-buffer (current-buffer))) (unwind-protect (progn