diff options
| author | Michael Albinus | 2016-05-31 20:01:02 +0200 |
|---|---|---|
| committer | Michael Albinus | 2016-05-31 20:01:02 +0200 |
| commit | 6dbbd98abb7c3327013dba57c058a6372b6628af (patch) | |
| tree | 48ffd3a2de48c4fb2031a8082beac35c0f7f1f01 | |
| parent | 9878cf4d30589eed27ea609de3ebd9cb9c72d41f (diff) | |
| parent | 8e22067d59f59ee3a39f5d4f95c27e8ea3c935d6 (diff) | |
| download | emacs-6dbbd98abb7c3327013dba57c058a6372b6628af.tar.gz emacs-6dbbd98abb7c3327013dba57c058a6372b6628af.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
| -rw-r--r-- | doc/emacs/trouble.texi | 3 | ||||
| -rw-r--r-- | doc/misc/mh-e.texi | 147 | ||||
| -rw-r--r-- | etc/NEWS | 4 | ||||
| -rw-r--r-- | etc/TODO | 4 | ||||
| -rw-r--r-- | lisp/ChangeLog.17 | 2 | ||||
| -rw-r--r-- | lisp/desktop.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/find-func.el | 6 | ||||
| -rw-r--r-- | lisp/files.el | 17 | ||||
| -rw-r--r-- | lisp/international/kinsoku.el | 6 | ||||
| -rw-r--r-- | lisp/language/japan-util.el | 3 | ||||
| -rw-r--r-- | lisp/mh-e/mh-compat.el | 23 | ||||
| -rw-r--r-- | lisp/mh-e/mh-mime.el | 10 | ||||
| -rw-r--r-- | lisp/mh-e/mh-show.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-thread.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/elisp-mode.el | 3 | ||||
| -rw-r--r-- | lisp/recentf.el | 3 | ||||
| -rw-r--r-- | lisp/subr.el | 9 | ||||
| -rw-r--r-- | msdos/sed1v2.inp | 6 | ||||
| -rw-r--r-- | src/coding.c | 61 | ||||
| -rw-r--r-- | src/dired.c | 3 | ||||
| -rw-r--r-- | test/lisp/emulation/viper-tests.el | 10 | ||||
| -rw-r--r-- | test/lisp/subr-tests.el | 9 |
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. | |||
| 1133 | Use @samp{diff -u} to make your diffs. Diffs without context are hard | 1133 | Use @samp{diff -u} to make your diffs. Diffs without context are hard |
| 1134 | to install reliably. More than that, they are hard to study; we must | 1134 | to install reliably. More than that, they are hard to study; we must |
| 1135 | always study a patch to decide whether we want to install it. Context | 1135 | always study a patch to decide whether we want to install it. Context |
| 1136 | format is better than contextless diffs, but we prefer we unified format. | 1136 | format is better than contextless diffs, but we prefer the unified |
| 1137 | format. | ||
| 1137 | 1138 | ||
| 1138 | If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when | 1139 | If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when |
| 1139 | making diffs of C code. This shows the name of the function that each | 1140 | making 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 | ||
| 2530 | MH-E can display messages that have been sent in HTML@footnote{This | 2530 | MH-E can display messages that have been sent in HTML. The |
| 2531 | feature depends on a version of Gnus that is at least 5.10.}. The | ||
| 2532 | content of the message will appear in the MH-Show buffer as you would | 2531 | content of the message will appear in the MH-Show buffer as you would |
| 2533 | expect if the entire message is HTML, or there is an inline HTML body | 2532 | expect if the entire message is HTML, or there is an inline HTML body |
| 2534 | part. However, if there is an HTML body part that is an attachment, | 2533 | part. 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 | |||
| 2549 | to use a different browser, then set this option accordingly. See the | 2548 | to use a different browser, then set this option accordingly. See the |
| 2550 | documentation for the browser you use for additional information on | 2549 | documentation for the browser you use for additional information on |
| 2551 | how to use it. In particular, find and disable the option to render | 2550 | how to use it. In particular, find and disable the option to render |
| 2552 | images as this can tip off spammers that the email address they have | 2551 | images, as displaying remote images can tip off spammers that the |
| 2553 | used is valid. | 2552 | email address they have used is valid. |
| 2554 | 2553 | ||
| 2555 | @vindex mm-text-html-renderer | 2554 | @vindex mm-text-html-renderer |
| 2556 | 2555 | ||
| 2557 | If you're confused about which @code{mm-text-html-renderer} to use, | 2556 | If you're confused about which @code{mm-text-html-renderer} to use, |
| 2558 | here's a brief description of each, sorted by popularity, that | 2557 | here's a brief description of each, sorted by name. |
| 2559 | includes 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 | 2565 | The @samp{gnus-w3m} browser requires an external program. It's quick, |
| 2566 | The @samp{w3m} browser requires an external program. It's quick, | 2566 | produces pretty nice output, and it highlights links. It renders |
| 2567 | produces pretty nice output, and best of all, it's the only browser | 2567 | @samp{–} and @samp{®} okay. It sometimes fails to wrap lines |
| 2568 | that highlights links. These can be clicked with @kbd{mouse-2} to view | 2568 | properly. It always downloads remote images. |
| 2569 | the content of the link in @samp{w3m}. The @samp{w3m} browser handles | ||
| 2570 | tables well and actually respects the table's width parameter (which | ||
| 2571 | can cause text to wrap if the author didn't anticipate that the page | ||
| 2572 | would 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} |
| 2577 | This browser, along with @samp{nil} for the external browser, are the | 2573 | The @samp{html2text} browser requires an external program. Some users |
| 2578 | only choices that work without having to download a separate lisp | 2574 | have reported problems with it, such as filling the entire message as |
| 2579 | package or external program. This browser is quick, but does not show | 2575 | if it were one paragraph, or displaying chunks of raw HTML. |
| 2580 | links. It handles simple tables but some tables get rendered much | ||
| 2581 | wider than the Emacs frame. This browser was the only one not to | ||
| 2582 | handle the escape @samp{–} (it printed a @samp{?}), but it did | ||
| 2583 | render @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} |
| 2588 | The @samp{links} browser requires an external program. It's quick, and | 2580 | The @samp{links} browser requires an external program. It's quick, and |
| 2589 | produces nicer output than @samp{lynx} on single column mails in | 2581 | produces nicer output than @samp{lynx} on single column mails in |
| 2590 | tables. However, it doesn't show links and it doesn't do as nice a job | 2582 | tables. However, it doesn't show links and it doesn't do as nice a job |
| 2591 | on multi-column tables as some lines wrap. At least it fits in 80 | 2583 | on multi-column tables as some lines wrap. It does do a good job of |
| 2592 | columns and thus seems better than @samp{w3} and | 2584 | fitting text within 80 columns. It appears to render special |
| 2593 | @samp{w3m-standalone}. Converts escapes such as @samp{®} to (R). | 2585 | characters using ASCII equivalents. For example, @samp{®} appears |
| 2586 | as (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} |
| 2598 | The @samp{lynx} browser requires an external program. It's quick and | 2591 | The @samp{lynx} browser requires an external program. It's quick and |
| 2599 | produces pretty decent output but it doesn't show links. It doesn't | 2592 | produces pretty decent output but it doesn't show links. It doesn't |
| 2600 | seem to do multi-column tables which makes output much cleaner. It | 2593 | seem to do multi-column tables which makes output much cleaner. It |
| 2601 | centers the output and wraps long lines more than most. Handles | 2594 | centers the output and wraps long lines more than most. It does not |
| 2602 | @samp{®}. | 2595 | always handle special characters like @samp{®} or @samp{–}. |
| 2596 | It does not download images. | ||
| 2603 | @c ------------------------- | 2597 | @c ------------------------- |
| 2604 | @item @samp{nil} 1 | 2598 | @item @samp{nil} |
| 2605 | This choice obviously requires an external browser. Like | 2599 | This choice obviously requires an external browser. With this setting, |
| 2606 | @samp{w3m-standalone}, it works out of the box. With this setting, | ||
| 2607 | HTML messages have a button for the body part which you can view with | 2600 | HTML 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 ------------------------- | 2602 | characters and handling of remote images depends on your choice of |
| 2610 | @cindex browser, @samp{w3} | 2603 | browser. |
| 2611 | @cindex @samp{w3} | 2604 | @c ------------------------- |
| 2612 | @item @samp{w3} 0 | 2605 | @item @samp{shr} |
| 2613 | This choice does not require an external program as all of the | 2606 | @cindex @samp{shr} |
| 2614 | rendering is done in lisp. You do need to get the package separately. | 2607 | This choice does not require an external program, but it does require |
| 2615 | This browser is @strong{slow}, and doesn't appear to have been updated | 2608 | that Emacs be configured at build time to use @samp{libxml2}. It is |
| 2616 | since 2001 and the author hasn't responded to my emails. It displays | 2609 | fairly quick, it highlights links, and it supports HTML color |
| 2617 | unknown tags instead of hiding them, so you get to see all the | 2610 | declarations. It renders @samp{–} and @samp{®} okay. It |
| 2618 | Microsoft crap in certain messages. Tends to make multi-column tables | 2611 | sometimes truncates text, particularly if the message tries to have |
| 2619 | wider than even a full-screen Emacs can handle. Like @samp{w3m}, you | 2612 | fancy text layout. By default it does not download images; this |
| 2620 | can follow links, but you have to find them first as they are not | 2613 | behavior is controlled by the options @code{mm-html-blocked-images} |
| 2621 | highlighted. Performs well on single-column tables and handles escapes | 2614 | and @code{mm-html-inhibit-images} |
| 2622 | such 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, | ||
| 2620 | Display 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 |
| 2627 | The @samp{html2text} browser requires an external program. I noticed | 2626 | @item @samp{w3m} |
| 2628 | that it can do some nasty things with simple HTML mails (like filling | 2627 | The @samp{w3m} browser requires an external program. It's quick, |
| 2629 | the entire message as if it were one paragraph, including signature). | 2628 | produces pretty nice output, and it highlights links. These can be |
| 2630 | On another message, it displayed half of the HTML tags for some | 2629 | clicked with @kbd{mouse-2} to view the content of the link in |
| 2631 | reason. | 2630 | @samp{w3m}. The @samp{w3m} browser handles tables well and actually |
| 2631 | respects the table's width parameter (which can cause text to wrap if | ||
| 2632 | the author didn't anticipate that the page would be viewed in Emacs). | ||
| 2633 | It does not download images by default; this behavior is controlled by | ||
| 2634 | the 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, | ||
| 2640 | Display 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} | ||
| 2648 | This browser is quick, but does not show links. It handles simple | ||
| 2649 | tables but some tables get rendered much wider than the Emacs frame. | ||
| 2650 | This browser renders @samp{–} and @samp{®} okay. It does not | ||
| 2651 | download 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 |
| 2640 | the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus},). | 2660 | the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus}). |
| 2641 | @end ifinfo | 2661 | @end ifinfo |
| 2642 | @ifnotinfo | 2662 | @ifnotinfo |
| 2643 | see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, | 2663 | see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, |
| 2644 | Display Customization} in the @cite{The Emacs MIME Manual} and the | 2664 | Display Customization} in the @cite{The Emacs MIME Manual} and the |
| 2645 | documentation for the Gnus command @kbd{W h} (see section | 2665 | documentation 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 |
| 2667 | Washing} in the | ||
| 2647 | @cite{The Gnus Manual}). | 2668 | @cite{The Gnus Manual}). |
| 2648 | @end ifnotinfo | 2669 | @end ifnotinfo |
| 2649 | 2670 | ||
| @@ -854,6 +854,10 @@ recommended to do this as soon as you have firmly upgraded to Emacs | |||
| 854 | 25.1 (or later). Should you ever need to downgrade your desktop file | 854 | 25.1 (or later). Should you ever need to downgrade your desktop file |
| 855 | to version 206, you can do this with 'C-u C-u M-x desktop-save'. | 855 | to 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. | ||
| 859 | That 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'. |
| 859 | It raises an error if a bookmark of that name already exists, | 863 | It raises an error if a bookmark of that name already exists, |
| @@ -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 |
| 1404 | insert-behind-hooks on dependent overlays, use same technique as nxml-mode. | 1404 | insert-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 | ||
| 1407 | Mule-UCS); overlays/text properties vs extents; absence of | ||
| 1408 | fontification-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 | ||
| 3742 | 2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca> | 3742 | 2014-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. |
| 413 | If t, restores frames into the current display. | 413 | If t, restores frames into the current display. |
| 414 | If nil, restores frames into their original displays (if possible). | 414 | If 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 | ||
| 405 | If VERBOSE is non-nil, and FUNCTION is an alias, display a | 405 | If VERBOSE is non-nil, and FUNCTION is an alias, display a |
| 406 | message about the whole chain of aliases." | 406 | message 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\". |
| 4323 | The extension, in a file name, is the part that follows the last `.', | 4323 | The extension, in a file name, is the part that begins with the last `.', |
| 4324 | except that a leading `.', if any, doesn't count." | 4324 | except 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\". |
| 4339 | The extension, in a file name, is the part that follows the last `.', | 4339 | The extension, in a file name, is the part that begins with the last `.', |
| 4340 | excluding version numbers and backup suffixes, | 4340 | excluding version numbers and backup suffixes, except that a leading `.' |
| 4341 | except that a leading `.', if any, doesn't count. | 4341 | of the file name, if there is one, doesn't count. |
| 4342 | Return nil for extensionless file names such as `foo'. | 4342 | Return nil for extensionless file names such as `foo'. |
| 4343 | Return the empty string for file names such as `foo.'. | 4343 | Return the empty string for file names such as `foo.'. |
| 4344 | 4344 | ||
| 4345 | If PERIOD is non-nil, then the returned value includes the period | 4345 | By default, the returned value excludes the period that starts the |
| 4346 | that delimits the extension, and if FILENAME has no extension, | 4346 | extension, but if the optional argument PERIOD is non-nil, the period |
| 4347 | the value is \"\"." | 4347 | is included in the value, and in that case, if FILENAME has no |
| 4348 | extension, 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. |
| 62 | Each element is of the form (HIRAGANA KATAKANA HANKAKU-KATAKANA), where | 63 | Each 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. |
| 149 | Each element is of the form (ALPHA-NUMERIC ASCII), where ALPHA-NUMERIC | 150 | Each element is of the form (ALPHA-NUMERIC . ASCII), where ALPHA-NUMERIC |
| 150 | belongs to `japanese-jisx0208', ASCII belongs to `ascii'.") | 151 | belongs 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)) | 82 | This is an analogue of a dynamically scoped `let' that operates on |
| 83 | the 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'." | |||
| 1566 | ARGLIST is either a string, or a list of strings or symbols." | 1566 | ARGLIST 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\ |
| 160 | lisp.mk: $(lispsource)/loadup.el\ | 161 | lisp.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 | ||
| 6956 | static Lisp_Object | 6957 | static Lisp_Object |
| 6957 | get_translation (Lisp_Object trans, int *buf, int *buf_end) | 6958 | get_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, | |||
| 416 | These are all file names in directory DIRECTORY which begin with FILE. | 416 | These are all file names in directory DIRECTORY which begin with FILE. |
| 417 | 417 | ||
| 418 | This function ignores some of the possible completions as determined | 418 | This function ignores some of the possible completions as determined |
| 419 | by the variables `completion-regexp-list' and | 419 | by `completion-regexp-list', which see. `completion-regexp-list' |
| 420 | `completion-ignored-extensions', which see. `completion-regexp-list' | ||
| 421 | is matched against file and directory names relative to DIRECTORY. */) | 420 | is 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")) |