diff options
| author | Karoly Lorentey | 2005-04-11 12:40:15 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-04-11 12:40:15 +0000 |
| commit | 221d5c8772dc29f854292ec7cb423fce925daecf (patch) | |
| tree | 5fe05145ce31ffcc9d1a621c027410151e4a2106 | |
| parent | 1b9ab2508610fea57aa777956de14ee84d66862f (diff) | |
| parent | 9552bee8c6e7c5ee16ca60cddebaebdf5d238e05 (diff) | |
| download | emacs-221d5c8772dc29f854292ec7cb423fce925daecf.tar.gz emacs-221d5c8772dc29f854292ec7cb423fce925daecf.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 59, 240-245)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-240
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-241
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-242
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-244
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-245
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-59
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-326
88 files changed, 2070 insertions, 1130 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 863f7ab72ad..c76af42c4ee 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -35,8 +35,6 @@ invalid pointer from string_free_list. | |||
| 35 | 35 | ||
| 36 | ** Clean up flymake.el to follow Emacs Lisp conventions. | 36 | ** Clean up flymake.el to follow Emacs Lisp conventions. |
| 37 | 37 | ||
| 38 | ** Fix up url-ldap.el. | ||
| 39 | |||
| 40 | * BUGS | 38 | * BUGS |
| 41 | 39 | ||
| 42 | ** Ange-ftp should ignore irrelevant IPv6 errors: | 40 | ** Ange-ftp should ignore irrelevant IPv6 errors: |
| @@ -179,7 +177,7 @@ man/m-x.texi "Luc Teirlinck" Chong Yidong | |||
| 179 | man/picture.texi Joakim Verona <joakim@verona.se> Chong Yidong | 177 | man/picture.texi Joakim Verona <joakim@verona.se> Chong Yidong |
| 180 | man/programs.texi "Stephen Eglen" Chong Yidong | 178 | man/programs.texi "Stephen Eglen" Chong Yidong |
| 181 | man/regs.texi "Luc Teirlinck" Chong Yidong | 179 | man/regs.texi "Luc Teirlinck" Chong Yidong |
| 182 | man/rmail.texi Chong Yidong | 180 | man/rmail.texi Chong Yidong "Luc Teirlinck" |
| 183 | man/screen.texi "Luc Teirlinck" Chong Yidong | 181 | man/screen.texi "Luc Teirlinck" Chong Yidong |
| 184 | man/search.texi "Luc Teirlinck" Chong Yidong | 182 | man/search.texi "Luc Teirlinck" Chong Yidong |
| 185 | man/sending.texi Chong Yidong "Luc Teirlinck" | 183 | man/sending.texi Chong Yidong "Luc Teirlinck" |
diff --git a/etc/ChangeLog b/etc/ChangeLog index 2d28135ecfe..d873797f5dc 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2005-04-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * NEWS: Mention fontSet for Lucid menus. | ||
| 4 | |||
| 5 | 2005-04-10 Masatake YAMATO <jet@gyve.org> | ||
| 6 | |||
| 7 | * compilation.txt (symbol): Added gcov-file | ||
| 8 | gcov-bb-file gcov-never-called-line gcov-called-line . | ||
| 9 | |||
| 1 | 2005-04-08 Kenichi Handa <handa@m17n.org> | 10 | 2005-04-08 Kenichi Handa <handa@m17n.org> |
| 2 | 11 | ||
| 3 | * TUTORIAL.ja: Updated header, contents synchronized with | 12 | * TUTORIAL.ja: Updated header, contents synchronized with |
| @@ -351,12 +351,15 @@ the next/previous matching line found by M-x occur. | |||
| 351 | +++ | 351 | +++ |
| 352 | ** Telnet now prompts you for a port number with C-u M-x telnet. | 352 | ** Telnet now prompts you for a port number with C-u M-x telnet. |
| 353 | 353 | ||
| 354 | +++ | 354 | ** New command line option -Q or --quick. |
| 355 | ** New command line option -Q or --bare-bones. | ||
| 356 | 355 | ||
| 357 | This is like using -q --no-site-file, but in addition it also disables | 356 | This is like using -q --no-site-file, but in addition it also disables |
| 358 | the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking | 357 | the fancy startup screen. |
| 359 | cursor, and the fancy startup screen. | 358 | |
| 359 | ** New command line option -D or --basic-display. | ||
| 360 | |||
| 361 | Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | ||
| 362 | the blinking cursor. | ||
| 360 | 363 | ||
| 361 | +++ | 364 | +++ |
| 362 | ** New command line option -nbc or --no-blinking-cursor disables | 365 | ** New command line option -nbc or --no-blinking-cursor disables |
| @@ -1205,6 +1208,11 @@ amount of text shown any more (only a crude approximation of it). | |||
| 1205 | ** The pop up menus for Lucid now stay up if you do a fast click and can | 1208 | ** The pop up menus for Lucid now stay up if you do a fast click and can |
| 1206 | be navigated with the arrow keys (like Gtk+, Mac and W32). | 1209 | be navigated with the arrow keys (like Gtk+, Mac and W32). |
| 1207 | 1210 | ||
| 1211 | +++ | ||
| 1212 | ** The Lucid menus can display multilingual text in your locale. You have | ||
| 1213 | to explicitly specify a fontSet resource for this to work, for example | ||
| 1214 | `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | ||
| 1215 | |||
| 1208 | --- | 1216 | --- |
| 1209 | ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | 1217 | ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing |
| 1210 | ESC, like they do for Gtk+, Mac and W32. | 1218 | ESC, like they do for Gtk+, Mac and W32. |
diff --git a/etc/compilation.txt b/etc/compilation.txt index c1a20ad3025..42e62af9dff 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt | |||
| @@ -341,6 +341,32 @@ strcmp: variable # of args. llib-lc(359) :: /usr/src/foo/foo.c(8) | |||
| 341 | bloofle defined( /users/wolfgang/foo.c(4) ), but never used | 341 | bloofle defined( /users/wolfgang/foo.c(4) ), but never used |
| 342 | 342 | ||
| 343 | 343 | ||
| 344 | * GCOV (test coverage program) | ||
| 345 | |||
| 346 | symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line | ||
| 347 | |||
| 348 | -: 0:Source:foo.c | ||
| 349 | -: 0:Object:foo.bb | ||
| 350 | -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c | ||
| 351 | -: 2: $ ./a.out | ||
| 352 | -: 3: $ gcov foo.c | ||
| 353 | -: 4: LANG=C gcov foo.c | ||
| 354 | -: 5: 62.50% of 8 lines executed in file foo.c | ||
| 355 | -: 6: Creating foo.c.gcov.*/ | ||
| 356 | -: 7:int | ||
| 357 | -: 8:main(int argc, char ** argv) | ||
| 358 | 1: 9:{ | ||
| 359 | 1: 10: int r; | ||
| 360 | 1: 11: if (argc == 1) | ||
| 361 | 1: 12: r = 1; | ||
| 362 | #####: 13: else if (argc == 2) | ||
| 363 | #####: 14: r = 2; | ||
| 364 | -: 15: else | ||
| 365 | #####: 16: r = 0; | ||
| 366 | 1: 17: return r; | ||
| 367 | -: 18:} | ||
| 368 | |||
| 369 | |||
| 344 | * Directory tracking | 370 | * Directory tracking |
| 345 | 371 | ||
| 346 | Directories are matched via `compilation-directory-matcher'. Files which are | 372 | Directories are matched via `compilation-directory-matcher'. Files which are |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f14df34acf9..c299c1cf77f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,198 @@ | |||
| 1 | 2005-04-10 Karl Fogel <kfogel@red-bean.com> | ||
| 2 | |||
| 3 | * bookmark.el (bookmark-write-file): Catch errors writing file. | ||
| 4 | This is the same change as saveplace.el at 2005-04-10T23:32:00Z!rms@gnu.org. | ||
| 5 | |||
| 6 | 2005-04-10 Richard M. Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * startup.el (fancy-splash-tail): Update copyright year. | ||
| 9 | (command-line): Split part of -Q into -D. | ||
| 10 | (emacs-basic-display): New defvar. | ||
| 11 | (fancy-splash-text): Correct name of menu item. | ||
| 12 | |||
| 13 | * saveplace.el (save-place-alist-to-file): Catch errors writing file. | ||
| 14 | |||
| 15 | * info.el (Info-fontify-node): Handle fontification of multiple * Menu | ||
| 16 | lines in one node. | ||
| 17 | |||
| 18 | * comint.el (comint-send-input): New arg ARTIFICIAL. | ||
| 19 | Callers in this file changed. | ||
| 20 | |||
| 21 | * abbrev.el (define-abbrevs): Read system abbrevs properly. | ||
| 22 | |||
| 23 | * emacs-lisp/map-ynp.el (map-y-or-n-p): Clarify RET/q in help message. | ||
| 24 | |||
| 25 | 2005-04-10 Chong Yidong <cyd@stupidchicken.com> | ||
| 26 | |||
| 27 | * url/url-ldap.el (url-ldap): Add docstring. Fix call to | ||
| 28 | `ldap-search-internal'. | ||
| 29 | |||
| 30 | 2005-04-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 31 | |||
| 32 | * files.el (set-auto-mode-1): Use line-end-position. | ||
| 33 | |||
| 34 | * international/latin-1.el: | ||
| 35 | * international/latin-2.el: | ||
| 36 | * international/latin-3.el: | ||
| 37 | * international/latin-4.el: | ||
| 38 | * international/latin-5.el: | ||
| 39 | * international/latin-8.el: | ||
| 40 | * international/latin-9.el: Give punctuation syntax to NBSP. | ||
| 41 | |||
| 42 | * textmodes/bibtex.el (bibtex-autokey-titleword-ignore) | ||
| 43 | (bibtex-reference-key, bibtex-autokey-demangle-name, bibtex-mode): | ||
| 44 | Use char-classes to accept non-ascii letters, accepted in some recent | ||
| 45 | bibtex implementations. | ||
| 46 | |||
| 47 | 2005-04-10 Luc Teirlinck <teirllm@auburn.edu> | ||
| 48 | |||
| 49 | * custom.el (custom-set-minor-mode): Any non-nil value for the | ||
| 50 | variable should enable the mode when set through Custom. | ||
| 51 | |||
| 52 | 2005-04-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 53 | |||
| 54 | * progmodes/vhdl-mode.el (vhdl-mode-map-init): Don't override default | ||
| 55 | TAB binding so tab-always-indent is obeyed. | ||
| 56 | (vhdl-minibuffer-local-map): Move initialization into declaration. | ||
| 57 | (vhdl-mode-abbrev-table-init): Mark the abbrevs as `system'. | ||
| 58 | (vhdl-run-when-idle, vhdl-create-mode-menu, vhdl-character-to-event) | ||
| 59 | (vhdl-hooked-abbrev): Avoid test for XEmacs. | ||
| 60 | (vhdl-current-line): Use line-beginning-position. | ||
| 61 | (vhdl-doc-variable, vhdl-doc-mode): Call help-setup-xref before | ||
| 62 | with-output-to-temp-buffer, so the current position can be recorded. | ||
| 63 | |||
| 64 | 2005-04-10 Masatake YAMATO <jet@gyve.org> | ||
| 65 | |||
| 66 | * progmodes/compile.el (compilation-error-regexp-alist-alist): | ||
| 67 | Add regexp for gcov. | ||
| 68 | |||
| 69 | 2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 70 | |||
| 71 | * calendar/time-date.el (time-to-seconds, seconds-to-time) | ||
| 72 | (days-to-time, time-subtract, time-add): Don't use the #xhhhh | ||
| 73 | syntax which Emacs 20 doesn't support. | ||
| 74 | |||
| 75 | 2005-04-09 Richard M. Stallman <rms@gnu.org> | ||
| 76 | |||
| 77 | * help.el (describe-key-briefly, describe-key): Replace | ||
| 78 | strings as event types with "(any string)". | ||
| 79 | |||
| 80 | 2005-04-09 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 81 | |||
| 82 | * arc-mode.el (archive-mode-map): Move initialization into | ||
| 83 | the declaration. Override *all* bindings of `undo'. | ||
| 84 | (archive-lemacs): Remove, use (featurep 'xemacs) instead. | ||
| 85 | |||
| 86 | 2005-04-09 Jay Belanger <belanger@truman.edu> | ||
| 87 | |||
| 88 | * calc/calc-units.el (math-standard-units): Redefine Watt hour as W*hr. | ||
| 89 | |||
| 90 | 2005-04-09 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 91 | |||
| 92 | * term/xterm.el (xterm-rgb-convert-to-16bit): Simplify. | ||
| 93 | (xterm-register-default-colors): Update color values computation | ||
| 94 | to match xterm-200. | ||
| 95 | |||
| 96 | 2005-04-09 Kenichi Handa <handa@m17n.org> | ||
| 97 | |||
| 98 | * international/code-pages.el (iso-latin-7): Fix the map. | ||
| 99 | |||
| 100 | 2005-04-08 Luc Teirlinck <teirllm@auburn.edu> | ||
| 101 | |||
| 102 | * emacs-lisp/lisp.el (defun-prompt-regexp) | ||
| 103 | (parens-require-spaces, buffer-end, end-of-defun) | ||
| 104 | (insert-parentheses): Doc fixes. | ||
| 105 | |||
| 106 | 2005-04-08 Kim F. Storm <storm@cua.dk> | ||
| 107 | |||
| 108 | * comint.el (comint-highlight-prompt): Fix face spec. | ||
| 109 | * hi-lock.el (hi-green): Likewise. | ||
| 110 | |||
| 111 | 2005-04-08 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 112 | |||
| 113 | * cus-edit.el (custom-modified-face): | ||
| 114 | * comint.el (comint-highlight-input): Fix previous changes. | ||
| 115 | * term.el (term-handle-ansi-escape): Add a comment. | ||
| 116 | |||
| 117 | 2005-04-08 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 118 | |||
| 119 | * whitespace.el (whitespace-highlight-the-space): Put the same overlay | ||
| 120 | in the buffer and in whitespace-highlighted-space. | ||
| 121 | (whitespace-unhighlight-the-space): Simplify. | ||
| 122 | (whitespace-buffer): Simplify. | ||
| 123 | |||
| 124 | 2005-04-08 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 125 | |||
| 126 | * textmodes/table.el (table-cell-face): Add special case for | ||
| 127 | displays supporting a high number of colors. | ||
| 128 | * progmodes/vhdl-mode.el (vhdl-font-lock-prompt-face) | ||
| 129 | (vhdl-font-lock-reserved-words-face) | ||
| 130 | (vhdl-speedbar-architecture-face) | ||
| 131 | (vhdl-speedbar-instantiation-face) | ||
| 132 | (vhdl-speedbar-architecture-selected-face) | ||
| 133 | (vhdl-speedbar-instantiation-selected-face): Likewise. | ||
| 134 | * progmodes/sh-script.el (sh-heredoc-face): Likewise. | ||
| 135 | * progmodes/idlw-help.el (idlwave-help-link-face): Likewise. | ||
| 136 | * progmodes/ebrowse.el (ebrowse-tree-mark-face) | ||
| 137 | (ebrowse-root-class-face, ebrowse-member-attribute-face) | ||
| 138 | (ebrowse-progress-face): Likewise. | ||
| 139 | * progmodes/compile.el (compilation-info-face): Likewise. | ||
| 140 | * progmodes/cc-fonts.el (c-invalid-face): Likewise. | ||
| 141 | * emacs-lisp/re-builder.el (reb-match-3): Likewise. | ||
| 142 | * calendar/calendar.el (diary-face): Likewise. | ||
| 143 | * woman.el (woman-italic-face, woman-bold-face) | ||
| 144 | (woman-unknown-face): Likewise. | ||
| 145 | * wid-edit.el (widget-button-pressed-face): Likewise. | ||
| 146 | * whitespace.el (whitespace-highlight-face): Likewise. | ||
| 147 | * smerge-mode.el (smerge-mine-face, smerge-base-face): Likewise. | ||
| 148 | * pcvs-info.el (cvs-marked-face): Likewise. | ||
| 149 | * info.el (info-xref): Likewise. | ||
| 150 | * ido.el (ido-subdir-face, ido-indicator-face): Likewise. | ||
| 151 | * hilit-chg.el (highlight-changes-face) | ||
| 152 | (highlight-changes-delete-face): Likewise. | ||
| 153 | * hi-lock.el (hi-yellow, hi-green, hi-blue-b, hi-green-b) | ||
| 154 | (hi-red-b): Likewise. | ||
| 155 | * generic-x.el (show-tabs-tab-face, show-tabs-space-face): Likewise. | ||
| 156 | * font-lock.el (font-lock-keyword-face) | ||
| 157 | (font-lock-function-name-face, font-lock-warning-face): Likewise. | ||
| 158 | * cus-edit.el (custom-invalid-face, custom-modified-face) | ||
| 159 | (custom-set-face, custom-changed-face, custom-variable-tag-face) | ||
| 160 | (custom-group-tag-face-1, custom-group-tag-face): Likewise. | ||
| 161 | * comint.el (comint-highlight-prompt): Likewise. | ||
| 162 | |||
| 163 | 2005-04-08 Lute Kamstra <lute@gnu.org> | ||
| 164 | |||
| 165 | * font-lock.el (font-lock-keywords): Docstring fixes. | ||
| 166 | |||
| 167 | 2005-04-08 Kenichi Handa <handa@m17n.org> | ||
| 168 | |||
| 169 | * ps-mule.el (ps-mule-show-warning): If the number of unprintable | ||
| 170 | chars are more than a limit, print " and more..." at the tail. | ||
| 171 | |||
| 172 | 2005-04-08 Kim F. Storm <storm@cua.dk> | ||
| 173 | |||
| 174 | * emacs-lisp/authors.el (authors-aliases): Update list. | ||
| 175 | (authors-ignored-files): New list. | ||
| 176 | (authors-fixed-entries): Fix typo. | ||
| 177 | (authors-renamed-files-alist): Update list. | ||
| 178 | (authors-add): Check authors-ignored-files. | ||
| 179 | |||
| 180 | 2005-04-08 Carsten Dominik <dominik@science.uva.nl> | ||
| 181 | |||
| 182 | * calendar/diary-lib.el (add-to-diary-list): MARKER argument made | ||
| 183 | optional, to ensure backward compatibility. | ||
| 184 | |||
| 185 | 2005-04-08 Stephen Eglen <stephen@gnu.org> | ||
| 186 | |||
| 187 | * textmodes/flyspell.el (flyspell-large-region): Doc fix. | ||
| 188 | |||
| 189 | 2005-04-08 Kim F. Storm <storm@cua.dk> | ||
| 190 | |||
| 191 | * buff-menu.el (Buffer-menu-mode-map): Map follow-link to | ||
| 192 | mouse-face. | ||
| 193 | |||
| 194 | * mouse.el (mouse-on-link-p): Doc fix. | ||
| 195 | |||
| 1 | 2005-04-07 Luc Teirlinck <teirllm@auburn.edu> | 196 | 2005-04-07 Luc Teirlinck <teirllm@auburn.edu> |
| 2 | 197 | ||
| 3 | * ielm.el (ielm-prompt-read-only): Doc fix. | 198 | * ielm.el (ielm-prompt-read-only): Doc fix. |
diff --git a/lisp/abbrev.el b/lisp/abbrev.el index 3580c136948..aa4249d014e 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el | |||
| @@ -172,15 +172,18 @@ the ones defined from the buffer now." | |||
| 172 | (while (and (not (eobp)) (re-search-forward "^(" nil t)) | 172 | (while (and (not (eobp)) (re-search-forward "^(" nil t)) |
| 173 | (let* ((buf (current-buffer)) | 173 | (let* ((buf (current-buffer)) |
| 174 | (table (read buf)) | 174 | (table (read buf)) |
| 175 | abbrevs name hook exp count) | 175 | abbrevs name hook exp count sys) |
| 176 | (forward-line 1) | 176 | (forward-line 1) |
| 177 | (while (progn (forward-line 1) | 177 | (while (progn (forward-line 1) |
| 178 | (not (eolp))) | 178 | (not (eolp))) |
| 179 | (setq name (read buf) count (read buf) exp (read buf)) | 179 | (setq name (read buf) count (read buf)) |
| 180 | (if (equal count '(sys)) | ||
| 181 | (setq sys t count (read buf))) | ||
| 182 | (setq exp (read buf)) | ||
| 180 | (skip-chars-backward " \t\n\f") | 183 | (skip-chars-backward " \t\n\f") |
| 181 | (setq hook (if (not (eolp)) (read buf))) | 184 | (setq hook (if (not (eolp)) (read buf))) |
| 182 | (skip-chars-backward " \t\n\f") | 185 | (skip-chars-backward " \t\n\f") |
| 183 | (setq abbrevs (cons (list name exp hook count) abbrevs))) | 186 | (setq abbrevs (cons (list name exp hook count sys) abbrevs))) |
| 184 | (define-abbrev-table table abbrevs))))) | 187 | (define-abbrev-table table abbrevs))))) |
| 185 | 188 | ||
| 186 | (defun read-abbrev-file (&optional file quietly) | 189 | (defun read-abbrev-file (&optional file quietly) |
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 2cb20b4545d..e72d38f3a3f 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; arc-mode.el --- simple editing of archives | 1 | ;;; arc-mode.el --- simple editing of archives |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1995, 1997, 1998, 2003 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 1997, 1998, 2003, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Morten Welinder <terra@gnu.org> | 5 | ;; Author: Morten Welinder <terra@gnu.org> |
| 6 | ;; Keywords: archives msdog editing major-mode | 6 | ;; Keywords: archives msdog editing major-mode |
| @@ -330,7 +330,111 @@ Archive and member name will be added." | |||
| 330 | (defvar archive-proper-file-start nil "Position of real archive's start.") | 330 | (defvar archive-proper-file-start nil "Position of real archive's start.") |
| 331 | (defvar archive-read-only nil "Non-nil if the archive is read-only on disk.") | 331 | (defvar archive-read-only nil "Non-nil if the archive is read-only on disk.") |
| 332 | (defvar archive-local-name nil "Name of local copy of remote archive.") | 332 | (defvar archive-local-name nil "Name of local copy of remote archive.") |
| 333 | (defvar archive-mode-map nil "Local keymap for archive mode listings.") | 333 | (defvar archive-mode-map |
| 334 | (let ((map (make-keymap))) | ||
| 335 | (suppress-keymap map) | ||
| 336 | (define-key map " " 'archive-next-line) | ||
| 337 | (define-key map "a" 'archive-alternate-display) | ||
| 338 | ;;(define-key map "c" 'archive-copy) | ||
| 339 | (define-key map "d" 'archive-flag-deleted) | ||
| 340 | (define-key map "\C-d" 'archive-flag-deleted) | ||
| 341 | (define-key map "e" 'archive-extract) | ||
| 342 | (define-key map "f" 'archive-extract) | ||
| 343 | (define-key map "\C-m" 'archive-extract) | ||
| 344 | (define-key map "g" 'revert-buffer) | ||
| 345 | (define-key map "h" 'describe-mode) | ||
| 346 | (define-key map "m" 'archive-mark) | ||
| 347 | (define-key map "n" 'archive-next-line) | ||
| 348 | (define-key map "\C-n" 'archive-next-line) | ||
| 349 | (define-key map [down] 'archive-next-line) | ||
| 350 | (define-key map "o" 'archive-extract-other-window) | ||
| 351 | (define-key map "p" 'archive-previous-line) | ||
| 352 | (define-key map "q" 'quit-window) | ||
| 353 | (define-key map "\C-p" 'archive-previous-line) | ||
| 354 | (define-key map [up] 'archive-previous-line) | ||
| 355 | (define-key map "r" 'archive-rename-entry) | ||
| 356 | (define-key map "u" 'archive-unflag) | ||
| 357 | (define-key map "\M-\C-?" 'archive-unmark-all-files) | ||
| 358 | (define-key map "v" 'archive-view) | ||
| 359 | (define-key map "x" 'archive-expunge) | ||
| 360 | (define-key map "\177" 'archive-unflag-backwards) | ||
| 361 | (define-key map "E" 'archive-extract-other-window) | ||
| 362 | (define-key map "M" 'archive-chmod-entry) | ||
| 363 | (define-key map "G" 'archive-chgrp-entry) | ||
| 364 | (define-key map "O" 'archive-chown-entry) | ||
| 365 | |||
| 366 | (if (fboundp 'command-remapping) | ||
| 367 | (progn | ||
| 368 | (define-key map [remap advertised-undo] 'archive-undo) | ||
| 369 | (define-key map [remap undo] 'archive-undo)) | ||
| 370 | (substitute-key-definition 'advertised-undo 'archive-undo map global-map) | ||
| 371 | (substitute-key-definition 'undo 'archive-undo map global-map)) | ||
| 372 | |||
| 373 | (define-key map | ||
| 374 | (if (featurep 'xemacs) 'button2 [mouse-2]) 'archive-mouse-extract) | ||
| 375 | |||
| 376 | (if (featurep 'xemacs) | ||
| 377 | () ; out of luck | ||
| 378 | |||
| 379 | (define-key map [menu-bar immediate] | ||
| 380 | (cons "Immediate" (make-sparse-keymap "Immediate"))) | ||
| 381 | (define-key map [menu-bar immediate alternate] | ||
| 382 | '(menu-item "Alternate Display" archive-alternate-display | ||
| 383 | :enable (boundp (archive-name "alternate-display")) | ||
| 384 | :help "Toggle alternate file info display")) | ||
| 385 | (define-key map [menu-bar immediate view] | ||
| 386 | '(menu-item "View This File" archive-view | ||
| 387 | :help "Display file at cursor in View Mode")) | ||
| 388 | (define-key map [menu-bar immediate display] | ||
| 389 | '(menu-item "Display in Other Window" archive-display-other-window | ||
| 390 | :help "Display file at cursor in another window")) | ||
| 391 | (define-key map [menu-bar immediate find-file-other-window] | ||
| 392 | '(menu-item "Find in Other Window" archive-extract-other-window | ||
| 393 | :help "Edit file at cursor in another window")) | ||
| 394 | (define-key map [menu-bar immediate find-file] | ||
| 395 | '(menu-item "Find This File" archive-extract | ||
| 396 | :help "Extract file at cursor and edit it")) | ||
| 397 | |||
| 398 | (define-key map [menu-bar mark] | ||
| 399 | (cons "Mark" (make-sparse-keymap "Mark"))) | ||
| 400 | (define-key map [menu-bar mark unmark-all] | ||
| 401 | '(menu-item "Unmark All" archive-unmark-all-files | ||
| 402 | :help "Unmark all marked files")) | ||
| 403 | (define-key map [menu-bar mark deletion] | ||
| 404 | '(menu-item "Flag" archive-flag-deleted | ||
| 405 | :help "Flag file at cursor for deletion")) | ||
| 406 | (define-key map [menu-bar mark unmark] | ||
| 407 | '(menu-item "Unflag" archive-unflag | ||
| 408 | :help "Unmark file at cursor")) | ||
| 409 | (define-key map [menu-bar mark mark] | ||
| 410 | '(menu-item "Mark" archive-mark | ||
| 411 | :help "Mark file at cursor")) | ||
| 412 | |||
| 413 | (define-key map [menu-bar operate] | ||
| 414 | (cons "Operate" (make-sparse-keymap "Operate"))) | ||
| 415 | (define-key map [menu-bar operate chown] | ||
| 416 | '(menu-item "Change Owner..." archive-chown-entry | ||
| 417 | :enable (fboundp (archive-name "chown-entry")) | ||
| 418 | :help "Change owner of marked files")) | ||
| 419 | (define-key map [menu-bar operate chgrp] | ||
| 420 | '(menu-item "Change Group..." archive-chgrp-entry | ||
| 421 | :enable (fboundp (archive-name "chgrp-entry")) | ||
| 422 | :help "Change group ownership of marked files")) | ||
| 423 | (define-key map [menu-bar operate chmod] | ||
| 424 | '(menu-item "Change Mode..." archive-chmod-entry | ||
| 425 | :enable (fboundp (archive-name "chmod-entry")) | ||
| 426 | :help "Change mode (permissions) of marked files")) | ||
| 427 | (define-key map [menu-bar operate rename] | ||
| 428 | '(menu-item "Rename to..." archive-rename-entry | ||
| 429 | :enable (fboundp (archive-name "rename-entry")) | ||
| 430 | :help "Rename marked files")) | ||
| 431 | ;;(define-key map [menu-bar operate copy] | ||
| 432 | ;; '(menu-item "Copy to..." archive-copy)) | ||
| 433 | (define-key map [menu-bar operate expunge] | ||
| 434 | '(menu-item "Expunge Marked Files" archive-expunge | ||
| 435 | :help "Delete all flagged files from archive")) | ||
| 436 | map)) | ||
| 437 | "Local keymap for archive mode listings.") | ||
| 334 | (defvar archive-file-name-indent nil "Column where file names start.") | 438 | (defvar archive-file-name-indent nil "Column where file names start.") |
| 335 | 439 | ||
| 336 | (defvar archive-remote nil "Non-nil if the archive is outside file system.") | 440 | (defvar archive-remote nil "Non-nil if the archive is outside file system.") |
| @@ -358,9 +462,6 @@ Each descriptor is a vector of the form | |||
| 358 | [EXT-FILE-NAME INT-FILE-NAME CASE-FIDDLED MODE ...]") | 462 | [EXT-FILE-NAME INT-FILE-NAME CASE-FIDDLED MODE ...]") |
| 359 | (make-variable-buffer-local 'archive-files) | 463 | (make-variable-buffer-local 'archive-files) |
| 360 | 464 | ||
| 361 | (defvar archive-lemacs | ||
| 362 | (string-match "\\(Lucid\\|Xemacs\\)" emacs-version) | ||
| 363 | "*Non-nil when running under under Lucid Emacs or Xemacs.") | ||
| 364 | ;; ------------------------------------------------------------------------- | 465 | ;; ------------------------------------------------------------------------- |
| 365 | ;; Section: Support functions. | 466 | ;; Section: Support functions. |
| 366 | 467 | ||
| @@ -586,116 +687,9 @@ archive. | |||
| 586 | ;; ------------------------------------------------------------------------- | 687 | ;; ------------------------------------------------------------------------- |
| 587 | ;; Section: Key maps | 688 | ;; Section: Key maps |
| 588 | 689 | ||
| 589 | (if archive-mode-map nil | 690 | (let ((item1 '(archive-subfile-mode " Archive"))) |
| 590 | (setq archive-mode-map (make-keymap)) | ||
| 591 | (suppress-keymap archive-mode-map) | ||
| 592 | (define-key archive-mode-map " " 'archive-next-line) | ||
| 593 | (define-key archive-mode-map "a" 'archive-alternate-display) | ||
| 594 | ;;(define-key archive-mode-map "c" 'archive-copy) | ||
| 595 | (define-key archive-mode-map "d" 'archive-flag-deleted) | ||
| 596 | (define-key archive-mode-map "\C-d" 'archive-flag-deleted) | ||
| 597 | (define-key archive-mode-map "e" 'archive-extract) | ||
| 598 | (define-key archive-mode-map "f" 'archive-extract) | ||
| 599 | (define-key archive-mode-map "\C-m" 'archive-extract) | ||
| 600 | (define-key archive-mode-map "g" 'revert-buffer) | ||
| 601 | (define-key archive-mode-map "h" 'describe-mode) | ||
| 602 | (define-key archive-mode-map "m" 'archive-mark) | ||
| 603 | (define-key archive-mode-map "n" 'archive-next-line) | ||
| 604 | (define-key archive-mode-map "\C-n" 'archive-next-line) | ||
| 605 | (define-key archive-mode-map [down] 'archive-next-line) | ||
| 606 | (define-key archive-mode-map "o" 'archive-extract-other-window) | ||
| 607 | (define-key archive-mode-map "p" 'archive-previous-line) | ||
| 608 | (define-key archive-mode-map "q" 'quit-window) | ||
| 609 | (define-key archive-mode-map "\C-p" 'archive-previous-line) | ||
| 610 | (define-key archive-mode-map [up] 'archive-previous-line) | ||
| 611 | (define-key archive-mode-map "r" 'archive-rename-entry) | ||
| 612 | (define-key archive-mode-map "u" 'archive-unflag) | ||
| 613 | (define-key archive-mode-map "\M-\C-?" 'archive-unmark-all-files) | ||
| 614 | (define-key archive-mode-map "v" 'archive-view) | ||
| 615 | (define-key archive-mode-map "x" 'archive-expunge) | ||
| 616 | (define-key archive-mode-map "\177" 'archive-unflag-backwards) | ||
| 617 | (define-key archive-mode-map "E" 'archive-extract-other-window) | ||
| 618 | (define-key archive-mode-map "M" 'archive-chmod-entry) | ||
| 619 | (define-key archive-mode-map "G" 'archive-chgrp-entry) | ||
| 620 | (define-key archive-mode-map "O" 'archive-chown-entry) | ||
| 621 | |||
| 622 | (if archive-lemacs | ||
| 623 | (progn | ||
| 624 | ;; Not a nice "solution" but it'll have to do | ||
| 625 | (define-key archive-mode-map "\C-xu" 'archive-undo) | ||
| 626 | (define-key archive-mode-map "\C-_" 'archive-undo)) | ||
| 627 | (define-key archive-mode-map [remap advertised-undo] 'archive-undo) | ||
| 628 | (define-key archive-mode-map [remap undo] 'archive-undo)) | ||
| 629 | |||
| 630 | (define-key archive-mode-map | ||
| 631 | (if archive-lemacs 'button2 [mouse-2]) 'archive-mouse-extract) | ||
| 632 | |||
| 633 | (if archive-lemacs | ||
| 634 | () ; out of luck | ||
| 635 | |||
| 636 | (define-key archive-mode-map [menu-bar immediate] | ||
| 637 | (cons "Immediate" (make-sparse-keymap "Immediate"))) | ||
| 638 | (define-key archive-mode-map [menu-bar immediate alternate] | ||
| 639 | '(menu-item "Alternate Display" archive-alternate-display | ||
| 640 | :enable (boundp (archive-name "alternate-display")) | ||
| 641 | :help "Toggle alternate file info display")) | ||
| 642 | (define-key archive-mode-map [menu-bar immediate view] | ||
| 643 | '(menu-item "View This File" archive-view | ||
| 644 | :help "Display file at cursor in View Mode")) | ||
| 645 | (define-key archive-mode-map [menu-bar immediate display] | ||
| 646 | '(menu-item "Display in Other Window" archive-display-other-window | ||
| 647 | :help "Display file at cursor in another window")) | ||
| 648 | (define-key archive-mode-map [menu-bar immediate find-file-other-window] | ||
| 649 | '(menu-item "Find in Other Window" archive-extract-other-window | ||
| 650 | :help "Edit file at cursor in another window")) | ||
| 651 | (define-key archive-mode-map [menu-bar immediate find-file] | ||
| 652 | '(menu-item "Find This File" archive-extract | ||
| 653 | :help "Extract file at cursor and edit it")) | ||
| 654 | |||
| 655 | (define-key archive-mode-map [menu-bar mark] | ||
| 656 | (cons "Mark" (make-sparse-keymap "Mark"))) | ||
| 657 | (define-key archive-mode-map [menu-bar mark unmark-all] | ||
| 658 | '(menu-item "Unmark All" archive-unmark-all-files | ||
| 659 | :help "Unmark all marked files")) | ||
| 660 | (define-key archive-mode-map [menu-bar mark deletion] | ||
| 661 | '(menu-item "Flag" archive-flag-deleted | ||
| 662 | :help "Flag file at cursor for deletion")) | ||
| 663 | (define-key archive-mode-map [menu-bar mark unmark] | ||
| 664 | '(menu-item "Unflag" archive-unflag | ||
| 665 | :help "Unmark file at cursor")) | ||
| 666 | (define-key archive-mode-map [menu-bar mark mark] | ||
| 667 | '(menu-item "Mark" archive-mark | ||
| 668 | :help "Mark file at cursor")) | ||
| 669 | |||
| 670 | (define-key archive-mode-map [menu-bar operate] | ||
| 671 | (cons "Operate" (make-sparse-keymap "Operate"))) | ||
| 672 | (define-key archive-mode-map [menu-bar operate chown] | ||
| 673 | '(menu-item "Change Owner..." archive-chown-entry | ||
| 674 | :enable (fboundp (archive-name "chown-entry")) | ||
| 675 | :help "Change owner of marked files")) | ||
| 676 | (define-key archive-mode-map [menu-bar operate chgrp] | ||
| 677 | '(menu-item "Change Group..." archive-chgrp-entry | ||
| 678 | :enable (fboundp (archive-name "chgrp-entry")) | ||
| 679 | :help "Change group ownership of marked files")) | ||
| 680 | (define-key archive-mode-map [menu-bar operate chmod] | ||
| 681 | '(menu-item "Change Mode..." archive-chmod-entry | ||
| 682 | :enable (fboundp (archive-name "chmod-entry")) | ||
| 683 | :help "Change mode (permissions) of marked files")) | ||
| 684 | (define-key archive-mode-map [menu-bar operate rename] | ||
| 685 | '(menu-item "Rename to..." archive-rename-entry | ||
| 686 | :enable (fboundp (archive-name "rename-entry")) | ||
| 687 | :help "Rename marked files")) | ||
| 688 | ;;(define-key archive-mode-map [menu-bar operate copy] | ||
| 689 | ;; '(menu-item "Copy to..." archive-copy)) | ||
| 690 | (define-key archive-mode-map [menu-bar operate expunge] | ||
| 691 | '(menu-item "Expunge Marked Files" archive-expunge | ||
| 692 | :help "Delete all flagged files from archive")) | ||
| 693 | )) | ||
| 694 | |||
| 695 | (let* ((item1 '(archive-subfile-mode " Archive")) | ||
| 696 | (items (list item1))) | ||
| 697 | (or (member item1 minor-mode-alist) | 691 | (or (member item1 minor-mode-alist) |
| 698 | (setq minor-mode-alist (append items minor-mode-alist)))) | 692 | (setq minor-mode-alist (cons item1 minor-mode-alist)))) |
| 699 | ;; ------------------------------------------------------------------------- | 693 | ;; ------------------------------------------------------------------------- |
| 700 | (defun archive-find-type () | 694 | (defun archive-find-type () |
| 701 | (widen) | 695 | (widen) |
| @@ -762,7 +756,7 @@ when parsing the archive." | |||
| 762 | ;; Using `concat' here copies the text also, so we can add | 756 | ;; Using `concat' here copies the text also, so we can add |
| 763 | ;; properties without problems. | 757 | ;; properties without problems. |
| 764 | (let ((text (concat (aref fil 0) "\n"))) | 758 | (let ((text (concat (aref fil 0) "\n"))) |
| 765 | (if archive-lemacs | 759 | (if (featurep 'xemacs) |
| 766 | () ; out of luck | 760 | () ; out of luck |
| 767 | (add-text-properties | 761 | (add-text-properties |
| 768 | (aref fil 1) (aref fil 2) | 762 | (aref fil 1) (aref fil 2) |
| @@ -1809,5 +1803,5 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1809 | 1803 | ||
| 1810 | (provide 'arc-mode) | 1804 | (provide 'arc-mode) |
| 1811 | 1805 | ||
| 1812 | ;;; arch-tag: e5966a01-35ec-4f27-8095-a043a79b457b | 1806 | ;; arch-tag: e5966a01-35ec-4f27-8095-a043a79b457b |
| 1813 | ;;; arc-mode.el ends here | 1807 | ;;; arc-mode.el ends here |
diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 869896b087a..0696f929584 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el | |||
| @@ -1355,7 +1355,9 @@ for a file, defaulting to the file defined by variable | |||
| 1355 | ((eq 'nospecial bookmark-version-control) version-control) | 1355 | ((eq 'nospecial bookmark-version-control) version-control) |
| 1356 | (t | 1356 | (t |
| 1357 | t)))) | 1357 | t)))) |
| 1358 | (write-file file) | 1358 | (condition-case nil |
| 1359 | (write-file file) | ||
| 1360 | (file-error (message "Can't write %s" file))) | ||
| 1359 | (kill-buffer (current-buffer)) | 1361 | (kill-buffer (current-buffer)) |
| 1360 | (if (>= baud-rate 9600) | 1362 | (if (>= baud-rate 9600) |
| 1361 | (message "Saving bookmarks to file %s...done" file))))))) | 1363 | (message "Saving bookmarks to file %s...done" file))))))) |
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 8e1a3e69295..7d0ac885c2f 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -141,6 +141,7 @@ Auto Revert Mode.") | |||
| 141 | (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view) | 141 | (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view) |
| 142 | (define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only) | 142 | (define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only) |
| 143 | (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select) | 143 | (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select) |
| 144 | (define-key Buffer-menu-mode-map [follow-link] 'mouse-face) | ||
| 144 | ) | 145 | ) |
| 145 | 146 | ||
| 146 | ;; Buffer Menu mode is suitable only for specially formatted data. | 147 | ;; Buffer Menu mode is suitable only for specially formatted data. |
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 4b3c284ddad..6c694bc5ba8 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; calc-units.el --- unit conversion functions for Calc | 1 | ;;; calc-units.el --- unit conversion functions for Calc |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David Gillespie <daveg@synaptics.com> | 5 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 6 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 6 | ;; Maintainer: Jay Belanger <belanger@truman.edu> |
| @@ -137,7 +137,7 @@ | |||
| 137 | ( men "100/invcm" "Inverse energy in meters" ) | 137 | ( men "100/invcm" "Inverse energy in meters" ) |
| 138 | ( Hzen "h Hz" "Energy in Hertz") | 138 | ( Hzen "h Hz" "Energy in Hertz") |
| 139 | ( Ken "k K" "Energy in Kelvins") | 139 | ( Ken "k K" "Energy in Kelvins") |
| 140 | ( Wh "W h" "Watt hour") | 140 | ( Wh "W hr" "Watt hour") |
| 141 | ( Ws "W s" "Watt second") | 141 | ( Ws "W s" "Watt second") |
| 142 | 142 | ||
| 143 | ;; Power | 143 | ;; Power |
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 5fc23a15cc9..305ecc1e9bc 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el | |||
| @@ -209,8 +209,12 @@ If nil, make an icon of the frame. If non-nil, delete the frame." | |||
| 209 | (defvar diary-face 'diary-face | 209 | (defvar diary-face 'diary-face |
| 210 | "Face name to use for diary entries.") | 210 | "Face name to use for diary entries.") |
| 211 | (defface diary-face | 211 | (defface diary-face |
| 212 | '((((class color) (background light)) | 212 | '((((min-colors 88) (class color) (background light)) |
| 213 | :foreground "red1") | ||
| 214 | (((class color) (background light)) | ||
| 213 | :foreground "red") | 215 | :foreground "red") |
| 216 | (((min-colors 88) (class color) (background dark)) | ||
| 217 | :foreground "yellow1") | ||
| 214 | (((class color) (background dark)) | 218 | (((class color) (background dark)) |
| 215 | :foreground "yellow") | 219 | :foreground "yellow") |
| 216 | (t | 220 | (t |
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 6b8f6986381..1832e0cd0fb 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el | |||
| @@ -1647,7 +1647,7 @@ marked on the calendar." | |||
| 1647 | (or (diary-remind sexp (car days) marking) | 1647 | (or (diary-remind sexp (car days) marking) |
| 1648 | (diary-remind sexp (cdr days) marking)))))) | 1648 | (diary-remind sexp (cdr days) marking)))))) |
| 1649 | 1649 | ||
| 1650 | (defun add-to-diary-list (date string specifier marker &optional globcolor) | 1650 | (defun add-to-diary-list (date string specifier &optional marker globcolor) |
| 1651 | "Add the entry (DATE STRING SPECIFIER MARKER GLOBCOLOR) to `diary-entries-list'. | 1651 | "Add the entry (DATE STRING SPECIFIER MARKER GLOBCOLOR) to `diary-entries-list'. |
| 1652 | Do nothing if DATE or STRING is nil." | 1652 | Do nothing if DATE or STRING is nil." |
| 1653 | (when (and date string) | 1653 | (when (and date string) |
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index 7160d26ef42..ddeb33b411a 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | ;;; time-date.el --- Date and time handling functions | 1 | ;;; time-date.el --- Date and time handling functions |
| 2 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. | 2 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 |
| 3 | ;; Free Software Foundation, Inc. | ||
| 3 | 4 | ||
| 4 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 5 | ;; Masanobu Umeda <umerin@mse.kyutech.ac.jp> | 6 | ;; Masanobu Umeda <umerin@mse.kyutech.ac.jp> |
| @@ -112,15 +113,15 @@ and type 3 is the list (HIGH LOW MICRO)." | |||
| 112 | "Convert time value TIME to a floating point number. | 113 | "Convert time value TIME to a floating point number. |
| 113 | You can use `float-time' instead." | 114 | You can use `float-time' instead." |
| 114 | (with-decoded-time-value ((high low micro time)) | 115 | (with-decoded-time-value ((high low micro time)) |
| 115 | (+ (* 1.0 high #x10000) | 116 | (+ (* 1.0 high 65536) |
| 116 | low | 117 | low |
| 117 | (/ micro 1000000.0)))) | 118 | (/ micro 1000000.0)))) |
| 118 | 119 | ||
| 119 | ;;;###autoload | 120 | ;;;###autoload |
| 120 | (defun seconds-to-time (seconds) | 121 | (defun seconds-to-time (seconds) |
| 121 | "Convert SECONDS (a floating point number) to a time value." | 122 | "Convert SECONDS (a floating point number) to a time value." |
| 122 | (list (floor seconds #x10000) | 123 | (list (floor seconds 65536) |
| 123 | (floor (mod seconds #x10000)) | 124 | (floor (mod seconds 65536)) |
| 124 | (floor (* (- seconds (ffloor seconds)) 1000000)))) | 125 | (floor (* (- seconds (ffloor seconds)) 1000000)))) |
| 125 | 126 | ||
| 126 | ;;;###autoload | 127 | ;;;###autoload |
| @@ -138,10 +139,10 @@ You can use `float-time' instead." | |||
| 138 | (defun days-to-time (days) | 139 | (defun days-to-time (days) |
| 139 | "Convert DAYS into a time value." | 140 | "Convert DAYS into a time value." |
| 140 | (let* ((seconds (* 1.0 days 60 60 24)) | 141 | (let* ((seconds (* 1.0 days 60 60 24)) |
| 141 | (high (condition-case nil (floor (/ seconds #x10000)) | 142 | (high (condition-case nil (floor (/ seconds 65536)) |
| 142 | (range-error most-positive-fixnum)))) | 143 | (range-error most-positive-fixnum)))) |
| 143 | (list high (condition-case nil (floor (- seconds (* 1.0 high #x10000))) | 144 | (list high (condition-case nil (floor (- seconds (* 1.0 high 65536))) |
| 144 | (range-error #xffff))))) | 145 | (range-error 65535))))) |
| 145 | 146 | ||
| 146 | ;;;###autoload | 147 | ;;;###autoload |
| 147 | (defun time-since (time) | 148 | (defun time-since (time) |
| @@ -170,7 +171,7 @@ Return the difference in the format of a time value." | |||
| 170 | micro (+ micro 1000000))) | 171 | micro (+ micro 1000000))) |
| 171 | (when (< low 0) | 172 | (when (< low 0) |
| 172 | (setq high (1- high) | 173 | (setq high (1- high) |
| 173 | low (+ low #x10000))) | 174 | low (+ low 65536))) |
| 174 | (encode-time-value high low micro type))) | 175 | (encode-time-value high low micro type))) |
| 175 | 176 | ||
| 176 | ;;;###autoload | 177 | ;;;###autoload |
| @@ -185,9 +186,9 @@ Return the difference in the format of a time value." | |||
| 185 | (when (>= micro 1000000) | 186 | (when (>= micro 1000000) |
| 186 | (setq low (1+ low) | 187 | (setq low (1+ low) |
| 187 | micro (- micro 1000000))) | 188 | micro (- micro 1000000))) |
| 188 | (when (>= low #x10000) | 189 | (when (>= low 65536) |
| 189 | (setq high (1+ high) | 190 | (setq high (1+ high) |
| 190 | low (- low #x10000))) | 191 | low (- low 65536))) |
| 191 | (encode-time-value high low micro type))) | 192 | (encode-time-value high low micro type))) |
| 192 | 193 | ||
| 193 | ;;;###autoload | 194 | ;;;###autoload |
diff --git a/lisp/comint.el b/lisp/comint.el index 73425710455..fe0987e2076 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -228,7 +228,8 @@ This variable is buffer-local." | |||
| 228 | :group 'comint) | 228 | :group 'comint) |
| 229 | 229 | ||
| 230 | (defface comint-highlight-prompt | 230 | (defface comint-highlight-prompt |
| 231 | '((((background dark)) (:foreground "cyan")) | 231 | '((((min-colors 88) (background dark)) (:foreground "cyan1")) |
| 232 | (((background dark)) (:foreground "cyan")) | ||
| 232 | (t (:foreground "dark blue"))) | 233 | (t (:foreground "dark blue"))) |
| 233 | "Face to use to highlight prompts." | 234 | "Face to use to highlight prompts." |
| 234 | :group 'comint) | 235 | :group 'comint) |
| @@ -1387,14 +1388,15 @@ Ignore duplicates if `comint-input-ignoredups' is non-nil." | |||
| 1387 | cmd)))) | 1388 | cmd)))) |
| 1388 | (ring-insert comint-input-ring cmd))) | 1389 | (ring-insert comint-input-ring cmd))) |
| 1389 | 1390 | ||
| 1390 | (defun comint-send-input (&optional no-newline) | 1391 | (defun comint-send-input (&optional no-newline artificial) |
| 1391 | "Send input to process. | 1392 | "Send input to process. |
| 1392 | After the process output mark, sends all text from the process mark to | 1393 | After the process output mark, sends all text from the process mark to |
| 1393 | point as input to the process. Before the process output mark, calls | 1394 | point as input to the process. Before the process output mark, calls |
| 1394 | value of variable `comint-get-old-input' to retrieve old input, copies | 1395 | value of variable `comint-get-old-input' to retrieve old input, copies |
| 1395 | it to the process mark, and sends it. A terminal newline is also | 1396 | it to the process mark, and sends it. |
| 1396 | inserted into the buffer and sent to the process unless NO-NEWLINE is | 1397 | |
| 1397 | non-nil. | 1398 | This command also sends and inserts a final newline, unless |
| 1399 | NO-NEWLINE is non-nil. | ||
| 1398 | 1400 | ||
| 1399 | Any history reference may be expanded depending on the value of the variable | 1401 | Any history reference may be expanded depending on the value of the variable |
| 1400 | `comint-input-autoexpand'. The list of function names contained in the value | 1402 | `comint-input-autoexpand'. The list of function names contained in the value |
| @@ -1408,6 +1410,8 @@ end of line before sending the input. | |||
| 1408 | After the input has been sent, if `comint-process-echoes' is non-nil, | 1410 | After the input has been sent, if `comint-process-echoes' is non-nil, |
| 1409 | then `comint-send-input' waits to see if the process outputs a string | 1411 | then `comint-send-input' waits to see if the process outputs a string |
| 1410 | matching the input, and if so, deletes that part of the output. | 1412 | matching the input, and if so, deletes that part of the output. |
| 1413 | If ARTIFICIAL is non-nil, it inhibits such deletion. | ||
| 1414 | Callers sending input not from the user should use ARTIFICIAL = t. | ||
| 1411 | 1415 | ||
| 1412 | The values of `comint-get-old-input', `comint-input-filter-functions', and | 1416 | The values of `comint-get-old-input', `comint-input-filter-functions', and |
| 1413 | `comint-input-filter' are chosen according to the command interpreter running | 1417 | `comint-input-filter' are chosen according to the command interpreter running |
| @@ -1512,7 +1516,7 @@ Similarly for Soar, Scheme, etc." | |||
| 1512 | (funcall comint-input-sender proc input)) | 1516 | (funcall comint-input-sender proc input)) |
| 1513 | 1517 | ||
| 1514 | ;; Optionally delete echoed input (after checking it). | 1518 | ;; Optionally delete echoed input (after checking it). |
| 1515 | (when comint-process-echoes | 1519 | (when (and comint-process-echoes (not artificial)) |
| 1516 | (let ((echo-len (- comint-last-input-end | 1520 | (let ((echo-len (- comint-last-input-end |
| 1517 | comint-last-input-start))) | 1521 | comint-last-input-start))) |
| 1518 | ;; Wait for all input to be echoed: | 1522 | ;; Wait for all input to be echoed: |
| @@ -2087,7 +2091,7 @@ Useful if you accidentally suspend the top-level process." | |||
| 2087 | This means mark it as if it had been sent as input, without sending it." | 2091 | This means mark it as if it had been sent as input, without sending it." |
| 2088 | (let ((comint-input-sender 'ignore) | 2092 | (let ((comint-input-sender 'ignore) |
| 2089 | (comint-input-filter-functions nil)) | 2093 | (comint-input-filter-functions nil)) |
| 2090 | (comint-send-input t)) | 2094 | (comint-send-input t t)) |
| 2091 | (end-of-line) | 2095 | (end-of-line) |
| 2092 | (let ((pos (point)) | 2096 | (let ((pos (point)) |
| 2093 | (marker (process-mark (get-buffer-process (current-buffer))))) | 2097 | (marker (process-mark (get-buffer-process (current-buffer))))) |
| @@ -2114,7 +2118,7 @@ Sends an EOF only if point is at the end of the buffer and there is no input." | |||
| 2114 | (defun comint-send-eof () | 2118 | (defun comint-send-eof () |
| 2115 | "Send an EOF to the current buffer's process." | 2119 | "Send an EOF to the current buffer's process." |
| 2116 | (interactive) | 2120 | (interactive) |
| 2117 | (comint-send-input t) | 2121 | (comint-send-input t t) |
| 2118 | (process-send-eof)) | 2122 | (process-send-eof)) |
| 2119 | 2123 | ||
| 2120 | 2124 | ||
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 0b06b3f6980..8d440be9b39 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -1633,7 +1633,7 @@ item in another window.\n\n")) | |||
| 1633 | :group 'custom-buffer) | 1633 | :group 'custom-buffer) |
| 1634 | 1634 | ||
| 1635 | (defface custom-invalid-face '((((class color)) | 1635 | (defface custom-invalid-face '((((class color)) |
| 1636 | (:foreground "yellow" :background "red")) | 1636 | (:foreground "yellow1" :background "red1")) |
| 1637 | (t | 1637 | (t |
| 1638 | (:weight bold :slant italic :underline t))) | 1638 | (:weight bold :slant italic :underline t))) |
| 1639 | "Face used when the customize item is invalid." | 1639 | "Face used when the customize item is invalid." |
| @@ -1646,21 +1646,27 @@ item in another window.\n\n")) | |||
| 1646 | "Face used when the customize item is not defined for customization." | 1646 | "Face used when the customize item is not defined for customization." |
| 1647 | :group 'custom-magic-faces) | 1647 | :group 'custom-magic-faces) |
| 1648 | 1648 | ||
| 1649 | (defface custom-modified-face '((((class color)) | 1649 | (defface custom-modified-face '((((min-colors 88) (class color)) |
| 1650 | (:foreground "white" :background "blue1")) | ||
| 1651 | (((class color)) | ||
| 1650 | (:foreground "white" :background "blue")) | 1652 | (:foreground "white" :background "blue")) |
| 1651 | (t | 1653 | (t |
| 1652 | (:slant italic :bold))) | 1654 | (:slant italic :bold))) |
| 1653 | "Face used when the customize item has been modified." | 1655 | "Face used when the customize item has been modified." |
| 1654 | :group 'custom-magic-faces) | 1656 | :group 'custom-magic-faces) |
| 1655 | 1657 | ||
| 1656 | (defface custom-set-face '((((class color)) | 1658 | (defface custom-set-face '((((min-colors 88) (class color)) |
| 1659 | (:foreground "blue1" :background "white")) | ||
| 1660 | (((class color)) | ||
| 1657 | (:foreground "blue" :background "white")) | 1661 | (:foreground "blue" :background "white")) |
| 1658 | (t | 1662 | (t |
| 1659 | (:slant italic))) | 1663 | (:slant italic))) |
| 1660 | "Face used when the customize item has been set." | 1664 | "Face used when the customize item has been set." |
| 1661 | :group 'custom-magic-faces) | 1665 | :group 'custom-magic-faces) |
| 1662 | 1666 | ||
| 1663 | (defface custom-changed-face '((((class color)) | 1667 | (defface custom-changed-face '((((min-colors 88) (class color)) |
| 1668 | (:foreground "white" :background "blue1")) | ||
| 1669 | (((class color)) | ||
| 1664 | (:foreground "white" :background "blue")) | 1670 | (:foreground "white" :background "blue")) |
| 1665 | (t | 1671 | (t |
| 1666 | (:slant italic))) | 1672 | (:slant italic))) |
| @@ -2148,9 +2154,12 @@ If INITIAL-STRING is non-nil, use that rather than \"Parent groups:\"." | |||
| 2148 | `((((class color) | 2154 | `((((class color) |
| 2149 | (background dark)) | 2155 | (background dark)) |
| 2150 | (:foreground "light blue" :weight bold :height 1.2 :inherit variable-pitch)) | 2156 | (:foreground "light blue" :weight bold :height 1.2 :inherit variable-pitch)) |
| 2157 | (((min-colors 88) (class color) | ||
| 2158 | (background light)) | ||
| 2159 | (:foreground "blue1" :weight bold :height 1.2 :inherit variable-pitch)) | ||
| 2151 | (((class color) | 2160 | (((class color) |
| 2152 | (background light)) | 2161 | (background light)) |
| 2153 | (:foreground "blue" :weight bold :height 1.2 :inherit variable-pitch)) | 2162 | (:foreground "blue" :weight bold :height 1.2 :inherit variable-pitch)) |
| 2154 | (t (:weight bold))) | 2163 | (t (:weight bold))) |
| 2155 | "Face used for unpushable variable tags." | 2164 | "Face used for unpushable variable tags." |
| 2156 | :group 'custom-faces) | 2165 | :group 'custom-faces) |
| @@ -3392,6 +3401,9 @@ and so forth. The remaining group tags are shown with | |||
| 3392 | `((((class color) | 3401 | `((((class color) |
| 3393 | (background dark)) | 3402 | (background dark)) |
| 3394 | (:foreground "pink" :weight bold :height 1.2 :inherit variable-pitch)) | 3403 | (:foreground "pink" :weight bold :height 1.2 :inherit variable-pitch)) |
| 3404 | (((min-colors 88) (class color) | ||
| 3405 | (background light)) | ||
| 3406 | (:foreground "red1" :weight bold :height 1.2 :inherit variable-pitch)) | ||
| 3395 | (((class color) | 3407 | (((class color) |
| 3396 | (background light)) | 3408 | (background light)) |
| 3397 | (:foreground "red" :weight bold :height 1.2 :inherit variable-pitch)) | 3409 | (:foreground "red" :weight bold :height 1.2 :inherit variable-pitch)) |
| @@ -3403,6 +3415,9 @@ and so forth. The remaining group tags are shown with | |||
| 3403 | `((((class color) | 3415 | `((((class color) |
| 3404 | (background dark)) | 3416 | (background dark)) |
| 3405 | (:foreground "light blue" :weight bold :height 1.2)) | 3417 | (:foreground "light blue" :weight bold :height 1.2)) |
| 3418 | (((min-colors 88) (class color) | ||
| 3419 | (background light)) | ||
| 3420 | (:foreground "blue1" :weight bold :height 1.2)) | ||
| 3406 | (((class color) | 3421 | (((class color) |
| 3407 | (background light)) | 3422 | (background light)) |
| 3408 | (:foreground "blue" :weight bold :height 1.2)) | 3423 | (:foreground "blue" :weight bold :height 1.2)) |
diff --git a/lisp/custom.el b/lisp/custom.el index 77b54a109c5..019fdb79b38 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -841,8 +841,8 @@ but if `custom-local-buffer' is non-nil, | |||
| 841 | this sets the local binding in that buffer instead." | 841 | this sets the local binding in that buffer instead." |
| 842 | (if custom-local-buffer | 842 | (if custom-local-buffer |
| 843 | (with-current-buffer custom-local-buffer | 843 | (with-current-buffer custom-local-buffer |
| 844 | (funcall variable (or value 0))) | 844 | (funcall variable (if value 1 0))) |
| 845 | (funcall variable (or value 0)))) | 845 | (funcall variable (if value 1 0)))) |
| 846 | 846 | ||
| 847 | (defun custom-quote (sexp) | 847 | (defun custom-quote (sexp) |
| 848 | "Quote SEXP iff it is not self quoting." | 848 | "Quote SEXP iff it is not self quoting." |
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el index 5ab42c06e8e..8eb177dd9ca 100644 --- a/lisp/emacs-lisp/authors.el +++ b/lisp/emacs-lisp/authors.el | |||
| @@ -41,7 +41,6 @@ files.") | |||
| 41 | 41 | ||
| 42 | (defconst authors-aliases | 42 | (defconst authors-aliases |
| 43 | '( | 43 | '( |
| 44 | ("Andrew Innes" "Andrw Innes") | ||
| 45 | ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." | 44 | ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." |
| 46 | "Barry A. Warsaw, ITB" "Barry Warsaw") | 45 | "Barry A. Warsaw, ITB" "Barry Warsaw") |
| 47 | ("Bj,Av(Brn Torkelsson" "Bjorn Torkelsson") | 46 | ("Bj,Av(Brn Torkelsson" "Bjorn Torkelsson") |
| @@ -57,7 +56,7 @@ files.") | |||
| 57 | ("Edward M. Reingold" "Ed Reingold" "Edward M Reingold" | 56 | ("Edward M. Reingold" "Ed Reingold" "Edward M Reingold" |
| 58 | "Reingold Edward M") | 57 | "Reingold Edward M") |
| 59 | ("Eli Zaretskii" "eliz") | 58 | ("Eli Zaretskii" "eliz") |
| 60 | ; ("Emilio C. Lopes" "Emilio Lopes") | 59 | ("Emilio C. Lopes" "Emilio Lopes") |
| 61 | ("Era Eriksson" "Era@Iki.Fi") | 60 | ("Era Eriksson" "Era@Iki.Fi") |
| 62 | ("Eric M. Ludlam" "Eric Ludlam") | 61 | ("Eric M. Ludlam" "Eric Ludlam") |
| 63 | ("Eric S. Raymond" "Eric Raymond") | 62 | ("Eric S. Raymond" "Eric Raymond") |
| @@ -79,8 +78,10 @@ files.") | |||
| 79 | ("Jay K. Adams" "jka@ece.cmu.edu" "Jay Adams") | 78 | ("Jay K. Adams" "jka@ece.cmu.edu" "Jay Adams") |
| 80 | ("J,Ai(Br,At(Bme Marant" "J,bi(Br,bt(Bme Marant" "Jerome Marant") | 79 | ("J,Ai(Br,At(Bme Marant" "J,bi(Br,bt(Bme Marant" "Jerome Marant") |
| 81 | ("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen") | 80 | ("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen") |
| 81 | ("John W. Eaton" "John Eaton") | ||
| 82 | ("Jonathan I. Kamens" "Jonathan Kamens") | 82 | ("Jonathan I. Kamens" "Jonathan Kamens") |
| 83 | ("Joseph Arceneaux" "Joe Arceneaux") | 83 | ("Joseph Arceneaux" "Joe Arceneaux") |
| 84 | ("Juan Le,As(Bn Lahoz Garc,Am(Ba" "Juan-Leon Lahoz Garcia") | ||
| 84 | ("K. Shane Hartman" "Shane Hartman") | 85 | ("K. Shane Hartman" "Shane Hartman") |
| 85 | ("Kai Gro,A_(Bjohann" "Kai Grossjohann" "Kai Gro,b_(Bjohann" | 86 | ("Kai Gro,A_(Bjohann" "Kai Grossjohann" "Kai Gro,b_(Bjohann" |
| 86 | "Kai.Grossjohann@Cs.Uni-Dortmund.De" | 87 | "Kai.Grossjohann@Cs.Uni-Dortmund.De" |
| @@ -89,14 +90,17 @@ files.") | |||
| 89 | ("Kazushi Marukawa" "Kazushi") | 90 | ("Kazushi Marukawa" "Kazushi") |
| 90 | ("Ken Manheimer" "Kenneth Manheimer") | 91 | ("Ken Manheimer" "Kenneth Manheimer") |
| 91 | ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA") | 92 | ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA") |
| 93 | ("Kevin Greiner" "Kevin J. Greiner") | ||
| 92 | ("Kim F. Storm" "Kim Storm") | 94 | ("Kim F. Storm" "Kim Storm") |
| 93 | ("Kyle Jones" "Kyle E. Jones") | 95 | ("Kyle Jones" "Kyle E. Jones") |
| 94 | ("Marcus G. Daniels" "Marcus Daniels") | 96 | ("Marcus G. Daniels" "Marcus Daniels") |
| 95 | ("Mark D. Baushke" "Mark D Baushke") | 97 | ("Mark D. Baushke" "Mark D Baushke") |
| 96 | ("Martin Lorentzon" "Martin Lorentzson") | 98 | ("Martin Lorentzon" "Martin Lorentzson") |
| 97 | ("Matt Swift" "Matthew Swift") | 99 | ("Matt Swift" "Matthew Swift") |
| 100 | ("Michael R. Mauger" "Michael Mauger") | ||
| 98 | ("Michael D. Ernst" "Michael Ernst") | 101 | ("Michael D. Ernst" "Michael Ernst") |
| 99 | ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, P/Bsg") | 102 | ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, P/Bsg") |
| 103 | ("Mikio Nakajima" "Nakajima Mikio") | ||
| 100 | ("Paul Eggert" "eggert") | 104 | ("Paul Eggert" "eggert") |
| 101 | ("Paul Reilly" "(pmr@legacy.pajato.com)") | 105 | ("Paul Reilly" "(pmr@legacy.pajato.com)") |
| 102 | ("Pavel Jan,Bm(Bk" "Pavel Jan,Am(Bk Ml." "Pavel Jan,Am(Bk" "Pavel@Janik.Cz") | 106 | ("Pavel Jan,Bm(Bk" "Pavel Jan,Am(Bk Ml." "Pavel Jan,Am(Bk" "Pavel@Janik.Cz") |
| @@ -114,6 +118,7 @@ files.") | |||
| 114 | ("Stephen A. Wood" "(saw@cebaf.gov)") | 118 | ("Stephen A. Wood" "(saw@cebaf.gov)") |
| 115 | ("Steven L. Baur" "SL Baur" "Steven L Baur") | 119 | ("Steven L. Baur" "SL Baur" "Steven L Baur") |
| 116 | ("Takaaki Ota" "Tak Ota") | 120 | ("Takaaki Ota" "Tak Ota") |
| 121 | ("Takahashi Naoto" "Naoto Takahashi") | ||
| 117 | ("Teodor Zlatanov" "Ted Zlatanov") | 122 | ("Teodor Zlatanov" "Ted Zlatanov") |
| 118 | ("Torbj,Av(Brn Axelsson" "Torbjvrn Axelsson") | 123 | ("Torbj,Av(Brn Axelsson" "Torbjvrn Axelsson") |
| 119 | ("Torbj,Av(Brn Einarsson" "Torbj.*rn Einarsson") | 124 | ("Torbj,Av(Brn Einarsson" "Torbj.*rn Einarsson") |
| @@ -152,6 +157,13 @@ If REALNAME is nil, ignore that author.") | |||
| 152 | Changes to files matching one of the regexps in this list are not | 157 | Changes to files matching one of the regexps in this list are not |
| 153 | listed.") | 158 | listed.") |
| 154 | 159 | ||
| 160 | (defconst authors-ignored-files | ||
| 161 | '("external-lisp" | ||
| 162 | "lock" "share-lib" "local-lisp" | ||
| 163 | "noleim-Makefile.in" | ||
| 164 | "NEWS" "PROBLEMS" "FAQ") | ||
| 165 | "List of files and directories to ignore. | ||
| 166 | Changes to files in this list are not listed.") | ||
| 155 | 167 | ||
| 156 | (defconst authors-fixed-entries | 168 | (defconst authors-fixed-entries |
| 157 | '(("Richard M. Stallman" :wrote "[The original GNU emacs and numerous files]") | 169 | '(("Richard M. Stallman" :wrote "[The original GNU emacs and numerous files]") |
| @@ -184,7 +196,7 @@ listed.") | |||
| 184 | "mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h" "systty.h" "unexec.c" | 196 | "mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h" "systty.h" "unexec.c" |
| 185 | "ymakefile" "linux.h") | 197 | "ymakefile" "linux.h") |
| 186 | ("Kyle E. Jones" :wrote "mldrag.el") | 198 | ("Kyle E. Jones" :wrote "mldrag.el") |
| 187 | ("Kenry Kautz" :wrote "bib-mode.el") | 199 | ("Henry Kautz" :wrote "bib-mode.el") |
| 188 | ("Joseph M. Kelsey" :changed "fileio.c" "vms-pwd.h" "vmsfns.c" "dir.h" | 200 | ("Joseph M. Kelsey" :changed "fileio.c" "vms-pwd.h" "vmsfns.c" "dir.h" |
| 189 | "uaf.h") | 201 | "uaf.h") |
| 190 | ("Sam Kendall" :changed "etags.c" "etags.el") | 202 | ("Sam Kendall" :changed "etags.c" "etags.el") |
| @@ -260,7 +272,8 @@ listed.") | |||
| 260 | 272 | ||
| 261 | (defconst authors-valid-file-names | 273 | (defconst authors-valid-file-names |
| 262 | '("aclocal.m4" | 274 | '("aclocal.m4" |
| 263 | "makedist.bat") | 275 | "makedist.bat" |
| 276 | "make-delta") | ||
| 264 | "File names which are valid, but no longer exists (or cannot be | 277 | "File names which are valid, but no longer exists (or cannot be |
| 265 | found) in the repository.") | 278 | found) in the repository.") |
| 266 | 279 | ||
| @@ -274,6 +287,9 @@ found) in the repository.") | |||
| 274 | ("s/windowsnt.h" . "s/ms-w32.h") | 287 | ("s/windowsnt.h" . "s/ms-w32.h") |
| 275 | ("config.emacs" . "configure") | 288 | ("config.emacs" . "configure") |
| 276 | ("GETTING.GNU.SOFTWARE" . "FTP") | 289 | ("GETTING.GNU.SOFTWARE" . "FTP") |
| 290 | ("leim-Makefile" . "leim/Makefile") | ||
| 291 | ("leim-Makefile.in" . "leim/Makefile.in") | ||
| 292 | ("INSTALL-CVS" . "INSTALL.CVS") | ||
| 277 | ) | 293 | ) |
| 278 | "Alist of files which have been renamed during their lifetime. | 294 | "Alist of files which have been renamed during their lifetime. |
| 279 | Elements are (OLDNAME . NEWNAME).") | 295 | Elements are (OLDNAME . NEWNAME).") |
| @@ -372,7 +388,8 @@ from `authors-obsolete-files-regexps'." | |||
| 372 | ACTION is a keyword symbol describing what he did. Record file, | 388 | ACTION is a keyword symbol describing what he did. Record file, |
| 373 | author and what he did in hash table TABLE. See the description of | 389 | author and what he did in hash table TABLE. See the description of |
| 374 | `authors-scan-change-log' for the structure of the hash table." | 390 | `authors-scan-change-log' for the structure of the hash table." |
| 375 | (unless (or (authors-obsolete-file-p file) | 391 | (unless (or (member file authors-ignored-files) |
| 392 | (authors-obsolete-file-p file) | ||
| 376 | (equal author "")) | 393 | (equal author "")) |
| 377 | (let* ((value (gethash author table)) | 394 | (let* ((value (gethash author table)) |
| 378 | (entry (assoc file value)) | 395 | (entry (assoc file value)) |
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index d0a2fdc01da..f9442bc0084 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el | |||
| @@ -31,18 +31,16 @@ | |||
| 31 | 31 | ||
| 32 | ;; Note that this variable is used by non-lisp modes too. | 32 | ;; Note that this variable is used by non-lisp modes too. |
| 33 | (defcustom defun-prompt-regexp nil | 33 | (defcustom defun-prompt-regexp nil |
| 34 | "*If non-nil, a regexp to ignore before the character that starts a defun. | 34 | "*If non-nil, a regexp to ignore before a defun. |
| 35 | This is only necessary if the opening paren or brace is not in column 0. | 35 | This is only necessary if the opening paren or brace is not in column 0. |
| 36 | See function `beginning-of-defun'. | 36 | See function `beginning-of-defun'." |
| 37 | |||
| 38 | Setting this variable automatically makes it local to the current buffer." | ||
| 39 | :type '(choice (const nil) | 37 | :type '(choice (const nil) |
| 40 | regexp) | 38 | regexp) |
| 41 | :group 'lisp) | 39 | :group 'lisp) |
| 42 | (make-variable-buffer-local 'defun-prompt-regexp) | 40 | (make-variable-buffer-local 'defun-prompt-regexp) |
| 43 | 41 | ||
| 44 | (defcustom parens-require-spaces t | 42 | (defcustom parens-require-spaces t |
| 45 | "Non-nil means `insert-parentheses' should insert whitespace as needed." | 43 | "If non-nil, `insert-parentheses' inserts whitespace as needed." |
| 46 | :type 'boolean | 44 | :type 'boolean |
| 47 | :group 'lisp) | 45 | :group 'lisp) |
| 48 | 46 | ||
| @@ -74,7 +72,7 @@ move forward across N balanced expressions." | |||
| 74 | The place mark goes is the same place \\[forward-sexp] would | 72 | The place mark goes is the same place \\[forward-sexp] would |
| 75 | move to with the same argument. | 73 | move to with the same argument. |
| 76 | Interactively, if this command is repeated | 74 | Interactively, if this command is repeated |
| 77 | or (in Transient Mark mode) if the mark is active, | 75 | or (in Transient Mark mode) if the mark is active, |
| 78 | it marks the next ARG sexps after the ones already marked." | 76 | it marks the next ARG sexps after the ones already marked." |
| 79 | (interactive "P\np") | 77 | (interactive "P\np") |
| 80 | (cond ((and allow-extend | 78 | (cond ((and allow-extend |
| @@ -233,13 +231,14 @@ recipe (see `end-of-defun'). Major modes can define this if the | |||
| 233 | normal method is not appropriate.") | 231 | normal method is not appropriate.") |
| 234 | 232 | ||
| 235 | (defun buffer-end (arg) | 233 | (defun buffer-end (arg) |
| 236 | "Return the \"far end\" position of the buffer, moving in direction ARG. | 234 | "Return the \"far end\" position of the buffer, in direction ARG. |
| 237 | If ARG is positive, that's the end of the buffer. | 235 | If ARG is positive, that's the end of the buffer. |
| 238 | Otherwise, that's the beginning of the buffer." | 236 | Otherwise, that's the beginning of the buffer." |
| 239 | (if (> arg 0) (point-max) (point-min))) | 237 | (if (> arg 0) (point-max) (point-min))) |
| 240 | 238 | ||
| 241 | (defun end-of-defun (&optional arg) | 239 | (defun end-of-defun (&optional arg) |
| 242 | "Move forward to next end of defun. With argument, do it that many times. | 240 | "Move forward to next end of defun. |
| 241 | With argument, do it that many times. | ||
| 243 | Negative argument -N means move back to Nth preceding end of defun. | 242 | Negative argument -N means move back to Nth preceding end of defun. |
| 244 | 243 | ||
| 245 | An end of a defun occurs right after the close-parenthesis that | 244 | An end of a defun occurs right after the close-parenthesis that |
| @@ -299,7 +298,7 @@ is called as a function to find the defun's end." | |||
| 299 | The defun marked is the one that contains point or follows point. | 298 | The defun marked is the one that contains point or follows point. |
| 300 | 299 | ||
| 301 | Interactively, if this command is repeated | 300 | Interactively, if this command is repeated |
| 302 | or (in Transient Mark mode) if the mark is active, | 301 | or (in Transient Mark mode) if the mark is active, |
| 303 | it marks the next defun after the ones already marked." | 302 | it marks the next defun after the ones already marked." |
| 304 | (interactive "p") | 303 | (interactive "p") |
| 305 | (cond ((and allow-extend | 304 | (cond ((and allow-extend |
| @@ -424,7 +423,8 @@ character is inserted ARG times." | |||
| 424 | (prefix-numeric-value arg)))) | 423 | (prefix-numeric-value arg)))) |
| 425 | 424 | ||
| 426 | (defun insert-parentheses (&optional arg) | 425 | (defun insert-parentheses (&optional arg) |
| 427 | "Enclose following ARG sexps in parentheses. Leave point after open-paren. | 426 | "Enclose following ARG sexps in parentheses. |
| 427 | Leave point after open-paren. | ||
| 428 | A negative ARG encloses the preceding ARG sexps instead. | 428 | A negative ARG encloses the preceding ARG sexps instead. |
| 429 | No argument is equivalent to zero: just insert `()' and leave point between. | 429 | No argument is equivalent to zero: just insert `()' and leave point between. |
| 430 | If `parens-require-spaces' is non-nil, this command also inserts a space | 430 | If `parens-require-spaces' is non-nil, this command also inserts a space |
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el index 1f493e746fe..2eb53a86038 100644 --- a/lisp/emacs-lisp/map-ynp.el +++ b/lisp/emacs-lisp/map-ynp.el | |||
| @@ -200,10 +200,10 @@ Returns the number of actions taken." | |||
| 200 | (concat | 200 | (concat |
| 201 | (format "Type SPC or `y' to %s the current %s; | 201 | (format "Type SPC or `y' to %s the current %s; |
| 202 | DEL or `n' to skip the current %s; | 202 | DEL or `n' to skip the current %s; |
| 203 | RET or `q' to exit (skip all remaining %s); | 203 | RET or `q' to give up on the %s (skip all remaining %s); |
| 204 | C-g to quit (cancel the operation); | 204 | C-g to quit (cancel the whole command); |
| 205 | ! to %s all remaining %s;\n" | 205 | ! to %s all remaining %s;\n" |
| 206 | action object object objects action | 206 | action object object action objects action |
| 207 | objects) | 207 | objects) |
| 208 | (mapconcat (function | 208 | (mapconcat (function |
| 209 | (lambda (elt) | 209 | (lambda (elt) |
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index d26a0ae5f38..1c8d12fef0e 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; re-builder.el --- building Regexps with visual feedback | 1 | ;;; re-builder.el --- building Regexps with visual feedback |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Detlev Zundel <dzu@gnu.org> | 5 | ;; Author: Detlev Zundel <dzu@gnu.org> |
| 6 | ;; Keywords: matching, lisp, tools | 6 | ;; Keywords: matching, lisp, tools |
| @@ -177,7 +177,9 @@ Set it to nil if you don't want limits here." | |||
| 177 | :group 're-builder) | 177 | :group 're-builder) |
| 178 | 178 | ||
| 179 | (defface reb-match-3 | 179 | (defface reb-match-3 |
| 180 | '((((class color) (background light)) | 180 | '((((min-colors 88) (class color) (background light)) |
| 181 | :background "yellow1") | ||
| 182 | (((class color) (background light)) | ||
| 181 | :background "yellow") | 183 | :background "yellow") |
| 182 | (((class color) (background dark)) | 184 | (((class color) (background dark)) |
| 183 | :background "sienna4") | 185 | :background "sienna4") |
diff --git a/lisp/files.el b/lisp/files.el index 4551e6ddb66..f278725cd5d 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2113,22 +2113,19 @@ Otherwise, return nil; point may be changed." | |||
| 2113 | (setq temp (cdr temp))) | 2113 | (setq temp (cdr temp))) |
| 2114 | (not temp)) | 2114 | (not temp)) |
| 2115 | 2115 | ||
| 2116 | (search-forward "-*-" (save-excursion | 2116 | (search-forward "-*-" (line-end-position |
| 2117 | ;; If the file begins with "#!" | 2117 | ;; If the file begins with "#!" |
| 2118 | ;; (exec interpreter magic), look | 2118 | ;; (exec interpreter magic), look |
| 2119 | ;; for mode frobs in the first two | 2119 | ;; for mode frobs in the first two |
| 2120 | ;; lines. You cannot necessarily | 2120 | ;; lines. You cannot necessarily |
| 2121 | ;; put them in the first line of | 2121 | ;; put them in the first line of |
| 2122 | ;; such a file without screwing up | 2122 | ;; such a file without screwing up |
| 2123 | ;; the interpreter invocation. | 2123 | ;; the interpreter invocation. |
| 2124 | (end-of-line (and (looking-at "^#!") 2)) | 2124 | (and (looking-at "^#!") 2)) t) |
| 2125 | (point)) t) | ||
| 2126 | (progn | 2125 | (progn |
| 2127 | (skip-chars-forward " \t") | 2126 | (skip-chars-forward " \t") |
| 2128 | (setq beg (point)) | 2127 | (setq beg (point)) |
| 2129 | (search-forward "-*-" | 2128 | (search-forward "-*-" (line-end-position) t)) |
| 2130 | (save-excursion (end-of-line) (point)) | ||
| 2131 | t)) | ||
| 2132 | (progn | 2129 | (progn |
| 2133 | (forward-char -3) | 2130 | (forward-char -3) |
| 2134 | (skip-chars-backward " \t") | 2131 | (skip-chars-backward " \t") |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 38d3b94bccf..49e29c4896c 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -383,14 +383,14 @@ word \"bar\" following the word \"anchor\" then MATCH-ANCHORED may be required. | |||
| 383 | 383 | ||
| 384 | MATCH-HIGHLIGHT should be of the form: | 384 | MATCH-HIGHLIGHT should be of the form: |
| 385 | 385 | ||
| 386 | (MATCH FACENAME OVERRIDE LAXMATCH) | 386 | (MATCH FACENAME [[OVERRIDE [LAXMATCH]]) |
| 387 | 387 | ||
| 388 | MATCH is the subexpression of MATCHER to be highlighted. FACENAME is an | 388 | MATCH is the subexpression of MATCHER to be highlighted. FACENAME is an |
| 389 | expression whose value is the face name to use. Face default attributes | 389 | expression whose value is the face name to use. Face default attributes |
| 390 | can be modified via \\[customize]. Instead of a face, FACENAME can | 390 | can be modified via \\[customize]. Instead of a face, FACENAME can |
| 391 | evaluate to a property list of the form (face VAL1 PROP2 VAL2 PROP3 VAL3 ...) | 391 | evaluate to a property list of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) |
| 392 | in which case all the listed text-properties will be set rather than | 392 | in which case all the listed text-properties will be set rather than |
| 393 | just `face'. In such a case, you will most likely want to put those | 393 | just FACE. In such a case, you will most likely want to put those |
| 394 | properties in `font-lock-extra-managed-props' or to override | 394 | properties in `font-lock-extra-managed-props' or to override |
| 395 | `font-lock-unfontify-region-function'. | 395 | `font-lock-unfontify-region-function'. |
| 396 | 396 | ||
| @@ -426,7 +426,7 @@ the last, instance MATCH-ANCHORED's MATCHER is used. Therefore they can be | |||
| 426 | used to initialise before, and cleanup after, MATCHER is used. Typically, | 426 | used to initialise before, and cleanup after, MATCHER is used. Typically, |
| 427 | PRE-MATCH-FORM is used to move to some position relative to the original | 427 | PRE-MATCH-FORM is used to move to some position relative to the original |
| 428 | MATCHER, before starting with MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might | 428 | MATCHER, before starting with MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might |
| 429 | be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER. | 429 | be used to move back, before resuming with MATCH-ANCHORED's parent's MATCHER. |
| 430 | 430 | ||
| 431 | For example, an element of the form highlights (if not already highlighted): | 431 | For example, an element of the form highlights (if not already highlighted): |
| 432 | 432 | ||
| @@ -436,7 +436,7 @@ For example, an element of the form highlights (if not already highlighted): | |||
| 436 | discrete occurrences of \"item\" (on the same line) in the value of `item-face'. | 436 | discrete occurrences of \"item\" (on the same line) in the value of `item-face'. |
| 437 | (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore \"item\" is | 437 | (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore \"item\" is |
| 438 | initially searched for starting from the end of the match of \"anchor\", and | 438 | initially searched for starting from the end of the match of \"anchor\", and |
| 439 | searching for subsequent instance of \"anchor\" resumes from where searching | 439 | searching for subsequent instances of \"anchor\" resumes from where searching |
| 440 | for \"item\" concluded.) | 440 | for \"item\" concluded.) |
| 441 | 441 | ||
| 442 | The above-mentioned exception is as follows. The limit of the MATCHER search | 442 | The above-mentioned exception is as follows. The limit of the MATCHER search |
| @@ -1657,7 +1657,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using | |||
| 1657 | '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold)) | 1657 | '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold)) |
| 1658 | (((class grayscale) (background dark)) (:foreground "DimGray" :weight bold)) | 1658 | (((class grayscale) (background dark)) (:foreground "DimGray" :weight bold)) |
| 1659 | (((class color) (min-colors 88) (background light)) (:foreground "Purple")) | 1659 | (((class color) (min-colors 88) (background light)) (:foreground "Purple")) |
| 1660 | (((class color) (min-colors 88) (background dark)) (:foreground "Cyan")) | 1660 | (((class color) (min-colors 88) (background dark)) (:foreground "Cyan1")) |
| 1661 | (((class color) (min-colors 16) (background light)) (:foreground "Purple")) | 1661 | (((class color) (min-colors 16) (background light)) (:foreground "Purple")) |
| 1662 | (((class color) (min-colors 16) (background dark)) (:foreground "Cyan")) | 1662 | (((class color) (min-colors 16) (background dark)) (:foreground "Cyan")) |
| 1663 | (((class color) (min-colors 8)) (:foreground "cyan" :weight bold)) | 1663 | (((class color) (min-colors 8)) (:foreground "cyan" :weight bold)) |
| @@ -1678,7 +1678,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using | |||
| 1678 | :group 'font-lock-highlighting-faces) | 1678 | :group 'font-lock-highlighting-faces) |
| 1679 | 1679 | ||
| 1680 | (defface font-lock-function-name-face | 1680 | (defface font-lock-function-name-face |
| 1681 | '((((class color) (min-colors 88) (background light)) (:foreground "Blue")) | 1681 | '((((class color) (min-colors 88) (background light)) (:foreground "Blue1")) |
| 1682 | (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) | 1682 | (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) |
| 1683 | (((class color) (min-colors 16) (background light)) (:foreground "Blue")) | 1683 | (((class color) (min-colors 16) (background light)) (:foreground "Blue")) |
| 1684 | (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) | 1684 | (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) |
| @@ -1728,7 +1728,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using | |||
| 1728 | :group 'font-lock-highlighting-faces) | 1728 | :group 'font-lock-highlighting-faces) |
| 1729 | 1729 | ||
| 1730 | (defface font-lock-warning-face | 1730 | (defface font-lock-warning-face |
| 1731 | '((((class color) (min-colors 88) (background light)) (:foreground "Red" :weight bold)) | 1731 | '((((class color) (min-colors 88) (background light)) (:foreground "Red1" :weight bold)) |
| 1732 | (((class color) (min-colors 88) (background dark)) (:foreground "Pink" :weight bold)) | 1732 | (((class color) (min-colors 88) (background dark)) (:foreground "Pink" :weight bold)) |
| 1733 | (((class color) (min-colors 16) (background light)) (:foreground "Red" :weight bold)) | 1733 | (((class color) (min-colors 16) (background light)) (:foreground "Red" :weight bold)) |
| 1734 | (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :weight bold)) | 1734 | (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :weight bold)) |
diff --git a/lisp/generic-x.el b/lisp/generic-x.el index d24ed378543..9191c39e553 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el | |||
| @@ -1612,8 +1612,8 @@ generic-x to enable the specified modes." | |||
| 1612 | (defface show-tabs-tab-face | 1612 | (defface show-tabs-tab-face |
| 1613 | '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) | 1613 | '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) |
| 1614 | (((class grayscale) (background dark)) (:background "LightGray" :weight bold)) | 1614 | (((class grayscale) (background dark)) (:background "LightGray" :weight bold)) |
| 1615 | (((class color) (background light)) (:background "red")) | 1615 | (((class color) (min-colors 88)) (:background "red1")) |
| 1616 | (((class color) (background dark)) (:background "red")) | 1616 | (((class color)) (:background "red")) |
| 1617 | (t (:weight bold))) | 1617 | (t (:weight bold))) |
| 1618 | "Font Lock mode face used to highlight TABs." | 1618 | "Font Lock mode face used to highlight TABs." |
| 1619 | :group 'generic-x) | 1619 | :group 'generic-x) |
| @@ -1621,8 +1621,8 @@ generic-x to enable the specified modes." | |||
| 1621 | (defface show-tabs-space-face | 1621 | (defface show-tabs-space-face |
| 1622 | '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) | 1622 | '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) |
| 1623 | (((class grayscale) (background dark)) (:background "LightGray" :weight bold)) | 1623 | (((class grayscale) (background dark)) (:background "LightGray" :weight bold)) |
| 1624 | (((class color) (background light)) (:background "yellow")) | 1624 | (((class color) (min-colors 88)) (:background "yellow1")) |
| 1625 | (((class color) (background dark)) (:background "yellow")) | 1625 | (((class color)) (:background "yellow")) |
| 1626 | (t (:weight bold))) | 1626 | (t (:weight bold))) |
| 1627 | "Font Lock mode face used to highlight spaces." | 1627 | "Font Lock mode face used to highlight spaces." |
| 1628 | :group 'generic-x) | 1628 | :group 'generic-x) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 14c47ab1f30..052a7fdf5fc 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,136 @@ | |||
| 1 | 2005-04-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * mm-util.el (mm-string-to-multibyte): New function. | ||
| 4 | (mm-detect-coding-region): Typo. | ||
| 5 | |||
| 6 | 2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 7 | |||
| 8 | * mm-util.el (mm-coding-system-p): Don't return binary for the nil | ||
| 9 | argument in XEmacs. | ||
| 10 | |||
| 11 | * nnrss.el (nnrss-compatible-encoding-alist): New variable. | ||
| 12 | (nnrss-request-group): Decode group name first. | ||
| 13 | (nnrss-request-article): Make a text/plain article if mml-to-mime | ||
| 14 | failed. | ||
| 15 | (nnrss-get-encoding): Return a compatible encoding according to | ||
| 16 | nnrss-compatible-encoding-alist. | ||
| 17 | (nnrss-opml-export): Use dolist. | ||
| 18 | (nnrss-find-el): Use consp instead of listp. | ||
| 19 | (nnrss-order-hrefs): Use dolist. | ||
| 20 | |||
| 21 | 2005-04-06 Arne J,Ax(Brgensen <arne@arnested.dk> | ||
| 22 | |||
| 23 | * nnrss.el (nnrss-verbose): Remove. | ||
| 24 | (nnrss-request-group): Use `nnheader-message' instead. | ||
| 25 | |||
| 26 | 2005-04-06 Mark Plaksin <happy@usg.edu> (tiny change) | ||
| 27 | |||
| 28 | * nnrss.el (nnrss-verbose): New variable. | ||
| 29 | (nnrss-request-group): Make it say nnrss is requesting a group. | ||
| 30 | |||
| 31 | 2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 32 | |||
| 33 | * gnus-agent.el (gnus-agent-group-path): Decode group name. | ||
| 34 | (gnus-agent-group-pathname): Ditto. | ||
| 35 | |||
| 36 | * gnus-cache.el (gnus-cache-file-name): Decode group name. | ||
| 37 | |||
| 38 | * gnus-group.el (gnus-group-line-format-alist): Use decoded group | ||
| 39 | name for only %g and %c. | ||
| 40 | (gnus-group-insert-group-line): Bind gnus-tmp-decoded-group | ||
| 41 | instead of gnus-tmp-group to decoded group name. | ||
| 42 | (gnus-group-make-group): Decode group name. | ||
| 43 | (gnus-group-delete-group): Ditto. | ||
| 44 | (gnus-group-make-rss-group): Exclude `/'s from group names; | ||
| 45 | register the group data after opening the nnrss group; unify | ||
| 46 | non-ASCII group names; encode group name. | ||
| 47 | (gnus-group-catchup-current): Decode group name. | ||
| 48 | (gnus-group-expire-articles-1): Ditto. | ||
| 49 | (gnus-group-set-current-level): Ditto. | ||
| 50 | (gnus-group-kill-group): Ditto. | ||
| 51 | |||
| 52 | * gnus-spec.el (gnus-update-format-specifications): Flush the | ||
| 53 | group format spec cache if it doesn't support decoded group names. | ||
| 54 | |||
| 55 | * mm-url.el (mm-url-predefined-programs): Add --silent arg to curl. | ||
| 56 | |||
| 57 | * nnrss.el: Require rfc2047 and mml. | ||
| 58 | (nnrss-file-coding-system): New variable. | ||
| 59 | (nnrss-format-string): Redefine it as an inline function. | ||
| 60 | (nnrss-decode-group-name): New function. | ||
| 61 | (nnrss-string-as-multibyte): Remove. | ||
| 62 | (nnrss-retrieve-headers): Decode group name; don't use | ||
| 63 | nnrss-format-string. | ||
| 64 | (nnrss-request-group): Decode group name. | ||
| 65 | (nnrss-request-article): Decode group name; allow a Message-ID as | ||
| 66 | well as an article number; don't use nnrss-format-string; encode a | ||
| 67 | Message-ID string which may contain non-ASCII characters; use | ||
| 68 | mml-to-mime to compose a MIME article; use search-forward instead | ||
| 69 | of re-search-forward. | ||
| 70 | (nnrss-request-expire-articles): Decode group name. | ||
| 71 | (nnrss-request-delete-group): Delete entries in nnrss-group-alist | ||
| 72 | as well; decode group name. | ||
| 73 | (nnrss-get-encoding): Fix regexp. | ||
| 74 | (nnrss-fetch): Clarify error message. | ||
| 75 | (nnrss-read-server-data): Use insert-file-contents instead of load; | ||
| 76 | bind file-name-coding-system; use multibyte buffer. | ||
| 77 | (nnrss-save-server-data): Insert newline; bind | ||
| 78 | coding-system-for-write to the value of nnrss-file-coding-system; | ||
| 79 | bind file-name-coding-system; add coding cookie. | ||
| 80 | (nnrss-read-group-data): Use insert-file-contents instead of load; | ||
| 81 | bind file-name-coding-system; use multibyte buffer. | ||
| 82 | (nnrss-save-group-data): Bind coding-system-for-write to the | ||
| 83 | value of nnrss-file-coding-system; bind file-name-coding-system. | ||
| 84 | (nnrss-decode-entities-string): Rename from n-d-e-unibyte-string; | ||
| 85 | make it work with non-ASCII text. | ||
| 86 | (nnrss-opml-export): Use mm-set-buffer-file-coding-system instead | ||
| 87 | of set-buffer-file-coding-system. | ||
| 88 | (nnrss-find-el): Check carefully whether there's a list of string | ||
| 89 | which old xml.el may return rather than a string; make it work | ||
| 90 | with old xml.el as well. | ||
| 91 | |||
| 92 | 2005-04-06 Tsuyoshi AKIHO <akiho@kawachi.zaq.ne.jp> | ||
| 93 | |||
| 94 | * gnus-sum.el (gnus-summary-walk-group-buffer): Decode group name. | ||
| 95 | |||
| 96 | * nnrss.el (nnrss-get-encoding): New function. | ||
| 97 | (nnrss-fetch): Use unibyte buffer initially; bind | ||
| 98 | coding-system-for-read while performing mm-url-insert; remove ^Ms; | ||
| 99 | decode contents according to the encoding attribute. | ||
| 100 | (nnrss-save-group-data): Add coding cookie. | ||
| 101 | (nnrss-mime-encode-string): New function. | ||
| 102 | (nnrss-check-group): Use it to encode subject and author. | ||
| 103 | |||
| 104 | 2005-04-06 Maciek Pasternacki <maciekp@japhy.fnord.org> (tiny change) | ||
| 105 | |||
| 106 | * nnrss.el (nnrss-fetch): Signal an error if w3-parse-buffer also | ||
| 107 | failed. | ||
| 108 | |||
| 109 | 2005-04-06 Jesper Harder <harder@ifa.au.dk> | ||
| 110 | |||
| 111 | * mm-util.el (mm-subst-char-in-string): Support inplace. | ||
| 112 | |||
| 113 | * nnrss.el: Pedantic docstring and whitespace fixes (courtesy of | ||
| 114 | checkdoc.el). | ||
| 115 | (nnrss-request-article): Cleanup. | ||
| 116 | (nnrss-request-delete-group): Use nnrss-make-filename. | ||
| 117 | (nnrss-read-server-data): Use nnrss-make-filename; use load. | ||
| 118 | (nnrss-save-server-data): Use nnrss-make-filename; use gnus-prin1. | ||
| 119 | (nnrss-read-group-data): Fix off-by-one error. From Joakim Verona | ||
| 120 | <joakim@verona.se>; hash on description if link is missing; use | ||
| 121 | nnrss-make-filename; use load. | ||
| 122 | (nnrss-save-group-data): Use nnrss-make-filename; use gnus-prin1. | ||
| 123 | (nnrss-make-filename): New function. | ||
| 124 | (nnrss-close): New function. | ||
| 125 | (nnrss-check-group): Hash on description if link is missing. | ||
| 126 | (nnrss-get-namespace-prefix): Use string= to compare strings! | ||
| 127 | Reported by David D. Smith <davidsmith@acm.org>. | ||
| 128 | (nnrss-opml-export): Turn on sgml-mode. | ||
| 129 | |||
| 130 | 2005-04-06 Mark A. Hershberger <mah@everybody.org> | ||
| 131 | |||
| 132 | * nnrss.el (nnrss-opml-import, nnrss-opml-export): New functions. | ||
| 133 | |||
| 1 | 2005-04-04 Reiner Steib <Reiner.Steib@gmx.de> | 134 | 2005-04-04 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 135 | ||
| 3 | * message.el (message-make-date): Add defvars in order to silence | 136 | * message.el (message-make-date): Add defvars in order to silence |
| @@ -503,7 +636,7 @@ | |||
| 503 | 636 | ||
| 504 | 2004-11-04 Katsumi Yamaoka <yamaoka@jpl.org> | 637 | 2004-11-04 Katsumi Yamaoka <yamaoka@jpl.org> |
| 505 | 638 | ||
| 506 | * gnus-art. (gnus-article-edit-article): Don't associate the | 639 | * gnus-art.el (gnus-article-edit-article): Don't associate the |
| 507 | article buffer with a draft file. This is a temporary measure | 640 | article buffer with a draft file. This is a temporary measure |
| 508 | against the 2004-08-22 change to gnus-article-edit-mode. | 641 | against the 2004-08-22 change to gnus-article-edit-mode. |
| 509 | 642 | ||
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index 2a774e2245a..5d7a608054e 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 | |||
| @@ -12604,7 +12604,7 @@ | |||
| 12604 | 12604 | ||
| 12605 | * nnfolder.el (nnfolder-read-folder): Use group instead of | 12605 | * nnfolder.el (nnfolder-read-folder): Use group instead of |
| 12606 | nnfolder-current-group. | 12606 | nnfolder-current-group. |
| 12607 | Suggested by Lorentey Karoly <lorentey@elte.hu>. | 12607 | Suggested by K,Ba(Broly L,Bu(Brentey <lorentey@elte.hu>. |
| 12608 | 12608 | ||
| 12609 | 2001-11-17 Simon Josefsson <jas@extundo.com> | 12609 | 2001-11-17 Simon Josefsson <jas@extundo.com> |
| 12610 | 12610 | ||
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 9a02f5b38aa..4236c7958fb 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; gnus-agent.el --- unplugged support for Gnus | 1 | ;;; gnus-agent.el --- unplugged support for Gnus |
| 2 | ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 | 2 | ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
| 3 | ;; Free Software Foundation, Inc. | 3 | ;; Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| @@ -1371,7 +1371,7 @@ downloaded into the agent." | |||
| 1371 | (nnheader-translate-file-chars | 1371 | (nnheader-translate-file-chars |
| 1372 | (nnheader-replace-duplicate-chars-in-string | 1372 | (nnheader-replace-duplicate-chars-in-string |
| 1373 | (nnheader-replace-chars-in-string | 1373 | (nnheader-replace-chars-in-string |
| 1374 | (gnus-group-real-name group) | 1374 | (gnus-group-real-name (gnus-group-decoded-name group)) |
| 1375 | ?/ ?_) | 1375 | ?/ ?_) |
| 1376 | ?. ?_))) | 1376 | ?. ?_))) |
| 1377 | (if (or nnmail-use-long-file-names | 1377 | (if (or nnmail-use-long-file-names |
| @@ -1387,8 +1387,10 @@ downloaded into the agent." | |||
| 1387 | ;; unplugged. The agent must, therefore, use the same directory | 1387 | ;; unplugged. The agent must, therefore, use the same directory |
| 1388 | ;; while plugged. | 1388 | ;; while plugged. |
| 1389 | (let ((gnus-command-method (or gnus-command-method | 1389 | (let ((gnus-command-method (or gnus-command-method |
| 1390 | (gnus-find-method-for-group group)))) | 1390 | (gnus-find-method-for-group group)))) |
| 1391 | (nnmail-group-pathname (gnus-group-real-name group) (gnus-agent-directory)))) | 1391 | (nnmail-group-pathname (gnus-group-real-name |
| 1392 | (gnus-group-decoded-name group)) | ||
| 1393 | (gnus-agent-directory)))) | ||
| 1392 | 1394 | ||
| 1393 | (defun gnus-agent-get-function (method) | 1395 | (defun gnus-agent-get-function (method) |
| 1394 | (if (gnus-online method) | 1396 | (if (gnus-online method) |
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index 8f2b491f5a4..657ade98167 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; gnus-cache.el --- cache interface for Gnus | 1 | ;;; gnus-cache.el --- cache interface for Gnus |
| 2 | ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 | 2 | ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
| 3 | ;; Free Software Foundation, Inc. | 3 | ;; 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 6 | ;; Keywords: news | 6 | ;; Keywords: news |
| @@ -421,6 +421,7 @@ Returns the list of articles removed." | |||
| 421 | (and (not unread) (not ticked) (not dormant) (memq 'read class)))) | 421 | (and (not unread) (not ticked) (not dormant) (memq 'read class)))) |
| 422 | 422 | ||
| 423 | (defun gnus-cache-file-name (group article) | 423 | (defun gnus-cache-file-name (group article) |
| 424 | (setq group (gnus-group-decoded-name group)) | ||
| 424 | (expand-file-name | 425 | (expand-file-name |
| 425 | (if (stringp article) article (int-to-string article)) | 426 | (if (stringp article) article (int-to-string article)) |
| 426 | (file-name-as-directory | 427 | (file-name-as-directory |
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 6d38626998c..30b7fe68dd1 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el | |||
| @@ -482,9 +482,15 @@ simple manner.") | |||
| 482 | (?T (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))) ?d) | 482 | (?T (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))) ?d) |
| 483 | (?i (+ (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked))) | 483 | (?i (+ (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked))) |
| 484 | (gnus-range-length (cdr (assq 'tick gnus-tmp-marked)))) ?d) | 484 | (gnus-range-length (cdr (assq 'tick gnus-tmp-marked)))) ?d) |
| 485 | (?g gnus-tmp-group ?s) | 485 | (?g (if (boundp 'gnus-tmp-decoded-group) |
| 486 | gnus-tmp-decoded-group | ||
| 487 | gnus-tmp-group) | ||
| 488 | ?s) | ||
| 486 | (?G gnus-tmp-qualified-group ?s) | 489 | (?G gnus-tmp-qualified-group ?s) |
| 487 | (?c (gnus-short-group-name gnus-tmp-group) ?s) | 490 | (?c (gnus-short-group-name (if (boundp 'gnus-tmp-decoded-group) |
| 491 | gnus-tmp-decoded-group | ||
| 492 | gnus-tmp-group)) | ||
| 493 | ?s) | ||
| 488 | (?C gnus-tmp-comment ?s) | 494 | (?C gnus-tmp-comment ?s) |
| 489 | (?D gnus-tmp-newsgroup-description ?s) | 495 | (?D gnus-tmp-newsgroup-description ?s) |
| 490 | (?o gnus-tmp-moderated ?c) | 496 | (?o gnus-tmp-moderated ?c) |
| @@ -1441,8 +1447,8 @@ if it is a string, only list groups matching REGEXP." | |||
| 1441 | (point) | 1447 | (point) |
| 1442 | (prog1 (1+ (point)) | 1448 | (prog1 (1+ (point)) |
| 1443 | ;; Insert the text. | 1449 | ;; Insert the text. |
| 1444 | (let ((gnus-tmp-group (gnus-group-name-decode | 1450 | (let ((gnus-tmp-decoded-group (gnus-group-name-decode |
| 1445 | gnus-tmp-group group-name-charset))) | 1451 | gnus-tmp-group group-name-charset))) |
| 1446 | (eval gnus-group-line-format-spec))) | 1452 | (eval gnus-group-line-format-spec))) |
| 1447 | `(gnus-group ,(gnus-intern-safe gnus-tmp-group gnus-active-hashtb) | 1453 | `(gnus-group ,(gnus-intern-safe gnus-tmp-group gnus-active-hashtb) |
| 1448 | gnus-unread ,(if (numberp number) | 1454 | gnus-unread ,(if (numberp number) |
| @@ -2244,7 +2250,7 @@ ADDRESS." | |||
| 2244 | (nname (if method (gnus-group-prefixed-name name meth) name)) | 2250 | (nname (if method (gnus-group-prefixed-name name meth) name)) |
| 2245 | backend info) | 2251 | backend info) |
| 2246 | (when (gnus-gethash nname gnus-newsrc-hashtb) | 2252 | (when (gnus-gethash nname gnus-newsrc-hashtb) |
| 2247 | (error "Group %s already exists" nname)) | 2253 | (error "Group %s already exists" (gnus-group-decoded-name nname))) |
| 2248 | ;; Subscribe to the new group. | 2254 | ;; Subscribe to the new group. |
| 2249 | (gnus-group-change-level | 2255 | (gnus-group-change-level |
| 2250 | (setq info (list t nname gnus-level-default-subscribed nil nil meth)) | 2256 | (setq info (list t nname gnus-level-default-subscribed nil nil meth)) |
| @@ -2305,20 +2311,21 @@ be removed from the server, even when it's empty." | |||
| 2305 | (unless (gnus-check-backend-function 'request-delete-group group) | 2311 | (unless (gnus-check-backend-function 'request-delete-group group) |
| 2306 | (error "This back end does not support group deletion")) | 2312 | (error "This back end does not support group deletion")) |
| 2307 | (prog1 | 2313 | (prog1 |
| 2308 | (if (and (not no-prompt) | 2314 | (let ((group-decoded (gnus-group-decoded-name group))) |
| 2309 | (not (gnus-yes-or-no-p | 2315 | (if (and (not no-prompt) |
| 2310 | (format | 2316 | (not (gnus-yes-or-no-p |
| 2311 | "Do you really want to delete %s%s? " | 2317 | (format |
| 2312 | group (if force " and all its contents" ""))))) | 2318 | "Do you really want to delete %s%s? " |
| 2313 | () ; Whew! | 2319 | group-decoded (if force " and all its contents" ""))))) |
| 2314 | (gnus-message 6 "Deleting group %s..." group) | 2320 | () ; Whew! |
| 2315 | (if (not (gnus-request-delete-group group force)) | 2321 | (gnus-message 6 "Deleting group %s..." group-decoded) |
| 2316 | (gnus-error 3 "Couldn't delete group %s" group) | 2322 | (if (not (gnus-request-delete-group group force)) |
| 2317 | (gnus-message 6 "Deleting group %s...done" group) | 2323 | (gnus-error 3 "Couldn't delete group %s" group-decoded) |
| 2318 | (gnus-group-goto-group group) | 2324 | (gnus-message 6 "Deleting group %s...done" group-decoded) |
| 2319 | (gnus-group-kill-group 1 t) | 2325 | (gnus-group-goto-group group) |
| 2320 | (gnus-sethash group nil gnus-active-hashtb) | 2326 | (gnus-group-kill-group 1 t) |
| 2321 | t)) | 2327 | (gnus-sethash group nil gnus-active-hashtb) |
| 2328 | t))) | ||
| 2322 | (gnus-group-position-point))) | 2329 | (gnus-group-position-point))) |
| 2323 | 2330 | ||
| 2324 | (defun gnus-group-rename-group (group new-name) | 2331 | (defun gnus-group-rename-group (group new-name) |
| @@ -2588,16 +2595,26 @@ If there is, use Gnus to create an nnrss group" | |||
| 2588 | (setq url (read-from-minibuffer "URL to Search for RSS: "))) | 2595 | (setq url (read-from-minibuffer "URL to Search for RSS: "))) |
| 2589 | (let ((feedinfo (nnrss-discover-feed url))) | 2596 | (let ((feedinfo (nnrss-discover-feed url))) |
| 2590 | (if feedinfo | 2597 | (if feedinfo |
| 2591 | (let ((title (read-from-minibuffer "Title: " | 2598 | (let ((title (gnus-newsgroup-savable-name |
| 2592 | (cdr (assoc 'title | 2599 | (read-from-minibuffer "Title: " |
| 2593 | feedinfo)))) | 2600 | (gnus-newsgroup-savable-name |
| 2601 | (or (cdr (assoc 'title | ||
| 2602 | feedinfo)) | ||
| 2603 | ""))))) | ||
| 2594 | (desc (read-from-minibuffer "Description: " | 2604 | (desc (read-from-minibuffer "Description: " |
| 2595 | (cdr (assoc 'description | 2605 | (cdr (assoc 'description |
| 2596 | feedinfo)))) | 2606 | feedinfo)))) |
| 2597 | (href (cdr (assoc 'href feedinfo)))) | 2607 | (href (cdr (assoc 'href feedinfo))) |
| 2598 | (push (list title href desc) | 2608 | (encodable (mm-coding-system-p 'utf-8))) |
| 2599 | nnrss-group-alist) | 2609 | (when encodable |
| 2600 | (gnus-group-make-group title '(nnrss "")) | 2610 | ;; Unify non-ASCII text. |
| 2611 | (setq title (mm-decode-coding-string | ||
| 2612 | (mm-encode-coding-string title 'utf-8) 'utf-8))) | ||
| 2613 | (gnus-group-make-group (if encodable | ||
| 2614 | (mm-encode-coding-string title 'utf-8) | ||
| 2615 | title) | ||
| 2616 | '(nnrss "")) | ||
| 2617 | (push (list title href desc) nnrss-group-alist) | ||
| 2601 | (nnrss-save-server-data nil)) | 2618 | (nnrss-save-server-data nil)) |
| 2602 | (error "No feeds found for %s" url)))) | 2619 | (error "No feeds found for %s" url)))) |
| 2603 | 2620 | ||
| @@ -3101,7 +3118,7 @@ up is returned." | |||
| 3101 | "Do you really want to mark all articles in %s as read? " | 3118 | "Do you really want to mark all articles in %s as read? " |
| 3102 | "Mark all unread articles in %s as read? ") | 3119 | "Mark all unread articles in %s as read? ") |
| 3103 | (if (= (length groups) 1) | 3120 | (if (= (length groups) 1) |
| 3104 | (car groups) | 3121 | (gnus-group-decoded-name (car groups)) |
| 3105 | (format "these %d groups" (length groups))))))) | 3122 | (format "these %d groups" (length groups))))))) |
| 3106 | n | 3123 | n |
| 3107 | (while (setq group (pop groups)) | 3124 | (while (setq group (pop groups)) |
| @@ -3179,7 +3196,8 @@ Uses the process/prefix convention." | |||
| 3179 | 3196 | ||
| 3180 | (defun gnus-group-expire-articles-1 (group) | 3197 | (defun gnus-group-expire-articles-1 (group) |
| 3181 | (when (gnus-check-backend-function 'request-expire-articles group) | 3198 | (when (gnus-check-backend-function 'request-expire-articles group) |
| 3182 | (gnus-message 6 "Expiring articles in %s..." group) | 3199 | (gnus-message 6 "Expiring articles in %s..." |
| 3200 | (gnus-group-decoded-name group)) | ||
| 3183 | (let* ((info (gnus-get-info group)) | 3201 | (let* ((info (gnus-get-info group)) |
| 3184 | (expirable (if (gnus-group-total-expirable-p group) | 3202 | (expirable (if (gnus-group-total-expirable-p group) |
| 3185 | (cons nil (gnus-list-of-read-articles group)) | 3203 | (cons nil (gnus-list-of-read-articles group)) |
| @@ -3204,7 +3222,8 @@ Uses the process/prefix convention." | |||
| 3204 | (gnus-request-expire-articles | 3222 | (gnus-request-expire-articles |
| 3205 | (gnus-uncompress-sequence (cdr expirable)) group)))) | 3223 | (gnus-uncompress-sequence (cdr expirable)) group)))) |
| 3206 | (gnus-close-group group)) | 3224 | (gnus-close-group group)) |
| 3207 | (gnus-message 6 "Expiring articles in %s...done" group) | 3225 | (gnus-message 6 "Expiring articles in %s...done" |
| 3226 | (gnus-group-decoded-name group)) | ||
| 3208 | ;; Return the list of un-expired articles. | 3227 | ;; Return the list of un-expired articles. |
| 3209 | (cdr expirable)))) | 3228 | (cdr expirable)))) |
| 3210 | 3229 | ||
| @@ -3243,7 +3262,8 @@ Uses the process/prefix convention." | |||
| 3243 | (while (setq group (pop groups)) | 3262 | (while (setq group (pop groups)) |
| 3244 | (gnus-group-remove-mark group) | 3263 | (gnus-group-remove-mark group) |
| 3245 | (gnus-message 6 "Changed level of %s from %d to %d" | 3264 | (gnus-message 6 "Changed level of %s from %d to %d" |
| 3246 | group (or (gnus-group-group-level) gnus-level-killed) | 3265 | (gnus-group-decoded-name group) |
| 3266 | (or (gnus-group-group-level) gnus-level-killed) | ||
| 3247 | level) | 3267 | level) |
| 3248 | (gnus-group-change-level | 3268 | (gnus-group-change-level |
| 3249 | group level (or (gnus-group-group-level) gnus-level-killed)) | 3269 | group level (or (gnus-group-group-level) gnus-level-killed)) |
| @@ -3392,7 +3412,7 @@ of groups killed." | |||
| 3392 | gnus-list-of-killed-groups)) | 3412 | gnus-list-of-killed-groups)) |
| 3393 | (gnus-group-change-level | 3413 | (gnus-group-change-level |
| 3394 | (if entry entry group) gnus-level-killed (if entry nil level)) | 3414 | (if entry entry group) gnus-level-killed (if entry nil level)) |
| 3395 | (message "Killed group %s" group)) | 3415 | (message "Killed group %s" (gnus-group-decoded-name group))) |
| 3396 | ;; If there are lots and lots of groups to be killed, we use | 3416 | ;; If there are lots and lots of groups to be killed, we use |
| 3397 | ;; this thing instead. | 3417 | ;; this thing instead. |
| 3398 | (dolist (group (nreverse groups)) | 3418 | (dolist (group (nreverse groups)) |
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index ff924139672..ef1c43167f5 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; gnus-spec.el --- format spec functions for Gnus | 1 | ;;; gnus-spec.el --- format spec functions for Gnus |
| 2 | ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 | 2 | ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
| 3 | ;; Free Software Foundation, Inc. | 3 | ;; Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| @@ -196,6 +196,13 @@ Return a list of updated types." | |||
| 196 | (not (equal emacs-version | 196 | (not (equal emacs-version |
| 197 | (cdr (assq 'version gnus-format-specs))))) | 197 | (cdr (assq 'version gnus-format-specs))))) |
| 198 | (setq gnus-format-specs nil)) | 198 | (setq gnus-format-specs nil)) |
| 199 | ;; Flush the group format spec cache if it doesn't support decoded | ||
| 200 | ;; group names. | ||
| 201 | (when (memq 'group types) | ||
| 202 | (let ((spec (assq 'group gnus-format-specs))) | ||
| 203 | (unless (string-match " gnus-tmp-decoded-group[ )]" | ||
| 204 | (gnus-prin1-to-string (nth 2 spec))) | ||
| 205 | (setq gnus-format-specs (delq spec gnus-format-specs))))) | ||
| 199 | 206 | ||
| 200 | ;; Go through all the formats and see whether they need updating. | 207 | ;; Go through all the formats and see whether they need updating. |
| 201 | (let (new-format entry type val updated) | 208 | (let (new-format entry type val updated) |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 8d6a5f951b5..17cb1ea2a6b 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -7254,11 +7254,12 @@ If BACKWARD, the previous article is selected instead of the next." | |||
| 7254 | (if (and group | 7254 | (if (and group |
| 7255 | (not (gnus-ephemeral-group-p gnus-newsgroup-name))) | 7255 | (not (gnus-ephemeral-group-p gnus-newsgroup-name))) |
| 7256 | (format " (Type %s for %s [%s])" | 7256 | (format " (Type %s for %s [%s])" |
| 7257 | (single-key-description cmd) group | 7257 | (single-key-description cmd) |
| 7258 | (gnus-group-decoded-name group) | ||
| 7258 | (car (gnus-gethash group gnus-newsrc-hashtb))) | 7259 | (car (gnus-gethash group gnus-newsrc-hashtb))) |
| 7259 | (format " (Type %s to exit %s)" | 7260 | (format " (Type %s to exit %s)" |
| 7260 | (single-key-description cmd) | 7261 | (single-key-description cmd) |
| 7261 | gnus-newsgroup-name)))) | 7262 | (gnus-group-decoded-name gnus-newsgroup-name))))) |
| 7262 | ;; Confirm auto selection. | 7263 | ;; Confirm auto selection. |
| 7263 | (setq key (car (setq keve (gnus-read-event-char prompt))) | 7264 | (setq key (car (setq keve (gnus-read-event-char prompt))) |
| 7264 | ended t) | 7265 | ended t) |
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index a66c03908eb..ff7608e4a24 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el | |||
| @@ -59,7 +59,7 @@ | |||
| 59 | '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-") | 59 | '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-") |
| 60 | (w3m "w3m" "-dump_source") | 60 | (w3m "w3m" "-dump_source") |
| 61 | (lynx "lynx" "-source") | 61 | (lynx "lynx" "-source") |
| 62 | (curl "curl"))) | 62 | (curl "curl" "--silent"))) |
| 63 | 63 | ||
| 64 | (defcustom mm-url-program | 64 | (defcustom mm-url-program |
| 65 | (cond | 65 | (cond |
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 3be6444f18f..0ee52e797d0 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el | |||
| @@ -57,9 +57,11 @@ | |||
| 57 | mm-mime-mule-charset-alist) | 57 | mm-mime-mule-charset-alist) |
| 58 | nil t)))) | 58 | nil t)))) |
| 59 | (subst-char-in-string | 59 | (subst-char-in-string |
| 60 | . (lambda (from to string) ;; stolen (and renamed) from nnheader.el | 60 | . (lambda (from to string &optional inplace) |
| 61 | "Replace characters in STRING from FROM to TO." | 61 | ;; stolen (and renamed) from nnheader.el |
| 62 | (let ((string (substring string 0)) ;Copy string. | 62 | "Replace characters in STRING from FROM to TO. |
| 63 | Unless optional argument INPLACE is non-nil, return a new string." | ||
| 64 | (let ((string (if inplace string (copy-sequence string))) | ||
| 63 | (len (length string)) | 65 | (len (length string)) |
| 64 | (idx 0)) | 66 | (idx 0)) |
| 65 | ;; Replace all occurrences of FROM with TO. | 67 | ;; Replace all occurrences of FROM with TO. |
| @@ -70,7 +72,26 @@ | |||
| 70 | string))) | 72 | string))) |
| 71 | (string-as-unibyte . identity) | 73 | (string-as-unibyte . identity) |
| 72 | (string-make-unibyte . identity) | 74 | (string-make-unibyte . identity) |
| 75 | ;; string-as-multibyte often doesn't really do what you think it does. | ||
| 76 | ;; Example: | ||
| 77 | ;; (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201) | ||
| 78 | ;; (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300) | ||
| 79 | ;; (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300) | ||
| 80 | ;; (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201) | ||
| 81 | ;; but | ||
| 82 | ;; (aref (string-as-multibyte "\201\300") 0) -> 2240 | ||
| 83 | ;; (aref (string-as-multibyte "\201\300") 1) -> <error> | ||
| 84 | ;; Better use string-to-multibyte or encode-coding-string. | ||
| 85 | ;; If you really need string-as-multibyte somewhere it's usually | ||
| 86 | ;; because you're using the internal emacs-mule representation (maybe | ||
| 87 | ;; because you're using string-as-unibyte somewhere), which is | ||
| 88 | ;; generally a problem in itself. | ||
| 89 | ;; Here is an approximate equivalence table to help think about it: | ||
| 90 | ;; (string-as-multibyte s) ~= (decode-coding-string s 'emacs-mule) | ||
| 91 | ;; (string-to-multibyte s) ~= (decode-coding-string s 'binary) | ||
| 92 | ;; (string-make-multibyte s) ~= (decode-coding-string s locale-coding-system) | ||
| 73 | (string-as-multibyte . identity) | 93 | (string-as-multibyte . identity) |
| 94 | (string-to-multibyte . mm-string-as-multibyte) | ||
| 74 | (multibyte-string-p . ignore) | 95 | (multibyte-string-p . ignore) |
| 75 | ;; It is not a MIME function, but some MIME functions use it. | 96 | ;; It is not a MIME function, but some MIME functions use it. |
| 76 | (make-temp-file . (lambda (prefix &optional dir-flag) | 97 | (make-temp-file . (lambda (prefix &optional dir-flag) |
| @@ -153,7 +174,7 @@ In XEmacs, also return non-nil if CS is a coding system object. | |||
| 153 | If CS is available, return CS itself in Emacs, and return a coding | 174 | If CS is available, return CS itself in Emacs, and return a coding |
| 154 | system object in XEmacs." | 175 | system object in XEmacs." |
| 155 | (if (fboundp 'find-coding-system) | 176 | (if (fboundp 'find-coding-system) |
| 156 | (find-coding-system cs) | 177 | (and cs (find-coding-system cs)) |
| 157 | (if (fboundp 'coding-system-p) | 178 | (if (fboundp 'coding-system-p) |
| 158 | (when (coding-system-p cs) | 179 | (when (coding-system-p cs) |
| 159 | cs) | 180 | cs) |
| @@ -936,7 +957,7 @@ If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'." | |||
| 936 | (defun mm-detect-coding-region (start end) | 957 | (defun mm-detect-coding-region (start end) |
| 937 | "Like `detect-coding-region' except returning the best one." | 958 | "Like `detect-coding-region' except returning the best one." |
| 938 | (let ((coding-systems | 959 | (let ((coding-systems |
| 939 | (detect-coding-region (point) (point-max)))) | 960 | (detect-coding-region start end))) |
| 940 | (or (car-safe coding-systems) | 961 | (or (car-safe coding-systems) |
| 941 | coding-systems))) | 962 | coding-systems))) |
| 942 | (defun mm-detect-coding-region (start end) | 963 | (defun mm-detect-coding-region (start end) |
| @@ -960,5 +981,5 @@ If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'." | |||
| 960 | 981 | ||
| 961 | (provide 'mm-util) | 982 | (provide 'mm-util) |
| 962 | 983 | ||
| 963 | ;;; arch-tag: 94dc5388-825d-4fd1-bfa5-2100aa351238 | 984 | ;; arch-tag: 94dc5388-825d-4fd1-bfa5-2100aa351238 |
| 964 | ;;; mm-util.el ends here | 985 | ;;; mm-util.el ends here |
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 6ff2b46722e..006e309c3ff 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; nnrss.el --- interfacing with RSS | 1 | ;;; nnrss.el --- interfacing with RSS |
| 2 | ;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. | 2 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 3 | 3 | ||
| 4 | ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> | 4 | ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> |
| 5 | ;; Keywords: RSS | 5 | ;; Keywords: RSS |
| @@ -36,9 +36,11 @@ | |||
| 36 | (require 'time-date) | 36 | (require 'time-date) |
| 37 | (require 'rfc2231) | 37 | (require 'rfc2231) |
| 38 | (require 'mm-url) | 38 | (require 'mm-url) |
| 39 | (require 'rfc2047) | ||
| 40 | (require 'mml) | ||
| 39 | (eval-when-compile | 41 | (eval-when-compile |
| 40 | (ignore-errors | 42 | (ignore-errors |
| 41 | (require 'xml))) | 43 | (require 'xml))) |
| 42 | (eval '(require 'xml)) | 44 | (eval '(require 'xml)) |
| 43 | 45 | ||
| 44 | (nnoo-declare nnrss) | 46 | (nnoo-declare nnrss) |
| @@ -75,20 +77,32 @@ To use the description in headers, put this name into `nnmail-extra-headers'.") | |||
| 75 | (defvar nnrss-content-function nil | 77 | (defvar nnrss-content-function nil |
| 76 | "A function which is called in `nnrss-request-article'. | 78 | "A function which is called in `nnrss-request-article'. |
| 77 | The arguments are (ENTRY GROUP ARTICLE). | 79 | The arguments are (ENTRY GROUP ARTICLE). |
| 78 | ENTRY is the record of the current headline. GROUP is the group name. | 80 | ENTRY is the record of the current headline. GROUP is the group name. |
| 79 | ARTICLE is the article number of the current headline.") | 81 | ARTICLE is the article number of the current headline.") |
| 80 | 82 | ||
| 83 | (defvar nnrss-file-coding-system mm-universal-coding-system | ||
| 84 | "Coding system used when reading and writing files.") | ||
| 85 | |||
| 86 | (defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252)) | ||
| 87 | "Alist of encodings and those supersets. | ||
| 88 | The cdr of each element is used to decode data if it is available when | ||
| 89 | the car is what the data specify as the encoding. Or, the car is used | ||
| 90 | for decoding when the cdr that the data specify is not available.") | ||
| 91 | |||
| 81 | (nnoo-define-basics nnrss) | 92 | (nnoo-define-basics nnrss) |
| 82 | 93 | ||
| 83 | ;;; Interface functions | 94 | ;;; Interface functions |
| 84 | 95 | ||
| 85 | (eval-when-compile | 96 | (defsubst nnrss-format-string (string) |
| 86 | (defmacro nnrss-string-as-multibyte (string) | 97 | (gnus-replace-in-string string " *\n *" " ")) |
| 87 | (if (featurep 'xemacs) | 98 | |
| 88 | string | 99 | (defun nnrss-decode-group-name (group) |
| 89 | `(string-as-multibyte ,string)))) | 100 | (if (and group (mm-coding-system-p 'utf-8)) |
| 101 | (setq group (mm-decode-coding-string group 'utf-8)) | ||
| 102 | group)) | ||
| 90 | 103 | ||
| 91 | (deffoo nnrss-retrieve-headers (articles &optional group server fetch-old) | 104 | (deffoo nnrss-retrieve-headers (articles &optional group server fetch-old) |
| 105 | (setq group (nnrss-decode-group-name group)) | ||
| 92 | (nnrss-possibly-change-group group server) | 106 | (nnrss-possibly-change-group group server) |
| 93 | (let (e) | 107 | (let (e) |
| 94 | (save-excursion | 108 | (save-excursion |
| @@ -97,21 +111,26 @@ ARTICLE is the article number of the current headline.") | |||
| 97 | (dolist (article articles) | 111 | (dolist (article articles) |
| 98 | (if (setq e (assq article nnrss-group-data)) | 112 | (if (setq e (assq article nnrss-group-data)) |
| 99 | (insert (number-to-string (car e)) "\t" ;; number | 113 | (insert (number-to-string (car e)) "\t" ;; number |
| 100 | (if (nth 3 e) | 114 | ;; subject |
| 101 | (nnrss-format-string (nth 3 e)) "") | 115 | (or (nth 3 e) "") |
| 102 | "\t" ;; subject | 116 | "\t" |
| 103 | (if (nth 4 e) | 117 | ;; from |
| 104 | (nnrss-format-string (nth 4 e)) | 118 | (or (nth 4 e) "(nobody)") |
| 105 | "(nobody)") | 119 | "\t" |
| 106 | "\t" ;;from | 120 | ;; date |
| 107 | (or (nth 5 e) "") | 121 | (or (nth 5 e) "") |
| 108 | "\t" ;; date | 122 | "\t" |
| 123 | ;; id | ||
| 109 | (format "<%d@%s.nnrss>" (car e) group) | 124 | (format "<%d@%s.nnrss>" (car e) group) |
| 110 | "\t" ;; id | 125 | "\t" |
| 111 | "\t" ;; refs | 126 | ;; refs |
| 112 | "-1" "\t" ;; chars | 127 | "\t" |
| 113 | "-1" "\t" ;; lines | 128 | ;; chars |
| 114 | "" "\t" ;; Xref | 129 | "-1" "\t" |
| 130 | ;; lines | ||
| 131 | "-1" "\t" | ||
| 132 | ;; Xref | ||
| 133 | "" "\t" | ||
| 115 | (if (and (nth 6 e) | 134 | (if (and (nth 6 e) |
| 116 | (memq nnrss-description-field | 135 | (memq nnrss-description-field |
| 117 | nnmail-extra-headers)) | 136 | nnmail-extra-headers)) |
| @@ -132,69 +151,102 @@ ARTICLE is the article number of the current headline.") | |||
| 132 | 'nov) | 151 | 'nov) |
| 133 | 152 | ||
| 134 | (deffoo nnrss-request-group (group &optional server dont-check) | 153 | (deffoo nnrss-request-group (group &optional server dont-check) |
| 154 | (setq group (nnrss-decode-group-name group)) | ||
| 155 | (nnheader-message 6 "nnrss: Requesting %s..." group) | ||
| 135 | (nnrss-possibly-change-group group server) | 156 | (nnrss-possibly-change-group group server) |
| 136 | (if dont-check | 157 | (prog1 |
| 137 | t | 158 | (if dont-check |
| 138 | (nnrss-check-group group server) | 159 | t |
| 139 | (nnheader-report 'nnrss "Opened group %s" group) | 160 | (nnrss-check-group group server) |
| 140 | (nnheader-insert | 161 | (nnheader-report 'nnrss "Opened group %s" group) |
| 141 | "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max | 162 | (nnheader-insert |
| 142 | (prin1-to-string group) | 163 | "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max |
| 143 | t))) | 164 | (prin1-to-string group) |
| 165 | t)) | ||
| 166 | (nnheader-message 6 "nnrss: Requesting %s...done" group))) | ||
| 144 | 167 | ||
| 145 | (deffoo nnrss-close-group (group &optional server) | 168 | (deffoo nnrss-close-group (group &optional server) |
| 146 | t) | 169 | t) |
| 147 | 170 | ||
| 148 | (deffoo nnrss-request-article (article &optional group server buffer) | 171 | (deffoo nnrss-request-article (article &optional group server buffer) |
| 172 | (setq group (nnrss-decode-group-name group)) | ||
| 173 | (when (stringp article) | ||
| 174 | (setq article (if (string-match "\\`<\\([0-9]+\\)@" article) | ||
| 175 | (string-to-number (match-string 1 article)) | ||
| 176 | 0))) | ||
| 149 | (nnrss-possibly-change-group group server) | 177 | (nnrss-possibly-change-group group server) |
| 150 | (let ((e (assq article nnrss-group-data)) | 178 | (let ((e (assq article nnrss-group-data)) |
| 151 | (boundary "=-=-=-=-=-=-=-=-=-") | ||
| 152 | (nntp-server-buffer (or buffer nntp-server-buffer)) | 179 | (nntp-server-buffer (or buffer nntp-server-buffer)) |
| 153 | post err) | 180 | post err) |
| 154 | (when e | 181 | (when e |
| 155 | (catch 'error | 182 | (with-current-buffer nntp-server-buffer |
| 156 | (with-current-buffer nntp-server-buffer | 183 | (erase-buffer) |
| 157 | (erase-buffer) | 184 | (if group |
| 158 | (goto-char (point-min)) | 185 | (insert "Newsgroups: " group "\n")) |
| 159 | (insert "Mime-Version: 1.0\nContent-Type: multipart/alternative; boundary=\"" boundary "\"\n") | 186 | (if (nth 3 e) |
| 160 | (if group | 187 | (insert "Subject: " (nth 3 e) "\n")) |
| 161 | (insert "Newsgroups: " group "\n")) | 188 | (if (nth 4 e) |
| 162 | (if (nth 3 e) | 189 | (insert "From: " (nth 4 e) "\n")) |
| 163 | (insert "Subject: " (nnrss-format-string (nth 3 e)) "\n")) | 190 | (if (nth 5 e) |
| 164 | (if (nth 4 e) | 191 | (insert "Date: " (nnrss-format-string (nth 5 e)) "\n")) |
| 165 | (insert "From: " (nnrss-format-string (nth 4 e)) "\n")) | 192 | (let ((header (buffer-string)) |
| 166 | (if (nth 5 e) | 193 | (text (if (nth 6 e) |
| 167 | (insert "Date: " (nnrss-format-string (nth 5 e)) "\n")) | 194 | (mapconcat 'identity |
| 168 | (insert "Message-ID: " (format "<%d@%s.nnrss>" (car e) group) "\n") | 195 | (delete "" (split-string (nth 6 e) "\n+")) |
| 169 | (insert "\n") | 196 | " "))) |
| 170 | (let ((text (if (nth 6 e) | 197 | (link (nth 2 e)) |
| 171 | (nnrss-string-as-multibyte (nth 6 e)))) | 198 | ;; Enable encoding of Newsgroups header in XEmacs. |
| 172 | (link (if (nth 2 e) | 199 | (default-enable-multibyte-characters t) |
| 173 | (nth 2 e)))) | 200 | (rfc2047-header-encoding-alist |
| 174 | (insert "\n\n--" boundary "\nContent-Type: text/plain\n\n") | 201 | (if (mm-coding-system-p 'utf-8) |
| 175 | (let ((point (point))) | 202 | (cons '("Newsgroups" . utf-8) |
| 176 | (if text | 203 | rfc2047-header-encoding-alist) |
| 177 | (progn (insert text) | 204 | rfc2047-header-encoding-alist)) |
| 178 | (goto-char point) | 205 | rfc2047-encode-encoded-words body) |
| 179 | (while (re-search-forward "\n" nil t) | 206 | (when (or text link) |
| 180 | (replace-match " ")) | 207 | (insert "\n") |
| 181 | (goto-char (point-max)) | 208 | (insert "<#multipart type=alternative>\n" |
| 182 | (insert "\n\n"))) | 209 | "<#part type=\"text/plain\">\n") |
| 183 | (if link | 210 | (setq body (point)) |
| 184 | (insert link))) | 211 | (if text |
| 185 | (insert "\n\n--" boundary "\nContent-Type: text/html\n\n") | 212 | (progn |
| 186 | (let ((point (point))) | 213 | (insert text "\n") |
| 187 | (if text | 214 | (when link |
| 188 | (progn (insert "<html><head></head><body>\n" text "\n</body></html>") | 215 | (insert "\n" link "\n"))) |
| 189 | (goto-char point) | 216 | (when link |
| 190 | (while (re-search-forward "\n" nil t) | 217 | (insert link "\n"))) |
| 191 | (replace-match " ")) | 218 | (setq body (buffer-substring body (point))) |
| 192 | (goto-char (point-max)) | 219 | (insert "<#/part>\n" |
| 193 | (insert "\n\n"))) | 220 | "<#part type=\"text/html\">\n" |
| 194 | (if link | 221 | "<html><head></head><body>\n") |
| 195 | (insert "<p><a href=\"" link "\">link</a></p>\n")))) | 222 | (when text |
| 196 | (if nnrss-content-function | 223 | (insert text "\n")) |
| 197 | (funcall nnrss-content-function e group article))))) | 224 | (when link |
| 225 | (insert "<p><a href=\"" link "\">link</a></p>\n")) | ||
| 226 | (insert "</body></html>\n" | ||
| 227 | "<#/part>\n" | ||
| 228 | "<#/multipart>\n")) | ||
| 229 | (condition-case nil | ||
| 230 | (mml-to-mime) | ||
| 231 | (error | ||
| 232 | (erase-buffer) | ||
| 233 | (insert header | ||
| 234 | "Content-Type: text/plain; charset=gnus-decoded\n" | ||
| 235 | "Content-Transfer-Encoding: 8bit\n\n" | ||
| 236 | body) | ||
| 237 | (nnheader-message | ||
| 238 | 3 "Warning - there might be invalid characters")))) | ||
| 239 | (goto-char (point-min)) | ||
| 240 | (search-forward "\n\n") | ||
| 241 | (forward-line -1) | ||
| 242 | (insert (format "Message-ID: <%d@%s.nnrss>\n" | ||
| 243 | (car e) | ||
| 244 | (let ((rfc2047-encoding-type 'mime) | ||
| 245 | rfc2047-encode-max-chars) | ||
| 246 | (rfc2047-encode-string | ||
| 247 | (gnus-replace-in-string group "[\t\n ]+" "_"))))) | ||
| 248 | (when nnrss-content-function | ||
| 249 | (funcall nnrss-content-function e group article)))) | ||
| 198 | (cond | 250 | (cond |
| 199 | (err | 251 | (err |
| 200 | (nnheader-report 'nnrss err)) | 252 | (nnheader-report 'nnrss err)) |
| @@ -217,6 +269,7 @@ ARTICLE is the article number of the current headline.") | |||
| 217 | 269 | ||
| 218 | (deffoo nnrss-request-expire-articles | 270 | (deffoo nnrss-request-expire-articles |
| 219 | (articles group &optional server force) | 271 | (articles group &optional server force) |
| 272 | (setq group (nnrss-decode-group-name group)) | ||
| 220 | (nnrss-possibly-change-group group server) | 273 | (nnrss-possibly-change-group group server) |
| 221 | (let (e days not-expirable changed) | 274 | (let (e days not-expirable changed) |
| 222 | (dolist (art articles) | 275 | (dolist (art articles) |
| @@ -234,18 +287,18 @@ ARTICLE is the article number of the current headline.") | |||
| 234 | not-expirable)) | 287 | not-expirable)) |
| 235 | 288 | ||
| 236 | (deffoo nnrss-request-delete-group (group &optional force server) | 289 | (deffoo nnrss-request-delete-group (group &optional force server) |
| 290 | (setq group (nnrss-decode-group-name group)) | ||
| 237 | (nnrss-possibly-change-group group server) | 291 | (nnrss-possibly-change-group group server) |
| 292 | (let (elem) | ||
| 293 | ;; There may be two or more entries in `nnrss-group-alist' since | ||
| 294 | ;; this function didn't delete them formerly. | ||
| 295 | (while (setq elem (assoc group nnrss-group-alist)) | ||
| 296 | (setq nnrss-group-alist (delq elem nnrss-group-alist)))) | ||
| 238 | (setq nnrss-server-data | 297 | (setq nnrss-server-data |
| 239 | (delq (assoc group nnrss-server-data) nnrss-server-data)) | 298 | (delq (assoc group nnrss-server-data) nnrss-server-data)) |
| 240 | (nnrss-save-server-data server) | 299 | (nnrss-save-server-data server) |
| 241 | (let ((file (expand-file-name | 300 | (ignore-errors |
| 242 | (nnrss-translate-file-chars | 301 | (delete-file (nnrss-make-filename group server))) |
| 243 | (concat group (and server | ||
| 244 | (not (equal server "")) | ||
| 245 | "-") | ||
| 246 | server ".el")) nnrss-directory))) | ||
| 247 | (ignore-errors | ||
| 248 | (delete-file file))) | ||
| 249 | t) | 302 | t) |
| 250 | 303 | ||
| 251 | (deffoo nnrss-request-list-newsgroups (&optional server) | 304 | (deffoo nnrss-request-list-newsgroups (&optional server) |
| @@ -262,34 +315,67 @@ ARTICLE is the article number of the current headline.") | |||
| 262 | 315 | ||
| 263 | ;;; Internal functions | 316 | ;;; Internal functions |
| 264 | (eval-when-compile (defun xml-rpc-method-call (&rest args))) | 317 | (eval-when-compile (defun xml-rpc-method-call (&rest args))) |
| 318 | |||
| 319 | (defun nnrss-get-encoding () | ||
| 320 | "Return an encoding attribute specified in the current xml contents. | ||
| 321 | If `nnrss-compatible-encoding-alist' specifies the compatible encoding, | ||
| 322 | it is used instead. If the xml contents doesn't specify the encoding, | ||
| 323 | return `utf-8' which is the default encoding for xml if it is available, | ||
| 324 | otherwise return nil." | ||
| 325 | (goto-char (point-min)) | ||
| 326 | (if (re-search-forward | ||
| 327 | "<\\?[^>]*encoding=\\(\"\\([^\">]+\\)\"\\|'\\([^'>]+\\)'\\)" | ||
| 328 | nil t) | ||
| 329 | (let ((encoding (intern (downcase (or (match-string 2) | ||
| 330 | (match-string 3)))))) | ||
| 331 | (or | ||
| 332 | (mm-coding-system-p (cdr (assq encoding | ||
| 333 | nnrss-compatible-encoding-alist))) | ||
| 334 | (mm-coding-system-p encoding) | ||
| 335 | (mm-coding-system-p (car (rassq encoding | ||
| 336 | nnrss-compatible-encoding-alist))))) | ||
| 337 | (mm-coding-system-p 'utf-8))) | ||
| 338 | |||
| 265 | (defun nnrss-fetch (url &optional local) | 339 | (defun nnrss-fetch (url &optional local) |
| 266 | "Fetch the url and put it in a the expected lisp structure." | 340 | "Fetch URL and put it in a the expected Lisp structure." |
| 267 | (with-temp-buffer | 341 | (mm-with-unibyte-buffer |
| 268 | ;some CVS versions of url.el need this to close the connection quickly | 342 | ;;some CVS versions of url.el need this to close the connection quickly |
| 269 | (let* (xmlform htmlform) | 343 | (let (cs xmlform htmlform) |
| 270 | ;; bit o' work necessary for w3 pre-cvs and post-cvs | 344 | ;; bit o' work necessary for w3 pre-cvs and post-cvs |
| 271 | (if local | 345 | (if local |
| 272 | (let ((coding-system-for-read 'binary)) | 346 | (let ((coding-system-for-read 'binary)) |
| 273 | (insert-file-contents url)) | 347 | (insert-file-contents url)) |
| 274 | (mm-url-insert url)) | 348 | ;; FIXME: shouldn't binding `coding-system-for-read' be moved |
| 275 | 349 | ;; to `mm-url-insert'? | |
| 276 | ;; Because xml-parse-region can't deal with anything that isn't | 350 | (let ((coding-system-for-read 'binary)) |
| 277 | ;; xml and w3-parse-buffer can't deal with some xml, we have to | 351 | (mm-url-insert url))) |
| 278 | ;; parse with xml-parse-region first and, if that fails, parse | 352 | (nnheader-remove-cr-followed-by-lf) |
| 279 | ;; with w3-parse-buffer. Yuck. Eventually, someone should find out | 353 | ;; Decode text according to the encoding attribute. |
| 280 | ;; why w3-parse-buffer fails to parse some well-formed xml and | 354 | (when (setq cs (nnrss-get-encoding)) |
| 281 | ;; fix it. | 355 | (mm-decode-coding-region (point-min) (point-max) cs) |
| 282 | 356 | (mm-enable-multibyte)) | |
| 283 | (condition-case err | 357 | (goto-char (point-min)) |
| 284 | (setq xmlform (xml-parse-region (point-min) (point-max))) | 358 | |
| 285 | (error (if (fboundp 'w3-parse-buffer) | 359 | ;; Because xml-parse-region can't deal with anything that isn't |
| 286 | (setq htmlform (caddar (w3-parse-buffer | 360 | ;; xml and w3-parse-buffer can't deal with some xml, we have to |
| 287 | (current-buffer)))) | 361 | ;; parse with xml-parse-region first and, if that fails, parse |
| 288 | (message "nnrss: Not valid XML and w3 parse not available (%s)" | 362 | ;; with w3-parse-buffer. Yuck. Eventually, someone should find out |
| 289 | url)))) | 363 | ;; why w3-parse-buffer fails to parse some well-formed xml and |
| 290 | (if htmlform | 364 | ;; fix it. |
| 291 | htmlform | 365 | |
| 292 | xmlform)))) | 366 | (condition-case err1 |
| 367 | (setq xmlform (xml-parse-region (point-min) (point-max))) | ||
| 368 | (error | ||
| 369 | (condition-case err2 | ||
| 370 | (setq htmlform (caddar (w3-parse-buffer | ||
| 371 | (current-buffer)))) | ||
| 372 | (error | ||
| 373 | (message "\ | ||
| 374 | nnrss: %s: Not valid XML %s and w3-parse doesn't work %s" | ||
| 375 | url err1 err2))))) | ||
| 376 | (if htmlform | ||
| 377 | htmlform | ||
| 378 | xmlform)))) | ||
| 293 | 379 | ||
| 294 | (defun nnrss-possibly-change-group (&optional group server) | 380 | (defun nnrss-possibly-change-group (&optional group server) |
| 295 | (when (and server | 381 | (when (and server |
| @@ -302,9 +388,9 @@ ARTICLE is the article number of the current headline.") | |||
| 302 | (defvar nnrss-extra-categories '(nnrss-snarf-moreover-categories)) | 388 | (defvar nnrss-extra-categories '(nnrss-snarf-moreover-categories)) |
| 303 | 389 | ||
| 304 | (defun nnrss-generate-active () | 390 | (defun nnrss-generate-active () |
| 305 | (if (y-or-n-p "fetch extra categories? ") | 391 | (when (y-or-n-p "Fetch extra categories? ") |
| 306 | (dolist (func nnrss-extra-categories) | 392 | (dolist (func nnrss-extra-categories) |
| 307 | (funcall func))) | 393 | (funcall func))) |
| 308 | (save-excursion | 394 | (save-excursion |
| 309 | (set-buffer nntp-server-buffer) | 395 | (set-buffer nntp-server-buffer) |
| 310 | (erase-buffer) | 396 | (erase-buffer) |
| @@ -318,41 +404,26 @@ ARTICLE is the article number of the current headline.") | |||
| 318 | 404 | ||
| 319 | (defun nnrss-read-server-data (server) | 405 | (defun nnrss-read-server-data (server) |
| 320 | (setq nnrss-server-data nil) | 406 | (setq nnrss-server-data nil) |
| 321 | (let ((file (expand-file-name | 407 | (let ((file (nnrss-make-filename "nnrss" server))) |
| 322 | (nnrss-translate-file-chars | ||
| 323 | (concat "nnrss" (and server | ||
| 324 | (not (equal server "")) | ||
| 325 | "-") | ||
| 326 | server | ||
| 327 | ".el")) | ||
| 328 | nnrss-directory))) | ||
| 329 | (when (file-exists-p file) | 408 | (when (file-exists-p file) |
| 330 | (with-temp-buffer | 409 | ;; In Emacs 21.3 and earlier, `load' doesn't support non-ASCII |
| 331 | (let ((coding-system-for-read 'binary) | 410 | ;; file names. So, we use `insert-file-contents' instead. |
| 332 | emacs-lisp-mode-hook) | 411 | (mm-with-multibyte-buffer |
| 412 | (let ((coding-system-for-read nnrss-file-coding-system) | ||
| 413 | (file-name-coding-system nnmail-pathname-coding-system)) | ||
| 333 | (insert-file-contents file) | 414 | (insert-file-contents file) |
| 334 | (emacs-lisp-mode) | 415 | (eval-region (point-min) (point-max))))))) |
| 335 | (goto-char (point-min)) | ||
| 336 | (eval-buffer)))))) | ||
| 337 | 416 | ||
| 338 | (defun nnrss-save-server-data (server) | 417 | (defun nnrss-save-server-data (server) |
| 339 | (gnus-make-directory nnrss-directory) | 418 | (gnus-make-directory nnrss-directory) |
| 340 | (let ((file (expand-file-name | 419 | (let ((coding-system-for-write nnrss-file-coding-system) |
| 341 | (nnrss-translate-file-chars | 420 | (file-name-coding-system nnmail-pathname-coding-system)) |
| 342 | (concat "nnrss" (and server | 421 | (with-temp-file (nnrss-make-filename "nnrss" server) |
| 343 | (not (equal server "")) | 422 | (insert (format ";; -*- coding: %s; -*-\n" |
| 344 | "-") | 423 | nnrss-file-coding-system)) |
| 345 | server ".el")) | 424 | (gnus-prin1 `(setq nnrss-group-alist ',nnrss-group-alist)) |
| 346 | nnrss-directory))) | 425 | (insert "\n") |
| 347 | (let ((coding-system-for-write 'binary) | 426 | (gnus-prin1 `(setq nnrss-server-data ',nnrss-server-data))))) |
| 348 | print-level print-length) | ||
| 349 | (with-temp-file file | ||
| 350 | (insert "(setq nnrss-group-alist '" | ||
| 351 | (prin1-to-string nnrss-group-alist) | ||
| 352 | ")\n") | ||
| 353 | (insert "(setq nnrss-server-data '" | ||
| 354 | (prin1-to-string nnrss-server-data) | ||
| 355 | ")\n"))))) | ||
| 356 | 427 | ||
| 357 | (defun nnrss-read-group-data (group server) | 428 | (defun nnrss-read-group-data (group server) |
| 358 | (setq nnrss-group-data nil) | 429 | (setq nnrss-group-data nil) |
| @@ -360,43 +431,50 @@ ARTICLE is the article number of the current headline.") | |||
| 360 | (let ((pair (assoc group nnrss-server-data))) | 431 | (let ((pair (assoc group nnrss-server-data))) |
| 361 | (setq nnrss-group-max (or (cadr pair) 0)) | 432 | (setq nnrss-group-max (or (cadr pair) 0)) |
| 362 | (setq nnrss-group-min (+ nnrss-group-max 1))) | 433 | (setq nnrss-group-min (+ nnrss-group-max 1))) |
| 363 | (let ((file (expand-file-name | 434 | (let ((file (nnrss-make-filename group server))) |
| 364 | (nnrss-translate-file-chars | ||
| 365 | (concat group (and server | ||
| 366 | (not (equal server "")) | ||
| 367 | "-") | ||
| 368 | server ".el")) | ||
| 369 | nnrss-directory))) | ||
| 370 | (when (file-exists-p file) | 435 | (when (file-exists-p file) |
| 371 | (with-temp-buffer | 436 | ;; In Emacs 21.3 and earlier, `load' doesn't support non-ASCII |
| 372 | (let ((coding-system-for-read 'binary) | 437 | ;; file names. So, we use `insert-file-contents' instead. |
| 373 | emacs-lisp-mode-hook) | 438 | (mm-with-multibyte-buffer |
| 439 | (let ((coding-system-for-read nnrss-file-coding-system) | ||
| 440 | (file-name-coding-system nnmail-pathname-coding-system)) | ||
| 374 | (insert-file-contents file) | 441 | (insert-file-contents file) |
| 375 | (emacs-lisp-mode) | 442 | (eval-region (point-min) (point-max)))) |
| 376 | (goto-char (point-min)) | ||
| 377 | (eval-buffer))) | ||
| 378 | (dolist (e nnrss-group-data) | 443 | (dolist (e nnrss-group-data) |
| 379 | (gnus-sethash (nth 2 e) e nnrss-group-hashtb) | 444 | (gnus-sethash (or (nth 2 e) (nth 6 e)) t nnrss-group-hashtb) |
| 380 | (if (and (car e) (> nnrss-group-min (car e))) | 445 | (when (and (car e) (> nnrss-group-min (car e))) |
| 381 | (setq nnrss-group-min (car e))) | 446 | (setq nnrss-group-min (car e))) |
| 382 | (if (and (car e) (< nnrss-group-max (car e))) | 447 | (when (and (car e) (< nnrss-group-max (car e))) |
| 383 | (setq nnrss-group-max (car e))))))) | 448 | (setq nnrss-group-max (car e))))))) |
| 384 | 449 | ||
| 385 | (defun nnrss-save-group-data (group server) | 450 | (defun nnrss-save-group-data (group server) |
| 386 | (gnus-make-directory nnrss-directory) | 451 | (gnus-make-directory nnrss-directory) |
| 387 | (let ((file (expand-file-name | 452 | (let ((coding-system-for-write nnrss-file-coding-system) |
| 388 | (nnrss-translate-file-chars | 453 | (file-name-coding-system nnmail-pathname-coding-system)) |
| 389 | (concat group (and server | 454 | (with-temp-file (nnrss-make-filename group server) |
| 390 | (not (equal server "")) | 455 | (insert (format ";; -*- coding: %s; -*-\n" |
| 391 | "-") | 456 | nnrss-file-coding-system)) |
| 392 | server ".el")) | 457 | (gnus-prin1 `(setq nnrss-group-data ',nnrss-group-data))))) |
| 393 | nnrss-directory))) | 458 | |
| 394 | (let ((coding-system-for-write 'binary) | 459 | (defun nnrss-make-filename (name server) |
| 395 | print-level print-length) | 460 | (expand-file-name |
| 396 | (with-temp-file file | 461 | (nnrss-translate-file-chars |
| 397 | (insert "(setq nnrss-group-data '" | 462 | (concat name |
| 398 | (prin1-to-string nnrss-group-data) | 463 | (and server |
| 399 | ")\n"))))) | 464 | (not (equal server "")) |
| 465 | "-") | ||
| 466 | server | ||
| 467 | ".el")) | ||
| 468 | nnrss-directory)) | ||
| 469 | |||
| 470 | (gnus-add-shutdown 'nnrss-close 'gnus) | ||
| 471 | |||
| 472 | (defun nnrss-close () | ||
| 473 | "Clear internal nnrss variables." | ||
| 474 | (setq nnrss-group-data nil | ||
| 475 | nnrss-server-data nil | ||
| 476 | nnrss-group-hashtb nil | ||
| 477 | nnrss-group-alist nil)) | ||
| 400 | 478 | ||
| 401 | ;;; URL interface | 479 | ;;; URL interface |
| 402 | 480 | ||
| @@ -407,15 +485,36 @@ ARTICLE is the article number of the current headline.") | |||
| 407 | (mm-with-unibyte-current-buffer | 485 | (mm-with-unibyte-current-buffer |
| 408 | (mm-url-insert url))) | 486 | (mm-url-insert url))) |
| 409 | 487 | ||
| 410 | (defun nnrss-decode-entities-unibyte-string (string) | 488 | (defun nnrss-decode-entities-string (string) |
| 411 | (if string | 489 | (if string |
| 412 | (mm-with-unibyte-buffer | 490 | (mm-with-multibyte-buffer |
| 413 | (insert string) | 491 | (insert string) |
| 414 | (mm-url-decode-entities-nbsp) | 492 | (mm-url-decode-entities-nbsp) |
| 415 | (buffer-string)))) | 493 | (buffer-string)))) |
| 416 | 494 | ||
| 417 | (defalias 'nnrss-insert 'nnrss-insert-w3) | 495 | (defalias 'nnrss-insert 'nnrss-insert-w3) |
| 418 | 496 | ||
| 497 | (defun nnrss-mime-encode-string (string) | ||
| 498 | (mm-with-multibyte-buffer | ||
| 499 | (insert string) | ||
| 500 | (mm-url-decode-entities-nbsp) | ||
| 501 | (goto-char (point-min)) | ||
| 502 | (while (re-search-forward "[\t\n ]+" nil t) | ||
| 503 | (replace-match " ")) | ||
| 504 | (goto-char (point-min)) | ||
| 505 | (skip-chars-forward " ") | ||
| 506 | (delete-region (point-min) (point)) | ||
| 507 | (goto-char (point-max)) | ||
| 508 | (skip-chars-forward " ") | ||
| 509 | (delete-region (point) (point-max)) | ||
| 510 | (let ((rfc2047-encoding-type 'mime) | ||
| 511 | rfc2047-encode-max-chars) | ||
| 512 | (rfc2047-encode-region (point-min) (point-max))) | ||
| 513 | (goto-char (point-min)) | ||
| 514 | (while (search-forward "\n" nil t) | ||
| 515 | (delete-backward-char 1)) | ||
| 516 | (buffer-string))) | ||
| 517 | |||
| 419 | ;;; Snarf functions | 518 | ;;; Snarf functions |
| 420 | 519 | ||
| 421 | (defun nnrss-check-group (group server) | 520 | (defun nnrss-check-group (group server) |
| @@ -431,11 +530,11 @@ ARTICLE is the article number of the current headline.") | |||
| 431 | (second (assoc group nnrss-group-alist)))) | 530 | (second (assoc group nnrss-group-alist)))) |
| 432 | (unless url | 531 | (unless url |
| 433 | (setq url | 532 | (setq url |
| 434 | (cdr | 533 | (cdr |
| 435 | (assoc 'href | 534 | (assoc 'href |
| 436 | (nnrss-discover-feed | 535 | (nnrss-discover-feed |
| 437 | (read-string | 536 | (read-string |
| 438 | (format "URL to search for %s: " group) "http://"))))) | 537 | (format "URL to search for %s: " group) "http://"))))) |
| 439 | (let ((pair (assoc group nnrss-server-data))) | 538 | (let ((pair (assoc group nnrss-server-data))) |
| 440 | (if pair | 539 | (if pair |
| 441 | (setcdr (cdr pair) (list url)) | 540 | (setcdr (cdr pair) (list url)) |
| @@ -451,12 +550,16 @@ ARTICLE is the article number of the current headline.") | |||
| 451 | content-ns (nnrss-get-namespace-prefix xml "http://purl.org/rss/1.0/modules/content/")) | 550 | content-ns (nnrss-get-namespace-prefix xml "http://purl.org/rss/1.0/modules/content/")) |
| 452 | (dolist (item (nreverse (nnrss-find-el (intern (concat rss-ns "item")) xml))) | 551 | (dolist (item (nreverse (nnrss-find-el (intern (concat rss-ns "item")) xml))) |
| 453 | (when (and (listp item) | 552 | (when (and (listp item) |
| 454 | (eq (intern (concat rss-ns "item")) (car item)) | 553 | (string= (concat rss-ns "item") (car item)) |
| 455 | (setq url (nnrss-decode-entities-unibyte-string | 554 | (if (setq url (nnrss-decode-entities-string |
| 456 | (nnrss-node-text rss-ns 'link (cddr item)))) | 555 | (nnrss-node-text rss-ns 'link (cddr item)))) |
| 457 | (not (gnus-gethash url nnrss-group-hashtb))) | 556 | (not (gnus-gethash url nnrss-group-hashtb)) |
| 557 | (setq extra (or (nnrss-node-text content-ns 'encoded item) | ||
| 558 | (nnrss-node-text rss-ns 'description item))) | ||
| 559 | (not (gnus-gethash extra nnrss-group-hashtb)))) | ||
| 458 | (setq subject (nnrss-node-text rss-ns 'title item)) | 560 | (setq subject (nnrss-node-text rss-ns 'title item)) |
| 459 | (setq extra (or (nnrss-node-text content-ns 'encoded item) | 561 | (setq extra (or extra |
| 562 | (nnrss-node-text content-ns 'encoded item) | ||
| 460 | (nnrss-node-text rss-ns 'description item))) | 563 | (nnrss-node-text rss-ns 'description item))) |
| 461 | (setq author (or (nnrss-node-text rss-ns 'author item) | 564 | (setq author (or (nnrss-node-text rss-ns 'author item) |
| 462 | (nnrss-node-text dc-ns 'creator item) | 565 | (nnrss-node-text dc-ns 'creator item) |
| @@ -469,13 +572,14 @@ ARTICLE is the article number of the current headline.") | |||
| 469 | (incf nnrss-group-max) | 572 | (incf nnrss-group-max) |
| 470 | (current-time) | 573 | (current-time) |
| 471 | url | 574 | url |
| 472 | (and subject (nnrss-decode-entities-unibyte-string subject)) | 575 | (and subject (nnrss-mime-encode-string subject)) |
| 473 | (and author (nnrss-decode-entities-unibyte-string author)) | 576 | (and author (nnrss-mime-encode-string author)) |
| 474 | date | 577 | date |
| 475 | (and extra (nnrss-decode-entities-unibyte-string extra))) | 578 | (and extra (nnrss-decode-entities-string extra))) |
| 476 | nnrss-group-data) | 579 | nnrss-group-data) |
| 477 | (gnus-sethash url (car nnrss-group-data) nnrss-group-hashtb) | 580 | (gnus-sethash (or url extra) t nnrss-group-hashtb) |
| 478 | (setq changed t))) | 581 | (setq changed t)) |
| 582 | (setq extra nil)) | ||
| 479 | (when changed | 583 | (when changed |
| 480 | (nnrss-save-group-data group server) | 584 | (nnrss-save-group-data group server) |
| 481 | (let ((pair (assoc group nnrss-server-data))) | 585 | (let ((pair (assoc group nnrss-server-data))) |
| @@ -484,6 +588,45 @@ ARTICLE is the article number of the current headline.") | |||
| 484 | (push (list group nnrss-group-max) nnrss-server-data))) | 588 | (push (list group nnrss-group-max) nnrss-server-data))) |
| 485 | (nnrss-save-server-data server)))) | 589 | (nnrss-save-server-data server)))) |
| 486 | 590 | ||
| 591 | (defun nnrss-opml-import (opml-file) | ||
| 592 | "OPML subscriptions import. | ||
| 593 | Read the file and attempt to subscribe to each Feed in the file." | ||
| 594 | (interactive "fImport file: ") | ||
| 595 | (mapcar | ||
| 596 | (lambda (node) (gnus-group-make-rss-group | ||
| 597 | (cdr (assq 'xmlUrl (cadr node))))) | ||
| 598 | (nnrss-find-el 'outline | ||
| 599 | (progn | ||
| 600 | (find-file opml-file) | ||
| 601 | (xml-parse-region (point-min) | ||
| 602 | (point-max)))))) | ||
| 603 | |||
| 604 | (defun nnrss-opml-export () | ||
| 605 | "OPML subscription export. | ||
| 606 | Export subscriptions to a buffer in OPML Format." | ||
| 607 | (interactive) | ||
| 608 | (with-current-buffer (get-buffer-create "*OPML Export*") | ||
| 609 | (mm-set-buffer-file-coding-system 'utf-8) | ||
| 610 | (insert "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" | ||
| 611 | "<!-- OPML generated by Emacs Gnus' nnrss.el -->\n" | ||
| 612 | "<opml version=\"1.1\">\n" | ||
| 613 | " <head>\n" | ||
| 614 | " <title>mySubscriptions</title>\n" | ||
| 615 | " <dateCreated>" (format-time-string "%a, %d %b %Y %T %z") | ||
| 616 | "</dateCreated>\n" | ||
| 617 | " <ownerEmail>" user-mail-address "</ownerEmail>\n" | ||
| 618 | " <ownerName>" (user-full-name) "</ownerName>\n" | ||
| 619 | " </head>\n" | ||
| 620 | " <body>\n") | ||
| 621 | (dolist (sub nnrss-group-alist) | ||
| 622 | (insert " <outline text=\"" (car sub) | ||
| 623 | "\" xmlUrl=\"" (cadr sub) "\"/>\n")) | ||
| 624 | (insert " </body>\n" | ||
| 625 | "</opml>\n")) | ||
| 626 | (pop-to-buffer "*OPML Export*") | ||
| 627 | (when (fboundp 'sgml-mode) | ||
| 628 | (sgml-mode))) | ||
| 629 | |||
| 487 | (defun nnrss-generate-download-script () | 630 | (defun nnrss-generate-download-script () |
| 488 | "Generate a download script in the current buffer. | 631 | "Generate a download script in the current buffer. |
| 489 | It is useful when `(setq nnrss-use-local t)'." | 632 | It is useful when `(setq nnrss-use-local t)'." |
| @@ -530,9 +673,6 @@ It is useful when `(setq nnrss-use-local t)'." | |||
| 530 | (if changed | 673 | (if changed |
| 531 | (nnrss-save-server-data "")))) | 674 | (nnrss-save-server-data "")))) |
| 532 | 675 | ||
| 533 | (defun nnrss-format-string (string) | ||
| 534 | (gnus-replace-in-string (nnrss-string-as-multibyte string) " *\n *" " ")) | ||
| 535 | |||
| 536 | (defun nnrss-node-text (namespace local-name element) | 676 | (defun nnrss-node-text (namespace local-name element) |
| 537 | (let* ((node (assq (intern (concat namespace (symbol-name local-name))) | 677 | (let* ((node (assq (intern (concat namespace (symbol-name local-name))) |
| 538 | element)) | 678 | element)) |
| @@ -551,56 +691,59 @@ It is useful when `(setq nnrss-use-local t)'." | |||
| 551 | node)) | 691 | node)) |
| 552 | 692 | ||
| 553 | (defun nnrss-find-el (tag data &optional found-list) | 693 | (defun nnrss-find-el (tag data &optional found-list) |
| 554 | "Find the all matching elements in the data. Careful with this on | 694 | "Find the all matching elements in the data. |
| 555 | large documents!" | 695 | Careful with this on large documents!" |
| 556 | (if (listp data) | 696 | (when (consp data) |
| 557 | (mapcar (lambda (bit) | 697 | (dolist (bit data) |
| 558 | (if (car-safe bit) | 698 | (when (car-safe bit) |
| 559 | (progn (if (equal tag (car bit)) | 699 | (when (equal tag (car bit)) |
| 560 | (setq found-list | 700 | ;; Old xml.el may return a list of string. |
| 561 | (append found-list | 701 | (when (and (consp (caddr bit)) |
| 562 | (list bit)))) | 702 | (stringp (caaddr bit))) |
| 563 | (if (and (listp (car-safe (caddr bit))) | 703 | (setcar (cddr bit) (caaddr bit))) |
| 564 | (not (stringp (caddr bit)))) | 704 | (setq found-list |
| 565 | (setq found-list | 705 | (append found-list |
| 566 | (append found-list | 706 | (list bit)))) |
| 567 | (nnrss-find-el | 707 | (if (and (consp (car-safe (caddr bit))) |
| 568 | tag (caddr bit)))) | 708 | (not (stringp (caddr bit)))) |
| 569 | (setq found-list | 709 | (setq found-list |
| 570 | (append found-list | 710 | (append found-list |
| 571 | (nnrss-find-el | 711 | (nnrss-find-el |
| 572 | tag (cddr bit)))))))) | 712 | tag (caddr bit)))) |
| 573 | data)) | 713 | (setq found-list |
| 714 | (append found-list | ||
| 715 | (nnrss-find-el | ||
| 716 | tag (cddr bit)))))))) | ||
| 574 | found-list) | 717 | found-list) |
| 575 | 718 | ||
| 576 | (defun nnrss-rsslink-p (el) | 719 | (defun nnrss-rsslink-p (el) |
| 577 | "Test if the element we are handed is an RSS autodiscovery link." | 720 | "Test if the element we are handed is an RSS autodiscovery link." |
| 578 | (and (eq (car-safe el) 'link) | 721 | (and (eq (car-safe el) 'link) |
| 579 | (string-equal (cdr (assoc 'rel (cadr el))) "alternate") | 722 | (string-equal (cdr (assoc 'rel (cadr el))) "alternate") |
| 580 | (or (string-equal (cdr (assoc 'type (cadr el))) | 723 | (or (string-equal (cdr (assoc 'type (cadr el))) |
| 581 | "application/rss+xml") | 724 | "application/rss+xml") |
| 582 | (string-equal (cdr (assoc 'type (cadr el))) "text/xml")))) | 725 | (string-equal (cdr (assoc 'type (cadr el))) "text/xml")))) |
| 583 | 726 | ||
| 584 | (defun nnrss-get-rsslinks (data) | 727 | (defun nnrss-get-rsslinks (data) |
| 585 | "Extract the <link> elements that are links to RSS from the parsed data." | 728 | "Extract the <link> elements that are links to RSS from the parsed data." |
| 586 | (delq nil (mapcar | 729 | (delq nil (mapcar |
| 587 | (lambda (el) | 730 | (lambda (el) |
| 588 | (if (nnrss-rsslink-p el) el)) | 731 | (if (nnrss-rsslink-p el) el)) |
| 589 | (nnrss-find-el 'link data)))) | 732 | (nnrss-find-el 'link data)))) |
| 590 | 733 | ||
| 591 | (defun nnrss-extract-hrefs (data) | 734 | (defun nnrss-extract-hrefs (data) |
| 592 | "Recursively extract hrefs from a page's source. DATA should be | 735 | "Recursively extract hrefs from a page's source. |
| 593 | the output of xml-parse-region or w3-parse-buffer." | 736 | DATA should be the output of `xml-parse-region' or |
| 737 | `w3-parse-buffer'." | ||
| 594 | (mapcar (lambda (ahref) | 738 | (mapcar (lambda (ahref) |
| 595 | (cdr (assoc 'href (cadr ahref)))) | 739 | (cdr (assoc 'href (cadr ahref)))) |
| 596 | (nnrss-find-el 'a data))) | 740 | (nnrss-find-el 'a data))) |
| 597 | 741 | ||
| 598 | (defmacro nnrss-match-macro (base-uri item | 742 | (defmacro nnrss-match-macro (base-uri item onsite-list offsite-list) |
| 599 | onsite-list offsite-list) | ||
| 600 | `(cond ((or (string-match (concat "^" ,base-uri) ,item) | 743 | `(cond ((or (string-match (concat "^" ,base-uri) ,item) |
| 601 | (not (string-match "://" ,item))) | 744 | (not (string-match "://" ,item))) |
| 602 | (setq ,onsite-list (append ,onsite-list (list ,item)))) | 745 | (setq ,onsite-list (append ,onsite-list (list ,item)))) |
| 603 | (t (setq ,offsite-list (append ,offsite-list (list ,item)))))) | 746 | (t (setq ,offsite-list (append ,offsite-list (list ,item)))))) |
| 604 | 747 | ||
| 605 | (defun nnrss-order-hrefs (base-uri hrefs) | 748 | (defun nnrss-order-hrefs (base-uri hrefs) |
| 606 | "Given a list of hrefs, sort them using the following priorities: | 749 | "Given a list of hrefs, sort them using the following priorities: |
| @@ -615,29 +758,28 @@ whether they are `offsite' or `onsite'." | |||
| 615 | (let (rss-onsite-end rdf-onsite-end xml-onsite-end | 758 | (let (rss-onsite-end rdf-onsite-end xml-onsite-end |
| 616 | rss-onsite-in rdf-onsite-in xml-onsite-in | 759 | rss-onsite-in rdf-onsite-in xml-onsite-in |
| 617 | rss-offsite-end rdf-offsite-end xml-offsite-end | 760 | rss-offsite-end rdf-offsite-end xml-offsite-end |
| 618 | rss-offsite-in rdf-offsite-in xml-offsite-in) | 761 | rss-offsite-in rdf-offsite-in xml-offsite-in) |
| 619 | (mapcar (lambda (href) | 762 | (dolist (href hrefs) |
| 620 | (if (not (null href)) | 763 | (cond ((null href)) |
| 621 | (cond ((string-match "\\.rss$" href) | 764 | ((string-match "\\.rss$" href) |
| 622 | (nnrss-match-macro | 765 | (nnrss-match-macro |
| 623 | base-uri href rss-onsite-end rss-offsite-end)) | 766 | base-uri href rss-onsite-end rss-offsite-end)) |
| 624 | ((string-match "\\.rdf$" href) | 767 | ((string-match "\\.rdf$" href) |
| 625 | (nnrss-match-macro | 768 | (nnrss-match-macro |
| 626 | base-uri href rdf-onsite-end rdf-offsite-end)) | 769 | base-uri href rdf-onsite-end rdf-offsite-end)) |
| 627 | ((string-match "\\.xml$" href) | 770 | ((string-match "\\.xml$" href) |
| 628 | (nnrss-match-macro | 771 | (nnrss-match-macro |
| 629 | base-uri href xml-onsite-end xml-offsite-end)) | 772 | base-uri href xml-onsite-end xml-offsite-end)) |
| 630 | ((string-match "rss" href) | 773 | ((string-match "rss" href) |
| 631 | (nnrss-match-macro | 774 | (nnrss-match-macro |
| 632 | base-uri href rss-onsite-in rss-offsite-in)) | 775 | base-uri href rss-onsite-in rss-offsite-in)) |
| 633 | ((string-match "rdf" href) | 776 | ((string-match "rdf" href) |
| 634 | (nnrss-match-macro | 777 | (nnrss-match-macro |
| 635 | base-uri href rdf-onsite-in rdf-offsite-in)) | 778 | base-uri href rdf-onsite-in rdf-offsite-in)) |
| 636 | ((string-match "xml" href) | 779 | ((string-match "xml" href) |
| 637 | (nnrss-match-macro | 780 | (nnrss-match-macro |
| 638 | base-uri href xml-onsite-in xml-offsite-in))))) | 781 | base-uri href xml-onsite-in xml-offsite-in)))) |
| 639 | hrefs) | 782 | (append |
| 640 | (append | ||
| 641 | rss-onsite-end rdf-onsite-end xml-onsite-end | 783 | rss-onsite-end rdf-onsite-end xml-onsite-end |
| 642 | rss-onsite-in rdf-onsite-in xml-onsite-in | 784 | rss-onsite-in rdf-onsite-in xml-onsite-in |
| 643 | rss-offsite-end rdf-offsite-end xml-offsite-end | 785 | rss-offsite-end rdf-offsite-end xml-offsite-end |
| @@ -670,23 +812,23 @@ whether they are `offsite' or `onsite'." | |||
| 670 | ;; - offsite links containing any of the above | 812 | ;; - offsite links containing any of the above |
| 671 | (let* ((base-uri (progn (string-match ".*://[^/]+/?" url) | 813 | (let* ((base-uri (progn (string-match ".*://[^/]+/?" url) |
| 672 | (match-string 0 url))) | 814 | (match-string 0 url))) |
| 673 | (hrefs (nnrss-order-hrefs | 815 | (hrefs (nnrss-order-hrefs |
| 674 | base-uri (nnrss-extract-hrefs parsed-page))) | 816 | base-uri (nnrss-extract-hrefs parsed-page))) |
| 675 | (rss-link nil)) | 817 | (rss-link nil)) |
| 676 | (while (and (eq rss-link nil) (not (eq hrefs nil))) | 818 | (while (and (eq rss-link nil) (not (eq hrefs nil))) |
| 677 | (let ((href-data (nnrss-fetch (car hrefs)))) | 819 | (let ((href-data (nnrss-fetch (car hrefs)))) |
| 678 | (if (nnrss-rss-p href-data) | 820 | (if (nnrss-rss-p href-data) |
| 679 | (let* ((rss-ns (nnrss-get-namespace-prefix href-data "http://purl.org/rss/1.0/"))) | 821 | (let* ((rss-ns (nnrss-get-namespace-prefix href-data "http://purl.org/rss/1.0/"))) |
| 680 | (setq rss-link (nnrss-rss-title-description | 822 | (setq rss-link (nnrss-rss-title-description |
| 681 | rss-ns href-data (car hrefs)))) | 823 | rss-ns href-data (car hrefs)))) |
| 682 | (setq hrefs (cdr hrefs))))) | 824 | (setq hrefs (cdr hrefs))))) |
| 683 | (if rss-link rss-link | 825 | (if rss-link rss-link |
| 684 | 826 | ||
| 685 | ;; 4. check syndic8 | 827 | ;; 4. check syndic8 |
| 686 | (nnrss-find-rss-via-syndic8 url)))))))) | 828 | (nnrss-find-rss-via-syndic8 url)))))))) |
| 687 | 829 | ||
| 688 | (defun nnrss-find-rss-via-syndic8 (url) | 830 | (defun nnrss-find-rss-via-syndic8 (url) |
| 689 | "query syndic8 for the rss feeds it has for the url." | 831 | "Query syndic8 for the rss feeds it has for URL." |
| 690 | (if (not (locate-library "xml-rpc")) | 832 | (if (not (locate-library "xml-rpc")) |
| 691 | (progn | 833 | (progn |
| 692 | (message "XML-RPC is not available... not checking Syndic8.") | 834 | (message "XML-RPC is not available... not checking Syndic8.") |
| @@ -697,22 +839,22 @@ whether they are `offsite' or `onsite'." | |||
| 697 | 'syndic8.FindSites | 839 | 'syndic8.FindSites |
| 698 | url))) | 840 | url))) |
| 699 | (when feedid | 841 | (when feedid |
| 700 | (let* ((feedinfo (xml-rpc-method-call | 842 | (let* ((feedinfo (xml-rpc-method-call |
| 701 | "http://www.syndic8.com/xmlrpc.php" | 843 | "http://www.syndic8.com/xmlrpc.php" |
| 702 | 'syndic8.GetFeedInfo | 844 | 'syndic8.GetFeedInfo |
| 703 | feedid)) | 845 | feedid)) |
| 704 | (urllist | 846 | (urllist |
| 705 | (delq nil | 847 | (delq nil |
| 706 | (mapcar | 848 | (mapcar |
| 707 | (lambda (listinfo) | 849 | (lambda (listinfo) |
| 708 | (if (string-equal | 850 | (if (string-equal |
| 709 | (cdr (assoc "status" listinfo)) | 851 | (cdr (assoc "status" listinfo)) |
| 710 | "Syndicated") | 852 | "Syndicated") |
| 711 | (cons | 853 | (cons |
| 712 | (cdr (assoc "sitename" listinfo)) | 854 | (cdr (assoc "sitename" listinfo)) |
| 713 | (list | 855 | (list |
| 714 | (cons 'title | 856 | (cons 'title |
| 715 | (cdr (assoc | 857 | (cdr (assoc |
| 716 | "sitename" listinfo))) | 858 | "sitename" listinfo))) |
| 717 | (cons 'href | 859 | (cons 'href |
| 718 | (cdr (assoc | 860 | (cdr (assoc |
| @@ -721,20 +863,20 @@ whether they are `offsite' or `onsite'." | |||
| 721 | (if (not (> (length urllist) 1)) | 863 | (if (not (> (length urllist) 1)) |
| 722 | (cdar urllist) | 864 | (cdar urllist) |
| 723 | (let ((completion-ignore-case t) | 865 | (let ((completion-ignore-case t) |
| 724 | (selection | 866 | (selection |
| 725 | (mapcar (lambda (listinfo) | 867 | (mapcar (lambda (listinfo) |
| 726 | (cons (cdr (assoc "sitename" listinfo)) | 868 | (cons (cdr (assoc "sitename" listinfo)) |
| 727 | (string-to-int | 869 | (string-to-int |
| 728 | (cdr (assoc "feedid" listinfo))))) | 870 | (cdr (assoc "feedid" listinfo))))) |
| 729 | feedinfo))) | 871 | feedinfo))) |
| 730 | (cdr (assoc | 872 | (cdr (assoc |
| 731 | (completing-read | 873 | (completing-read |
| 732 | "Multiple feeds found. Select one: " | 874 | "Multiple feeds found. Select one: " |
| 733 | selection nil t) urllist))))))))) | 875 | selection nil t) urllist))))))))) |
| 734 | 876 | ||
| 735 | (defun nnrss-rss-p (data) | 877 | (defun nnrss-rss-p (data) |
| 736 | "Test if data is an RSS feed. Simply ensures that the first | 878 | "Test if DATA is an RSS feed. |
| 737 | element is rss or rdf." | 879 | Simply ensures that the first element is rss or rdf." |
| 738 | (or (eq (caar data) 'rss) | 880 | (or (eq (caar data) 'rss) |
| 739 | (eq (caar data) 'rdf:RDF))) | 881 | (eq (caar data) 'rdf:RDF))) |
| 740 | 882 | ||
| @@ -755,13 +897,13 @@ element is rss or rdf." | |||
| 755 | that gives the URI for which you want to retrieve the namespace | 897 | that gives the URI for which you want to retrieve the namespace |
| 756 | prefix), return the prefix." | 898 | prefix), return the prefix." |
| 757 | (let* ((prefix (car (rassoc uri (cadar el)))) | 899 | (let* ((prefix (car (rassoc uri (cadar el)))) |
| 758 | (nslist (if prefix | 900 | (nslist (if prefix |
| 759 | (split-string (symbol-name prefix) ":"))) | 901 | (split-string (symbol-name prefix) ":"))) |
| 760 | (ns (cond ((eq (length nslist) 1) ; no prefix given | 902 | (ns (cond ((eq (length nslist) 1) ; no prefix given |
| 761 | "") | 903 | "") |
| 762 | ((eq (length nslist) 2) ; extract prefix | 904 | ((eq (length nslist) 2) ; extract prefix |
| 763 | (cadr nslist))))) | 905 | (cadr nslist))))) |
| 764 | (if (and ns (not (eq ns ""))) | 906 | (if (and ns (not (string= ns ""))) |
| 765 | (concat ns ":") | 907 | (concat ns ":") |
| 766 | ns))) | 908 | ns))) |
| 767 | 909 | ||
diff --git a/lisp/help.el b/lisp/help.el index aeffaf732a5..a3e14014b79 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -586,7 +586,15 @@ the last key hit are used." | |||
| 586 | ;; Ok, now look up the key and name the command. | 586 | ;; Ok, now look up the key and name the command. |
| 587 | (let ((defn (or (string-key-binding key) | 587 | (let ((defn (or (string-key-binding key) |
| 588 | (key-binding key))) | 588 | (key-binding key))) |
| 589 | (key-desc (help-key-description key untranslated))) | 589 | key-desc) |
| 590 | ;; Don't bother user with strings from (e.g.) the select-paste menu. | ||
| 591 | (if (stringp (aref key (1- (length key)))) | ||
| 592 | (aset key (1- (length key)) "(any string)")) | ||
| 593 | (if (stringp (aref untranslated (1- (length untranslated)))) | ||
| 594 | (aset untranslated (1- (length untranslated)) | ||
| 595 | "(any string)")) | ||
| 596 | ;; Now describe the key, perhaps as changed. | ||
| 597 | (setq key-desc (help-key-description key untranslated)) | ||
| 590 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) | 598 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) |
| 591 | (princ (format "%s is undefined" key-desc)) | 599 | (princ (format "%s is undefined" key-desc)) |
| 592 | (princ (format (if (windowp window) | 600 | (princ (format (if (windowp window) |
| @@ -623,6 +631,12 @@ the last key hit are used." | |||
| 623 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) | 631 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) |
| 624 | (message "%s is undefined" (help-key-description key untranslated)) | 632 | (message "%s is undefined" (help-key-description key untranslated)) |
| 625 | (help-setup-xref (list #'describe-function defn) (interactive-p)) | 633 | (help-setup-xref (list #'describe-function defn) (interactive-p)) |
| 634 | ;; Don't bother user with strings from (e.g.) the select-paste menu. | ||
| 635 | (if (stringp (aref key (1- (length key)))) | ||
| 636 | (aset key (1- (length key)) "(any string)")) | ||
| 637 | (if (stringp (aref untranslated (1- (length untranslated)))) | ||
| 638 | (aset untranslated (1- (length untranslated)) | ||
| 639 | "(any string)")) | ||
| 626 | (with-output-to-temp-buffer (help-buffer) | 640 | (with-output-to-temp-buffer (help-buffer) |
| 627 | (princ (help-key-description key untranslated)) | 641 | (princ (help-key-description key untranslated)) |
| 628 | (if (windowp window) | 642 | (if (windowp window) |
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 431087087f1..a924c89ba37 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el | |||
| @@ -119,7 +119,10 @@ calls." | |||
| 119 | :group 'hi-lock-interactive-text-highlighting) | 119 | :group 'hi-lock-interactive-text-highlighting) |
| 120 | 120 | ||
| 121 | (defface hi-yellow | 121 | (defface hi-yellow |
| 122 | '((((background dark)) (:background "yellow" :foreground "black")) | 122 | '((((min-colors 88) (background dark)) |
| 123 | (:background "yellow1" :foreground "black")) | ||
| 124 | (((background dark)) (:background "yellow" :foreground "black")) | ||
| 125 | (((min-colors 88)) (:background "yellow1")) | ||
| 123 | (t (:background "yellow"))) | 126 | (t (:background "yellow"))) |
| 124 | "Default face for hi-lock mode." | 127 | "Default face for hi-lock mode." |
| 125 | :group 'hi-lock-faces) | 128 | :group 'hi-lock-faces) |
| @@ -131,7 +134,10 @@ calls." | |||
| 131 | :group 'hi-lock-faces) | 134 | :group 'hi-lock-faces) |
| 132 | 135 | ||
| 133 | (defface hi-green | 136 | (defface hi-green |
| 134 | '((((background dark)) (:background "green" :foreground "black")) | 137 | '((((min-colors 88) (background dark)) |
| 138 | (:background "green1" :foreground "black")) | ||
| 139 | (((background dark)) (:background "green" :foreground "black")) | ||
| 140 | (((min-colors 88)) (:background "green1")) | ||
| 135 | (t (:background "green"))) | 141 | (t (:background "green"))) |
| 136 | "Face for hi-lock mode." | 142 | "Face for hi-lock mode." |
| 137 | :group 'hi-lock-faces) | 143 | :group 'hi-lock-faces) |
| @@ -148,17 +154,20 @@ calls." | |||
| 148 | :group 'hi-lock-faces) | 154 | :group 'hi-lock-faces) |
| 149 | 155 | ||
| 150 | (defface hi-blue-b | 156 | (defface hi-blue-b |
| 151 | '((t (:weight bold :foreground "blue"))) | 157 | '((((min-colors 88)) (:weight bold :foreground "blue1")) |
| 158 | (t (:weight bold :foreground "blue"))) | ||
| 152 | "Face for hi-lock mode." | 159 | "Face for hi-lock mode." |
| 153 | :group 'hi-lock-faces) | 160 | :group 'hi-lock-faces) |
| 154 | 161 | ||
| 155 | (defface hi-green-b | 162 | (defface hi-green-b |
| 156 | '((t (:weight bold :foreground "green"))) | 163 | '((((min-colors 88)) (:weight bold :foreground "green1")) |
| 164 | (t (:weight bold :foreground "green"))) | ||
| 157 | "Face for hi-lock mode." | 165 | "Face for hi-lock mode." |
| 158 | :group 'hi-lock-faces) | 166 | :group 'hi-lock-faces) |
| 159 | 167 | ||
| 160 | (defface hi-red-b | 168 | (defface hi-red-b |
| 161 | '((t (:weight bold :foreground "red"))) | 169 | '((((min-colors 88)) (:weight bold :foreground "red1")) |
| 170 | (t (:weight bold :foreground "red"))) | ||
| 162 | "Face for hi-lock mode." | 171 | "Face for hi-lock mode." |
| 163 | :group 'hi-lock-faces) | 172 | :group 'hi-lock-faces) |
| 164 | 173 | ||
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el index 8e84bbf68e2..a6db060ce0f 100644 --- a/lisp/hilit-chg.el +++ b/lisp/hilit-chg.el | |||
| @@ -213,14 +213,16 @@ | |||
| 213 | ;; indentation on inserts gets underlined (which can look pretty ugly!). | 213 | ;; indentation on inserts gets underlined (which can look pretty ugly!). |
| 214 | 214 | ||
| 215 | (defface highlight-changes-face | 215 | (defface highlight-changes-face |
| 216 | '((((class color)) (:foreground "red" )) | 216 | '((((min-colors 88) (class color)) (:foreground "red1" )) |
| 217 | (((class color)) (:foreground "red" )) | ||
| 217 | (t (:inverse-video t))) | 218 | (t (:inverse-video t))) |
| 218 | "Face used for highlighting changes." | 219 | "Face used for highlighting changes." |
| 219 | :group 'highlight-changes) | 220 | :group 'highlight-changes) |
| 220 | 221 | ||
| 221 | ;; This looks pretty ugly, actually. Maybe the underline should be removed. | 222 | ;; This looks pretty ugly, actually. Maybe the underline should be removed. |
| 222 | (defface highlight-changes-delete-face | 223 | (defface highlight-changes-delete-face |
| 223 | '((((class color)) (:foreground "red" :underline t)) | 224 | '((((min-colors 88) (class color)) (:foreground "red1" :underline t)) |
| 225 | (((class color)) (:foreground "red" :underline t)) | ||
| 224 | (t (:inverse-video t))) | 226 | (t (:inverse-video t))) |
| 225 | "Face used for highlighting deletions." | 227 | "Face used for highlighting deletions." |
| 226 | :group 'highlight-changes) | 228 | :group 'highlight-changes) |
diff --git a/lisp/ido.el b/lisp/ido.el index ddeecbb9b69..2e2aca3126e 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; ido.el --- interactively do things with buffers and files. | 1 | ;;; ido.el --- interactively do things with buffers and files. |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1996-2004 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Kim F. Storm <storm@cua.dk> | 5 | ;; Author: Kim F. Storm <storm@cua.dk> |
| 6 | ;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk> | 6 | ;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk> |
| @@ -747,13 +747,19 @@ subdirs in the alternatives." | |||
| 747 | "*Font used by ido for highlighting only match." | 747 | "*Font used by ido for highlighting only match." |
| 748 | :group 'ido) | 748 | :group 'ido) |
| 749 | 749 | ||
| 750 | (defface ido-subdir-face '((((class color)) | 750 | (defface ido-subdir-face '((((min-colors 88) (class color)) |
| 751 | (:foreground "red1")) | ||
| 752 | (((class color)) | ||
| 751 | (:foreground "red")) | 753 | (:foreground "red")) |
| 752 | (t (:underline t))) | 754 | (t (:underline t))) |
| 753 | "*Font used by ido for highlighting subdirs in the alternatives." | 755 | "*Font used by ido for highlighting subdirs in the alternatives." |
| 754 | :group 'ido) | 756 | :group 'ido) |
| 755 | 757 | ||
| 756 | (defface ido-indicator-face '((((class color)) | 758 | (defface ido-indicator-face '((((min-colors 88) (class color)) |
| 759 | (:foreground "yellow1" | ||
| 760 | :background "red1" | ||
| 761 | :width condensed)) | ||
| 762 | (((class color)) | ||
| 757 | (:foreground "yellow" | 763 | (:foreground "yellow" |
| 758 | :background "red" | 764 | :background "red" |
| 759 | :width condensed)) | 765 | :width condensed)) |
diff --git a/lisp/info.el b/lisp/info.el index e44de75072e..3ded620cb7a 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; info.el --- info package for Emacs | 1 | ;;; info.el --- info package for Emacs |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985,86,92,93,94,95,96,97,98,99,2000,01,02,03,2004 | 3 | ;; Copyright (C) 1985,86,92,93,94,95,96,97,98,99,2000,01,02,03,04,2005 |
| 4 | ;; Free Software Foundation, Inc. | 4 | ;; Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -83,7 +83,11 @@ The Lisp code is executed when the node is selected.") | |||
| 83 | :group 'info) | 83 | :group 'info) |
| 84 | 84 | ||
| 85 | (defface info-xref | 85 | (defface info-xref |
| 86 | '((((class color) (background light)) :foreground "blue" :underline t) | 86 | '((((min-colors 88) |
| 87 | (class color) (background light)) :foreground "blue1" :underline t) | ||
| 88 | (((class color) (background light)) :foreground "blue" :underline t) | ||
| 89 | (((min-colors 88) | ||
| 90 | (class color) (background dark)) :foreground "cyan1" :underline t) | ||
| 87 | (((class color) (background dark)) :foreground "cyan" :underline t) | 91 | (((class color) (background dark)) :foreground "cyan" :underline t) |
| 88 | (t :underline t)) | 92 | (t :underline t)) |
| 89 | "Face for Info cross-references." | 93 | "Face for Info cross-references." |
| @@ -3795,77 +3799,78 @@ Preserve text properties." | |||
| 3795 | (let ((n 0) | 3799 | (let ((n 0) |
| 3796 | cont) | 3800 | cont) |
| 3797 | (while (re-search-forward | 3801 | (while (re-search-forward |
| 3798 | (concat "^\\* +\\(" Info-menu-entry-name-re "\\)\\(:" | 3802 | (concat "^\\* Menu:\\|\\(?:^\\* +\\(" Info-menu-entry-name-re "\\)\\(:" |
| 3799 | Info-node-spec-re "\\([ \t]*\\)\\)") | 3803 | Info-node-spec-re "\\([ \t]*\\)\\)\\)") |
| 3800 | nil t) | 3804 | nil t) |
| 3801 | (when not-fontified-p | 3805 | (when (match-beginning 1) |
| 3802 | (setq n (1+ n)) | 3806 | (when not-fontified-p |
| 3803 | (if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys | 3807 | (setq n (1+ n)) |
| 3804 | (put-text-property (match-beginning 0) | 3808 | (if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys |
| 3805 | (1+ (match-beginning 0)) | 3809 | (put-text-property (match-beginning 0) |
| 3806 | 'font-lock-face 'info-menu-5))) | 3810 | (1+ (match-beginning 0)) |
| 3807 | (when not-fontified-p | 3811 | 'font-lock-face 'info-menu-5))) |
| 3808 | (add-text-properties | 3812 | (when not-fontified-p |
| 3809 | (match-beginning 1) (match-end 1) | 3813 | (add-text-properties |
| 3810 | (list | 3814 | (match-beginning 1) (match-end 1) |
| 3811 | 'help-echo (if (and (match-end 3) | 3815 | (list |
| 3812 | (not (equal (match-string 3) ""))) | 3816 | 'help-echo (if (and (match-end 3) |
| 3813 | (concat "mouse-2: go to " (match-string 3)) | 3817 | (not (equal (match-string 3) ""))) |
| 3814 | "mouse-2: go to this node") | 3818 | (concat "mouse-2: go to " (match-string 3)) |
| 3815 | 'mouse-face 'highlight))) | 3819 | "mouse-2: go to this node") |
| 3816 | (when (or not-fontified-p fontify-visited-p) | 3820 | 'mouse-face 'highlight))) |
| 3817 | (add-text-properties | 3821 | (when (or not-fontified-p fontify-visited-p) |
| 3818 | (match-beginning 1) (match-end 1) | 3822 | (add-text-properties |
| 3819 | (list | 3823 | (match-beginning 1) (match-end 1) |
| 3820 | 'font-lock-face | 3824 | (list |
| 3821 | ;; Display visited menu items in a different face | 3825 | 'font-lock-face |
| 3822 | (if (and Info-fontify-visited-nodes | 3826 | ;; Display visited menu items in a different face |
| 3823 | (save-match-data | 3827 | (if (and Info-fontify-visited-nodes |
| 3824 | (let ((node (if (equal (match-string 3) "") | 3828 | (save-match-data |
| 3825 | (match-string 1) | 3829 | (let ((node (if (equal (match-string 3) "") |
| 3826 | (match-string 3))) | 3830 | (match-string 1) |
| 3827 | (file (file-name-nondirectory Info-current-file)) | 3831 | (match-string 3))) |
| 3828 | (hl Info-history-list) | 3832 | (file (file-name-nondirectory Info-current-file)) |
| 3829 | res) | 3833 | (hl Info-history-list) |
| 3830 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) | 3834 | res) |
| 3831 | (setq file (file-name-nondirectory | 3835 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) |
| 3832 | (match-string 1 node)) | 3836 | (setq file (file-name-nondirectory |
| 3833 | node (if (equal (match-string 2 node) "") | 3837 | (match-string 1 node)) |
| 3834 | "Top" | 3838 | node (if (equal (match-string 2 node) "") |
| 3835 | (match-string 2 node)))) | 3839 | "Top" |
| 3836 | (while hl | 3840 | (match-string 2 node)))) |
| 3837 | (if (and (string-equal node (nth 1 (car hl))) | 3841 | (while hl |
| 3838 | (string-equal file | 3842 | (if (and (string-equal node (nth 1 (car hl))) |
| 3839 | (file-name-nondirectory | 3843 | (string-equal file |
| 3840 | (nth 0 (car hl))))) | 3844 | (file-name-nondirectory |
| 3841 | (setq res (car hl) hl nil) | 3845 | (nth 0 (car hl))))) |
| 3842 | (setq hl (cdr hl)))) | 3846 | (setq res (car hl) hl nil) |
| 3843 | res))) 'info-xref-visited 'info-xref)))) | 3847 | (setq hl (cdr hl)))) |
| 3844 | (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) | 3848 | res))) 'info-xref-visited 'info-xref)))) |
| 3845 | (put-text-property (match-beginning 2) (1- (match-end 6)) | 3849 | (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) |
| 3846 | 'invisible t) | 3850 | (put-text-property (match-beginning 2) (1- (match-end 6)) |
| 3847 | ;; Unhide the file name in parens | 3851 | 'invisible t) |
| 3848 | (if (and (match-end 4) (not (eq (char-after (match-end 4)) ?.))) | 3852 | ;; Unhide the file name in parens |
| 3849 | (remove-text-properties (match-beginning 4) (match-end 4) | 3853 | (if (and (match-end 4) (not (eq (char-after (match-end 4)) ?.))) |
| 3850 | '(invisible t))) | 3854 | (remove-text-properties (match-beginning 4) (match-end 4) |
| 3851 | ;; We need a stretchable space like :align-to but with | 3855 | '(invisible t))) |
| 3852 | ;; a minimum value. | 3856 | ;; We need a stretchable space like :align-to but with |
| 3853 | (put-text-property (1- (match-end 6)) (match-end 6) 'display | 3857 | ;; a minimum value. |
| 3854 | (if (>= 22 (- (match-end 1) | 3858 | (put-text-property (1- (match-end 6)) (match-end 6) 'display |
| 3855 | (match-beginning 0))) | 3859 | (if (>= 22 (- (match-end 1) |
| 3856 | '(space :align-to 24) | 3860 | (match-beginning 0))) |
| 3857 | '(space :width 2))) | 3861 | '(space :align-to 24) |
| 3858 | (setq cont (looking-at ".")) | 3862 | '(space :width 2))) |
| 3859 | (while (and (= (forward-line 1) 0) | 3863 | (setq cont (looking-at ".")) |
| 3860 | (looking-at "\\([ \t]+\\)[^*\n]")) | 3864 | (while (and (= (forward-line 1) 0) |
| 3861 | (put-text-property (match-beginning 1) (1- (match-end 1)) | 3865 | (looking-at "\\([ \t]+\\)[^*\n]")) |
| 3862 | 'invisible t) | 3866 | (put-text-property (match-beginning 1) (1- (match-end 1)) |
| 3863 | (put-text-property (1- (match-end 1)) (match-end 1) | 3867 | 'invisible t) |
| 3864 | 'display | 3868 | (put-text-property (1- (match-end 1)) (match-end 1) |
| 3865 | (if cont | 3869 | 'display |
| 3866 | '(space :align-to 26) | 3870 | (if cont |
| 3867 | '(space :align-to 24))) | 3871 | '(space :align-to 26) |
| 3868 | (setq cont t)))))) | 3872 | '(space :align-to 24))) |
| 3873 | (setq cont t))))))) | ||
| 3869 | 3874 | ||
| 3870 | ;; Fontify menu headers | 3875 | ;; Fontify menu headers |
| 3871 | ;; Add the face `info-menu-header' to any header before a menu entry | 3876 | ;; Add the face `info-menu-header' to any header before a menu entry |
diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el index cc4e1766145..112f9ac83d2 100644 --- a/lisp/international/code-pages.el +++ b/lisp/international/code-pages.el | |||
| @@ -3944,21 +3944,21 @@ Return an updated `non-iso-charset-alist'." | |||
| 3944 | [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil | 3944 | [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil |
| 3945 | nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil | 3945 | nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil |
| 3946 | ?\Â | 3946 | ?\Â |
| 3947 | ?\¡ | 3947 | ?\†|
| 3948 | ?\¢ | 3948 | ?\¢ |
| 3949 | ?\£ | 3949 | ?\£ |
| 3950 | ?\¤ | 3950 | ?\¤ |
| 3951 | ?\„ | 3951 | ?\„ |
| 3952 | ?\¦ | 3952 | ?\¦ |
| 3953 | ?\§ | 3953 | ?\§ |
| 3954 | ?\¨ | 3954 | ?\Ø |
| 3955 | ?\© | 3955 | ?\© |
| 3956 | ?\ª | 3956 | ?\Ŗ |
| 3957 | ?\« | 3957 | ?\« |
| 3958 | ?\¬ | 3958 | ?\¬ |
| 3959 | ?\Â | 3959 | ?\Â |
| 3960 | ?\® | 3960 | ?\® |
| 3961 | ?\¯ | 3961 | ?\Æ |
| 3962 | ?\° | 3962 | ?\° |
| 3963 | ?\± | 3963 | ?\± |
| 3964 | ?\² | 3964 | ?\² |
| @@ -3967,14 +3967,14 @@ Return an updated `non-iso-charset-alist'." | |||
| 3967 | ?\µ | 3967 | ?\µ |
| 3968 | ?\¶ | 3968 | ?\¶ |
| 3969 | ?\· | 3969 | ?\· |
| 3970 | ?\¸ | 3970 | ?\ø |
| 3971 | ?\¹ | 3971 | ?\¹ |
| 3972 | ?\º | 3972 | ?\ŗ |
| 3973 | ?\» | 3973 | ?\» |
| 3974 | ?\¼ | 3974 | ?\¼ |
| 3975 | ?\½ | 3975 | ?\½ |
| 3976 | ?\¾ | 3976 | ?\¾ |
| 3977 | ?\¿ | 3977 | ?\æ |
| 3978 | ?\Ä„ | 3978 | ?\Ä„ |
| 3979 | ?\Ä® | 3979 | ?\Ä® |
| 3980 | ?\Ä€ | 3980 | ?\Ä€ |
diff --git a/lisp/international/latin-1.el b/lisp/international/latin-1.el index 610ed1cb9f1..454e4eab1ce 100644 --- a/lisp/international/latin-1.el +++ b/lisp/international/latin-1.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-1.el --- set up case-conversion and syntax tables for ISO Latin-1 | 1 | ;;; latin-1.el --- set up case-conversion and syntax tables for ISO Latin-1 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988,1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1997, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Howard Gayle | 5 | ;; Author: Howard Gayle |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -40,7 +40,9 @@ | |||
| 40 | (if set-case-syntax-set-multibyte | 40 | (if set-case-syntax-set-multibyte |
| 41 | (- (make-char 'latin-iso8859-1) 128) | 41 | (- (make-char 'latin-iso8859-1) 128) |
| 42 | 0))) | 42 | 0))) |
| 43 | (set-case-syntax 160 " " tbl) ;no-break space | 43 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 44 | ;; so it's more like punctation. | ||
| 45 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 44 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark | 46 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark |
| 45 | (set-case-syntax 162 "w" tbl) ;cent sign | 47 | (set-case-syntax 162 "w" tbl) ;cent sign |
| 46 | (set-case-syntax 163 "w" tbl) ;pound sign | 48 | (set-case-syntax 163 "w" tbl) ;pound sign |
| @@ -114,11 +116,11 @@ | |||
| 114 | (or set-case-syntax-set-multibyte | 116 | (or set-case-syntax-set-multibyte |
| 115 | (provide 'latin-1)) | 117 | (provide 'latin-1)) |
| 116 | 118 | ||
| 117 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 119 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 118 | ;;; to look at the .el file! | 120 | ;; to look at the .el file! |
| 119 | ;;; Local Variables: | 121 | ;; Local Variables: |
| 120 | ;;; no-byte-compile: t | 122 | ;; no-byte-compile: t |
| 121 | ;;; End: | 123 | ;; End: |
| 122 | 124 | ||
| 123 | ;;; arch-tag: c2ee6895-edc3-40b2-9518-8c09f1d56c54 | 125 | ;; arch-tag: c2ee6895-edc3-40b2-9518-8c09f1d56c54 |
| 124 | ;;; latin-1.el ends here | 126 | ;;; latin-1.el ends here |
diff --git a/lisp/international/latin-2.el b/lisp/international/latin-2.el index bc7fbe84274..704145f5e58 100644 --- a/lisp/international/latin-2.el +++ b/lisp/international/latin-2.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-2.el --- set up case-conversion and syntax tables for ISO Latin-2 | 1 | ;;; latin-2.el --- set up case-conversion and syntax tables for ISO Latin-2 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1995,1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 1997, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Michael Gschwind (mike@vlsivie.tuwien.ac.at) | 5 | ;; Author: Michael Gschwind (mike@vlsivie.tuwien.ac.at) |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -38,7 +38,9 @@ | |||
| 38 | (if set-case-syntax-set-multibyte | 38 | (if set-case-syntax-set-multibyte |
| 39 | (- (make-char 'latin-iso8859-2) 128) | 39 | (- (make-char 'latin-iso8859-2) 128) |
| 40 | 0))) | 40 | 0))) |
| 41 | (set-case-syntax 160 " " tbl) ;no-break space | 41 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 42 | ;; so it's more like punctation. | ||
| 43 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 42 | (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek | 44 | (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek |
| 43 | (set-case-syntax 162 "w" tbl) ;breve | 45 | (set-case-syntax 162 "w" tbl) ;breve |
| 44 | (set-case-syntax-pair 163 179 tbl) ;latin letter l with stroke | 46 | (set-case-syntax-pair 163 179 tbl) ;latin letter l with stroke |
| @@ -100,11 +102,11 @@ | |||
| 100 | (or set-case-syntax-set-multibyte | 102 | (or set-case-syntax-set-multibyte |
| 101 | (provide 'latin-2)) | 103 | (provide 'latin-2)) |
| 102 | 104 | ||
| 103 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 105 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 104 | ;;; to look at the .el file! | 106 | ;; to look at the .el file! |
| 105 | ;;; Local Variables: | 107 | ;; Local Variables: |
| 106 | ;;; no-byte-compile: t | 108 | ;; no-byte-compile: t |
| 107 | ;;; End: | 109 | ;; End: |
| 108 | 110 | ||
| 109 | ;;; arch-tag: 2b9f9c30-1a63-4877-8a80-e95a5e4c57c9 | 111 | ;; arch-tag: 2b9f9c30-1a63-4877-8a80-e95a5e4c57c9 |
| 110 | ;;; latin-2.el ends here | 112 | ;;; latin-2.el ends here |
diff --git a/lisp/international/latin-3.el b/lisp/international/latin-3.el index 99debf3983d..b87336b9c72 100644 --- a/lisp/international/latin-3.el +++ b/lisp/international/latin-3.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-3.el --- set up case-conversion and syntax tables for ISO Latin-3 | 1 | ;;; latin-3.el --- set up case-conversion and syntax tables for ISO Latin-3 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988,1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1997, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Marko Rahamaa | 5 | ;; Author: Marko Rahamaa |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -37,7 +37,9 @@ | |||
| 37 | (if set-case-syntax-set-multibyte | 37 | (if set-case-syntax-set-multibyte |
| 38 | (- (make-char 'latin-iso8859-3) 128) | 38 | (- (make-char 'latin-iso8859-3) 128) |
| 39 | 0))) | 39 | 0))) |
| 40 | (set-case-syntax 160 " " tbl) ;no-break space | 40 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 41 | ;; so it's more like punctation. | ||
| 42 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 41 | (set-case-syntax-pair 161 177 tbl) ;latin letter h with stroke | 43 | (set-case-syntax-pair 161 177 tbl) ;latin letter h with stroke |
| 42 | (set-case-syntax 162 "w" tbl) ;breve | 44 | (set-case-syntax 162 "w" tbl) ;breve |
| 43 | (set-case-syntax 163 "w" tbl) ;pound sign | 45 | (set-case-syntax 163 "w" tbl) ;pound sign |
| @@ -98,11 +100,11 @@ | |||
| 98 | (or set-case-syntax-set-multibyte | 100 | (or set-case-syntax-set-multibyte |
| 99 | (provide 'latin-3)) | 101 | (provide 'latin-3)) |
| 100 | 102 | ||
| 101 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 103 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 102 | ;;; to look at the .el file! | 104 | ;; to look at the .el file! |
| 103 | ;;; Local Variables: | 105 | ;; Local Variables: |
| 104 | ;;; no-byte-compile: t | 106 | ;; no-byte-compile: t |
| 105 | ;;; End: | 107 | ;; End: |
| 106 | 108 | ||
| 107 | ;;; arch-tag: 64d9d46d-fe0b-4a8e-9c28-ba7e20bbc552 | 109 | ;; arch-tag: 64d9d46d-fe0b-4a8e-9c28-ba7e20bbc552 |
| 108 | ;;; latin-3.el ends here | 110 | ;;; latin-3.el ends here |
diff --git a/lisp/international/latin-4.el b/lisp/international/latin-4.el index 7fa901dba0b..a6aeae736eb 100644 --- a/lisp/international/latin-4.el +++ b/lisp/international/latin-4.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-4.el --- set up case-conversion and syntax tables for ISO Latin-4 | 1 | ;;; latin-4.el --- set up case-conversion and syntax tables for ISO Latin-4 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Erik Naggum | 5 | ;; Author: Erik Naggum |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -36,7 +36,9 @@ | |||
| 36 | (if set-case-syntax-set-multibyte | 36 | (if set-case-syntax-set-multibyte |
| 37 | (- (make-char 'latin-iso8859-4) 128) | 37 | (- (make-char 'latin-iso8859-4) 128) |
| 38 | 0))) | 38 | 0))) |
| 39 | (set-case-syntax 160 " " tbl) ;no-break space | 39 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 40 | ;; so it's more like punctation. | ||
| 41 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 40 | (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek | 42 | (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek |
| 41 | (set-case-syntax 162 "w" tbl) ;latin letter kra | 43 | (set-case-syntax 162 "w" tbl) ;latin letter kra |
| 42 | (set-case-syntax-pair 163 179 tbl) ;latin letter r with cedilla | 44 | (set-case-syntax-pair 163 179 tbl) ;latin letter r with cedilla |
| @@ -98,11 +100,11 @@ | |||
| 98 | (or set-case-syntax-set-multibyte | 100 | (or set-case-syntax-set-multibyte |
| 99 | (provide 'latin-4)) | 101 | (provide 'latin-4)) |
| 100 | 102 | ||
| 101 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 103 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 102 | ;;; to look at the .el file! | 104 | ;; to look at the .el file! |
| 103 | ;;; Local Variables: | 105 | ;; Local Variables: |
| 104 | ;;; no-byte-compile: t | 106 | ;; no-byte-compile: t |
| 105 | ;;; End: | 107 | ;; End: |
| 106 | 108 | ||
| 107 | ;;; arch-tag: c6b2558b-1943-4626-beb5-139630c8e352 | 109 | ;; arch-tag: c6b2558b-1943-4626-beb5-139630c8e352 |
| 108 | ;;; latin-4.el ends here | 110 | ;;; latin-4.el ends here |
diff --git a/lisp/international/latin-5.el b/lisp/international/latin-5.el index 5d96c1132a7..cc971ecbb86 100644 --- a/lisp/international/latin-5.el +++ b/lisp/international/latin-5.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-5.el --- set up case-conversion and syntax tables for ISO latin-5 | 1 | ;;; latin-5.el --- set up case-conversion and syntax tables for ISO latin-5 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Erik Naggum | 5 | ;; Author: Erik Naggum |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -36,7 +36,9 @@ | |||
| 36 | (if set-case-syntax-set-multibyte | 36 | (if set-case-syntax-set-multibyte |
| 37 | (- (make-char 'latin-iso8859-9) 128) | 37 | (- (make-char 'latin-iso8859-9) 128) |
| 38 | 0))) | 38 | 0))) |
| 39 | (set-case-syntax 160 " " tbl) ;no-break space | 39 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 40 | ;; so it's more like punctation. | ||
| 41 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 40 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark | 42 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark |
| 41 | (set-case-syntax 162 "w" tbl) ;cent sign | 43 | (set-case-syntax 162 "w" tbl) ;cent sign |
| 42 | (set-case-syntax 163 "w" tbl) ;pound sign | 44 | (set-case-syntax 163 "w" tbl) ;pound sign |
| @@ -111,11 +113,11 @@ | |||
| 111 | (or set-case-syntax-set-multibyte | 113 | (or set-case-syntax-set-multibyte |
| 112 | (provide 'latin-5)) | 114 | (provide 'latin-5)) |
| 113 | 115 | ||
| 114 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 116 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 115 | ;;; to look at the .el file! | 117 | ;; to look at the .el file! |
| 116 | ;;; Local Variables: | 118 | ;; Local Variables: |
| 117 | ;;; no-byte-compile: t | 119 | ;; no-byte-compile: t |
| 118 | ;;; End: | 120 | ;; End: |
| 119 | 121 | ||
| 120 | ;;; arch-tag: 7f91a36a-39fb-4b5d-806f-f171abee71ad | 122 | ;; arch-tag: 7f91a36a-39fb-4b5d-806f-f171abee71ad |
| 121 | ;;; latin-5.el ends here | 123 | ;;; latin-5.el ends here |
diff --git a/lisp/international/latin-8.el b/lisp/international/latin-8.el index 91ea40198db..092ea8ab874 100644 --- a/lisp/international/latin-8.el +++ b/lisp/international/latin-8.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-8.el --- set up case-conversion and syntax tables for ISO Latin-8 | 1 | ;;; latin-8.el --- set up case-conversion and syntax tables for ISO Latin-8 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988,1997, 1999 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1997, 1999, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Dave Love | 5 | ;; Author: Dave Love |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -47,6 +47,9 @@ | |||
| 47 | (if set-case-syntax-set-multibyte | 47 | (if set-case-syntax-set-multibyte |
| 48 | (- (make-char 'latin-iso8859-14) 128) | 48 | (- (make-char 'latin-iso8859-14) 128) |
| 49 | 0))) | 49 | 0))) |
| 50 | ;; NBSP isn't semantically interchangeable with other whitespace chars, | ||
| 51 | ;; so it's more like punctation. | ||
| 52 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 50 | (set-case-syntax-pair 161 162 tbl) ;latin letter b with dot above * | 53 | (set-case-syntax-pair 161 162 tbl) ;latin letter b with dot above * |
| 51 | (set-case-syntax 163 "w" tbl) ;pound sign | 54 | (set-case-syntax 163 "w" tbl) ;pound sign |
| 52 | (set-case-syntax-pair 164 165 tbl) ;latin letter c with dot above * | 55 | (set-case-syntax-pair 164 165 tbl) ;latin letter c with dot above * |
| @@ -104,11 +107,11 @@ | |||
| 104 | (or set-case-syntax-set-multibyte | 107 | (or set-case-syntax-set-multibyte |
| 105 | (provide 'latin-8)) | 108 | (provide 'latin-8)) |
| 106 | 109 | ||
| 107 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 110 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 108 | ;;; to look at the .el file! | 111 | ;; to look at the .el file! |
| 109 | ;;; Local Variables: | 112 | ;; Local Variables: |
| 110 | ;;; no-byte-compile: t | 113 | ;; no-byte-compile: t |
| 111 | ;;; End: | 114 | ;; End: |
| 112 | 115 | ||
| 113 | ;;; arch-tag: a916b4b5-4204-485b-8b57-8ab3a43a2e29 | 116 | ;; arch-tag: a916b4b5-4204-485b-8b57-8ab3a43a2e29 |
| 114 | ;;; latin-8.el ends here | 117 | ;;; latin-8.el ends here |
diff --git a/lisp/international/latin-9.el b/lisp/international/latin-9.el index 1a221f024de..be568c3115c 100644 --- a/lisp/international/latin-9.el +++ b/lisp/international/latin-9.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latin-9.el --- set up case-conversion and syntax tables for ISO Latin-9 | 1 | ;;; latin-9.el --- set up case-conversion and syntax tables for ISO Latin-9 |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988,1997,1999 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1997, 1999, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Dave Love | 5 | ;; Author: Dave Love |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -50,7 +50,9 @@ | |||
| 50 | (if set-case-syntax-set-multibyte | 50 | (if set-case-syntax-set-multibyte |
| 51 | (- (make-char 'latin-iso8859-15) 128) | 51 | (- (make-char 'latin-iso8859-15) 128) |
| 52 | 0))) | 52 | 0))) |
| 53 | (set-case-syntax 160 " " tbl) ;no-break space | 53 | ;; NBSP isn't semantically interchangeable with other whitespace chars, |
| 54 | ;; so it's more like punctation. | ||
| 55 | (set-case-syntax 160 "." tbl) ;no-break space | ||
| 54 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark | 56 | (set-case-syntax 161 "." tbl) ;inverted exclamation mark |
| 55 | (set-case-syntax 162 "w" tbl) ;cent sign | 57 | (set-case-syntax 162 "w" tbl) ;cent sign |
| 56 | (set-case-syntax 163 "w" tbl) ;pound sign | 58 | (set-case-syntax 163 "w" tbl) ;pound sign |
| @@ -117,11 +119,11 @@ | |||
| 117 | (or set-case-syntax-set-multibyte | 119 | (or set-case-syntax-set-multibyte |
| 118 | (provide 'latin-9)) | 120 | (provide 'latin-9)) |
| 119 | 121 | ||
| 120 | ;;; Don't compile this file: src/Makefile.in instructs make-docfile | 122 | ;; Don't compile this file: src/Makefile.in instructs make-docfile |
| 121 | ;;; to look at the .el file! | 123 | ;; to look at the .el file! |
| 122 | ;;; Local Variables: | 124 | ;; Local Variables: |
| 123 | ;;; no-byte-compile: t | 125 | ;; no-byte-compile: t |
| 124 | ;;; End: | 126 | ;; End: |
| 125 | 127 | ||
| 126 | ;;; arch-tag: 84d442ad-d595-4016-8b84-ea92704fd235 | 128 | ;; arch-tag: 84d442ad-d595-4016-8b84-ea92704fd235 |
| 127 | ;;; latin-9.el ends here | 129 | ;;; latin-9.el ends here |
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index b6bcb3938b0..92f997d7b4a 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2005-04-08 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 2 | |||
| 3 | * mh-customize.el (mh-speedbar-selected-folder-face): Special case | ||
| 4 | high number of colors displays. | ||
| 5 | |||
| 1 | 2005-03-25 Werner Lemberg <wl@gnu.org> | 6 | 2005-03-25 Werner Lemberg <wl@gnu.org> |
| 2 | 7 | ||
| 3 | * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with `valid'. | 8 | * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with `valid'. |
| @@ -85,18 +90,18 @@ | |||
| 85 | 2004-08-15 Bill Wohler <wohler@newt.com> | 90 | 2004-08-15 Bill Wohler <wohler@newt.com> |
| 86 | 91 | ||
| 87 | * Released MH-E version 7.4.80. | 92 | * Released MH-E version 7.4.80. |
| 88 | 93 | ||
| 89 | * MH-E-NEWS, README: Updated for release 7.4.80. | 94 | * MH-E-NEWS, README: Updated for release 7.4.80. |
| 90 | 95 | ||
| 91 | * mh-e.el (Version, mh-version): Updated for release 7.4.80. | 96 | * mh-e.el (Version, mh-version): Updated for release 7.4.80. |
| 92 | 97 | ||
| 93 | 2004-08-15 Bill Wohler <wohler@newt.com> | 98 | 2004-08-15 Bill Wohler <wohler@newt.com> |
| 94 | 99 | ||
| 95 | * mh-funcs.el, mh-gnus.el, mh-inc.el, mh-init.el, mh-junk.el, | 100 | * mh-funcs.el, mh-gnus.el, mh-inc.el, mh-init.el, mh-junk.el, |
| 96 | mh-pick.el, mh-print.el, mh-xemacs.el: Added 2004 to Copyright. | 101 | mh-pick.el, mh-print.el, mh-xemacs.el: Added 2004 to Copyright. |
| 97 | 102 | ||
| 98 | * mh-acros.el, mh-alias.el: Checkdoc fixes. | 103 | * mh-acros.el, mh-alias.el: Checkdoc fixes. |
| 99 | 104 | ||
| 100 | 2004-08-12 Satyaki Das <satyaki@theforce.stanford.edu> | 105 | 2004-08-12 Satyaki Das <satyaki@theforce.stanford.edu> |
| 101 | 106 | ||
| 102 | * mh-acros.el (cl): Load cl in this file. That is all right, since | 107 | * mh-acros.el (cl): Load cl in this file. That is all right, since |
| @@ -130,7 +135,7 @@ | |||
| 130 | do a good job of suppressing compilation warnings in 21.3 and CVS | 135 | do a good job of suppressing compilation warnings in 21.3 and CVS |
| 131 | Emacs (21.4). This replaces (require 'cl) or (require | 136 | Emacs (21.4). This replaces (require 'cl) or (require |
| 132 | 'utils) (mh-require-cl) calls: | 137 | 'utils) (mh-require-cl) calls: |
| 133 | 138 | ||
| 134 | (eval-when-compile (require 'mh-acros)) | 139 | (eval-when-compile (require 'mh-acros)) |
| 135 | (mh-require-cl) | 140 | (mh-require-cl) |
| 136 | 141 | ||
| @@ -151,7 +156,7 @@ | |||
| 151 | 156 | ||
| 152 | * mh-seq.el (mh-thread-message, mh-thread-container): Use | 157 | * mh-seq.el (mh-thread-message, mh-thread-container): Use |
| 153 | mh-defstruct instead of defstruct. | 158 | mh-defstruct instead of defstruct. |
| 154 | (mh-thread-id-container, mh-thread-get-message-container) | 159 | (mh-thread-id-container, mh-thread-get-message-container) |
| 155 | (mh-thread-get-message): Use the slightly different structure | 160 | (mh-thread-get-message): Use the slightly different structure |
| 156 | constructor function. | 161 | constructor function. |
| 157 | 162 | ||
| @@ -240,8 +245,8 @@ | |||
| 240 | programs are run in background. Running in foreground can be slow. | 245 | programs are run in background. Running in foreground can be slow. |
| 241 | Defaults to nil to spare machines with little memory. | 246 | Defaults to nil to spare machines with little memory. |
| 242 | 247 | ||
| 243 | * mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist) | 248 | * mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist) |
| 244 | (mh-bogofilter-whitelist, mh-spamprobe-blacklist) | 249 | (mh-bogofilter-whitelist, mh-spamprobe-blacklist) |
| 245 | (mh-spamprobe-whitelist): Use new option mh-junk-background. | 250 | (mh-spamprobe-whitelist): Use new option mh-junk-background. |
| 246 | 251 | ||
| 247 | 2004-07-25 Satyaki Das <satyaki@theforce.stanford.edu> | 252 | 2004-07-25 Satyaki Das <satyaki@theforce.stanford.edu> |
| @@ -266,7 +271,7 @@ | |||
| 266 | * mh-customize.el (mh-invisible-header-fields-internal): Added | 271 | * mh-customize.el (mh-invisible-header-fields-internal): Added |
| 267 | header fields emitted by T-Mobile picture phones (X-Mms-*, and | 272 | header fields emitted by T-Mobile picture phones (X-Mms-*, and |
| 268 | commented out X-Operator field saying it's like X-Mailer). | 273 | commented out X-Operator field saying it's like X-Mailer). |
| 269 | 274 | ||
| 270 | 2004-07-12 Bill Wohler <wohler@newt.com> | 275 | 2004-07-12 Bill Wohler <wohler@newt.com> |
| 271 | 276 | ||
| 272 | * mh-gnus.el: Set local variables indent-tabs-mode and | 277 | * mh-gnus.el: Set local variables indent-tabs-mode and |
| @@ -306,7 +311,7 @@ | |||
| 306 | 311 | ||
| 307 | * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-mu-mh-info): | 312 | * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-mu-mh-info): |
| 308 | Prefer GNU mailutils over GNU Mailutils MH. | 313 | Prefer GNU mailutils over GNU Mailutils MH. |
| 309 | 314 | ||
| 310 | * mh-comp.el (sc-cite-original, mh-smail, mh-smail-batch) | 315 | * mh-comp.el (sc-cite-original, mh-smail, mh-smail-batch) |
| 311 | (mh-edit-again, mh-extract-rejected-mail, mh-forward) | 316 | (mh-edit-again, mh-extract-rejected-mail, mh-forward) |
| 312 | (mh-smail-other-window, mh-reply, mh-send, mh-send-other-window): | 317 | (mh-smail-other-window, mh-reply, mh-send, mh-send-other-window): |
| @@ -325,8 +330,8 @@ | |||
| 325 | * MH-E-NEWS, README: Updated for release 7.4.4. | 330 | * MH-E-NEWS, README: Updated for release 7.4.4. |
| 326 | 331 | ||
| 327 | * mh-e.el (Version, mh-version): Updated for release 7.4.4. | 332 | * mh-e.el (Version, mh-version): Updated for release 7.4.4. |
| 328 | 333 | ||
| 329 | * This patch release contains the following patches: | 334 | This patch release contains the following patches: |
| 330 | 335 | ||
| 331 | * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el | 336 | * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el |
| 332 | and mh-xemacs-icons.el which were removed since their names | 337 | and mh-xemacs-icons.el which were removed since their names |
| @@ -390,9 +395,9 @@ | |||
| 390 | (require 'mouse): To shush compiler. | 395 | (require 'mouse): To shush compiler. |
| 391 | 396 | ||
| 392 | * Use new function mh-require-cl throughout. | 397 | * Use new function mh-require-cl throughout. |
| 393 | 398 | ||
| 394 | * Add arch taglines (courtesy Miles Bader). | 399 | * Add arch taglines (courtesy Miles Bader). |
| 395 | 400 | ||
| 396 | * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and | 401 | * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and |
| 397 | mh-xemacs-icons.el with mh-xemacs.el. | 402 | mh-xemacs-icons.el with mh-xemacs.el. |
| 398 | 403 | ||
| @@ -409,10 +414,10 @@ | |||
| 409 | 414 | ||
| 410 | 2004-07-07 Stephen Gildea | 415 | 2004-07-07 Stephen Gildea |
| 411 | 416 | ||
| 412 | * mh-customize.el (mh-invisible-header-fields-internal): | 417 | * mh-customize.el (mh-invisible-header-fields-internal): |
| 413 | Add X-Greylist, X-Source*, and X-WebTV-Signature. | 418 | Add X-Greylist, X-Source*, and X-WebTV-Signature. |
| 414 | Replace specific X-Spam-* headers with general pattern. | 419 | Replace specific X-Spam-* headers with general pattern. |
| 415 | 420 | ||
| 416 | 2004-06-15 Bill Wohler <wohler@newt.com> | 421 | 2004-06-15 Bill Wohler <wohler@newt.com> |
| 417 | 422 | ||
| 418 | * README: Vladimir Ivanovic reports that mh-rmail works with | 423 | * README: Vladimir Ivanovic reports that mh-rmail works with |
| @@ -438,7 +443,7 @@ | |||
| 438 | 443 | ||
| 439 | 2004-04-07 Satyaki Das <satyaki@theforce.stanford.edu> | 444 | 2004-04-07 Satyaki Das <satyaki@theforce.stanford.edu> |
| 440 | 445 | ||
| 441 | * mh-mime.el (mh-insert-mime-button) | 446 | * mh-mime.el (mh-insert-mime-button) |
| 442 | (mh-insert-mime-security-button): Add evaporate property to | 447 | (mh-insert-mime-security-button): Add evaporate property to |
| 443 | overlays used in MIME part buttons. This avoids problems with | 448 | overlays used in MIME part buttons. This avoids problems with |
| 444 | CVS Emacs. | 449 | CVS Emacs. |
| @@ -459,10 +464,10 @@ | |||
| 459 | 464 | ||
| 460 | 2003-12-26 Jeffrey C Honig <jch@honig.net> | 465 | 2003-12-26 Jeffrey C Honig <jch@honig.net> |
| 461 | 466 | ||
| 462 | * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) | 467 | * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) |
| 463 | (mh-spamassassin-blacklist, mh-spamassassin-blacklist) | 468 | (mh-spamassassin-blacklist, mh-spamassassin-blacklist) |
| 464 | (mh-spamassassin-blacklist, mh-spamassassin-whitelist) | 469 | (mh-spamassassin-blacklist, mh-spamassassin-whitelist) |
| 465 | (mh-spamassassin-whitelist, mh-bogofilter-blacklist) | 470 | (mh-spamassassin-whitelist, mh-bogofilter-blacklist) |
| 466 | (mh-spamprobe-blacklist): Add progress messages. Change "Couldn't" | 471 | (mh-spamprobe-blacklist): Add progress messages. Change "Couldn't" |
| 467 | to "Unable" in error messages. Run bogofilter and spamprobe in | 472 | to "Unable" in error messages. Run bogofilter and spamprobe in |
| 468 | the foreground to prevent a large number of processes from | 473 | the foreground to prevent a large number of processes from |
| @@ -536,9 +541,9 @@ | |||
| 536 | * MH-E-NEWS, README: Updated for release 7.4.3. | 541 | * MH-E-NEWS, README: Updated for release 7.4.3. |
| 537 | 542 | ||
| 538 | * mh-e.el (Version, mh-version): Updated for release 7.4.3. | 543 | * mh-e.el (Version, mh-version): Updated for release 7.4.3. |
| 539 | 544 | ||
| 540 | * This patch release contains the following two patches: | 545 | * This patch release contains the following two patches: |
| 541 | 546 | ||
| 542 | * mh-identity.el (mh-identity-make-menu): Removed condition on | 547 | * mh-identity.el (mh-identity-make-menu): Removed condition on |
| 543 | mh-auto-fields-list. Use it to enable or disable menu item | 548 | mh-auto-fields-list. Use it to enable or disable menu item |
| 544 | instead. | 549 | instead. |
| @@ -576,10 +581,10 @@ | |||
| 576 | 581 | ||
| 577 | 2003-11-14 Mark D. Baushke <mdb@gnu.org> | 582 | 2003-11-14 Mark D. Baushke <mdb@gnu.org> |
| 578 | 583 | ||
| 579 | * mh-customize.el (mh-invisible-header-fields-internal): | 584 | * mh-customize.el (mh-invisible-header-fields-internal): |
| 580 | Add X-AntiAbuse and X-MailScanner. | 585 | Add X-AntiAbuse and X-MailScanner. |
| 581 | (Patch from Stephen Gildea.) | 586 | (Patch from Stephen Gildea.) |
| 582 | 587 | ||
| 583 | 2003-11-13 Peter S Galbraith <psg@debian.org> | 588 | 2003-11-13 Peter S Galbraith <psg@debian.org> |
| 584 | 589 | ||
| 585 | * mh-identity.el (mh-identity-handler-attribution-verb): New | 590 | * mh-identity.el (mh-identity-handler-attribution-verb): New |
| @@ -689,14 +694,14 @@ | |||
| 689 | 694 | ||
| 690 | 2003-11-02 Jeffrey C Honig <jch@honig.net> | 695 | 2003-11-02 Jeffrey C Honig <jch@honig.net> |
| 691 | 696 | ||
| 692 | * mh-loaddefs.el: Regenerated. | 697 | * mh-loaddefs.el: Regenerated. |
| 693 | 698 | ||
| 694 | * mh-funcs.el (mh-print-msg): Move to mh-print.el. | 699 | * mh-funcs.el (mh-print-msg): Move to mh-print.el. |
| 695 | 700 | ||
| 696 | * mh-e.el (mh-folder-mode-map): Add mh-print-msg ("l") back, it | 701 | * mh-e.el (mh-folder-mode-map): Add mh-print-msg ("l") back, it |
| 697 | will print a message that this usage is deprecated. | 702 | will print a message that this usage is deprecated. |
| 698 | 703 | ||
| 699 | * mh-print.el (require, mh-ps-print-msg, mh-ps-print-msg-file): | 704 | * mh-print.el (require, mh-ps-print-msg, mh-ps-print-msg-file): |
| 700 | Require mh-funcs for mh-note-printed. PS print functions were not | 705 | Require mh-funcs for mh-note-printed. PS print functions were not |
| 701 | setting the printed notation. Move mh-print-msg here for | 706 | setting the printed notation. Move mh-print-msg here for |
| 702 | consistency. Print message if mh-print-msg invoked via deprecated | 707 | consistency. Print message if mh-print-msg invoked via deprecated |
| @@ -790,7 +795,7 @@ | |||
| 790 | (custom-load.elc): Allow for '-no-autoloads'. | 795 | (custom-load.elc): Allow for '-no-autoloads'. |
| 791 | (compile-xemacs): New. It allows for the '-no-autoloads' option | 796 | (compile-xemacs): New. It allows for the '-no-autoloads' option |
| 792 | and byte-compiles all the source files with a single instance of | 797 | and byte-compiles all the source files with a single instance of |
| 793 | XEmacs. | 798 | XEmacs. |
| 794 | 799 | ||
| 795 | * mh-e.el (mh-folder-mode): Only load the toolbar in XEmacs if | 800 | * mh-e.el (mh-folder-mode): Only load the toolbar in XEmacs if |
| 796 | toolbar support is available. | 801 | toolbar support is available. |
| @@ -874,7 +879,7 @@ | |||
| 874 | 2003-10-09 Peter S Galbraith <psg@debian.org> | 879 | 2003-10-09 Peter S Galbraith <psg@debian.org> |
| 875 | 880 | ||
| 876 | * mh-customize.el (mail-citation-hook): Moved from mh-comp.el and | 881 | * mh-customize.el (mail-citation-hook): Moved from mh-comp.el and |
| 877 | made into a defcustom. | 882 | made into a defcustom. |
| 878 | 883 | ||
| 879 | 2003-10-09 Satyaki Das <satyakid@stanford.edu> | 884 | 2003-10-09 Satyaki Das <satyakid@stanford.edu> |
| 880 | 885 | ||
| @@ -938,10 +943,10 @@ | |||
| 938 | parenthetical comment. | 943 | parenthetical comment. |
| 939 | 944 | ||
| 940 | * mh-loaddefs.el: Regenerated. | 945 | * mh-loaddefs.el: Regenerated. |
| 941 | 946 | ||
| 942 | * mh-customize.el (mh-mml-method-default): What method should be | 947 | * mh-customize.el (mh-mml-method-default): What method should be |
| 943 | used in secure directives. | 948 | used in secure directives. |
| 944 | 949 | ||
| 945 | * mh-mime.el (mh-secure-message): New function used to generate | 950 | * mh-mime.el (mh-secure-message): New function used to generate |
| 946 | the mml security tags. | 951 | the mml security tags. |
| 947 | (mh-mml-unsecure-message): New wrapper function around | 952 | (mh-mml-unsecure-message): New wrapper function around |
| @@ -1061,7 +1066,7 @@ | |||
| 1061 | 1066 | ||
| 1062 | * mh-customize.el (mh-identity-handlers): New defcustom. Alist of | 1067 | * mh-customize.el (mh-identity-handlers): New defcustom. Alist of |
| 1063 | Handler functions for mh-identity (downcased) fields. | 1068 | Handler functions for mh-identity (downcased) fields. |
| 1064 | (mh-identity-list): Add support for pgg-default-user-id. | 1069 | (mh-identity-list): Add support for pgg-default-user-id. |
| 1065 | 1070 | ||
| 1066 | * mh-identity.el (mh-insert-identity): Modified to use | 1071 | * mh-identity.el (mh-insert-identity): Modified to use |
| 1067 | `mh-identity-handlers', adding hacking flexibility for those who | 1072 | `mh-identity-handlers', adding hacking flexibility for those who |
| @@ -1084,7 +1089,7 @@ | |||
| 1084 | (mh-header-field-delete): Make more robust wrt the field having a | 1089 | (mh-header-field-delete): Make more robust wrt the field having a |
| 1085 | trailing colon or not. | 1090 | trailing colon or not. |
| 1086 | (mh-identity-make-menu): Add a "Customize Identities" menu entry. | 1091 | (mh-identity-make-menu): Add a "Customize Identities" menu entry. |
| 1087 | 1092 | ||
| 1088 | * mh-loaddefs.el: Regenerated. | 1093 | * mh-loaddefs.el: Regenerated. |
| 1089 | 1094 | ||
| 1090 | 2003-09-21 Peter S Galbraith <psg@debian.org> | 1095 | 2003-09-21 Peter S Galbraith <psg@debian.org> |
| @@ -1093,7 +1098,7 @@ | |||
| 1093 | with version numbers. | 1098 | with version numbers. |
| 1094 | 1099 | ||
| 1095 | * mh-e.el (mh-scan-format): patch from Sergey Poznyakoff. | 1100 | * mh-e.el (mh-scan-format): patch from Sergey Poznyakoff. |
| 1096 | GNU mailutils now supports the %(decode) format | 1101 | GNU mailutils now supports the %(decode) format |
| 1097 | 1102 | ||
| 1098 | 2003-09-20 Satyaki Das <satyakid@stanford.edu> | 1103 | 2003-09-20 Satyaki Das <satyakid@stanford.edu> |
| 1099 | 1104 | ||
| @@ -1422,7 +1427,7 @@ | |||
| 1422 | * mh-utils.el (mh-find-path): Run setup code only if | 1427 | * mh-utils.el (mh-find-path): Run setup code only if |
| 1423 | `mh-find-path-run' is nil such that this is only done once. | 1428 | `mh-find-path-run' is nil such that this is only done once. |
| 1424 | Also remove the `setq' for `read-mail-command' and `mail-user-agent'. | 1429 | Also remove the `setq' for `read-mail-command' and `mail-user-agent'. |
| 1425 | 1430 | ||
| 1426 | 2003-08-18 Peter S Galbraith <psg@debian.org> | 1431 | 2003-08-18 Peter S Galbraith <psg@debian.org> |
| 1427 | 1432 | ||
| 1428 | * mh-e.el: require 'mh-utils first | 1433 | * mh-e.el: require 'mh-utils first |
| @@ -1441,16 +1446,16 @@ | |||
| 1441 | (mh-path-search): Deleted. Was only used by `mh-find-progs'. | 1446 | (mh-path-search): Deleted. Was only used by `mh-find-progs'. |
| 1442 | 1447 | ||
| 1443 | * mh-e.el: require mh-init.el. | 1448 | * mh-e.el: require mh-init.el. |
| 1444 | (mh-version): Use simpler `mh-variant-in-use'. | 1449 | (mh-version): Use simpler `mh-variant-in-use'. |
| 1445 | (mh-scan-format): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. | 1450 | (mh-scan-format): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. |
| 1446 | 1451 | ||
| 1447 | * mh-comp.el (mh-insert-x-mailer): Use simpler `mh-variant-in-use'. | 1452 | * mh-comp.el (mh-insert-x-mailer): Use simpler `mh-variant-in-use'. |
| 1448 | 1453 | ||
| 1449 | * mh-utils.el (mh-progs, mh-lib, mh-lib-progs) | 1454 | * mh-utils.el (mh-progs, mh-lib, mh-lib-progs) |
| 1450 | (mh-flists-present-flag): Moved to mh-init.el. | 1455 | (mh-flists-present-flag): Moved to mh-init.el. |
| 1451 | (mh-nmh-flag): Deleted. Use (mh-variant-p 'nmh) instead. | 1456 | (mh-nmh-flag): Deleted. Use (mh-variant-p 'nmh) instead. |
| 1452 | 1457 | ||
| 1453 | * mh-comp.el (mh-repl-group-formfile, mh-forward, mh-reply) | 1458 | * mh-comp.el (mh-repl-group-formfile, mh-forward, mh-reply) |
| 1454 | (mh-send-letter): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. | 1459 | (mh-send-letter): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. |
| 1455 | 1460 | ||
| 1456 | * mh-mime.el (mh-edit-mhn, mh-mime-save-parts): Use (mh-variant-p | 1461 | * mh-mime.el (mh-edit-mhn, mh-mime-save-parts): Use (mh-variant-p |
| @@ -1484,7 +1489,7 @@ | |||
| 1484 | (mh-variant-in-use, mh-variant-p): Developers may check which | 1489 | (mh-variant-in-use, mh-variant-p): Developers may check which |
| 1485 | variant is currently in use with the variable `mh-variant-in-use' | 1490 | variant is currently in use with the variable `mh-variant-in-use' |
| 1486 | or the function `mh-variant-p'. | 1491 | or the function `mh-variant-p'. |
| 1487 | 1492 | ||
| 1488 | 2003-08-15 Bill Wohler <wohler@newt.com> | 1493 | 2003-08-15 Bill Wohler <wohler@newt.com> |
| 1489 | 1494 | ||
| 1490 | * mh-customize.el (mh-auto-fields-list): The manual uses Fcc | 1495 | * mh-customize.el (mh-auto-fields-list): The manual uses Fcc |
| @@ -1653,7 +1658,7 @@ | |||
| 1653 | 1658 | ||
| 1654 | * mh-identity.el (mh-insert-identity): Refactor to use | 1659 | * mh-identity.el (mh-insert-identity): Refactor to use |
| 1655 | mh-insert-signature | 1660 | mh-insert-signature |
| 1656 | 1661 | ||
| 1657 | * mh-comp.el (mh-signature-separator-p): Removed. | 1662 | * mh-comp.el (mh-signature-separator-p): Removed. |
| 1658 | 1663 | ||
| 1659 | * mh-comp.el (mh-insert-signature): Merge MIME awareness from | 1664 | * mh-comp.el (mh-insert-signature): Merge MIME awareness from |
| @@ -1724,8 +1729,8 @@ | |||
| 1724 | * mh-funcs.el (mh-undo-folder): Ditto. | 1729 | * mh-funcs.el (mh-undo-folder): Ditto. |
| 1725 | 1730 | ||
| 1726 | * mh-mime.el (mh-mime-save-parts): Ditto. | 1731 | * mh-mime.el (mh-mime-save-parts): Ditto. |
| 1727 | 1732 | ||
| 1728 | * mh-seq.el (mh-subject-to-sequence-unthreaded) | 1733 | * mh-seq.el (mh-subject-to-sequence-unthreaded) |
| 1729 | (mh-narrow-to-subject, mh-delete-subject): Ditto. | 1734 | (mh-narrow-to-subject, mh-delete-subject): Ditto. |
| 1730 | 1735 | ||
| 1731 | * mh-index.el (mh-index-sequenced-messages) | 1736 | * mh-index.el (mh-index-sequenced-messages) |
| @@ -2021,7 +2026,7 @@ | |||
| 2021 | (mh-unit-equal): New function that throws an error if RESULT | 2026 | (mh-unit-equal): New function that throws an error if RESULT |
| 2022 | doesn't equal EXPECTED. | 2027 | doesn't equal EXPECTED. |
| 2023 | (mh-unit): Call mh-unit-x-image-url-cache-canonicalize. | 2028 | (mh-unit): Call mh-unit-x-image-url-cache-canonicalize. |
| 2024 | 2029 | ||
| 2025 | 2003-07-29 Satyaki Das <satyakid@stanford.edu> | 2030 | 2003-07-29 Satyaki Das <satyakid@stanford.edu> |
| 2026 | 2031 | ||
| 2027 | * mh-unit.el (mh-unit-update-call-graph): Make the function work | 2032 | * mh-unit.el (mh-unit-update-call-graph): Make the function work |
| @@ -2159,10 +2164,10 @@ | |||
| 2159 | hoping to quote the hint `t' but checkdoc wouldn't let me. | 2164 | hoping to quote the hint `t' but checkdoc wouldn't let me. |
| 2160 | (mh-note-deleted, mh-note-refiled, mh-note-cur): Moved to Scan | 2165 | (mh-note-deleted, mh-note-refiled, mh-note-cur): Moved to Scan |
| 2161 | Line Formats section. | 2166 | Line Formats section. |
| 2162 | (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) | 2167 | (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) |
| 2163 | (mh-scan-refiled-msg-regexp, mh-scan-valid-regexp) | 2168 | (mh-scan-refiled-msg-regexp, mh-scan-valid-regexp) |
| 2164 | (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp) | 2169 | (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp) |
| 2165 | (mh-scan-rcpt-regexp, mh-scan-body-regexp) | 2170 | (mh-scan-rcpt-regexp, mh-scan-body-regexp) |
| 2166 | (mh-scan-subject-regexp, mh-scan-format-regexp): Cleaned | 2171 | (mh-scan-subject-regexp, mh-scan-format-regexp): Cleaned |
| 2167 | up docstrings (changed phrases to sentences). | 2172 | up docstrings (changed phrases to sentences). |
| 2168 | (mh-scan-cur-msg-regexp): Marked this variable as obsolete; it | 2173 | (mh-scan-cur-msg-regexp): Marked this variable as obsolete; it |
| @@ -2350,7 +2355,7 @@ | |||
| 2350 | * mh-utils.el (mh-replace-in-string): New function name instead of | 2355 | * mh-utils.el (mh-replace-in-string): New function name instead of |
| 2351 | `dired-replace-in-string'. | 2356 | `dired-replace-in-string'. |
| 2352 | * mh-alias.el (mh-alias-gcos-name): Use it. | 2357 | * mh-alias.el (mh-alias-gcos-name): Use it. |
| 2353 | 2358 | ||
| 2354 | * mh-alias.el (mh-alias-apropos): New command. Show all aliases | 2359 | * mh-alias.el (mh-alias-apropos): New command. Show all aliases |
| 2355 | that match REGEXP either in name or content. | 2360 | that match REGEXP either in name or content. |
| 2356 | 2361 | ||
| @@ -2374,7 +2379,7 @@ | |||
| 2374 | 2003-06-02 Peter S Galbraith <psg@debian.org> | 2379 | 2003-06-02 Peter S Galbraith <psg@debian.org> |
| 2375 | 2380 | ||
| 2376 | * mh-utils.el (dired-replace-in-string): Bind if not already | 2381 | * mh-utils.el (dired-replace-in-string): Bind if not already |
| 2377 | defined. Borrowed from dired.el | 2382 | defined. Borrowed from dired.el |
| 2378 | 2383 | ||
| 2379 | * mh-alias.el (mh-alias-gcos-name): switch to using | 2384 | * mh-alias.el (mh-alias-gcos-name): switch to using |
| 2380 | dired-replace-in-string. | 2385 | dired-replace-in-string. |
| @@ -2425,7 +2430,7 @@ | |||
| 2425 | second time. I have wrapped the value around \b word delimiters. | 2430 | second time. I have wrapped the value around \b word delimiters. |
| 2426 | Hope there are no side effects for other code. | 2431 | Hope there are no side effects for other code. |
| 2427 | 2432 | ||
| 2428 | * mh-comp.el (mh-insert-auto-fields): Attempt regardless of | 2433 | * mh-comp.el (mh-insert-auto-fields): Attempt regardless of |
| 2429 | `mh-insert-auto-fields-done-local' flag in interactive use. | 2434 | `mh-insert-auto-fields-done-local' flag in interactive use. |
| 2430 | 2435 | ||
| 2431 | * mh-comp.el (mh-insert-auto-fields-done-local): Keep track of | 2436 | * mh-comp.el (mh-insert-auto-fields-done-local): Keep track of |
| @@ -3153,7 +3158,7 @@ | |||
| 3153 | * mh-e.el (mh-folder-map): Add "F'" to the map for | 3158 | * mh-e.el (mh-folder-map): Add "F'" to the map for |
| 3154 | mh-index-ticked-messages. | 3159 | mh-index-ticked-messages. |
| 3155 | (mh-help-messages): Replace broken [t]hread with [n]ew messages. | 3160 | (mh-help-messages): Replace broken [t]hread with [n]ew messages. |
| 3156 | 3161 | ||
| 3157 | * mh-customize.el (mh-index-ticked-messages-folders): New user | 3162 | * mh-customize.el (mh-index-ticked-messages-folders): New user |
| 3158 | customizable flag that controls the folders to be searched by | 3163 | customizable flag that controls the folders to be searched by |
| 3159 | mh-index-ticked-messages. | 3164 | mh-index-ticked-messages. |
| @@ -3224,7 +3229,7 @@ | |||
| 3224 | * mh-unit.el (mh-unit): As it turns out, lm-crack-copyright has | 3229 | * mh-unit.el (mh-unit): As it turns out, lm-crack-copyright has |
| 3225 | been updated to handle multiple-line copyrights in 21.3, so | 3230 | been updated to handle multiple-line copyrights in 21.3, so |
| 3226 | updated code to run lm-verify only if user has 21.3 or greater. | 3231 | updated code to run lm-verify only if user has 21.3 or greater. |
| 3227 | Delete buffers after use, unless user already had buffer open. | 3232 | Delete buffers after use, unless user already had buffer open. |
| 3228 | 3233 | ||
| 3229 | 2003-04-27 Satyaki Das <satyakid@stanford.edu> | 3234 | 2003-04-27 Satyaki Das <satyakid@stanford.edu> |
| 3230 | 3235 | ||
| @@ -3433,7 +3438,7 @@ | |||
| 3433 | 'mh-customize'. | 3438 | 'mh-customize'. |
| 3434 | 3439 | ||
| 3435 | * mh-customize.el: Require 'mh-xemacs-icons' instead of | 3440 | * mh-customize.el: Require 'mh-xemacs-icons' instead of |
| 3436 | 'mh-xemacs-toolbar'. | 3441 | 'mh-xemacs-toolbar'. |
| 3437 | 3442 | ||
| 3438 | 2003-04-17 Peter S Galbraith <psg@debian.org> | 3443 | 2003-04-17 Peter S Galbraith <psg@debian.org> |
| 3439 | 3444 | ||
| @@ -10928,9 +10933,9 @@ | |||
| 10928 | $(EMACS_HOME)/src. | 10933 | $(EMACS_HOME)/src. |
| 10929 | (dist): Leave release in current directory. | 10934 | (dist): Leave release in current directory. |
| 10930 | 10935 | ||
| 10931 | 10936 | ||
| 10932 | Copyright (C) 2003, 2004 Free Software Foundation, Inc. | 10937 | Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. |
| 10933 | 10938 | ||
| 10934 | Copying and distribution of this file, with or without modification, | 10939 | Copying and distribution of this file, with or without modification, |
| 10935 | are permitted in any medium without royalty provided the copyright | 10940 | are permitted in any medium without royalty provided the copyright |
| 10936 | notice and this notice are preserved. | 10941 | notice and this notice are preserved. |
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el index 622c457897f..c9a4b11702d 100644 --- a/lisp/mh-e/mh-customize.el +++ b/lisp/mh-e/mh-customize.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; mh-customize.el --- MH-E customization | 1 | ;;; mh-customize.el --- MH-E customization |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Bill Wohler <wohler@newt.com> | 5 | ;; Author: Bill Wohler <wohler@newt.com> |
| 6 | ;; Maintainer: Bill Wohler <wohler@newt.com> | 6 | ;; Maintainer: Bill Wohler <wohler@newt.com> |
| @@ -2345,9 +2345,9 @@ The background and foreground is used in the image." | |||
| 2345 | 2345 | ||
| 2346 | (defface mh-speedbar-selected-folder-face | 2346 | (defface mh-speedbar-selected-folder-face |
| 2347 | '((((class color) (background light)) | 2347 | '((((class color) (background light)) |
| 2348 | (:foreground "red" :underline t)) | 2348 | (:foreground "red1" :underline t)) |
| 2349 | (((class color) (background dark)) | 2349 | (((class color) (background dark)) |
| 2350 | (:foreground "red" :underline t)) | 2350 | (:foreground "red1" :underline t)) |
| 2351 | (t (:underline t))) | 2351 | (t (:underline t))) |
| 2352 | "Face used for the current folder." | 2352 | "Face used for the current folder." |
| 2353 | :group 'mh-speed-faces) | 2353 | :group 'mh-speed-faces) |
diff --git a/lisp/mouse.el b/lisp/mouse.el index a409efadeca..a527b040d8a 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -788,8 +788,7 @@ POS may be a mouse event location in any window. | |||
| 788 | A clickable link is identified by one of the following methods: | 788 | A clickable link is identified by one of the following methods: |
| 789 | 789 | ||
| 790 | - If the character at POS has a non-nil `follow-link' text or | 790 | - If the character at POS has a non-nil `follow-link' text or |
| 791 | overlay property, use the value of that property determines what | 791 | overlay property, the value of that property determines what to do. |
| 792 | to do. | ||
| 793 | 792 | ||
| 794 | - If there is a local key-binding or a keybinding at position POS | 793 | - If there is a local key-binding or a keybinding at position POS |
| 795 | for the `follow-link' event, the binding of that event determines | 794 | for the `follow-link' event, the binding of that event determines |
diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el index 77e165b2462..0f66099c46f 100644 --- a/lisp/pcvs-info.el +++ b/lisp/pcvs-info.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; pcvs-info.el --- internal representation of a fileinfo entry | 1 | ;;; pcvs-info.el --- internal representation of a fileinfo entry |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | 3 | ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
| 4 | ;; 2000, 2004 Free Software Foundation, Inc. | 4 | ;; 2000, 2004, 2005 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> | 6 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> |
| 7 | ;; Keywords: pcl-cvs | 7 | ;; Keywords: pcl-cvs |
| @@ -105,7 +105,9 @@ to confuse some users sometimes." | |||
| 105 | :group 'pcl-cvs) | 105 | :group 'pcl-cvs) |
| 106 | 106 | ||
| 107 | (defface cvs-marked-face | 107 | (defface cvs-marked-face |
| 108 | '((((class color) (background dark)) | 108 | '((((min-colors 88) (class color) (background dark)) |
| 109 | (:foreground "green1" :weight bold)) | ||
| 110 | (((class color) (background dark)) | ||
| 109 | (:foreground "green" :weight bold)) | 111 | (:foreground "green" :weight bold)) |
| 110 | (((class color) (background light)) | 112 | (((class color) (background light)) |
| 111 | (:foreground "green3" :weight bold)) | 113 | (:foreground "green3" :weight bold)) |
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index c5bbfaf86dd..8ca47af91f4 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; cc-fonts.el --- font lock support for CC Mode | 1 | ;;; cc-fonts.el --- font lock support for CC Mode |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 03 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Authors: 2003- Alan Mackenzie | 5 | ;; Authors: 2003- Alan Mackenzie |
| 6 | ;; 2002- Martin Stjernholm | 6 | ;; 2002- Martin Stjernholm |
| @@ -194,7 +194,7 @@ | |||
| 194 | (unless (c-face-name-p c-invalid-face-name) | 194 | (unless (c-face-name-p c-invalid-face-name) |
| 195 | (defconst c-invalid-face 'c-invalid-face) ; Necessary in Emacs 19. | 195 | (defconst c-invalid-face 'c-invalid-face) ; Necessary in Emacs 19. |
| 196 | (defface c-invalid-face | 196 | (defface c-invalid-face |
| 197 | '((((class color) (background light)) (:foreground "red")) | 197 | '((((class color) (background light)) (:foreground "red1")) |
| 198 | (((class color)) (:foreground "hotpink")) | 198 | (((class color)) (:foreground "hotpink")) |
| 199 | (t (:inverse-video t))) | 199 | (t (:inverse-video t))) |
| 200 | "Face used to highlight invalid syntax." | 200 | "Face used to highlight invalid syntax." |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index bcff4d2f70d..129a01f5498 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; compile.el --- run compiler as inferior of Emacs, parse error messages | 1 | ;;; compile.el --- run compiler as inferior of Emacs, parse error messages |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | 3 | ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
| 4 | ;; 2001, 2003, 2004 Free Software Foundation, Inc. | 4 | ;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Authors: Roland McGrath <roland@gnu.org>, | 6 | ;; Authors: Roland McGrath <roland@gnu.org>, |
| 7 | ;; Daniel Pfeiffer <occitan@esperanto.org> | 7 | ;; Daniel Pfeiffer <occitan@esperanto.org> |
| @@ -280,7 +280,18 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" | |||
| 280 | 280 | ||
| 281 | (4bsd | 281 | (4bsd |
| 282 | "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\ | 282 | "\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\ |
| 283 | \\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))) | 283 | \\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3)) |
| 284 | |||
| 285 | (gcov-file | ||
| 286 | "^ +-: \\(0\\):Source:\\(.+\\)$" 2 1 nil 0) | ||
| 287 | (gcov-bb-file | ||
| 288 | "^ +-: \\(0\\):Object:\\(?:.+\\)$" nil 1 nil 0) | ||
| 289 | (gcov-never-called-line | ||
| 290 | "^ +\\(#####\\): +\\([0-9]+\\):.+$" nil 2 nil 2 nil | ||
| 291 | (1 compilation-error-face)) | ||
| 292 | (gcov-called-line | ||
| 293 | "^ +[-0-9]+: +\\([1-9]\\|[0-9]\\{2,\\}\\):.*$" nil 1 nil 0) | ||
| 294 | ) | ||
| 284 | "Alist of values for `compilation-error-regexp-alist'.") | 295 | "Alist of values for `compilation-error-regexp-alist'.") |
| 285 | 296 | ||
| 286 | (defcustom compilation-error-regexp-alist | 297 | (defcustom compilation-error-regexp-alist |
| @@ -464,6 +475,8 @@ starting the compilation process.") | |||
| 464 | (defface compilation-info-face | 475 | (defface compilation-info-face |
| 465 | '((((class color) (min-colors 16) (background light)) | 476 | '((((class color) (min-colors 16) (background light)) |
| 466 | (:foreground "Green3" :weight bold)) | 477 | (:foreground "Green3" :weight bold)) |
| 478 | (((class color) (min-colors 88) (background dark)) | ||
| 479 | (:foreground "Green1" :weight bold)) | ||
| 467 | (((class color) (min-colors 16) (background dark)) | 480 | (((class color) (min-colors 16) (background dark)) |
| 468 | (:foreground "Green" :weight bold)) | 481 | (:foreground "Green" :weight bold)) |
| 469 | (((class color)) (:foreground "green" :weight bold)) | 482 | (((class color)) (:foreground "green" :weight bold)) |
| @@ -1844,6 +1857,9 @@ FILE should be (ABSOLUTE-FILENAME) or (RELATIVE-FILENAME . DIRNAME)." | |||
| 1844 | ;; don't use a marker. --Stef | 1857 | ;; don't use a marker. --Stef |
| 1845 | (if (> pos (point-min)) (copy-marker (1- pos)) pos)))) | 1858 | (if (> pos (point-min)) (copy-marker (1- pos)) pos)))) |
| 1846 | 1859 | ||
| 1860 | ;;;###autoload | ||
| 1861 | (add-to-list 'auto-mode-alist '("\\.gcov\\'" . compilation-mode)) | ||
| 1862 | |||
| 1847 | (provide 'compile) | 1863 | (provide 'compile) |
| 1848 | 1864 | ||
| 1849 | ;; arch-tag: 12465727-7382-4f72-b234-79855a00dd8c | 1865 | ;; arch-tag: 12465727-7382-4f72-b234-79855a00dd8c |
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index bf11ea28514..ac8ab28d92a 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; ebrowse.el --- Emacs C++ class browser & tags facility | 1 | ;;; ebrowse.el --- Emacs C++ class browser & tags facility |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 | 3 | ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2005 |
| 4 | ;; Free Software Foundation Inc. | 4 | ;; Free Software Foundation Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Gerd Moellmann <gerd@gnu.org> | 6 | ;; Author: Gerd Moellmann <gerd@gnu.org> |
| @@ -158,13 +158,15 @@ This space is used to display markers." | |||
| 158 | 158 | ||
| 159 | 159 | ||
| 160 | (defface ebrowse-tree-mark-face | 160 | (defface ebrowse-tree-mark-face |
| 161 | '((t (:foreground "red"))) | 161 | '((((min-colors 88)) (:foreground "red1")) |
| 162 | (t (:foreground "red"))) | ||
| 162 | "*The face used for the mark character in the tree." | 163 | "*The face used for the mark character in the tree." |
| 163 | :group 'ebrowse-faces) | 164 | :group 'ebrowse-faces) |
| 164 | 165 | ||
| 165 | 166 | ||
| 166 | (defface ebrowse-root-class-face | 167 | (defface ebrowse-root-class-face |
| 167 | '((t (:weight bold :foreground "blue"))) | 168 | '((((min-colors 88)) (:weight bold :foreground "blue1")) |
| 169 | (t (:weight bold :foreground "blue"))) | ||
| 168 | "*The face used for root classes in the tree." | 170 | "*The face used for root classes in the tree." |
| 169 | :group 'ebrowse-faces) | 171 | :group 'ebrowse-faces) |
| 170 | 172 | ||
| @@ -182,7 +184,8 @@ This space is used to display markers." | |||
| 182 | 184 | ||
| 183 | 185 | ||
| 184 | (defface ebrowse-member-attribute-face | 186 | (defface ebrowse-member-attribute-face |
| 185 | '((t (:foreground "red"))) | 187 | '((((min-colors 88)) (:foreground "red1")) |
| 188 | (t (:foreground "red"))) | ||
| 186 | "*Face used to display member attributes." | 189 | "*Face used to display member attributes." |
| 187 | :group 'ebrowse-faces) | 190 | :group 'ebrowse-faces) |
| 188 | 191 | ||
| @@ -194,7 +197,8 @@ This space is used to display markers." | |||
| 194 | 197 | ||
| 195 | 198 | ||
| 196 | (defface ebrowse-progress-face | 199 | (defface ebrowse-progress-face |
| 197 | '((t (:background "blue"))) | 200 | '((((min-colors 88)) (:background "blue1")) |
| 201 | (t (:background "blue"))) | ||
| 198 | "*Face for progress indicator." | 202 | "*Face for progress indicator." |
| 199 | :group 'ebrowse-faces) | 203 | :group 'ebrowse-faces) |
| 200 | 204 | ||
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index 28f61b6cbcc..e3da5508342 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; idlw-help.el --- HTML Help code for IDLWAVE | 1 | ;;; idlw-help.el --- HTML Help code for IDLWAVE |
| 2 | ;; Copyright (c) 2000 Carsten Dominik | 2 | ;; Copyright (c) 2000 Carsten Dominik |
| 3 | ;; Copyright (c) 2001, 2002 J.D. Smith | 3 | ;; Copyright (c) 2001, 2002 J.D. Smith |
| 4 | ;; Copyright (c) 2003,2004 Free Software Foundation | 4 | ;; Copyright (c) 2003,2004,2005 Free Software Foundation |
| 5 | ;; | 5 | ;; |
| 6 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> | 6 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> |
| 7 | ;; Carsten Dominik <dominik@astro.uva.nl> | 7 | ;; Carsten Dominik <dominik@astro.uva.nl> |
| @@ -183,7 +183,8 @@ support." | |||
| 183 | :type 'string) | 183 | :type 'string) |
| 184 | 184 | ||
| 185 | (defface idlwave-help-link-face | 185 | (defface idlwave-help-link-face |
| 186 | '((((class color)) (:foreground "Blue")) | 186 | '((((min-colors 88) (class color)) (:foreground "Blue1")) |
| 187 | (((class color)) (:foreground "Blue")) | ||
| 187 | (t (:weight bold))) | 188 | (t (:weight bold))) |
| 188 | "Face for highlighting links into IDLWAVE online help." | 189 | "Face for highlighting links into IDLWAVE online help." |
| 189 | :group 'idlwave-online-help) | 190 | :group 'idlwave-online-help) |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 8579cccb0c2..7015c0d943d 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -779,7 +779,10 @@ See `sh-feature'.") | |||
| 779 | ;; Font-Lock support | 779 | ;; Font-Lock support |
| 780 | 780 | ||
| 781 | (defface sh-heredoc-face | 781 | (defface sh-heredoc-face |
| 782 | '((((class color) | 782 | '((((min-colors 88) (class color) |
| 783 | (background dark)) | ||
| 784 | (:foreground "yellow1" :weight bold)) | ||
| 785 | (((class color) | ||
| 783 | (background dark)) | 786 | (background dark)) |
| 784 | (:foreground "yellow" :weight bold)) | 787 | (:foreground "yellow" :weight bold)) |
| 785 | (((class color) | 788 | (((class color) |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 7e30a816e15..9f0e63e80a6 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -2039,7 +2039,7 @@ Ignore byte-compiler warnings you might see." | |||
| 2039 | 2039 | ||
| 2040 | (defun vhdl-run-when-idle (secs repeat function) | 2040 | (defun vhdl-run-when-idle (secs repeat function) |
| 2041 | "Wait until idle, then run FUNCTION." | 2041 | "Wait until idle, then run FUNCTION." |
| 2042 | (if vhdl-xemacs | 2042 | (if (fboundp 'start-itimer) |
| 2043 | (start-itimer "vhdl-mode" function secs repeat t) | 2043 | (start-itimer "vhdl-mode" function secs repeat t) |
| 2044 | ; (run-with-idle-timer secs repeat function))) | 2044 | ; (run-with-idle-timer secs repeat function))) |
| 2045 | ;; explicitely activate timer (necessary when Emacs is already idle) | 2045 | ;; explicitely activate timer (necessary when Emacs is already idle) |
| @@ -2679,7 +2679,9 @@ STRING are replaced by `-' and substrings are converted to lower case." | |||
| 2679 | (define-key vhdl-mode-map " " 'vhdl-electric-space) | 2679 | (define-key vhdl-mode-map " " 'vhdl-electric-space) |
| 2680 | (if vhdl-intelligent-tab | 2680 | (if vhdl-intelligent-tab |
| 2681 | (define-key vhdl-mode-map "\t" 'vhdl-electric-tab) | 2681 | (define-key vhdl-mode-map "\t" 'vhdl-electric-tab) |
| 2682 | (define-key vhdl-mode-map "\t" 'indent-according-to-mode)) | 2682 | ;; The default binding of TAB already calls `indent-according-to-mode'. |
| 2683 | ;; (define-key vhdl-mode-map "\t" 'indent-according-to-mode) | ||
| 2684 | ) | ||
| 2683 | (define-key vhdl-mode-map "\r" 'vhdl-electric-return) | 2685 | (define-key vhdl-mode-map "\r" 'vhdl-electric-return) |
| 2684 | (define-key vhdl-mode-map "-" 'vhdl-electric-dash) | 2686 | (define-key vhdl-mode-map "-" 'vhdl-electric-dash) |
| 2685 | (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket) | 2687 | (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket) |
| @@ -2696,12 +2698,14 @@ STRING are replaced by `-' and substrings are converted to lower case." | |||
| 2696 | 2698 | ||
| 2697 | ;; define special minibuffer keymap for enabling word completion in minibuffer | 2699 | ;; define special minibuffer keymap for enabling word completion in minibuffer |
| 2698 | ;; (useful in template generator prompts) | 2700 | ;; (useful in template generator prompts) |
| 2699 | (defvar vhdl-minibuffer-local-map (copy-keymap minibuffer-local-map) | 2701 | (defvar vhdl-minibuffer-local-map |
| 2702 | (let ((map (make-sparse-keymap))) | ||
| 2703 | (set-keymap-parent map minibuffer-local-map) | ||
| 2704 | (when vhdl-word-completion-in-minibuffer | ||
| 2705 | (define-key map "\t" 'vhdl-minibuffer-tab)) | ||
| 2706 | map) | ||
| 2700 | "Keymap for minibuffer used in VHDL Mode.") | 2707 | "Keymap for minibuffer used in VHDL Mode.") |
| 2701 | 2708 | ||
| 2702 | (when vhdl-word-completion-in-minibuffer | ||
| 2703 | (define-key vhdl-minibuffer-local-map "\t" 'vhdl-minibuffer-tab)) | ||
| 2704 | |||
| 2705 | ;; set up electric character functions to work with | 2709 | ;; set up electric character functions to work with |
| 2706 | ;; `delete-selection-mode' (Emacs) and `pending-delete-mode' (XEmacs) | 2710 | ;; `delete-selection-mode' (Emacs) and `pending-delete-mode' (XEmacs) |
| 2707 | (mapcar | 2711 | (mapcar |
| @@ -2792,134 +2796,134 @@ STRING are replaced by `-' and substrings are converted to lower case." | |||
| 2792 | (when (memq 'vhdl vhdl-electric-keywords) | 2796 | (when (memq 'vhdl vhdl-electric-keywords) |
| 2793 | ;; VHDL'93 keywords | 2797 | ;; VHDL'93 keywords |
| 2794 | '( | 2798 | '( |
| 2795 | ("--" "" vhdl-template-display-comment-hook 0) | 2799 | ("--" "" vhdl-template-display-comment-hook 0 t) |
| 2796 | ("abs" "" vhdl-template-default-hook 0) | 2800 | ("abs" "" vhdl-template-default-hook 0 t) |
| 2797 | ("access" "" vhdl-template-default-hook 0) | 2801 | ("access" "" vhdl-template-default-hook 0 t) |
| 2798 | ("after" "" vhdl-template-default-hook 0) | 2802 | ("after" "" vhdl-template-default-hook 0 t) |
| 2799 | ("alias" "" vhdl-template-alias-hook 0) | 2803 | ("alias" "" vhdl-template-alias-hook 0 t) |
| 2800 | ("all" "" vhdl-template-default-hook 0) | 2804 | ("all" "" vhdl-template-default-hook 0 t) |
| 2801 | ("and" "" vhdl-template-default-hook 0) | 2805 | ("and" "" vhdl-template-default-hook 0 t) |
| 2802 | ("arch" "" vhdl-template-architecture-hook 0) | 2806 | ("arch" "" vhdl-template-architecture-hook 0 t) |
| 2803 | ("architecture" "" vhdl-template-architecture-hook 0) | 2807 | ("architecture" "" vhdl-template-architecture-hook 0 t) |
| 2804 | ("array" "" vhdl-template-default-hook 0) | 2808 | ("array" "" vhdl-template-default-hook 0 t) |
| 2805 | ("assert" "" vhdl-template-assert-hook 0) | 2809 | ("assert" "" vhdl-template-assert-hook 0 t) |
| 2806 | ("attr" "" vhdl-template-attribute-hook 0) | 2810 | ("attr" "" vhdl-template-attribute-hook 0 t) |
| 2807 | ("attribute" "" vhdl-template-attribute-hook 0) | 2811 | ("attribute" "" vhdl-template-attribute-hook 0 t) |
| 2808 | ("begin" "" vhdl-template-default-indent-hook 0) | 2812 | ("begin" "" vhdl-template-default-indent-hook 0 t) |
| 2809 | ("block" "" vhdl-template-block-hook 0) | 2813 | ("block" "" vhdl-template-block-hook 0 t) |
| 2810 | ("body" "" vhdl-template-default-hook 0) | 2814 | ("body" "" vhdl-template-default-hook 0 t) |
| 2811 | ("buffer" "" vhdl-template-default-hook 0) | 2815 | ("buffer" "" vhdl-template-default-hook 0 t) |
| 2812 | ("bus" "" vhdl-template-default-hook 0) | 2816 | ("bus" "" vhdl-template-default-hook 0 t) |
| 2813 | ("case" "" vhdl-template-case-hook 0) | 2817 | ("case" "" vhdl-template-case-hook 0 t) |
| 2814 | ("comp" "" vhdl-template-component-hook 0) | 2818 | ("comp" "" vhdl-template-component-hook 0 t) |
| 2815 | ("component" "" vhdl-template-component-hook 0) | 2819 | ("component" "" vhdl-template-component-hook 0 t) |
| 2816 | ("cond" "" vhdl-template-conditional-signal-asst-hook 0) | 2820 | ("cond" "" vhdl-template-conditional-signal-asst-hook 0 t) |
| 2817 | ("conditional" "" vhdl-template-conditional-signal-asst-hook 0) | 2821 | ("conditional" "" vhdl-template-conditional-signal-asst-hook 0 t) |
| 2818 | ("conf" "" vhdl-template-configuration-hook 0) | 2822 | ("conf" "" vhdl-template-configuration-hook 0 t) |
| 2819 | ("configuration" "" vhdl-template-configuration-hook 0) | 2823 | ("configuration" "" vhdl-template-configuration-hook 0 t) |
| 2820 | ("cons" "" vhdl-template-constant-hook 0) | 2824 | ("cons" "" vhdl-template-constant-hook 0 t) |
| 2821 | ("constant" "" vhdl-template-constant-hook 0) | 2825 | ("constant" "" vhdl-template-constant-hook 0 t) |
| 2822 | ("disconnect" "" vhdl-template-disconnect-hook 0) | 2826 | ("disconnect" "" vhdl-template-disconnect-hook 0 t) |
| 2823 | ("downto" "" vhdl-template-default-hook 0) | 2827 | ("downto" "" vhdl-template-default-hook 0 t) |
| 2824 | ("else" "" vhdl-template-else-hook 0) | 2828 | ("else" "" vhdl-template-else-hook 0 t) |
| 2825 | ("elseif" "" vhdl-template-elsif-hook 0) | 2829 | ("elseif" "" vhdl-template-elsif-hook 0 t) |
| 2826 | ("elsif" "" vhdl-template-elsif-hook 0) | 2830 | ("elsif" "" vhdl-template-elsif-hook 0 t) |
| 2827 | ("end" "" vhdl-template-default-indent-hook 0) | 2831 | ("end" "" vhdl-template-default-indent-hook 0 t) |
| 2828 | ("entity" "" vhdl-template-entity-hook 0) | 2832 | ("entity" "" vhdl-template-entity-hook 0 t) |
| 2829 | ("exit" "" vhdl-template-exit-hook 0) | 2833 | ("exit" "" vhdl-template-exit-hook 0 t) |
| 2830 | ("file" "" vhdl-template-file-hook 0) | 2834 | ("file" "" vhdl-template-file-hook 0 t) |
| 2831 | ("for" "" vhdl-template-for-hook 0) | 2835 | ("for" "" vhdl-template-for-hook 0 t) |
| 2832 | ("func" "" vhdl-template-function-hook 0) | 2836 | ("func" "" vhdl-template-function-hook 0 t) |
| 2833 | ("function" "" vhdl-template-function-hook 0) | 2837 | ("function" "" vhdl-template-function-hook 0 t) |
| 2834 | ("generic" "" vhdl-template-generic-hook 0) | 2838 | ("generic" "" vhdl-template-generic-hook 0 t) |
| 2835 | ("group" "" vhdl-template-group-hook 0) | 2839 | ("group" "" vhdl-template-group-hook 0 t) |
| 2836 | ("guarded" "" vhdl-template-default-hook 0) | 2840 | ("guarded" "" vhdl-template-default-hook 0 t) |
| 2837 | ("if" "" vhdl-template-if-hook 0) | 2841 | ("if" "" vhdl-template-if-hook 0 t) |
| 2838 | ("impure" "" vhdl-template-default-hook 0) | 2842 | ("impure" "" vhdl-template-default-hook 0 t) |
| 2839 | ("in" "" vhdl-template-default-hook 0) | 2843 | ("in" "" vhdl-template-default-hook 0 t) |
| 2840 | ("inertial" "" vhdl-template-default-hook 0) | 2844 | ("inertial" "" vhdl-template-default-hook 0 t) |
| 2841 | ("inout" "" vhdl-template-default-hook 0) | 2845 | ("inout" "" vhdl-template-default-hook 0 t) |
| 2842 | ("inst" "" vhdl-template-instance-hook 0) | 2846 | ("inst" "" vhdl-template-instance-hook 0 t) |
| 2843 | ("instance" "" vhdl-template-instance-hook 0) | 2847 | ("instance" "" vhdl-template-instance-hook 0 t) |
| 2844 | ("is" "" vhdl-template-default-hook 0) | 2848 | ("is" "" vhdl-template-default-hook 0 t) |
| 2845 | ("label" "" vhdl-template-default-hook 0) | 2849 | ("label" "" vhdl-template-default-hook 0 t) |
| 2846 | ("library" "" vhdl-template-library-hook 0) | 2850 | ("library" "" vhdl-template-library-hook 0 t) |
| 2847 | ("linkage" "" vhdl-template-default-hook 0) | 2851 | ("linkage" "" vhdl-template-default-hook 0 t) |
| 2848 | ("literal" "" vhdl-template-default-hook 0) | 2852 | ("literal" "" vhdl-template-default-hook 0 t) |
| 2849 | ("loop" "" vhdl-template-bare-loop-hook 0) | 2853 | ("loop" "" vhdl-template-bare-loop-hook 0 t) |
| 2850 | ("map" "" vhdl-template-map-hook 0) | 2854 | ("map" "" vhdl-template-map-hook 0 t) |
| 2851 | ("mod" "" vhdl-template-default-hook 0) | 2855 | ("mod" "" vhdl-template-default-hook 0 t) |
| 2852 | ("nand" "" vhdl-template-default-hook 0) | 2856 | ("nand" "" vhdl-template-default-hook 0 t) |
| 2853 | ("new" "" vhdl-template-default-hook 0) | 2857 | ("new" "" vhdl-template-default-hook 0 t) |
| 2854 | ("next" "" vhdl-template-next-hook 0) | 2858 | ("next" "" vhdl-template-next-hook 0 t) |
| 2855 | ("nor" "" vhdl-template-default-hook 0) | 2859 | ("nor" "" vhdl-template-default-hook 0 t) |
| 2856 | ("not" "" vhdl-template-default-hook 0) | 2860 | ("not" "" vhdl-template-default-hook 0 t) |
| 2857 | ("null" "" vhdl-template-default-hook 0) | 2861 | ("null" "" vhdl-template-default-hook 0 t) |
| 2858 | ("of" "" vhdl-template-default-hook 0) | 2862 | ("of" "" vhdl-template-default-hook 0 t) |
| 2859 | ("on" "" vhdl-template-default-hook 0) | 2863 | ("on" "" vhdl-template-default-hook 0 t) |
| 2860 | ("open" "" vhdl-template-default-hook 0) | 2864 | ("open" "" vhdl-template-default-hook 0 t) |
| 2861 | ("or" "" vhdl-template-default-hook 0) | 2865 | ("or" "" vhdl-template-default-hook 0 t) |
| 2862 | ("others" "" vhdl-template-others-hook 0) | 2866 | ("others" "" vhdl-template-others-hook 0 t) |
| 2863 | ("out" "" vhdl-template-default-hook 0) | 2867 | ("out" "" vhdl-template-default-hook 0 t) |
| 2864 | ("pack" "" vhdl-template-package-hook 0) | 2868 | ("pack" "" vhdl-template-package-hook 0 t) |
| 2865 | ("package" "" vhdl-template-package-hook 0) | 2869 | ("package" "" vhdl-template-package-hook 0 t) |
| 2866 | ("port" "" vhdl-template-port-hook 0) | 2870 | ("port" "" vhdl-template-port-hook 0 t) |
| 2867 | ("postponed" "" vhdl-template-default-hook 0) | 2871 | ("postponed" "" vhdl-template-default-hook 0 t) |
| 2868 | ("procedure" "" vhdl-template-procedure-hook 0) | 2872 | ("procedure" "" vhdl-template-procedure-hook 0 t) |
| 2869 | ("process" "" vhdl-template-process-hook 0) | 2873 | ("process" "" vhdl-template-process-hook 0 t) |
| 2870 | ("pure" "" vhdl-template-default-hook 0) | 2874 | ("pure" "" vhdl-template-default-hook 0 t) |
| 2871 | ("range" "" vhdl-template-default-hook 0) | 2875 | ("range" "" vhdl-template-default-hook 0 t) |
| 2872 | ("record" "" vhdl-template-default-hook 0) | 2876 | ("record" "" vhdl-template-default-hook 0 t) |
| 2873 | ("register" "" vhdl-template-default-hook 0) | 2877 | ("register" "" vhdl-template-default-hook 0 t) |
| 2874 | ("reject" "" vhdl-template-default-hook 0) | 2878 | ("reject" "" vhdl-template-default-hook 0 t) |
| 2875 | ("rem" "" vhdl-template-default-hook 0) | 2879 | ("rem" "" vhdl-template-default-hook 0 t) |
| 2876 | ("report" "" vhdl-template-report-hook 0) | 2880 | ("report" "" vhdl-template-report-hook 0 t) |
| 2877 | ("return" "" vhdl-template-return-hook 0) | 2881 | ("return" "" vhdl-template-return-hook 0 t) |
| 2878 | ("rol" "" vhdl-template-default-hook 0) | 2882 | ("rol" "" vhdl-template-default-hook 0 t) |
| 2879 | ("ror" "" vhdl-template-default-hook 0) | 2883 | ("ror" "" vhdl-template-default-hook 0 t) |
| 2880 | ("select" "" vhdl-template-selected-signal-asst-hook 0) | 2884 | ("select" "" vhdl-template-selected-signal-asst-hook 0 t) |
| 2881 | ("severity" "" vhdl-template-default-hook 0) | 2885 | ("severity" "" vhdl-template-default-hook 0 t) |
| 2882 | ("shared" "" vhdl-template-default-hook 0) | 2886 | ("shared" "" vhdl-template-default-hook 0 t) |
| 2883 | ("sig" "" vhdl-template-signal-hook 0) | 2887 | ("sig" "" vhdl-template-signal-hook 0 t) |
| 2884 | ("signal" "" vhdl-template-signal-hook 0) | 2888 | ("signal" "" vhdl-template-signal-hook 0 t) |
| 2885 | ("sla" "" vhdl-template-default-hook 0) | 2889 | ("sla" "" vhdl-template-default-hook 0 t) |
| 2886 | ("sll" "" vhdl-template-default-hook 0) | 2890 | ("sll" "" vhdl-template-default-hook 0 t) |
| 2887 | ("sra" "" vhdl-template-default-hook 0) | 2891 | ("sra" "" vhdl-template-default-hook 0 t) |
| 2888 | ("srl" "" vhdl-template-default-hook 0) | 2892 | ("srl" "" vhdl-template-default-hook 0 t) |
| 2889 | ("subtype" "" vhdl-template-subtype-hook 0) | 2893 | ("subtype" "" vhdl-template-subtype-hook 0 t) |
| 2890 | ("then" "" vhdl-template-default-hook 0) | 2894 | ("then" "" vhdl-template-default-hook 0 t) |
| 2891 | ("to" "" vhdl-template-default-hook 0) | 2895 | ("to" "" vhdl-template-default-hook 0 t) |
| 2892 | ("transport" "" vhdl-template-default-hook 0) | 2896 | ("transport" "" vhdl-template-default-hook 0 t) |
| 2893 | ("type" "" vhdl-template-type-hook 0) | 2897 | ("type" "" vhdl-template-type-hook 0 t) |
| 2894 | ("unaffected" "" vhdl-template-default-hook 0) | 2898 | ("unaffected" "" vhdl-template-default-hook 0 t) |
| 2895 | ("units" "" vhdl-template-default-hook 0) | 2899 | ("units" "" vhdl-template-default-hook 0 t) |
| 2896 | ("until" "" vhdl-template-default-hook 0) | 2900 | ("until" "" vhdl-template-default-hook 0 t) |
| 2897 | ("use" "" vhdl-template-use-hook 0) | 2901 | ("use" "" vhdl-template-use-hook 0 t) |
| 2898 | ("var" "" vhdl-template-variable-hook 0) | 2902 | ("var" "" vhdl-template-variable-hook 0 t) |
| 2899 | ("variable" "" vhdl-template-variable-hook 0) | 2903 | ("variable" "" vhdl-template-variable-hook 0 t) |
| 2900 | ("wait" "" vhdl-template-wait-hook 0) | 2904 | ("wait" "" vhdl-template-wait-hook 0 t) |
| 2901 | ("when" "" vhdl-template-when-hook 0) | 2905 | ("when" "" vhdl-template-when-hook 0 t) |
| 2902 | ("while" "" vhdl-template-while-loop-hook 0) | 2906 | ("while" "" vhdl-template-while-loop-hook 0 t) |
| 2903 | ("with" "" vhdl-template-with-hook 0) | 2907 | ("with" "" vhdl-template-with-hook 0 t) |
| 2904 | ("xnor" "" vhdl-template-default-hook 0) | 2908 | ("xnor" "" vhdl-template-default-hook 0 t) |
| 2905 | ("xor" "" vhdl-template-default-hook 0) | 2909 | ("xor" "" vhdl-template-default-hook 0 t) |
| 2906 | )) | 2910 | )) |
| 2907 | ;; VHDL-AMS keywords | 2911 | ;; VHDL-AMS keywords |
| 2908 | (when (and (memq 'vhdl vhdl-electric-keywords) (vhdl-standard-p 'ams)) | 2912 | (when (and (memq 'vhdl vhdl-electric-keywords) (vhdl-standard-p 'ams)) |
| 2909 | '( | 2913 | '( |
| 2910 | ("across" "" vhdl-template-default-hook 0) | 2914 | ("across" "" vhdl-template-default-hook 0 t) |
| 2911 | ("break" "" vhdl-template-break-hook 0) | 2915 | ("break" "" vhdl-template-break-hook 0 t) |
| 2912 | ("limit" "" vhdl-template-limit-hook 0) | 2916 | ("limit" "" vhdl-template-limit-hook 0 t) |
| 2913 | ("nature" "" vhdl-template-nature-hook 0) | 2917 | ("nature" "" vhdl-template-nature-hook 0 t) |
| 2914 | ("noise" "" vhdl-template-default-hook 0) | 2918 | ("noise" "" vhdl-template-default-hook 0 t) |
| 2915 | ("procedural" "" vhdl-template-procedural-hook 0) | 2919 | ("procedural" "" vhdl-template-procedural-hook 0 t) |
| 2916 | ("quantity" "" vhdl-template-quantity-hook 0) | 2920 | ("quantity" "" vhdl-template-quantity-hook 0 t) |
| 2917 | ("reference" "" vhdl-template-default-hook 0) | 2921 | ("reference" "" vhdl-template-default-hook 0 t) |
| 2918 | ("spectrum" "" vhdl-template-default-hook 0) | 2922 | ("spectrum" "" vhdl-template-default-hook 0 t) |
| 2919 | ("subnature" "" vhdl-template-subnature-hook 0) | 2923 | ("subnature" "" vhdl-template-subnature-hook 0 t) |
| 2920 | ("terminal" "" vhdl-template-terminal-hook 0) | 2924 | ("terminal" "" vhdl-template-terminal-hook 0 t) |
| 2921 | ("through" "" vhdl-template-default-hook 0) | 2925 | ("through" "" vhdl-template-default-hook 0 t) |
| 2922 | ("tolerance" "" vhdl-template-default-hook 0) | 2926 | ("tolerance" "" vhdl-template-default-hook 0 t) |
| 2923 | )) | 2927 | )) |
| 2924 | ;; user model keywords | 2928 | ;; user model keywords |
| 2925 | (when (memq 'user vhdl-electric-keywords) | 2929 | (when (memq 'user vhdl-electric-keywords) |
| @@ -2931,7 +2935,7 @@ STRING are replaced by `-' and substrings are converted to lower case." | |||
| 2931 | (setq abbrev-list | 2935 | (setq abbrev-list |
| 2932 | (cons (list keyword "" | 2936 | (cons (list keyword "" |
| 2933 | (vhdl-function-name | 2937 | (vhdl-function-name |
| 2934 | "vhdl-model" (nth 0 (car alist)) "hook") 0) | 2938 | "vhdl-model" (nth 0 (car alist)) "hook") 0 t) |
| 2935 | abbrev-list))) | 2939 | abbrev-list))) |
| 2936 | (setq alist (cdr alist))) | 2940 | (setq alist (cdr alist))) |
| 2937 | abbrev-list))))) | 2941 | abbrev-list))))) |
| @@ -3746,7 +3750,8 @@ STRING are replaced by `-' and substrings are converted to lower case." | |||
| 3746 | ("Highlight" | 3750 | ("Highlight" |
| 3747 | ["Highlighting On/Off..." | 3751 | ["Highlighting On/Off..." |
| 3748 | (customize-option | 3752 | (customize-option |
| 3749 | (if vhdl-xemacs 'font-lock-auto-fontify 'global-font-lock-mode)) t] | 3753 | (if (fboundp 'global-font-lock-mode) |
| 3754 | 'global-font-lock-mode 'font-lock-auto-fontify)) t] | ||
| 3750 | ["Highlight Keywords" | 3755 | ["Highlight Keywords" |
| 3751 | (progn (customize-set-variable 'vhdl-highlight-keywords | 3756 | (progn (customize-set-variable 'vhdl-highlight-keywords |
| 3752 | (not vhdl-highlight-keywords)) | 3757 | (not vhdl-highlight-keywords)) |
| @@ -7854,7 +7859,7 @@ Used for undoing after template abortion.") | |||
| 7854 | ;; correct different behavior of function `unread-command-events' in XEmacs | 7859 | ;; correct different behavior of function `unread-command-events' in XEmacs |
| 7855 | (defun vhdl-character-to-event (arg)) | 7860 | (defun vhdl-character-to-event (arg)) |
| 7856 | (defalias 'vhdl-character-to-event | 7861 | (defalias 'vhdl-character-to-event |
| 7857 | (if vhdl-xemacs 'character-to-event 'identity)) | 7862 | (if (fboundp 'character-to-event) 'character-to-event 'identity)) |
| 7858 | 7863 | ||
| 7859 | (defun vhdl-work-library () | 7864 | (defun vhdl-work-library () |
| 7860 | "Return the working library name of the current project or \"work\" if no | 7865 | "Return the working library name of the current project or \"work\" if no |
| @@ -10399,7 +10404,7 @@ but not if inside a comment or quote)." | |||
| 10399 | (when (stringp caught) (message caught))) | 10404 | (when (stringp caught) (message caught))) |
| 10400 | (when (= invoke-char ?-) (setq abbrev-start-location (point))) | 10405 | (when (= invoke-char ?-) (setq abbrev-start-location (point))) |
| 10401 | ;; delete CR which is still in event queue | 10406 | ;; delete CR which is still in event queue |
| 10402 | (if vhdl-xemacs | 10407 | (if (fboundp 'enqueue-eval-event) |
| 10403 | (enqueue-eval-event 'delete-char -1) | 10408 | (enqueue-eval-event 'delete-char -1) |
| 10404 | (setq unread-command-events ; push back a delete char | 10409 | (setq unread-command-events ; push back a delete char |
| 10405 | (list (vhdl-character-to-event ?\177)))))))) | 10410 | (list (vhdl-character-to-event ?\177)))))))) |
| @@ -11923,9 +11928,7 @@ options vhdl-upper-case-{keywords,types,attributes,enum-values}." | |||
| 11923 | "Return the line number of the line containing point." | 11928 | "Return the line number of the line containing point." |
| 11924 | (save-restriction | 11929 | (save-restriction |
| 11925 | (widen) | 11930 | (widen) |
| 11926 | (save-excursion | 11931 | (1+ (count-lines (point-min) (line-beginning-position))))) |
| 11927 | (beginning-of-line) | ||
| 11928 | (1+ (count-lines 1 (point)))))) | ||
| 11929 | 11932 | ||
| 11930 | (defun vhdl-line-kill-entire (&optional arg) | 11933 | (defun vhdl-line-kill-entire (&optional arg) |
| 11931 | "Delete entire line." | 11934 | "Delete entire line." |
| @@ -12593,7 +12596,9 @@ This does background highlighting of translate-off regions.") | |||
| 12593 | 'vhdl-highlight-faces 'font-lock-variable-name-face 'custom-face) | 12596 | 'vhdl-highlight-faces 'font-lock-variable-name-face 'custom-face) |
| 12594 | 12597 | ||
| 12595 | (defface vhdl-font-lock-prompt-face | 12598 | (defface vhdl-font-lock-prompt-face |
| 12596 | '((((class color) (background light)) (:foreground "Red" :bold t)) | 12599 | '((((min-colors 88) (class color) (background light)) |
| 12600 | (:foreground "Red1" :bold t)) | ||
| 12601 | (((class color) (background light)) (:foreground "Red" :bold t)) | ||
| 12597 | (((class color) (background dark)) (:foreground "Pink" :bold t)) | 12602 | (((class color) (background dark)) (:foreground "Pink" :bold t)) |
| 12598 | (t (:inverse-video t))) | 12603 | (t (:inverse-video t))) |
| 12599 | "Font lock mode face used to highlight prompts." | 12604 | "Font lock mode face used to highlight prompts." |
| @@ -12634,6 +12639,8 @@ This does background highlighting of translate-off regions.") | |||
| 12634 | 12639 | ||
| 12635 | (defface vhdl-font-lock-reserved-words-face | 12640 | (defface vhdl-font-lock-reserved-words-face |
| 12636 | '((((class color) (background light)) (:foreground "Orange" :bold t)) | 12641 | '((((class color) (background light)) (:foreground "Orange" :bold t)) |
| 12642 | (((min-colors 88) (class color) (background dark)) | ||
| 12643 | (:foreground "Yellow1" :bold t)) | ||
| 12637 | (((class color) (background dark)) (:foreground "Yellow" :bold t)) | 12644 | (((class color) (background dark)) (:foreground "Yellow" :bold t)) |
| 12638 | (t ())) | 12645 | (t ())) |
| 12639 | "Font lock mode face used to highlight additional reserved words." | 12646 | "Font lock mode face used to highlight additional reserved words." |
| @@ -14975,7 +14982,8 @@ expansion function)." | |||
| 14975 | :group 'speedbar-faces) | 14982 | :group 'speedbar-faces) |
| 14976 | 14983 | ||
| 14977 | (defface vhdl-speedbar-architecture-face | 14984 | (defface vhdl-speedbar-architecture-face |
| 14978 | '((((class color) (background light)) (:foreground "Blue")) | 14985 | '((((min-colors 88) (class color) (background light)) (:foreground "Blue1")) |
| 14986 | (((class color) (background light)) (:foreground "Blue")) | ||
| 14979 | (((class color) (background dark)) (:foreground "LightSkyBlue"))) | 14987 | (((class color) (background dark)) (:foreground "LightSkyBlue"))) |
| 14980 | "Face used for displaying architecture names." | 14988 | "Face used for displaying architecture names." |
| 14981 | :group 'speedbar-faces) | 14989 | :group 'speedbar-faces) |
| @@ -15000,6 +15008,7 @@ expansion function)." | |||
| 15000 | 15008 | ||
| 15001 | (defface vhdl-speedbar-instantiation-face | 15009 | (defface vhdl-speedbar-instantiation-face |
| 15002 | '((((class color) (background light)) (:foreground "Brown")) | 15010 | '((((class color) (background light)) (:foreground "Brown")) |
| 15011 | (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1")) | ||
| 15003 | (((class color) (background dark)) (:foreground "Yellow"))) | 15012 | (((class color) (background dark)) (:foreground "Yellow"))) |
| 15004 | "Face used for displaying instantiation names." | 15013 | "Face used for displaying instantiation names." |
| 15005 | :group 'speedbar-faces) | 15014 | :group 'speedbar-faces) |
| @@ -15017,7 +15026,9 @@ expansion function)." | |||
| 15017 | :group 'speedbar-faces) | 15026 | :group 'speedbar-faces) |
| 15018 | 15027 | ||
| 15019 | (defface vhdl-speedbar-architecture-selected-face | 15028 | (defface vhdl-speedbar-architecture-selected-face |
| 15020 | '((((class color) (background light)) (:foreground "Blue" :underline t)) | 15029 | '((((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t)) |
| 15030 | (((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t)) | ||
| 15031 | (((class color) (background light)) (:foreground "Blue" :underline t)) | ||
| 15021 | (((class color) (background dark)) (:foreground "LightSkyBlue" :underline t))) | 15032 | (((class color) (background dark)) (:foreground "LightSkyBlue" :underline t))) |
| 15022 | "Face used for displaying architecture names." | 15033 | "Face used for displaying architecture names." |
| 15023 | :group 'speedbar-faces) | 15034 | :group 'speedbar-faces) |
| @@ -15036,6 +15047,7 @@ expansion function)." | |||
| 15036 | 15047 | ||
| 15037 | (defface vhdl-speedbar-instantiation-selected-face | 15048 | (defface vhdl-speedbar-instantiation-selected-face |
| 15038 | '((((class color) (background light)) (:foreground "Brown" :underline t)) | 15049 | '((((class color) (background light)) (:foreground "Brown" :underline t)) |
| 15050 | (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1" :underline t)) | ||
| 15039 | (((class color) (background dark)) (:foreground "Yellow" :underline t))) | 15051 | (((class color) (background dark)) (:foreground "Yellow" :underline t))) |
| 15040 | "Face used for displaying instantiation names." | 15052 | "Face used for displaying instantiation names." |
| 15041 | :group 'speedbar-faces) | 15053 | :group 'speedbar-faces) |
| @@ -16550,26 +16562,24 @@ to visually support naming conventions.") | |||
| 16550 | (defun vhdl-doc-variable (variable) | 16562 | (defun vhdl-doc-variable (variable) |
| 16551 | "Display VARIABLE's documentation in *Help* buffer." | 16563 | "Display VARIABLE's documentation in *Help* buffer." |
| 16552 | (interactive) | 16564 | (interactive) |
| 16553 | (with-output-to-temp-buffer "*Help*" | 16565 | (unless vhdl-xemacs |
| 16566 | (help-setup-xref (list #'vhdl-doc-variable variable) (interactive-p))) | ||
| 16567 | (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*") | ||
| 16554 | (princ (documentation-property variable 'variable-documentation)) | 16568 | (princ (documentation-property variable 'variable-documentation)) |
| 16555 | (unless vhdl-xemacs | 16569 | (with-current-buffer standard-output |
| 16556 | (help-setup-xref (list #'vhdl-doc-variable variable) (interactive-p))) | ||
| 16557 | (save-excursion | ||
| 16558 | (set-buffer standard-output) | ||
| 16559 | (help-mode)) | 16570 | (help-mode)) |
| 16560 | (print-help-return-message))) | 16571 | (print-help-return-message))) |
| 16561 | 16572 | ||
| 16562 | (defun vhdl-doc-mode () | 16573 | (defun vhdl-doc-mode () |
| 16563 | "Display VHDL Mode documentation in *Help* buffer." | 16574 | "Display VHDL Mode documentation in *Help* buffer." |
| 16564 | (interactive) | 16575 | (interactive) |
| 16565 | (with-output-to-temp-buffer "*Help*" | 16576 | (unless vhdl-xemacs |
| 16577 | (help-setup-xref (list #'vhdl-doc-mode) (interactive-p))) | ||
| 16578 | (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*") | ||
| 16566 | (princ mode-name) | 16579 | (princ mode-name) |
| 16567 | (princ " mode:\n") | 16580 | (princ " mode:\n") |
| 16568 | (princ (documentation 'vhdl-mode)) | 16581 | (princ (documentation 'vhdl-mode)) |
| 16569 | (unless vhdl-xemacs | 16582 | (with-current-buffer standard-output |
| 16570 | (help-setup-xref (list #'vhdl-doc-mode) (interactive-p))) | ||
| 16571 | (save-excursion | ||
| 16572 | (set-buffer standard-output) | ||
| 16573 | (help-mode)) | 16583 | (help-mode)) |
| 16574 | (print-help-return-message))) | 16584 | (print-help-return-message))) |
| 16575 | 16585 | ||
| @@ -16578,5 +16588,5 @@ to visually support naming conventions.") | |||
| 16578 | 16588 | ||
| 16579 | (provide 'vhdl-mode) | 16589 | (provide 'vhdl-mode) |
| 16580 | 16590 | ||
| 16581 | ;;; arch-tag: 780d7073-9b5d-4c6c-b0d8-26b28783aba3 | 16591 | ;; arch-tag: 780d7073-9b5d-4c6c-b0d8-26b28783aba3 |
| 16582 | ;;; vhdl-mode.el ends here | 16592 | ;;; vhdl-mode.el ends here |
diff --git a/lisp/saveplace.el b/lisp/saveplace.el index e536e3c3237..cb61c8383b5 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el | |||
| @@ -220,7 +220,9 @@ may have changed\) back to `save-place-alist'." | |||
| 220 | ((eq 'nospecial save-place-version-control) version-control) | 220 | ((eq 'nospecial save-place-version-control) version-control) |
| 221 | (t | 221 | (t |
| 222 | t)))) | 222 | t)))) |
| 223 | (write-file file) | 223 | (condition-case nil |
| 224 | (write-file file) | ||
| 225 | (file-error (message "Can't write %s" file))) | ||
| 224 | (kill-buffer (current-buffer)) | 226 | (kill-buffer (current-buffer)) |
| 225 | (message "Saving places to %s...done" file))))) | 227 | (message "Saving places to %s...done" file))))) |
| 226 | 228 | ||
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el index d6a93a935d6..0cab4b31404 100644 --- a/lisp/smerge-mode.el +++ b/lisp/smerge-mode.el | |||
| @@ -76,8 +76,12 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 76 | :type 'boolean) | 76 | :type 'boolean) |
| 77 | 77 | ||
| 78 | (defface smerge-mine-face | 78 | (defface smerge-mine-face |
| 79 | '((((background light)) | 79 | '((((min-colors 88) (background light)) |
| 80 | (:foreground "blue1")) | ||
| 81 | (((background light)) | ||
| 80 | (:foreground "blue")) | 82 | (:foreground "blue")) |
| 83 | (((min-colors 88) (background dark)) | ||
| 84 | (:foreground "cyan1")) | ||
| 81 | (((background dark)) | 85 | (((background dark)) |
| 82 | (:foreground "cyan"))) | 86 | (:foreground "cyan"))) |
| 83 | "Face for your code." | 87 | "Face for your code." |
| @@ -94,7 +98,9 @@ Used in `smerge-diff-base-mine' and related functions." | |||
| 94 | (defvar smerge-other-face 'smerge-other-face) | 98 | (defvar smerge-other-face 'smerge-other-face) |
| 95 | 99 | ||
| 96 | (defface smerge-base-face | 100 | (defface smerge-base-face |
| 97 | '((((background light)) | 101 | '((((min-colors 88) (background light)) |
| 102 | (:foreground "red1")) | ||
| 103 | (((background light)) | ||
| 98 | (:foreground "red")) | 104 | (:foreground "red")) |
| 99 | (((background dark)) | 105 | (((background dark)) |
| 100 | (:foreground "orange"))) | 106 | (:foreground "orange"))) |
diff --git a/lisp/startup.el b/lisp/startup.el index 43faae63022..957a97081cd 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -284,6 +284,8 @@ from being initialized." | |||
| 284 | 284 | ||
| 285 | (defvar emacs-quick-startup nil) | 285 | (defvar emacs-quick-startup nil) |
| 286 | 286 | ||
| 287 | (defvar emacs-basic-display nil) | ||
| 288 | |||
| 287 | (defvar init-file-debug nil) | 289 | (defvar init-file-debug nil) |
| 288 | 290 | ||
| 289 | (defvar init-file-had-error nil) | 291 | (defvar init-file-had-error nil) |
| @@ -682,11 +684,13 @@ opening the first frame (e.g. open a connection to the server).") | |||
| 682 | (setq argval nil | 684 | (setq argval nil |
| 683 | argi orig-argi))))) | 685 | argi orig-argi))))) |
| 684 | (cond | 686 | (cond |
| 685 | ((member argi '("-Q" "-bare-bones")) | 687 | ((member argi '("-Q" "-quick")) |
| 686 | (setq init-file-user nil | 688 | (setq init-file-user nil |
| 687 | site-run-file nil | 689 | site-run-file nil |
| 688 | no-blinking-cursor t | 690 | emacs-quick-startup t)) |
| 689 | emacs-quick-startup t) | 691 | ((member argi '("-D" "-basic-display")) |
| 692 | (setq no-blinking-cursor t | ||
| 693 | emacs-basic-display t) | ||
| 690 | (push '(vertical-scroll-bars . nil) initial-frame-alist)) | 694 | (push '(vertical-scroll-bars . nil) initial-frame-alist)) |
| 691 | ((member argi '("-q" "-no-init-file")) | 695 | ((member argi '("-q" "-no-init-file")) |
| 692 | (setq init-file-user nil)) | 696 | (setq init-file-user nil)) |
| @@ -721,14 +725,14 @@ opening the first frame (e.g. open a connection to the server).") | |||
| 721 | 725 | ||
| 722 | ;; If frame was created with a menu bar, set menu-bar-mode on. | 726 | ;; If frame was created with a menu bar, set menu-bar-mode on. |
| 723 | (unless (or noninteractive | 727 | (unless (or noninteractive |
| 724 | emacs-quick-startup | 728 | emacs-basic-display |
| 725 | (and (memq initial-window-system '(x w32)) | 729 | (and (memq initial-window-system '(x w32)) |
| 726 | (<= (frame-parameter nil 'menu-bar-lines) 0))) | 730 | (<= (frame-parameter nil 'menu-bar-lines) 0))) |
| 727 | (menu-bar-mode 1)) | 731 | (menu-bar-mode 1)) |
| 728 | 732 | ||
| 729 | ;; If frame was created with a tool bar, switch tool-bar-mode on. | 733 | ;; If frame was created with a tool bar, switch tool-bar-mode on. |
| 730 | (unless (or noninteractive | 734 | (unless (or noninteractive |
| 731 | emacs-quick-startup | 735 | emacs-basic-display |
| 732 | (not (display-graphic-p)) | 736 | (not (display-graphic-p)) |
| 733 | (<= (frame-parameter nil 'tool-bar-lines) 0)) | 737 | (<= (frame-parameter nil 'tool-bar-lines) 0)) |
| 734 | (tool-bar-mode 1)) | 738 | (tool-bar-mode 1)) |
| @@ -739,7 +743,7 @@ opening the first frame (e.g. open a connection to the server).") | |||
| 739 | (custom-reevaluate-setting 'normal-erase-is-backspace) | 743 | (custom-reevaluate-setting 'normal-erase-is-backspace) |
| 740 | 744 | ||
| 741 | (unless (or noninteractive | 745 | (unless (or noninteractive |
| 742 | emacs-quick-startup | 746 | emacs-basic-display |
| 743 | (not (display-graphic-p)) | 747 | (not (display-graphic-p)) |
| 744 | (not (fboundp 'x-show-tip))) | 748 | (not (fboundp 'x-show-tip))) |
| 745 | (tooltip-mode 1)) | 749 | (tooltip-mode 1)) |
| @@ -1045,7 +1049,7 @@ using the mouse.\n\n" | |||
| 1045 | "Useful File menu items:\n" | 1049 | "Useful File menu items:\n" |
| 1046 | :face variable-pitch "\ | 1050 | :face variable-pitch "\ |
| 1047 | Exit Emacs\t(Or type Control-x followed by Control-c) | 1051 | Exit Emacs\t(Or type Control-x followed by Control-c) |
| 1048 | Recover Session\tRecover files you were editing before a crash | 1052 | Recover Crashed Session\tRecover files you were editing before a crash |
| 1049 | 1053 | ||
| 1050 | 1054 | ||
| 1051 | 1055 | ||
| @@ -1169,7 +1173,7 @@ where FACE is a valid face specification, as it can be used with | |||
| 1169 | (emacs-version) | 1173 | (emacs-version) |
| 1170 | "\n" | 1174 | "\n" |
| 1171 | :face '(variable-pitch :height 0.5) | 1175 | :face '(variable-pitch :height 0.5) |
| 1172 | "Copyright (C) 2004 Free Software Foundation, Inc.") | 1176 | "Copyright (C) 2005 Free Software Foundation, Inc.") |
| 1173 | (and auto-save-list-file-prefix | 1177 | (and auto-save-list-file-prefix |
| 1174 | ;; Don't signal an error if the | 1178 | ;; Don't signal an error if the |
| 1175 | ;; directory for auto-save-list files | 1179 | ;; directory for auto-save-list files |
diff --git a/lisp/term.el b/lisp/term.el index 02841db9502..8643ea69fc0 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -3233,7 +3233,7 @@ See `term-prompt-regexp'." | |||
| 3233 | ((eq char ?P) | 3233 | ((eq char ?P) |
| 3234 | (term-delete-chars (max 1 term-terminal-parameter))) | 3234 | (term-delete-chars (max 1 term-terminal-parameter))) |
| 3235 | ;; \E[@ - insert spaces | 3235 | ;; \E[@ - insert spaces |
| 3236 | ((eq char ?@) | 3236 | ((eq char ?@) ;; (terminfo: ich) |
| 3237 | (term-insert-spaces (max 1 term-terminal-parameter))) | 3237 | (term-insert-spaces (max 1 term-terminal-parameter))) |
| 3238 | ;; \E[?h - DEC Private Mode Set | 3238 | ;; \E[?h - DEC Private Mode Set |
| 3239 | ((eq char ?h) | 3239 | ((eq char ?h) |
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 5b26ea636ac..d9de658c158 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el | |||
| @@ -125,7 +125,7 @@ | |||
| 125 | 125 | ||
| 126 | (defun xterm-rgb-convert-to-16bit (prim) | 126 | (defun xterm-rgb-convert-to-16bit (prim) |
| 127 | "Convert an 8-bit primary color value PRIM to a corresponding 16-bit value." | 127 | "Convert an 8-bit primary color value PRIM to a corresponding 16-bit value." |
| 128 | (min 65535 (round (* (/ prim 255.0) 65535.0)))) | 128 | (logior prim (lsh prim 8))) |
| 129 | 129 | ||
| 130 | (defun xterm-register-default-colors () | 130 | (defun xterm-register-default-colors () |
| 131 | "Register the default set of colors for xterm or compatible emulator. | 131 | "Register the default set of colors for xterm or compatible emulator. |
| @@ -162,9 +162,10 @@ versions of xterm." | |||
| 162 | (tty-color-define (format "color-%d" (- 256 ncolors)) | 162 | (tty-color-define (format "color-%d" (- 256 ncolors)) |
| 163 | (- 256 ncolors) | 163 | (- 256 ncolors) |
| 164 | (mapcar 'xterm-rgb-convert-to-16bit | 164 | (mapcar 'xterm-rgb-convert-to-16bit |
| 165 | (list (round (* r 42.5)) | 165 | (list (if (zerop r) 0 (+ (* r 40) 55)) |
| 166 | (round (* g 42.5)) | 166 | (if (zerop g) 0 (+ (* g 40) 55)) |
| 167 | (round (* b 42.5))))) | 167 | (if (zerop b) 0 (+ (* b 40) 55))))) |
| 168 | |||
| 168 | (setq b (1+ b)) | 169 | (setq b (1+ b)) |
| 169 | (if (> b 5) | 170 | (if (> b 5) |
| 170 | (setq g (1+ g) | 171 | (setq g (1+ g) |
| @@ -202,7 +203,7 @@ versions of xterm." | |||
| 202 | ;; Now the 8 gray colors | 203 | ;; Now the 8 gray colors |
| 203 | (while (> ncolors 0) | 204 | (while (> ncolors 0) |
| 204 | (setq color (xterm-rgb-convert-to-16bit | 205 | (setq color (xterm-rgb-convert-to-16bit |
| 205 | (round | 206 | (floor |
| 206 | (if (= ncolors 8) | 207 | (if (= ncolors 8) |
| 207 | 46.36363636 | 208 | 46.36363636 |
| 208 | (+ (* (- 8 ncolors) 23.18181818) 69.54545454))))) | 209 | (+ (* (- 8 ncolors) 23.18181818) 69.54545454))))) |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 3e5b77d8baa..69a456f1d70 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -652,7 +652,7 @@ See `bibtex-generate-autokey' for details." | |||
| 652 | 652 | ||
| 653 | (defcustom bibtex-autokey-titleword-ignore | 653 | (defcustom bibtex-autokey-titleword-ignore |
| 654 | '("A" "An" "On" "The" "Eine?" "Der" "Die" "Das" | 654 | '("A" "An" "On" "The" "Eine?" "Der" "Die" "Das" |
| 655 | "[^A-Z].*" ".*[^A-Z0-9].*") | 655 | "[^[:upper:]].*" ".*[^[:upper:]0-9].*") |
| 656 | "Determines words from the title that are not to be used in the key. | 656 | "Determines words from the title that are not to be used in the key. |
| 657 | Each item of the list is a regexp. If a word of the title matches a | 657 | Each item of the list is a regexp. If a word of the title matches a |
| 658 | regexp from that list, it is not included in the title part of the key. | 658 | regexp from that list, it is not included in the title part of the key. |
| @@ -1078,10 +1078,10 @@ The CDRs of the elements are t for header keys and nil for crossref keys.") | |||
| 1078 | (defconst bibtex-entry-type (concat "@" bibtex-field-name) | 1078 | (defconst bibtex-entry-type (concat "@" bibtex-field-name) |
| 1079 | "Regexp matching the type part of a BibTeX entry.") | 1079 | "Regexp matching the type part of a BibTeX entry.") |
| 1080 | 1080 | ||
| 1081 | (defconst bibtex-reference-key "[][a-zA-Z0-9.:;?!`'/*@+|()<>&_^$-]+" | 1081 | (defconst bibtex-reference-key "[][[:alnum:].:;?!`'/*@+|()<>&_^$-]+" |
| 1082 | "Regexp matching the reference key part of a BibTeX entry.") | 1082 | "Regexp matching the reference key part of a BibTeX entry.") |
| 1083 | 1083 | ||
| 1084 | (defconst bibtex-field-const "[][a-zA-Z0-9.:;?!`'/*@+=|<>&_^$-]+" | 1084 | (defconst bibtex-field-const "[][[:alnum:].:;?!`'/*@+=|<>&_^$-]+" |
| 1085 | "Regexp matching a BibTeX field constant.") | 1085 | "Regexp matching a BibTeX field constant.") |
| 1086 | 1086 | ||
| 1087 | (defconst bibtex-entry-head | 1087 | (defconst bibtex-entry-head |
| @@ -2103,7 +2103,7 @@ and `bibtex-autokey-names-stretch'." | |||
| 2103 | (defun bibtex-autokey-demangle-name (fullname) | 2103 | (defun bibtex-autokey-demangle-name (fullname) |
| 2104 | "Get the last part from a well-formed FULLNAME and perform abbreviations." | 2104 | "Get the last part from a well-formed FULLNAME and perform abbreviations." |
| 2105 | (let* (case-fold-search | 2105 | (let* (case-fold-search |
| 2106 | (name (cond ((string-match "\\([A-Z][^, ]*\\)[^,]*," fullname) | 2106 | (name (cond ((string-match "\\([[:upper:]][^, ]*\\)[^,]*," fullname) |
| 2107 | ;; Name is of the form "von Last, First" or | 2107 | ;; Name is of the form "von Last, First" or |
| 2108 | ;; "von Last, Jr, First" | 2108 | ;; "von Last, Jr, First" |
| 2109 | ;; --> Take the first capital part before the comma | 2109 | ;; --> Take the first capital part before the comma |
| @@ -2112,7 +2112,7 @@ and `bibtex-autokey-names-stretch'." | |||
| 2112 | ;; Strange name: we have a comma, but nothing capital | 2112 | ;; Strange name: we have a comma, but nothing capital |
| 2113 | ;; So we accept even lowercase names | 2113 | ;; So we accept even lowercase names |
| 2114 | (match-string 1 fullname)) | 2114 | (match-string 1 fullname)) |
| 2115 | ((string-match "\\(\\<[a-z][^ ]* +\\)+\\([A-Z][^ ]*\\)" | 2115 | ((string-match "\\(\\<[[:lower:]][^ ]* +\\)+\\([[:upper:]][^ ]*\\)" |
| 2116 | fullname) | 2116 | fullname) |
| 2117 | ;; name is of the form "First von Last", "von Last", | 2117 | ;; name is of the form "First von Last", "von Last", |
| 2118 | ;; "First von von Last", or "d'Last" | 2118 | ;; "First von von Last", or "d'Last" |
| @@ -2796,7 +2796,7 @@ if that value is non-nil. | |||
| 2796 | (set (make-local-variable 'comment-start-skip) | 2796 | (set (make-local-variable 'comment-start-skip) |
| 2797 | (concat (regexp-quote bibtex-comment-start) "\\>[ \t]*")) | 2797 | (concat (regexp-quote bibtex-comment-start) "\\>[ \t]*")) |
| 2798 | (set (make-local-variable 'comment-column) 0) | 2798 | (set (make-local-variable 'comment-column) 0) |
| 2799 | (set (make-local-variable 'defun-prompt-regexp) "^[ \t]*@[a-zA-Z0-9]+[ \t]*") | 2799 | (set (make-local-variable 'defun-prompt-regexp) "^[ \t]*@[[:alnum:]]+[ \t]*") |
| 2800 | (set (make-local-variable 'outline-regexp) "[ \t]*@") | 2800 | (set (make-local-variable 'outline-regexp) "[ \t]*@") |
| 2801 | (set (make-local-variable 'fill-paragraph-function) 'bibtex-fill-field) | 2801 | (set (make-local-variable 'fill-paragraph-function) 'bibtex-fill-field) |
| 2802 | (set (make-local-variable 'fill-prefix) (make-string (+ bibtex-entry-offset | 2802 | (set (make-local-variable 'fill-prefix) (make-string (+ bibtex-entry-offset |
| @@ -2825,7 +2825,7 @@ if that value is non-nil. | |||
| 2825 | ;; XEmacs needs easy-menu-add, Emacs does not care | 2825 | ;; XEmacs needs easy-menu-add, Emacs does not care |
| 2826 | (easy-menu-add bibtex-edit-menu) | 2826 | (easy-menu-add bibtex-edit-menu) |
| 2827 | (easy-menu-add bibtex-entry-menu) | 2827 | (easy-menu-add bibtex-entry-menu) |
| 2828 | (run-hooks 'bibtex-mode-hook)) | 2828 | (run-mode-hooks 'bibtex-mode-hook)) |
| 2829 | 2829 | ||
| 2830 | (defun bibtex-field-list (entry-type) | 2830 | (defun bibtex-field-list (entry-type) |
| 2831 | "Return list of allowed fields for entry ENTRY-TYPE. | 2831 | "Return list of allowed fields for entry ENTRY-TYPE. |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index dfa3a7fa692..dbe8b1cfbc6 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -221,10 +221,10 @@ Set this to nil if you don't want a modeline indicator." | |||
| 221 | 221 | ||
| 222 | (defcustom flyspell-large-region 1000 | 222 | (defcustom flyspell-large-region 1000 |
| 223 | "*The threshold that determines if a region is small. | 223 | "*The threshold that determines if a region is small. |
| 224 | The `flyspell-region' function is invoked if the region is small, the | 224 | If the region is smaller than this number of characters, |
| 225 | word are checked one after the other using regular flyspell check | 225 | `flyspell-region' checks the words sequentially using regular |
| 226 | means. If the region is large, a new Ispell process is spawned to get | 226 | flyspell methods. Else, if the region is large, a new Ispell process is |
| 227 | speed." | 227 | spawned for speed." |
| 228 | :group 'flyspell | 228 | :group 'flyspell |
| 229 | :version "21.1" | 229 | :version "21.1" |
| 230 | :type 'number) | 230 | :type 'number) |
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 52a0c8a1deb..a85e968d3ee 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el | |||
| @@ -683,7 +683,9 @@ height." | |||
| 683 | :group 'table) | 683 | :group 'table) |
| 684 | 684 | ||
| 685 | (defface table-cell-face | 685 | (defface table-cell-face |
| 686 | '((((class color)) | 686 | '((((min-colors 88) (class color)) |
| 687 | (:foreground "gray90" :background "blue1")) | ||
| 688 | (((class color)) | ||
| 687 | (:foreground "gray90" :background "blue")) | 689 | (:foreground "gray90" :background "blue")) |
| 688 | (t (:bold t))) | 690 | (t (:bold t))) |
| 689 | "*Face used for table cell contents." | 691 | "*Face used for table cell contents." |
diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el index 24a3ade4922..55f36a4155f 100644 --- a/lisp/url/url-ldap.el +++ b/lisp/url/url-ldap.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code | 1 | ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code |
| 2 | ;; Copyright (c) 1998 - 1999, 2004 Free Software Foundation, Inc. | 2 | ;; Copyright (c) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. |
| 3 | 3 | ||
| 4 | ;; Keywords: comm, data, processes | 4 | ;; Keywords: comm, data, processes |
| 5 | 5 | ||
| @@ -112,10 +112,16 @@ | |||
| 112 | (format "<img alt='JPEG Photo' src='data:image/jpeg;base64,%s'>" | 112 | (format "<img alt='JPEG Photo' src='data:image/jpeg;base64,%s'>" |
| 113 | (url-hexify-string (base64-encode-string data)))) | 113 | (url-hexify-string (base64-encode-string data)))) |
| 114 | 114 | ||
| 115 | ;; FIXME: This needs sorting out for the Emacs LDAP functions, specifically | ||
| 116 | ;; calls of ldap-open, ldap-close, ldap-search-internal | ||
| 117 | ;;;###autoload | 115 | ;;;###autoload |
| 118 | (defun url-ldap (url) | 116 | (defun url-ldap (url) |
| 117 | "Perform an LDAP search specified by URL. | ||
| 118 | The return value is a buffer displaying the search results in HTML. | ||
| 119 | URL can be a URL string, or a URL vector of the type returned by | ||
| 120 | `url-generic-parse-url'." | ||
| 121 | (if (stringp url) | ||
| 122 | (setq url (url-generic-parse-url (url-unhex-string url))) | ||
| 123 | (if (not (vectorp url)) | ||
| 124 | (error "Argument is not a valid URL"))) | ||
| 119 | (save-excursion | 125 | (save-excursion |
| 120 | (set-buffer (generate-new-buffer " *url-ldap*")) | 126 | (set-buffer (generate-new-buffer " *url-ldap*")) |
| 121 | (setq url-current-object url) | 127 | (setq url-current-object url) |
| @@ -142,10 +148,7 @@ | |||
| 142 | (scope nil) | 148 | (scope nil) |
| 143 | (filter nil) | 149 | (filter nil) |
| 144 | (extensions nil) | 150 | (extensions nil) |
| 145 | (connection nil) | 151 | (results nil)) |
| 146 | (results nil) | ||
| 147 | (extract-dn (and (fboundp 'function-max-args) | ||
| 148 | (= (function-max-args 'ldap-search-internal) 7)))) | ||
| 149 | 152 | ||
| 150 | ;; Get rid of leading / | 153 | ;; Get rid of leading / |
| 151 | (if (string-match "^/" data) | 154 | (if (string-match "^/" data) |
| @@ -163,7 +166,7 @@ | |||
| 163 | scope (intern (url-unhex-string (or scope "base"))) | 166 | scope (intern (url-unhex-string (or scope "base"))) |
| 164 | filter (url-unhex-string (or filter "(objectClass=*)"))) | 167 | filter (url-unhex-string (or filter "(objectClass=*)"))) |
| 165 | 168 | ||
| 166 | (if (not (memq scope '(base one tree))) | 169 | (if (not (memq scope '(base one sub))) |
| 167 | (error "Malformed LDAP URL: Unknown scope: %S" scope)) | 170 | (error "Malformed LDAP URL: Unknown scope: %S" scope)) |
| 168 | 171 | ||
| 169 | ;; Convert to the internal LDAP support scoping names. | 172 | ;; Convert to the internal LDAP support scoping names. |
| @@ -188,12 +191,14 @@ | |||
| 188 | (assoc "!bindname" extensions)))) | 191 | (assoc "!bindname" extensions)))) |
| 189 | 192 | ||
| 190 | ;; Now, let's actually do something with it. | 193 | ;; Now, let's actually do something with it. |
| 191 | (setq connection (ldap-open host (if binddn (list 'binddn binddn))) | 194 | (setq results (cdr (ldap-search-internal |
| 192 | results (if extract-dn | 195 | (list 'host (concat host ":" (number-to-string port)) |
| 193 | (ldap-search-internal connection filter base-object scope attributes nil t) | 196 | 'base base-object |
| 194 | (ldap-search-internal connection filter base-object scope attributes nil))) | 197 | 'attributes attributes |
| 195 | 198 | 'scope scope | |
| 196 | (ldap-close connection) | 199 | 'filter filter |
| 200 | 'binddn binddn)))) | ||
| 201 | |||
| 197 | (insert "<html>\n" | 202 | (insert "<html>\n" |
| 198 | " <head>\n" | 203 | " <head>\n" |
| 199 | " <title>LDAP Search Results</title>\n" | 204 | " <title>LDAP Search Results</title>\n" |
| @@ -205,8 +210,6 @@ | |||
| 205 | (mapc (lambda (obj) | 210 | (mapc (lambda (obj) |
| 206 | (insert " <hr>\n" | 211 | (insert " <hr>\n" |
| 207 | " <table border=1>\n") | 212 | " <table border=1>\n") |
| 208 | (if extract-dn | ||
| 209 | (insert " <tr><th colspan=2>" (car obj) "</th></tr>\n")) | ||
| 210 | (mapc (lambda (attr) | 213 | (mapc (lambda (attr) |
| 211 | (if (= (length (cdr attr)) 1) | 214 | (if (= (length (cdr attr)) 1) |
| 212 | ;; single match, easy | 215 | ;; single match, easy |
| @@ -225,7 +228,7 @@ | |||
| 225 | "<br>\n") | 228 | "<br>\n") |
| 226 | "</td>" | 229 | "</td>" |
| 227 | " </tr>\n"))) | 230 | " </tr>\n"))) |
| 228 | (if extract-dn (cdr obj) obj)) | 231 | obj) |
| 229 | (insert " </table>\n")) | 232 | (insert " </table>\n")) |
| 230 | results) | 233 | results) |
| 231 | 234 | ||
diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 323c75ed6de..4406a0615ee 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; whitespace.el --- warn about and clean bogus whitespaces in the file | 1 | ;;; whitespace.el --- warn about and clean bogus whitespaces in the file |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> | 5 | ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> |
| 6 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| @@ -319,7 +319,7 @@ To disable timer scans, set this to zero." | |||
| 319 | :group 'faces) | 319 | :group 'faces) |
| 320 | 320 | ||
| 321 | (defface whitespace-highlight-face '((((class color) (background light)) | 321 | (defface whitespace-highlight-face '((((class color) (background light)) |
| 322 | (:background "green")) | 322 | (:background "green1")) |
| 323 | (((class color) (background dark)) | 323 | (((class color) (background dark)) |
| 324 | (:background "sea green")) | 324 | (:background "sea green")) |
| 325 | (((class grayscale mono) | 325 | (((class grayscale mono) |
| @@ -489,16 +489,14 @@ and: | |||
| 489 | (if whitespace-spacetab "s") | 489 | (if whitespace-spacetab "s") |
| 490 | (if whitespace-trailing "t"))))) | 490 | (if whitespace-trailing "t"))))) |
| 491 | (whitespace-update-modeline whitespace-this-modeline) | 491 | (whitespace-update-modeline whitespace-this-modeline) |
| 492 | (save-excursion | 492 | (if (get-buffer whitespace-errbuf) |
| 493 | (get-buffer-create whitespace-errbuf) | 493 | (kill-buffer whitespace-errbuf)) |
| 494 | (kill-buffer whitespace-errbuf) | 494 | (with-current-buffer (get-buffer-create whitespace-errbuf) |
| 495 | (get-buffer-create whitespace-errbuf) | ||
| 496 | (set-buffer whitespace-errbuf) | ||
| 497 | (if whitespace-errmsg | 495 | (if whitespace-errmsg |
| 498 | (progn | 496 | (progn |
| 499 | (insert whitespace-errmsg) | 497 | (insert whitespace-errmsg) |
| 500 | (if (not (or quiet whitespace-silent)) | 498 | (if (not (or quiet whitespace-silent)) |
| 501 | (display-buffer whitespace-errbuf t)) | 499 | (display-buffer (current-buffer) t)) |
| 502 | (if (not quiet) | 500 | (if (not quiet) |
| 503 | (message "Whitespaces: [%s%s] in %s" | 501 | (message "Whitespaces: [%s%s] in %s" |
| 504 | whitespace-this-modeline | 502 | whitespace-this-modeline |
| @@ -511,9 +509,7 @@ and: | |||
| 511 | (if (and (not quiet) (not (equal whitespace-clean-msg ""))) | 509 | (if (and (not quiet) (not (equal whitespace-clean-msg ""))) |
| 512 | (message "%s %s" whitespace-filename | 510 | (message "%s %s" whitespace-filename |
| 513 | whitespace-clean-msg)))))))) | 511 | whitespace-clean-msg)))))))) |
| 514 | (if whitespace-error | 512 | whitespace-error)) |
| 515 | t | ||
| 516 | nil))) | ||
| 517 | 513 | ||
| 518 | ;;;###autoload | 514 | ;;;###autoload |
| 519 | (defun whitespace-region (s e) | 515 | (defun whitespace-region (s e) |
| @@ -736,23 +732,17 @@ Also with whitespaces whose testing has been turned off." | |||
| 736 | (defun whitespace-highlight-the-space (b e) | 732 | (defun whitespace-highlight-the-space (b e) |
| 737 | "Highlight the current line, unhighlighting a previously jumped to line." | 733 | "Highlight the current line, unhighlighting a previously jumped to line." |
| 738 | (if whitespace-display-spaces-in-color | 734 | (if whitespace-display-spaces-in-color |
| 739 | (progn | 735 | (let ((ol (whitespace-make-overlay b e))) |
| 740 | (whitespace-unhighlight-the-space) | 736 | (whitespace-unhighlight-the-space) |
| 741 | (add-to-list 'whitespace-highlighted-space | 737 | (push ol whitespace-highlighted-space) |
| 742 | (whitespace-make-overlay b e)) | 738 | (whitespace-overlay-put ol 'face 'whitespace-highlight-face)))) |
| 743 | (whitespace-overlay-put (whitespace-make-overlay b e) 'face | ||
| 744 | 'whitespace-highlight-face)))) | ||
| 745 | ;; (add-hook 'pre-command-hook 'whitespace-unhighlight-the-space)) | 739 | ;; (add-hook 'pre-command-hook 'whitespace-unhighlight-the-space)) |
| 746 | 740 | ||
| 747 | (defun whitespace-unhighlight-the-space () | 741 | (defun whitespace-unhighlight-the-space () |
| 748 | "Unhighlight the currently highlight line." | 742 | "Unhighlight the currently highlight line." |
| 749 | (if (and whitespace-display-spaces-in-color whitespace-highlighted-space) | 743 | (if (and whitespace-display-spaces-in-color whitespace-highlighted-space) |
| 750 | (let ((whitespace-this-space nil)) | 744 | (progn |
| 751 | (while whitespace-highlighted-space | 745 | (mapc 'whitespace-delete-overlay whitespace-highlighted-space) |
| 752 | (setq whitespace-this-space (car whitespace-highlighted-space)) | ||
| 753 | (setq whitespace-highlighted-space | ||
| 754 | (cdr whitespace-highlighted-space)) | ||
| 755 | (whitespace-delete-overlay whitespace-this-space)) | ||
| 756 | (setq whitespace-highlighted-space nil)) | 746 | (setq whitespace-highlighted-space nil)) |
| 757 | (remove-hook 'pre-command-hook 'whitespace-unhighlight-the-space))) | 747 | (remove-hook 'pre-command-hook 'whitespace-unhighlight-the-space))) |
| 758 | 748 | ||
| @@ -863,5 +853,5 @@ This is meant to be added buffer-locally to `write-file-functions'." | |||
| 863 | 853 | ||
| 864 | (provide 'whitespace) | 854 | (provide 'whitespace) |
| 865 | 855 | ||
| 866 | ;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c | 856 | ;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c |
| 867 | ;;; whitespace.el ends here | 857 | ;;; whitespace.el ends here |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 74bda990aed..d1ea8197fec 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; wid-edit.el --- Functions for creating and using widgets -*-byte-compile-dynamic: t;-*- | 1 | ;;; wid-edit.el --- Functions for creating and using widgets -*-byte-compile-dynamic: t;-*- |
| 2 | ;; | 2 | ;; |
| 3 | ;; Copyright (C) 1996,97,1999,2000,01,02,2003, 2004 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996,97,1999,2000,01,02,2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> |
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| @@ -883,7 +883,9 @@ Recommended as a parent keymap for modes using widgets.") | |||
| 883 | (lookup-key widget-global-map (this-command-keys)))))) | 883 | (lookup-key widget-global-map (this-command-keys)))))) |
| 884 | 884 | ||
| 885 | (defface widget-button-pressed-face | 885 | (defface widget-button-pressed-face |
| 886 | '((((class color)) | 886 | '((((min-colors 88) (class color)) |
| 887 | (:foreground "red1")) | ||
| 888 | (((class color)) | ||
| 887 | (:foreground "red")) | 889 | (:foreground "red")) |
| 888 | (t | 890 | (t |
| 889 | (:weight bold :underline t))) | 891 | (:weight bold :underline t))) |
diff --git a/lisp/woman.el b/lisp/woman.el index e4b29374a05..4d92c9ee0c7 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; woman.el --- browse UN*X manual pages `wo (without) man' | 1 | ;;; woman.el --- browse UN*X manual pages `wo (without) man' |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000, 2002, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> | 5 | ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> |
| 6 | ;; Maintainer: Francis J. Wright <F.J.Wright@qmul.ac.uk> | 6 | ;; Maintainer: Francis J. Wright <F.J.Wright@qmul.ac.uk> |
| @@ -876,13 +876,16 @@ or different fonts." | |||
| 876 | ;; You should probably select either italic or underline as you prefer, but | 876 | ;; You should probably select either italic or underline as you prefer, but |
| 877 | ;; not both, although italic and underline work together perfectly well! | 877 | ;; not both, although italic and underline work together perfectly well! |
| 878 | (defface woman-italic-face | 878 | (defface woman-italic-face |
| 879 | `((((background light)) (:slant italic :underline t :foreground "red")) | 879 | `((((min-colors 88) (background light)) |
| 880 | (:slant italic :underline t :foreground "red1")) | ||
| 881 | (((background light)) (:slant italic :underline t :foreground "red")) | ||
| 880 | (((background dark)) (:slant italic :underline t))) | 882 | (((background dark)) (:slant italic :underline t))) |
| 881 | "Face for italic font in man pages." | 883 | "Face for italic font in man pages." |
| 882 | :group 'woman-faces) | 884 | :group 'woman-faces) |
| 883 | 885 | ||
| 884 | (defface woman-bold-face | 886 | (defface woman-bold-face |
| 885 | '((((background light)) (:weight bold :foreground "blue")) | 887 | '((((min-colors 88) (background light)) (:weight bold :foreground "blue1")) |
| 888 | (((background light)) (:weight bold :foreground "blue")) | ||
| 886 | (((background dark)) (:weight bold :foreground "green2"))) | 889 | (((background dark)) (:weight bold :foreground "green2"))) |
| 887 | "Face for bold font in man pages." | 890 | "Face for bold font in man pages." |
| 888 | :group 'woman-faces) | 891 | :group 'woman-faces) |
| @@ -892,6 +895,7 @@ or different fonts." | |||
| 892 | ;; non-standard fonts seem to do so badly or in idiosyncratic ways!) | 895 | ;; non-standard fonts seem to do so badly or in idiosyncratic ways!) |
| 893 | (defface woman-unknown-face | 896 | (defface woman-unknown-face |
| 894 | '((((background light)) (:foreground "brown")) | 897 | '((((background light)) (:foreground "brown")) |
| 898 | (((min-colors 88) (background dark)) (:foreground "cyan1")) | ||
| 895 | (((background dark)) (:foreground "cyan"))) | 899 | (((background dark)) (:foreground "cyan"))) |
| 896 | "Face for all unknown fonts in man pages." | 900 | "Face for all unknown fonts in man pages." |
| 897 | :group 'woman-faces) | 901 | :group 'woman-faces) |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 1f5c324bdd1..2d3bd39ccca 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2005-04-08 Lute Kamstra <lute@gnu.org> | ||
| 2 | |||
| 3 | * modes.texi (Search-based Fontification): Fix cross references. | ||
| 4 | Use consistent terminology. Document anchored highlighting. | ||
| 5 | |||
| 1 | 2005-04-05 Lute Kamstra <lute@gnu.org> | 6 | 2005-04-05 Lute Kamstra <lute@gnu.org> |
| 2 | 7 | ||
| 3 | * modes.texi (Defining Minor Modes): Document :group keyword | 8 | * modes.texi (Defining Minor Modes): Document :group keyword |
| @@ -2348,7 +2353,7 @@ | |||
| 2348 | 2353 | ||
| 2349 | * files.texi (Changing Files): copy-file allows dir as NEWNAME. | 2354 | * files.texi (Changing Files): copy-file allows dir as NEWNAME. |
| 2350 | (Magic File Names): Specify precedence order of handlers. | 2355 | (Magic File Names): Specify precedence order of handlers. |
| 2351 | o | 2356 | |
| 2352 | * commands.texi (Command Overview): Emacs server runs pre-command-hook | 2357 | * commands.texi (Command Overview): Emacs server runs pre-command-hook |
| 2353 | and post-command-hook. | 2358 | and post-command-hook. |
| 2354 | (Waiting): New calling convention for sit-for. | 2359 | (Waiting): New calling convention for sit-for. |
diff --git a/lispref/modes.texi b/lispref/modes.texi index ecbe39dbb31..b43b22275cc 100644 --- a/lispref/modes.texi +++ b/lispref/modes.texi | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @c -*-texinfo-*- | 1 | @c -*-texinfo-*- |
| 2 | @c This is part of the GNU Emacs Lisp Reference Manual. | 2 | @c This is part of the GNU Emacs Lisp Reference Manual. |
| 3 | @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, | 3 | @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, |
| 4 | @c 2003, 2004, 2005 Free Software Foundation, Inc. | 4 | @c 2003, 2004, 2005 Free Software Foundation, Inc. |
| 5 | @c See the file elisp.texi for copying conditions. | 5 | @c See the file elisp.texi for copying conditions. |
| 6 | @setfilename ../info/modes | 6 | @setfilename ../info/modes |
| @@ -2111,7 +2111,7 @@ processes the elements of @code{font-lock-keywords} one by one, and for | |||
| 2111 | each element, it finds and handles all matches. Ordinarily, once | 2111 | each element, it finds and handles all matches. Ordinarily, once |
| 2112 | part of the text has been fontified already, this cannot be overridden | 2112 | part of the text has been fontified already, this cannot be overridden |
| 2113 | by a subsequent match in the same text; but you can specify different | 2113 | by a subsequent match in the same text; but you can specify different |
| 2114 | behavior using the @var{override} element of a @var{highlighter}. | 2114 | behavior using the @var{override} element of a @var{subexp-highlighter}. |
| 2115 | 2115 | ||
| 2116 | Each element of @code{font-lock-keywords} should have one of these | 2116 | Each element of @code{font-lock-keywords} should have one of these |
| 2117 | forms: | 2117 | forms: |
| @@ -2122,14 +2122,14 @@ Highlight all matches for @var{regexp} using | |||
| 2122 | @code{font-lock-keyword-face}. For example, | 2122 | @code{font-lock-keyword-face}. For example, |
| 2123 | 2123 | ||
| 2124 | @example | 2124 | @example |
| 2125 | ;; @r{Highlight discrete occurrences of @samp{foo}} | 2125 | ;; @r{Highlight occurrences of the word @samp{foo}} |
| 2126 | ;; @r{using @code{font-lock-keyword-face}.} | 2126 | ;; @r{using @code{font-lock-keyword-face}.} |
| 2127 | "\\<foo\\>" | 2127 | "\\<foo\\>" |
| 2128 | @end example | 2128 | @end example |
| 2129 | 2129 | ||
| 2130 | The function @code{regexp-opt} (@pxref{Syntax of Regexps}) is useful for | 2130 | The function @code{regexp-opt} (@pxref{Regexp Functions}) is useful |
| 2131 | calculating optimal regular expressions to match a number of different | 2131 | for calculating optimal regular expressions to match a number of |
| 2132 | keywords. | 2132 | different keywords. |
| 2133 | 2133 | ||
| 2134 | @item @var{function} | 2134 | @item @var{function} |
| 2135 | Find text by calling @var{function}, and highlight the matches | 2135 | Find text by calling @var{function}, and highlight the matches |
| @@ -2146,10 +2146,10 @@ and with point where the previous invocation left it, until | |||
| 2146 | @var{function} fails. On failure, @var{function} need not reset point | 2146 | @var{function} fails. On failure, @var{function} need not reset point |
| 2147 | in any particular way. | 2147 | in any particular way. |
| 2148 | 2148 | ||
| 2149 | @item (@var{matcher} . @var{match}) | 2149 | @item (@var{matcher} . @var{subexp}) |
| 2150 | In this kind of element, @var{matcher} is either a regular | 2150 | In this kind of element, @var{matcher} is either a regular |
| 2151 | expression or a function, as described above. The @sc{cdr}, | 2151 | expression or a function, as described above. The @sc{cdr}, |
| 2152 | @var{match}, specifies which subexpression of @var{matcher} should be | 2152 | @var{subexp}, specifies which subexpression of @var{matcher} should be |
| 2153 | highlighted (instead of the entire text that @var{matcher} matched). | 2153 | highlighted (instead of the entire text that @var{matcher} matched). |
| 2154 | 2154 | ||
| 2155 | @example | 2155 | @example |
| @@ -2159,8 +2159,8 @@ highlighted (instead of the entire text that @var{matcher} matched). | |||
| 2159 | @end example | 2159 | @end example |
| 2160 | 2160 | ||
| 2161 | If you use @code{regexp-opt} to produce the regular expression | 2161 | If you use @code{regexp-opt} to produce the regular expression |
| 2162 | @var{matcher}, then you can use @code{regexp-opt-depth} (@pxref{Syntax | 2162 | @var{matcher}, then you can use @code{regexp-opt-depth} (@pxref{Regexp |
| 2163 | of Regexps}) to calculate the value for @var{match}. | 2163 | Functions}) to calculate the value for @var{subexp}. |
| 2164 | 2164 | ||
| 2165 | @item (@var{matcher} . @var{facespec}) | 2165 | @item (@var{matcher} . @var{facespec}) |
| 2166 | In this kind of element, @var{facespec} is an object which specifies | 2166 | In this kind of element, @var{facespec} is an object which specifies |
| @@ -2173,37 +2173,39 @@ is a Lisp variable (a symbol), whose value should be a face name. | |||
| 2173 | ("fubar" . fubar-face) | 2173 | ("fubar" . fubar-face) |
| 2174 | @end example | 2174 | @end example |
| 2175 | 2175 | ||
| 2176 | However, @var{facespec} can also be a list of the form | 2176 | However, @var{facespec} can also be a list of the form: |
| 2177 | 2177 | ||
| 2178 | @example | 2178 | @example |
| 2179 | (face @var{face} @var{prop1} @var{val1} @var{prop2} @var{val2}@dots{}) | 2179 | (face @var{face} @var{prop1} @var{val1} @var{prop2} @var{val2}@dots{}) |
| 2180 | @end example | 2180 | @end example |
| 2181 | 2181 | ||
| 2182 | to specify various text properties to put on the text that matches. | 2182 | to specify the face @var{face} and various additional text properties |
| 2183 | If you do this, be sure to add the other text property names that you | 2183 | to put on the text that matches. If you do this, be sure to add the |
| 2184 | set in this way to the value of @code{font-lock-extra-managed-props} | 2184 | other text property names that you set in this way to the value of |
| 2185 | so that the properties will also be cleared out when they are no longer | 2185 | @code{font-lock-extra-managed-props} so that the properties will also |
| 2186 | appropriate. | 2186 | be cleared out when they are no longer appropriate. Alternatively, |
| 2187 | you can set the variable @code{font-lock-unfontify-region-function} to | ||
| 2188 | a function that clears these properties. | ||
| 2187 | 2189 | ||
| 2188 | @item (@var{matcher} . @var{highlighter}) | 2190 | @item (@var{matcher} . @var{subexp-highlighter}) |
| 2189 | In this kind of element, @var{highlighter} is a list | 2191 | In this kind of element, @var{subexp-highlighter} is a list |
| 2190 | which specifies how to highlight matches found by @var{matcher}. | 2192 | which specifies how to highlight matches found by @var{matcher}. |
| 2191 | It has the form | 2193 | It has the form: |
| 2192 | 2194 | ||
| 2193 | @example | 2195 | @example |
| 2194 | (@var{subexp} @var{facespec} @var{override} @var{laxmatch}) | 2196 | (@var{subexp} @var{facespec} [[@var{override} [@var{laxmatch}]]) |
| 2195 | @end example | 2197 | @end example |
| 2196 | 2198 | ||
| 2197 | The @sc{car}, @var{subexp}, is an integer specifying which subexpression | 2199 | The @sc{car}, @var{subexp}, is an integer specifying which subexpression |
| 2198 | of the match to fontify (0 means the entire matching text). The second | 2200 | of the match to fontify (0 means the entire matching text). The second |
| 2199 | subelement, @var{facespec}, specifies the face, as described above. | 2201 | subelement, @var{facespec}, specifies the face, as described above. |
| 2200 | 2202 | ||
| 2201 | The last two values in @var{highlighter}, @var{override} and | 2203 | The last two values in @var{subexp-highlighter}, @var{override} and |
| 2202 | @var{laxmatch}, are flags. If @var{override} is @code{t}, this | 2204 | @var{laxmatch}, are optional flags. If @var{override} is @code{t}, |
| 2203 | element can override existing fontification made by previous elements | 2205 | this element can override existing fontification made by previous |
| 2204 | of @code{font-lock-keywords}. If it is @code{keep}, then each | 2206 | elements of @code{font-lock-keywords}. If it is @code{keep}, then |
| 2205 | character is fontified if it has not been fontified already by some | 2207 | each character is fontified if it has not been fontified already by |
| 2206 | other element. If it is @code{prepend}, the face specified by | 2208 | some other element. If it is @code{prepend}, the face specified by |
| 2207 | @var{facespec} is added to the beginning of the @code{font-lock-face} | 2209 | @var{facespec} is added to the beginning of the @code{font-lock-face} |
| 2208 | property. If it is @code{append}, the face is added to the end of the | 2210 | property. If it is @code{append}, the face is added to the end of the |
| 2209 | @code{font-lock-face} property. | 2211 | @code{font-lock-face} property. |
| @@ -2219,8 +2221,8 @@ terminates search-based fontification. | |||
| 2219 | Here are some examples of elements of this kind, and what they do: | 2221 | Here are some examples of elements of this kind, and what they do: |
| 2220 | 2222 | ||
| 2221 | @smallexample | 2223 | @smallexample |
| 2222 | ;; @r{Highlight occurrences of either @samp{foo} or @samp{bar},} | 2224 | ;; @r{Highlight occurrences of either @samp{foo} or @samp{bar}, using} |
| 2223 | ;; @r{using @code{foo-bar-face}, even if they have already been highlighted.} | 2225 | ;; @r{@code{foo-bar-face}, even if they have already been highlighted.} |
| 2224 | ;; @r{@code{foo-bar-face} should be a variable whose value is a face.} | 2226 | ;; @r{@code{foo-bar-face} should be a variable whose value is a face.} |
| 2225 | ("foo\\|bar" 0 foo-bar-face t) | 2227 | ("foo\\|bar" 0 foo-bar-face t) |
| 2226 | 2228 | ||
| @@ -2230,64 +2232,71 @@ Here are some examples of elements of this kind, and what they do: | |||
| 2230 | (fubar-match 1 fubar-face) | 2232 | (fubar-match 1 fubar-face) |
| 2231 | @end smallexample | 2233 | @end smallexample |
| 2232 | 2234 | ||
| 2233 | @item (@var{matcher} @var{highlighters}@dots{}) | 2235 | @item (@var{matcher} . @var{anchored-highlighter}) |
| 2234 | This sort of element specifies several @var{highlighter} lists for a | 2236 | In this kind of element, @var{anchored-highlighter} specifies how to |
| 2235 | single @var{matcher}. In order for this to be useful, each | 2237 | highlight text that follows a match found by @var{matcher}. So a |
| 2236 | @var{highlighter} should have a different value of @var{subexp}; that is, | 2238 | match found by @var{matcher} acts as the anchor for further searches |
| 2237 | each one should apply to a different subexpression of @var{matcher}. | 2239 | specified by @var{anchored-highlighter}. @var{anchored-highlighter} |
| 2240 | is a list of the following form: | ||
| 2238 | 2241 | ||
| 2239 | @ignore | 2242 | @example |
| 2240 | @item (@var{matcher} . @var{anchored}) | 2243 | (@var{anchored-matcher} @var{pre-form} @var{post-form} |
| 2241 | In this kind of element, @var{anchored} acts much like a | 2244 | @var{subexp-highlighters}@dots{}) |
| 2242 | @var{highlighter}, but it is more complex and can specify multiple | 2245 | @end example |
| 2243 | successive searches. | ||
| 2244 | 2246 | ||
| 2245 | For highlighting single items, typically only @var{highlighter} is | 2247 | Here, @var{anchored-matcher}, like @var{matcher}, is either a regular |
| 2246 | required. However, if an item or (typically) items are to be | 2248 | expression or a function. After a match of @var{matcher} is found, |
| 2247 | highlighted following the instance of another item (the anchor) then | 2249 | point is at the end of the match. Now, Font Lock evaluates the form |
| 2248 | @var{anchored} may be required. | 2250 | @var{pre-form}. Then it searches for matches of |
| 2251 | @var{anchored-matcher} and uses @var{subexp-highlighters} to highlight | ||
| 2252 | these. A @var{subexp-highlighter} is as described above. Finally, | ||
| 2253 | Font Lock evaluates @var{post-form}. | ||
| 2254 | |||
| 2255 | The forms @var{pre-form} and @var{post-form} can be used to initialize | ||
| 2256 | before, and cleanup after, @var{anchored-matcher} is used. Typically, | ||
| 2257 | @var{pre-form} is used to move point to some position relative to the | ||
| 2258 | match of @var{matcher}, before starting with @var{anchored-matcher}. | ||
| 2259 | @var{post-form} might be used to move back, before resuming with | ||
| 2260 | @var{matcher}. | ||
| 2261 | |||
| 2262 | After Font Lock evaluates @var{pre-form}, it does not search for | ||
| 2263 | @var{anchored-matcher} beyond the end of the line. However, if | ||
| 2264 | @var{pre-form} returns a buffer position that is greater than the | ||
| 2265 | position of point after @var{pre-form} is evaluated, then the position | ||
| 2266 | returned by @var{pre-form} is used as the limit of the search instead. | ||
| 2267 | It is generally a bad idea to return a position greater than the end | ||
| 2268 | of the line; in other words, the @var{anchored-matcher} search should | ||
| 2269 | not span lines. | ||
| 2249 | 2270 | ||
| 2250 | It has this format: | 2271 | For example, |
| 2251 | 2272 | ||
| 2252 | @example | 2273 | @smallexample |
| 2253 | (@var{submatcher} @var{pre-match-form} @var{post-match-form} @var{highlighters}@dots{}) | 2274 | ;; @r{Highlight occurrences of the word @samp{item} following} |
| 2254 | @end example | 2275 | ;; @r{an occurrence of the word @samp{anchor} (on the same line)} |
| 2276 | ;; @r{in the value of @code{item-face}.} | ||
| 2277 | ("\\<anchor\\>" "\\<item\\>" nil nil (0 item-face)) | ||
| 2278 | @end smallexample | ||
| 2255 | 2279 | ||
| 2256 | @c I can't parse this text -- rms | 2280 | Here, @var{pre-form} and @var{post-form} are @code{nil}. Therefore |
| 2257 | where @var{submatcher} is much like @var{matcher}, with one | 2281 | searching for @samp{item} starts at the end of the match of |
| 2258 | exception---see below. @var{pre-match-form} and @var{post-match-form} | 2282 | @samp{anchor}, and searching for subsequent instances of @samp{anchor} |
| 2259 | are evaluated before the first, and after the last, instance | 2283 | resumes from where searching for @samp{item} concluded. |
| 2260 | @var{anchored}'s @var{submatcher} is used. Therefore they can be used | ||
| 2261 | to initialize before, and cleanup after, @var{submatcher} is used. | ||
| 2262 | Typically, @var{pre-match-form} is used to move to some position | ||
| 2263 | relative to the original @var{submatcher}, before starting with | ||
| 2264 | @var{anchored}'s @var{submatcher}. @var{post-match-form} might be used | ||
| 2265 | to move, before resuming with @var{anchored}'s parent's @var{matcher}. | ||
| 2266 | 2284 | ||
| 2267 | For example, an element of the form highlights (if not already highlighted): | 2285 | @item (@var{matcher} @var{highlighters}@dots{}) |
| 2286 | This sort of element specifies several @var{highlighter} lists for a | ||
| 2287 | single @var{matcher}. A @var{highlighter} list can be of the type | ||
| 2288 | @var{subexp-highlighter} or @var{anchored-highlighter} as described | ||
| 2289 | above. | ||
| 2268 | 2290 | ||
| 2269 | @example | 2291 | For example, |
| 2270 | ("\\<anchor\\>" (0 anchor-face) ("\\<item\\>" nil nil (0 item-face))) | ||
| 2271 | @end example | ||
| 2272 | 2292 | ||
| 2273 | Discrete occurrences of @samp{anchor} in the value of | 2293 | @smallexample |
| 2274 | @code{anchor-face}, and subsequent discrete occurrences of @samp{item} | 2294 | ;; @r{Highlight occurrences of the word @samp{anchor} in the value} |
| 2275 | (on the same line) in the value of @code{item-face}. (Here | 2295 | ;; @r{of @code{anchor-face}, and subsequent occurrences of the word} |
| 2276 | @var{pre-match-form} and @var{post-match-form} are @code{nil}. | 2296 | ;; @r{@samp{item} (on the same line) in the value of @code{item-face}.} |
| 2277 | Therefore @samp{item} is initially searched for starting from the end of | 2297 | ("\\<anchor\\>" (0 anchor-face) |
| 2278 | the match of @samp{anchor}, and searching for subsequent instance of | 2298 | ("\\<item\\>" nil nil (0 item-face))) |
| 2279 | @samp{anchor} resumes from where searching for @samp{item} concluded.) | 2299 | @end smallexample |
| 2280 | |||
| 2281 | The above-mentioned exception is as follows. The limit of the | ||
| 2282 | @var{submatcher} search defaults to the end of the line after | ||
| 2283 | @var{pre-match-form} is evaluated. However, if @var{pre-match-form} | ||
| 2284 | returns a position greater than the position after @var{pre-match-form} | ||
| 2285 | is evaluated, that position is used as the limit of the search. It is | ||
| 2286 | generally a bad idea to return a position greater than the end of the | ||
| 2287 | line; in other words, the @var{submatcher} search should not span lines. | ||
| 2288 | |||
| 2289 | @item (@var{matcher} @var{highlighters-or-anchoreds} ...) | ||
| 2290 | @end ignore | ||
| 2291 | 2300 | ||
| 2292 | @item (eval . @var{form}) | 2301 | @item (eval . @var{form}) |
| 2293 | Here @var{form} is an expression to be evaluated the first time | 2302 | Here @var{form} is an expression to be evaluated the first time |
| @@ -2301,7 +2310,7 @@ to match text which spans lines; this does not work reliably. While | |||
| 2301 | updating when you edit the buffer does not, since it considers text one | 2310 | updating when you edit the buffer does not, since it considers text one |
| 2302 | line at a time. If you have patterns that typically only span one | 2311 | line at a time. If you have patterns that typically only span one |
| 2303 | line but can occasionally span two or three, such as | 2312 | line but can occasionally span two or three, such as |
| 2304 | @samp{<title>...</title>}, you can ask font-lock to be more careful by | 2313 | @samp{<title>...</title>}, you can ask Font Lock to be more careful by |
| 2305 | setting @code{font-lock-multiline} to @code{t}. But it still will not | 2314 | setting @code{font-lock-multiline} to @code{t}. But it still will not |
| 2306 | work in all cases. | 2315 | work in all cases. |
| 2307 | 2316 | ||
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h index ac908d34b74..695535e1049 100644 --- a/lwlib/xlwmenuP.h +++ b/lwlib/xlwmenuP.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* Internals of a lightweight menubar widget. | 1 | /* Internals of a lightweight menubar widget. |
| 2 | Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc. | 2 | Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. |
| 3 | 3 | ||
| 4 | This file is part of the Lucid Widget Library. | 4 | This file is part of the Lucid Widget Library. |
| 5 | 5 | ||
diff --git a/man/ChangeLog b/man/ChangeLog index f91aba65fed..6db3896c457 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,32 @@ | |||
| 1 | 2005-04-10 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 2 | |||
| 3 | * cl.texi (Porting Common Lisp): Fix typo. | ||
| 4 | |||
| 5 | 2005-04-10 Luc Teirlinck <teirllm@auburn.edu> | ||
| 6 | |||
| 7 | * rmail.texi (Rmail Basics): Clarify description of `q' and `b'. | ||
| 8 | (Rmail Deletion): `C-d' in RMAIL buffer does not accept a numeric | ||
| 9 | argument. | ||
| 10 | (Rmail Inbox): Give full name of `rmail-primary-inbox-list'. | ||
| 11 | (Rmail Output): Clarify which statements apply to `o', `C-o' and | ||
| 12 | `w', respectively. | ||
| 13 | (Rmail Labels): Mention `l'. | ||
| 14 | (Rmail Attributes): Correct pxref. Mention `stored' attribute. | ||
| 15 | (Rmail Summary Edit): Describe `j' and RET. | ||
| 16 | |||
| 17 | 2005-04-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 18 | |||
| 19 | * xresources.texi (Lucid Resources): Added fonSet resource. | ||
| 20 | |||
| 21 | 2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 22 | |||
| 23 | * gnus.texi (RSS): Addition. | ||
| 24 | |||
| 25 | 2005-04-09 Luc Teirlinck <teirllm@auburn.edu> | ||
| 26 | |||
| 27 | * display.texi (Useless Whitespace): `indicate-unused-lines' is | ||
| 28 | now called `indicate-empty-lines'. | ||
| 29 | |||
| 1 | 2005-04-06 Kim F. Storm <storm@cua.dk> | 30 | 2005-04-06 Kim F. Storm <storm@cua.dk> |
| 2 | 31 | ||
| 3 | * cmdargs.texi (Initial Options): Add --bare-bones alias for -Q. | 32 | * cmdargs.texi (Initial Options): Add --bare-bones alias for -Q. |
diff --git a/man/cl.texi b/man/cl.texi index 6c52a16b733..c150e0d2b4d 100644 --- a/man/cl.texi +++ b/man/cl.texi | |||
| @@ -5144,7 +5144,7 @@ difficult to port large Common Lisp applications to Emacs. For | |||
| 5144 | one, some of the features in this package are not fully compliant | 5144 | one, some of the features in this package are not fully compliant |
| 5145 | with ANSI or Steele; @pxref{Common Lisp Compatibility}. But there | 5145 | with ANSI or Steele; @pxref{Common Lisp Compatibility}. But there |
| 5146 | are also quite a few features that this package does not provide | 5146 | are also quite a few features that this package does not provide |
| 5147 | at all. Here are some major omissions that you will want watch out | 5147 | at all. Here are some major omissions that you will want to watch out |
| 5148 | for when bringing Common Lisp code into Emacs. | 5148 | for when bringing Common Lisp code into Emacs. |
| 5149 | 5149 | ||
| 5150 | @itemize @bullet | 5150 | @itemize @bullet |
diff --git a/man/display.texi b/man/display.texi index 01b0291e5e8..c1b0c540fb5 100644 --- a/man/display.texi +++ b/man/display.texi | |||
| @@ -679,7 +679,7 @@ accessible portion (@pxref{Narrowing}), type @kbd{M-x | |||
| 679 | delete-trailing-whitespace @key{RET}}. (This command does not remove | 679 | delete-trailing-whitespace @key{RET}}. (This command does not remove |
| 680 | the form-feed characters.) | 680 | the form-feed characters.) |
| 681 | 681 | ||
| 682 | @vindex indicate-unused-lines | 682 | @vindex indicate-empty-lines |
| 683 | @vindex default-indicate-empty-lines | 683 | @vindex default-indicate-empty-lines |
| 684 | @cindex unused lines | 684 | @cindex unused lines |
| 685 | @cindex fringes, and unused line indication | 685 | @cindex fringes, and unused line indication |
| @@ -690,9 +690,9 @@ lines at the end of the buffer then stand out because they do not have | |||
| 690 | this image in the fringe. | 690 | this image in the fringe. |
| 691 | 691 | ||
| 692 | To enable this feature, set the buffer-local variable | 692 | To enable this feature, set the buffer-local variable |
| 693 | @code{indicate-unused-lines} to a non-@code{nil} value. The default | 693 | @code{indicate-empty-lines} to a non-@code{nil} value. The default |
| 694 | value of this variable is controlled by the variable | 694 | value of this variable is controlled by the variable |
| 695 | @code{default-indicate-unused-lines}; by setting that variable, you | 695 | @code{default-indicate-empty-lines}; by setting that variable, you |
| 696 | can enable or disable this feature for all new buffers. (This feature | 696 | can enable or disable this feature for all new buffers. (This feature |
| 697 | currently doesn't work on character terminals.) | 697 | currently doesn't work on character terminals.) |
| 698 | 698 | ||
diff --git a/man/gnus.texi b/man/gnus.texi index c670da11b22..6345cc2a18b 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -15873,14 +15873,45 @@ changes to a wiki (e.g. @url{http://cliki.net/recent-changes.rdf}). | |||
| 15873 | @acronym{RSS} has a quite regular and nice interface, and it's | 15873 | @acronym{RSS} has a quite regular and nice interface, and it's |
| 15874 | possible to get the information Gnus needs to keep groups updated. | 15874 | possible to get the information Gnus needs to keep groups updated. |
| 15875 | 15875 | ||
| 15876 | Note: you had better use Emacs which supports the @code{utf-8} coding | ||
| 15877 | system because @acronym{RSS} uses UTF-8 for encoding non-@acronym{ASCII} | ||
| 15878 | text by default. It is also used by default for non-@acronym{ASCII} | ||
| 15879 | group names. | ||
| 15880 | |||
| 15876 | @kindex G R (Summary) | 15881 | @kindex G R (Summary) |
| 15877 | Use @kbd{G R} from the summary buffer to subscribe to a feed---you | 15882 | Use @kbd{G R} from the summary buffer to subscribe to a feed---you will |
| 15878 | will be prompted for the location of the feed. | 15883 | be prompted for the location, the title and the description of the feed. |
| 15884 | The title, which allows any characters, will be used for the group name | ||
| 15885 | and the name of the group data file. The description can be omitted. | ||
| 15879 | 15886 | ||
| 15880 | An easy way to get started with @code{nnrss} is to say something like | 15887 | An easy way to get started with @code{nnrss} is to say something like |
| 15881 | the following in the group buffer: @kbd{B nnrss RET RET y}, then | 15888 | the following in the group buffer: @kbd{B nnrss RET RET y}, then |
| 15882 | subscribe to groups. | 15889 | subscribe to groups. |
| 15883 | 15890 | ||
| 15891 | The @code{nnrss} back end saves the group data file in | ||
| 15892 | @code{nnrss-directory} (see below) for each @code{nnrss} group. File | ||
| 15893 | names containing non-@acronym{ASCII} characters will be encoded by the | ||
| 15894 | coding system specified with the @code{nnmail-pathname-coding-system} | ||
| 15895 | variable. If it is @code{nil}, in Emacs the coding system defaults to | ||
| 15896 | the value of @code{default-file-name-coding-system}. If you are using | ||
| 15897 | XEmacs and want to use non-@acronym{ASCII} group names, you should set | ||
| 15898 | the value for the @code{nnmail-pathname-coding-system} variable properly. | ||
| 15899 | |||
| 15900 | @cindex OPML | ||
| 15901 | You can also use the following commands to import and export your | ||
| 15902 | subscriptions from a file in @acronym{OPML} format (Outline Processor | ||
| 15903 | Markup Language). | ||
| 15904 | |||
| 15905 | @defun nnrss-opml-import file | ||
| 15906 | Prompt for an @acronym{OPML} file, and subscribe to each feed in the | ||
| 15907 | file. | ||
| 15908 | @end defun | ||
| 15909 | |||
| 15910 | @defun nnrss-opml-export | ||
| 15911 | Write your current @acronym{RSS} subscriptions to a buffer in | ||
| 15912 | @acronym{OPML} format. | ||
| 15913 | @end defun | ||
| 15914 | |||
| 15884 | The following @code{nnrss} variables can be altered: | 15915 | The following @code{nnrss} variables can be altered: |
| 15885 | 15916 | ||
| 15886 | @table @code | 15917 | @table @code |
| @@ -15889,6 +15920,13 @@ The following @code{nnrss} variables can be altered: | |||
| 15889 | The directory where @code{nnrss} stores its files. The default is | 15920 | The directory where @code{nnrss} stores its files. The default is |
| 15890 | @file{~/News/rss/}. | 15921 | @file{~/News/rss/}. |
| 15891 | 15922 | ||
| 15923 | @item nnrss-file-coding-system | ||
| 15924 | @vindex nnrss-file-coding-system | ||
| 15925 | The coding system used when reading and writing the @code{nnrss} groups | ||
| 15926 | data files. The default is the value of | ||
| 15927 | @code{mm-universal-coding-system} (which defaults to @code{emacs-mule} | ||
| 15928 | in Emacs or @code{escape-quoted} in XEmacs). | ||
| 15929 | |||
| 15892 | @item nnrss-use-local | 15930 | @item nnrss-use-local |
| 15893 | @vindex nnrss-use-local | 15931 | @vindex nnrss-use-local |
| 15894 | @findex nnrss-generate-download-script | 15932 | @findex nnrss-generate-download-script |
diff --git a/man/rmail.texi b/man/rmail.texi index 5f5d63de14c..f7b9a1ea08e 100644 --- a/man/rmail.texi +++ b/man/rmail.texi | |||
| @@ -84,14 +84,16 @@ file after merging new mail from an inbox file (@pxref{Rmail Inbox}). | |||
| 84 | @findex rmail-quit | 84 | @findex rmail-quit |
| 85 | @kindex b @r{(Rmail)} | 85 | @kindex b @r{(Rmail)} |
| 86 | @findex rmail-bury | 86 | @findex rmail-bury |
| 87 | You can exit Rmail with @kbd{q} (@code{rmail-quit}); this expunges and | 87 | You can exit Rmail with @kbd{q} (@code{rmail-quit}); this expunges |
| 88 | saves the Rmail file and then switches to another buffer. But there is | 88 | and saves the Rmail file, then buries the Rmail buffer as well as its |
| 89 | no need to ``exit'' formally. If you switch from Rmail to editing in | 89 | summary buffer, if present (@pxref{Rmail Summary}). But there is no |
| 90 | other buffers, and never happen to switch back, you have exited. (The | 90 | need to ``exit'' formally. If you switch from Rmail to editing in |
| 91 | Rmail command @kbd{b}, @code{rmail-bury}, does this for you.) Just make | 91 | other buffers, and never happen to switch back, you have exited. Just |
| 92 | sure to save the Rmail file eventually (like any other file you have | 92 | make sure to save the Rmail file eventually (like any other file you |
| 93 | changed). @kbd{C-x s} is a good enough way to do this | 93 | have changed). @kbd{C-x s} is a good enough way to do this |
| 94 | (@pxref{Saving}). | 94 | (@pxref{Saving}). The Rmail command @kbd{b}, @code{rmail-bury}, |
| 95 | buries the Rmail buffer and its summary buffer without expunging and | ||
| 96 | saving the Rmail file. | ||
| 95 | 97 | ||
| 96 | @node Rmail Scrolling | 98 | @node Rmail Scrolling |
| 97 | @section Scrolling Within a Message | 99 | @section Scrolling Within a Message |
| @@ -255,8 +257,8 @@ current message and select another message. @kbd{d} | |||
| 255 | messages already deleted, while @kbd{C-d} (@code{rmail-delete-backward}) | 257 | messages already deleted, while @kbd{C-d} (@code{rmail-delete-backward}) |
| 256 | moves to the previous nondeleted message. If there is no nondeleted | 258 | moves to the previous nondeleted message. If there is no nondeleted |
| 257 | message to move to in the specified direction, the message that was just | 259 | message to move to in the specified direction, the message that was just |
| 258 | deleted remains current. A numeric argument to either command reverses | 260 | deleted remains current. @kbd{d} with a numeric argument is |
| 259 | the direction of motion after deletion. | 261 | equivalent to @kbd{C-d}. |
| 260 | 262 | ||
| 261 | @vindex rmail-delete-message-hook | 263 | @vindex rmail-delete-message-hook |
| 262 | Whenever Rmail deletes a message, it runs the hook | 264 | Whenever Rmail deletes a message, it runs the hook |
| @@ -317,7 +319,7 @@ means to use the default inbox. The default inbox is | |||
| 317 | or @file{/usr/mail/@var{username}}, depending on your operating system. | 319 | or @file{/usr/mail/@var{username}}, depending on your operating system. |
| 318 | 320 | ||
| 319 | To see what the default is on your system, use @kbd{C-h v | 321 | To see what the default is on your system, use @kbd{C-h v |
| 320 | rmail-primary-inbox @key{RET}}. You can specify the inbox file(s) for | 322 | rmail-primary-inbox-list @key{RET}}. You can specify the inbox file(s) for |
| 321 | any Rmail file with the command @code{set-rmail-inbox-list}; see | 323 | any Rmail file with the command @code{set-rmail-inbox-list}; see |
| 322 | @ref{Rmail Files}. | 324 | @ref{Rmail Files}. |
| 323 | 325 | ||
| @@ -508,13 +510,14 @@ second says which files in that directory to offer (all those that match | |||
| 508 | the regular expression). | 510 | the regular expression). |
| 509 | 511 | ||
| 510 | @vindex rmail-delete-after-output | 512 | @vindex rmail-delete-after-output |
| 511 | Copying a message gives the original copy of the message the | 513 | Copying a message with @kbd{o} or @kbd{C-o} gives the original copy |
| 512 | @samp{filed} attribute, so that @samp{filed} appears in the mode line | 514 | of the message the @samp{filed} attribute, so that @samp{filed} |
| 513 | when such a message is current. If you like to keep just a single copy | 515 | appears in the mode line when such a message is current. @kbd{w} |
| 514 | of every mail message, set the variable @code{rmail-delete-after-output} | 516 | gives it the @samp{stored} attribute. If you like to keep just a |
| 515 | to @code{t}; then the @kbd{o} and @kbd{C-o} commands delete the original | 517 | single copy of every mail message, set the variable |
| 516 | message after copying it. (You can undelete the original afterward if | 518 | @code{rmail-delete-after-output} to @code{t}; then the @kbd{o}, |
| 517 | you wish.) | 519 | @kbd{C-o} and @kbd{w} commands delete the original message after |
| 520 | copying it. (You can undelete the original afterward if you wish.) | ||
| 518 | 521 | ||
| 519 | Copying messages into files in system inbox format uses the header | 522 | Copying messages into files in system inbox format uses the header |
| 520 | fields that are displayed in Rmail at the time. Thus, if you use the | 523 | fields that are displayed in Rmail at the time. Thus, if you use the |
| @@ -567,7 +570,8 @@ Move to the next message that has one of the labels @var{labels} | |||
| 567 | @item C-M-p @var{labels} @key{RET} | 570 | @item C-M-p @var{labels} @key{RET} |
| 568 | Move to the previous message that has one of the labels @var{labels} | 571 | Move to the previous message that has one of the labels @var{labels} |
| 569 | (@code{rmail-previous-labeled-message}). | 572 | (@code{rmail-previous-labeled-message}). |
| 570 | @item C-M-l @var{labels} @key{RET} | 573 | @item l @var{labels} @key{RET} |
| 574 | @itemx C-M-l @var{labels} @key{RET} | ||
| 571 | Make a summary of all messages containing any of the labels @var{labels} | 575 | Make a summary of all messages containing any of the labels @var{labels} |
| 572 | (@code{rmail-summary-by-labels}). | 576 | (@code{rmail-summary-by-labels}). |
| 573 | @end table | 577 | @end table |
| @@ -626,7 +630,9 @@ Means the message is deleted. Assigned by deletion commands and | |||
| 626 | removed by undeletion commands (@pxref{Rmail Deletion}). | 630 | removed by undeletion commands (@pxref{Rmail Deletion}). |
| 627 | @item filed | 631 | @item filed |
| 628 | Means the message has been copied to some other file. Assigned by the | 632 | Means the message has been copied to some other file. Assigned by the |
| 629 | file output commands (@pxref{Rmail Files}). | 633 | @kbd{o} and @kbd{C-o} file output commands (@pxref{Rmail Output}). |
| 634 | @item stored | ||
| 635 | Assigned by the @kbd{w} file output command (@pxref{Rmail Output}). | ||
| 630 | @item answered | 636 | @item answered |
| 631 | Means you have mailed an answer to the message. Assigned by the @kbd{r} | 637 | Means you have mailed an answer to the message. Assigned by the @kbd{r} |
| 632 | command (@code{rmail-reply}). @xref{Rmail Reply}. | 638 | command (@code{rmail-reply}). @xref{Rmail Reply}. |
| @@ -912,6 +918,12 @@ Move to previous line and select its message. | |||
| 912 | Move to the last line, and select its message. | 918 | Move to the last line, and select its message. |
| 913 | @item < | 919 | @item < |
| 914 | Move to the first line, and select its message. | 920 | Move to the first line, and select its message. |
| 921 | @item j | ||
| 922 | @itemx @key{RET} | ||
| 923 | Select the message on the current line (ensuring that the RMAIL buffer | ||
| 924 | appears on the screen). With argument @var{n}, select message number | ||
| 925 | @var{n} and move to its line in the summary buffer; this signals an | ||
| 926 | error if the message is not listed in the summary buffer. | ||
| 915 | @item M-s @var{pattern} @key{RET} | 927 | @item M-s @var{pattern} @key{RET} |
| 916 | Search through messages for @var{pattern} starting with the current | 928 | Search through messages for @var{pattern} starting with the current |
| 917 | message; select the message found, and move point in the summary buffer | 929 | message; select the message found, and move point in the summary buffer |
| @@ -1263,7 +1275,7 @@ specifies the remote user name to use, @var{pass} may be used to | |||
| 1263 | specify the user password, @var{host-or-file-name} is the name or IP | 1275 | specify the user password, @var{host-or-file-name} is the name or IP |
| 1264 | address of the remote mail server to connect to; e.g., | 1276 | address of the remote mail server to connect to; e.g., |
| 1265 | @code{pop://smith:guessme@@remote.server.net}. | 1277 | @code{pop://smith:guessme@@remote.server.net}. |
| 1266 | 1278 | ||
| 1267 | @item imap | 1279 | @item imap |
| 1268 | A remote mailbox to be accessed via IMAP4 protocol. @var{User} | 1280 | A remote mailbox to be accessed via IMAP4 protocol. @var{User} |
| 1269 | specifies the remote user name to use, @var{pass} may be used to | 1281 | specifies the remote user name to use, @var{pass} may be used to |
| @@ -1287,7 +1299,7 @@ absolute file name of the @code{movemail} executable. If it is | |||
| 1287 | @code{nil}, Rmail searches for @code{movemail} in the directories | 1299 | @code{nil}, Rmail searches for @code{movemail} in the directories |
| 1288 | listed in @code{rmail-movemail-search-path} and @code{exec-path}, then | 1300 | listed in @code{rmail-movemail-search-path} and @code{exec-path}, then |
| 1289 | in @code{exec-directory}. | 1301 | in @code{exec-directory}. |
| 1290 | 1302 | ||
| 1291 | @node Remote Mailboxes | 1303 | @node Remote Mailboxes |
| 1292 | @section Retrieving Mail from Remote Mailboxes | 1304 | @section Retrieving Mail from Remote Mailboxes |
| 1293 | @pindex movemail | 1305 | @pindex movemail |
| @@ -1317,11 +1329,11 @@ Additionally, you may specify the password in the mailbox @acronym{URL}: | |||
| 1317 | @samp{pop://@var{username}:@var{password}@@@var{hostname}}. In this | 1329 | @samp{pop://@var{username}:@var{password}@@@var{hostname}}. In this |
| 1318 | case, @var{password} takes preference over the one set by | 1330 | case, @var{password} takes preference over the one set by |
| 1319 | @code{rmail-remote-password}. This is especially useful if you have | 1331 | @code{rmail-remote-password}. This is especially useful if you have |
| 1320 | several remote mailboxes with different passwords. | 1332 | several remote mailboxes with different passwords. |
| 1321 | 1333 | ||
| 1322 | For backward compatibility Rmail also supports two alternative ways | 1334 | For backward compatibility Rmail also supports two alternative ways |
| 1323 | of specifying remote POP mailboxes. Specifying inbox name in the form | 1335 | of specifying remote POP mailboxes. Specifying inbox name in the form |
| 1324 | @samp{po:@var{username}:@var{hostname}} is equivalent to | 1336 | @samp{po:@var{username}:@var{hostname}} is equivalent to |
| 1325 | @samp{pop://@var{username}@@@var{hostname}}. Alternatively, you may set | 1337 | @samp{pop://@var{username}@@@var{hostname}}. Alternatively, you may set |
| 1326 | a ``file name'' of @samp{po:@var{username}} in the inbox list of an | 1338 | a ``file name'' of @samp{po:@var{username}} in the inbox list of an |
| 1327 | Rmail file. @code{Movemail} will handle such a name by opening a | 1339 | Rmail file. @code{Movemail} will handle such a name by opening a |
| @@ -1333,7 +1345,7 @@ will in this case specify the machine to look for the server on. | |||
| 1333 | supported only by the @code{mailutils movemail}. To specify an IMAP | 1345 | supported only by the @code{mailutils movemail}. To specify an IMAP |
| 1334 | mailbox in the inbox list, use the following mailbox @acronym{URL}: | 1346 | mailbox in the inbox list, use the following mailbox @acronym{URL}: |
| 1335 | @samp{imap://@var{username}[:@var{password}]@@@var{hostname}}. The | 1347 | @samp{imap://@var{username}[:@var{password}]@@@var{hostname}}. The |
| 1336 | @var{password} part is optional, as descrbed above. | 1348 | @var{password} part is optional, as described above. |
| 1337 | 1349 | ||
| 1338 | @vindex rmail-remote-password | 1350 | @vindex rmail-remote-password |
| 1339 | @vindex rmail-remote-password-required | 1351 | @vindex rmail-remote-password-required |
| @@ -1343,10 +1355,10 @@ mailbox in the inbox list, use the following mailbox @acronym{URL}: | |||
| 1343 | following algorithm to retrieve it: | 1355 | following algorithm to retrieve it: |
| 1344 | 1356 | ||
| 1345 | @enumerate | 1357 | @enumerate |
| 1346 | @item | 1358 | @item |
| 1347 | If the @var{password} is present in mailbox URL (see above), it is | 1359 | If the @var{password} is present in mailbox URL (see above), it is |
| 1348 | used. | 1360 | used. |
| 1349 | @item | 1361 | @item |
| 1350 | If the variable @code{rmail-remote-password} is non-@code{nil}, its | 1362 | If the variable @code{rmail-remote-password} is non-@code{nil}, its |
| 1351 | value is used. | 1363 | value is used. |
| 1352 | @item | 1364 | @item |
diff --git a/man/xresources.texi b/man/xresources.texi index aaf7262d060..7e1beb2442a 100644 --- a/man/xresources.texi +++ b/man/xresources.texi | |||
| @@ -393,6 +393,19 @@ Emacs.dialog*.font: 8x16 | |||
| 393 | @end example | 393 | @end example |
| 394 | 394 | ||
| 395 | @noindent | 395 | @noindent |
| 396 | The Lucid menus can display multilingual text in your locale. For more | ||
| 397 | information about fontsets see the man page for XCreateFontSet. To enable | ||
| 398 | multilingual menu text you specify a fontSet resource instead of the font | ||
| 399 | resource. If both font and fontSet resources are specified, the fontSet | ||
| 400 | resource is used. To specify | ||
| 401 | @samp{-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*} for both the popup and | ||
| 402 | menu bar menus, write this: | ||
| 403 | |||
| 404 | @example | ||
| 405 | Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,* | ||
| 406 | @end example | ||
| 407 | |||
| 408 | @noindent | ||
| 396 | Experience shows that on some systems you may need to add | 409 | Experience shows that on some systems you may need to add |
| 397 | @samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}. On | 410 | @samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}. On |
| 398 | some other systems, you must not add @samp{shell.}. | 411 | some other systems, you must not add @samp{shell.}. |
| @@ -402,6 +415,8 @@ some other systems, you must not add @samp{shell.}. | |||
| 402 | @table @code | 415 | @table @code |
| 403 | @item font | 416 | @item font |
| 404 | Font for menu item text. | 417 | Font for menu item text. |
| 418 | @item fontSet | ||
| 419 | Fontset for menu item text. | ||
| 405 | @item foreground | 420 | @item foreground |
| 406 | Color of the foreground. | 421 | Color of the foreground. |
| 407 | @item background | 422 | @item background |
diff --git a/src/ChangeLog b/src/ChangeLog index ec60d4add5f..26b8a9ce5ad 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,40 @@ | |||
| 1 | 2005-04-10 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * emacs.c (standard_args): Rename --bare-bones to --quick. | ||
| 4 | Add -D aka --basic-display. | ||
| 5 | |||
| 6 | * buffer.c (Fmake_indirect_buffer): Clear out some local variables. | ||
| 7 | |||
| 8 | 2005-04-09 Richard M. Stallman <rms@gnu.org> | ||
| 9 | |||
| 10 | * keymap.c (where_is_internal): Convert a string used as event type | ||
| 11 | into "(any string)". | ||
| 12 | |||
| 13 | * lread.c (Vloads_in_progress): Not static. | ||
| 14 | |||
| 15 | * fns.c (Vloads_in_progress): Add extern. | ||
| 16 | (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil. | ||
| 17 | |||
| 18 | 2005-04-09 Thien-Thi Nguyen <ttn@surf.glug.org> | ||
| 19 | |||
| 20 | * dispnew.c (mirror_line_dance): Avoid crash if W2 is null. | ||
| 21 | |||
| 22 | 2005-04-09 Lute Kamstra <lute@gnu.org> | ||
| 23 | |||
| 24 | * print.c (PRINTPREPARE): Check if the marker PRINTCHARFUN is | ||
| 25 | within the accessible part of the buffer. | ||
| 26 | |||
| 27 | 2005-04-09 Kim F. Storm <storm@cua.dk> | ||
| 28 | |||
| 29 | * lread.c (readevalloop): Add args START and END as region in | ||
| 30 | current buffer to read. Callers changed. | ||
| 31 | When specified, narrow to this region only when reading, | ||
| 32 | not during eval. Track next point to read from during eval. | ||
| 33 | Also restore point to "real" buffer position before eval. | ||
| 34 | (Feval_region): Don't save excursion and restriction here, and | ||
| 35 | don't narrow to region. Just pass region to readevalloop. | ||
| 36 | Note: Point is now preserved even when PRINTFLAG is nil. | ||
| 37 | |||
| 1 | 2005-04-08 Kim F. Storm <storm@cua.dk> | 38 | 2005-04-08 Kim F. Storm <storm@cua.dk> |
| 2 | 39 | ||
| 3 | * xdisp.c (syms_of_xdisp): Init overlay-arrow-string to "=>". | 40 | * xdisp.c (syms_of_xdisp): Init overlay-arrow-string to "=>". |
| @@ -30,8 +67,8 @@ | |||
| 30 | 67 | ||
| 31 | 2005-04-01 Kenichi Handa <handa@m17n.org> | 68 | 2005-04-01 Kenichi Handa <handa@m17n.org> |
| 32 | 69 | ||
| 33 | * lisp.h (Vascii_upcase_table, Vascii_canon_table, | 70 | * lisp.h (Vascii_upcase_table, Vascii_canon_table) |
| 34 | Vascii_eqv_table): Extern them. | 71 | (Vascii_eqv_table): Extern them. |
| 35 | 72 | ||
| 36 | * casetab.c (set_case_table): If standard is nonzero, setup | 73 | * casetab.c (set_case_table): If standard is nonzero, setup |
| 37 | Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table. | 74 | Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table. |
diff --git a/src/ChangeLog.6 b/src/ChangeLog.6 index 67569eedeca..2da83619eb4 100644 --- a/src/ChangeLog.6 +++ b/src/ChangeLog.6 | |||
| @@ -1079,7 +1079,7 @@ | |||
| 1079 | scroll_bar_up_arrow, scroll_bar_down_arrow. | 1079 | scroll_bar_up_arrow, scroll_bar_down_arrow. |
| 1080 | (win32_scroll_bar_click): New enum constant. | 1080 | (win32_scroll_bar_click): New enum constant. |
| 1081 | 1081 | ||
| 1082 | 1996-05-03 Andrw Innes <andrewi@harlequin.co.uk> | 1082 | 1996-05-03 Andrew Innes <andrewi@harlequin.co.uk> |
| 1083 | 1083 | ||
| 1084 | * makefile.nt (SUBSYSTEM) [NTGUI]: Remove conditional. | 1084 | * makefile.nt (SUBSYSTEM) [NTGUI]: Remove conditional. |
| 1085 | (LINK_FLAGS): Explicitly set base address, and stack and heap sizes. | 1085 | (LINK_FLAGS): Explicitly set base address, and stack and heap sizes. |
diff --git a/src/buffer.c b/src/buffer.c index c934bdf22c3..1fba9136375 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -630,7 +630,21 @@ CLONE nil means the indirect buffer's state is reset to default values. */) | |||
| 630 | XMARKER (b->zv_marker)->insertion_type = 1; | 630 | XMARKER (b->zv_marker)->insertion_type = 1; |
| 631 | } | 631 | } |
| 632 | else | 632 | else |
| 633 | clone_per_buffer_values (b->base_buffer, b); | 633 | { |
| 634 | struct buffer *old_b = current_buffer; | ||
| 635 | |||
| 636 | clone_per_buffer_values (b->base_buffer, b); | ||
| 637 | b->filename = Qnil; | ||
| 638 | b->file_truename = Qnil; | ||
| 639 | b->display_count = make_number (0); | ||
| 640 | b->backed_up = Qnil; | ||
| 641 | b->auto_save_file_name = Qnil; | ||
| 642 | set_buffer_internal_1 (b); | ||
| 643 | Fset (intern ("buffer-save-without-query"), Qnil); | ||
| 644 | Fset (intern ("buffer-file-number"), Qnil); | ||
| 645 | Fset (intern ("buffer-stale-function"), Qnil); | ||
| 646 | set_buffer_internal_1 (old_b); | ||
| 647 | } | ||
| 634 | 648 | ||
| 635 | return buf; | 649 | return buf; |
| 636 | } | 650 | } |
| @@ -931,7 +945,7 @@ is the default binding of variable. */) | |||
| 931 | } | 945 | } |
| 932 | 946 | ||
| 933 | /* Return an alist of the Lisp-level buffer-local bindings of | 947 | /* Return an alist of the Lisp-level buffer-local bindings of |
| 934 | buffer BUF. That is, do't include the variables maintained | 948 | buffer BUF. That is, don't include the variables maintained |
| 935 | in special slots in the buffer object. */ | 949 | in special slots in the buffer object. */ |
| 936 | 950 | ||
| 937 | static Lisp_Object | 951 | static Lisp_Object |
diff --git a/src/dispnew.c b/src/dispnew.c index 2f807b41cb4..f549a8dde91 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -3154,14 +3154,20 @@ mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p) | |||
| 3154 | int m2_from; | 3154 | int m2_from; |
| 3155 | 3155 | ||
| 3156 | w2 = frame_row_to_window (root, frame_from); | 3156 | w2 = frame_row_to_window (root, frame_from); |
| 3157 | m2 = w2->current_matrix; | 3157 | /* ttn@surf.glug.org: when enabling menu bar using `emacs |
| 3158 | m2_from = frame_from - m2->matrix_y; | 3158 | -nw', FROM_FRAME sometimes has no associated window. |
| 3159 | copy_row_except_pointers (m->rows + window_to, | 3159 | This check avoids a segfault if W2 is null. */ |
| 3160 | m2->rows + m2_from); | 3160 | if (w2) |
| 3161 | 3161 | { | |
| 3162 | /* If frame line is empty, window line is empty, too. */ | 3162 | m2 = w2->current_matrix; |
| 3163 | if (!retained_p[copy_from[i]]) | 3163 | m2_from = frame_from - m2->matrix_y; |
| 3164 | m->rows[window_to].enabled_p = 0; | 3164 | copy_row_except_pointers (m->rows + window_to, |
| 3165 | m2->rows + m2_from); | ||
| 3166 | |||
| 3167 | /* If frame line is empty, window line is empty, too. */ | ||
| 3168 | if (!retained_p[copy_from[i]]) | ||
| 3169 | m->rows[window_to].enabled_p = 0; | ||
| 3170 | } | ||
| 3165 | sync_p = 1; | 3171 | sync_p = 1; |
| 3166 | } | 3172 | } |
| 3167 | else if (from_inside_window_p) | 3173 | else if (from_inside_window_p) |
diff --git a/src/emacs.c b/src/emacs.c index f6d32e175b3..c368c57a11f 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -1806,8 +1806,8 @@ struct standard_args standard_args[] = | |||
| 1806 | { "-d", "--display", 60, 1 }, | 1806 | { "-d", "--display", 60, 1 }, |
| 1807 | { "-display", 0, 60, 1 }, | 1807 | { "-display", 0, 60, 1 }, |
| 1808 | /* Now for the options handled in startup.el. */ | 1808 | /* Now for the options handled in startup.el. */ |
| 1809 | { "-Q", "--bare-bones", 55, 0 }, | 1809 | { "-Q", "--quick", 55, 0 }, |
| 1810 | { "-bare-bones", 0, 55, 0 }, | 1810 | { "-quick", 0, 55, 0 }, |
| 1811 | { "-q", "--no-init-file", 50, 0 }, | 1811 | { "-q", "--no-init-file", 50, 0 }, |
| 1812 | { "-no-init-file", 0, 50, 0 }, | 1812 | { "-no-init-file", 0, 50, 0 }, |
| 1813 | { "-no-site-file", "--no-site-file", 40, 0 }, | 1813 | { "-no-site-file", "--no-site-file", 40, 0 }, |
| @@ -1818,6 +1818,8 @@ struct standard_args standard_args[] = | |||
| 1818 | { "-i", "--icon-type", 15, 0 }, | 1818 | { "-i", "--icon-type", 15, 0 }, |
| 1819 | { "-itype", 0, 15, 0 }, | 1819 | { "-itype", 0, 15, 0 }, |
| 1820 | { "-iconic", "--iconic", 15, 0 }, | 1820 | { "-iconic", "--iconic", 15, 0 }, |
| 1821 | { "-D", "--basic-display", 12, 0}, | ||
| 1822 | { "--basic-display", 0, 12, 0}, | ||
| 1821 | { "-bg", "--background-color", 10, 1 }, | 1823 | { "-bg", "--background-color", 10, 1 }, |
| 1822 | { "-background", 0, 10, 1 }, | 1824 | { "-background", 0, 10, 1 }, |
| 1823 | { "-fg", "--foreground-color", 10, 1 }, | 1825 | { "-fg", "--foreground-color", 10, 1 }, |
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Random utility Lisp functions. | 1 | /* Random utility Lisp functions. |
| 2 | Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 98, 99, 2000, 2001, 02, 03, 2004 | 2 | Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000, |
| 3 | Free Software Foundation, Inc. | 3 | 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -66,6 +66,7 @@ int use_file_dialog; | |||
| 66 | extern int minibuffer_auto_raise; | 66 | extern int minibuffer_auto_raise; |
| 67 | extern Lisp_Object minibuf_window; | 67 | extern Lisp_Object minibuf_window; |
| 68 | extern Lisp_Object Vlocale_coding_system; | 68 | extern Lisp_Object Vlocale_coding_system; |
| 69 | extern Lisp_Object Vloads_in_progress; | ||
| 69 | 70 | ||
| 70 | Lisp_Object Qstring_lessp, Qprovide, Qrequire; | 71 | Lisp_Object Qstring_lessp, Qprovide, Qrequire; |
| 71 | Lisp_Object Qyes_or_no_p_history; | 72 | Lisp_Object Qyes_or_no_p_history; |
| @@ -1147,7 +1148,18 @@ If STRING is multibyte, the result is STRING itself. | |||
| 1147 | Otherwise it is a newly created string, with no text properties. | 1148 | Otherwise it is a newly created string, with no text properties. |
| 1148 | If STRING is unibyte and contains an individual 8-bit byte (i.e. not | 1149 | If STRING is unibyte and contains an individual 8-bit byte (i.e. not |
| 1149 | part of a multibyte form), it is converted to the corresponding | 1150 | part of a multibyte form), it is converted to the corresponding |
| 1150 | multibyte character of charset `eight-bit-control' or `eight-bit-graphic'. */) | 1151 | multibyte character of charset `eight-bit-control' or `eight-bit-graphic'. |
| 1152 | Beware, this often doesn't really do what you think it does. | ||
| 1153 | It is similar to (decode-coding-string STRING 'emacs-mule-unix). | ||
| 1154 | If you're not sure, whether to use `string-as-multibyte' or | ||
| 1155 | `string-to-multibyte', use `string-to-multibyte'. Beware: | ||
| 1156 | (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201) | ||
| 1157 | (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300) | ||
| 1158 | (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300) | ||
| 1159 | (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201) | ||
| 1160 | but | ||
| 1161 | (aref (string-as-multibyte "\201\300") 0) -> 2240 | ||
| 1162 | (aref (string-as-multibyte "\201\300") 1) -> <error> */) | ||
| 1151 | (string) | 1163 | (string) |
| 1152 | Lisp_Object string; | 1164 | Lisp_Object string; |
| 1153 | { | 1165 | { |
| @@ -1181,7 +1193,8 @@ Otherwise it is a newly created string, with no text properties. | |||
| 1181 | Characters 0200 through 0237 are converted to eight-bit-control | 1193 | Characters 0200 through 0237 are converted to eight-bit-control |
| 1182 | characters of the same character code. Characters 0240 through 0377 | 1194 | characters of the same character code. Characters 0240 through 0377 |
| 1183 | are converted to eight-bit-graphic characters of the same character | 1195 | are converted to eight-bit-graphic characters of the same character |
| 1184 | codes. */) | 1196 | codes. |
| 1197 | This is similar to (decode-coding-string STRING 'binary) */) | ||
| 1185 | (string) | 1198 | (string) |
| 1186 | Lisp_Object string; | 1199 | Lisp_Object string; |
| 1187 | { | 1200 | { |
| @@ -3444,9 +3457,15 @@ The normal messages at start and end of loading FILENAME are suppressed. */) | |||
| 3444 | CHECK_SYMBOL (feature); | 3457 | CHECK_SYMBOL (feature); |
| 3445 | 3458 | ||
| 3446 | /* Record the presence of `require' in this file | 3459 | /* Record the presence of `require' in this file |
| 3447 | even if the feature specified is already loaded. */ | 3460 | even if the feature specified is already loaded. |
| 3448 | LOADHIST_ATTACH (Fcons (Qrequire, feature)); | 3461 | But not more than once in any file, |
| 3449 | 3462 | and not when we aren't loading a file. */ | |
| 3463 | if (! NILP (Vloads_in_progress)) | ||
| 3464 | { | ||
| 3465 | tem = Fcons (Qrequire, feature); | ||
| 3466 | if (NILP (Fmember (tem, Vcurrent_load_list))) | ||
| 3467 | LOADHIST_ATTACH (tem); | ||
| 3468 | } | ||
| 3450 | tem = Fmemq (feature, Vfeatures); | 3469 | tem = Fmemq (feature, Vfeatures); |
| 3451 | 3470 | ||
| 3452 | if (NILP (tem)) | 3471 | if (NILP (tem)) |
diff --git a/src/keyboard.c b/src/keyboard.c index 39891b1a95d..48c47502f85 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -2252,12 +2252,16 @@ make_ctrl_char (c) | |||
| 2252 | return c; | 2252 | return c; |
| 2253 | } | 2253 | } |
| 2254 | 2254 | ||
| 2255 | /* Display help echo in the echo area. | 2255 | /* Display the help-echo property of the character after the mouse pointer. |
| 2256 | Either show it in the echo area, or call show-help-function to display | ||
| 2257 | it by other means (maybe in a tooltip). | ||
| 2256 | 2258 | ||
| 2257 | HELP a string means display that string, HELP nil means clear the | 2259 | If HELP is nil, that means clear the previous help echo. |
| 2258 | help echo. If HELP is a function, call it with OBJECT and POS as | 2260 | |
| 2259 | arguments; the function should return a help string or nil for | 2261 | If HELP is a string, display that string. If HELP is a function, |
| 2260 | none. For all other types of HELP evaluate it to obtain a string. | 2262 | call it with OBJECT and POS as arguments; the function should |
| 2263 | return a help string or nil for none. For all other types of HELP, | ||
| 2264 | evaluate it to obtain a string. | ||
| 2261 | 2265 | ||
| 2262 | WINDOW is the window in which the help was generated, if any. | 2266 | WINDOW is the window in which the help was generated, if any. |
| 2263 | It is nil if not in a window. | 2267 | It is nil if not in a window. |
diff --git a/src/keymap.c b/src/keymap.c index a55563a4e92..3706ad52c9e 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -765,7 +765,9 @@ usage: (map-keymap FUNCTION KEYMAP) */) | |||
| 765 | remove that. Also remove a menu help string as second element. | 765 | remove that. Also remove a menu help string as second element. |
| 766 | 766 | ||
| 767 | If AUTOLOAD is nonzero, load autoloadable keymaps | 767 | If AUTOLOAD is nonzero, load autoloadable keymaps |
| 768 | that are referred to with indirection. */ | 768 | that are referred to with indirection. |
| 769 | |||
| 770 | This can GC because menu_item_eval_property calls Feval. */ | ||
| 769 | 771 | ||
| 770 | Lisp_Object | 772 | Lisp_Object |
| 771 | get_keyelt (object, autoload) | 773 | get_keyelt (object, autoload) |
| @@ -2555,6 +2557,19 @@ where_is_internal (definition, keymaps, firstonly, noindirect, no_remap) | |||
| 2555 | continue; | 2557 | continue; |
| 2556 | 2558 | ||
| 2557 | record_sequence: | 2559 | record_sequence: |
| 2560 | /* Don't annoy user with strings from a menu such as | ||
| 2561 | Select Paste. Change them all to "(any string)", | ||
| 2562 | so that there seems to be only one menu item | ||
| 2563 | to report. */ | ||
| 2564 | if (! NILP (sequence)) | ||
| 2565 | { | ||
| 2566 | Lisp_Object tem; | ||
| 2567 | tem = Faref (sequence, make_number (XVECTOR (sequence)->size - 1)); | ||
| 2568 | if (STRINGP (tem)) | ||
| 2569 | Faset (sequence, make_number (XVECTOR (sequence)->size - 1), | ||
| 2570 | build_string ("(any string)")); | ||
| 2571 | } | ||
| 2572 | |||
| 2558 | /* It is a true unshadowed match. Record it, unless it's already | 2573 | /* It is a true unshadowed match. Record it, unless it's already |
| 2559 | been seen (as could happen when inheriting keymaps). */ | 2574 | been seen (as could happen when inheriting keymaps). */ |
| 2560 | if (NILP (Fmember (sequence, found))) | 2575 | if (NILP (Fmember (sequence, found))) |
| @@ -2732,7 +2747,7 @@ where_is_internal_2 (args, key, binding) | |||
| 2732 | } | 2747 | } |
| 2733 | 2748 | ||
| 2734 | 2749 | ||
| 2735 | /* This function cannot GC. */ | 2750 | /* This function can GC because get_keyelt can. */ |
| 2736 | 2751 | ||
| 2737 | static Lisp_Object | 2752 | static Lisp_Object |
| 2738 | where_is_internal_1 (binding, key, definition, noindirect, this, last, | 2753 | where_is_internal_1 (binding, key, definition, noindirect, this, last, |
diff --git a/src/lread.c b/src/lread.c index 5b5ea478a16..d36d45c8c7d 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -194,7 +194,7 @@ static int new_backquote_flag; | |||
| 194 | /* A list of file names for files being loaded in Fload. Used to | 194 | /* A list of file names for files being loaded in Fload. Used to |
| 195 | check for recursive loads. */ | 195 | check for recursive loads. */ |
| 196 | 196 | ||
| 197 | static Lisp_Object Vloads_in_progress; | 197 | Lisp_Object Vloads_in_progress; |
| 198 | 198 | ||
| 199 | /* Non-zero means load dangerous compiled Lisp files. */ | 199 | /* Non-zero means load dangerous compiled Lisp files. */ |
| 200 | 200 | ||
| @@ -207,6 +207,7 @@ static Lisp_Object Vbytecomp_version_regexp; | |||
| 207 | static void to_multibyte P_ ((char **, char **, int *)); | 207 | static void to_multibyte P_ ((char **, char **, int *)); |
| 208 | static void readevalloop P_ ((Lisp_Object, FILE*, Lisp_Object, | 208 | static void readevalloop P_ ((Lisp_Object, FILE*, Lisp_Object, |
| 209 | Lisp_Object (*) (), int, | 209 | Lisp_Object (*) (), int, |
| 210 | Lisp_Object, Lisp_Object, | ||
| 210 | Lisp_Object, Lisp_Object)); | 211 | Lisp_Object, Lisp_Object)); |
| 211 | static Lisp_Object load_unwind P_ ((Lisp_Object)); | 212 | static Lisp_Object load_unwind P_ ((Lisp_Object)); |
| 212 | static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object)); | 213 | static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object)); |
| @@ -913,7 +914,8 @@ Return t if file exists. */) | |||
| 913 | load_descriptor_list | 914 | load_descriptor_list |
| 914 | = Fcons (make_number (fileno (stream)), load_descriptor_list); | 915 | = Fcons (make_number (fileno (stream)), load_descriptor_list); |
| 915 | load_in_progress++; | 916 | load_in_progress++; |
| 916 | readevalloop (Qget_file_char, stream, file, Feval, 0, Qnil, Qnil); | 917 | readevalloop (Qget_file_char, stream, file, Feval, |
| 918 | 0, Qnil, Qnil, Qnil, Qnil); | ||
| 917 | unbind_to (count, Qnil); | 919 | unbind_to (count, Qnil); |
| 918 | 920 | ||
| 919 | /* Run any load-hooks for this file. */ | 921 | /* Run any load-hooks for this file. */ |
| @@ -1291,16 +1293,19 @@ end_of_file_error () | |||
| 1291 | 1293 | ||
| 1292 | /* UNIBYTE specifies how to set load_convert_to_unibyte | 1294 | /* UNIBYTE specifies how to set load_convert_to_unibyte |
| 1293 | for this invocation. | 1295 | for this invocation. |
| 1294 | READFUN, if non-nil, is used instead of `read'. */ | 1296 | READFUN, if non-nil, is used instead of `read'. |
| 1297 | START, END is region in current buffer (from eval-region). */ | ||
| 1295 | 1298 | ||
| 1296 | static void | 1299 | static void |
| 1297 | readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, readfun) | 1300 | readevalloop (readcharfun, stream, sourcename, evalfun, |
| 1301 | printflag, unibyte, readfun, start, end) | ||
| 1298 | Lisp_Object readcharfun; | 1302 | Lisp_Object readcharfun; |
| 1299 | FILE *stream; | 1303 | FILE *stream; |
| 1300 | Lisp_Object sourcename; | 1304 | Lisp_Object sourcename; |
| 1301 | Lisp_Object (*evalfun) (); | 1305 | Lisp_Object (*evalfun) (); |
| 1302 | int printflag; | 1306 | int printflag; |
| 1303 | Lisp_Object unibyte, readfun; | 1307 | Lisp_Object unibyte, readfun; |
| 1308 | Lisp_Object start, end; | ||
| 1304 | { | 1309 | { |
| 1305 | register int c; | 1310 | register int c; |
| 1306 | register Lisp_Object val; | 1311 | register Lisp_Object val; |
| @@ -1328,28 +1333,41 @@ readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, read | |||
| 1328 | continue_reading_p = 1; | 1333 | continue_reading_p = 1; |
| 1329 | while (continue_reading_p) | 1334 | while (continue_reading_p) |
| 1330 | { | 1335 | { |
| 1336 | int count1 = SPECPDL_INDEX (); | ||
| 1337 | |||
| 1331 | if (b != 0 && NILP (b->name)) | 1338 | if (b != 0 && NILP (b->name)) |
| 1332 | error ("Reading from killed buffer"); | 1339 | error ("Reading from killed buffer"); |
| 1333 | 1340 | ||
| 1341 | if (!NILP (start)) | ||
| 1342 | { | ||
| 1343 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); | ||
| 1344 | record_unwind_protect (save_restriction_restore, save_restriction_save ()); | ||
| 1345 | Fgoto_char (start); | ||
| 1346 | Fnarrow_to_region (make_number (BEGV), end); | ||
| 1347 | } | ||
| 1348 | |||
| 1334 | instream = stream; | 1349 | instream = stream; |
| 1350 | read_next: | ||
| 1335 | c = READCHAR; | 1351 | c = READCHAR; |
| 1336 | if (c == ';') | 1352 | if (c == ';') |
| 1337 | { | 1353 | { |
| 1338 | while ((c = READCHAR) != '\n' && c != -1); | 1354 | while ((c = READCHAR) != '\n' && c != -1); |
| 1339 | continue; | 1355 | goto read_next; |
| 1356 | } | ||
| 1357 | if (c < 0) | ||
| 1358 | { | ||
| 1359 | unbind_to (count1, Qnil); | ||
| 1360 | break; | ||
| 1340 | } | 1361 | } |
| 1341 | if (c < 0) break; | ||
| 1342 | 1362 | ||
| 1343 | /* Ignore whitespace here, so we can detect eof. */ | 1363 | /* Ignore whitespace here, so we can detect eof. */ |
| 1344 | if (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\r') | 1364 | if (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\r') |
| 1345 | continue; | 1365 | goto read_next; |
| 1346 | 1366 | ||
| 1347 | if (!NILP (Vpurify_flag) && c == '(') | 1367 | if (!NILP (Vpurify_flag) && c == '(') |
| 1348 | { | 1368 | { |
| 1349 | int count1 = SPECPDL_INDEX (); | ||
| 1350 | record_unwind_protect (unreadpure, Qnil); | 1369 | record_unwind_protect (unreadpure, Qnil); |
| 1351 | val = read_list (-1, readcharfun); | 1370 | val = read_list (-1, readcharfun); |
| 1352 | unbind_to (count1, Qnil); | ||
| 1353 | } | 1371 | } |
| 1354 | else | 1372 | else |
| 1355 | { | 1373 | { |
| @@ -1375,6 +1393,10 @@ readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, read | |||
| 1375 | val = read_internal_start (readcharfun, Qnil, Qnil); | 1393 | val = read_internal_start (readcharfun, Qnil, Qnil); |
| 1376 | } | 1394 | } |
| 1377 | 1395 | ||
| 1396 | if (!NILP (start) && continue_reading_p) | ||
| 1397 | start = Fpoint_marker (); | ||
| 1398 | unbind_to (count1, Qnil); | ||
| 1399 | |||
| 1378 | val = (*evalfun) (val); | 1400 | val = (*evalfun) (val); |
| 1379 | 1401 | ||
| 1380 | if (printflag) | 1402 | if (printflag) |
| @@ -1433,7 +1455,8 @@ This function preserves the position of point. */) | |||
| 1433 | specbind (Qstandard_output, tem); | 1455 | specbind (Qstandard_output, tem); |
| 1434 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); | 1456 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); |
| 1435 | BUF_SET_PT (XBUFFER (buf), BUF_BEGV (XBUFFER (buf))); | 1457 | BUF_SET_PT (XBUFFER (buf), BUF_BEGV (XBUFFER (buf))); |
| 1436 | readevalloop (buf, 0, filename, Feval, !NILP (printflag), unibyte, Qnil); | 1458 | readevalloop (buf, 0, filename, Feval, |
| 1459 | !NILP (printflag), unibyte, Qnil, Qnil, Qnil); | ||
| 1437 | unbind_to (count, Qnil); | 1460 | unbind_to (count, Qnil); |
| 1438 | 1461 | ||
| 1439 | return Qnil; | 1462 | return Qnil; |
| @@ -1465,15 +1488,10 @@ This function does not move point. */) | |||
| 1465 | tem = printflag; | 1488 | tem = printflag; |
| 1466 | specbind (Qstandard_output, tem); | 1489 | specbind (Qstandard_output, tem); |
| 1467 | 1490 | ||
| 1468 | if (NILP (printflag)) | 1491 | /* readevalloop calls functions which check the type of start and end. */ |
| 1469 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); | ||
| 1470 | record_unwind_protect (save_restriction_restore, save_restriction_save ()); | ||
| 1471 | |||
| 1472 | /* This both uses start and checks its type. */ | ||
| 1473 | Fgoto_char (start); | ||
| 1474 | Fnarrow_to_region (make_number (BEGV), end); | ||
| 1475 | readevalloop (cbuf, 0, XBUFFER (cbuf)->filename, Feval, | 1492 | readevalloop (cbuf, 0, XBUFFER (cbuf)->filename, Feval, |
| 1476 | !NILP (printflag), Qnil, read_function); | 1493 | !NILP (printflag), Qnil, read_function, |
| 1494 | start, end); | ||
| 1477 | 1495 | ||
| 1478 | return unbind_to (count, Qnil); | 1496 | return unbind_to (count, Qnil); |
| 1479 | } | 1497 | } |
diff --git a/src/print.c b/src/print.c index 8bb55f21248..47e338e8492 100644 --- a/src/print.c +++ b/src/print.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Lisp object printing and output streams. | 1 | /* Lisp object printing and output streams. |
| 2 | Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 03, 2004 | 2 | Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, |
| 3 | Free Software Foundation, Inc. | 3 | 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -211,13 +211,17 @@ void print_interval (); | |||
| 211 | } \ | 211 | } \ |
| 212 | if (MARKERP (printcharfun)) \ | 212 | if (MARKERP (printcharfun)) \ |
| 213 | { \ | 213 | { \ |
| 214 | if (!(XMARKER (original)->buffer)) \ | 214 | EMACS_INT marker_pos; \ |
| 215 | if (!(XMARKER (printcharfun)->buffer)) \ | ||
| 215 | error ("Marker does not point anywhere"); \ | 216 | error ("Marker does not point anywhere"); \ |
| 216 | if (XMARKER (original)->buffer != current_buffer) \ | 217 | if (XMARKER (printcharfun)->buffer != current_buffer) \ |
| 217 | set_buffer_internal (XMARKER (original)->buffer); \ | 218 | set_buffer_internal (XMARKER (printcharfun)->buffer); \ |
| 219 | marker_pos = marker_position (printcharfun); \ | ||
| 220 | if (marker_pos < BEGV || marker_pos > ZV) \ | ||
| 221 | error ("Marker is outside the accessible part of the buffer"); \ | ||
| 218 | old_point = PT; \ | 222 | old_point = PT; \ |
| 219 | old_point_byte = PT_BYTE; \ | 223 | old_point_byte = PT_BYTE; \ |
| 220 | SET_PT_BOTH (marker_position (printcharfun), \ | 224 | SET_PT_BOTH (marker_pos, \ |
| 221 | marker_byte_position (printcharfun)); \ | 225 | marker_byte_position (printcharfun)); \ |
| 222 | start_point = PT; \ | 226 | start_point = PT; \ |
| 223 | start_point_byte = PT_BYTE; \ | 227 | start_point_byte = PT_BYTE; \ |
diff --git a/src/window.c b/src/window.c index 574c348c460..e16416d6fb2 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -3173,6 +3173,9 @@ selects the buffer of the selected window before each command. */) | |||
| 3173 | if (EQ (window, selected_window)) | 3173 | if (EQ (window, selected_window)) |
| 3174 | return window; | 3174 | return window; |
| 3175 | 3175 | ||
| 3176 | /* Store the current buffer's actual point into the | ||
| 3177 | old selected window. It belongs to that window, | ||
| 3178 | and when the window is not selected, must be in the window. */ | ||
| 3176 | if (!NILP (selected_window)) | 3179 | if (!NILP (selected_window)) |
| 3177 | { | 3180 | { |
| 3178 | ow = XWINDOW (selected_window); | 3181 | ow = XWINDOW (selected_window); |
| @@ -5638,8 +5641,9 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5638 | #endif | 5641 | #endif |
| 5639 | #endif | 5642 | #endif |
| 5640 | 5643 | ||
| 5641 | /* "Swap out" point from the selected window | 5644 | /* "Swap out" point from the selected window's buffer |
| 5642 | into its buffer. We do this now, before | 5645 | into the window itself. (Normally the pointm of the selected |
| 5646 | window holds garbage.) We do this now, before | ||
| 5643 | restoring the window contents, and prevent it from | 5647 | restoring the window contents, and prevent it from |
| 5644 | being done later on when we select a new window. */ | 5648 | being done later on when we select a new window. */ |
| 5645 | if (! NILP (XWINDOW (selected_window)->buffer)) | 5649 | if (! NILP (XWINDOW (selected_window)->buffer)) |
| @@ -5789,10 +5793,11 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5789 | FRAME_ROOT_WINDOW (f) = data->root_window; | 5793 | FRAME_ROOT_WINDOW (f) = data->root_window; |
| 5790 | /* Prevent "swapping out point" in the old selected window | 5794 | /* Prevent "swapping out point" in the old selected window |
| 5791 | using the buffer that has been restored into it. | 5795 | using the buffer that has been restored into it. |
| 5792 | Use the point value from the beginning of this function | 5796 | We already swapped out point that from that window's old buffer. */ |
| 5793 | since unshow_buffer (called from delete_all_subwindows) | ||
| 5794 | could have altered it. */ | ||
| 5795 | selected_window = Qnil; | 5797 | selected_window = Qnil; |
| 5798 | |||
| 5799 | /* Arrange *not* to restore point in the buffer that was | ||
| 5800 | current when the window configuration was saved. */ | ||
| 5796 | if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)) | 5801 | if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)) |
| 5797 | set_marker_restricted (XWINDOW (data->current_window)->pointm, | 5802 | set_marker_restricted (XWINDOW (data->current_window)->pointm, |
| 5798 | make_number (old_point), | 5803 | make_number (old_point), |