diff options
| author | Karoly Lorentey | 2003-12-30 17:05:05 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2003-12-30 17:05:05 +0000 |
| commit | 7c3a26158711d76ee77b0bd75fa9df56db5eb57d (patch) | |
| tree | f808bf77a5b47ce2c8aec0a31187626860d566b6 /lisp | |
| parent | c1c63edb7907e35085f2d61507e1047db85d52c7 (diff) | |
| parent | 8a37230a70acc8943ba45f52504179ddcc1a5468 (diff) | |
| download | emacs-7c3a26158711d76ee77b0bd75fa9df56db5eb57d.tar.gz emacs-7c3a26158711d76ee77b0bd75fa9df56db5eb57d.zip | |
Merged in changes from CVS head
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-5
Add =cvs-sync-make-log script
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-6
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-7
Use absolute tla-tools filenames in =cvs-sync-make-log
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-8
Use proper arch-tag: syntax for lispintro/texinfo.tex
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-9
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-24
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 213 | ||||
| -rw-r--r-- | lisp/arc-mode.el | 2 | ||||
| -rw-r--r-- | lisp/autorevert.el | 5 | ||||
| -rw-r--r-- | lisp/bookmark.el | 5 | ||||
| -rw-r--r-- | lisp/comint.el | 139 | ||||
| -rw-r--r-- | lisp/custom.el | 12 | ||||
| -rw-r--r-- | lisp/emacs-lisp/easymenu.el | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/tcover-ses.el (renamed from lisp/emacs-lisp/testcover-ses.el) | 0 | ||||
| -rw-r--r-- | lisp/emacs-lisp/tcover-unsafep.el (renamed from lisp/emacs-lisp/testcover-unsafep.el) | 0 | ||||
| -rw-r--r-- | lisp/filecache.el | 29 | ||||
| -rw-r--r-- | lisp/files.el | 8 | ||||
| -rw-r--r-- | lisp/find-dired.el | 21 | ||||
| -rw-r--r-- | lisp/font-lock.el | 3 | ||||
| -rw-r--r-- | lisp/frame.el | 25 | ||||
| -rw-r--r-- | lisp/generic-x.el | 33 | ||||
| -rw-r--r-- | lisp/generic.el | 4 | ||||
| -rw-r--r-- | lisp/info-look.el | 2 | ||||
| -rw-r--r-- | lisp/info.el | 2 | ||||
| -rw-r--r-- | lisp/international/mule-cmds.el | 22 | ||||
| -rw-r--r-- | lisp/language/cyrillic.el | 23 | ||||
| -rw-r--r-- | lisp/mail/rfc822.el | 24 | ||||
| -rw-r--r-- | lisp/mail/rmail.el | 53 | ||||
| -rw-r--r-- | lisp/net/ange-ftp.el | 7 | ||||
| -rw-r--r-- | lisp/net/zone-mode.el | 2 | ||||
| -rw-r--r-- | lisp/obsolete/sc.el | 2 | ||||
| -rw-r--r-- | lisp/play/handwrite.el | 3 | ||||
| -rw-r--r-- | lisp/progmodes/antlr-mode.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 11 | ||||
| -rw-r--r-- | lisp/progmodes/sh-script.el | 3 | ||||
| -rw-r--r-- | lisp/register.el | 6 | ||||
| -rw-r--r-- | lisp/shell.el | 37 | ||||
| -rw-r--r-- | lisp/simple.el | 6 | ||||
| -rw-r--r-- | lisp/subr.el | 28 | ||||
| -rw-r--r-- | lisp/term.el | 44 | ||||
| -rw-r--r-- | lisp/textmodes/flyspell.el | 6 | ||||
| -rw-r--r-- | lisp/textmodes/table.el | 8 | ||||
| -rw-r--r-- | lisp/textmodes/texinfo.el | 8 | ||||
| -rw-r--r-- | lisp/toolbar/gud-n.pbm (renamed from lisp/toolbar/gud-next.pbm) | bin | 81 -> 81 bytes | |||
| -rw-r--r-- | lisp/toolbar/gud-n.xpm (renamed from lisp/toolbar/gud-next.xpm) | 0 | ||||
| -rw-r--r-- | lisp/toolbar/gud-ni.pbm (renamed from lisp/toolbar/gud-nexti.pbm) | bin | 81 -> 81 bytes | |||
| -rw-r--r-- | lisp/toolbar/gud-ni.xpm (renamed from lisp/toolbar/gud-nexti.xpm) | 0 | ||||
| -rw-r--r-- | lisp/toolbar/gud-s.pbm (renamed from lisp/toolbar/gud-step.pbm) | bin | 81 -> 81 bytes | |||
| -rw-r--r-- | lisp/toolbar/gud-s.xpm (renamed from lisp/toolbar/gud-step.xpm) | 0 | ||||
| -rw-r--r-- | lisp/toolbar/gud-si.pbm (renamed from lisp/toolbar/gud-stepi.pbm) | bin | 81 -> 81 bytes | |||
| -rw-r--r-- | lisp/toolbar/gud-si.xpm (renamed from lisp/toolbar/gud-stepi.xpm) | 0 | ||||
| -rw-r--r-- | lisp/xml.el | 30 |
46 files changed, 620 insertions, 212 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 56587ae22ed..97539c809ed 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,192 @@ | |||
| 1 | 2003-12-30 Eli Zaretskii <eliz@elta.co.il> | ||
| 2 | |||
| 3 | * mail/rmail.el (rmail-convert-to-babyl-format): Fix off-by-one | ||
| 4 | error in arguments to base64-decode-region. Remove ^M characters | ||
| 5 | after decoding base64. | ||
| 6 | |||
| 7 | 2003-12-30 Simon Josefsson <jas@extundo.com> | ||
| 8 | |||
| 9 | * textmodes/texinfo.el: Change maintainer to FSF. Suggested by | ||
| 10 | karl@freefriends.org (Karl Berry), since the Texinfo Elisp files | ||
| 11 | have only been distributed with Emacs for some years. | ||
| 12 | (texinfo-mode-hook): Customize. | ||
| 13 | |||
| 14 | 2003-12-30 Eli Zaretskii <eliz@elta.co.il> | ||
| 15 | |||
| 16 | * mail/rmail.el (rmail-convert-to-babyl-format): Make the code | ||
| 17 | cleaner (suggested by Richard Stallman). | ||
| 18 | |||
| 19 | * progmodes/gud.el (gud-tool-bar-map): Modify names of icon files | ||
| 20 | for gud-next, gud-nexti, gud-step and gud-stepi to prevent | ||
| 21 | file-name clashes on 8+3 DOS filesystems. | ||
| 22 | |||
| 23 | * toolbar/gud-next.pbm, toolbar/gud-next.xpm | ||
| 24 | * toolbar/gud-nexti.pbm, toolbar/gud-nexti.xpm | ||
| 25 | * toolbar/gud-step.pbm, toolbar/gud-step.xpm | ||
| 26 | * toolbar/gud-stepi.pbm, toolbar/gud-stepi.xpm: Renamed to | ||
| 27 | gud-n.*, gud-ni.*, gud-s.*, and gud-si.*, respectively, to avoid | ||
| 28 | file-name clashes on 8+3 filesystems. | ||
| 29 | |||
| 30 | * emacs-lisp/tcover-unsafep.el, emacs-lisp/tcover-ses.el: Renamed | ||
| 31 | from testcover-unsafep.el and testcover-ses.el to avoid file-name | ||
| 32 | clashes on 8+3 DOS filesystems. | ||
| 33 | |||
| 34 | 2003-12-29 Richard M. Stallman <rms@gnu.org> | ||
| 35 | |||
| 36 | * textmodes/flyspell.el (mail-mode-flyspell-verify): | ||
| 37 | Search for header separator alone on a line, literally, | ||
| 38 | and search for it backward, not forward. | ||
| 39 | (flyspell-abbrev-table): Always use global-abbrev-table | ||
| 40 | if there is no local one. | ||
| 41 | |||
| 42 | * progmodes/sh-script.el (sh-get-indent-info): | ||
| 43 | Don't move point back if at bob. | ||
| 44 | |||
| 45 | * progmodes/antlr-mode.el (save-buffer-state-x): Use with-no-warnings. | ||
| 46 | |||
| 47 | * play/handwrite.el (handwrite): Make the handwrite credit message | ||
| 48 | a comment rather than an output command. | ||
| 49 | |||
| 50 | * obsolete/sc.el: Display message that this file is obsolete. | ||
| 51 | |||
| 52 | * net/ange-ftp.el (ange-ftp-start-process): Copy the environment. | ||
| 53 | |||
| 54 | * mail/rfc822.el (rfc822-address-start): Declare variable. | ||
| 55 | Renamed from address-start. All uses changed. | ||
| 56 | |||
| 57 | * term.el (term-exec): Set up sentinel. | ||
| 58 | (term-sentinel): New function. | ||
| 59 | (term-handle-exit): New function. | ||
| 60 | |||
| 61 | * subr.el (assoc-ignore-case, assoc-ignore-representation): | ||
| 62 | Use assoc-string, and mark them obsolete. | ||
| 63 | (delay-mode-hooks): Mark as permanent local. | ||
| 64 | |||
| 65 | * simple.el (sendmail-user-agent-compose): Use assoc-string. | ||
| 66 | |||
| 67 | * register.el (copy-rectangle-to-register): Doc fix. | ||
| 68 | |||
| 69 | * info.el (Info-insert-dir): Use assoc-string. | ||
| 70 | |||
| 71 | * info-look.el (info-lookup): Use assoc-string. | ||
| 72 | |||
| 73 | * frame.el (pop-up-frame-function): Use quote, not `function'. | ||
| 74 | (frame-notice-user-settings): Calculate ADJUSTED-TOP | ||
| 75 | copying with lists as coordinate values. | ||
| 76 | |||
| 77 | * font-lock.el (font-lock-after-change-function): Bind inhibit-quit. | ||
| 78 | |||
| 79 | * find-dired.el (kill-find): New command. | ||
| 80 | (find-dired): Make buffer read-only. | ||
| 81 | Set up a keymap with C-c C-k running kill-find. | ||
| 82 | (find-dired-filter, find-dired-sentinel): Bind inhibit-read-only. | ||
| 83 | |||
| 84 | * files.el (backup-buffer-copy): If MODES is nil, don't set modes. | ||
| 85 | |||
| 86 | * filecache.el (file-cache-ignore-case): New variable. | ||
| 87 | (file-cache-assoc-function): Var deleted. Use assoc-string instead. | ||
| 88 | |||
| 89 | * comint.el (comint-arguments): Set COUNT after ARGS is complete. | ||
| 90 | (comint-dynamic-complete-as-filename): Rename local vars. | ||
| 91 | (comint-dynamic-list-filename-completions): Likewise. | ||
| 92 | |||
| 93 | * comint.el (comint-dynamic-list-completions-config): New var. | ||
| 94 | (comint-dynamic-list-completions): Handle both SPC and TAB right. | ||
| 95 | |||
| 96 | * comint.el (comint-file-name-chars): Add []. | ||
| 97 | (comint-word): Use skip-chars-backward, not search. | ||
| 98 | |||
| 99 | * shell.el (shell-file-name-chars): Add []. | ||
| 100 | |||
| 101 | * shell.el (shell-dynamic-complete-as-command): Rename local vars. | ||
| 102 | |||
| 103 | * bookmark.el (bookmark-get-bookmark): Use assoc-string. | ||
| 104 | |||
| 105 | * generic.el (define-generic-mode): Doc fix. | ||
| 106 | |||
| 107 | 2003-12-29 Eli Zaretskii <eliz@elta.co.il> | ||
| 108 | |||
| 109 | * files.el (kill-some-buffers): Doc fix. | ||
| 110 | |||
| 111 | 2003-12-29 David Herring <sdh6@ra.msstate.edu> (tiny change) | ||
| 112 | |||
| 113 | * comint.el (comint-watch-for-password-prompt): Pass `string' as | ||
| 114 | arg to send-invisible | ||
| 115 | (send-invisible): Doc fix. The argument is now a prompt, not the | ||
| 116 | string to send. | ||
| 117 | (comint-read-noecho): Doc fix. | ||
| 118 | |||
| 119 | 2003-12-29 Michael R. Wolf <MichaelRWolf@att.net> (tiny change) | ||
| 120 | |||
| 121 | * net/ange-ftp.el (ange-ftp-name-format): Allow USER to contain | ||
| 122 | "@", as required by some ISP hosting service. Fix defcustom | ||
| 123 | argument syntax errors that prevented use of customization. | ||
| 124 | |||
| 125 | 2003-12-29 Eli Zaretskii <eliz@elta.co.il> | ||
| 126 | |||
| 127 | * xml.el (xml-get-attribute-or-nil): Doc fix. | ||
| 128 | |||
| 129 | 2003-12-29 Peter 'Luna' Runestig <peter@runestig.com> | ||
| 130 | |||
| 131 | * net/zone-mode.el (zone-mode): Use write-file-functions, not | ||
| 132 | write-file-hooks. | ||
| 133 | |||
| 134 | 2003-12-29 Eric Hanchrow <offby1@blarg.net> (tiny change) | ||
| 135 | |||
| 136 | * autorevert.el (auto-revert-interval): Doc fix. | ||
| 137 | |||
| 138 | 2003-12-29 Mark A. Hershberger <mah@everybody.org> | ||
| 139 | |||
| 140 | * xml.el (xml-get-attribute-or-nil): New function, like | ||
| 141 | xml-get-attribute, but returns nil if the attribute was not found. | ||
| 142 | (xml-get-attribute): Converted to defsubst, uses | ||
| 143 | xml-get-attribute-or-nil. | ||
| 144 | |||
| 145 | 2003-12-29 Eli Zaretskii <eliz@elta.co.il> | ||
| 146 | |||
| 147 | * emacs-lisp/easymenu.el (easy-menu-define): Doc fix. | ||
| 148 | |||
| 149 | 2003-12-29 Alex Schroeder <alex@emacswiki.org> (tiny change) | ||
| 150 | |||
| 151 | * custom.el (custom-declare-theme): Use `value' when putting | ||
| 152 | properties on `theme'. | ||
| 153 | |||
| 154 | 2003-12-29 Takaaki Ota <Takaaki.Ota@am.sony.com> | ||
| 155 | |||
| 156 | * subr.el (insert-for-yank): Call insert-for-yank-1 repetitively | ||
| 157 | for each yank-handler segment. | ||
| 158 | (insert-for-yank-1): New function, with the body of the previous | ||
| 159 | insert-for-yank. | ||
| 160 | |||
| 161 | * textmodes/table.el (table-yank-handler): New defcustom. | ||
| 162 | (table--put-cell-indicator-property): Put yank-handler property | ||
| 163 | that indicates the yank handler for the table cell. | ||
| 164 | |||
| 165 | 2003-12-29 Jesper Harder <harder@ifa.au.dk> (tiny change) | ||
| 166 | |||
| 167 | * generic-x.el (etc-modules-conf-generic-mode): A more complete | ||
| 168 | set of keywords. | ||
| 169 | |||
| 170 | 2003-12-29 Eli Zaretskii <eliz@elta.co.il> | ||
| 171 | |||
| 172 | * international/mule-cmds.el (reset-language-environment) | ||
| 173 | (set-language-environment): Don't invoke fontset-related functions | ||
| 174 | if fontset-list is not fboundp. | ||
| 175 | |||
| 176 | 2003-12-29 Kenichi Handa <handa@m17n.org> | ||
| 177 | |||
| 178 | * international/mule-cmds.el (reset-language-environment): Call | ||
| 179 | set-overriding-fontspec-internal with nil. | ||
| 180 | (set-language-environment): Call set-overriding-fontspec-internal | ||
| 181 | if the language environment specify `overriding-fontspec'. | ||
| 182 | (language-info-alist): Doc added. | ||
| 183 | |||
| 184 | * language/cyrillic.el (ccl-encode-koi8-font): Make it work for | ||
| 185 | characters of mule-unicode-0100-24ff. | ||
| 186 | (ccl-encode-windows-1251-font): New CCL program. | ||
| 187 | ("Bulgarian"): Specify overriding-fontspec. | ||
| 188 | ("Belarusian"): Likewise. | ||
| 189 | |||
| 1 | 2003-12-28 Sam Steingold <sds@gnu.org> | 190 | 2003-12-28 Sam Steingold <sds@gnu.org> |
| 2 | 191 | ||
| 3 | * net/ange-ftp.el (ange-ftp-file-attributes): Add new optional | 192 | * net/ange-ftp.el (ange-ftp-file-attributes): Add new optional |
| @@ -46,6 +235,14 @@ | |||
| 46 | 235 | ||
| 47 | * ffap.el (ffap-read-file-or-url): Revert previous change. | 236 | * ffap.el (ffap-read-file-or-url): Revert previous change. |
| 48 | 237 | ||
| 238 | 2003-12-25 Robert J. Chassell <bob@rattlesnake.com> | ||
| 239 | |||
| 240 | * textmodes/texnfo-upd.el (texinfo-multi-file-update): Create a | ||
| 241 | new list of included files called `files-with-node-lines', that | ||
| 242 | only have node lines. This way @include commands can include any | ||
| 243 | file, such as version and update files without node lines, not | ||
| 244 | just files that are chapters. | ||
| 245 | |||
| 49 | 2003-12-25 Andreas Schwab <schwab@suse.de> | 246 | 2003-12-25 Andreas Schwab <schwab@suse.de> |
| 50 | 247 | ||
| 51 | * jka-compr.el (jka-compr-insert-file-contents): Avoid error when | 248 | * jka-compr.el (jka-compr-insert-file-contents): Avoid error when |
| @@ -542,10 +739,18 @@ | |||
| 542 | 739 | ||
| 543 | 2003-11-01 Mark A. Hershberger <mah@everybody.org> | 740 | 2003-11-01 Mark A. Hershberger <mah@everybody.org> |
| 544 | 741 | ||
| 545 | * xml.el: Allow comments following the top-level element. | 742 | * xml.el (xml-parse-region): Allow comments to appear after the |
| 546 | Separate out namespace parsing into special functions. | 743 | topmost element has closed. |
| 547 | Change namespace parsing to return ('ns-uri . "local-name") | 744 | (xml-ns-parse-ns-attrs, xml-ns-expand-el) |
| 548 | instead of '{ns-uri}local-name. | 745 | (xml-ns-expand-attr): New functions to do namespace handling. |
| 746 | (xml-intern-attrlist): Back-compatible handling of attribute | ||
| 747 | names. | ||
| 748 | (xml-parse-tag): Move namespace handling to seperate functions. | ||
| 749 | Now produces elements in the form ((:ns . "element") (attr-list) | ||
| 750 | children) instead of ('ns:element (attr-list) children). | ||
| 751 | (xml-parse-attlist): Fix attribute parsing. | ||
| 752 | (xml-parse-dtd): Change parsing so that it produces strings | ||
| 753 | instead of interned symbols. | ||
| 549 | 754 | ||
| 550 | 2003-11-01 era@iki.fi <era@iki.fi> (tiny change) | 755 | 2003-11-01 era@iki.fi <era@iki.fi> (tiny change) |
| 551 | 756 | ||
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 9f254b54d69..7ac7a402c3a 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1995, 1997, 1998, 2003 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 1997, 1998, 2003 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Morten Welinder <terra@diku.dk> | 5 | ;; Author: Morten Welinder <terra@gnu.org> |
| 6 | ;; Keywords: archives msdog editing major-mode | 6 | ;; Keywords: archives msdog editing major-mode |
| 7 | ;; Favourite-brand-of-beer: None, I hate beer. | 7 | ;; Favourite-brand-of-beer: None, I hate beer. |
| 8 | 8 | ||
diff --git a/lisp/autorevert.el b/lisp/autorevert.el index f366d5c7547..fac91332a5e 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el | |||
| @@ -97,7 +97,10 @@ Never set this variable directly, use the command `auto-revert-mode' instead.") | |||
| 97 | (put 'auto-revert-mode 'permanent-local t) | 97 | (put 'auto-revert-mode 'permanent-local t) |
| 98 | 98 | ||
| 99 | (defcustom auto-revert-interval 5 | 99 | (defcustom auto-revert-interval 5 |
| 100 | "Time, in seconds, between Auto-Revert Mode file checks." | 100 | "Time, in seconds, between Auto-Revert Mode file checks. |
| 101 | Setting this variable has no effect on buffers that are already in | ||
| 102 | auto-revert-mode; it only affects buffers that are put into | ||
| 103 | auto-revert-mode afterwards." | ||
| 101 | :group 'auto-revert | 104 | :group 'auto-revert |
| 102 | :type 'integer) | 105 | :type 'integer) |
| 103 | 106 | ||
diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 762de7323a2..67ae2c84865 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el | |||
| @@ -335,10 +335,7 @@ through a file easier.") | |||
| 335 | "Return the full entry for BOOKMARK in bookmark-alist. | 335 | "Return the full entry for BOOKMARK in bookmark-alist. |
| 336 | If BOOKMARK is not a string, return nil." | 336 | If BOOKMARK is not a string, return nil." |
| 337 | (when (stringp bookmark) | 337 | (when (stringp bookmark) |
| 338 | (apply (if bookmark-completion-ignore-case | 338 | (assoc-string bookmark bookmark-alist bookmark-completion-ignore-case))) |
| 339 | #'assoc-ignore-case | ||
| 340 | #'assoc) | ||
| 341 | (list bookmark bookmark-alist)))) | ||
| 342 | 339 | ||
| 343 | 340 | ||
| 344 | (defun bookmark-get-bookmark-record (bookmark) | 341 | (defun bookmark-get-bookmark-record (bookmark) |
diff --git a/lisp/comint.el b/lisp/comint.el index 5509e71d984..6bc40a01bd3 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -1344,16 +1344,16 @@ Argument 0 is the command name." | |||
| 1344 | ;; Put the previous arg, if there was one, onto ARGS. | 1344 | ;; Put the previous arg, if there was one, onto ARGS. |
| 1345 | (setq str (substring string beg pos) | 1345 | (setq str (substring string beg pos) |
| 1346 | args (if quotes (cons str args) | 1346 | args (if quotes (cons str args) |
| 1347 | (nconc (comint-delim-arg str) args)) | 1347 | (nconc (comint-delim-arg str) args)))) |
| 1348 | count (1+ count))) | 1348 | (setq count (length args)) |
| 1349 | (setq quotes (match-beginning 1)) | 1349 | (setq quotes (match-beginning 1)) |
| 1350 | (setq beg (match-beginning 0)) | 1350 | (setq beg (match-beginning 0)) |
| 1351 | (setq pos (match-end 0)))) | 1351 | (setq pos (match-end 0)))) |
| 1352 | (if beg | 1352 | (if beg |
| 1353 | (setq str (substring string beg pos) | 1353 | (setq str (substring string beg pos) |
| 1354 | args (if quotes (cons str args) | 1354 | args (if quotes (cons str args) |
| 1355 | (nconc (comint-delim-arg str) args)) | 1355 | (nconc (comint-delim-arg str) args)))) |
| 1356 | count (1+ count))) | 1356 | (setq count (length args)) |
| 1357 | (let ((n (or nth (1- count))) | 1357 | (let ((n (or nth (1- count))) |
| 1358 | (m (if mth (1- (- count mth)) 0))) | 1358 | (m (if mth (1- (- count mth)) 0))) |
| 1359 | (mapconcat | 1359 | (mapconcat |
| @@ -1901,7 +1901,8 @@ RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. C-g aborts (if | |||
| 1901 | filter and C-g is pressed, this function returns nil rather than a string). | 1901 | filter and C-g is pressed, this function returns nil rather than a string). |
| 1902 | 1902 | ||
| 1903 | Note that the keystrokes comprising the text can still be recovered | 1903 | Note that the keystrokes comprising the text can still be recovered |
| 1904 | \(temporarily) with \\[view-lossage]. Some people find this worrysome. | 1904 | \(temporarily) with \\[view-lossage]. Some people find this worrysome (see, |
| 1905 | however, `clear-this-command-keys'). | ||
| 1905 | Once the caller uses the password, it can erase the password | 1906 | Once the caller uses the password, it can erase the password |
| 1906 | by doing (clear-string STRING)." | 1907 | by doing (clear-string STRING)." |
| 1907 | (let ((ans "") | 1908 | (let ((ans "") |
| @@ -1948,24 +1949,22 @@ by doing (clear-string STRING)." | |||
| 1948 | (message "") | 1949 | (message "") |
| 1949 | ans))) | 1950 | ans))) |
| 1950 | 1951 | ||
| 1951 | (defun send-invisible (str) | 1952 | (defun send-invisible (&optional prompt) |
| 1952 | "Read a string without echoing. | 1953 | "Read a string without echoing. |
| 1953 | Then send it to the process running in the current buffer. | 1954 | Then send it to the process running in the current buffer. |
| 1954 | The string is sent using `comint-input-sender'. | 1955 | The string is sent using `comint-input-sender'. |
| 1955 | Security bug: your string can still be temporarily recovered with | 1956 | Security bug: your string can still be temporarily recovered with |
| 1956 | \\[view-lossage]." | 1957 | \\[view-lossage]; `clear-this-command-keys' can fix that." |
| 1957 | (interactive "P") ; Defeat snooping via C-x ESC ESC | 1958 | (interactive "P") ; Defeat snooping via C-x ESC ESC |
| 1958 | (let ((proc (get-buffer-process (current-buffer)))) | 1959 | (let ((proc (get-buffer-process (current-buffer)))) |
| 1959 | (cond ((not proc) | 1960 | (if proc |
| 1960 | (error "Current buffer has no process")) | 1961 | (let ((str (comint-read-noecho (or prompt "Non-echoed text: ") t))) |
| 1961 | ((stringp str) | 1962 | (if (stringp str) |
| 1962 | (comint-snapshot-last-prompt) | 1963 | (progn |
| 1963 | (funcall comint-input-sender proc str)) | 1964 | (comint-snapshot-last-prompt) |
| 1964 | (t | 1965 | (funcall comint-input-sender proc str)) |
| 1965 | (let ((str (comint-read-noecho "Non-echoed text: " t))) | 1966 | (message "Warning: text will be echoed"))) |
| 1966 | (if (stringp str) | 1967 | (error "Current buffer has no process")))) |
| 1967 | (send-invisible str) | ||
| 1968 | (message "Warning: text will be echoed"))))))) | ||
| 1969 | 1968 | ||
| 1970 | (defun comint-watch-for-password-prompt (string) | 1969 | (defun comint-watch-for-password-prompt (string) |
| 1971 | "Prompt in the minibuffer for password and send without echoing. | 1970 | "Prompt in the minibuffer for password and send without echoing. |
| @@ -1977,8 +1976,7 @@ This function could be in the list `comint-output-filter-functions'." | |||
| 1977 | (when (string-match comint-password-prompt-regexp string) | 1976 | (when (string-match comint-password-prompt-regexp string) |
| 1978 | (when (string-match "^[ \n\r\t\v\f\b\a]+" string) | 1977 | (when (string-match "^[ \n\r\t\v\f\b\a]+" string) |
| 1979 | (setq string (replace-match "" t t string))) | 1978 | (setq string (replace-match "" t t string))) |
| 1980 | (let ((pw (comint-read-noecho string t))) | 1979 | (send-invisible string))) |
| 1981 | (send-invisible pw)))) | ||
| 1982 | 1980 | ||
| 1983 | ;; Low-level process communication | 1981 | ;; Low-level process communication |
| 1984 | 1982 | ||
| @@ -2084,7 +2082,7 @@ between the process-mark and point." | |||
| 2084 | (comint-skip-input) | 2082 | (comint-skip-input) |
| 2085 | (interrupt-process nil comint-ptyp) | 2083 | (interrupt-process nil comint-ptyp) |
| 2086 | ;; (process-send-string nil "\n") | 2084 | ;; (process-send-string nil "\n") |
| 2087 | ) | 2085 | ) |
| 2088 | 2086 | ||
| 2089 | (defun comint-kill-subjob () | 2087 | (defun comint-kill-subjob () |
| 2090 | "Send kill signal to the current subjob. | 2088 | "Send kill signal to the current subjob. |
| @@ -2553,7 +2551,7 @@ directory tracking functions.") | |||
| 2553 | (defvar comint-file-name-chars | 2551 | (defvar comint-file-name-chars |
| 2554 | (if (memq system-type '(ms-dos windows-nt cygwin)) | 2552 | (if (memq system-type '(ms-dos windows-nt cygwin)) |
| 2555 | "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" | 2553 | "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" |
| 2556 | "~/A-Za-z0-9+@:_.$#%,={}-") | 2554 | "[]~/A-Za-z0-9+@:_.$#%,={}-") |
| 2557 | "String of characters valid in a file name. | 2555 | "String of characters valid in a file name. |
| 2558 | Note that all non-ASCII characters are considered valid in a file name | 2556 | Note that all non-ASCII characters are considered valid in a file name |
| 2559 | regardless of what this variable says. | 2557 | regardless of what this variable says. |
| @@ -2579,15 +2577,19 @@ Word constituents are considered to be those in WORD-CHARS, which is like the | |||
| 2579 | inside of a \"[...]\" (see `skip-chars-forward'), | 2577 | inside of a \"[...]\" (see `skip-chars-forward'), |
| 2580 | plus all non-ASCII characters." | 2578 | plus all non-ASCII characters." |
| 2581 | (save-excursion | 2579 | (save-excursion |
| 2582 | (let ((non-word-chars (concat "[^\\\\" word-chars "]")) (here (point))) | 2580 | (let ((here (point)) |
| 2583 | (while (and (re-search-backward non-word-chars nil 'move) | 2581 | giveup) |
| 2584 | ;;(memq (char-after (point)) shell-file-name-quote-list) | 2582 | (while (not giveup) |
| 2585 | (or (>= (following-char) 128) | 2583 | (let ((startpoint (point))) |
| 2586 | (eq (preceding-char) ?\\))) | 2584 | (skip-chars-backward (concat "\\\\" word-chars)) |
| 2587 | (backward-char 1)) | 2585 | (if (and (> (- (point) 2) (point-min)) |
| 2588 | ;; Don't go forward over a word-char (this can happen if we're at bob). | 2586 | (= (char-after (- (point) 2)) ?\\)) |
| 2589 | (when (or (not (bobp)) (looking-at non-word-chars)) | 2587 | (forward-char -2)) |
| 2590 | (forward-char 1)) | 2588 | (if (and (> (- (point) 1) (point-min)) |
| 2589 | (>= (char-after (- (point) 1)) 128)) | ||
| 2590 | (forward-char -1)) | ||
| 2591 | (if (= (point) startpoint) | ||
| 2592 | (setq giveup t)))) | ||
| 2591 | ;; Set match-data to match the entire string. | 2593 | ;; Set match-data to match the entire string. |
| 2592 | (when (< (point) here) | 2594 | (when (< (point) here) |
| 2593 | (set-match-data (list (point) here)) | 2595 | (set-match-data (list (point) here)) |
| @@ -2699,10 +2701,10 @@ See `comint-dynamic-complete-filename'. Returns t if successful." | |||
| 2699 | (t | 2701 | (t |
| 2700 | (cdr comint-completion-addsuffix)))) | 2702 | (cdr comint-completion-addsuffix)))) |
| 2701 | (filename (or (comint-match-partial-filename) "")) | 2703 | (filename (or (comint-match-partial-filename) "")) |
| 2702 | (pathdir (file-name-directory filename)) | 2704 | (filedir (file-name-directory filename)) |
| 2703 | (pathnondir (file-name-nondirectory filename)) | 2705 | (filenondir (file-name-nondirectory filename)) |
| 2704 | (directory (if pathdir (comint-directory pathdir) default-directory)) | 2706 | (directory (if filedir (comint-directory filedir) default-directory)) |
| 2705 | (completion (file-name-completion pathnondir directory))) | 2707 | (completion (file-name-completion filenondir directory))) |
| 2706 | (cond ((null completion) | 2708 | (cond ((null completion) |
| 2707 | (message "No completions of %s" filename) | 2709 | (message "No completions of %s" filename) |
| 2708 | (setq success nil)) | 2710 | (setq success nil)) |
| @@ -2716,21 +2718,21 @@ See `comint-dynamic-complete-filename'. Returns t if successful." | |||
| 2716 | (let ((file (concat (file-name-as-directory directory) completion))) | 2718 | (let ((file (concat (file-name-as-directory directory) completion))) |
| 2717 | (insert (comint-quote-filename | 2719 | (insert (comint-quote-filename |
| 2718 | (substring (directory-file-name completion) | 2720 | (substring (directory-file-name completion) |
| 2719 | (length pathnondir)))) | 2721 | (length filenondir)))) |
| 2720 | (cond ((symbolp (file-name-completion completion directory)) | 2722 | (cond ((symbolp (file-name-completion completion directory)) |
| 2721 | ;; We inserted a unique completion. | 2723 | ;; We inserted a unique completion. |
| 2722 | (insert (if (file-directory-p file) dirsuffix filesuffix)) | 2724 | (insert (if (file-directory-p file) dirsuffix filesuffix)) |
| 2723 | (unless minibuffer-p | 2725 | (unless minibuffer-p |
| 2724 | (message "Completed"))) | 2726 | (message "Completed"))) |
| 2725 | ((and comint-completion-recexact comint-completion-addsuffix | 2727 | ((and comint-completion-recexact comint-completion-addsuffix |
| 2726 | (string-equal pathnondir completion) | 2728 | (string-equal filenondir completion) |
| 2727 | (file-exists-p file)) | 2729 | (file-exists-p file)) |
| 2728 | ;; It's not unique, but user wants shortest match. | 2730 | ;; It's not unique, but user wants shortest match. |
| 2729 | (insert (if (file-directory-p file) dirsuffix filesuffix)) | 2731 | (insert (if (file-directory-p file) dirsuffix filesuffix)) |
| 2730 | (unless minibuffer-p | 2732 | (unless minibuffer-p |
| 2731 | (message "Completed shortest"))) | 2733 | (message "Completed shortest"))) |
| 2732 | ((or comint-completion-autolist | 2734 | ((or comint-completion-autolist |
| 2733 | (string-equal pathnondir completion)) | 2735 | (string-equal filenondir completion)) |
| 2734 | ;; It's not unique, list possible completions. | 2736 | ;; It's not unique, list possible completions. |
| 2735 | (comint-dynamic-list-filename-completions)) | 2737 | (comint-dynamic-list-filename-completions)) |
| 2736 | (t | 2738 | (t |
| @@ -2814,10 +2816,10 @@ See also `comint-dynamic-complete-filename'." | |||
| 2814 | ;; but subsequent changes may have made this unnecessary. sm. | 2816 | ;; but subsequent changes may have made this unnecessary. sm. |
| 2815 | ;;(file-name-handler-alist nil) | 2817 | ;;(file-name-handler-alist nil) |
| 2816 | (filename (or (comint-match-partial-filename) "")) | 2818 | (filename (or (comint-match-partial-filename) "")) |
| 2817 | (pathdir (file-name-directory filename)) | 2819 | (filedir (file-name-directory filename)) |
| 2818 | (pathnondir (file-name-nondirectory filename)) | 2820 | (filenondir (file-name-nondirectory filename)) |
| 2819 | (directory (if pathdir (comint-directory pathdir) default-directory)) | 2821 | (directory (if filedir (comint-directory filedir) default-directory)) |
| 2820 | (completions (file-name-all-completions pathnondir directory))) | 2822 | (completions (file-name-all-completions filenondir directory))) |
| 2821 | (if (not completions) | 2823 | (if (not completions) |
| 2822 | (message "No completions of %s" filename) | 2824 | (message "No completions of %s" filename) |
| 2823 | (comint-dynamic-list-completions | 2825 | (comint-dynamic-list-completions |
| @@ -2829,6 +2831,8 @@ See also `comint-dynamic-complete-filename'." | |||
| 2829 | ;; command is repeatedly used without the set of completions changing. | 2831 | ;; command is repeatedly used without the set of completions changing. |
| 2830 | (defvar comint-displayed-dynamic-completions nil) | 2832 | (defvar comint-displayed-dynamic-completions nil) |
| 2831 | 2833 | ||
| 2834 | (defvar comint-dynamic-list-completions-config nil) | ||
| 2835 | |||
| 2832 | (defun comint-dynamic-list-completions (completions) | 2836 | (defun comint-dynamic-list-completions (completions) |
| 2833 | "List in help buffer sorted COMPLETIONS. | 2837 | "List in help buffer sorted COMPLETIONS. |
| 2834 | Typing SPC flushes the help buffer." | 2838 | Typing SPC flushes the help buffer." |
| @@ -2858,30 +2862,35 @@ Typing SPC flushes the help buffer." | |||
| 2858 | (select-window window) | 2862 | (select-window window) |
| 2859 | (scroll-up)))) | 2863 | (scroll-up)))) |
| 2860 | 2864 | ||
| 2861 | (let ((conf (current-window-configuration))) | 2865 | ;; Display a completion list for the first time. |
| 2862 | (with-output-to-temp-buffer "*Completions*" | 2866 | (setq comint-dynamic-list-completions-config |
| 2863 | (display-completion-list completions)) | 2867 | (current-window-configuration)) |
| 2864 | (message "Type space to flush; repeat completion command to scroll") | 2868 | (with-output-to-temp-buffer "*Completions*" |
| 2865 | (let (key first) | 2869 | (display-completion-list completions)) |
| 2866 | (if (save-excursion | 2870 | (message "Type space to flush; repeat completion command to scroll")) |
| 2867 | (set-buffer (get-buffer "*Completions*")) | 2871 | |
| 2868 | (set (make-local-variable | 2872 | ;; Read the next key, to process SPC. |
| 2869 | 'comint-displayed-dynamic-completions) | 2873 | (let (key first) |
| 2870 | completions) | 2874 | (if (save-excursion |
| 2871 | (setq key (read-key-sequence nil) | 2875 | (set-buffer (get-buffer "*Completions*")) |
| 2872 | first (aref key 0)) | 2876 | (set (make-local-variable |
| 2873 | (and (consp first) (consp (event-start first)) | 2877 | 'comint-displayed-dynamic-completions) |
| 2874 | (eq (window-buffer (posn-window (event-start first))) | 2878 | completions) |
| 2875 | (get-buffer "*Completions*")) | 2879 | (setq key (read-key-sequence nil) |
| 2876 | (eq (key-binding key) 'mouse-choose-completion))) | 2880 | first (aref key 0)) |
| 2877 | ;; If the user does mouse-choose-completion with the mouse, | 2881 | (and (consp first) (consp (event-start first)) |
| 2878 | ;; execute the command, then delete the completion window. | 2882 | (eq (window-buffer (posn-window (event-start first))) |
| 2879 | (progn | 2883 | (get-buffer "*Completions*")) |
| 2880 | (mouse-choose-completion first) | 2884 | (eq (key-binding key) 'mouse-choose-completion))) |
| 2881 | (set-window-configuration conf)) | 2885 | ;; If the user does mouse-choose-completion with the mouse, |
| 2882 | (if (eq first ?\ ) | 2886 | ;; execute the command, then delete the completion window. |
| 2883 | (set-window-configuration conf) | 2887 | (progn |
| 2884 | (setq unread-command-events (listify-key-sequence key))))))))) | 2888 | (mouse-choose-completion first) |
| 2889 | (set-window-configuration comint-dynamic-list-completions-config)) | ||
| 2890 | (unless (eq first ?\ ) | ||
| 2891 | (setq unread-command-events (listify-key-sequence key))) | ||
| 2892 | (unless (eq first ?\t) | ||
| 2893 | (set-window-configuration comint-dynamic-list-completions-config)))))) | ||
| 2885 | 2894 | ||
| 2886 | 2895 | ||
| 2887 | (defun comint-get-next-from-history () | 2896 | (defun comint-get-next-from-history () |
diff --git a/lisp/custom.el b/lisp/custom.el index aa4d0d8353f..ea0567d3109 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -558,17 +558,17 @@ from THEME by `custom-make-theme-feature'." | |||
| 558 | (error "Keyword %s is missing an argument" keyword)) | 558 | (error "Keyword %s is missing an argument" keyword)) |
| 559 | (setq args (cdr args)) | 559 | (setq args (cdr args)) |
| 560 | (cond ((eq keyword :short-description) | 560 | (cond ((eq keyword :short-description) |
| 561 | (put theme 'theme-short-description short-description)) | 561 | (put theme 'theme-short-description value)) |
| 562 | ((eq keyword :immediate) | 562 | ((eq keyword :immediate) |
| 563 | (put theme 'theme-immediate immediate)) | 563 | (put theme 'theme-immediate value)) |
| 564 | ((eq keyword :variable-set-string) | 564 | ((eq keyword :variable-set-string) |
| 565 | (put theme 'theme-variable-set-string variable-set-string)) | 565 | (put theme 'theme-variable-set-string value)) |
| 566 | ((eq keyword :variable-reset-string) | 566 | ((eq keyword :variable-reset-string) |
| 567 | (put theme 'theme-variable-reset-string variable-reset-string)) | 567 | (put theme 'theme-variable-reset-string value)) |
| 568 | ((eq keyword :face-set-string) | 568 | ((eq keyword :face-set-string) |
| 569 | (put theme 'theme-face-set-string face-set-string)) | 569 | (put theme 'theme-face-set-string value)) |
| 570 | ((eq keyword :face-reset-string) | 570 | ((eq keyword :face-reset-string) |
| 571 | (put theme 'theme-face-reset-string face-reset-string))))))) | 571 | (put theme 'theme-face-reset-string value))))))) |
| 572 | 572 | ||
| 573 | (defmacro deftheme (theme &optional doc &rest args) | 573 | (defmacro deftheme (theme &optional doc &rest args) |
| 574 | "Declare custom theme THEME. | 574 | "Declare custom theme THEME. |
diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index a5b35a7d018..5a2a33575e7 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el | |||
| @@ -59,8 +59,8 @@ It may be followed by the following keyword argument pairs | |||
| 59 | 59 | ||
| 60 | :filter FUNCTION | 60 | :filter FUNCTION |
| 61 | 61 | ||
| 62 | FUNCTION is a function with one argument, the menu. It returns the actual | 62 | FUNCTION is a function with one argument, the rest of menu items. |
| 63 | menu displayed. | 63 | It returns the remaining items of the displayed menu. |
| 64 | 64 | ||
| 65 | :visible INCLUDE | 65 | :visible INCLUDE |
| 66 | 66 | ||
diff --git a/lisp/emacs-lisp/testcover-ses.el b/lisp/emacs-lisp/tcover-ses.el index 48ec9fa64da..48ec9fa64da 100644 --- a/lisp/emacs-lisp/testcover-ses.el +++ b/lisp/emacs-lisp/tcover-ses.el | |||
diff --git a/lisp/emacs-lisp/testcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el index 4359209b4d4..4359209b4d4 100644 --- a/lisp/emacs-lisp/testcover-unsafep.el +++ b/lisp/emacs-lisp/tcover-unsafep.el | |||
diff --git a/lisp/filecache.el b/lisp/filecache.el index d315a3b1c8b..71b67af355f 100644 --- a/lisp/filecache.el +++ b/lisp/filecache.el | |||
| @@ -212,13 +212,10 @@ Defaults to the value of `case-fold-search'." | |||
| 212 | :group 'file-cache | 212 | :group 'file-cache |
| 213 | ) | 213 | ) |
| 214 | 214 | ||
| 215 | (defcustom file-cache-assoc-function | 215 | (defcustom file-cache-ignore-case |
| 216 | (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin)) | 216 | (memq system-type (list 'ms-dos 'windows-nt 'cygwin)) |
| 217 | 'assoc-ignore-case | 217 | "Non-nil means ignore case when checking completions in the file cache. |
| 218 | 'assoc) | 218 | Defaults to nil on DOS and Windows, and t on other systems." |
| 219 | "Function to use to check completions in the file cache. | ||
| 220 | Defaults to `assoc-ignore-case' on DOS and Windows, and `assoc' on | ||
| 221 | other systems." | ||
| 222 | :type 'sexp | 219 | :type 'sexp |
| 223 | :group 'file-cache | 220 | :group 'file-cache |
| 224 | ) | 221 | ) |
| @@ -301,8 +298,9 @@ in each directory, not to the directory list itself." | |||
| 301 | (message "File %s does not exist" file) | 298 | (message "File %s does not exist" file) |
| 302 | (let* ((file-name (file-name-nondirectory file)) | 299 | (let* ((file-name (file-name-nondirectory file)) |
| 303 | (dir-name (file-name-directory file)) | 300 | (dir-name (file-name-directory file)) |
| 304 | (the-entry (funcall file-cache-assoc-function | 301 | (the-entry (assoc-string |
| 305 | file-name file-cache-alist)) | 302 | file-name file-cache-alist |
| 303 | file-cache-ignore-case)) | ||
| 306 | ) | 304 | ) |
| 307 | ;; Does the entry exist already? | 305 | ;; Does the entry exist already? |
| 308 | (if the-entry | 306 | (if the-entry |
| @@ -402,7 +400,7 @@ or the optional REGEXP argument." | |||
| 402 | (interactive | 400 | (interactive |
| 403 | (list (completing-read "Delete file from cache: " file-cache-alist))) | 401 | (list (completing-read "Delete file from cache: " file-cache-alist))) |
| 404 | (setq file-cache-alist | 402 | (setq file-cache-alist |
| 405 | (delq (funcall file-cache-assoc-function file file-cache-alist) | 403 | (delq (assoc-string file file-cache-alist file-cache-ignore-case) |
| 406 | file-cache-alist))) | 404 | file-cache-alist))) |
| 407 | 405 | ||
| 408 | (defun file-cache-delete-file-list (file-list) | 406 | (defun file-cache-delete-file-list (file-list) |
| @@ -458,8 +456,9 @@ or the optional REGEXP argument." | |||
| 458 | 456 | ||
| 459 | ;; Returns the name of a directory for a file in the cache | 457 | ;; Returns the name of a directory for a file in the cache |
| 460 | (defun file-cache-directory-name (file) | 458 | (defun file-cache-directory-name (file) |
| 461 | (let* ((directory-list (cdr (funcall file-cache-assoc-function | 459 | (let* ((directory-list (cdr (assoc-string |
| 462 | file file-cache-alist))) | 460 | file file-cache-alist |
| 461 | file-cache-ignore-case))) | ||
| 463 | (len (length directory-list)) | 462 | (len (length directory-list)) |
| 464 | (directory) | 463 | (directory) |
| 465 | (num) | 464 | (num) |
| @@ -556,7 +555,8 @@ the name is considered already unique; only the second substitution | |||
| 556 | ;; If we've already inserted a unique string, see if the user | 555 | ;; If we've already inserted a unique string, see if the user |
| 557 | ;; wants to use that one | 556 | ;; wants to use that one |
| 558 | (if (and (string= string completion-string) | 557 | (if (and (string= string completion-string) |
| 559 | (funcall file-cache-assoc-function string file-cache-alist)) | 558 | (assoc-string string file-cache-alist |
| 559 | file-cache-ignore-case)) | ||
| 560 | (if (and (eq last-command this-command) | 560 | (if (and (eq last-command this-command) |
| 561 | (string= file-cache-last-completion completion-string)) | 561 | (string= file-cache-last-completion completion-string)) |
| 562 | (progn | 562 | (progn |
| @@ -725,7 +725,8 @@ match REGEXP." | |||
| 725 | "Debugging function." | 725 | "Debugging function." |
| 726 | (interactive | 726 | (interactive |
| 727 | (list (completing-read "File Cache: " file-cache-alist))) | 727 | (list (completing-read "File Cache: " file-cache-alist))) |
| 728 | (message "%s" (funcall file-cache-assoc-function file file-cache-alist)) | 728 | (message "%s" (assoc-string file file-cache-alist |
| 729 | file-cache-ignore-case)) | ||
| 729 | ) | 730 | ) |
| 730 | 731 | ||
| 731 | (defun file-cache-display () | 732 | (defun file-cache-display () |
diff --git a/lisp/files.el b/lisp/files.el index 1dc6e5454df..4983b1287e8 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2552,7 +2552,8 @@ BACKUPNAME is the backup file name, which is the old file renamed." | |||
| 2552 | (not (file-writable-p to-name))) | 2552 | (not (file-writable-p to-name))) |
| 2553 | (delete-file to-name)) | 2553 | (delete-file to-name)) |
| 2554 | (copy-file from-name to-name t t))) | 2554 | (copy-file from-name to-name t t))) |
| 2555 | (set-file-modes to-name (logand modes #o1777))) | 2555 | (and modes |
| 2556 | (set-file-modes to-name (logand modes #o1777)))) | ||
| 2556 | 2557 | ||
| 2557 | (defun file-name-sans-versions (name &optional keep-backup-version) | 2558 | (defun file-name-sans-versions (name &optional keep-backup-version) |
| 2558 | "Return file NAME sans backup versions or strings. | 2559 | "Return file NAME sans backup versions or strings. |
| @@ -3727,8 +3728,9 @@ This command is used in the special Dired buffer created by | |||
| 3727 | (kill-buffer buffer)))) | 3728 | (kill-buffer buffer)))) |
| 3728 | 3729 | ||
| 3729 | (defun kill-some-buffers (&optional list) | 3730 | (defun kill-some-buffers (&optional list) |
| 3730 | "For each buffer in LIST, ask whether to kill it. | 3731 | "Kill some buffers. Asks the user whether to kill each one of them. |
| 3731 | LIST defaults to all existing live buffers." | 3732 | Non-interactively, if optional argument LIST is non-`nil', it |
| 3733 | specifies the list of buffers to kill, asking for approval for each one." | ||
| 3732 | (interactive) | 3734 | (interactive) |
| 3733 | (if (null list) | 3735 | (if (null list) |
| 3734 | (setq list (buffer-list))) | 3736 | (setq list (buffer-list))) |
diff --git a/lisp/find-dired.el b/lisp/find-dired.el index b1051acf7fd..9407afc3862 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el | |||
| @@ -123,6 +123,10 @@ as the final argument." | |||
| 123 | (car find-ls-option))) | 123 | (car find-ls-option))) |
| 124 | ;; The next statement will bomb in classic dired (no optional arg allowed) | 124 | ;; The next statement will bomb in classic dired (no optional arg allowed) |
| 125 | (dired-mode dir (cdr find-ls-option)) | 125 | (dired-mode dir (cdr find-ls-option)) |
| 126 | (let ((map (make-sparse-keymap))) | ||
| 127 | (set-keymap-parent map (current-local-map)) | ||
| 128 | (define-key map "\C-c\C-k" 'kill-find) | ||
| 129 | (use-local-map map)) | ||
| 126 | (make-local-variable 'dired-sort-inhibit) | 130 | (make-local-variable 'dired-sort-inhibit) |
| 127 | (setq dired-sort-inhibit t) | 131 | (setq dired-sort-inhibit t) |
| 128 | (set (make-local-variable 'revert-buffer-function) | 132 | (set (make-local-variable 'revert-buffer-function) |
| @@ -144,6 +148,7 @@ as the final argument." | |||
| 144 | ;; Make second line a ``find'' line in analogy to the ``total'' or | 148 | ;; Make second line a ``find'' line in analogy to the ``total'' or |
| 145 | ;; ``wildcard'' line. | 149 | ;; ``wildcard'' line. |
| 146 | (insert " " args "\n") | 150 | (insert " " args "\n") |
| 151 | (setq buffer-read-only t) | ||
| 147 | ;; Start the find process. | 152 | ;; Start the find process. |
| 148 | (let ((proc (start-process-shell-command find-dired-find-program (current-buffer) args))) | 153 | (let ((proc (start-process-shell-command find-dired-find-program (current-buffer) args))) |
| 149 | (set-process-filter proc (function find-dired-filter)) | 154 | (set-process-filter proc (function find-dired-filter)) |
| @@ -152,6 +157,16 @@ as the final argument." | |||
| 152 | (move-marker (process-mark proc) 1 (current-buffer))) | 157 | (move-marker (process-mark proc) 1 (current-buffer))) |
| 153 | (setq mode-line-process '(":%s")))) | 158 | (setq mode-line-process '(":%s")))) |
| 154 | 159 | ||
| 160 | (defun kill-find () | ||
| 161 | "Kill the `find' process running in the current buffer." | ||
| 162 | (interactive) | ||
| 163 | (let ((find (get-buffer-process (current-buffer)))) | ||
| 164 | (and find (eq (process-status find) 'run) | ||
| 165 | (eq (process-filter find) (function find-dired-filter)) | ||
| 166 | (condition-case nil | ||
| 167 | (delete-process find) | ||
| 168 | (error nil))))) | ||
| 169 | |||
| 155 | ;;;###autoload | 170 | ;;;###autoload |
| 156 | (defun find-name-dired (dir pattern) | 171 | (defun find-name-dired (dir pattern) |
| 157 | "Search DIR recursively for files matching the globbing pattern PATTERN, | 172 | "Search DIR recursively for files matching the globbing pattern PATTERN, |
| @@ -192,7 +207,8 @@ Thus ARG can also contain additional grep options." | |||
| 192 | 207 | ||
| 193 | (defun find-dired-filter (proc string) | 208 | (defun find-dired-filter (proc string) |
| 194 | ;; Filter for \\[find-dired] processes. | 209 | ;; Filter for \\[find-dired] processes. |
| 195 | (let ((buf (process-buffer proc))) | 210 | (let ((buf (process-buffer proc)) |
| 211 | (inhibit-read-only t)) | ||
| 196 | (if (buffer-name buf) ; not killed? | 212 | (if (buffer-name buf) ; not killed? |
| 197 | (save-excursion | 213 | (save-excursion |
| 198 | (set-buffer buf) | 214 | (set-buffer buf) |
| @@ -229,7 +245,8 @@ Thus ARG can also contain additional grep options." | |||
| 229 | 245 | ||
| 230 | (defun find-dired-sentinel (proc state) | 246 | (defun find-dired-sentinel (proc state) |
| 231 | ;; Sentinel for \\[find-dired] processes. | 247 | ;; Sentinel for \\[find-dired] processes. |
| 232 | (let ((buf (process-buffer proc))) | 248 | (let ((buf (process-buffer proc)) |
| 249 | (inhibit-read-only t)) | ||
| 233 | (if (buffer-name buf) | 250 | (if (buffer-name buf) |
| 234 | (save-excursion | 251 | (save-excursion |
| 235 | (set-buffer buf) | 252 | (set-buffer buf) |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1be0b724590..b76c818a517 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -1031,7 +1031,8 @@ what properties to clear before refontifying a region.") | |||
| 1031 | 1031 | ||
| 1032 | ;; Called when any modification is made to buffer text. | 1032 | ;; Called when any modification is made to buffer text. |
| 1033 | (defun font-lock-after-change-function (beg end old-len) | 1033 | (defun font-lock-after-change-function (beg end old-len) |
| 1034 | (let ((inhibit-point-motion-hooks t)) | 1034 | (let ((inhibit-point-motion-hooks t) |
| 1035 | (inhibit-quit t)) | ||
| 1035 | (save-excursion | 1036 | (save-excursion |
| 1036 | (save-match-data | 1037 | (save-match-data |
| 1037 | ;; Rescan between start of lines enclosing the region. | 1038 | ;; Rescan between start of lines enclosing the region. |
diff --git a/lisp/frame.el b/lisp/frame.el index 1dbf8321bf3..96c9b596289 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -85,8 +85,9 @@ for pop-up frames." | |||
| 85 | :group 'frames) | 85 | :group 'frames) |
| 86 | 86 | ||
| 87 | (setq pop-up-frame-function | 87 | (setq pop-up-frame-function |
| 88 | (function (lambda () | 88 | ;; Using `function' here caused some sort of problem. |
| 89 | (make-frame pop-up-frame-alist)))) | 89 | '(lambda () |
| 90 | (make-frame pop-up-frame-alist))) | ||
| 90 | 91 | ||
| 91 | (defcustom special-display-frame-alist | 92 | (defcustom special-display-frame-alist |
| 92 | '((height . 14) (width . 80) (unsplittable . t)) | 93 | '((height . 14) (width . 80) (unsplittable . t)) |
| @@ -335,10 +336,22 @@ React to settings of `default-frame-alist', `initial-frame-alist' there." | |||
| 335 | frame-initial-geometry-arguments))) | 336 | frame-initial-geometry-arguments))) |
| 336 | (top (frame-parameter frame-initial-frame 'top))) | 337 | (top (frame-parameter frame-initial-frame 'top))) |
| 337 | (when (and (consp initial-top) (eq '- (car initial-top))) | 338 | (when (and (consp initial-top) (eq '- (car initial-top))) |
| 338 | (setq newparms | 339 | (let ((adjusted-top |
| 339 | (append newparms | 340 | (cond ((and (consp top) |
| 340 | `((top . ,(+ top (* lines char-height)))) | 341 | (eq '+ (car top))) |
| 341 | nil))) | 342 | (list '+ |
| 343 | (+ (cadr top) | ||
| 344 | (* lines char-height)))) | ||
| 345 | ((and (consp top) | ||
| 346 | (eq '- (car top))) | ||
| 347 | (list '- | ||
| 348 | (- (cadr top) | ||
| 349 | (* lines char-height)))) | ||
| 350 | (t (+ top (* lines char-height)))))) | ||
| 351 | (setq newparms | ||
| 352 | (append newparms | ||
| 353 | `((top . ,adjusted-top)) | ||
| 354 | nil)))) | ||
| 342 | (modify-frame-parameters frame-initial-frame newparms) | 355 | (modify-frame-parameters frame-initial-frame newparms) |
| 343 | (tool-bar-mode -1))))) | 356 | (tool-bar-mode -1))))) |
| 344 | 357 | ||
diff --git a/lisp/generic-x.el b/lisp/generic-x.el index fcc84a4a1d6..88703af799f 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el | |||
| @@ -1868,7 +1868,38 @@ you must reload generic-x to enable the specified modes." | |||
| 1868 | ;;List of comment characters | 1868 | ;;List of comment characters |
| 1869 | (list ?#) | 1869 | (list ?#) |
| 1870 | ;;List of keywords | 1870 | ;;List of keywords |
| 1871 | (list "alias" "pre-install" "post-install" "options" "probeall") | 1871 | (list |
| 1872 | "above" | ||
| 1873 | "alias" | ||
| 1874 | "below" | ||
| 1875 | "define" | ||
| 1876 | "depfile" | ||
| 1877 | "else" | ||
| 1878 | "elseif" | ||
| 1879 | "endif" | ||
| 1880 | "if" | ||
| 1881 | "include" | ||
| 1882 | "insmod_opt" | ||
| 1883 | "install" | ||
| 1884 | "keep" | ||
| 1885 | "options" | ||
| 1886 | "path" | ||
| 1887 | "generic_stringfile" | ||
| 1888 | "pcimapfile" | ||
| 1889 | "isapnpmapfile" | ||
| 1890 | "usbmapfile" | ||
| 1891 | "parportmapfile" | ||
| 1892 | "ieee1394mapfile" | ||
| 1893 | "pnpbiosmapfile" | ||
| 1894 | "probe" | ||
| 1895 | "probeall" | ||
| 1896 | "prune" | ||
| 1897 | "post-install" | ||
| 1898 | "post-remove" | ||
| 1899 | "pre-install" | ||
| 1900 | "pre-remove" | ||
| 1901 | "remove" | ||
| 1902 | "persistdir") | ||
| 1872 | ;;List of additional font-lock-expressions | 1903 | ;;List of additional font-lock-expressions |
| 1873 | nil | 1904 | nil |
| 1874 | ;;List of additional automode-alist expressions | 1905 | ;;List of additional automode-alist expressions |
diff --git a/lisp/generic.el b/lisp/generic.el index 8f13dc375e7..bd6fa0608aa 100644 --- a/lisp/generic.el +++ b/lisp/generic.el | |||
| @@ -54,7 +54,7 @@ | |||
| 54 | ;; | 54 | ;; |
| 55 | ;; * Additional expressions to font-lock. This should be a list of | 55 | ;; * Additional expressions to font-lock. This should be a list of |
| 56 | ;; expressions, each of which should be of the same form | 56 | ;; expressions, each of which should be of the same form |
| 57 | ;; as those in `font-lock-defaults-alist'. | 57 | ;; as those in `font-lock-keywords'. |
| 58 | ;; | 58 | ;; |
| 59 | ;; * List of regular expressions to be placed in auto-mode-alist. | 59 | ;; * List of regular expressions to be placed in auto-mode-alist. |
| 60 | ;; | 60 | ;; |
| @@ -206,7 +206,7 @@ KEYWORD-LIST is a list of keywords to highlight with `font-lock-keyword-face'. | |||
| 206 | Each keyword should be a string. | 206 | Each keyword should be a string. |
| 207 | 207 | ||
| 208 | FONT-LOCK-LIST is a list of additional expressions to highlight. Each entry | 208 | FONT-LOCK-LIST is a list of additional expressions to highlight. Each entry |
| 209 | in the list should have the same form as an entry in `font-lock-defaults-alist' | 209 | in the list should have the same form as an entry in `font-lock-keywords'. |
| 210 | 210 | ||
| 211 | AUTO-MODE-LIST is a list of regular expressions to add to `auto-mode-alist'. | 211 | AUTO-MODE-LIST is a list of regular expressions to add to `auto-mode-alist'. |
| 212 | These regexps are added to `auto-mode-alist' as soon as `define-generic-mode' | 212 | These regexps are added to `auto-mode-alist' as soon as `define-generic-mode' |
diff --git a/lisp/info-look.el b/lisp/info-look.el index 21f265199dd..a184567ea9c 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el | |||
| @@ -321,7 +321,7 @@ If optional argument QUERY is non-nil, query for the help mode." | |||
| 321 | (let* ((completions (info-lookup->completions topic mode)) | 321 | (let* ((completions (info-lookup->completions topic mode)) |
| 322 | (ignore-case (info-lookup->ignore-case topic mode)) | 322 | (ignore-case (info-lookup->ignore-case topic mode)) |
| 323 | (entry (or (assoc (if ignore-case (downcase item) item) completions) | 323 | (entry (or (assoc (if ignore-case (downcase item) item) completions) |
| 324 | (assoc-ignore-case item completions) | 324 | (assoc-string item completions t) |
| 325 | (error "Not documented as a %s: %s" topic (or item "")))) | 325 | (error "Not documented as a %s: %s" topic (or item "")))) |
| 326 | (modes (info-lookup->all-modes topic mode)) | 326 | (modes (info-lookup->all-modes topic mode)) |
| 327 | (window (selected-window)) | 327 | (window (selected-window)) |
diff --git a/lisp/info.el b/lisp/info.el index 9616dbb1feb..3438320beb4 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -918,7 +918,7 @@ a case-insensitive match is tried." | |||
| 918 | (beginning-of-line) | 918 | (beginning-of-line) |
| 919 | (setq end (point)) | 919 | (setq end (point)) |
| 920 | (push (list nodename other beg end) this-buffer-nodes))) | 920 | (push (list nodename other beg end) this-buffer-nodes))) |
| 921 | (if (assoc-ignore-case "top" this-buffer-nodes) | 921 | (if (assoc-string "top" this-buffer-nodes t) |
| 922 | (setq nodes (nconc this-buffer-nodes nodes)) | 922 | (setq nodes (nconc this-buffer-nodes nodes)) |
| 923 | (setq problems t) | 923 | (setq problems t) |
| 924 | (message "No `top' node in %s" Info-dir-file-name))))) | 924 | (message "No `top' node in %s" Info-dir-file-name))))) |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 5e957d6b8ab..dca8b80744e 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -1006,6 +1006,12 @@ Meaningful values for KEY include | |||
| 1006 | environment. | 1006 | environment. |
| 1007 | features value is a list of features requested in this | 1007 | features value is a list of features requested in this |
| 1008 | language environment. | 1008 | language environment. |
| 1009 | ctext-non-standard-encodings | ||
| 1010 | value is a list of non-standard encoding | ||
| 1011 | names used in extended segments of CTEXT. | ||
| 1012 | See the variable | ||
| 1013 | `ctext-non-standard-encodings' for more | ||
| 1014 | detail. | ||
| 1009 | 1015 | ||
| 1010 | The following keys take effect only when multibyte characters are | 1016 | The following keys take effect only when multibyte characters are |
| 1011 | globally disabled, i.e. the value of `default-enable-multibyte-characters' | 1017 | globally disabled, i.e. the value of `default-enable-multibyte-characters' |
| @@ -1685,7 +1691,12 @@ The default status is as follows: | |||
| 1685 | ;; (set-keyboard-coding-system-internal nil) | 1691 | ;; (set-keyboard-coding-system-internal nil) |
| 1686 | 1692 | ||
| 1687 | (setq nonascii-translation-table nil | 1693 | (setq nonascii-translation-table nil |
| 1688 | nonascii-insert-offset 0)) | 1694 | nonascii-insert-offset 0) |
| 1695 | |||
| 1696 | ;; Don't invoke fontset-related functions if fontsets aren't | ||
| 1697 | ;; supported in this build of Emacs. | ||
| 1698 | (and (fboundp 'fontset-list) | ||
| 1699 | (set-overriding-fontspec-internal nil))) | ||
| 1689 | 1700 | ||
| 1690 | (reset-language-environment) | 1701 | (reset-language-environment) |
| 1691 | 1702 | ||
| @@ -1791,6 +1802,15 @@ specifies the character set for the major languages of Western Europe." | |||
| 1791 | (while required-features | 1802 | (while required-features |
| 1792 | (require (car required-features)) | 1803 | (require (car required-features)) |
| 1793 | (setq required-features (cdr required-features)))) | 1804 | (setq required-features (cdr required-features)))) |
| 1805 | |||
| 1806 | ;; Don't invoke fontset-related functions if fontsets aren't | ||
| 1807 | ;; supported in this build of Emacs. | ||
| 1808 | (when (fboundp 'fontset-list) | ||
| 1809 | (let ((overriding-fontspec (get-language-info language-name | ||
| 1810 | 'overriding-fontspec))) | ||
| 1811 | (if overriding-fontspec | ||
| 1812 | (set-overriding-fontspec-internal overriding-fontspec)))) | ||
| 1813 | |||
| 1794 | (let ((func (get-language-info language-name 'setup-function))) | 1814 | (let ((func (get-language-info language-name 'setup-function))) |
| 1795 | (if (functionp func) | 1815 | (if (functionp func) |
| 1796 | (funcall func))) | 1816 | (funcall func))) |
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el index 19ff671834b..60ebf52fe35 100644 --- a/lisp/language/cyrillic.el +++ b/lisp/language/cyrillic.el | |||
| @@ -204,6 +204,9 @@ This works whether or not the table is Unicode-based or | |||
| 204 | ;; The table is set up later to encode both Unicode and 8859-5. | 204 | ;; The table is set up later to encode both Unicode and 8859-5. |
| 205 | (define-ccl-program ccl-encode-koi8-font | 205 | (define-ccl-program ccl-encode-koi8-font |
| 206 | `(0 | 206 | `(0 |
| 207 | (if (r2 >= 0) | ||
| 208 | ((r1 <<= 7) | ||
| 209 | (r1 += r2))) | ||
| 207 | (translate-character cyrillic-koi8-r-encode-table r0 r1)) | 210 | (translate-character cyrillic-koi8-r-encode-table r0 r1)) |
| 208 | "CCL program to encode Cyrillic chars to KOI font.") | 211 | "CCL program to encode Cyrillic chars to KOI font.") |
| 209 | 212 | ||
| @@ -472,10 +475,25 @@ Support for Russian using koi8-r and the russian-computer input method.") | |||
| 472 | (setcdr slot (cdr elt)) | 475 | (setcdr slot (cdr elt)) |
| 473 | (push elt ctext-non-standard-encodings-alist))) | 476 | (push elt ctext-non-standard-encodings-alist))) |
| 474 | 477 | ||
| 478 | (define-ccl-program ccl-encode-windows-1251-font | ||
| 479 | '(0 | ||
| 480 | ((r1 <<= 7) | ||
| 481 | (r1 += r2) | ||
| 482 | (translate-character encode-windows-1251 r0 r1) | ||
| 483 | ))) | ||
| 484 | |||
| 485 | (add-to-list 'font-ccl-encoder-alist | ||
| 486 | '("microsoft-cp1251" . ccl-encode-windows-1251-font)) | ||
| 487 | |||
| 475 | (set-language-info-alist | 488 | (set-language-info-alist |
| 476 | "Bulgarian" `((coding-system windows-1251) | 489 | "Bulgarian" `((coding-system windows-1251) |
| 477 | (coding-priority windows-1251) | 490 | (coding-priority windows-1251) |
| 478 | (ctext-non-standard-encodings "microsoft-cp1251") | 491 | (ctext-non-standard-encodings "microsoft-cp1251") |
| 492 | (overriding-fontspec | ||
| 493 | (,(get 'encode-windows-1251 'translation-table) | ||
| 494 | . (nil . "microsoft-cp1251")) | ||
| 495 | (,(get 'cyrillic-koi8-r-encode-table 'translation-table) | ||
| 496 | . (nil . "koi8-r"))) | ||
| 479 | (nonascii-translation | 497 | (nonascii-translation |
| 480 | . ,(get 'decode-windows-1251 'translation-table)) | 498 | . ,(get 'decode-windows-1251 'translation-table)) |
| 481 | (input-method . "bulgarian-bds") | 499 | (input-method . "bulgarian-bds") |
| @@ -488,6 +506,11 @@ Support for Russian using koi8-r and the russian-computer input method.") | |||
| 488 | "Belarusian" `((coding-system windows-1251) | 506 | "Belarusian" `((coding-system windows-1251) |
| 489 | (coding-priority windows-1251) | 507 | (coding-priority windows-1251) |
| 490 | (ctext-non-standard-encodings "microsoft-cp1251") | 508 | (ctext-non-standard-encodings "microsoft-cp1251") |
| 509 | (overriding-fontspec | ||
| 510 | (,(get 'encode-windows-1251 'translation-table) | ||
| 511 | . (nil . "microsoft-cp1251")) | ||
| 512 | (,(get 'cyrillic-koi8-r-encode-table 'translation-table) | ||
| 513 | . (nil . "koi8-r"))) | ||
| 491 | (nonascii-translation | 514 | (nonascii-translation |
| 492 | . ,(get 'decode-windows-1251 'translation-table)) | 515 | . ,(get 'decode-windows-1251 'translation-table)) |
| 493 | (input-method . "belarusian") | 516 | (input-method . "belarusian") |
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el index 9b3d5c18d4c..1a5dfad67f8 100644 --- a/lisp/mail/rfc822.el +++ b/lisp/mail/rfc822.el | |||
| @@ -30,11 +30,13 @@ | |||
| 30 | 30 | ||
| 31 | ;;; Code: | 31 | ;;; Code: |
| 32 | 32 | ||
| 33 | ;; uses address-start free, throws to address | 33 | (defvar rfc822-address-start) |
| 34 | |||
| 35 | ;; uses rfc822-address-start free, throws to address | ||
| 34 | (defun rfc822-bad-address (reason) | 36 | (defun rfc822-bad-address (reason) |
| 35 | (save-restriction | 37 | (save-restriction |
| 36 | (insert "_^_") | 38 | (insert "_^_") |
| 37 | (narrow-to-region address-start | 39 | (narrow-to-region rfc822-address-start |
| 38 | (if (re-search-forward "[,;]" nil t) | 40 | (if (re-search-forward "[,;]" nil t) |
| 39 | (max (point-min) (1- (point))) | 41 | (max (point-min) (1- (point))) |
| 40 | (point-max))) | 42 | (point-max))) |
| @@ -52,7 +54,7 @@ | |||
| 52 | ": \"") | 54 | ": \"") |
| 53 | (goto-char (point-max)) (insert "\")")) | 55 | (goto-char (point-max)) (insert "\")")) |
| 54 | (rfc822-nuke-whitespace) | 56 | (rfc822-nuke-whitespace) |
| 55 | (throw 'address (buffer-substring address-start (point)))) | 57 | (throw 'address (buffer-substring rfc822-address-start (point)))) |
| 56 | 58 | ||
| 57 | (defun rfc822-nuke-whitespace (&optional leave-space) | 59 | (defun rfc822-nuke-whitespace (&optional leave-space) |
| 58 | (let (ch) | 60 | (let (ch) |
| @@ -179,7 +181,7 @@ | |||
| 179 | ;; domain-literal is "[" *(dtext | quoted-pair) "]" | 181 | ;; domain-literal is "[" *(dtext | quoted-pair) "]" |
| 180 | ;; dtext is "[^][\\n" | 182 | ;; dtext is "[^][\\n" |
| 181 | ;; domain-ref is atom | 183 | ;; domain-ref is atom |
| 182 | (let ((address-start (point)) | 184 | (let ((rfc822-address-start (point)) |
| 183 | (n 0)) | 185 | (n 0)) |
| 184 | (catch 'address | 186 | (catch 'address |
| 185 | ;; optimize common cases: | 187 | ;; optimize common cases: |
| @@ -198,14 +200,14 @@ | |||
| 198 | (or (bobp) (/= (preceding-char) ?\ ) (delete-char -1)) | 200 | (or (bobp) (/= (preceding-char) ?\ ) (delete-char -1)) |
| 199 | ;; relying on the fact that rfc822-looking-at <char> | 201 | ;; relying on the fact that rfc822-looking-at <char> |
| 200 | ;; doesn't mung match-data | 202 | ;; doesn't mung match-data |
| 201 | (throw 'address (buffer-substring address-start (match-end 0))))) | 203 | (throw 'address (buffer-substring rfc822-address-start (match-end 0))))) |
| 202 | (goto-char address-start) | 204 | (goto-char rfc822-address-start) |
| 203 | (while t | 205 | (while t |
| 204 | (cond ((and (= n 1) (rfc822-looking-at ?@)) | 206 | (cond ((and (= n 1) (rfc822-looking-at ?@)) |
| 205 | ;; local-part@domain | 207 | ;; local-part@domain |
| 206 | (rfc822-snarf-domain) | 208 | (rfc822-snarf-domain) |
| 207 | (throw 'address | 209 | (throw 'address |
| 208 | (buffer-substring address-start (point)))) | 210 | (buffer-substring rfc822-address-start (point)))) |
| 209 | ((rfc822-looking-at ?:) | 211 | ((rfc822-looking-at ?:) |
| 210 | (cond ((not allow-groups) | 212 | (cond ((not allow-groups) |
| 211 | (rfc822-bad-address "A group name may not appear here")) | 213 | (rfc822-bad-address "A group name may not appear here")) |
| @@ -261,7 +263,7 @@ | |||
| 261 | (throw 'address nil)) | 263 | (throw 'address nil)) |
| 262 | ((= n 1) ; allow "foo" (losing unix seems to do this) | 264 | ((= n 1) ; allow "foo" (losing unix seems to do this) |
| 263 | (throw 'address | 265 | (throw 'address |
| 264 | (buffer-substring address-start (point)))) | 266 | (buffer-substring rfc822-address-start (point)))) |
| 265 | ((> n 1) | 267 | ((> n 1) |
| 266 | (rfc822-bad-address "Missing comma between addresses or badly-formatted address")) | 268 | (rfc822-bad-address "Missing comma between addresses or badly-formatted address")) |
| 267 | ((or (eobp) (= (following-char) ?,)) | 269 | ((or (eobp) (= (following-char) ?,)) |
| @@ -289,12 +291,12 @@ | |||
| 289 | (replace-match "\\1 " t)) | 291 | (replace-match "\\1 " t)) |
| 290 | 292 | ||
| 291 | (goto-char (point-min)) | 293 | (goto-char (point-min)) |
| 292 | (rfc822-nuke-whitespace) | ||
| 293 | (let ((list ()) | 294 | (let ((list ()) |
| 294 | tem | 295 | tem |
| 295 | address-start); this is for rfc822-bad-address | 296 | rfc822-address-start); this is for rfc822-bad-address |
| 297 | (rfc822-nuke-whitespace) | ||
| 296 | (while (not (eobp)) | 298 | (while (not (eobp)) |
| 297 | (setq address-start (point)) | 299 | (setq rfc822-address-start (point)) |
| 298 | (setq tem | 300 | (setq tem |
| 299 | (catch 'address ; this is for rfc822-bad-address | 301 | (catch 'address ; this is for rfc822-bad-address |
| 300 | (cond ((rfc822-looking-at ?\,) | 302 | (cond ((rfc822-looking-at ?\,) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index acc7e4839dd..6185fd12286 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -1687,19 +1687,22 @@ It returns t if it got any new messages." | |||
| 1687 | (delete-region (point) (search-backward ":")) | 1687 | (delete-region (point) (search-backward ":")) |
| 1688 | (insert ": 8bit"))) | 1688 | (insert ": 8bit"))) |
| 1689 | (if base64-header-field-end | 1689 | (if base64-header-field-end |
| 1690 | (condition-case nil | 1690 | (save-excursion |
| 1691 | (save-excursion | 1691 | (when |
| 1692 | (base64-decode-region (1+ header-end) | 1692 | (condition-case nil |
| 1693 | (- (point) 2)) | 1693 | (progn |
| 1694 | ;; Change "base64" to "8bit", to reflect the | 1694 | (base64-decode-region (1+ header-end) |
| 1695 | ;; decoding we just did. | 1695 | (- (point) 2)) |
| 1696 | (goto-char (1+ header-end)) | 1696 | t) |
| 1697 | (while (search-forward "\r\n" (point-max) t) | 1697 | (error nil)) |
| 1698 | (replace-match "\n")) | 1698 | ;; Change "base64" to "8bit", to reflect the |
| 1699 | (goto-char base64-header-field-end) | 1699 | ;; decoding we just did. |
| 1700 | (delete-region (point) (search-backward ":")) | 1700 | (goto-char (1+ header-end)) |
| 1701 | (insert ": 8bit")) | 1701 | (while (search-forward "\r\n" (point-max) t) |
| 1702 | (error nil))) | 1702 | (replace-match "\n")) |
| 1703 | (goto-char base64-header-field-end) | ||
| 1704 | (delete-region (point) (search-backward ":")) | ||
| 1705 | (insert ": 8bit")))) | ||
| 1703 | (setq last-coding-system-used nil) | 1706 | (setq last-coding-system-used nil) |
| 1704 | (or rmail-enable-mime | 1707 | (or rmail-enable-mime |
| 1705 | (not rmail-enable-multibyte) | 1708 | (not rmail-enable-multibyte) |
| @@ -1829,15 +1832,21 @@ It returns t if it got any new messages." | |||
| 1829 | (delete-region (point) (search-backward ":")) | 1832 | (delete-region (point) (search-backward ":")) |
| 1830 | (insert ": 8bit"))) | 1833 | (insert ": 8bit"))) |
| 1831 | (if base64-header-field-end | 1834 | (if base64-header-field-end |
| 1832 | (condition-case nil | 1835 | (save-excursion |
| 1833 | (save-excursion | 1836 | (when |
| 1834 | (base64-decode-region header-end (point)) | 1837 | (condition-case nil |
| 1835 | ;; Change "base64" to "8bit", to reflect the | 1838 | (progn |
| 1836 | ;; decoding we just did. | 1839 | (base64-decode-region (1+ header-end) (point)) |
| 1837 | (goto-char base64-header-field-end) | 1840 | t) |
| 1838 | (delete-region (point) (search-backward ":")) | 1841 | (error nil)) |
| 1839 | (insert ": 8bit")) | 1842 | (goto-char header-end) |
| 1840 | (error nil)))) | 1843 | (while (search-forward "\r\n" (point-max) t) |
| 1844 | (replace-match "\n")) | ||
| 1845 | ;; Change "base64" to "8bit", to reflect the | ||
| 1846 | ;; decoding we just did. | ||
| 1847 | (goto-char base64-header-field-end) | ||
| 1848 | (delete-region (point) (search-backward ":")) | ||
| 1849 | (insert ": 8bit"))))) | ||
| 1841 | 1850 | ||
| 1842 | (save-excursion | 1851 | (save-excursion |
| 1843 | (save-restriction | 1852 | (save-restriction |
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index b96e7f1a298..0277bd0aabc 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el | |||
| @@ -686,7 +686,7 @@ | |||
| 686 | :prefix "ange-ftp-") | 686 | :prefix "ange-ftp-") |
| 687 | 687 | ||
| 688 | (defcustom ange-ftp-name-format | 688 | (defcustom ange-ftp-name-format |
| 689 | '("^/\\(\\([^@/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) | 689 | '("^/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) |
| 690 | "*Format of a fully expanded remote file name. | 690 | "*Format of a fully expanded remote file name. |
| 691 | 691 | ||
| 692 | This is a list of the form \(REGEXP HOST USER NAME\), | 692 | This is a list of the form \(REGEXP HOST USER NAME\), |
| @@ -694,7 +694,7 @@ where REGEXP is a regular expression matching | |||
| 694 | the full remote name, and HOST, USER, and NAME are the numbers of | 694 | the full remote name, and HOST, USER, and NAME are the numbers of |
| 695 | parenthesized expressions in REGEXP for the components (in that order)." | 695 | parenthesized expressions in REGEXP for the components (in that order)." |
| 696 | :group 'ange-ftp | 696 | :group 'ange-ftp |
| 697 | :type '(list regexp | 697 | :type '(list (regexp :tag "Name regexp") |
| 698 | (integer :tag "Host group") | 698 | (integer :tag "Host group") |
| 699 | (integer :tag "User group") | 699 | (integer :tag "User group") |
| 700 | (integer :tag "Name group"))) | 700 | (integer :tag "Name group"))) |
| @@ -1918,7 +1918,8 @@ on the gateway machine to do the ftp instead." | |||
| 1918 | ;; but that doesn't work: ftp never responds. | 1918 | ;; but that doesn't work: ftp never responds. |
| 1919 | ;; Can anyone find a fix for that? | 1919 | ;; Can anyone find a fix for that? |
| 1920 | (let ((process-connection-type t) | 1920 | (let ((process-connection-type t) |
| 1921 | (process-environment process-environment) | 1921 | ;; Copy this so we don't alter it permanently. |
| 1922 | (process-environment (copy-tree process-environment)) | ||
| 1922 | (buffer (get-buffer-create name))) | 1923 | (buffer (get-buffer-create name))) |
| 1923 | (save-excursion | 1924 | (save-excursion |
| 1924 | (set-buffer buffer) | 1925 | (set-buffer buffer) |
diff --git a/lisp/net/zone-mode.el b/lisp/net/zone-mode.el index 591deee3144..6b4d22f9b13 100644 --- a/lisp/net/zone-mode.el +++ b/lisp/net/zone-mode.el | |||
| @@ -92,7 +92,7 @@ Zone-mode does two things: | |||
| 92 | 92 | ||
| 93 | - fontification" | 93 | - fontification" |
| 94 | 94 | ||
| 95 | (add-hook 'write-file-hooks 'zone-mode-update-serial-hook nil t) | 95 | (add-hook 'write-file-functions 'zone-mode-update-serial-hook nil t) |
| 96 | 96 | ||
| 97 | (if (null zone-mode-syntax-table) | 97 | (if (null zone-mode-syntax-table) |
| 98 | (zone-mode-load-time-setup)) ;; should have been run at load-time | 98 | (zone-mode-load-time-setup)) ;; should have been run at load-time |
diff --git a/lisp/obsolete/sc.el b/lisp/obsolete/sc.el index e9798a0a253..26486577aa4 100644 --- a/lisp/obsolete/sc.el +++ b/lisp/obsolete/sc.el | |||
| @@ -11,5 +11,7 @@ | |||
| 11 | (require 'supercite) | 11 | (require 'supercite) |
| 12 | (provide 'sc) | 12 | (provide 'sc) |
| 13 | 13 | ||
| 14 | (message "The name `sc' works but is obsolete; please use `supercite' instead") | ||
| 15 | |||
| 14 | ;;; arch-tag: 31e8ae19-689e-4b7d-9161-6d7dd60c6ece | 16 | ;;; arch-tag: 31e8ae19-689e-4b7d-9161-6d7dd60c6ece |
| 15 | ;;; sc.el ends here | 17 | ;;; sc.el ends here |
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el index 5c6aa8f3abf..11499444920 100644 --- a/lisp/play/handwrite.el +++ b/lisp/play/handwrite.el | |||
| @@ -159,8 +159,7 @@ Variables: handwrite-linespace (default 12) | |||
| 159 | (setq next-line-add-newlines t) | 159 | (setq next-line-add-newlines t) |
| 160 | (switch-to-buffer ps-buf-name) | 160 | (switch-to-buffer ps-buf-name) |
| 161 | (handwrite-insert-header buf-name) | 161 | (handwrite-insert-header buf-name) |
| 162 | (insert "\n(\\nCreated by GNU Emacs' handwrite version " | 162 | (insert "%%Creator: GNU Emacs' handwrite version " emacs-version "\n") |
| 163 | emacs-version "\\n\\n)=print flush\n") | ||
| 164 | (handwrite-insert-preamble) | 163 | (handwrite-insert-preamble) |
| 165 | (handwrite-insert-info) | 164 | (handwrite-insert-info) |
| 166 | (handwrite-insert-font) | 165 | (handwrite-insert-font) |
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index f3a540fc491..b7bf99efa2e 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el | |||
| @@ -161,7 +161,7 @@ | |||
| 161 | ;; More compile-time-macros | 161 | ;; More compile-time-macros |
| 162 | (eval-when-compile | 162 | (eval-when-compile |
| 163 | (defmacro save-buffer-state-x (&rest body) ; similar to EMACS/lazy-lock.el | 163 | (defmacro save-buffer-state-x (&rest body) ; similar to EMACS/lazy-lock.el |
| 164 | (let ((modified (gensym "save-buffer-state-x-modified-"))) | 164 | (let ((modified (with-no-warnings (gensym "save-buffer-state-x-modified-")))) |
| 165 | `(let ((,modified (buffer-modified-p))) | 165 | `(let ((,modified (buffer-modified-p))) |
| 166 | (unwind-protect | 166 | (unwind-protect |
| 167 | (let ((buffer-undo-list t) (inhibit-read-only t) | 167 | (let ((buffer-undo-list t) (inhibit-read-only t) |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 48a007aef27..76e00cc4438 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -162,11 +162,14 @@ Used to grey out relevant toolbar icons.") | |||
| 162 | (gud-run . "gud-run") | 162 | (gud-run . "gud-run") |
| 163 | (gud-until . "gud-until") | 163 | (gud-until . "gud-until") |
| 164 | (gud-cont . "gud-cont") | 164 | (gud-cont . "gud-cont") |
| 165 | (gud-step . "gud-step") | 165 | ;; gud-s, gud-si etc. instead of gud-step, |
| 166 | (gud-next . "gud-next") | 166 | ;; gud-stepi, to avoid file-name clashes on DOS |
| 167 | ;; 8+3 filesystems. | ||
| 168 | (gud-step . "gud-s") | ||
| 169 | (gud-next . "gud-n") | ||
| 167 | (gud-finish . "gud-finish") | 170 | (gud-finish . "gud-finish") |
| 168 | (gud-stepi . "gud-stepi") | 171 | (gud-stepi . "gud-si") |
| 169 | (gud-nexti . "gud-nexti") | 172 | (gud-nexti . "gud-ni") |
| 170 | (gud-up . "gud-up") | 173 | (gud-up . "gud-up") |
| 171 | (gud-down . "gud-down")) | 174 | (gud-down . "gud-down")) |
| 172 | map) | 175 | map) |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index e63dda1c663..a23dc0a307e 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -2052,7 +2052,8 @@ STRING This is ignored for the purposes of calculating | |||
| 2052 | (progn | 2052 | (progn |
| 2053 | (setq result (append result val)) | 2053 | (setq result (append result val)) |
| 2054 | (setq align-point (point)))) | 2054 | (setq align-point (point)))) |
| 2055 | (forward-char -1) | 2055 | (or (bobp) |
| 2056 | (forward-char -1)) | ||
| 2056 | (skip-chars-forward "[a-z0-9]*?") | 2057 | (skip-chars-forward "[a-z0-9]*?") |
| 2057 | ) | 2058 | ) |
| 2058 | ((string-match "[])}]" x) | 2059 | ((string-match "[])}]" x) |
diff --git a/lisp/register.el b/lisp/register.el index 8185ae4bc44..0ba6a9addd6 100644 --- a/lisp/register.el +++ b/lisp/register.el | |||
| @@ -304,8 +304,10 @@ START and END are buffer positions indicating what to prepend." | |||
| 304 | 304 | ||
| 305 | (defun copy-rectangle-to-register (register start end &optional delete-flag) | 305 | (defun copy-rectangle-to-register (register start end &optional delete-flag) |
| 306 | "Copy rectangular region into register REGISTER. | 306 | "Copy rectangular region into register REGISTER. |
| 307 | With prefix arg, delete as well. | 307 | With prefix arg, delete as well. To insert this register |
| 308 | Called from program, takes four args: REGISTER, START, END and DELETE-FLAG. | 308 | in the buffer, use \\[insert-register]. |
| 309 | |||
| 310 | Called from a program, takes four args: REGISTER, START, END and DELETE-FLAG. | ||
| 309 | START and END are buffer positions giving two corners of rectangle." | 311 | START and END are buffer positions giving two corners of rectangle." |
| 310 | (interactive "cCopy rectangle to register: \nr\nP") | 312 | (interactive "cCopy rectangle to register: \nr\nP") |
| 311 | (set-register register | 313 | (set-register register |
diff --git a/lisp/shell.el b/lisp/shell.el index cc83dcf1429..1817a1fd3b4 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -167,7 +167,7 @@ This is a fine thing to set in your `.emacs' file.") | |||
| 167 | (defvar shell-file-name-chars | 167 | (defvar shell-file-name-chars |
| 168 | (if (memq system-type '(ms-dos windows-nt cygwin)) | 168 | (if (memq system-type '(ms-dos windows-nt cygwin)) |
| 169 | "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" | 169 | "~/A-Za-z0-9_^$!#%&{}@`'.,:()-" |
| 170 | "~/A-Za-z0-9+@:_.$#%,={}-") | 170 | "[]~/A-Za-z0-9+@:_.$#%,={}-") |
| 171 | "String of characters valid in a file name. | 171 | "String of characters valid in a file name. |
| 172 | This variable is used to initialize `comint-file-name-chars' in the | 172 | This variable is used to initialize `comint-file-name-chars' in the |
| 173 | shell buffer. The value may depend on the operating system or shell. | 173 | shell buffer. The value may depend on the operating system or shell. |
| @@ -941,36 +941,37 @@ Returns t if successful." | |||
| 941 | "Dynamically complete at point as a command. | 941 | "Dynamically complete at point as a command. |
| 942 | See `shell-dynamic-complete-filename'. Returns t if successful." | 942 | See `shell-dynamic-complete-filename'. Returns t if successful." |
| 943 | (let* ((filename (or (comint-match-partial-filename) "")) | 943 | (let* ((filename (or (comint-match-partial-filename) "")) |
| 944 | (pathnondir (file-name-nondirectory filename)) | 944 | (filenondir (file-name-nondirectory filename)) |
| 945 | (paths (cdr (reverse exec-path))) | 945 | (path-dirs (cdr (reverse exec-path))) |
| 946 | (cwd (file-name-as-directory (expand-file-name default-directory))) | 946 | (cwd (file-name-as-directory (expand-file-name default-directory))) |
| 947 | (ignored-extensions | 947 | (ignored-extensions |
| 948 | (and comint-completion-fignore | 948 | (and comint-completion-fignore |
| 949 | (mapconcat (function (lambda (x) (concat (regexp-quote x) "$"))) | 949 | (mapconcat (function (lambda (x) (concat (regexp-quote x) "$"))) |
| 950 | comint-completion-fignore "\\|"))) | 950 | comint-completion-fignore "\\|"))) |
| 951 | (path "") (comps-in-path ()) (file "") (filepath "") (completions ())) | 951 | (dir "") (comps-in-dir ()) |
| 952 | ;; Go thru each path in the search path, finding completions. | 952 | (file "") (abs-file-name "") (completions ())) |
| 953 | (while paths | 953 | ;; Go thru each dir in the search path, finding completions. |
| 954 | (setq path (file-name-as-directory (comint-directory (or (car paths) "."))) | 954 | (while path-dirs |
| 955 | comps-in-path (and (file-accessible-directory-p path) | 955 | (setq dir (file-name-as-directory (comint-directory (or (car path-dirs) "."))) |
| 956 | (file-name-all-completions pathnondir path))) | 956 | comps-in-dir (and (file-accessible-directory-p dir) |
| 957 | (file-name-all-completions filenondir dir))) | ||
| 957 | ;; Go thru each completion found, to see whether it should be used. | 958 | ;; Go thru each completion found, to see whether it should be used. |
| 958 | (while comps-in-path | 959 | (while comps-in-dir |
| 959 | (setq file (car comps-in-path) | 960 | (setq file (car comps-in-dir) |
| 960 | filepath (concat path file)) | 961 | abs-file-name (concat dir file)) |
| 961 | (if (and (not (member file completions)) | 962 | (if (and (not (member file completions)) |
| 962 | (not (and ignored-extensions | 963 | (not (and ignored-extensions |
| 963 | (string-match ignored-extensions file))) | 964 | (string-match ignored-extensions file))) |
| 964 | (or (string-equal path cwd) | 965 | (or (string-equal dir cwd) |
| 965 | (not (file-directory-p filepath))) | 966 | (not (file-directory-p abs-file-name))) |
| 966 | (or (null shell-completion-execonly) | 967 | (or (null shell-completion-execonly) |
| 967 | (file-executable-p filepath))) | 968 | (file-executable-p abs-file-name))) |
| 968 | (setq completions (cons file completions))) | 969 | (setq completions (cons file completions))) |
| 969 | (setq comps-in-path (cdr comps-in-path))) | 970 | (setq comps-in-dir (cdr comps-in-dir))) |
| 970 | (setq paths (cdr paths))) | 971 | (setq path-dirs (cdr path-dirs))) |
| 971 | ;; OK, we've got a list of completions. | 972 | ;; OK, we've got a list of completions. |
| 972 | (let ((success (let ((comint-completion-addsuffix nil)) | 973 | (let ((success (let ((comint-completion-addsuffix nil)) |
| 973 | (comint-dynamic-simple-complete pathnondir completions)))) | 974 | (comint-dynamic-simple-complete filenondir completions)))) |
| 974 | (if (and (memq success '(sole shortest)) comint-completion-addsuffix | 975 | (if (and (memq success '(sole shortest)) comint-completion-addsuffix |
| 975 | (not (file-directory-p (comint-match-partial-filename)))) | 976 | (not (file-directory-p (comint-match-partial-filename)))) |
| 976 | (insert " ")) | 977 | (insert " ")) |
diff --git a/lisp/simple.el b/lisp/simple.el index ade177c5b8e..d23ed11c6c3 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -3735,9 +3735,9 @@ See also `read-mail-command' concerning reading mail." | |||
| 3735 | (same-window-buffer-names nil) | 3735 | (same-window-buffer-names nil) |
| 3736 | (same-window-regexps nil)) | 3736 | (same-window-regexps nil)) |
| 3737 | (funcall switch-function "*mail*"))) | 3737 | (funcall switch-function "*mail*"))) |
| 3738 | (let ((cc (cdr (assoc-ignore-case "cc" other-headers))) | 3738 | (let ((cc (cdr (assoc-string "cc" other-headers t))) |
| 3739 | (in-reply-to (cdr (assoc-ignore-case "in-reply-to" other-headers))) | 3739 | (in-reply-to (cdr (assoc-string "in-reply-to" other-headers t))) |
| 3740 | (body (cdr (assoc-ignore-case "body" other-headers)))) | 3740 | (body (cdr (assoc-string "body" other-headers t)))) |
| 3741 | (or (mail continue to subject in-reply-to cc yank-action send-actions) | 3741 | (or (mail continue to subject in-reply-to cc yank-action send-actions) |
| 3742 | continue | 3742 | continue |
| 3743 | (error "Message aborted")) | 3743 | (error "Message aborted")) |
diff --git a/lisp/subr.el b/lisp/subr.el index 2996f2903e0..a2b09d6b63b 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -298,27 +298,19 @@ If TEST is omitted or nil, `equal' is used." | |||
| 298 | (setq tail (cdr tail))) | 298 | (setq tail (cdr tail))) |
| 299 | value)) | 299 | value)) |
| 300 | 300 | ||
| 301 | (make-obsolete 'assoc-ignore-case 'assoc-string) | ||
| 301 | (defun assoc-ignore-case (key alist) | 302 | (defun assoc-ignore-case (key alist) |
| 302 | "Like `assoc', but ignores differences in case and text representation. | 303 | "Like `assoc', but ignores differences in case and text representation. |
| 303 | KEY must be a string. Upper-case and lower-case letters are treated as equal. | 304 | KEY must be a string. Upper-case and lower-case letters are treated as equal. |
| 304 | Unibyte strings are converted to multibyte for comparison." | 305 | Unibyte strings are converted to multibyte for comparison." |
| 305 | (let (element) | 306 | (assoc-string key alist t)) |
| 306 | (while (and alist (not element)) | ||
| 307 | (if (eq t (compare-strings key 0 nil (car (car alist)) 0 nil t)) | ||
| 308 | (setq element (car alist))) | ||
| 309 | (setq alist (cdr alist))) | ||
| 310 | element)) | ||
| 311 | 307 | ||
| 308 | (make-obsolete 'assoc-ignore-representation 'assoc-string) | ||
| 312 | (defun assoc-ignore-representation (key alist) | 309 | (defun assoc-ignore-representation (key alist) |
| 313 | "Like `assoc', but ignores differences in text representation. | 310 | "Like `assoc', but ignores differences in text representation. |
| 314 | KEY must be a string. | 311 | KEY must be a string. |
| 315 | Unibyte strings are converted to multibyte for comparison." | 312 | Unibyte strings are converted to multibyte for comparison." |
| 316 | (let (element) | 313 | (assoc-string key alist nil)) |
| 317 | (while (and alist (not element)) | ||
| 318 | (if (eq t (compare-strings key 0 nil (car (car alist)) 0 nil)) | ||
| 319 | (setq element (car alist))) | ||
| 320 | (setq alist (cdr alist))) | ||
| 321 | element)) | ||
| 322 | 314 | ||
| 323 | (defun member-ignore-case (elt list) | 315 | (defun member-ignore-case (elt list) |
| 324 | "Like `member', but ignores differences in case and text representation. | 316 | "Like `member', but ignores differences in case and text representation. |
| @@ -1563,7 +1555,18 @@ Replaces `category' properties with their defined properties." | |||
| 1563 | (defvar yank-undo-function) | 1555 | (defvar yank-undo-function) |
| 1564 | 1556 | ||
| 1565 | (defun insert-for-yank (string) | 1557 | (defun insert-for-yank (string) |
| 1558 | "Calls `insert-for-yank-1' repetitively for each `yank-handler' segment. | ||
| 1559 | |||
| 1560 | See `insert-for-yank-1' for more details." | ||
| 1561 | (let (to) | ||
| 1562 | (while (setq to (next-single-property-change 0 'yank-handler string)) | ||
| 1563 | (insert-for-yank-1 (substring string 0 to)) | ||
| 1564 | (setq string (substring string to)))) | ||
| 1565 | (insert-for-yank-1 string)) | ||
| 1566 | |||
| 1567 | (defun insert-for-yank-1 (string) | ||
| 1566 | "Insert STRING at point, stripping some text properties. | 1568 | "Insert STRING at point, stripping some text properties. |
| 1569 | |||
| 1567 | Strip text properties from the inserted text according to | 1570 | Strip text properties from the inserted text according to |
| 1568 | `yank-excluded-properties'. Otherwise just like (insert STRING). | 1571 | `yank-excluded-properties'. Otherwise just like (insert STRING). |
| 1569 | 1572 | ||
| @@ -1809,6 +1812,7 @@ in BODY." | |||
| 1809 | (defvar delayed-mode-hooks nil | 1812 | (defvar delayed-mode-hooks nil |
| 1810 | "List of delayed mode hooks waiting to be run.") | 1813 | "List of delayed mode hooks waiting to be run.") |
| 1811 | (make-variable-buffer-local 'delayed-mode-hooks) | 1814 | (make-variable-buffer-local 'delayed-mode-hooks) |
| 1815 | (put 'delay-mode-hooks 'permanent-local t) | ||
| 1812 | 1816 | ||
| 1813 | (defun run-mode-hooks (&rest hooks) | 1817 | (defun run-mode-hooks (&rest hooks) |
| 1814 | "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. | 1818 | "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. |
diff --git a/lisp/term.el b/lisp/term.el index d2088a29785..b329004c083 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -1290,6 +1290,7 @@ buffer. The hook term-exec-hook is run after each exec." | |||
| 1290 | (goto-char (point-max)) | 1290 | (goto-char (point-max)) |
| 1291 | (set-marker (process-mark proc) (point)) | 1291 | (set-marker (process-mark proc) (point)) |
| 1292 | (set-process-filter proc 'term-emulate-terminal) | 1292 | (set-process-filter proc 'term-emulate-terminal) |
| 1293 | (set-process-sentinel proc 'term-sentinel) | ||
| 1293 | ;; Feed it the startfile. | 1294 | ;; Feed it the startfile. |
| 1294 | (cond (startfile | 1295 | (cond (startfile |
| 1295 | ;;This is guaranteed to wait long enough | 1296 | ;;This is guaranteed to wait long enough |
| @@ -1306,6 +1307,49 @@ buffer. The hook term-exec-hook is run after each exec." | |||
| 1306 | (run-hooks 'term-exec-hook) | 1307 | (run-hooks 'term-exec-hook) |
| 1307 | buffer))) | 1308 | buffer))) |
| 1308 | 1309 | ||
| 1310 | (defun term-sentinel (proc msg) | ||
| 1311 | "Sentinel for term buffers. | ||
| 1312 | The main purpose is to get rid of the local keymap." | ||
| 1313 | (let ((buffer (process-buffer proc))) | ||
| 1314 | (if (memq (process-status proc) '(signal exit)) | ||
| 1315 | (progn | ||
| 1316 | (if (null (buffer-name buffer)) | ||
| 1317 | ;; buffer killed | ||
| 1318 | (set-process-buffer proc nil) | ||
| 1319 | (let ((obuf (current-buffer))) | ||
| 1320 | ;; save-excursion isn't the right thing if | ||
| 1321 | ;; process-buffer is current-buffer | ||
| 1322 | (unwind-protect | ||
| 1323 | (progn | ||
| 1324 | ;; Write something in the compilation buffer | ||
| 1325 | ;; and hack its mode line. | ||
| 1326 | (set-buffer buffer) | ||
| 1327 | ;; Get rid of local keymap. | ||
| 1328 | (use-local-map nil) | ||
| 1329 | (term-handle-exit (process-name proc) | ||
| 1330 | msg) | ||
| 1331 | ;; Since the buffer and mode line will show that the | ||
| 1332 | ;; process is dead, we can delete it now. Otherwise it | ||
| 1333 | ;; will stay around until M-x list-processes. | ||
| 1334 | (delete-process proc)) | ||
| 1335 | (set-buffer obuf)))) | ||
| 1336 | )))) | ||
| 1337 | |||
| 1338 | (defun term-handle-exit (process-name msg) | ||
| 1339 | "Write process exit (or other change) message MSG in the current buffer." | ||
| 1340 | (let ((buffer-read-only nil) | ||
| 1341 | (omax (point-max)) | ||
| 1342 | (opoint (point))) | ||
| 1343 | ;; Record where we put the message, so we can ignore it | ||
| 1344 | ;; later on. | ||
| 1345 | (goto-char omax) | ||
| 1346 | (insert ?\n "Process " process-name " " msg) | ||
| 1347 | ;; Force mode line redisplay soon. | ||
| 1348 | (force-mode-line-update) | ||
| 1349 | (if (and opoint (< opoint omax)) | ||
| 1350 | (goto-char opoint)))) | ||
| 1351 | |||
| 1352 | |||
| 1309 | ;;; Name to use for TERM. | 1353 | ;;; Name to use for TERM. |
| 1310 | ;;; Using "emacs" loses, because bash disables editing if TERM == emacs. | 1354 | ;;; Using "emacs" loses, because bash disables editing if TERM == emacs. |
| 1311 | (defvar term-term-name "eterm") | 1355 | (defvar term-term-name "eterm") |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index dc4f521c018..e71eb440c12 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -267,7 +267,9 @@ property of the major mode name.") | |||
| 267 | (defun mail-mode-flyspell-verify () | 267 | (defun mail-mode-flyspell-verify () |
| 268 | "This function is used for `flyspell-generic-check-word-p' in Mail mode." | 268 | "This function is used for `flyspell-generic-check-word-p' in Mail mode." |
| 269 | (let ((in-headers (save-excursion | 269 | (let ((in-headers (save-excursion |
| 270 | (re-search-forward mail-header-separator nil t))) | 270 | ;; When mail-header-separator is "", |
| 271 | ;; it is likely to be found in both directions. | ||
| 272 | (not (re-search-backward (concat "^" (regexp-quote mail-header-separator) "$") nil t)))) | ||
| 271 | (in-signature (save-excursion | 273 | (in-signature (save-excursion |
| 272 | (re-search-backward message-signature-separator nil t)))) | 274 | (re-search-backward message-signature-separator nil t)))) |
| 273 | (cond (in-headers | 275 | (cond (in-headers |
| @@ -1628,7 +1630,7 @@ misspelled words backwards." | |||
| 1628 | (defun flyspell-abbrev-table () | 1630 | (defun flyspell-abbrev-table () |
| 1629 | (if flyspell-use-global-abbrev-table-p | 1631 | (if flyspell-use-global-abbrev-table-p |
| 1630 | global-abbrev-table | 1632 | global-abbrev-table |
| 1631 | local-abbrev-table)) | 1633 | (or local-abbrev-table global-abbrev-table))) |
| 1632 | 1634 | ||
| 1633 | ;*---------------------------------------------------------------------*/ | 1635 | ;*---------------------------------------------------------------------*/ |
| 1634 | ;* flyspell-define-abbrev ... */ | 1636 | ;* flyspell-define-abbrev ... */ |
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 44e82efc5b7..93ea3cc0c14 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Keywords: wp, convenience | 5 | ;; Keywords: wp, convenience |
| 6 | ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com> | 6 | ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com> |
| 7 | ;; Created: Sat Jul 08 2000 13:28:45 (PST) | 7 | ;; Created: Sat Jul 08 2000 13:28:45 (PST) |
| 8 | ;; Revised: jue jun 05 2003 22:00:02 (Hora de verano romance) | 8 | ;; Revised: Tue Dec 09 2003 14:36:50 (PST) |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
| @@ -837,6 +837,9 @@ simply by any key input." | |||
| 837 | :type 'hook | 837 | :type 'hook |
| 838 | :group 'table-hooks) | 838 | :group 'table-hooks) |
| 839 | 839 | ||
| 840 | (defcustom table-yank-handler '(nil nil t nil) | ||
| 841 | "*yank-handler for table.") | ||
| 842 | |||
| 840 | (setplist 'table-disable-incompatibility-warning nil) | 843 | (setplist 'table-disable-incompatibility-warning nil) |
| 841 | 844 | ||
| 842 | (defvar table-disable-menu (null (and (locate-library "easymenu") | 845 | (defvar table-disable-menu (null (and (locate-library "easymenu") |
| @@ -5228,7 +5231,8 @@ and the right cell border character." | |||
| 5228 | 5231 | ||
| 5229 | (defun table--put-cell-indicator-property (beg end &optional object) | 5232 | (defun table--put-cell-indicator-property (beg end &optional object) |
| 5230 | "Put cell property which indicates that the location is within a table cell." | 5233 | "Put cell property which indicates that the location is within a table cell." |
| 5231 | (put-text-property beg end 'table-cell t object)) | 5234 | (put-text-property beg end 'table-cell t object) |
| 5235 | (put-text-property beg end 'yank-handler table-yank-handler object)) | ||
| 5232 | 5236 | ||
| 5233 | (defun table--put-cell-face-property (beg end &optional object) | 5237 | (defun table--put-cell-face-property (beg end &optional object) |
| 5234 | "Put cell face property." | 5238 | "Put cell face property." |
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 1bead17e10c..25670e8c310 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Robert J. Chassell | 6 | ;; Author: Robert J. Chassell |
| 7 | ;; Date: [See date below for texinfo-version] | 7 | ;; Date: [See date below for texinfo-version] |
| 8 | ;; Maintainer: bug-texinfo@gnu.org | 8 | ;; Maintainer: FSF |
| 9 | ;; Keywords: maint, tex, docs | 9 | ;; Keywords: maint, tex, docs |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -59,6 +59,12 @@ | |||
| 59 | :type 'string | 59 | :type 'string |
| 60 | :group 'texinfo) | 60 | :group 'texinfo) |
| 61 | 61 | ||
| 62 | (defcustom texinfo-mode-hook nil | ||
| 63 | "Normal hook run when entering Texinfo mode." | ||
| 64 | :type 'hook | ||
| 65 | :options '(turn-on-auto-fill flyspell-mode) | ||
| 66 | :group 'texinfo) | ||
| 67 | |||
| 62 | 68 | ||
| 63 | ;;; Autoloads: | 69 | ;;; Autoloads: |
| 64 | 70 | ||
diff --git a/lisp/toolbar/gud-next.pbm b/lisp/toolbar/gud-n.pbm index dc2a15323e3..dc2a15323e3 100644 --- a/lisp/toolbar/gud-next.pbm +++ b/lisp/toolbar/gud-n.pbm | |||
| Binary files differ | |||
diff --git a/lisp/toolbar/gud-next.xpm b/lisp/toolbar/gud-n.xpm index 0e631de18e1..0e631de18e1 100644 --- a/lisp/toolbar/gud-next.xpm +++ b/lisp/toolbar/gud-n.xpm | |||
diff --git a/lisp/toolbar/gud-nexti.pbm b/lisp/toolbar/gud-ni.pbm index ecad2965b0d..ecad2965b0d 100644 --- a/lisp/toolbar/gud-nexti.pbm +++ b/lisp/toolbar/gud-ni.pbm | |||
| Binary files differ | |||
diff --git a/lisp/toolbar/gud-nexti.xpm b/lisp/toolbar/gud-ni.xpm index cdb8c38e8d4..cdb8c38e8d4 100644 --- a/lisp/toolbar/gud-nexti.xpm +++ b/lisp/toolbar/gud-ni.xpm | |||
diff --git a/lisp/toolbar/gud-step.pbm b/lisp/toolbar/gud-s.pbm index de7caa50ed5..de7caa50ed5 100644 --- a/lisp/toolbar/gud-step.pbm +++ b/lisp/toolbar/gud-s.pbm | |||
| Binary files differ | |||
diff --git a/lisp/toolbar/gud-step.xpm b/lisp/toolbar/gud-s.xpm index 7b4eb876235..7b4eb876235 100644 --- a/lisp/toolbar/gud-step.xpm +++ b/lisp/toolbar/gud-s.xpm | |||
diff --git a/lisp/toolbar/gud-stepi.pbm b/lisp/toolbar/gud-si.pbm index eed55cc4a33..eed55cc4a33 100644 --- a/lisp/toolbar/gud-stepi.pbm +++ b/lisp/toolbar/gud-si.pbm | |||
| Binary files differ | |||
diff --git a/lisp/toolbar/gud-stepi.xpm b/lisp/toolbar/gud-si.xpm index d2667fc70b6..d2667fc70b6 100644 --- a/lisp/toolbar/gud-stepi.xpm +++ b/lisp/toolbar/gud-si.xpm | |||
diff --git a/lisp/xml.el b/lisp/xml.el index a6159554b3f..dbd991f5583 100644 --- a/lisp/xml.el +++ b/lisp/xml.el | |||
| @@ -104,15 +104,22 @@ CHILD-NAME should be a lower case symbol." | |||
| 104 | (push child match)))) | 104 | (push child match)))) |
| 105 | (nreverse match))) | 105 | (nreverse match))) |
| 106 | 106 | ||
| 107 | (defun xml-get-attribute (node attribute) | 107 | (defun xml-get-attribute-or-nil (node attribute) |
| 108 | "Get from NODE the value of ATTRIBUTE. | 108 | "Get from NODE the value of ATTRIBUTE. |
| 109 | An empty string is returned if the attribute was not found." | 109 | Return `nil' if the attribute was not found. |
| 110 | (if (xml-node-attributes node) | 110 | |
| 111 | (let ((value (assoc attribute (xml-node-attributes node)))) | 111 | See also `xml-get-attribute'." |
| 112 | (if value | 112 | (when (xml-node-attributes node) |
| 113 | (cdr value) | 113 | (let ((value (assoc attribute (xml-node-attributes node)))) |
| 114 | "")) | 114 | (when value |
| 115 | "")) | 115 | (cdr value))))) |
| 116 | |||
| 117 | (defsubst xml-get-attribute (node attribute) | ||
| 118 | "Get from NODE the value of ATTRIBUTE. | ||
| 119 | An empty string is returned if the attribute was not found. | ||
| 120 | |||
| 121 | See also `xml-get-attribute-or-nil'." | ||
| 122 | (or (xml-get-attribute-or-nil node attribute) "")) | ||
| 116 | 123 | ||
| 117 | ;;******************************************************************* | 124 | ;;******************************************************************* |
| 118 | ;;** | 125 | ;;** |
| @@ -286,7 +293,6 @@ If PARSE-NS is non-nil, then QNAMES are expanded." | |||
| 286 | attr-list) | 293 | attr-list) |
| 287 | attr-list) | 294 | attr-list) |
| 288 | 295 | ||
| 289 | |||
| 290 | (defun xml-intern-attrlist (attr-list) | 296 | (defun xml-intern-attrlist (attr-list) |
| 291 | "Convert attribute names to symbols for backward compatibility." | 297 | "Convert attribute names to symbols for backward compatibility." |
| 292 | (mapcar (lambda (attr) | 298 | (mapcar (lambda (attr) |
| @@ -349,12 +355,12 @@ Returns one of: | |||
| 349 | (let* ((node-name (match-string 1)) | 355 | (let* ((node-name (match-string 1)) |
| 350 | (attr-list (xml-parse-attlist)) | 356 | (attr-list (xml-parse-attlist)) |
| 351 | (children (if (consp xml-ns) ;; take care of namespace parsing | 357 | (children (if (consp xml-ns) ;; take care of namespace parsing |
| 352 | (progn | 358 | (progn |
| 353 | (setq xml-ns (xml-ns-parse-ns-attrs | 359 | (setq xml-ns (xml-ns-parse-ns-attrs |
| 354 | attr-list xml-ns)) | 360 | attr-list xml-ns)) |
| 355 | (list (xml-ns-expand-attr | 361 | (list (xml-ns-expand-attr |
| 356 | attr-list xml-ns) | 362 | attr-list xml-ns) |
| 357 | (xml-ns-expand-el | 363 | (xml-ns-expand-el |
| 358 | node-name xml-ns))) | 364 | node-name xml-ns))) |
| 359 | (list (xml-intern-attrlist attr-list) | 365 | (list (xml-intern-attrlist attr-list) |
| 360 | (intern node-name)))) | 366 | (intern node-name)))) |