aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Albinus2016-05-31 20:01:02 +0200
committerMichael Albinus2016-05-31 20:01:02 +0200
commit6dbbd98abb7c3327013dba57c058a6372b6628af (patch)
tree48ffd3a2de48c4fb2031a8082beac35c0f7f1f01
parent9878cf4d30589eed27ea609de3ebd9cb9c72d41f (diff)
parent8e22067d59f59ee3a39f5d4f95c27e8ea3c935d6 (diff)
downloademacs-6dbbd98abb7c3327013dba57c058a6372b6628af.tar.gz
emacs-6dbbd98abb7c3327013dba57c058a6372b6628af.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
-rw-r--r--doc/emacs/trouble.texi3
-rw-r--r--doc/misc/mh-e.texi147
-rw-r--r--etc/NEWS4
-rw-r--r--etc/TODO4
-rw-r--r--lisp/ChangeLog.172
-rw-r--r--lisp/desktop.el2
-rw-r--r--lisp/emacs-lisp/find-func.el6
-rw-r--r--lisp/files.el17
-rw-r--r--lisp/international/kinsoku.el6
-rw-r--r--lisp/language/japan-util.el3
-rw-r--r--lisp/mh-e/mh-compat.el23
-rw-r--r--lisp/mh-e/mh-mime.el10
-rw-r--r--lisp/mh-e/mh-show.el2
-rw-r--r--lisp/mh-e/mh-thread.el2
-rw-r--r--lisp/progmodes/elisp-mode.el3
-rw-r--r--lisp/recentf.el3
-rw-r--r--lisp/subr.el9
-rw-r--r--msdos/sed1v2.inp6
-rw-r--r--src/coding.c61
-rw-r--r--src/dired.c3
-rw-r--r--test/lisp/emulation/viper-tests.el10
-rw-r--r--test/lisp/subr-tests.el9
22 files changed, 192 insertions, 143 deletions
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 25f296e52c3..fbd13c8a58a 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1133,7 +1133,8 @@ The patch itself.
1133Use @samp{diff -u} to make your diffs. Diffs without context are hard 1133Use @samp{diff -u} to make your diffs. Diffs without context are hard
1134to install reliably. More than that, they are hard to study; we must 1134to install reliably. More than that, they are hard to study; we must
1135always study a patch to decide whether we want to install it. Context 1135always study a patch to decide whether we want to install it. Context
1136format is better than contextless diffs, but we prefer we unified format. 1136format is better than contextless diffs, but we prefer the unified
1137format.
1137 1138
1138If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when 1139If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when
1139making diffs of C code. This shows the name of the function that each 1140making diffs of C code. This shows the name of the function that each
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index c48e4a40ea9..2ff0dac35db 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -9,12 +9,12 @@
9@c %**end of header 9@c %**end of header
10 10
11@c Version of the software and manual. 11@c Version of the software and manual.
12@set VERSION 8.5 12@set VERSION 8.6
13@c Edition of the manual. It is either empty for the first edition or 13@c Edition of the manual. It is either empty for the first edition or
14@c has the form ", nth Edition" (without the quotes). 14@c has the form ", nth Edition" (without the quotes).
15@set EDITION 15@set EDITION
16@set UPDATED 2013-03-02 16@set UPDATED 2016-04-29
17@set UPDATE-MONTH March, 2013 17@set UPDATE-MONTH April, 2016
18 18
19@c Other variables. 19@c Other variables.
20@set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh 20@set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh
@@ -2527,8 +2527,7 @@ in the @cite{The Gnus Manual}.
2527@cindex HTML 2527@cindex HTML
2528@cindex Gnus 2528@cindex Gnus
2529 2529
2530MH-E can display messages that have been sent in HTML@footnote{This 2530MH-E can display messages that have been sent in HTML. The
2531feature depends on a version of Gnus that is at least 5.10.}. The
2532content of the message will appear in the MH-Show buffer as you would 2531content of the message will appear in the MH-Show buffer as you would
2533expect if the entire message is HTML, or there is an inline HTML body 2532expect if the entire message is HTML, or there is an inline HTML body
2534part. However, if there is an HTML body part that is an attachment, 2533part. However, if there is an HTML body part that is an attachment,
@@ -2549,86 +2548,107 @@ based upon the presence of a known browser on your system. If you wish
2549to use a different browser, then set this option accordingly. See the 2548to use a different browser, then set this option accordingly. See the
2550documentation for the browser you use for additional information on 2549documentation for the browser you use for additional information on
2551how to use it. In particular, find and disable the option to render 2550how to use it. In particular, find and disable the option to render
2552images as this can tip off spammers that the email address they have 2551images, as displaying remote images can tip off spammers that the
2553used is valid. 2552email address they have used is valid.
2554 2553
2555@vindex mm-text-html-renderer 2554@vindex mm-text-html-renderer
2556 2555
2557If you're confused about which @code{mm-text-html-renderer} to use, 2556If you're confused about which @code{mm-text-html-renderer} to use,
2558here's a brief description of each, sorted by popularity, that 2557here's a brief description of each, sorted by name.
2559includes the results of a quick poll of MH-E users from 2005-12-23.
2560 2558
2561@table @asis 2559@table @asis
2560@cindex browser, @samp{gnus-w3m}
2561@cindex @samp{gnus-w3m}
2562@cindex browser, @samp{w3m} 2562@cindex browser, @samp{w3m}
2563@cindex @samp{w3m} 2563@cindex @samp{w3m}
2564@kindex mouse-2 2564@item @samp{gnus-w3m}
2565@item @samp{w3m} 7 2565The @samp{gnus-w3m} browser requires an external program. It's quick,
2566The @samp{w3m} browser requires an external program. It's quick, 2566produces pretty nice output, and it highlights links. It renders
2567produces pretty nice output, and best of all, it's the only browser 2567@samp{–} and @samp{®} okay. It sometimes fails to wrap lines
2568that highlights links. These can be clicked with @kbd{mouse-2} to view 2568properly. It always downloads remote images.
2569the content of the link in @samp{w3m}. The @samp{w3m} browser handles
2570tables well and actually respects the table's width parameter (which
2571can cause text to wrap if the author didn't anticipate that the page
2572would be viewed in Emacs).
2573@c ------------------------- 2569@c -------------------------
2574@cindex browser, @samp{w3m-standalone} 2570@cindex browser, @samp{html2text}
2575@cindex @samp{w3m-standalone} 2571@cindex @samp{html2text}
2576@item @samp{w3m-standalone} 3 2572@item @samp{html2text}
2577This browser, along with @samp{nil} for the external browser, are the 2573The @samp{html2text} browser requires an external program. Some users
2578only choices that work without having to download a separate lisp 2574have reported problems with it, such as filling the entire message as
2579package or external program. This browser is quick, but does not show 2575if it were one paragraph, or displaying chunks of raw HTML.
2580links. It handles simple tables but some tables get rendered much
2581wider than the Emacs frame. This browser was the only one not to
2582handle the escape @samp{–} (it printed a @samp{?}), but it did
2583render @samp{®}.
2584@c ------------------------- 2576@c -------------------------
2585@cindex browser, @samp{links} 2577@cindex browser, @samp{links}
2586@cindex @samp{links} 2578@cindex @samp{links}
2587@item @samp{links} 1 2579@item @samp{links}
2588The @samp{links} browser requires an external program. It's quick, and 2580The @samp{links} browser requires an external program. It's quick, and
2589produces nicer output than @samp{lynx} on single column mails in 2581produces nicer output than @samp{lynx} on single column mails in
2590tables. However, it doesn't show links and it doesn't do as nice a job 2582tables. However, it doesn't show links and it doesn't do as nice a job
2591on multi-column tables as some lines wrap. At least it fits in 80 2583on multi-column tables as some lines wrap. It does do a good job of
2592columns and thus seems better than @samp{w3} and 2584fitting text within 80 columns. It appears to render special
2593@samp{w3m-standalone}. Converts escapes such as @samp{®} to (R). 2585characters using ASCII equivalents. For example, @samp{®} appears
2586as (R). It does not download images.
2594@c ------------------------- 2587@c -------------------------
2595@cindex browser, @samp{lynx} 2588@cindex browser, @samp{lynx}
2596@cindex @samp{lynx} 2589@cindex @samp{lynx}
2597@item @samp{lynx} 1 2590@item @samp{lynx}
2598The @samp{lynx} browser requires an external program. It's quick and 2591The @samp{lynx} browser requires an external program. It's quick and
2599produces pretty decent output but it doesn't show links. It doesn't 2592produces pretty decent output but it doesn't show links. It doesn't
2600seem to do multi-column tables which makes output much cleaner. It 2593seem to do multi-column tables which makes output much cleaner. It
2601centers the output and wraps long lines more than most. Handles 2594centers the output and wraps long lines more than most. It does not
2602@samp{®}. 2595always handle special characters like @samp{®} or @samp{–}.
2596It does not download images.
2603@c ------------------------- 2597@c -------------------------
2604@item @samp{nil} 1 2598@item @samp{nil}
2605This choice obviously requires an external browser. Like 2599This choice obviously requires an external browser. With this setting,
2606@samp{w3m-standalone}, it works out of the box. With this setting,
2607HTML messages have a button for the body part which you can view with 2600HTML messages have a button for the body part which you can view with
2608@kbd{K v} (@code{mh-folder-toggle-mime-part}). 2601@kbd{K v} (@code{mh-folder-toggle-mime-part}). Rendering of special
2609@c ------------------------- 2602characters and handling of remote images depends on your choice of
2610@cindex browser, @samp{w3} 2603browser.
2611@cindex @samp{w3} 2604@c -------------------------
2612@item @samp{w3} 0 2605@item @samp{shr}
2613This choice does not require an external program as all of the 2606@cindex @samp{shr}
2614rendering is done in lisp. You do need to get the package separately. 2607This choice does not require an external program, but it does require
2615This browser is @strong{slow}, and doesn't appear to have been updated 2608that Emacs be configured at build time to use @samp{libxml2}. It is
2616since 2001 and the author hasn't responded to my emails. It displays 2609fairly quick, it highlights links, and it supports HTML color
2617unknown tags instead of hiding them, so you get to see all the 2610declarations. It renders @samp{–} and @samp{®} okay. It
2618Microsoft crap in certain messages. Tends to make multi-column tables 2611sometimes truncates text, particularly if the message tries to have
2619wider than even a full-screen Emacs can handle. Like @samp{w3m}, you 2612fancy text layout. By default it does not download images; this
2620can follow links, but you have to find them first as they are not 2613behavior is controlled by the options @code{mm-html-blocked-images}
2621highlighted. Performs well on single-column tables and handles escapes 2614and @code{mm-html-inhibit-images}
2622such as @samp{®}. 2615@ifinfo
2616(@pxref{Display Customization,,,emacs-mime}).
2617@end ifinfo
2618@ifnotinfo
2619(see section @uref{http://www.gnus.org/manual/emacs-mime_6.html,
2620Display Customization} in the @cite{The Emacs MIME Manual}).
2621@end ifnotinfo
2623@c ------------------------- 2622@c -------------------------
2624@cindex browser, @samp{html2text} 2623@cindex browser, @samp{w3m}
2625@cindex @samp{html2text} 2624@cindex @samp{w3m}
2626@item @samp{html2text} 0 2625@kindex mouse-2
2627The @samp{html2text} browser requires an external program. I noticed 2626@item @samp{w3m}
2628that it can do some nasty things with simple HTML mails (like filling 2627The @samp{w3m} browser requires an external program. It's quick,
2629the entire message as if it were one paragraph, including signature). 2628produces pretty nice output, and it highlights links. These can be
2630On another message, it displayed half of the HTML tags for some 2629clicked with @kbd{mouse-2} to view the content of the link in
2631reason. 2630@samp{w3m}. The @samp{w3m} browser handles tables well and actually
2631respects the table's width parameter (which can cause text to wrap if
2632the author didn't anticipate that the page would be viewed in Emacs).
2633It does not download images by default; this behavior is controlled by
2634the option @code{mm-w3m-safe-url-regexp}
2635@ifinfo
2636(@pxref{Display Customization,,,emacs-mime}).
2637@end ifinfo
2638@ifnotinfo
2639(see section @uref{http://www.gnus.org/manual/emacs-mime_6.html,
2640Display Customization} in the @cite{The Emacs MIME Manual}).
2641@end ifnotinfo
2642@c -------------------------
2643@cindex browser, @samp{w3m-standalone}
2644@cindex @samp{w3m-standalone}
2645@cindex browser, @samp{w3m}
2646@cindex @samp{w3m}
2647@item @samp{w3m-standalone}
2648This browser is quick, but does not show links. It handles simple
2649tables but some tables get rendered much wider than the Emacs frame.
2650This browser renders @samp{–} and @samp{®} okay. It does not
2651download images.
2632@end table 2652@end table
2633 2653
2634@vindex mm-text-html-renderer 2654@vindex mm-text-html-renderer
@@ -2637,13 +2657,14 @@ For a couple more sources of information about
2637@code{mm-text-html-renderer}, 2657@code{mm-text-html-renderer},
2638@ifinfo 2658@ifinfo
2639@xref{Display Customization,,,emacs-mime}, and the documentation for 2659@xref{Display Customization,,,emacs-mime}, and the documentation for
2640the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus},). 2660the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus}).
2641@end ifinfo 2661@end ifinfo
2642@ifnotinfo 2662@ifnotinfo
2643see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, 2663see section @uref{http://www.gnus.org/manual/emacs-mime_6.html,
2644Display Customization} in the @cite{The Emacs MIME Manual} and the 2664Display Customization} in the @cite{The Emacs MIME Manual} and the
2645documentation for the Gnus command @kbd{W h} (see section 2665documentation for the Gnus command @kbd{W h} (see section
2646@uref{http://www.gnus.org/manual/gnus_99.html, Article Washing} in the 2666@uref{http://www.gnus.org/manual/gnus_48.html#Article-Washing, Article
2667Washing} in the
2647@cite{The Gnus Manual}). 2668@cite{The Gnus Manual}).
2648@end ifnotinfo 2669@end ifnotinfo
2649 2670
diff --git a/etc/NEWS b/etc/NEWS
index 80b8036bbd1..a72be53d0f3 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -854,6 +854,10 @@ recommended to do this as soon as you have firmly upgraded to Emacs
85425.1 (or later). Should you ever need to downgrade your desktop file 85425.1 (or later). Should you ever need to downgrade your desktop file
855to version 206, you can do this with 'C-u C-u M-x desktop-save'. 855to version 206, you can do this with 'C-u C-u M-x desktop-save'.
856 856
857---
858*** desktop-restore-in-current-display now defaults to t, not nil.
859That is, Emacs by default now restores frames into the current display.
860
857+++ 861+++
858** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'. 862** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
859It raises an error if a bookmark of that name already exists, 863It raises an error if a bookmark of that name already exists,
diff --git a/etc/TODO b/etc/TODO
index 599e74a442c..fe0e2ac2e06 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -1403,10 +1403,6 @@ elements
1403**** In rng-valid, instead of using modification-hooks and 1403**** In rng-valid, instead of using modification-hooks and
1404insert-behind-hooks on dependent overlays, use same technique as nxml-mode. 1404insert-behind-hooks on dependent overlays, use same technique as nxml-mode.
1405 1405
1406**** Port to XEmacs. Issues include: Unicode (XEmacs seems to be based on
1407Mule-UCS); overlays/text properties vs extents; absence of
1408fontification-functions hook.
1409
1410*** Fontification 1406*** Fontification
1411 1407
1412**** Allow face to depend on element qname, attribute qname, attribute 1408**** Allow face to depend on element qname, attribute qname, attribute
diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17
index 2f1957ad0ca..f0b2651f870 100644
--- a/lisp/ChangeLog.17
+++ b/lisp/ChangeLog.17
@@ -3737,7 +3737,7 @@
3737 * net/tramp.el (tramp-read-passwd): Ignore errors from `auth-source-*'. 3737 * net/tramp.el (tramp-read-passwd): Ignore errors from `auth-source-*'.
3738 3738
3739 * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use "\n" 3739 * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use "\n"
3740 as end-of-line delimeter for passwords, when running on MS Windows. 3740 as end-of-line delimiter for passwords, when running on MS Windows.
3741 3741
37422014-12-27 Stefan Monnier <monnier@iro.umontreal.ca> 37422014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
3743 3743
diff --git a/lisp/desktop.el b/lisp/desktop.el
index dba3277c091..1f460b7a3ed 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -408,7 +408,7 @@ See related options `desktop-restore-reuses-frames',
408 :group 'desktop 408 :group 'desktop
409 :version "24.4") 409 :version "24.4")
410 410
411(defcustom desktop-restore-in-current-display nil 411(defcustom desktop-restore-in-current-display t
412 "Controls how restoring of frames treats displays. 412 "Controls how restoring of frames treats displays.
413If t, restores frames into the current display. 413If t, restores frames into the current display.
414If nil, restores frames into their original displays (if possible). 414If nil, restores frames into their original displays (if possible).
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 71437ce89bd..4a7b7109106 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -404,8 +404,10 @@ signal an error.
404 404
405If VERBOSE is non-nil, and FUNCTION is an alias, display a 405If VERBOSE is non-nil, and FUNCTION is an alias, display a
406message about the whole chain of aliases." 406message about the whole chain of aliases."
407 (let ((def (if (symbolp function) 407 (let ((def (when (symbolp function)
408 (find-function-advised-original function))) 408 (or (fboundp function)
409 (signal 'void-function (list function)))
410 (find-function-advised-original function)))
409 aliases) 411 aliases)
410 ;; FIXME for completeness, it might be nice to print something like: 412 ;; FIXME for completeness, it might be nice to print something like:
411 ;; foo (which is advised), which is an alias for bar (which is advised). 413 ;; foo (which is advised), which is an alias for bar (which is advised).
diff --git a/lisp/files.el b/lisp/files.el
index b737c101588..db274e2782d 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4320,8 +4320,8 @@ the group would be preserved too."
4320 4320
4321(defun file-name-sans-extension (filename) 4321(defun file-name-sans-extension (filename)
4322 "Return FILENAME sans final \"extension\". 4322 "Return FILENAME sans final \"extension\".
4323The extension, in a file name, is the part that follows the last `.', 4323The extension, in a file name, is the part that begins with the last `.',
4324except that a leading `.', if any, doesn't count." 4324except that a leading `.' of the file name, if there is one, doesn't count."
4325 (save-match-data 4325 (save-match-data
4326 (let ((file (file-name-sans-versions (file-name-nondirectory filename))) 4326 (let ((file (file-name-sans-versions (file-name-nondirectory filename)))
4327 directory) 4327 directory)
@@ -4336,15 +4336,16 @@ except that a leading `.', if any, doesn't count."
4336 4336
4337(defun file-name-extension (filename &optional period) 4337(defun file-name-extension (filename &optional period)
4338 "Return FILENAME's final \"extension\". 4338 "Return FILENAME's final \"extension\".
4339The extension, in a file name, is the part that follows the last `.', 4339The extension, in a file name, is the part that begins with the last `.',
4340excluding version numbers and backup suffixes, 4340excluding version numbers and backup suffixes, except that a leading `.'
4341except that a leading `.', if any, doesn't count. 4341of the file name, if there is one, doesn't count.
4342Return nil for extensionless file names such as `foo'. 4342Return nil for extensionless file names such as `foo'.
4343Return the empty string for file names such as `foo.'. 4343Return the empty string for file names such as `foo.'.
4344 4344
4345If PERIOD is non-nil, then the returned value includes the period 4345By default, the returned value excludes the period that starts the
4346that delimits the extension, and if FILENAME has no extension, 4346extension, but if the optional argument PERIOD is non-nil, the period
4347the value is \"\"." 4347is included in the value, and in that case, if FILENAME has no
4348extension, the value is \"\"."
4348 (save-match-data 4349 (save-match-data
4349 (let ((file (file-name-sans-versions (file-name-nondirectory filename)))) 4350 (let ((file (file-name-sans-versions (file-name-nondirectory filename))))
4350 (if (and (string-match "\\.[^.]*\\'" file) 4351 (if (and (string-match "\\.[^.]*\\'" file)
diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el
index e9609f493b7..f5824d486bf 100644
--- a/lisp/international/kinsoku.el
+++ b/lisp/international/kinsoku.el
@@ -104,10 +104,10 @@ The value 0 means there's no limitation.")
104 ;; JISX0201 Katakana 104 ;; JISX0201 Katakana
105 "(I"(B" 105 "(I"(B"
106 ;; Japanese JISX0208 106 ;; Japanese JISX0208
107 "$B!F!H!J!L!N!P!R!T!V!X!Z!k!l!m!n!w!x(B\ 107 "$B!F!H!J!L!N!P!R!T!V!X!Z!k!l!m!n!w!x(B"
108$A!.!0#"#(!2!4!6!8!:!<!>!c!d!e#@!f!l(B"
109 ;; Chinese GB2312 108 ;; Chinese GB2312
110 "$A(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(h(B\ 109 "$A!.!0#"#(!2!4!6!8!:!<!>!c!d!e#@!f!l(B\
110$A(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(h(B\
111\$(0!>!@!B!D!F!H!J!L!N!P!R!T!V!X!Z!\!^!`!b(B" 111\$(0!>!@!B!D!F!H!J!L!N!P!R!T!V!X!Z!\!^!`!b(B"
112 ;; Chinese BIG5 112 ;; Chinese BIG5
113 "$(0!d!f!h!j!k!q!p"i"j"k"n"x$u$v$w$x$y$z${(B\ 113 "$(0!d!f!h!j!k!q!p"i"j"k"n"x$u$v$w$x$y$z${(B\
diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el
index f0d817b8b5e..939b70ab911 100644
--- a/lisp/language/japan-util.el
+++ b/lisp/language/japan-util.el
@@ -57,6 +57,7 @@
57 (?$B$C(B ?$B%C(B ?(I/(B) 57 (?$B$C(B ?$B%C(B ?(I/(B)
58 (?$B$c(B ?$B%c(B ?(I,(B) (?$B$e(B ?$B%e(B ?(I-(B) (?$B$g(B ?$B%g(B ?(I.(B) 58 (?$B$c(B ?$B%c(B ?(I,(B) (?$B$e(B ?$B%e(B ?(I-(B) (?$B$g(B ?$B%g(B ?(I.(B)
59 (?$B$n(B ?$B%n(B "(I\(B") 59 (?$B$n(B ?$B%n(B "(I\(B")
60 (?$B!5(B ?$B!3(B) (?$B!6(B ?$B!4(B)
60 ("$B$&!+(B" ?$B%t(B "(I3^(B") (nil ?$B%u(B "(I6(B") (nil ?$B%v(B "(I9(B")) 61 ("$B$&!+(B" ?$B%t(B "(I3^(B") (nil ?$B%u(B "(I6(B") (nil ?$B%v(B "(I9(B"))
61 "Japanese JISX0208 Kana character table. 62 "Japanese JISX0208 Kana character table.
62Each element is of the form (HIRAGANA KATAKANA HANKAKU-KATAKANA), where 63Each element is of the form (HIRAGANA KATAKANA HANKAKU-KATAKANA), where
@@ -146,7 +147,7 @@ and HANKAKU belongs to `japanese-jisx0201-kana'.")
146 (?$B#p(B . ?p) (?$B#q(B . ?q) (?$B#r(B . ?r) (?$B#s(B . ?s) (?$B#t(B . ?t) 147 (?$B#p(B . ?p) (?$B#q(B . ?q) (?$B#r(B . ?r) (?$B#s(B . ?s) (?$B#t(B . ?t)
147 (?$B#u(B . ?u) (?$B#v(B . ?v) (?$B#w(B . ?w) (?$B#x(B . ?x) (?$B#y(B . ?y) (?$B#z(B . ?z)) 148 (?$B#u(B . ?u) (?$B#v(B . ?v) (?$B#w(B . ?w) (?$B#x(B . ?x) (?$B#y(B . ?y) (?$B#z(B . ?z))
148 "Japanese JISX0208 alpha numeric character table. 149 "Japanese JISX0208 alpha numeric character table.
149Each element is of the form (ALPHA-NUMERIC ASCII), where ALPHA-NUMERIC 150Each element is of the form (ALPHA-NUMERIC . ASCII), where ALPHA-NUMERIC
150belongs to `japanese-jisx0208', ASCII belongs to `ascii'.") 151belongs to `japanese-jisx0208', ASCII belongs to `ascii'.")
151 152
152;; Put properties 'jisx0208 and 'ascii to each Japanese alpha numeric 153;; Put properties 'jisx0208 and 'ascii to each Japanese alpha numeric
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index 10a8b6e219c..21ff5cb2cb8 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -75,11 +75,24 @@ introduced in Emacs 22."
75 'cancel-timer 75 'cancel-timer
76 'delete-itimer)) 76 'delete-itimer))
77 77
78;; Emacs 24 renamed flet to cl-flet. 78;; Emacs 24 made flet obsolete and suggested either cl-flet or
79(defalias 'mh-cl-flet 79;; cl-letf. This macro is based upon gmm-flet from Gnus.
80 (if (fboundp 'cl-flet) 80(defmacro mh-flet (bindings &rest body)
81 'cl-flet 81 "Make temporary overriding function definitions.
82 'flet)) 82This is an analogue of a dynamically scoped `let' that operates on
83the function cell of FUNCs rather than their value cell.
84
85\(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
86 (if (fboundp 'cl-letf)
87 `(cl-letf ,(mapcar (lambda (binding)
88 `((symbol-function ',(car binding))
89 (lambda ,@(cdr binding))))
90 bindings)
91 ,@body)
92 `(flet ,bindings ,@body)))
93(put 'mh-flet 'lisp-indent-function 1)
94(put 'mh-flet 'edebug-form-spec
95 '((&rest (sexp sexp &rest form)) &rest form))
83 96
84(defun mh-display-color-cells (&optional display) 97(defun mh-display-color-cells (&optional display)
85 "Return the number of color cells supported by DISPLAY. 98 "Return the number of color cells supported by DISPLAY.
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index df3a42ec0f7..b8d700ddf5f 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -268,7 +268,7 @@ usually reads the file \"/etc/mailcap\"."
268 (buffer-read-only nil)) 268 (buffer-read-only nil))
269 (when (string-match "^[^% \t]+$" method) 269 (when (string-match "^[^% \t]+$" method)
270 (setq method (concat method " %s"))) 270 (setq method (concat method " %s")))
271 (mh-cl-flet 271 (mh-flet
272 ((mm-handle-set-external-undisplayer 272 ((mm-handle-set-external-undisplayer
273 (handle function) 273 (handle function)
274 (mh-handle-set-external-undisplayer folder handle function))) 274 (mh-handle-set-external-undisplayer folder handle function)))
@@ -525,7 +525,7 @@ parsed and then displayed."
525 (let ((handles ()) 525 (let ((handles ())
526 (folder mh-show-folder-buffer) 526 (folder mh-show-folder-buffer)
527 (raw-message-data (buffer-string))) 527 (raw-message-data (buffer-string)))
528 (mh-cl-flet 528 (mh-flet
529 ((mm-handle-set-external-undisplayer 529 ((mm-handle-set-external-undisplayer
530 (handle function) 530 (handle function)
531 (mh-handle-set-external-undisplayer folder handle function))) 531 (mh-handle-set-external-undisplayer folder handle function)))
@@ -1049,7 +1049,7 @@ attachment, the attachment is hidden."
1049 (function (get-text-property (point) 'mh-callback)) 1049 (function (get-text-property (point) 'mh-callback))
1050 (buffer-read-only nil) 1050 (buffer-read-only nil)
1051 (folder mh-show-folder-buffer)) 1051 (folder mh-show-folder-buffer))
1052 (mh-cl-flet 1052 (mh-flet
1053 ((mm-handle-set-external-undisplayer 1053 ((mm-handle-set-external-undisplayer
1054 (handle function) 1054 (handle function)
1055 (mh-handle-set-external-undisplayer folder handle function))) 1055 (mh-handle-set-external-undisplayer folder handle function)))
@@ -1070,7 +1070,7 @@ to click the MIME button."
1070 (mm-inline-media-tests mh-mm-inline-media-tests) 1070 (mm-inline-media-tests mh-mm-inline-media-tests)
1071 (data (get-text-property (point) 'mh-data)) 1071 (data (get-text-property (point) 'mh-data))
1072 (function (get-text-property (point) 'mh-callback))) 1072 (function (get-text-property (point) 'mh-callback)))
1073 (mh-cl-flet 1073 (mh-flet
1074 ((mm-handle-set-external-undisplayer 1074 ((mm-handle-set-external-undisplayer
1075 (handle func) 1075 (handle func)
1076 (mh-handle-set-external-undisplayer folder handle func))) 1076 (mh-handle-set-external-undisplayer folder handle func)))
@@ -1166,7 +1166,7 @@ this ;-)"
1166(defun mh-display-emphasis () 1166(defun mh-display-emphasis ()
1167 "Display graphical emphasis." 1167 "Display graphical emphasis."
1168 (when (and mh-graphical-emphasis-flag (mh-small-show-buffer-p)) 1168 (when (and mh-graphical-emphasis-flag (mh-small-show-buffer-p))
1169 (mh-cl-flet 1169 (mh-flet
1170 ((article-goto-body ())) ; shadow this function to do nothing 1170 ((article-goto-body ())) ; shadow this function to do nothing
1171 (save-excursion 1171 (save-excursion
1172 (goto-char (point-min)) 1172 (goto-char (point-min))
diff --git a/lisp/mh-e/mh-show.el b/lisp/mh-e/mh-show.el
index afe9812eea8..26e821696a8 100644
--- a/lisp/mh-e/mh-show.el
+++ b/lisp/mh-e/mh-show.el
@@ -900,7 +900,7 @@ See also `mh-folder-mode'.
900 (interactive) 900 (interactive)
901 ;; Don't allow Gnus to create buttons while highlighting, maybe this is bad 901 ;; Don't allow Gnus to create buttons while highlighting, maybe this is bad
902 ;; style? 902 ;; style?
903 (mh-cl-flet 903 (mh-flet
904 ((gnus-article-add-button (&rest args) nil)) 904 ((gnus-article-add-button (&rest args) nil))
905 (let* ((modified (buffer-modified-p)) 905 (let* ((modified (buffer-modified-p))
906 (gnus-article-buffer (buffer-name)) 906 (gnus-article-buffer (buffer-name))
diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el
index 5135e7e88fa..e6acdba8b30 100644
--- a/lisp/mh-e/mh-thread.el
+++ b/lisp/mh-e/mh-thread.el
@@ -647,7 +647,7 @@ Only information about messages in MSG-LIST are added to the tree."
647 647
648(defun mh-thread-set-tables (folder) 648(defun mh-thread-set-tables (folder)
649 "Use the tables of FOLDER in current buffer." 649 "Use the tables of FOLDER in current buffer."
650 (mh-cl-flet 650 (mh-flet
651 ((mh-get-table (symbol) 651 ((mh-get-table (symbol)
652 (with-current-buffer folder 652 (with-current-buffer folder
653 (symbol-value symbol)))) 653 (symbol-value symbol))))
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 2ad22ddd0ff..f3607911aa1 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -1566,7 +1566,8 @@ In the absence of INDEX, just call `eldoc-docstring-format-sym-doc'."
1566ARGLIST is either a string, or a list of strings or symbols." 1566ARGLIST is either a string, or a list of strings or symbols."
1567 (let ((str (cond ((stringp arglist) arglist) 1567 (let ((str (cond ((stringp arglist) arglist)
1568 ((not (listp arglist)) nil) 1568 ((not (listp arglist)) nil)
1569 (t (help--make-usage-docstring 'toto arglist))))) 1569 (t (substitute-command-keys
1570 (help--make-usage-docstring 'toto arglist))))))
1570 (if (and str (string-match "\\`([^ )]+ ?" str)) 1571 (if (and str (string-match "\\`([^ )]+ ?" str))
1571 (replace-match "(" t t str) 1572 (replace-match "(" t t str)
1572 str))) 1573 str)))
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 3321f2fe101..dc9489752fb 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -1186,6 +1186,9 @@ IGNORE other arguments."
1186 :format "%[%t\n%]" 1186 :format "%[%t\n%]"
1187 :help-echo ,(concat "Open " (cdr menu-element)) 1187 :help-echo ,(concat "Open " (cdr menu-element))
1188 :action recentf-open-files-action 1188 :action recentf-open-files-action
1189 ;; Override the (problematic) follow-link property of the
1190 ;; `link' widget (bug#22434).
1191 :follow-link nil
1189 ,(cdr menu-element)))) 1192 ,(cdr menu-element))))
1190 1193
1191(defun recentf-open-files-items (files) 1194(defun recentf-open-files-items (files)
diff --git a/lisp/subr.el b/lisp/subr.el
index 6e679e70f7e..b66ff288b7a 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -486,13 +486,16 @@ of course, also replace TO with a slightly larger value
486 (list from) 486 (list from)
487 (or inc (setq inc 1)) 487 (or inc (setq inc 1))
488 (when (zerop inc) (error "The increment can not be zero")) 488 (when (zerop inc) (error "The increment can not be zero"))
489 (let (seq (n 0) (next from)) 489 (let (seq (n 0) (next from) (last from))
490 (if (> inc 0) 490 (if (> inc 0)
491 (while (<= next to) 491 ;; The (>= next last) condition protects against integer
492 ;; overflow in computing NEXT.
493 (while (and (>= next last) (<= next to))
492 (setq seq (cons next seq) 494 (setq seq (cons next seq)
493 n (1+ n) 495 n (1+ n)
496 last next
494 next (+ from (* n inc)))) 497 next (+ from (* n inc))))
495 (while (>= next to) 498 (while (and (<= next last) (>= next to))
496 (setq seq (cons next seq) 499 (setq seq (cons next seq)
497 n (1+ n) 500 n (1+ n)
498 next (+ from (* n inc))))) 501 next (+ from (* n inc)))))
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index 383105a3f30..d0ab8afa218 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -155,7 +155,8 @@ s/ *@LIBXPM@//
155/^[Aa][Mm]_/s/@AM_V@/$(V)/ 155/^[Aa][Mm]_/s/@AM_V@/$(V)/
156/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/ 156/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
157/^AUTO_DEPEND *=/s/@AUTO_DEPEND@/yes/ 157/^AUTO_DEPEND *=/s/@AUTO_DEPEND@/yes/
158/^PAXCTL_if_present *=/s/=.*$/=@Rem/ 158/^PAXCTL_dumped *=/s/=.*$/=/
159/^PAXCTL_notdumped *=/s/=.*$/=/
159/^lisp\.mk:/,/^$/c\ 160/^lisp\.mk:/,/^$/c\
160lisp.mk: $(lispsource)/loadup.el\ 161lisp.mk: $(lispsource)/loadup.el\
161 @rm -f $@\ 162 @rm -f $@\
@@ -174,7 +175,8 @@ lisp.mk: $(lispsource)/loadup.el\
174/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/b-emacs$(EXEEXT)/ 175/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/b-emacs$(EXEEXT)/
175/^ if test -f/,/^ fi$/c\ 176/^ if test -f/,/^ fi$/c\
176 command.com /c if exist .gdbinit rm -f _gdbinit 177 command.com /c if exist .gdbinit rm -f _gdbinit
177/^ *\$(PAXCTL_if_present) -zex/d 178/^ *ifneq (\$(PAXCTL_notdumped),)/,/^ *endif/d
179/^ *ifneq (\$(PAXCTL_dumped),)/,/^ *endif/d
178/^ *ln /s/ln /cp / 180/^ *ln /s/ln /cp /
179/^ *\$(SETFATTR_if_present) -n/d 181/^ *\$(SETFATTR_if_present) -n/d
180/^ fi/d 182/^ fi/d
diff --git a/src/coding.c b/src/coding.c
index 9d75ef93102..a28fec1efe4 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -6947,18 +6947,21 @@ get_translation_table (Lisp_Object attrs, bool encodep, int *max_lookup)
6947 6947
6948 6948
6949/* Return a translation of character(s) at BUF according to TRANS. 6949/* Return a translation of character(s) at BUF according to TRANS.
6950 TRANS is TO-CHAR or ((FROM . TO) ...) where 6950 TRANS is TO-CHAR, [TO-CHAR ...], or ((FROM . TO) ...) where FROM =
6951 FROM = [FROM-CHAR ...], TO is TO-CHAR or [TO-CHAR ...]. 6951 [FROM-CHAR ...], TO is TO-CHAR or [TO-CHAR ...]. The return value
6952 The return value is TO-CHAR or ([FROM-CHAR ...] . TO) if a 6952 is TO-CHAR or [TO-CHAR ...] if a translation is found, Qnil if not
6953 translation is found, and Qnil if not found.. 6953 found, or Qt if BUF is too short to lookup characters in FROM. As
6954 If BUF is too short to lookup characters in FROM, return Qt. */ 6954 a side effect, if a translation is found, *NCHARS is set to the
6955 number of characters being translated. */
6955 6956
6956static Lisp_Object 6957static Lisp_Object
6957get_translation (Lisp_Object trans, int *buf, int *buf_end) 6958get_translation (Lisp_Object trans, int *buf, int *buf_end, ptrdiff_t *nchars)
6958{ 6959{
6959 6960 if (INTEGERP (trans) || VECTORP (trans))
6960 if (INTEGERP (trans)) 6961 {
6961 return trans; 6962 *nchars = 1;
6963 return trans;
6964 }
6962 for (; CONSP (trans); trans = XCDR (trans)) 6965 for (; CONSP (trans); trans = XCDR (trans))
6963 { 6966 {
6964 Lisp_Object val = XCAR (trans); 6967 Lisp_Object val = XCAR (trans);
@@ -6974,7 +6977,10 @@ get_translation (Lisp_Object trans, int *buf, int *buf_end)
6974 break; 6977 break;
6975 } 6978 }
6976 if (i == len) 6979 if (i == len)
6977 return val; 6980 {
6981 *nchars = len;
6982 return XCDR (val);
6983 }
6978 } 6984 }
6979 return Qnil; 6985 return Qnil;
6980} 6986}
@@ -7017,20 +7023,13 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table,
7017 LOOKUP_TRANSLATION_TABLE (translation_table, c, trans); 7023 LOOKUP_TRANSLATION_TABLE (translation_table, c, trans);
7018 if (! NILP (trans)) 7024 if (! NILP (trans))
7019 { 7025 {
7020 trans = get_translation (trans, buf, buf_end); 7026 trans = get_translation (trans, buf, buf_end, &from_nchars);
7021 if (INTEGERP (trans)) 7027 if (INTEGERP (trans))
7022 c = XINT (trans); 7028 c = XINT (trans);
7023 else if (CONSP (trans)) 7029 else if (VECTORP (trans))
7024 { 7030 {
7025 from_nchars = ASIZE (XCAR (trans)); 7031 to_nchars = ASIZE (trans);
7026 trans = XCDR (trans); 7032 c = XINT (AREF (trans, 0));
7027 if (INTEGERP (trans))
7028 c = XINT (trans);
7029 else
7030 {
7031 to_nchars = ASIZE (trans);
7032 c = XINT (AREF (trans, 0));
7033 }
7034 } 7033 }
7035 else if (EQ (trans, Qt) && ! last_block) 7034 else if (EQ (trans, Qt) && ! last_block)
7036 break; 7035 break;
@@ -7671,22 +7670,16 @@ consume_chars (struct coding_system *coding, Lisp_Object translation_table,
7671 for (i = 1; i < max_lookup && p < src_end; i++) 7670 for (i = 1; i < max_lookup && p < src_end; i++)
7672 lookup_buf[i] = STRING_CHAR_ADVANCE (p); 7671 lookup_buf[i] = STRING_CHAR_ADVANCE (p);
7673 lookup_buf_end = lookup_buf + i; 7672 lookup_buf_end = lookup_buf + i;
7674 trans = get_translation (trans, lookup_buf, lookup_buf_end); 7673 trans = get_translation (trans, lookup_buf, lookup_buf_end,
7674 &from_nchars);
7675 if (INTEGERP (trans)) 7675 if (INTEGERP (trans))
7676 c = XINT (trans); 7676 c = XINT (trans);
7677 else if (CONSP (trans)) 7677 else if (VECTORP (trans))
7678 { 7678 {
7679 from_nchars = ASIZE (XCAR (trans)); 7679 to_nchars = ASIZE (trans);
7680 trans = XCDR (trans); 7680 if (buf_end - buf < to_nchars)
7681 if (INTEGERP (trans)) 7681 break;
7682 c = XINT (trans); 7682 c = XINT (AREF (trans, 0));
7683 else
7684 {
7685 to_nchars = ASIZE (trans);
7686 if (buf_end - buf < to_nchars)
7687 break;
7688 c = XINT (AREF (trans, 0));
7689 }
7690 } 7683 }
7691 else 7684 else
7692 break; 7685 break;
diff --git a/src/dired.c b/src/dired.c
index 2dffbb756ac..e468147e8b2 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -416,8 +416,7 @@ DEFUN ("file-name-all-completions", Ffile_name_all_completions,
416These are all file names in directory DIRECTORY which begin with FILE. 416These are all file names in directory DIRECTORY which begin with FILE.
417 417
418This function ignores some of the possible completions as determined 418This function ignores some of the possible completions as determined
419by the variables `completion-regexp-list' and 419by `completion-regexp-list', which see. `completion-regexp-list'
420`completion-ignored-extensions', which see. `completion-regexp-list'
421is matched against file and directory names relative to DIRECTORY. */) 420is matched against file and directory names relative to DIRECTORY. */)
422 (Lisp_Object file, Lisp_Object directory) 421 (Lisp_Object file, Lisp_Object directory)
423{ 422{
diff --git a/test/lisp/emulation/viper-tests.el b/test/lisp/emulation/viper-tests.el
index 8b30f050935..e2c39b3c3de 100644
--- a/test/lisp/emulation/viper-tests.el
+++ b/test/lisp/emulation/viper-tests.el
@@ -33,7 +33,7 @@ after itself, although it will leave a buffer called
33 (let ( 33 (let (
34 ;; Viper just turns itself off during batch use. 34 ;; Viper just turns itself off during batch use.
35 (noninteractive nil) 35 (noninteractive nil)
36 ;; Switch off start up message or it will chew the key presses 36 ;; Switch off start up message or it will chew the key presses.
37 (viper-inhibit-startup-message 't) 37 (viper-inhibit-startup-message 't)
38 ;; Select an expert-level for the same reason. 38 ;; Select an expert-level for the same reason.
39 (viper-expert-level 5) 39 (viper-expert-level 5)
@@ -42,7 +42,7 @@ after itself, although it will leave a buffer called
42 (before-buffer (current-buffer))) 42 (before-buffer (current-buffer)))
43 (unwind-protect 43 (unwind-protect
44 (progn 44 (progn
45 ;; viper-mode is essentially global, so set it here 45 ;; viper-mode is essentially global, so set it here.
46 (viper-mode) 46 (viper-mode)
47 ;; We must switch to buffer because we are using a keyboard macro 47 ;; We must switch to buffer because we are using a keyboard macro
48 ;; which appears to not go to the current-buffer but what ever is 48 ;; which appears to not go to the current-buffer but what ever is
@@ -54,16 +54,16 @@ after itself, although it will leave a buffer called
54 (erase-buffer) 54 (erase-buffer)
55 ;; The new buffer fails to enter vi state so set it. 55 ;; The new buffer fails to enter vi state so set it.
56 (viper-change-state-to-vi) 56 (viper-change-state-to-vi)
57 ;; Run the macro 57 ;; Run the macro.
58 (execute-kbd-macro kmacro) 58 (execute-kbd-macro kmacro)
59 (let ((rtn 59 (let ((rtn
60 (buffer-substring-no-properties 60 (buffer-substring-no-properties
61 (point-min) 61 (point-min)
62 (point-max)))) 62 (point-max))))
63 ;; Kill the buffer iff the macro succeeds 63 ;; Kill the buffer iff the macro succeeds.
64 (kill-buffer) 64 (kill-buffer)
65 rtn)) 65 rtn))
66 ;; switch everthing off and restore the buffer 66 ;; Switch everything off and restore the buffer.
67 (toggle-viper-mode) 67 (toggle-viper-mode)
68 (switch-to-buffer before-buffer)))) 68 (switch-to-buffer before-buffer))))
69 69
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index 7906a207a96..ce212903c9d 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -61,6 +61,15 @@
61 (quote 61 (quote
62 (0 font-lock-keyword-face)))))))) 62 (0 font-lock-keyword-face))))))))
63 63
64(ert-deftest number-sequence-test ()
65 (should (= (length
66 (number-sequence (1- most-positive-fixnum) most-positive-fixnum))
67 2))
68 (should (= (length
69 (number-sequence
70 (1+ most-negative-fixnum) most-negative-fixnum -1))
71 2)))
72
64(ert-deftest string-comparison-test () 73(ert-deftest string-comparison-test ()
65 (should (string-lessp "abc" "acb")) 74 (should (string-lessp "abc" "acb"))
66 (should (string-lessp "aBc" "abc")) 75 (should (string-lessp "aBc" "abc"))