diff options
| author | Karoly Lorentey | 2006-03-22 15:16:06 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-03-22 15:16:06 +0000 |
| commit | d4717700cc0b7af6197c19e22bd912e3b1ed67ee (patch) | |
| tree | 4e2a630584b23f670aff57a512a8f2d8182e39c4 /lisp | |
| parent | f1be5774242454844bf21fbf32e0f6541e2add34 (diff) | |
| parent | d63cd76657e12b92a5d7736a15bc9b97a7f9990e (diff) | |
| download | emacs-d4717700cc0b7af6197c19e22bd912e3b1ed67ee.tar.gz emacs-d4717700cc0b7af6197c19e22bd912e3b1ed67ee.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-160
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-161
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-162
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-163
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-164
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-165
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-166
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-167
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-168
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-169
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-170
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-171
Update from CVS: man/mh-e.texi (Folders): Various edits.
* emacs@sv.gnu.org/emacs--devo--0--patch-172
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-58
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-59
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-60
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-61
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-62
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-63
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-64
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-534
Diffstat (limited to 'lisp')
45 files changed, 1369 insertions, 710 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f58a240c3ec..acfc4975c54 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,239 @@ | |||
| 1 | 2006-03-21 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * cus-edit.el (custom-face-set): Call custom-push-theme before | ||
| 4 | face-spec set so that `changed' theme is correctly saved. | ||
| 5 | (custom-face-reset-standard): Reset to recalculated face rather | ||
| 6 | than defface spec. | ||
| 7 | |||
| 8 | * custom.el (custom-push-theme): Only save `changed' theme if the | ||
| 9 | current face does not match the defface specs. | ||
| 10 | |||
| 11 | 2006-03-21 Simon Josefsson <jas@extundo.com> | ||
| 12 | |||
| 13 | * pgg-gpg.el: Ideas below based on patch from Sascha Wilde | ||
| 14 | <wilde@sha-bang.de>. | ||
| 15 | (pgg-gpg-use-agent): New variable. | ||
| 16 | (pgg-gpg-process-region): Use it. | ||
| 17 | (pgg-gpg-encrypt-region): Likewise. | ||
| 18 | (pgg-gpg-encrypt-symmetric-region): Likewise. | ||
| 19 | (pgg-gpg-decrypt-region): Likewise. | ||
| 20 | (pgg-gpg-sign-region): Likewise. | ||
| 21 | (pgg-gpg-possibly-cache-passphrase): Don't cache a nil password. | ||
| 22 | |||
| 23 | 2006-03-21 Carsten Dominik <dominik@science.uva.nl> | ||
| 24 | |||
| 25 | * textmodes/org.el: (org-open-at-point): Fixed bug in wiki-style | ||
| 26 | bracket links. | ||
| 27 | |||
| 28 | 2006-03-21 Kim F. Storm <storm@cua.dk> | ||
| 29 | |||
| 30 | * progmodes/gdb-ui.el (gdb-reset): Set buffer local value of | ||
| 31 | fringe-indicator-alist instead of modifying global value. | ||
| 32 | (gdb-frame-handler): Likewise. | ||
| 33 | |||
| 34 | 2006-03-21 Nick Roberts <nickrob@snap.net.nz> | ||
| 35 | |||
| 36 | * diff-mode.el (diff-function): Make it inherit from diff-header | ||
| 37 | instead of diff-context. | ||
| 38 | |||
| 39 | * progmodes/gdb-ui.el (hollow-right-triangle): Define as fringe | ||
| 40 | bitmap. | ||
| 41 | (gdb-info-stack-custom): Rename from gdb-info-frames-custom and | ||
| 42 | change names in macro above for consistency. | ||
| 43 | (gdb-frame-handler): Use hollow-right-triangle for all selected | ||
| 44 | frames which except the innermost (where execution has stopped). | ||
| 45 | (gdb-reset): Reset buffer-local values of overlay-arrow. | ||
| 46 | |||
| 47 | 2006-03-20 Richard Stallman <rms@gnu.org> | ||
| 48 | |||
| 49 | * simple.el (set-mark-command): Doc fix. | ||
| 50 | |||
| 51 | * files.el (display-buffer-other-frame): New command. | ||
| 52 | (ctl-x-4-map): Bind C-x 5 C-o to it. | ||
| 53 | |||
| 54 | 2006-03-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 55 | |||
| 56 | * jit-lock.el (jit-lock-function): Check for the actual defer-timer | ||
| 57 | rather than just defer-time, in case defer-time has been changed but | ||
| 58 | the timer isn't running yet. | ||
| 59 | (jit-lock-deferred-fontify): Correspondingly let-bind defer-timer. | ||
| 60 | |||
| 61 | 2006-03-19 Luc Teirlinck <teirllm@auburn.edu> | ||
| 62 | |||
| 63 | * help-mode.el (help-follow-symbol): New function. | ||
| 64 | Essentially identical to the old `help-follow', but do not let | ||
| 65 | `push-button' do the work when on an xref. | ||
| 66 | (help-mode-map): Bind `help-follow-symbol' to "C-c C-c". | ||
| 67 | |||
| 68 | 2006-03-19 Richard Stallman <rms@gnu.org> | ||
| 69 | |||
| 70 | * help-mode.el (help-xref-symbol-regexp): Make no xref for symbol | ||
| 71 | preceded by the word `program'. | ||
| 72 | (help-follow-mouse, help-follow): Throw error if not on xref. | ||
| 73 | Delete no longer used args. | ||
| 74 | |||
| 75 | 2006-03-20 Nick Roberts <nickrob@snap.net.nz> | ||
| 76 | |||
| 77 | * progmodes/gdb-ui.el (gdb-stopped): Even when there is no source | ||
| 78 | annotation ensure gud-overlay-arrow-position is redisplayed. | ||
| 79 | |||
| 80 | 2006-03-19 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 81 | |||
| 82 | * textmodes/bibtex.el (bibtex-include-OPTkey) | ||
| 83 | (bibtex-entry-field-alist, bibtex-generate-url-list): Mark as risky. | ||
| 84 | (bibtex-autokey-name-case-convert) | ||
| 85 | (bibtex-autokey-titleword-case-convert): Make these the aliases | ||
| 86 | for the following two variables. | ||
| 87 | (bibtex-autokey-name-case-convert-function) | ||
| 88 | (bibtex-autokey-titleword-case-convert-function): Make these the | ||
| 89 | real names. | ||
| 90 | (bibtex-font-lock-keywords): Make bibtex-font-lock-url and | ||
| 91 | bibtex-font-lock-crossref sublists. | ||
| 92 | (bibtex-mode): Revert 2005-12-30 change (which made | ||
| 93 | completion-ignore-case buffer-local). | ||
| 94 | (bibtex-url): Simplify. | ||
| 95 | |||
| 96 | 2006-03-19 Kim F. Storm <storm@cua.dk> | ||
| 97 | |||
| 98 | * emulation/cua-rect.el (cua--highlight-rectangle): Set overlay | ||
| 99 | cursor property value to 2 (to align with C level change). | ||
| 100 | |||
| 101 | 2006-03-19 Bill Wohler <wohler@newt.com> | ||
| 102 | |||
| 103 | * image.el (image-load-path-for-library): Shorten first line in | ||
| 104 | docstring. | ||
| 105 | |||
| 106 | 2006-03-18 Richard Stallman <rms@gnu.org> | ||
| 107 | |||
| 108 | * mail/rmail.el (rmail-reply-regexp): Undo previous change. | ||
| 109 | |||
| 110 | 2006-03-18 Ben North <ben@redfrontdoor.org> (tiny change) | ||
| 111 | |||
| 112 | * isearch.el (isearch-other-meta-char): Handle user bindings for | ||
| 113 | shifted control characters. | ||
| 114 | |||
| 115 | 2006-03-18 Agustin Martin <agustin.martin@hispalinux.es> | ||
| 116 | |||
| 117 | * textmodes/ispell.el (ispell-skip-region-alist): Add "_+" to the | ||
| 118 | part that matches email addresses, file names, etc. | ||
| 119 | |||
| 120 | 2006-03-18 Eli Zaretskii <eliz@gnu.org> | ||
| 121 | |||
| 122 | * term/w32-win.el (mouse-set-font): | ||
| 123 | Mention w32-list-proportional-fonts in the doc string. | ||
| 124 | |||
| 125 | 2006-03-18 Kim F. Storm <storm@cua.dk> | ||
| 126 | |||
| 127 | * ido.el (ido-cache-ftp-work-directory-time): Doc fix. | ||
| 128 | (ido-unc-hosts): New user option to explicitly define list of know | ||
| 129 | UNC-style hosts for completion. | ||
| 130 | (ido-cache-unc-host-shares-time): New user option. | ||
| 131 | (ido-is-unc-root, ido-is-unc-host, ido-cache-unc-valid): | ||
| 132 | New helper functions for UNC file-name support. | ||
| 133 | (ido-may-cache-directory): Check for UNC host. Simplify. | ||
| 134 | (ido-wash-history): Clean out old UNC hosts. | ||
| 135 | (ido-nonreadable-directory-p): UNC hosts are always readable. | ||
| 136 | (ido-directory-too-big-p): UNC hosts are never too big. | ||
| 137 | (ido-set-current-directory): Handle UNC root path. | ||
| 138 | (ido-file-name-all-completions): Complete UNC host names from | ||
| 139 | ido-unc-hosts list. Cache UNC host shares. | ||
| 140 | (ido-make-file-list-1): Don't filter UNC root. | ||
| 141 | (ido-exhibit): Check for // in root directory, and switch to UNC | ||
| 142 | mode by setting ido-current-directory to //. | ||
| 143 | |||
| 144 | 2006-03-17 Luc Teirlinck <teirllm@auburn.edu> | ||
| 145 | |||
| 146 | * cus-edit.el (customize-changed-options): Mention explicit | ||
| 147 | version number as default in prompt. | ||
| 148 | |||
| 149 | 2006-03-17 Bill Wohler <wohler@newt.com> | ||
| 150 | |||
| 151 | * image.el (image-load-path-for-library): Minor docstring fix. | ||
| 152 | |||
| 153 | 2006-03-17 Carsten Dominik <dominik@science.uva.nl> | ||
| 154 | |||
| 155 | * textmodes/org.el (org-read-date): Include subgroup 5 into | ||
| 156 | replacement text. | ||
| 157 | (org-popup-calendar-for-date-prompt): Fix customization type. | ||
| 158 | |||
| 159 | 2006-03-17 Nick Roberts <nickrob@snap.net.nz> | ||
| 160 | |||
| 161 | * progmodes/gdb-ui.el (gud-watch): Provide completion. | ||
| 162 | (gdb-continuation): New variable. | ||
| 163 | (gdb-send): Deal with continuation lines. | ||
| 164 | |||
| 165 | * progmodes/gud.el (gud-gdb-complete-command) | ||
| 166 | (gud-gdb-run-command-fetch-lines): Adapt for use with watch | ||
| 167 | expressions. | ||
| 168 | (gud-tooltip-mode): Use buffer-local value. | ||
| 169 | |||
| 170 | 2006-03-16 Kim F. Storm <storm@cua.dk> | ||
| 171 | |||
| 172 | * ido.el (ido-edit-input): Use selected match, if any. | ||
| 173 | |||
| 174 | 2006-03-16 Bill Wohler <wohler@newt.com> | ||
| 175 | |||
| 176 | * image.el (image-load-path-for-library): Prefer user's images in | ||
| 177 | image-load-path. | ||
| 178 | |||
| 179 | 2006-03-16 Martin Rudalics <rudalics@gmx.at> | ||
| 180 | |||
| 181 | * mouse.el (mouse-drag-vertical-line): Use window-inside-edges | ||
| 182 | when checking for attempt to drag leftmost or rightmost scrollbar. | ||
| 183 | |||
| 184 | 2006-03-16 Nick Roberts <nickrob@snap.net.nz> | ||
| 185 | |||
| 186 | * progmodes/gdb-ui.el (gdb-inferior-status): New variable. | ||
| 187 | (gdb-force-mode-line-update): New function. | ||
| 188 | (gdb-resync, gdb-starting, gdb-signal, gdb-exited, gdb-stopped) | ||
| 189 | (gdb-exited): Use them. | ||
| 190 | (gdb-signal): New fuction. | ||
| 191 | (gdb-annotation-rules): Provide a rule for it. | ||
| 192 | |||
| 193 | 2006-03-16 Kenichi Handa <handa@m17n.org> | ||
| 194 | |||
| 195 | * international/mule.el (auto-coding-regexp-alist): Add entries | ||
| 196 | for Unicode BOM. | ||
| 197 | |||
| 198 | * sort.el (sort-build-lists): Temporarily bind | ||
| 199 | inhibit-field-text-motion to t. | ||
| 200 | |||
| 201 | 2006-03-15 Luc Teirlinck <teirllm@auburn.edu> | ||
| 202 | |||
| 203 | * locate.el (locate-command, locate-make-command-line) | ||
| 204 | (locate-fcodes-file, locate-update-command) | ||
| 205 | (locate-prompt-for-command, locate, locate-with-filter) | ||
| 206 | (locate-get-file-positions): Doc fixes. | ||
| 207 | (locate-buffer-name, locate-header-face): Remove leading `*' in | ||
| 208 | defcustom. | ||
| 209 | (locate-filter-output): Use `keep-lines' instead of its alias | ||
| 210 | `delete-non-matching-lines'. | ||
| 211 | (locate-get-filename, locate-get-dirname): Add introductory comment. | ||
| 212 | (locate-find-directory-other-window): Give appropriate error | ||
| 213 | message if used outside main listing. | ||
| 214 | |||
| 215 | 2006-03-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 216 | |||
| 217 | * font-lock.el (font-lock-lines-before): Delete variable, subsumed by | ||
| 218 | the new extend-region feature. | ||
| 219 | (font-lock-after-change-function): Update correspondingly. | ||
| 220 | * jit-lock.el (jit-lock-after-change): Update correspondingly. | ||
| 221 | * progmodes/grep.el (font-lock-lines-before): Don't disable. | ||
| 222 | |||
| 223 | 2006-03-15 Bill Wohler <wohler@newt.com> | ||
| 224 | |||
| 225 | * image.el (image-load-path-for-library): Fix example by not | ||
| 226 | recommending that one binds image-load-path. Just defvar it to | ||
| 227 | placate compiler and only use it if previously defined. | ||
| 228 | |||
| 229 | 2006-03-15 Carsten Dominik <dominik@science.uva.nl> | ||
| 230 | |||
| 231 | * textmodes/org.el (org-insert-centered): Use `string-width' to | ||
| 232 | make underlining work for wide characters. | ||
| 233 | (org-goto-map, org-agenda-mode-map, org-mode-map): Explicitly bind | ||
| 234 | TAB to `org-cycle', to make sure that no binding in | ||
| 235 | `outline-mode-map' can supercede it. | ||
| 236 | |||
| 1 | 2006-03-14 Ken Manheimer <ken.manheimer@gmail.com> | 237 | 2006-03-14 Ken Manheimer <ken.manheimer@gmail.com> |
| 2 | 238 | ||
| 3 | * allout.el: Increment version to 2.2.1 in file commentary. | 239 | * allout.el: Increment version to 2.2.1 in file commentary. |
| @@ -28,8 +264,8 @@ | |||
| 28 | 264 | ||
| 29 | * progmodes/gdb-ui.el (gdb-var-list): Change order of first two | 265 | * progmodes/gdb-ui.el (gdb-var-list): Change order of first two |
| 30 | elements. | 266 | elements. |
| 31 | (gdb-find-watch-expression): Make it work for arrays too. Follow | 267 | (gdb-find-watch-expression): Make it work for arrays too. |
| 32 | change to gdb-var-list. | 268 | Follow change to gdb-var-list. |
| 33 | (gud-watch): Allow the user to enter variable name with a prexix | 269 | (gud-watch): Allow the user to enter variable name with a prexix |
| 34 | arg. Create keybindings. | 270 | arg. Create keybindings. |
| 35 | (gdb-var-create-handler, gdb-var-evaluate-expression-handler) | 271 | (gdb-var-create-handler, gdb-var-evaluate-expression-handler) |
| @@ -37,8 +273,7 @@ | |||
| 37 | (gdb-var-delete, gdb-edit-value, gdb-speedbar-expand-node) | 273 | (gdb-var-delete, gdb-edit-value, gdb-speedbar-expand-node) |
| 38 | (gdb-var-list-children-handler-1, gdb-var-update-handler-1): | 274 | (gdb-var-list-children-handler-1, gdb-var-update-handler-1): |
| 39 | Follow change to gdb-var-list. | 275 | Follow change to gdb-var-list. |
| 40 | (gdb-starting): Don't show the overlay arrows when program is | 276 | (gdb-starting): Don't show the overlay arrows when program is running. |
| 41 | running. | ||
| 42 | 277 | ||
| 43 | * progmodes/gud.el (gud-speedbar-buttons): Follow change to | 278 | * progmodes/gud.el (gud-speedbar-buttons): Follow change to |
| 44 | gdb-var-list. | 279 | gdb-var-list. |
| @@ -46,27 +281,32 @@ | |||
| 46 | 2006-03-14 Bill Wohler <wohler@newt.com> | 281 | 2006-03-14 Bill Wohler <wohler@newt.com> |
| 47 | 282 | ||
| 48 | * image.el (image-load-path-for-library): Pass value of path | 283 | * image.el (image-load-path-for-library): Pass value of path |
| 49 | rather than symbol. Always return list of directories. Guarantee | 284 | rather than symbol. Always return list of directories. |
| 50 | that image directory comes first. | 285 | Guarantee that image directory comes first. |
| 51 | 286 | ||
| 52 | 2006-03-14 Alan Mackenzie <acm@muc.de> | 287 | 2006-03-14 Alan Mackenzie <acm@muc.de> |
| 53 | 288 | ||
| 54 | * font-core.el: New function/variable | 289 | * font-core.el (font-lock-extend-region\(-function\)?.): |
| 55 | font-lock-extend-region\(-function\)?. | 290 | New function/variable. |
| 56 | 291 | ||
| 57 | * font-lock.el (font-lock-after-change-function): Call | 292 | * font-lock.el (font-lock-after-change-function): |
| 58 | font-lock-extend-region. Obey font-lock-lines-before. | 293 | Call font-lock-extend-region. Obey font-lock-lines-before. |
| 59 | (font-lock-default-fontify-region): Remove reference to | 294 | (font-lock-default-fontify-region): Remove reference to |
| 60 | font-lock-lines-before. | 295 | font-lock-lines-before. |
| 61 | 296 | ||
| 62 | * jit-lock.el (jit-lock-after-change): Call | 297 | * jit-lock.el (jit-lock-after-change): |
| 63 | font-lock-extend-region. Obey font-lock-lines-before. | 298 | Call font-lock-extend-region. Obey font-lock-lines-before. |
| 64 | 299 | ||
| 65 | 2006-03-14 David Ponce <david@dponce.com> | 300 | 2006-03-14 David Ponce <david@dponce.com> |
| 66 | 301 | ||
| 67 | * tree-widget.el (tree-widget-themes-load-path) | 302 | * tree-widget.el (tree-widget-themes-load-path) |
| 68 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. | 303 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. |
| 69 | 304 | ||
| 305 | 2006-03-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 306 | |||
| 307 | * pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than | ||
| 308 | wwidth. | ||
| 309 | |||
| 70 | 2006-03-13 Ryan Yeske <rcyeske@gmail.com> | 310 | 2006-03-13 Ryan Yeske <rcyeske@gmail.com> |
| 71 | 311 | ||
| 72 | * net/rcirc.el (rcirc) <defgroup>: Add link to manual. | 312 | * net/rcirc.el (rcirc) <defgroup>: Add link to manual. |
| @@ -87,18 +327,18 @@ | |||
| 87 | themes sub-directory found in tree-widget-themes-load-path. | 327 | themes sub-directory found in tree-widget-themes-load-path. |
| 88 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. | 328 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. |
| 89 | (tree-widget--locate-sub-directory): Return all occurrences. | 329 | (tree-widget--locate-sub-directory): Return all occurrences. |
| 90 | (tree-widget-themes-path): New function. Replace | 330 | (tree-widget-themes-path): New function. |
| 91 | tree-widget-themes-directory, and return a list of directories. | 331 | Replace tree-widget-themes-directory, and return a list of directories. |
| 92 | (tree-widget-set-parent-theme) | 332 | (tree-widget-set-parent-theme) |
| 93 | (tree-widget-lookup-image): Use it. | 333 | (tree-widget-lookup-image): Use it. |
| 94 | 334 | ||
| 95 | 2006-03-13 Carsten Dominik <dominik@science.uva.nl> | 335 | 2006-03-13 Carsten Dominik <dominik@science.uva.nl> |
| 96 | 336 | ||
| 97 | * textmodes/org.el: (org-link-search): Avoid self-matching of | 337 | * textmodes/org.el (org-link-search): Avoid self-matching of |
| 98 | links, allow target text to be distributed over several lines. | 338 | links, allow target text to be distributed over several lines. |
| 99 | (org-search-not-link): New function. | 339 | (org-search-not-link): New function. |
| 100 | (org-set-regexps-and-options, org-get-current-options): New | 340 | (org-set-regexps-and-options, org-get-current-options): |
| 101 | startup options. | 341 | New startup options. |
| 102 | (org-export-as-html): Take odd-level setting from local variable. | 342 | (org-export-as-html): Take odd-level setting from local variable. |
| 103 | (org-fontify-emphasized-text): New option. | 343 | (org-fontify-emphasized-text): New option. |
| 104 | (org-set-font-lock-defaults): Include emphasized text. | 344 | (org-set-font-lock-defaults): Include emphasized text. |
| @@ -169,8 +409,8 @@ | |||
| 169 | 409 | ||
| 170 | 2006-03-11 Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> | 410 | 2006-03-11 Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> |
| 171 | 411 | ||
| 172 | * progmodes/octave-mod.el (octave-indent-for-comment): Behave | 412 | * progmodes/octave-mod.el (octave-indent-for-comment): |
| 173 | according to do string. | 413 | Behave according to do string. |
| 174 | 414 | ||
| 175 | 2006-03-11 Agustin Martin <agustin.martin@hispalinux.es> | 415 | 2006-03-11 Agustin Martin <agustin.martin@hispalinux.es> |
| 176 | 416 | ||
| @@ -208,7 +448,7 @@ | |||
| 208 | * progmodes/gdb-ui.el (gdb-remove-text-properties): Rename from | 448 | * progmodes/gdb-ui.el (gdb-remove-text-properties): Rename from |
| 209 | gdb-remove-mouse-face and remove help-echo too. | 449 | gdb-remove-mouse-face and remove help-echo too. |
| 210 | (gdb-enqueue-input): Correct conditional clause. | 450 | (gdb-enqueue-input): Correct conditional clause. |
| 211 | 451 | ||
| 212 | 2006-03-10 Glenn Morris <rgm@gnu.org> | 452 | 2006-03-10 Glenn Morris <rgm@gnu.org> |
| 213 | 453 | ||
| 214 | * calendar/calendar.el (calendar-holidays): Doc fix. | 454 | * calendar/calendar.el (calendar-holidays): Doc fix. |
| @@ -233,8 +473,8 @@ | |||
| 233 | 473 | ||
| 234 | 2006-03-07 Chong Yidong <cyd@stupidchicken.com> | 474 | 2006-03-07 Chong Yidong <cyd@stupidchicken.com> |
| 235 | 475 | ||
| 236 | * files.el (hack-local-variables-confirm): Set | 476 | * files.el (hack-local-variables-confirm): |
| 237 | coding-system-for-read to nil before writing to .emacs. | 477 | Set coding-system-for-read to nil before writing to .emacs. |
| 238 | 478 | ||
| 239 | * arc-mode.el (archive-extract): Check if an existing buffer name | 479 | * arc-mode.el (archive-extract): Check if an existing buffer name |
| 240 | comes from a different archive. | 480 | comes from a different archive. |
| @@ -256,8 +496,8 @@ | |||
| 256 | 496 | ||
| 257 | 2006-03-07 Carsten Dominik <dominik@science.uva.nl> | 497 | 2006-03-07 Carsten Dominik <dominik@science.uva.nl> |
| 258 | 498 | ||
| 259 | * textmodes/org.el: Move defvars out of eval-when-compile. Use | 499 | * textmodes/org.el: Move defvars out of eval-when-compile. |
| 260 | buffer-file-name variable. | 500 | Use buffer-file-name variable. |
| 261 | (org-agenda-file-to-end, org-agenda-file-to-front): Remove unused | 501 | (org-agenda-file-to-end, org-agenda-file-to-front): Remove unused |
| 262 | arg `file'. | 502 | arg `file'. |
| 263 | (org-level-faces): Remove startup dependency. | 503 | (org-level-faces): Remove startup dependency. |
| @@ -272,8 +512,7 @@ | |||
| 272 | (org-tag): New face. | 512 | (org-tag): New face. |
| 273 | (org-get-level-face): New function. | 513 | (org-get-level-face): New function. |
| 274 | (org-set-font-lock-defaults): Simplify setup for headlines. | 514 | (org-set-font-lock-defaults): Simplify setup for headlines. |
| 275 | (org-complete): Pass common substring to | 515 | (org-complete): Pass common substring to `display-completion-list'. |
| 276 | `display-completion-list'. | ||
| 277 | 516 | ||
| 278 | 2006-03-06 David Ponce <david@dponce.com> | 517 | 2006-03-06 David Ponce <david@dponce.com> |
| 279 | 518 | ||
| @@ -445,9 +684,8 @@ | |||
| 445 | 684 | ||
| 446 | * t-mouse.el: New file. | 685 | * t-mouse.el: New file. |
| 447 | (t-mouse-tty): Use with-temp-buffer. Add more terminal types. | 686 | (t-mouse-tty): Use with-temp-buffer. Add more terminal types. |
| 448 | (t-mouse-lispy-buffer-posn-from-coords): Remove. Use the C | 687 | (t-mouse-lispy-buffer-posn-from-coords): Remove. |
| 449 | primitive... | 688 | (t-mouse-make-event-element): Use posn-at-x-y instead. |
| 450 | (t-mouse-make-event-element): ...posn-at-x-y instead. | ||
| 451 | (t-mouse-make-event): Deal with Fedora Core 3. | 689 | (t-mouse-make-event): Deal with Fedora Core 3. |
| 452 | (t-mouse-make-event): Don't sink the `stupid text mode menubar'. | 690 | (t-mouse-make-event): Don't sink the `stupid text mode menubar'. |
| 453 | (t-mouse-mouse-position-function): New function. Use it instead | 691 | (t-mouse-mouse-position-function): New function. Use it instead |
| @@ -480,8 +718,7 @@ | |||
| 480 | * textmodes/reftex-index.el (reftex-index-map): Add `follow-mouse' | 718 | * textmodes/reftex-index.el (reftex-index-map): Add `follow-mouse' |
| 481 | binding. | 719 | binding. |
| 482 | 720 | ||
| 483 | * textmodes/reftex-toc.el (reftex-toc-map): Add `follow-mouse' | 721 | * textmodes/reftex-toc.el (reftex-toc-map): Add `follow-mouse' binding. |
| 484 | binding. | ||
| 485 | 722 | ||
| 486 | * textmodes/reftex-sel.el (reftex-select-label-map) | 723 | * textmodes/reftex-sel.el (reftex-select-label-map) |
| 487 | (reftex-select-bib-map): Add `follow-mouse' binding. | 724 | (reftex-select-bib-map): Add `follow-mouse' binding. |
| @@ -4059,20 +4296,20 @@ | |||
| 4059 | CC Mode update to 5.31. | 4296 | CC Mode update to 5.31. |
| 4060 | 4297 | ||
| 4061 | * progmodes/cc-subword.el: Add a dummy `c-subword-mode' for | 4298 | * progmodes/cc-subword.el: Add a dummy `c-subword-mode' for |
| 4062 | Emacsen which lack `define-minor-mode'. (Currently Emacs <21. We | 4299 | Emacsen which lack `define-minor-mode'. (Currently Emacs <21. |
| 4063 | might do this function properly in the future). | 4300 | We might do this function properly in the future). |
| 4064 | 4301 | ||
| 4065 | * progmodes/cc-cmds.el, cc-defs.el, cc-styles.el, cc-vars.el: New | 4302 | * progmodes/cc-cmds.el, cc-defs.el, cc-styles.el, cc-vars.el: |
| 4066 | macros c-sentence-end and c-default-value-sentence end, to cope | 4303 | New macros c-sentence-end and c-default-value-sentence end, to cope |
| 4067 | with Emacs 22's new function `sentence-end'. | 4304 | with Emacs 22's new function `sentence-end'. |
| 4068 | 4305 | ||
| 4069 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4306 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4070 | 4307 | ||
| 4071 | * progmodes/cc-cmds.el (c-show-syntactic-information): Solved the | 4308 | * progmodes/cc-cmds.el (c-show-syntactic-information): Solve the |
| 4072 | compat issue using `c-put-overlay' and `c-delete-overlay'. | 4309 | compat issue using `c-put-overlay' and `c-delete-overlay'. |
| 4073 | 4310 | ||
| 4074 | * progmodes/cc-defs.el (c-put-overlay, c-delete-overlay): New | 4311 | * progmodes/cc-defs.el (c-put-overlay, c-delete-overlay): |
| 4075 | compat macros to handle overlays/extents. | 4312 | New compat macros to handle overlays/extents. |
| 4076 | 4313 | ||
| 4077 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4314 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4078 | 4315 | ||
| @@ -4093,20 +4330,19 @@ | |||
| 4093 | 4330 | ||
| 4094 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4331 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4095 | 4332 | ||
| 4096 | * progmodes/cc-fonts.el (c-make-syntactic-matcher): New internal | 4333 | * progmodes/cc-fonts.el (c-make-syntactic-matcher): |
| 4097 | helper. | 4334 | New internal helper. |
| 4098 | 4335 | ||
| 4099 | (c-cpp-matchers, c-basic-matchers-before): Use the `eval' | 4336 | (c-cpp-matchers, c-basic-matchers-before): Use the `eval' |
| 4100 | construct to make the indirect face lookup work in XEmacs. | 4337 | construct to make the indirect face lookup work in XEmacs. |
| 4101 | 4338 | ||
| 4102 | (c-cpp-matchers): Append the negation char face to the existing | 4339 | (c-cpp-matchers): Append the negation char face to the existing |
| 4103 | fontification, so that the cpp face doesn't disappear. Use | 4340 | fontification, so that the cpp face doesn't disappear. |
| 4104 | `c-make-syntactic-matcher' to avoid negation chars in comments and | 4341 | Use `c-make-syntactic-matcher' to avoid negation chars in comments |
| 4105 | strings. | 4342 | and strings. |
| 4106 | 4343 | ||
| 4107 | * progmodes/cc-fonts.el (c-negation-char-face-name): New variable | 4344 | * progmodes/cc-fonts.el (c-negation-char-face-name): New variable |
| 4108 | to map to `font-lock-negation-char-face' in emacsen where it | 4345 | to map to `font-lock-negation-char-face' in emacsen where it exists. |
| 4109 | exists. | ||
| 4110 | 4346 | ||
| 4111 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4347 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4112 | 4348 | ||
| @@ -4129,18 +4365,17 @@ | |||
| 4129 | (i) Insert a binding for C-c C-backspace into | 4365 | (i) Insert a binding for C-c C-backspace into |
| 4130 | c-bind-special-erase-keys which works in TTYs. | 4366 | c-bind-special-erase-keys which works in TTYs. |
| 4131 | (ii) Make sure that when file styles are used, any explicitly | 4367 | (ii) Make sure that when file styles are used, any explicitly |
| 4132 | given style variables take priority over those in the style. Do | 4368 | given style variables take priority over those in the style. |
| 4133 | this by calling `hack-local-variables' a second time. | 4369 | Do this by calling `hack-local-variables' a second time. |
| 4134 | 4370 | ||
| 4135 | * progmodes/cc-vars.el: Add language specific customization | 4371 | * progmodes/cc-vars.el: Add language specific customization |
| 4136 | widgets for AWK to c-doc-comment-style, c-require-final-newline | 4372 | widgets for AWK to c-doc-comment-style, c-require-final-newline |
| 4137 | and c-default-style. Add a defcustom for awk-mode-hook. Give | 4373 | and c-default-style. Add a defcustom for awk-mode-hook. |
| 4138 | c-syntactic-element and c-syntactic-context doc-strings by | 4374 | Give c-syntactic-element and c-syntactic-context doc-strings by |
| 4139 | directly setting their `variable-documentation' propery. This | 4375 | directly setting their `variable-documentation' propery. |
| 4140 | allows Emacs 22.1 to read these with C-h v. | 4376 | This allows Emacs 22.1 to read these with C-h v. |
| 4141 | 4377 | ||
| 4142 | * progmodes/cc-awk.el: Apply a tidy-up patch (from Stefan | 4378 | * progmodes/cc-awk.el: Apply a tidy-up patch (from Stefan Monnier). |
| 4143 | Monnier). | ||
| 4144 | 4379 | ||
| 4145 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4380 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4146 | 4381 | ||
| @@ -4166,8 +4401,8 @@ | |||
| 4166 | * progmodes/cc-mode.el: Give c-hungry-backspace and | 4401 | * progmodes/cc-mode.el: Give c-hungry-backspace and |
| 4167 | c-hungry-delete-forward permanent key bindings. | 4402 | c-hungry-delete-forward permanent key bindings. |
| 4168 | 4403 | ||
| 4169 | * progmodes/cc-cmds.el (c-electric-semi&comma): Bind | 4404 | * progmodes/cc-cmds.el (c-electric-semi&comma): |
| 4170 | c-syntactic-context for calls to "criteria functions", for | 4405 | Bind c-syntactic-context for calls to "criteria functions", for |
| 4171 | consistency with other calls to user functions. | 4406 | consistency with other calls to user functions. |
| 4172 | 4407 | ||
| 4173 | * progmodes/cc-cmds.el (c-indent-command): Expunge use of | 4408 | * progmodes/cc-cmds.el (c-indent-command): Expunge use of |
| @@ -4181,7 +4416,7 @@ | |||
| 4181 | 4416 | ||
| 4182 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4417 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4183 | 4418 | ||
| 4184 | * progmodes/cc-engine.el (c-on-identifier): Fixed bug when at the | 4419 | * progmodes/cc-engine.el (c-on-identifier): Fix bug when at the |
| 4185 | first char of an identifier. | 4420 | first char of an identifier. |
| 4186 | 4421 | ||
| 4187 | * progmodes/cc-engine.el (c-on-identifier): Handle the "operator | 4422 | * progmodes/cc-engine.el (c-on-identifier): Handle the "operator |
| @@ -4206,14 +4441,14 @@ | |||
| 4206 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4441 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4207 | 4442 | ||
| 4208 | * progmodes/cc-fonts.el (c-cpp-matchers, c-basic-matchers-before): | 4443 | * progmodes/cc-fonts.el (c-cpp-matchers, c-basic-matchers-before): |
| 4209 | Incorporated the patterns added in the Emacs development branch | 4444 | Incorporate the patterns added in the Emacs development branch |
| 4210 | for the new Emacs 22 face `font-lock-negation-char-face'. | 4445 | for the new Emacs 22 face `font-lock-negation-char-face'. |
| 4211 | 4446 | ||
| 4212 | * progmodes/cc-fonts.el (c-invalid-face-name): Use "red1" instead | 4447 | * progmodes/cc-fonts.el (c-invalid-face-name): Use "red1" instead |
| 4213 | of "red" since it stands out better in xterms and DOS terminals. | 4448 | of "red" since it stands out better in xterms and DOS terminals. |
| 4214 | 4449 | ||
| 4215 | * progmodes/cc-engine.el (c-literal-faces): Added | 4450 | * progmodes/cc-engine.el (c-literal-faces): |
| 4216 | `font-lock-comment-delimiter-face' which is new in Emacs 22. | 4451 | Add `font-lock-comment-delimiter-face' which is new in Emacs 22. |
| 4217 | 4452 | ||
| 4218 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4453 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4219 | 4454 | ||
| @@ -4221,14 +4456,13 @@ | |||
| 4221 | forcibly enable c-electric-flag. | 4456 | forcibly enable c-electric-flag. |
| 4222 | 4457 | ||
| 4223 | * progmodes/cc-vars.el, cc-cmds.el: New clean-up | 4458 | * progmodes/cc-vars.el, cc-cmds.el: New clean-up |
| 4224 | `comment-close-slash' on c-electric-slash: if enabled, typing `/' | 4459 | `comment-close-slash' on c-electric-slash: if enabled, typing `/' just |
| 4225 | just after the comment-prefix of a C-style comment will close that | 4460 | after the comment-prefix of a C-style comment will close that comment. |
| 4226 | comment. | ||
| 4227 | 4461 | ||
| 4228 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4462 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4229 | 4463 | ||
| 4230 | * progmodes/cc-fonts.el (c-basic-matchers-before) | 4464 | * progmodes/cc-fonts.el (c-basic-matchers-before) |
| 4231 | (c-complex-decl-matchers): Fixed the "not-arrow-prefix" regexp used | 4465 | (c-complex-decl-matchers): Fix the "not-arrow-prefix" regexp used |
| 4232 | in Pike. | 4466 | in Pike. |
| 4233 | 4467 | ||
| 4234 | * progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has | 4468 | * progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has |
| @@ -4237,10 +4471,10 @@ | |||
| 4237 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el | 4471 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el |
| 4238 | (c-cpp-message-directives, c-cpp-include-directives) | 4472 | (c-cpp-message-directives, c-cpp-include-directives) |
| 4239 | (c-opt-cpp-macro-define, c-opt-cpp-macro-define-start) | 4473 | (c-opt-cpp-macro-define, c-opt-cpp-macro-define-start) |
| 4240 | (c-cpp-expr-directives): Introduced new language constants to | 4474 | (c-cpp-expr-directives): Introduce new language constants to |
| 4241 | control cpp syntax in a cleaner way. | 4475 | control cpp syntax in a cleaner way. |
| 4242 | 4476 | ||
| 4243 | (c-cpp-expr-functions): Renamed from c-cpp-defined-fns. | 4477 | (c-cpp-expr-functions): Rename from c-cpp-defined-fns. |
| 4244 | 4478 | ||
| 4245 | (c-cpp-matchers, c-forward-to-cpp-define-body): Use them. | 4479 | (c-cpp-matchers, c-forward-to-cpp-define-body): Use them. |
| 4246 | 4480 | ||
| @@ -4272,22 +4506,21 @@ | |||
| 4272 | (c-guess-basic-syntax): Handle C++ operator identifiers in | 4506 | (c-guess-basic-syntax): Handle C++ operator identifiers in |
| 4273 | declarations. | 4507 | declarations. |
| 4274 | 4508 | ||
| 4275 | * progmodes/cc-langs.el (c-assignment-operators): Added the | 4509 | * progmodes/cc-langs.el (c-assignment-operators): Add the |
| 4276 | trigraph version of ^= too. | 4510 | trigraph version of ^= too. |
| 4277 | 4511 | ||
| 4278 | * progmodes/cc-langs.el (c-assignment-operators): Added the | 4512 | * progmodes/cc-langs.el (c-assignment-operators): Add the |
| 4279 | trigraph version of |= in C++. | 4513 | trigraph version of |= in C++. |
| 4280 | 4514 | ||
| 4281 | * progmodes/cc-fonts.el (c-font-lock-declarators): Handle | 4515 | * progmodes/cc-fonts.el (c-font-lock-declarators): |
| 4282 | `c-decl-hangon-kwds' after the identifier name. | 4516 | Handle `c-decl-hangon-kwds' after the identifier name. |
| 4283 | 4517 | ||
| 4284 | * progmodes/cc-engine.el (c-guess-basic-syntax): When deciding | 4518 | * progmodes/cc-engine.el (c-guess-basic-syntax): When deciding |
| 4285 | whether an arglist is "nonempty", ignore a comment after the open | 4519 | whether an arglist is "nonempty", ignore a comment after the open |
| 4286 | paren if it isn't followed by a non-comment token on the same | 4520 | paren if it isn't followed by a non-comment token on the same line. |
| 4287 | line. | ||
| 4288 | 4521 | ||
| 4289 | * progmodes/cc-engine.el (c-guess-basic-syntax): Case 4: Enable | 4522 | * progmodes/cc-engine.el (c-guess-basic-syntax): Case 4: |
| 4290 | heuristics below the point to cope with classes inside special | 4523 | Enable heuristics below the point to cope with classes inside special |
| 4291 | brace lists in Pike. | 4524 | brace lists in Pike. |
| 4292 | 4525 | ||
| 4293 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4526 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| @@ -4326,12 +4559,11 @@ | |||
| 4326 | * progmodes/cc-cmds.el: Add `c-bytecomp-defun's for | 4559 | * progmodes/cc-cmds.el: Add `c-bytecomp-defun's for |
| 4327 | c-\(forward\|backward\)-subword. | 4560 | c-\(forward\|backward\)-subword. |
| 4328 | (c-update-modeline): Add the new modeline flag `l' for | 4561 | (c-update-modeline): Add the new modeline flag `l' for |
| 4329 | `c-electric-flag'. Make the auto-newline flag `a' dependent on | 4562 | `c-electric-flag'. Make the auto-newline flag `a' dependent on `l'. |
| 4330 | `l'. | 4563 | (c-toggle-auto-state): Rename it to `c-toggle-auto-newline'. |
| 4331 | (c-toggle-auto-state): Rename it to `c-toggle-auto-newline'. Make | 4564 | Make the old name an alias of the new name. |
| 4332 | the old name an alias of the new name. | ||
| 4333 | (c-toggle-electric-state): New function. | 4565 | (c-toggle-electric-state): New function. |
| 4334 | c-electric-\(pound\|brace\|slash\|star\|semi&comma\|colon\|lt-gt\|paren\|continued-statement\): | 4566 | (c-electric-\(pound\|brace\|slash\|star\|semi&comma\|colon\|lt-gt\|paren\|continued-statement\)): |
| 4335 | Adapt these functions to do electric things only when | 4567 | Adapt these functions to do electric things only when |
| 4336 | c-electric-flag is non-nil. | 4568 | c-electric-flag is non-nil. |
| 4337 | (c-point-syntax, c-brace-newlines, c-try-oneliner): Extract these | 4569 | (c-point-syntax, c-brace-newlines, c-try-oneliner): Extract these |
| @@ -4347,18 +4579,17 @@ | |||
| 4347 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4579 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4348 | 4580 | ||
| 4349 | * progmodes/cc-cmds.el (c-show-syntactic-information): Show the | 4581 | * progmodes/cc-cmds.el (c-show-syntactic-information): Show the |
| 4350 | anchor position(s) using faces. Thanks to Masatake YAMATO for the | 4582 | anchor position(s) using faces. Thanks to Masatake YAMATO for the idea. |
| 4351 | idea. | ||
| 4352 | 4583 | ||
| 4353 | * progmodes/cc-mode.el, cc-cmds.el, cc-defs.el, cc-engine.el | 4584 | * progmodes/cc-mode.el, cc-cmds.el, cc-defs.el, cc-engine.el |
| 4354 | (c-submode-indicators): Changed name from `c-auto-hungry-string' | 4585 | (c-submode-indicators): Change name from `c-auto-hungry-string' |
| 4355 | since it's now used to track another submode. | 4586 | since it's now used to track another submode. |
| 4356 | 4587 | ||
| 4357 | (c-update-modeline): Converted to function and extended to check | 4588 | (c-update-modeline): Convert to function and extended to check |
| 4358 | `c-subword-move-mode'. | 4589 | `c-subword-move-mode'. |
| 4359 | 4590 | ||
| 4360 | (c-forward-into-nomenclature, c-backward-into-nomenclature): | 4591 | (c-forward-into-nomenclature, c-backward-into-nomenclature): |
| 4361 | Converted to compat aliases for `c-forward-subword' and | 4592 | Convert to compat aliases for `c-forward-subword' and |
| 4362 | `c-backward-subword'. | 4593 | `c-backward-subword'. |
| 4363 | 4594 | ||
| 4364 | * progmodes/cc-subword.el: New functions and minor mode to handle | 4595 | * progmodes/cc-subword.el: New functions and minor mode to handle |
| @@ -4401,10 +4632,10 @@ | |||
| 4401 | 4632 | ||
| 4402 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4633 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4403 | 4634 | ||
| 4404 | * progmodes/cc-engine.el (c-forward-label): Fixed fontification of | 4635 | * progmodes/cc-engine.el (c-forward-label): Fix fontification of |
| 4405 | macros inside labels. | 4636 | macros inside labels. |
| 4406 | 4637 | ||
| 4407 | * progmodes/cc-engine.el (c-looking-at-bos): Obsoleted in favor of | 4638 | * progmodes/cc-engine.el (c-looking-at-bos): Obsolete in favor of |
| 4408 | `c-at-statement-start-p' and `c-at-expression-start-p'. | 4639 | `c-at-statement-start-p' and `c-at-expression-start-p'. |
| 4409 | 4640 | ||
| 4410 | * progmodes/cc-defs.el (c-tnt-chng-record-state): Don't signal an | 4641 | * progmodes/cc-defs.el (c-tnt-chng-record-state): Don't signal an |
| @@ -4418,9 +4649,8 @@ | |||
| 4418 | like `c-at-statement-start-p' that additionally recognizes commas | 4649 | like `c-at-statement-start-p' that additionally recognizes commas |
| 4419 | and expression parentheses as delimiters. | 4650 | and expression parentheses as delimiters. |
| 4420 | 4651 | ||
| 4421 | * progmodes/cc-engine.el (c-looking-at-inexpr-block): Added flag | 4652 | * progmodes/cc-engine.el (c-looking-at-inexpr-block): Add flag |
| 4422 | to avoid heuristics that doesn't work for unclosed blocks. | 4653 | to avoid heuristics that doesn't work for unclosed blocks. |
| 4423 | |||
| 4424 | (c-at-statement-start-p): New function. | 4654 | (c-at-statement-start-p): New function. |
| 4425 | 4655 | ||
| 4426 | * progmodes/cc-engine.el, cc-fonts.el: Fixes in handling of | 4656 | * progmodes/cc-engine.el, cc-fonts.el: Fixes in handling of |
| @@ -4435,54 +4665,53 @@ | |||
| 4435 | (c-just-after-func-arglist-p, c-guess-basic-syntax) | 4665 | (c-just-after-func-arglist-p, c-guess-basic-syntax) |
| 4436 | (c-basic-matchers-before): Use it. | 4666 | (c-basic-matchers-before): Use it. |
| 4437 | 4667 | ||
| 4438 | (c-font-lock-objc-iip-decl): Removed. | 4668 | (c-font-lock-objc-iip-decl): Remove. |
| 4439 | 4669 | ||
| 4440 | * progmodes/cc-engine.el (c-guess-basic-syntax): Some improvement | 4670 | * progmodes/cc-engine.el (c-guess-basic-syntax): Some improvement |
| 4441 | in the template arglist recognition. | 4671 | in the template arglist recognition. |
| 4442 | 4672 | ||
| 4443 | * progmodes/cc-styles.el (c-style-alist): Fixed several | 4673 | * progmodes/cc-styles.el (c-style-alist): Fix several |
| 4444 | inconsistencies in the Whitesmith style. | 4674 | inconsistencies in the Whitesmith style. |
| 4445 | 4675 | ||
| 4446 | * progmodes/cc-align.el (c-lineup-after-whitesmith-blocks): | 4676 | * progmodes/cc-align.el (c-lineup-after-whitesmith-blocks): |
| 4447 | New lineup function to get lines after Whitesmith style blocks | 4677 | New lineup function to get lines after Whitesmith style blocks |
| 4448 | correctly indented. | 4678 | correctly indented. |
| 4449 | 4679 | ||
| 4450 | (c-lineup-whitesmith-in-block): Backed out the compensation for | 4680 | (c-lineup-whitesmith-in-block): Back out the compensation for |
| 4451 | opening parens since it's done using `add' lists in the style | 4681 | opening parens since it's done using `add' lists in the style |
| 4452 | definition instead. Don't use the anchor position since it varies | 4682 | definition instead. Don't use the anchor position since it varies |
| 4453 | too much between the syntactic symbols. :P | 4683 | too much between the syntactic symbols. :P |
| 4454 | 4684 | ||
| 4455 | * progmodes/cc-vars.el (c-valid-offset): Updated. | 4685 | * progmodes/cc-vars.el (c-valid-offset): Update. |
| 4456 | 4686 | ||
| 4457 | * progmodes/cc-engine.el (c-evaluate-offset): Extended to handle | 4687 | * progmodes/cc-engine.el (c-evaluate-offset): Extend to handle |
| 4458 | lists where the offsets are combined according to several | 4688 | lists where the offsets are combined according to several |
| 4459 | different methods: `first', `min', `max', and `add'. Report | 4689 | different methods: `first', `min', `max', and `add'. |
| 4460 | offset evaluation errors with `c-benign-error' so that some kind | 4690 | Report offset evaluation errors with `c-benign-error' so that some kind |
| 4461 | of reindentation still is done. | 4691 | of reindentation still is done. |
| 4462 | 4692 | ||
| 4463 | * progmodes/cc-engine.el (c-guess-basic-syntax): Anchor | 4693 | * progmodes/cc-engine.el (c-guess-basic-syntax): |
| 4464 | `arglist-intro' the same way as `arglist-cont-nonempty' and | 4694 | Anchor `arglist-intro' the same way as `arglist-cont-nonempty' and |
| 4465 | `arglist-close'. | 4695 | `arglist-close'. |
| 4466 | 4696 | ||
| 4467 | * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed similar | 4697 | * progmodes/cc-engine.el (c-guess-basic-syntax): Fix similar |
| 4468 | situations for `arglist-cont-nonempty' and `arglist-close'. | 4698 | situations for `arglist-cont-nonempty' and `arglist-close'. |
| 4469 | 4699 | ||
| 4470 | * progmodes/cc-langs.el (c-opt-identifier-concat-key-depth): New | 4700 | * progmodes/cc-langs.el (c-opt-identifier-concat-key-depth): New const. |
| 4471 | constant. | ||
| 4472 | 4701 | ||
| 4473 | * progmodes/cc-defs.el: Use `cc-bytecomp-fboundp' and | 4702 | * progmodes/cc-defs.el: Use `cc-bytecomp-fboundp' and |
| 4474 | cc-bytecomp-boundp' in a number of places. | 4703 | cc-bytecomp-boundp' in a number of places. |
| 4475 | 4704 | ||
| 4476 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a | 4705 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a |
| 4477 | macro related issue. | 4706 | macro related issue. |
| 4478 | 4707 | ||
| 4479 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4708 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4480 | 4709 | ||
| 4481 | * progmodes/cc-awk.el: Change the terminology of regexps: A char | 4710 | * progmodes/cc-awk.el: Change the terminology of regexps: A char |
| 4482 | list is now [asdf], a char class [:alpha:]. Include code for char | 4711 | list is now [asdf], a char class [:alpha:]. |
| 4483 | classes. Set c-awk-NL-prop on lines ending in open strings. (Bug | 4712 | Include code for char classes. |
| 4484 | fix.) Add character classes (e.g. "[:alpha:]") into AWK Mode's | 4713 | Set c-awk-NL-prop on lines ending in open strings. (Bug fix.) |
| 4485 | regexps. | 4714 | Add character classes (e.g. "[:alpha:]") into AWK Mode's regexps. |
| 4486 | 4715 | ||
| 4487 | Remove (nearly all of) the cruft associated with AWK Mode's former | 4716 | Remove (nearly all of) the cruft associated with AWK Mode's former |
| 4488 | concept of "virtual semicolons": | 4717 | concept of "virtual semicolons": |
| @@ -4521,15 +4750,14 @@ | |||
| 4521 | 4750 | ||
| 4522 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4751 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4523 | 4752 | ||
| 4524 | * progmodes/cc-awk.el: Regexps for analysing AWK code have been | 4753 | * progmodes/cc-awk.el: Move regexps for analysing AWK code to near the |
| 4525 | moved to near the start of the file. ^L now separate sections of | 4754 | start of the file. ^L now separate sections of the file. |
| 4526 | the file. New defconsts: c-awk-non-eol-esc-pair-re, | 4755 | (c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re) |
| 4527 | c-awk-blank-or-comment-line-re, | 4756 | (c-awk-one-line-possibly-open-string-re) |
| 4528 | c-awk-one-line-possibly-open-string-re, | 4757 | (c-awk-regexp-one-line-possibly-open-char-class-re) |
| 4529 | c-awk-regexp-one-line-possibly-open-char-class-re, | 4758 | (c-awk-one-line-possibly-open-regexp-re) |
| 4530 | c-awk-one-line-possibly-open-regexp-re, | 4759 | (c-awk-one-line-non-syn-ws*-re): New defonsts. |
| 4531 | c-awk-one-line-non-syn-ws*-re. New functions: c-awk-at-vsemi-p, | 4760 | (c-awk-at-vsemi-p, c-awk-vsemi-status-unknown-p): New functions. |
| 4532 | c-awk-vsemi-status-unknown-p. | ||
| 4533 | 4761 | ||
| 4534 | Amend the concept of "virtual semicolons" (in the indentation | 4762 | Amend the concept of "virtual semicolons" (in the indentation |
| 4535 | engine) for languages like AWK, such that they are now | 4763 | engine) for languages like AWK, such that they are now |
| @@ -4537,12 +4765,12 @@ | |||
| 4537 | the end of the line. (In AWK Mode, however, the pertinent text | 4765 | the end of the line. (In AWK Mode, however, the pertinent text |
| 4538 | property is still physically set on the EOL.) Remove the specific | 4766 | property is still physically set on the EOL.) Remove the specific |
| 4539 | tests for awk-mode, thus facilitating the introduction of other | 4767 | tests for awk-mode, thus facilitating the introduction of other |
| 4540 | language modes where EOLs can end statements. (Note: The | 4768 | language modes where EOLs can end statements. |
| 4541 | funtionality in cc-cmds.el, specifically | 4769 | (Note: The funtionality in cc-cmds.el, specifically |
| 4542 | c-beginning/end-of-statement has yet to be amended.) | 4770 | c-beginning/end-of-statement has yet to be amended.) |
| 4543 | 4771 | ||
| 4544 | * progmodes/cc-defs.el: New macros c-at-vsemi-p, | 4772 | * progmodes/cc-defs.el (c-at-vsemi-p, c-vsemi-status-unknown-p): |
| 4545 | c-vsemi-status-unknown-p. | 4773 | New macros. |
| 4546 | 4774 | ||
| 4547 | * progmodes/cc-langs.el: Added `#' into AWK Mode's value of | 4775 | * progmodes/cc-langs.el: Added `#' into AWK Mode's value of |
| 4548 | c-stmt-delim-chars. New c-lang-defvars: c-at-vsemi-p-fn, | 4776 | c-stmt-delim-chars. New c-lang-defvars: c-at-vsemi-p-fn, |
| @@ -4552,25 +4780,21 @@ | |||
| 4552 | c-crosses-statement-barrier-p, c-guess-basic-syntax, replace | 4780 | c-crosses-statement-barrier-p, c-guess-basic-syntax, replace |
| 4553 | numerous awkward forms like | 4781 | numerous awkward forms like |
| 4554 | (if (c-major-mode-is 'awk-mode) (c-awk-prev-line-incomplete-p)) | 4782 | (if (c-major-mode-is 'awk-mode) (c-awk-prev-line-incomplete-p)) |
| 4555 | with | 4783 | with (c-at-vsemi-p). Fix a few typos. In c-guess-basic-syntax, new |
| 4556 | (c-at-vsemi-p). Fix a few typos. In c-guess-basic-syntax, new | 4784 | variable before-ws-ip, the place just after char-before-ip appears. |
| 4557 | variable before-ws-ip, the place just after char-before-ip | ||
| 4558 | appears. | ||
| 4559 | 4785 | ||
| 4560 | * progmodes/cc-mode.el: Fix what's almost a semantic ambiguity in | 4786 | * progmodes/cc-mode.el: Fix what's almost a semantic ambiguity in |
| 4561 | a comment. | 4787 | a comment. |
| 4562 | 4788 | ||
| 4563 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 4789 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 4564 | 4790 | ||
| 4565 | * progmodes/cc-cmds.el (c-electric-brace): Cleaned up using | 4791 | * progmodes/cc-cmds.el (c-electric-brace): Clean up using |
| 4566 | `c-tentative-buffer-changes'. | 4792 | `c-tentative-buffer-changes'. |
| 4567 | 4793 | ||
| 4568 | * progmodes/cc-defs.el (c-region-is-active-p): Simplified and | 4794 | * progmodes/cc-defs.el (c-region-is-active-p): Simplify and |
| 4569 | converted to macro to choose between Emacs and XEmacs at compile | 4795 | convert to macro to choose between Emacs and XEmacs at compile time. |
| 4570 | time. | ||
| 4571 | 4796 | ||
| 4572 | (c-set-region-active): New set counterpart to | 4797 | (c-set-region-active): New set counterpart to `c-region-is-active-p'. |
| 4573 | `c-region-is-active-p'. | ||
| 4574 | 4798 | ||
| 4575 | (c-tentative-buffer-changes): New macro to handle temporary buffer | 4799 | (c-tentative-buffer-changes): New macro to handle temporary buffer |
| 4576 | changes in a convenient way. | 4800 | changes in a convenient way. |
| @@ -4578,7 +4802,7 @@ | |||
| 4578 | (c-tnt-chng-record-state, c-tnt-chng-cleanup): Internal helpers | 4802 | (c-tnt-chng-record-state, c-tnt-chng-cleanup): Internal helpers |
| 4579 | for `c-tentative-buffer-changes'. | 4803 | for `c-tentative-buffer-changes'. |
| 4580 | 4804 | ||
| 4581 | * progmodes/cc-engine.el (c-looking-at-inexpr-block): Tightened up | 4805 | * progmodes/cc-engine.el (c-looking-at-inexpr-block): Tighten up |
| 4582 | the checks for paren sexps between the point and the keyword, to | 4806 | the checks for paren sexps between the point and the keyword, to |
| 4583 | avoid some false alarms. | 4807 | avoid some false alarms. |
| 4584 | 4808 | ||
| @@ -4587,23 +4811,22 @@ | |||
| 4587 | parens. Changed to make use of c-keyword-member' to avoid some | 4811 | parens. Changed to make use of c-keyword-member' to avoid some |
| 4588 | repeated regexp matches. | 4812 | repeated regexp matches. |
| 4589 | 4813 | ||
| 4590 | (c-opt-lambda-key, c-opt-inexpr-block-key, | 4814 | (c-opt-lambda-key, c-opt-inexpr-block-key, c-opt-inexpr-class-key): |
| 4591 | c-opt-inexpr-class-key): These language variable are no longer | 4815 | These language variable are no longer necessary. |
| 4592 | necessary. | ||
| 4593 | 4816 | ||
| 4594 | (c-block-stmt-kwds): New language constant used by | 4817 | (c-block-stmt-kwds): New language constant used by |
| 4595 | c-looking-at-inexpr-block'. | 4818 | c-looking-at-inexpr-block'. |
| 4596 | 4819 | ||
| 4597 | (c-guess-basic-syntax): Removed an optional check that looked at | 4820 | (c-guess-basic-syntax): Remove an optional check that looked at |
| 4598 | the existence of the now removed language variables. | 4821 | the existence of the now removed language variables. |
| 4599 | 4822 | ||
| 4600 | * progmodes/cc-engine.el (c-fdoc-shift-type-backward, | 4823 | * progmodes/cc-engine.el (c-fdoc-shift-type-backward) |
| 4601 | c-forward-decl-or-cast-1): Fixed invalid recognition of C++ style | 4824 | (c-forward-decl-or-cast-1): Fix invalid recognition of C++ style |
| 4602 | object instantiation expressions as declarations in some contexts. | 4825 | object instantiation expressions as declarations in some contexts. |
| 4603 | This bug only affected languages where the declarator can't be | 4826 | This bug only affected languages where the declarator can't be |
| 4604 | enclosed in parentheses. | 4827 | enclosed in parentheses. |
| 4605 | 4828 | ||
| 4606 | * progmodes/cc-styles.el (c-style-alist): Fixed the GNU style to | 4829 | * progmodes/cc-styles.el (c-style-alist): Fix the GNU style to |
| 4607 | insert newlines before and after substatement braces. | 4830 | insert newlines before and after substatement braces. |
| 4608 | 4831 | ||
| 4609 | * progmodes/cc-engine.el: Improved the heuristics for recognizing | 4832 | * progmodes/cc-engine.el: Improved the heuristics for recognizing |
| @@ -4613,15 +4836,14 @@ | |||
| 4613 | (c-just-after-func-arglist-p): Rewritten to use | 4836 | (c-just-after-func-arglist-p): Rewritten to use |
| 4614 | `c-forward-decl-or-cast-1'. Now behaves a bit differently too. | 4837 | `c-forward-decl-or-cast-1'. Now behaves a bit differently too. |
| 4615 | 4838 | ||
| 4616 | (c-beginning-of-member-init-list): Removed since it isn't used | 4839 | (c-beginning-of-member-init-list): Remove since it isn't used anymore. |
| 4617 | anymore. | ||
| 4618 | 4840 | ||
| 4619 | (c-guess-basic-syntax): Case 5B adapted for the new | 4841 | (c-guess-basic-syntax): Adapt case 5B for the new |
| 4620 | `c-just-after-func-arglist-p'. Cases 5B.1 and 5B.3 merged. Cases | 4842 | `c-just-after-func-arglist-p'. Merge cases 5B.1 and 5B.3. |
| 4621 | 5D.1 and 5D.2 removed since they aren't trigged anymore (case 5B.1 | 4843 | Remove cases 5D.1 and 5D.2 since they aren't trigged anymore (case 5B.1 |
| 4622 | covers all cases now). | 4844 | covers all cases now). |
| 4623 | 4845 | ||
| 4624 | * progmodes/cc-defs.el (c-point): Added `bosws' and `eosws'. | 4846 | * progmodes/cc-defs.el (c-point): Add `bosws' and `eosws'. |
| 4625 | 4847 | ||
| 4626 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 4848 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 4627 | 4849 | ||
| @@ -4644,15 +4866,15 @@ | |||
| 4644 | (c-search-uplist-for-classkey): The old one. It's now a wrapper | 4866 | (c-search-uplist-for-classkey): The old one. It's now a wrapper |
| 4645 | for compatibility. | 4867 | for compatibility. |
| 4646 | 4868 | ||
| 4647 | (c-add-class-syntax, c-guess-continued-construct, | 4869 | (c-add-class-syntax, c-guess-continued-construct) |
| 4648 | c-guess-basic-syntax): Adapted for `c-looking-at-decl-block'. | 4870 | (c-guess-basic-syntax): Adapt for `c-looking-at-decl-block'. |
| 4649 | 4871 | ||
| 4650 | (c-decl-block-key): Changed to tell apart ambiguous and | 4872 | (c-decl-block-key): Change to tell apart ambiguous and |
| 4651 | unambiguous keywords. Pike specials are now handled directly in | 4873 | unambiguous keywords. Pike specials are now handled directly in |
| 4652 | the code instead. | 4874 | the code instead. |
| 4653 | 4875 | ||
| 4654 | (c-block-prefix-disallowed-chars, c-block-prefix-charset): New | 4876 | (c-block-prefix-disallowed-chars, c-block-prefix-charset): |
| 4655 | language constants and variables to make the backward skip in | 4877 | New language constants and variables to make the backward skip in |
| 4656 | `c-looking-at-decl-block' as tight as possible. | 4878 | `c-looking-at-decl-block' as tight as possible. |
| 4657 | 4879 | ||
| 4658 | (c-nonsymbol-token-char-list): New language constant. | 4880 | (c-nonsymbol-token-char-list): New language constant. |
| @@ -4663,7 +4885,7 @@ | |||
| 4663 | * progmodes/cc-defs.el (c-make-bare-char-alt): New helper for | 4885 | * progmodes/cc-defs.el (c-make-bare-char-alt): New helper for |
| 4664 | making char classes for `c-syntactic-skip-backward'. | 4886 | making char classes for `c-syntactic-skip-backward'. |
| 4665 | 4887 | ||
| 4666 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified case | 4888 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplify case |
| 4667 | 16D - can't be a class-close at that point. | 4889 | 16D - can't be a class-close at that point. |
| 4668 | 4890 | ||
| 4669 | * progmodes/cc-engine.el (c-guess-basic-syntax) | 4891 | * progmodes/cc-engine.el (c-guess-basic-syntax) |
| @@ -4674,17 +4896,16 @@ | |||
| 4674 | `c-guess-basic-syntax' never will look at things outside the | 4896 | `c-guess-basic-syntax' never will look at things outside the |
| 4675 | current narrowment now. The anchor position for `topmost-intro' | 4897 | current narrowment now. The anchor position for `topmost-intro' |
| 4676 | is affected by this, but it was so bogus it was basically useless | 4898 | is affected by this, but it was so bogus it was basically useless |
| 4677 | before, and now it's equally bogus but in a slightly different | 4899 | before, and now it's equally bogus but in a slightly different way. |
| 4678 | way. | ||
| 4679 | 4900 | ||
| 4680 | (c-narrow-out-enclosing-class): Gone. | 4901 | (c-narrow-out-enclosing-class): Gone. |
| 4681 | 4902 | ||
| 4682 | (c-most-enclosing-brace, c-least-enclosing-brace): Don't filter to | 4903 | (c-most-enclosing-brace, c-least-enclosing-brace): Don't filter to |
| 4683 | the narrowed region. | 4904 | the narrowed region. |
| 4684 | 4905 | ||
| 4685 | (c-least-enclosing-brace): Removed silly optional argument. | 4906 | (c-least-enclosing-brace): Remove silly optional argument. |
| 4686 | 4907 | ||
| 4687 | * progmodes/cc-engine.el (c-beginning-of-decl-1): Fixed bug where | 4908 | * progmodes/cc-engine.el (c-beginning-of-decl-1): Fix bug where |
| 4688 | the point could be left directly after an open paren when finding | 4909 | the point could be left directly after an open paren when finding |
| 4689 | the beginning of the first decl in the block. | 4910 | the beginning of the first decl in the block. |
| 4690 | 4911 | ||
| @@ -4709,13 +4930,11 @@ | |||
| 4709 | (c-identifier-start, c-identifier-key): Now completely calculated | 4930 | (c-identifier-start, c-identifier-key): Now completely calculated |
| 4710 | from other constants. | 4931 | from other constants. |
| 4711 | 4932 | ||
| 4712 | (c-identifier-last-sym-match): Decommissioned since it's no longer | 4933 | (c-identifier-last-sym-match): Decommission since it's no longer used. |
| 4713 | used. | ||
| 4714 | 4934 | ||
| 4715 | (c-operators): Use `c-identifier-ops'. Documented | 4935 | (c-operators): Use `c-identifier-ops'. Document `postfix-if-paren'. |
| 4716 | `postfix-if-paren'. | ||
| 4717 | 4936 | ||
| 4718 | * progmodes/cc-engine.el (c-forward-name): Removed the | 4937 | * progmodes/cc-engine.el (c-forward-name): Remove the |
| 4719 | optimization when c-identifier-key is equal to c-symbol-key since | 4938 | optimization when c-identifier-key is equal to c-symbol-key since |
| 4720 | it doesn't work in byte compiled files. Don't record empty | 4939 | it doesn't work in byte compiled files. Don't record empty |
| 4721 | regions as identifiers. | 4940 | regions as identifiers. |
| @@ -4731,13 +4950,13 @@ | |||
| 4731 | * progmodes/cc-defs.el (c-lang-const): Fixes to allow use without | 4950 | * progmodes/cc-defs.el (c-lang-const): Fixes to allow use without |
| 4732 | an explicit language in functions. | 4951 | an explicit language in functions. |
| 4733 | 4952 | ||
| 4734 | * progmodes/cc-defs.el (c-make-keywords-re): Added an appendable | 4953 | * progmodes/cc-defs.el (c-make-keywords-re): Add an appendable |
| 4735 | variant of adornment. | 4954 | variant of adornment. |
| 4736 | 4955 | ||
| 4737 | * progmodes/cc-langs.el (c-any-class-key): Removed unused language | 4956 | * progmodes/cc-langs.el (c-any-class-key): Remove unused language |
| 4738 | variable. | 4957 | variable. |
| 4739 | 4958 | ||
| 4740 | (c-type-decl-prefix-key): Removed some now unnecessary cruft from | 4959 | (c-type-decl-prefix-key): Remove some now unnecessary cruft from |
| 4741 | the Pike value. | 4960 | the Pike value. |
| 4742 | 4961 | ||
| 4743 | * progmodes/cc-engine.el (c-on-identifier) | 4962 | * progmodes/cc-engine.el (c-on-identifier) |
| @@ -4745,7 +4964,7 @@ | |||
| 4745 | correctly in `skip-chars-backward'. Affected the operator lfun | 4964 | correctly in `skip-chars-backward'. Affected the operator lfun |
| 4746 | syntax in Pike. | 4965 | syntax in Pike. |
| 4747 | 4966 | ||
| 4748 | * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Disabled the | 4967 | * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Disable the |
| 4749 | diagnostic message about precompiled language vars not being used. | 4968 | diagnostic message about precompiled language vars not being used. |
| 4750 | 4969 | ||
| 4751 | * progmodes/cc-langs.el (c-paren-nontype-kwds): The GCC keyword | 4970 | * progmodes/cc-langs.el (c-paren-nontype-kwds): The GCC keyword |
| @@ -4755,9 +4974,9 @@ | |||
| 4755 | (c-specifier-key, c-not-decl-init-keywords): Some cleanup using new | 4974 | (c-specifier-key, c-not-decl-init-keywords): Some cleanup using new |
| 4756 | language constants `c-type-start-kwds' and `c-prefix-spec-kwds'. | 4975 | language constants `c-type-start-kwds' and `c-prefix-spec-kwds'. |
| 4757 | 4976 | ||
| 4758 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el: Internal | 4977 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el: |
| 4759 | cleanups to properly detect the declared identifiers in various | 4978 | Internal cleanups to properly detect the declared identifiers in |
| 4760 | declarations. | 4979 | various declarations. |
| 4761 | 4980 | ||
| 4762 | (c-decl-start-kwds): New language constant to recognize | 4981 | (c-decl-start-kwds): New language constant to recognize |
| 4763 | declarations that can start anywhere. Used for class declarations | 4982 | declarations that can start anywhere. Used for class declarations |
| @@ -4768,7 +4987,7 @@ | |||
| 4768 | (c-find-decl-spots): Implement `c-decl-start-kwds'. | 4987 | (c-find-decl-spots): Implement `c-decl-start-kwds'. |
| 4769 | 4988 | ||
| 4770 | (c-other-decl-kwds, c-postfix-decl-spec-kwds, c-decl-hangon-kwds) | 4989 | (c-other-decl-kwds, c-postfix-decl-spec-kwds, c-decl-hangon-kwds) |
| 4771 | (c-decl-hangon-key, c-forward-decl-or-cast-1): Separated the | 4990 | (c-decl-hangon-key, c-forward-decl-or-cast-1): Separate the |
| 4772 | handling of the compiler specific extension keywords into a new | 4991 | handling of the compiler specific extension keywords into a new |
| 4773 | language constant `c-decl-hangon-kwds' that defines keyword | 4992 | language constant `c-decl-hangon-kwds' that defines keyword |
| 4774 | clauses to be ignored in declarations. | 4993 | clauses to be ignored in declarations. |
| @@ -4784,9 +5003,8 @@ | |||
| 4784 | (c-forward-decl-or-cast-1): Recognize the declared identifier in | 5003 | (c-forward-decl-or-cast-1): Recognize the declared identifier in |
| 4785 | class and enum declarations as such and not as part of the type. | 5004 | class and enum declarations as such and not as part of the type. |
| 4786 | 5005 | ||
| 4787 | (c-forward-decl-or-cast-1, c-forward-label): Relaxed the | 5006 | (c-forward-decl-or-cast-1, c-forward-label): Relax the |
| 4788 | interpretation of PRECEDING-TOKEN-END when there's no preceding | 5007 | interpretation of PRECEDING-TOKEN-END when there's no preceding token. |
| 4789 | token. | ||
| 4790 | 5008 | ||
| 4791 | (c-forward-decl-or-cast-1): Don't disregard sure signs of | 5009 | (c-forward-decl-or-cast-1): Don't disregard sure signs of |
| 4792 | declarations when there's some syntax error later on. | 5010 | declarations when there's some syntax error later on. |
| @@ -4799,7 +5017,7 @@ | |||
| 4799 | 5017 | ||
| 4800 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el | 5018 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el |
| 4801 | * cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el | 5019 | * cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el |
| 4802 | * cc-cmds.el, cc-defs.el: Changed the policy for marking up | 5020 | * cc-cmds.el, cc-defs.el: Change the policy for marking up |
| 4803 | functions that might do hidden buffer changes: All such internal | 5021 | functions that might do hidden buffer changes: All such internal |
| 4804 | functions are now marked instead of those that don't. | 5022 | functions are now marked instead of those that don't. |
| 4805 | 5023 | ||
| @@ -4814,10 +5032,10 @@ | |||
| 4814 | (c-electric-semi&comma, c-electric-colon, c-electric-lt-gt) | 5032 | (c-electric-semi&comma, c-electric-colon, c-electric-lt-gt) |
| 4815 | (c-electric-paren, c-electric-continued-statement, c-indent-command) | 5033 | (c-electric-paren, c-electric-continued-statement, c-indent-command) |
| 4816 | (c-indent-region, c-mask-paragraph, c-indent-new-comment-line) | 5034 | (c-indent-region, c-mask-paragraph, c-indent-new-comment-line) |
| 4817 | (c-context-line-break): Added `c-save-buffer-state' calls to comply | 5035 | (c-context-line-break): Add `c-save-buffer-state' calls to comply |
| 4818 | with the changed semantics of the functions above. | 5036 | with the changed semantics of the functions above. |
| 4819 | 5037 | ||
| 4820 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a bug | 5038 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a bug |
| 4821 | when macros occur in obscure places. Optimized the sexp movement | 5039 | when macros occur in obscure places. Optimized the sexp movement |
| 4822 | a bit. | 5040 | a bit. |
| 4823 | 5041 | ||
| @@ -4849,13 +5067,13 @@ | |||
| 4849 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el: Cleaned up the | 5067 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el: Cleaned up the |
| 4850 | label handling. Labels are now recognized in a uniform and more | 5068 | label handling. Labels are now recognized in a uniform and more |
| 4851 | robust way, regardless of context. Text properties are put on all | 5069 | robust way, regardless of context. Text properties are put on all |
| 4852 | labels to recognize the following declarations better. Multiword | 5070 | labels to recognize the following declarations better. |
| 4853 | labels are handled both in indentation and fontification for the | 5071 | Multiword labels are handled both in indentation and fontification for |
| 4854 | benefit of language extensions like Qt. For consistency, keywords | 5072 | the benefit of language extensions like Qt. For consistency, keywords |
| 4855 | in labels are now fontified with the label face instead. That | 5073 | in labels are now fontified with the label face instead. |
| 4856 | also applies to "case" and "default". | 5074 | That also applies to "case" and "default". |
| 4857 | 5075 | ||
| 4858 | (c-beginning-of-statement-1): Fixed some bugs in the label | 5076 | (c-beginning-of-statement-1): Fix some bugs in the label |
| 4859 | handling. Disregard `c-nonlabel-token-key' in labels that begin | 5077 | handling. Disregard `c-nonlabel-token-key' in labels that begin |
| 4860 | with `c-label-kwds'. | 5078 | with `c-label-kwds'. |
| 4861 | 5079 | ||
| @@ -4867,70 +5085,68 @@ | |||
| 4867 | 5085 | ||
| 4868 | (c-forward-label): New function to recognize labels. | 5086 | (c-forward-label): New function to recognize labels. |
| 4869 | 5087 | ||
| 4870 | (c-guess-basic-syntax): Replaced uses of `c-label-key' with | 5088 | (c-guess-basic-syntax): Replace uses of `c-label-key' with |
| 4871 | `c-forward-label'. Moved the label recognition cases (14 and 15) | 5089 | `c-forward-label'. Moved the label recognition cases (14 and 15) |
| 4872 | earlier since they aren't so context sensitive now. Handle labels | 5090 | earlier since they aren't so context sensitive now. Handle labels |
| 4873 | on the top level gracefully. Moved access label recognition to | 5091 | on the top level gracefully. Moved access label recognition to |
| 4874 | the generic label case (CASE 15) - removed CASE 5E. | 5092 | the generic label case (CASE 15) - removed CASE 5E. |
| 4875 | 5093 | ||
| 4876 | (c-font-lock-declarations): Added recognition of labels in the | 5094 | (c-font-lock-declarations): Add recognition of labels in the |
| 4877 | same round since we need to handle labels in parallell with other | 5095 | same round since we need to handle labels in parallell with other |
| 4878 | declarations to recognize both accurately. It should also improve | 5096 | declarations to recognize both accurately. It should also improve |
| 4879 | speed. | 5097 | speed. |
| 4880 | 5098 | ||
| 4881 | (c-simple-decl-matchers, c-basic-matchers-after): Moved | 5099 | (c-simple-decl-matchers, c-basic-matchers-after): |
| 4882 | `c-font-lock-labels' so that it only is used on decoration level 2 | 5100 | Move `c-font-lock-labels' so that it only is used on decoration level 2 |
| 4883 | since `c-font-lock-declarations' handles it otherwise. | 5101 | since `c-font-lock-declarations' handles it otherwise. |
| 4884 | 5102 | ||
| 4885 | (c-complex-decl-matchers): Removed the simplistic recognition of | 5103 | (c-complex-decl-matchers): Remove the simplistic recognition of |
| 4886 | access labels. | 5104 | access labels. |
| 4887 | 5105 | ||
| 4888 | (c-decl-prefix-re): Removed the kludges that was necessary to cope | 5106 | (c-decl-prefix-re): Remove the kludges that was necessary to cope |
| 4889 | with labels earlier. | 5107 | with labels earlier. |
| 4890 | 5108 | ||
| 4891 | (c-decl-start-re): New language variable to make | 5109 | (c-decl-start-re): New language variable to make |
| 4892 | `c-font-lock-declarations' stop for the special protection labels | 5110 | `c-font-lock-declarations' stop for the special protection labels |
| 4893 | in Objective-C that start with `@'. | 5111 | in Objective-C that start with `@'. |
| 4894 | 5112 | ||
| 4895 | (c-label-key): Removed since it's no longer used. | 5113 | (c-label-key): Remove since it's no longer used. |
| 4896 | 5114 | ||
| 4897 | (c-recognize-colon-labels, c-label-prefix-re): New language | 5115 | (c-recognize-colon-labels, c-label-prefix-re): New language |
| 4898 | constants to support recognition of generic colon-terminated | 5116 | constants to support recognition of generic colon-terminated labels. |
| 4899 | labels. | ||
| 4900 | 5117 | ||
| 4901 | (c-type-decl-end-used): `c-decl-end' is now used whenever there | 5118 | (c-type-decl-end-used): `c-decl-end' is now used whenever there |
| 4902 | are colon terminated labels. | 5119 | are colon terminated labels. |
| 4903 | 5120 | ||
| 4904 | * progmodes/cc-align.el (c-lineup-arglist): Fixed bug when the | 5121 | * progmodes/cc-align.el (c-lineup-arglist): Fix bug when the |
| 4905 | first argument starts with a special brace list. | 5122 | first argument starts with a special brace list. |
| 4906 | 5123 | ||
| 4907 | * progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1) | 5124 | * progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1) |
| 4908 | (c-font-lock-declarations): Broke out the declaration and cast | 5125 | (c-font-lock-declarations): Break out the declaration and cast |
| 4909 | recognition from `c-font-lock-declarations' to a new function, so | 5126 | recognition from `c-font-lock-declarations' to a new function, so |
| 4910 | that it can be used in the indentation engine. | 5127 | that it can be used in the indentation engine. |
| 4911 | 5128 | ||
| 4912 | * progmodes/cc-engine.el (c-find-decl-spots): Fixed bug in backing | 5129 | * progmodes/cc-engine.el (c-find-decl-spots): Fix bug in backing |
| 4913 | up to the start of the literal. Fixed bug with the point on the | 5130 | up to the start of the literal. Fixed bug with the point on the |
| 4914 | wrong side of the search limit that could happen when the start | 5131 | wrong side of the search limit that could happen when the start |
| 4915 | position is inside a literal. | 5132 | position is inside a literal. |
| 4916 | 5133 | ||
| 4917 | * progmodes/cc-engine.el (c-parse-state) | 5134 | * progmodes/cc-engine.el (c-parse-state) |
| 4918 | (c-invalidate-state-cache): Modified the use of `c-state-cache-end' | 5135 | (c-invalidate-state-cache): Modify the use of `c-state-cache-end' |
| 4919 | so that it's kept a little bit back to increase the hit rate. | 5136 | so that it's kept a little bit back to increase the hit rate. |
| 4920 | 5137 | ||
| 4921 | (c-parse-state): Changed the macro handling and fixed some | 5138 | (c-parse-state): Change the macro handling and fixed some |
| 4922 | glitches. Macro context is checked more often than necessary now, | 5139 | glitches. Macro context is checked more often than necessary now, |
| 4923 | but otoh less garbage conses are generated. | 5140 | but otoh less garbage conses are generated. |
| 4924 | 5141 | ||
| 4925 | * progmodes/cc-engine.el (c-parse-state) | 5142 | * progmodes/cc-engine.el (c-parse-state) |
| 4926 | (c-invalidate-state-cache): Cache the last position where | 5143 | (c-invalidate-state-cache): Cache the last position where |
| 4927 | `c-state-cache' applies. This can speed up refontification quite | 5144 | `c-state-cache' applies. This can speed up refontification quite |
| 4928 | a bit in blocks where there are many non-brace parens before the | 5145 | a bit in blocks where there are many non-brace parens before the point. |
| 4929 | point. | ||
| 4930 | 5146 | ||
| 4931 | (c-state-cache-end): New variable for this. | 5147 | (c-state-cache-end): New variable for this. |
| 4932 | 5148 | ||
| 4933 | (c-guess-basic-syntax, c-debug-parse-state): Adapted for the new | 5149 | (c-guess-basic-syntax, c-debug-parse-state): Adapt for the new |
| 4934 | cache variable. | 5150 | cache variable. |
| 4935 | 5151 | ||
| 4936 | * progmodes/cc-engine.el (c-find-decl-spots): Take more care to | 5152 | * progmodes/cc-engine.el (c-find-decl-spots): Take more care to |
| @@ -4941,39 +5157,39 @@ | |||
| 4941 | region is a single line inside a literal or macro (typically when | 5157 | region is a single line inside a literal or macro (typically when |
| 4942 | the current line is refontified). | 5158 | the current line is refontified). |
| 4943 | 5159 | ||
| 4944 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified calls | 5160 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplify calls |
| 4945 | to `c-add-stmt-syntax' - there's no need to explicitly whack off | 5161 | to `c-add-stmt-syntax' - there's no need to explicitly whack off |
| 4946 | entries from the paren state. | 5162 | entries from the paren state. |
| 4947 | 5163 | ||
| 4948 | * progmodes/cc-engine.el (c-add-stmt-syntax): Narrowed down the | 5164 | * progmodes/cc-engine.el (c-add-stmt-syntax): Narrow down the |
| 4949 | special case for "else if" clauses. | 5165 | special case for "else if" clauses. |
| 4950 | 5166 | ||
| 4951 | * progmodes/cc-engine.el (c-looking-at-inexpr-block) | 5167 | * progmodes/cc-engine.el (c-looking-at-inexpr-block) |
| 4952 | (c-add-stmt-syntax): Use `c-recognize-paren-inexpr-blocks'. | 5168 | (c-add-stmt-syntax): Use `c-recognize-paren-inexpr-blocks'. |
| 4953 | 5169 | ||
| 4954 | * progmodes/cc-langs.el (c-recognize-paren-inexpr-blocks): New | 5170 | * progmodes/cc-langs.el (c-recognize-paren-inexpr-blocks): |
| 4955 | language variable to recognize the gcc extension with statement | 5171 | New language variable to recognize the gcc extension with statement |
| 4956 | blocks inside expressions. | 5172 | blocks inside expressions. |
| 4957 | 5173 | ||
| 4958 | * progmodes/cc-engine.el (c-add-stmt-syntax): Restructured to make | 5174 | * progmodes/cc-engine.el (c-add-stmt-syntax): Restructure to make |
| 4959 | it somewhat more comprehensible. The argument AT-BLOCK-START is | 5175 | it somewhat more comprehensible. The argument AT-BLOCK-START is |
| 4960 | no longer used and hence removed. | 5176 | no longer used and hence removed. |
| 4961 | 5177 | ||
| 4962 | (c-guess-continued-construct, c-guess-basic-syntax): Updated calls | 5178 | (c-guess-continued-construct, c-guess-basic-syntax): Update calls |
| 4963 | to `c-add-stmt-syntax'. | 5179 | to `c-add-stmt-syntax'. |
| 4964 | 5180 | ||
| 4965 | * progmodes/cc-engine.el (c-backward-to-decl-anchor): Use | 5181 | * progmodes/cc-engine.el (c-backward-to-decl-anchor): |
| 4966 | `c-beginning-of-statement-1' instead of duplicating parts of it. | 5182 | Use `c-beginning-of-statement-1' instead of duplicating parts of it. |
| 4967 | This fixes bogus label recognition. | 5183 | This fixes bogus label recognition. |
| 4968 | 5184 | ||
| 4969 | * progmodes/cc-engine.el (c-add-type, c-check-type) | 5185 | * progmodes/cc-engine.el (c-add-type, c-check-type) |
| 4970 | (c-forward-name, c-forward-type): Improved storage of template | 5186 | (c-forward-name, c-forward-type): Improve storage of template |
| 4971 | types in `c-found-types' so that they can be recognized better. | 5187 | types in `c-found-types' so that they can be recognized better. |
| 4972 | 5188 | ||
| 4973 | (c-syntactic-content): Added option to skip past nested parens. | 5189 | (c-syntactic-content): Add option to skip past nested parens. |
| 4974 | 5190 | ||
| 4975 | * progmodes/cc-engine.el (c-forward-name): Set | 5191 | * progmodes/cc-engine.el (c-forward-name): |
| 4976 | `c-last-identifier-range' all the time. It's less work that way. | 5192 | Set `c-last-identifier-range' all the time. It's less work that way. |
| 4977 | Handle that there might not be an identifier to store in | 5193 | Handle that there might not be an identifier to store in |
| 4978 | `c-last-identifier-range'. | 5194 | `c-last-identifier-range'. |
| 4979 | 5195 | ||
| @@ -4981,7 +5197,7 @@ | |||
| 4981 | nil from `c-forward-name'. | 5197 | nil from `c-forward-name'. |
| 4982 | 5198 | ||
| 4983 | * progmodes/cc-defs.el (c-safe-scan-lists) | 5199 | * progmodes/cc-defs.el (c-safe-scan-lists) |
| 4984 | (c-(go-)?(up|down)-list-(forward|backward)): Added limit arguments. | 5200 | (c-(go-)?(up|down)-list-(forward|backward)): Add limit arguments. |
| 4985 | 5201 | ||
| 4986 | * progmodes/cc-defs.el (c-save-buffer-state): Use `unwind-protect' | 5202 | * progmodes/cc-defs.el (c-save-buffer-state): Use `unwind-protect' |
| 4987 | to work even if the form fails. | 5203 | to work even if the form fails. |
| @@ -4989,14 +5205,13 @@ | |||
| 4989 | * progmodes/cc-engine.el (c-parse-state): Speedup when moving far | 5205 | * progmodes/cc-engine.el (c-parse-state): Speedup when moving far |
| 4990 | down in a large file in one go. | 5206 | down in a large file in one go. |
| 4991 | 5207 | ||
| 4992 | (c-get-fallback-start-pos): New helper function for | 5208 | (c-get-fallback-start-pos): New helper function for `c-parse-state'. |
| 4993 | `c-parse-state'. | ||
| 4994 | 5209 | ||
| 4995 | * progmodes/cc-align.el (c-lineup-assignments): New lineup | 5210 | * progmodes/cc-align.el (c-lineup-assignments): New lineup |
| 4996 | function which is like `c-lineup-math' but returns nil instead of | 5211 | function which is like `c-lineup-math' but returns nil instead of |
| 4997 | `c-basic-offset' when it doesn't match. | 5212 | `c-basic-offset' when it doesn't match. |
| 4998 | 5213 | ||
| 4999 | (c-lineup-math): Changed to use `c-lineup-assignments'. | 5214 | (c-lineup-math): Change to use `c-lineup-assignments'. |
| 5000 | 5215 | ||
| 5001 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 5216 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 5002 | 5217 | ||
| @@ -5011,7 +5226,7 @@ | |||
| 5011 | places to use skip by syntax instead of skip by char class. | 5226 | places to use skip by syntax instead of skip by char class. |
| 5012 | 5227 | ||
| 5013 | * progmodes/cc-langs.el (c-unterminated-block-comment-regexp): | 5228 | * progmodes/cc-langs.el (c-unterminated-block-comment-regexp): |
| 5014 | Fixed a bug in the regexp that caused extreme backtracking. | 5229 | Fix a bug in the regexp that caused extreme backtracking. |
| 5015 | 5230 | ||
| 5016 | * progmodes/cc-langs.el (c-block-comment-starter) | 5231 | * progmodes/cc-langs.el (c-block-comment-starter) |
| 5017 | (c-block-comment-ender): New language constants to specify in a | 5232 | (c-block-comment-ender): New language constants to specify in a |
| @@ -5030,18 +5245,16 @@ | |||
| 5030 | 5245 | ||
| 5031 | (c-simple-ws): New language constant for simple whitespace. | 5246 | (c-simple-ws): New language constant for simple whitespace. |
| 5032 | 5247 | ||
| 5033 | * progmodes/cc-defs.el (c-concat-separated): New convenience | 5248 | * progmodes/cc-defs.el (c-concat-separated): New convenience function. |
| 5034 | function. | ||
| 5035 | 5249 | ||
| 5036 | * progmodes/cc-defs.el (c-make-keywords-re): Added kludge for bug | 5250 | * progmodes/cc-defs.el (c-make-keywords-re): Add kludge for bug |
| 5037 | in `regexp-opt' in Emacs 20 and XEmacs when strings contain | 5251 | in `regexp-opt' in Emacs 20 and XEmacs when strings contain |
| 5038 | newlines. Allow and ignore nil elements in the list. | 5252 | newlines. Allow and ignore nil elements in the list. |
| 5039 | 5253 | ||
| 5040 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 5254 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 5041 | 5255 | ||
| 5042 | * progmodes/cc-cmds.el: Comment out a (n almost certainly | 5256 | * progmodes/cc-cmds.el: Comment out a (n almost certainly |
| 5043 | superfluous) check, (eq here (point-max)) in | 5257 | superfluous) check, (eq here (point-max)) in c-beginning-of-statement. |
| 5044 | c-beginning-of-statement. | ||
| 5045 | 5258 | ||
| 5046 | * progmodes/cc-cmds.el: Tidy up the comments in | 5259 | * progmodes/cc-cmds.el: Tidy up the comments in |
| 5047 | c-beginning-of-statement and subfunctions. | 5260 | c-beginning-of-statement and subfunctions. |
| @@ -5050,8 +5263,7 @@ | |||
| 5050 | more flexible c-put-char-property and c-clear-char-properties. | 5263 | more flexible c-put-char-property and c-clear-char-properties. |
| 5051 | Add the author's email address. | 5264 | Add the author's email address. |
| 5052 | 5265 | ||
| 5053 | * progmodes/cc-langs.el: New variable, | 5266 | * progmodes/cc-langs.el (c-block-comment-start-regexp): New variable. |
| 5054 | c-block-comment-start-regexp. | ||
| 5055 | 5267 | ||
| 5056 | * progmodes/cc-cmds.el: Fix bug with M-e, when point is inside the | 5268 | * progmodes/cc-cmds.el: Fix bug with M-e, when point is inside the |
| 5057 | closing "*/" of a block comment. | 5269 | closing "*/" of a block comment. |
| @@ -5075,11 +5287,11 @@ | |||
| 5075 | * progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix when | 5287 | * progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix when |
| 5076 | there are several strings on the same line. | 5288 | there are several strings on the same line. |
| 5077 | 5289 | ||
| 5078 | * progmodes/cc-engine.el (c-literal-limits): Removed the | 5290 | * progmodes/cc-engine.el (c-literal-limits): Remove the |
| 5079 | compatibility function for older emacsen. `c-literal-limits-fast' | 5291 | compatibility function for older emacsen. `c-literal-limits-fast' |
| 5080 | has now taken the place of this function. | 5292 | has now taken the place of this function. |
| 5081 | 5293 | ||
| 5082 | * progmodes/cc-vars.el (c-emacs-features): Removed compatibility | 5294 | * progmodes/cc-vars.el (c-emacs-features): Remove compatibility |
| 5083 | with older emacsen: We now require `pps-extended-state'. | 5295 | with older emacsen: We now require `pps-extended-state'. |
| 5084 | 5296 | ||
| 5085 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 5297 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| @@ -5095,19 +5307,18 @@ | |||
| 5095 | eachother. Correct a few incidental bugs. | 5307 | eachother. Correct a few incidental bugs. |
| 5096 | 5308 | ||
| 5097 | * progmodes/cc-cmds.el: Restructure c-beginning-of-statement: | 5309 | * progmodes/cc-cmds.el: Restructure c-beginning-of-statement: |
| 5098 | Improve its doc-string. Improve the handling of certain specific | 5310 | Improve its doc-string. Improve the handling of certain specific cases. |
| 5099 | cases. | ||
| 5100 | 5311 | ||
| 5101 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 5312 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 5102 | 5313 | ||
| 5103 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el | 5314 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el |
| 5104 | (c-guess-basic-syntax): Changed the way class-level labels are | 5315 | (c-guess-basic-syntax): Change the way class-level labels are |
| 5105 | recognized; they can now contain essentially any symbols. | 5316 | recognized; they can now contain essentially any symbols. |
| 5106 | 5317 | ||
| 5107 | (c-opt-extra-label-key): New language variable to cope with the | 5318 | (c-opt-extra-label-key): New language variable to cope with the |
| 5108 | special protection label syntax in Objective-C. | 5319 | special protection label syntax in Objective-C. |
| 5109 | 5320 | ||
| 5110 | (c-opt-access-key): Removed; this is now handled better by | 5321 | (c-opt-access-key): Remove; this is now handled better by |
| 5111 | `c-nonlabel-token-key' and `c-opt-extra-label-key'. | 5322 | `c-nonlabel-token-key' and `c-opt-extra-label-key'. |
| 5112 | 5323 | ||
| 5113 | (c-complex-decl-matchers): Update to handle that | 5324 | (c-complex-decl-matchers): Update to handle that |
| @@ -5120,11 +5331,11 @@ | |||
| 5120 | Recognize bitfields better. | 5331 | Recognize bitfields better. |
| 5121 | 5332 | ||
| 5122 | * progmodes/cc-engine.el (c-beginning-of-inheritance-list): | 5333 | * progmodes/cc-engine.el (c-beginning-of-inheritance-list): |
| 5123 | Removed some cruft and fixed a bug that could cause it to go to a | 5334 | Remove some cruft and fixed a bug that could cause it to go to a |
| 5124 | position further down. | 5335 | position further down. |
| 5125 | 5336 | ||
| 5126 | * progmodes/cc-langs.el, cc-engine.el | 5337 | * progmodes/cc-langs.el, cc-engine.el |
| 5127 | (c-beginning-of-statement-1): Improved detection of labels in | 5338 | (c-beginning-of-statement-1): Improve detection of labels in |
| 5128 | declaration contexts. | 5339 | declaration contexts. |
| 5129 | 5340 | ||
| 5130 | (c-beginning-of-decl-1): Use it. | 5341 | (c-beginning-of-decl-1): Use it. |
| @@ -5132,11 +5343,11 @@ | |||
| 5132 | (c-nonlabel-token-key): New language constant and variable needed | 5343 | (c-nonlabel-token-key): New language constant and variable needed |
| 5133 | by `c-beginning-of-statement-1'. | 5344 | by `c-beginning-of-statement-1'. |
| 5134 | 5345 | ||
| 5135 | * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug that | 5346 | * progmodes/cc-engine.el (c-guess-basic-syntax): Fix bug that |
| 5136 | manifested itself due to the correction in `c-forward-sexp'. | 5347 | manifested itself due to the correction in `c-forward-sexp'. |
| 5137 | 5348 | ||
| 5138 | * progmodes/cc-defs.el (c-forward-sexp, c-backward-sexp): Made | 5349 | * progmodes/cc-defs.el (c-forward-sexp, c-backward-sexp): |
| 5139 | these behave as documented when used at the buffer limits. | 5350 | Make these behave as documented when used at the buffer limits. |
| 5140 | 5351 | ||
| 5141 | * progmodes/cc-mode.el, cc-engine.el, cc-langs.el | 5352 | * progmodes/cc-mode.el, cc-engine.el, cc-langs.el |
| 5142 | (c-type-decl-end-used): Made this a language variable. | 5353 | (c-type-decl-end-used): Made this a language variable. |
| @@ -5145,20 +5356,20 @@ | |||
| 5145 | correctly when `combine-after-change-calls' is used together with | 5356 | correctly when `combine-after-change-calls' is used together with |
| 5146 | temporary narrowings. | 5357 | temporary narrowings. |
| 5147 | 5358 | ||
| 5148 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Report | 5359 | * progmodes/cc-engine.el (c-beginning-of-statement-1): |
| 5149 | labels correctly when the start point is immediately after the | 5360 | Report labels correctly when the start point is immediately after the |
| 5150 | colon. | 5361 | colon. |
| 5151 | 5362 | ||
| 5152 | * progmodes/cc-defs.el (c-parse-sexp-lookup-properties): Removed | 5363 | * progmodes/cc-defs.el (c-parse-sexp-lookup-properties): |
| 5153 | since it isn't used anymore. | 5364 | Remove since it isn't used anymore. |
| 5154 | 5365 | ||
| 5155 | * progmodes/cc-cmds.el (c-electric-lt-gt): Detect and mark angle | 5366 | * progmodes/cc-cmds.el (c-electric-lt-gt): Detect and mark angle |
| 5156 | bracket arglists such as template parens in C++. | 5367 | bracket arglists such as template parens in C++. |
| 5157 | 5368 | ||
| 5158 | * progmodes/cc-engine.el (c-syntactic-skip-backward): Fixed a bug | 5369 | * progmodes/cc-engine.el (c-syntactic-skip-backward): Fix a bug |
| 5159 | in the last check-in. Some optimization. | 5370 | in the last check-in. Some optimization. |
| 5160 | 5371 | ||
| 5161 | * progmodes/cc-engine.el (c-syntactic-skip-backward): Fixed bug | 5372 | * progmodes/cc-engine.el (c-syntactic-skip-backward): Fix bug |
| 5162 | where it could stop at the same level in a preceding sexp when | 5373 | where it could stop at the same level in a preceding sexp when |
| 5163 | PAREN-LEVEL is set. | 5374 | PAREN-LEVEL is set. |
| 5164 | 5375 | ||
| @@ -5166,7 +5377,7 @@ | |||
| 5166 | text property lookup only when it's needed. | 5377 | text property lookup only when it's needed. |
| 5167 | 5378 | ||
| 5168 | * progmodes/cc-langs.el, cc-engine.el, cc-fonts.el, cc-mode.el: | 5379 | * progmodes/cc-langs.el, cc-engine.el, cc-fonts.el, cc-mode.el: |
| 5169 | Changed the policy for paren marked angle brackets to be more | 5380 | Change the policy for paren marked angle brackets to be more |
| 5170 | persistent; once marked they remain marked even when they're found | 5381 | persistent; once marked they remain marked even when they're found |
| 5171 | to be unbalanced in the searched region. This should keep the | 5382 | to be unbalanced in the searched region. This should keep the |
| 5172 | paren syntax around even when individual lines are refontified in | 5383 | paren syntax around even when individual lines are refontified in |
| @@ -5180,7 +5391,7 @@ | |||
| 5180 | (c-forward-<>-arglist, c-forward-<>-arglist-recur): The reparse | 5391 | (c-forward-<>-arglist, c-forward-<>-arglist-recur): The reparse |
| 5181 | argument has become `c-parse-and-markup-<>-arglists'. | 5392 | argument has become `c-parse-and-markup-<>-arglists'. |
| 5182 | 5393 | ||
| 5183 | (c-remove-<>-arglist-properties): Removed - no longer used. | 5394 | (c-remove-<>-arglist-properties): Remove - no longer used. |
| 5184 | 5395 | ||
| 5185 | (c-after-change-check-<>-operators): New function used on | 5396 | (c-after-change-check-<>-operators): New function used on |
| 5186 | `after-change-functions' to avoid that "<" and ">" characters that | 5397 | `after-change-functions' to avoid that "<" and ">" characters that |
| @@ -5192,28 +5403,26 @@ | |||
| 5192 | (c-after-change): Call `c-after-change-check-<>-operators'. | 5403 | (c-after-change): Call `c-after-change-check-<>-operators'. |
| 5193 | 5404 | ||
| 5194 | (c-font-lock-<>-arglists): Use the context properties set by | 5405 | (c-font-lock-<>-arglists): Use the context properties set by |
| 5195 | `c-font-lock-declarations' to set | 5406 | `c-font-lock-declarations' to set `c-disallow-comma-in-<>-arglists' |
| 5196 | `c-disallow-comma-in-<>-arglists' correctly to avoid doing invalid | 5407 | correctly to avoid doing invalid markup. |
| 5197 | markup. | ||
| 5198 | 5408 | ||
| 5199 | (c-font-lock-declarations): Removed code that undoes the invalid | 5409 | (c-font-lock-declarations): Remove code that undoes the invalid |
| 5200 | markup done by `c-font-lock-<>-arglists'. | 5410 | markup done by `c-font-lock-<>-arglists'. |
| 5201 | 5411 | ||
| 5202 | (c-complex-decl-matchers): `c-font-lock-<>-arglists' now runs | 5412 | (c-complex-decl-matchers): `c-font-lock-<>-arglists' now runs |
| 5203 | after `c-font-lock-declarations'. | 5413 | after `c-font-lock-declarations'. |
| 5204 | 5414 | ||
| 5205 | * progmodes/cc-engine.el (c-syntactic-skip-backward): Added | 5415 | * progmodes/cc-engine.el (c-syntactic-skip-backward): |
| 5206 | paren-level feature. | 5416 | Add paren-level feature. |
| 5207 | 5417 | ||
| 5208 | (c-guess-basic-syntax): Improved the anchor position for | 5418 | (c-guess-basic-syntax): Improve the anchor position for |
| 5209 | `template-args-cont' in nested template arglists. There's still | 5419 | `template-args-cont' in nested template arglists. There's still |
| 5210 | much to be desired in this area, though. | 5420 | much to be desired in this area, though. |
| 5211 | 5421 | ||
| 5212 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 5422 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 5213 | 5423 | ||
| 5214 | * progmodes/cc-cmds.el, cc-engine.el, cc-langs.el, cc-vars.el: | 5424 | * progmodes/cc-cmds.el, cc-engine.el, cc-langs.el, cc-vars.el: |
| 5215 | Make the "Text Filling and Line Breaking" commands work for AWK | 5425 | Make the "Text Filling and Line Breaking" commands work for AWK buffers. |
| 5216 | buffers. | ||
| 5217 | 5426 | ||
| 5218 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 5427 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 5219 | 5428 | ||
| @@ -5252,7 +5461,7 @@ | |||
| 5252 | 5461 | ||
| 5253 | 2005-12-08 Kim F. Storm <storm@cua.dk> | 5462 | 2005-12-08 Kim F. Storm <storm@cua.dk> |
| 5254 | 5463 | ||
| 5255 | * emulation/cua-base.el (cua-use-hyper-key): Replaced by ... | 5464 | * emulation/cua-base.el (cua-use-hyper-key): Replace by ... |
| 5256 | (cua-rectangle-modifier-key): ... this. New defcustom. Can now | 5465 | (cua-rectangle-modifier-key): ... this. New defcustom. Can now |
| 5257 | select either meta, hyper, or super modifier for rectangle commands. | 5466 | select either meta, hyper, or super modifier for rectangle commands. |
| 5258 | (cua--rectangle-modifier-key): New defvar. | 5467 | (cua--rectangle-modifier-key): New defvar. |
| @@ -5261,8 +5470,8 @@ | |||
| 5261 | on X, to meta otherwise. Always bind C-return to toggle | 5470 | on X, to meta otherwise. Always bind C-return to toggle |
| 5262 | rectangle. Pass ?\s instead of `space' to cua--M/H-key. | 5471 | rectangle. Pass ?\s instead of `space' to cua--M/H-key. |
| 5263 | 5472 | ||
| 5264 | * emulation/cua-rect.el (cua-help-for-rectangle): Use | 5473 | * emulation/cua-rect.el (cua-help-for-rectangle): |
| 5265 | cua--rectangle-modifier-key. Handle super modifier too. | 5474 | Use cua--rectangle-modifier-key. Handle super modifier too. |
| 5266 | (cua--init-rectangles): Always bind C-return to toggle rectangle. | 5475 | (cua--init-rectangles): Always bind C-return to toggle rectangle. |
| 5267 | Pass ?\s instead of `space' to cua--M/H-key and cua--rect-M/H-key. | 5476 | Pass ?\s instead of `space' to cua--M/H-key and cua--rect-M/H-key. |
| 5268 | 5477 | ||
| @@ -5273,8 +5482,8 @@ | |||
| 5273 | keymap if cua--prefix-override-timer is `shift'. | 5482 | keymap if cua--prefix-override-timer is `shift'. |
| 5274 | (cua--shift-control-prefix): New function; emulate "type prefix | 5483 | (cua--shift-control-prefix): New function; emulate "type prefix |
| 5275 | key twice" functionality to handle shifted prefix key override. | 5484 | key twice" functionality to handle shifted prefix key override. |
| 5276 | (cua--shift-control-c-prefix, cua--shift-control-x-prefix): New | 5485 | (cua--shift-control-c-prefix, cua--shift-control-x-prefix): |
| 5277 | commands. | 5486 | New commands. |
| 5278 | (cua--init-keymaps): Bind them to S-C-c and S-C-x. | 5487 | (cua--init-keymaps): Bind them to S-C-c and S-C-x. |
| 5279 | 5488 | ||
| 5280 | 2005-12-08 Carsten Dominik <dominik@science.uva.nl> | 5489 | 2005-12-08 Carsten Dominik <dominik@science.uva.nl> |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 60705b30552..e2275ce356d 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -1092,7 +1092,11 @@ or default values have changed since the previous major Emacs release. | |||
| 1092 | With argument SINCE-VERSION (a string), customize all settings | 1092 | With argument SINCE-VERSION (a string), customize all settings |
| 1093 | that were added or redefined since that version." | 1093 | that were added or redefined since that version." |
| 1094 | 1094 | ||
| 1095 | (interactive "sCustomize options changed, since version (default all versions): ") | 1095 | (interactive |
| 1096 | (list | ||
| 1097 | (read-from-minibuffer | ||
| 1098 | (format "Customize options changed, since version (default %s): " | ||
| 1099 | customize-changed-options-previous-release)))) | ||
| 1096 | (if (equal since-version "") | 1100 | (if (equal since-version "") |
| 1097 | (setq since-version nil) | 1101 | (setq since-version nil) |
| 1098 | (unless (condition-case nil | 1102 | (unless (condition-case nil |
| @@ -3408,12 +3412,12 @@ Optional EVENT is the location for the menu." | |||
| 3408 | ;; Make the comment invisible by hand if it's empty | 3412 | ;; Make the comment invisible by hand if it's empty |
| 3409 | (custom-comment-hide comment-widget)) | 3413 | (custom-comment-hide comment-widget)) |
| 3410 | (put symbol 'customized-face value) | 3414 | (put symbol 'customized-face value) |
| 3415 | (custom-push-theme 'theme-face symbol 'user 'set value) | ||
| 3411 | (if (face-spec-choose value) | 3416 | (if (face-spec-choose value) |
| 3412 | (face-spec-set symbol value) | 3417 | (face-spec-set symbol value) |
| 3413 | ;; face-set-spec ignores empty attribute lists, so just give it | 3418 | ;; face-set-spec ignores empty attribute lists, so just give it |
| 3414 | ;; something harmless instead. | 3419 | ;; something harmless instead. |
| 3415 | (face-spec-set symbol '((t :foreground unspecified)))) | 3420 | (face-spec-set symbol '((t :foreground unspecified)))) |
| 3416 | (custom-push-theme 'theme-face symbol 'user 'set value) | ||
| 3417 | (put symbol 'customized-face-comment comment) | 3421 | (put symbol 'customized-face-comment comment) |
| 3418 | (put symbol 'face-comment comment) | 3422 | (put symbol 'face-comment comment) |
| 3419 | (custom-face-state-set widget) | 3423 | (custom-face-state-set widget) |
| @@ -3486,13 +3490,17 @@ restoring it to the state of a face that has never been customized." | |||
| 3486 | (put symbol 'customized-face nil) | 3490 | (put symbol 'customized-face nil) |
| 3487 | (put symbol 'customized-face-comment nil) | 3491 | (put symbol 'customized-face-comment nil) |
| 3488 | (custom-push-theme 'theme-face symbol 'user 'reset) | 3492 | (custom-push-theme 'theme-face symbol 'user 'reset) |
| 3493 | (face-spec-set symbol value) | ||
| 3489 | (custom-theme-recalc-face symbol) | 3494 | (custom-theme-recalc-face symbol) |
| 3490 | (when (or (get symbol 'saved-face) (get symbol 'saved-face-comment)) | 3495 | (when (or (get symbol 'saved-face) (get symbol 'saved-face-comment)) |
| 3491 | (put symbol 'saved-face nil) | 3496 | (put symbol 'saved-face nil) |
| 3492 | (put symbol 'saved-face-comment nil) | 3497 | (put symbol 'saved-face-comment nil) |
| 3493 | (custom-save-all)) | 3498 | (custom-save-all)) |
| 3494 | (put symbol 'face-comment nil) | 3499 | (put symbol 'face-comment nil) |
| 3495 | (widget-value-set child value) | 3500 | (widget-value-set child |
| 3501 | (custom-pre-filter-face-spec | ||
| 3502 | (list (list t (custom-face-attributes-get | ||
| 3503 | symbol nil))))) | ||
| 3496 | ;; This call manages the comment visibility | 3504 | ;; This call manages the comment visibility |
| 3497 | (widget-value-set comment-widget "") | 3505 | (widget-value-set comment-widget "") |
| 3498 | (custom-face-state-set widget) | 3506 | (custom-face-state-set widget) |
diff --git a/lisp/custom.el b/lisp/custom.el index 15b5b4a815c..c67f3b06272 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -819,7 +819,8 @@ See `custom-known-themes' for a list of known themes." | |||
| 819 | (not (equal (eval (car (get symbol 'standard-value))) | 819 | (not (equal (eval (car (get symbol 'standard-value))) |
| 820 | (symbol-value symbol))))) | 820 | (symbol-value symbol))))) |
| 821 | (setq old (list (list 'changed (symbol-value symbol)))) | 821 | (setq old (list (list 'changed (symbol-value symbol)))) |
| 822 | (if (facep symbol) | 822 | (if (and (facep symbol) |
| 823 | (not (face-spec-match-p symbol (get symbol 'face-defface-spec)))) | ||
| 823 | (setq old (list (list 'changed (list | 824 | (setq old (list (list 'changed (list |
| 824 | (append '(t) (custom-face-attributes-get symbol nil))))))))) | 825 | (append '(t) (custom-face-attributes-get symbol nil))))))))) |
| 825 | (put symbol prop (cons (list theme value) old)) | 826 | (put symbol prop (cons (list theme value) old)) |
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index 09645864573..7c7f7902d82 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el | |||
| @@ -274,7 +274,7 @@ when editing big diffs)." | |||
| 274 | (defvar diff-indicator-changed-face 'diff-indicator-changed) | 274 | (defvar diff-indicator-changed-face 'diff-indicator-changed) |
| 275 | 275 | ||
| 276 | (defface diff-function | 276 | (defface diff-function |
| 277 | '((t :inherit diff-context)) | 277 | '((t :inherit diff-header)) |
| 278 | "`diff-mode' face used to highlight function names produced by \"diff -p\"." | 278 | "`diff-mode' face used to highlight function names produced by \"diff -p\"." |
| 279 | :group 'diff-mode) | 279 | :group 'diff-mode) |
| 280 | ;; backward-compatibility alias | 280 | ;; backward-compatibility alias |
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el index 120866e7925..33b38552595 100644 --- a/lisp/emulation/cua-rect.el +++ b/lisp/emulation/cua-rect.el | |||
| @@ -799,8 +799,8 @@ If command is repeated at same position, delete the rectangle." | |||
| 799 | (if cua--virtual-edges-debug ?, ?\s)) | 799 | (if cua--virtual-edges-debug ?, ?\s)) |
| 800 | 'face rface)) | 800 | 'face rface)) |
| 801 | (if (cua--rectangle-right-side) | 801 | (if (cua--rectangle-right-side) |
| 802 | (put-text-property (1- (length ms)) (length ms) 'cursor t ms) | 802 | (put-text-property (1- (length ms)) (length ms) 'cursor 2 ms) |
| 803 | (put-text-property 0 1 'cursor t ms)) | 803 | (put-text-property 0 1 'cursor 2 ms)) |
| 804 | (setq bs (concat bs ms)) | 804 | (setq bs (concat bs ms)) |
| 805 | (setq rface nil)) | 805 | (setq rface nil)) |
| 806 | (t | 806 | (t |
| @@ -810,8 +810,8 @@ If command is repeated at same position, delete the rectangle." | |||
| 810 | (if cua--virtual-edges-debug ?~ ?\s)) | 810 | (if cua--virtual-edges-debug ?~ ?\s)) |
| 811 | 'face rface)) | 811 | 'face rface)) |
| 812 | (if (cua--rectangle-right-side) | 812 | (if (cua--rectangle-right-side) |
| 813 | (put-text-property (1- (length as)) (length as) 'cursor t as) | 813 | (put-text-property (1- (length as)) (length as) 'cursor 2 as) |
| 814 | (put-text-property 0 1 'cursor t as)) | 814 | (put-text-property 0 1 'cursor 2 as)) |
| 815 | (if (/= pr le) | 815 | (if (/= pr le) |
| 816 | (setq e (1- e)))))))) | 816 | (setq e (1- e)))))))) |
| 817 | ;; Trim old leading overlays. | 817 | ;; Trim old leading overlays. |
diff --git a/lisp/files.el b/lisp/files.el index c1fbf37da4a..e4610ac1d3c 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -990,6 +990,20 @@ documentation for additional customization information." | |||
| 990 | (pop-to-buffer buffer t norecord) | 990 | (pop-to-buffer buffer t norecord) |
| 991 | (raise-frame (window-frame (selected-window))))) | 991 | (raise-frame (window-frame (selected-window))))) |
| 992 | 992 | ||
| 993 | (defun display-buffer-other-frame (buffer) | ||
| 994 | "Switch to buffer BUFFER in another frame. | ||
| 995 | This uses the function `display-buffer' as a subroutine; see its | ||
| 996 | documentation for additional customization information." | ||
| 997 | (interactive "BDisplay buffer in other frame: ") | ||
| 998 | (let ((pop-up-frames t) | ||
| 999 | same-window-buffer-names same-window-regexps | ||
| 1000 | (old-window (selected-window)) | ||
| 1001 | new-window) | ||
| 1002 | (setq new-window (display-buffer buffer t)) | ||
| 1003 | (lower-frame (window-frame new-window)) | ||
| 1004 | (make-frame-invisible (window-frame old-window)) | ||
| 1005 | (make-frame-visible (window-frame old-window)))) | ||
| 1006 | |||
| 993 | (defvar find-file-default nil | 1007 | (defvar find-file-default nil |
| 994 | "Used within `find-file-read-args'.") | 1008 | "Used within `find-file-read-args'.") |
| 995 | 1009 | ||
| @@ -5154,6 +5168,7 @@ only these files will be asked to be saved." | |||
| 5154 | (define-key ctl-x-5-map "f" 'find-file-other-frame) | 5168 | (define-key ctl-x-5-map "f" 'find-file-other-frame) |
| 5155 | (define-key ctl-x-5-map "\C-f" 'find-file-other-frame) | 5169 | (define-key ctl-x-5-map "\C-f" 'find-file-other-frame) |
| 5156 | (define-key ctl-x-5-map "r" 'find-file-read-only-other-frame) | 5170 | (define-key ctl-x-5-map "r" 'find-file-read-only-other-frame) |
| 5171 | (define-key ctl-x-4-map "\C-o" 'display-buffer-other-frame) | ||
| 5157 | 5172 | ||
| 5158 | ;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f | 5173 | ;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f |
| 5159 | ;;; files.el ends here | 5174 | ;;; files.el ends here |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1b4e79a0c87..c2b8d7200da 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -281,12 +281,6 @@ If a number, only buffers greater than this size have fontification messages." | |||
| 281 | (other :tag "always" t) | 281 | (other :tag "always" t) |
| 282 | (integer :tag "size")) | 282 | (integer :tag "size")) |
| 283 | :group 'font-lock) | 283 | :group 'font-lock) |
| 284 | |||
| 285 | (defcustom font-lock-lines-before 0 | ||
| 286 | "*Number of lines before the changed text to include in refontification." | ||
| 287 | :type 'integer | ||
| 288 | :group 'font-lock | ||
| 289 | :version "22.1") | ||
| 290 | 284 | ||
| 291 | 285 | ||
| 292 | ;; Originally these variable values were face names such as `bold' etc. | 286 | ;; Originally these variable values were face names such as `bold' etc. |
| @@ -1098,9 +1092,8 @@ what properties to clear before refontifying a region.") | |||
| 1098 | ;; Fontify the region the major mode has specified. | 1092 | ;; Fontify the region the major mode has specified. |
| 1099 | (setq beg (car region) end (cdr region)) | 1093 | (setq beg (car region) end (cdr region)) |
| 1100 | ;; Fontify the whole lines which enclose the region. | 1094 | ;; Fontify the whole lines which enclose the region. |
| 1101 | (setq beg (progn (goto-char beg) | 1095 | (setq beg (progn (goto-char beg) (line-beginning-position)) |
| 1102 | (forward-line (- font-lock-lines-before))) | 1096 | end (progn (goto-char end) (line-beginning-position 2)))) |
| 1103 | end (progn (goto-char end) (forward-line 1) (point)))) | ||
| 1104 | (font-lock-fontify-region beg end))))) | 1097 | (font-lock-fontify-region beg end))))) |
| 1105 | 1098 | ||
| 1106 | (defun font-lock-fontify-block (&optional arg) | 1099 | (defun font-lock-fontify-block (&optional arg) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 8023af47bfd..966451cce3c 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,65 @@ | |||
| 1 | 2006-03-21 Daniel Pittman <daniel@rimspace.net> | ||
| 2 | |||
| 3 | * nnimap.el (nnimap-request-update-info-internal): Optimize. | ||
| 4 | Don't `gnus-uncompress-range' to avoid excessive memory usage. | ||
| 5 | |||
| 6 | 2006-03-21 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 7 | |||
| 8 | * gnus-agent.el (gnus-agent-queue-mail): Fix custom tag for `t'. | ||
| 9 | |||
| 10 | * spam.el (spam-mark-new-messages-in-spam-group-as-spam): Add | ||
| 11 | comment on version. | ||
| 12 | |||
| 13 | 2006-03-20 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 14 | |||
| 15 | * spam.el (spam-mark-new-messages-in-spam-group-as-spam): New | ||
| 16 | variable. | ||
| 17 | (spam-mark-junk-as-spam-routine): Use it. Allow to disable | ||
| 18 | assigning the spam-mark to new messages. | ||
| 19 | |||
| 20 | 2006-03-20 Adam Sj,Ax(Bgren <asjo@koldfront.dk> (tiny change) | ||
| 21 | |||
| 22 | (spam-ham-copy-or-move-routine): Don't declare `todo' twice. | ||
| 23 | |||
| 24 | 2006-03-20 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 25 | |||
| 26 | * smiley.el: Add missing test smiley. | ||
| 27 | |||
| 28 | 2006-03-17 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 29 | |||
| 30 | * mm-decode.el (mm-with-part): New macro. | ||
| 31 | (mm-get-part): Use it; work with message/external-body as well. | ||
| 32 | (mm-save-part): Treat name and filename equally. | ||
| 33 | |||
| 34 | * mm-extern.el (mm-extern-cache-contents): New function. | ||
| 35 | (mm-inline-external-body): Use it; force the part to be displayed; | ||
| 36 | move undisplayer added to the cached handle to the parent. | ||
| 37 | |||
| 38 | * gnus-art.el (gnus-mime-save-part-and-strip): Add name parameter. | ||
| 39 | (gnus-mime-view-part-as-type): Work with message/external-body. | ||
| 40 | |||
| 41 | * gnus-util.el (gnus-tool-bar-update): Bind tool-bar-mode. | ||
| 42 | |||
| 43 | 2006-03-15 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 44 | |||
| 45 | * gnus-art.el (gnus-article-only-boring-p): Bind | ||
| 46 | inhibit-point-motion-hooks to avoid infinite loop when entering | ||
| 47 | intangible text. Reported by Ralf Wachinger | ||
| 48 | <rwnewsmampfer@geekmail.de>. | ||
| 49 | |||
| 50 | 2006-03-14 Simon Josefsson <jas@extundo.com> | ||
| 51 | |||
| 52 | * message.el (message-unique-id): Don't use message-number-base36 | ||
| 53 | if (user-uid) is a float. Reported by Bjorn Solberg | ||
| 54 | <bjorn_ding1@hekneby.org>. | ||
| 55 | |||
| 56 | 2006-03-13 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 57 | |||
| 58 | * mm-uu.el (mm-uu-dissect): Dissect all parts correctly. | ||
| 59 | |||
| 60 | * gnus-art.el (gnus-mime-display-single): Make sure there is an | ||
| 61 | empty line between a part and a message part. | ||
| 62 | |||
| 1 | 2006-03-10 Reiner Steib <Reiner.Steib@gmx.de> | 63 | 2006-03-10 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 64 | ||
| 3 | * smiley.el: Add more test smileys. | 65 | * smiley.el: Add more test smileys. |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index c467c296fa0..123ad340ae1 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -204,7 +204,7 @@ queue. Otherwise, queue if and only if unplugged." | |||
| 204 | :group 'gnus-agent | 204 | :group 'gnus-agent |
| 205 | :type '(radio (const :format "Always" always) | 205 | :type '(radio (const :format "Always" always) |
| 206 | (const :format "Never" nil) | 206 | (const :format "Never" nil) |
| 207 | (const :format "When plugged" t))) | 207 | (const :format "When unplugged" t))) |
| 208 | 208 | ||
| 209 | (defcustom gnus-agent-prompt-send-queue nil | 209 | (defcustom gnus-agent-prompt-send-queue nil |
| 210 | "If non-nil, `gnus-group-send-queue' will prompt if called when | 210 | "If non-nil, `gnus-group-send-queue' will prompt if called when |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 0c9cb18506a..69fe8159c10 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | (autoload 'gnus-button-mailto "gnus-msg") | 49 | (autoload 'gnus-button-mailto "gnus-msg") |
| 50 | (autoload 'gnus-button-reply "gnus-msg" nil t) | 50 | (autoload 'gnus-button-reply "gnus-msg" nil t) |
| 51 | (autoload 'parse-time-string "parse-time" nil nil) | 51 | (autoload 'parse-time-string "parse-time" nil nil) |
| 52 | (autoload 'mm-extern-cache-contents "mm-extern") | ||
| 52 | 53 | ||
| 53 | (defgroup gnus-article nil | 54 | (defgroup gnus-article nil |
| 54 | "Article display." | 55 | "Article display." |
| @@ -4151,6 +4152,9 @@ Deleting parts may malfunction or destroy the article; continue? ") | |||
| 4151 | (insert "Content-Type: " (mm-handle-media-type data)) | 4152 | (insert "Content-Type: " (mm-handle-media-type data)) |
| 4152 | (mml-insert-parameter-string (cdr (mm-handle-type data)) | 4153 | (mml-insert-parameter-string (cdr (mm-handle-type data)) |
| 4153 | '(charset)) | 4154 | '(charset)) |
| 4155 | ;; Add a filename for the sake of saving the part again. | ||
| 4156 | (mml-insert-parameter | ||
| 4157 | (mail-header-encode-parameter "name" (file-name-nondirectory file))) | ||
| 4154 | (insert "\n") | 4158 | (insert "\n") |
| 4155 | (insert "Content-ID: " (message-make-message-id) "\n") | 4159 | (insert "Content-ID: " (message-make-message-id) "\n") |
| 4156 | (insert "Content-Transfer-Encoding: binary\n") | 4160 | (insert "Content-Transfer-Encoding: binary\n") |
| @@ -4330,6 +4334,10 @@ Deleting parts may malfunction or destroy the article; continue? ") | |||
| 4330 | (gnus-article-check-buffer) | 4334 | (gnus-article-check-buffer) |
| 4331 | (let ((handle (get-text-property (point) 'gnus-data))) | 4335 | (let ((handle (get-text-property (point) 'gnus-data))) |
| 4332 | (when handle | 4336 | (when handle |
| 4337 | (when (equal (mm-handle-media-type handle) "message/external-body") | ||
| 4338 | (unless (mm-handle-cache handle) | ||
| 4339 | (mm-extern-cache-contents handle)) | ||
| 4340 | (setq handle (mm-handle-cache handle))) | ||
| 4333 | (setq handle | 4341 | (setq handle |
| 4334 | (mm-make-handle (mm-handle-buffer handle) | 4342 | (mm-make-handle (mm-handle-buffer handle) |
| 4335 | (cons mime-type (cdr (mm-handle-type handle))) | 4343 | (cons mime-type (cdr (mm-handle-type handle))) |
| @@ -4889,13 +4897,18 @@ If displaying \"text/html\" is discouraged \(see | |||
| 4889 | (let ((id (1+ (length gnus-article-mime-handle-alist))) | 4897 | (let ((id (1+ (length gnus-article-mime-handle-alist))) |
| 4890 | beg) | 4898 | beg) |
| 4891 | (push (cons id handle) gnus-article-mime-handle-alist) | 4899 | (push (cons id handle) gnus-article-mime-handle-alist) |
| 4900 | (when (and display | ||
| 4901 | (equal (mm-handle-media-supertype handle) "message")) | ||
| 4902 | (insert-char | ||
| 4903 | ?\n | ||
| 4904 | (cond ((not (bolp)) 2) | ||
| 4905 | ((or (bobp) (eq (char-before (1- (point))) ?\n)) 0) | ||
| 4906 | (t 1)))) | ||
| 4892 | (when (or (not display) | 4907 | (when (or (not display) |
| 4893 | (not (gnus-unbuttonized-mime-type-p type))) | 4908 | (not (gnus-unbuttonized-mime-type-p type))) |
| 4894 | ;(gnus-article-insert-newline) | ||
| 4895 | (gnus-insert-mime-button | 4909 | (gnus-insert-mime-button |
| 4896 | handle id (list (or display (and not-attachment text)))) | 4910 | handle id (list (or display (and not-attachment text)))) |
| 4897 | (gnus-article-insert-newline) | 4911 | (gnus-article-insert-newline) |
| 4898 | ;(gnus-article-insert-newline) | ||
| 4899 | ;; Remember modify the number of forward lines. | 4912 | ;; Remember modify the number of forward lines. |
| 4900 | (setq move t)) | 4913 | (setq move t)) |
| 4901 | (setq beg (point)) | 4914 | (setq beg (point)) |
| @@ -5313,14 +5326,15 @@ not have a face in `gnus-article-boring-faces'." | |||
| 5313 | (boundp 'gnus-article-boring-faces) | 5326 | (boundp 'gnus-article-boring-faces) |
| 5314 | (symbol-value 'gnus-article-boring-faces)) | 5327 | (symbol-value 'gnus-article-boring-faces)) |
| 5315 | (save-excursion | 5328 | (save-excursion |
| 5316 | (catch 'only-boring | 5329 | (let ((inhibit-point-motion-hooks t)) |
| 5317 | (while (re-search-forward "\\b\\w\\w" nil t) | 5330 | (catch 'only-boring |
| 5318 | (forward-char -1) | 5331 | (while (re-search-forward "\\b\\w\\w" nil t) |
| 5319 | (when (not (gnus-intersection | 5332 | (forward-char -1) |
| 5320 | (gnus-faces-at (point)) | 5333 | (when (not (gnus-intersection |
| 5321 | (symbol-value 'gnus-article-boring-faces))) | 5334 | (gnus-faces-at (point)) |
| 5322 | (throw 'only-boring nil))) | 5335 | (symbol-value 'gnus-article-boring-faces))) |
| 5323 | (throw 'only-boring t))))) | 5336 | (throw 'only-boring nil))) |
| 5337 | (throw 'only-boring t)))))) | ||
| 5324 | 5338 | ||
| 5325 | (defun gnus-article-refer-article () | 5339 | (defun gnus-article-refer-article () |
| 5326 | "Read article specified by message-id around point." | 5340 | "Read article specified by message-id around point." |
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 686fe1cf837..cb3a4e9209c 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -1459,6 +1459,9 @@ Return nil otherwise." | |||
| 1459 | display)) | 1459 | display)) |
| 1460 | display))))) | 1460 | display))))) |
| 1461 | 1461 | ||
| 1462 | (eval-when-compile | ||
| 1463 | (defvar tool-bar-mode)) | ||
| 1464 | |||
| 1462 | (defun gnus-tool-bar-update (&rest ignore) | 1465 | (defun gnus-tool-bar-update (&rest ignore) |
| 1463 | "Update the tool bar." | 1466 | "Update the tool bar." |
| 1464 | (when (and (boundp 'tool-bar-mode) | 1467 | (when (and (boundp 'tool-bar-mode) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 1bdc2f6a11f..236ec1bc23f 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -4671,7 +4671,9 @@ If NOW, use that time instead." | |||
| 4671 | (* 25 25))) | 4671 | (* 25 25))) |
| 4672 | (let ((tm (current-time))) | 4672 | (let ((tm (current-time))) |
| 4673 | (concat | 4673 | (concat |
| 4674 | (if (memq system-type '(ms-dos emx vax-vms)) | 4674 | (if (or (memq system-type '(ms-dos emx vax-vms)) |
| 4675 | ;; message-number-base36 doesn't handle bigints. | ||
| 4676 | (floatp (user-uid))) | ||
| 4675 | (let ((user (downcase (user-login-name)))) | 4677 | (let ((user (downcase (user-login-name)))) |
| 4676 | (while (string-match "[^a-z0-9_]" user) | 4678 | (while (string-match "[^a-z0-9_]" user) |
| 4677 | (aset user (match-beginning 0) ?_)) | 4679 | (aset user (match-beginning 0) ?_)) |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 01557659fd6..f0f1ee430ff 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | (autoload 'executable-find "executable") | 36 | (autoload 'executable-find "executable") |
| 37 | (autoload 'mm-inline-partial "mm-partial") | 37 | (autoload 'mm-inline-partial "mm-partial") |
| 38 | (autoload 'mm-inline-external-body "mm-extern") | 38 | (autoload 'mm-inline-external-body "mm-extern") |
| 39 | (autoload 'mm-extern-cache-contents "mm-extern") | ||
| 39 | (autoload 'mm-insert-inline "mm-view")) | 40 | (autoload 'mm-insert-inline "mm-view")) |
| 40 | 41 | ||
| 41 | (defvar gnus-current-window-configuration) | 42 | (defvar gnus-current-window-configuration) |
| @@ -1082,17 +1083,35 @@ external if displayed external." | |||
| 1082 | ;;; Functions for outputting parts | 1083 | ;;; Functions for outputting parts |
| 1083 | ;;; | 1084 | ;;; |
| 1084 | 1085 | ||
| 1086 | (defmacro mm-with-part (handle &rest forms) | ||
| 1087 | "Run FORMS in the temp buffer containing the contents of HANDLE." | ||
| 1088 | `(let* ((handle ,handle) | ||
| 1089 | ;; The multibyteness of the temp buffer should be turned on | ||
| 1090 | ;; if inserting a multibyte string. Contrarily, the buffer's | ||
| 1091 | ;; multibyteness should be off if inserting a unibyte string, | ||
| 1092 | ;; especially if a string contains 8bit data. | ||
| 1093 | (default-enable-multibyte-characters | ||
| 1094 | (with-current-buffer (mm-handle-buffer handle) | ||
| 1095 | (mm-multibyte-p)))) | ||
| 1096 | (with-temp-buffer | ||
| 1097 | (insert-buffer-substring (mm-handle-buffer handle)) | ||
| 1098 | (mm-disable-multibyte) | ||
| 1099 | (mm-decode-content-transfer-encoding | ||
| 1100 | (mm-handle-encoding handle) | ||
| 1101 | (mm-handle-media-type handle)) | ||
| 1102 | ,@forms))) | ||
| 1103 | (put 'mm-with-part 'lisp-indent-function 1) | ||
| 1104 | (put 'mm-with-part 'edebug-form-spec '(body)) | ||
| 1105 | |||
| 1085 | (defun mm-get-part (handle) | 1106 | (defun mm-get-part (handle) |
| 1086 | "Return the contents of HANDLE as a string." | 1107 | "Return the contents of HANDLE as a string." |
| 1087 | (let ((default-enable-multibyte-characters | 1108 | (if (equal (mm-handle-media-type handle) "message/external-body") |
| 1088 | (with-current-buffer (mm-handle-buffer handle) | 1109 | (progn |
| 1089 | (mm-multibyte-p)))) | 1110 | (unless (mm-handle-cache handle) |
| 1090 | (with-temp-buffer | 1111 | (mm-extern-cache-contents handle)) |
| 1091 | (insert-buffer-substring (mm-handle-buffer handle)) | 1112 | (with-current-buffer (mm-handle-buffer (mm-handle-cache handle)) |
| 1092 | (mm-disable-multibyte) | 1113 | (buffer-string))) |
| 1093 | (mm-decode-content-transfer-encoding | 1114 | (mm-with-part handle |
| 1094 | (mm-handle-encoding handle) | ||
| 1095 | (mm-handle-media-type handle)) | ||
| 1096 | (buffer-string)))) | 1115 | (buffer-string)))) |
| 1097 | 1116 | ||
| 1098 | (defun mm-insert-part (handle) | 1117 | (defun mm-insert-part (handle) |
| @@ -1148,18 +1167,19 @@ string if you do not like underscores." | |||
| 1148 | 1167 | ||
| 1149 | (defun mm-save-part (handle) | 1168 | (defun mm-save-part (handle) |
| 1150 | "Write HANDLE to a file." | 1169 | "Write HANDLE to a file." |
| 1151 | (let* ((name (mail-content-type-get (mm-handle-type handle) 'name)) | 1170 | (let ((filename (or (mail-content-type-get |
| 1152 | (filename (mail-content-type-get | 1171 | (mm-handle-disposition handle) 'filename) |
| 1153 | (mm-handle-disposition handle) 'filename)) | 1172 | (mail-content-type-get |
| 1154 | file) | 1173 | (mm-handle-type handle) 'name))) |
| 1174 | file) | ||
| 1155 | (when filename | 1175 | (when filename |
| 1156 | (setq filename (gnus-map-function mm-file-name-rewrite-functions | 1176 | (setq filename (gnus-map-function mm-file-name-rewrite-functions |
| 1157 | (file-name-nondirectory filename)))) | 1177 | (file-name-nondirectory filename)))) |
| 1158 | (setq file | 1178 | (setq file |
| 1159 | (mm-with-multibyte | 1179 | (mm-with-multibyte |
| 1160 | (read-file-name "Save MIME part to: " | 1180 | (read-file-name "Save MIME part to: " |
| 1161 | (or mm-default-directory default-directory) | 1181 | (or mm-default-directory default-directory) |
| 1162 | nil nil (or filename name "")))) | 1182 | nil nil (or filename "")))) |
| 1163 | (setq mm-default-directory (file-name-directory file)) | 1183 | (setq mm-default-directory (file-name-directory file)) |
| 1164 | (and (or (not (file-exists-p file)) | 1184 | (and (or (not (file-exists-p file)) |
| 1165 | (yes-or-no-p (format "File %s already exists; overwrite? " | 1185 | (yes-or-no-p (format "File %s already exists; overwrite? " |
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el index da3ecb8f351..b736374f016 100644 --- a/lisp/gnus/mm-extern.el +++ b/lisp/gnus/mm-extern.el | |||
| @@ -112,11 +112,8 @@ | |||
| 112 | (insert "[" info "]\n\n"))) | 112 | (insert "[" info "]\n\n"))) |
| 113 | 113 | ||
| 114 | ;;;###autoload | 114 | ;;;###autoload |
| 115 | (defun mm-inline-external-body (handle &optional no-display) | 115 | (defun mm-extern-cache-contents (handle) |
| 116 | "Show the external-body part of HANDLE. | 116 | "Put the external-body part of HANDLE into its cache." |
| 117 | This function replaces the buffer of HANDLE with a buffer contains | ||
| 118 | the entire message. | ||
| 119 | If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing." | ||
| 120 | (let* ((access-type (cdr (assq 'access-type | 117 | (let* ((access-type (cdr (assq 'access-type |
| 121 | (cdr (mm-handle-type handle))))) | 118 | (cdr (mm-handle-type handle))))) |
| 122 | (func (cdr (assq (intern | 119 | (func (cdr (assq (intern |
| @@ -124,48 +121,61 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing." | |||
| 124 | (or access-type | 121 | (or access-type |
| 125 | (error "Couldn't find access type")))) | 122 | (error "Couldn't find access type")))) |
| 126 | mm-extern-function-alist))) | 123 | mm-extern-function-alist))) |
| 127 | gnus-displaying-mime buf | 124 | buf handles) |
| 128 | handles) | 125 | (unless func |
| 129 | (unless (mm-handle-cache handle) | 126 | (error "Access type (%s) is not supported" access-type)) |
| 130 | (unless func | 127 | (mm-with-part handle |
| 131 | (error "Access type (%s) is not supported" access-type)) | 128 | (goto-char (point-max)) |
| 132 | (with-temp-buffer | 129 | (insert "\n\n") |
| 133 | (mm-insert-part handle) | 130 | ;; It should be just a single MIME handle. |
| 134 | (goto-char (point-max)) | 131 | (setq handles (mm-dissect-buffer t))) |
| 135 | (insert "\n\n") | 132 | (unless (bufferp (car handles)) |
| 136 | (setq handles (mm-dissect-buffer t))) | 133 | (mm-destroy-parts handles) |
| 137 | (unless (bufferp (car handles)) | 134 | (error "Multipart external body is not supported")) |
| 138 | (mm-destroy-parts handles) | 135 | (save-excursion |
| 139 | (error "Multipart external body is not supported")) | 136 | (set-buffer (setq buf (mm-handle-buffer handles))) |
| 140 | (save-excursion ;; single part | 137 | (let (good) |
| 141 | (set-buffer (setq buf (mm-handle-buffer handles))) | 138 | (unwind-protect |
| 142 | (let (good) | 139 | (progn |
| 143 | (unwind-protect | 140 | (funcall func handle) |
| 144 | (progn | 141 | (setq good t)) |
| 145 | (funcall func handle) | 142 | (unless good |
| 146 | (setq good t)) | 143 | (mm-destroy-parts handles)))) |
| 147 | (unless good | 144 | (mm-handle-set-cache handle handles)) |
| 148 | (mm-destroy-parts handles)))) | 145 | (setq gnus-article-mime-handles |
| 149 | (mm-handle-set-cache handle handles)) | 146 | (mm-merge-handles gnus-article-mime-handles handles)))) |
| 150 | (setq gnus-article-mime-handles | 147 | |
| 151 | (mm-merge-handles gnus-article-mime-handles handles))) | 148 | ;;;###autoload |
| 152 | (unless no-display | 149 | (defun mm-inline-external-body (handle &optional no-display) |
| 153 | (save-excursion | 150 | "Show the external-body part of HANDLE. |
| 154 | (save-restriction | 151 | This function replaces the buffer of HANDLE with a buffer contains |
| 155 | (narrow-to-region (point) (point)) | 152 | the entire message. |
| 156 | (gnus-display-mime (mm-handle-cache handle)) | 153 | If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing." |
| 157 | (mm-handle-set-undisplayer | 154 | (unless (mm-handle-cache handle) |
| 158 | handle | 155 | (mm-extern-cache-contents handle)) |
| 159 | `(lambda () | 156 | (unless no-display |
| 160 | (let (buffer-read-only) | 157 | (save-excursion |
| 161 | (condition-case nil | 158 | (save-restriction |
| 162 | ;; This is only valid on XEmacs. | 159 | (narrow-to-region (point) (point)) |
| 163 | (mapcar (lambda (prop) | 160 | (let* ((type (regexp-quote |
| 164 | (remove-specifier | 161 | (mm-handle-media-type (mm-handle-cache handle)))) |
| 165 | (face-property 'default prop) (current-buffer))) | 162 | ;; Force the part to be displayed (but if there is no |
| 166 | '(background background-pixmap foreground)) | 163 | ;; method to display, a user will be prompted to save). |
| 167 | (error nil)) | 164 | ;; See `gnus-mime-display-single'. |
| 168 | (delete-region ,(point-min-marker) ,(point-max-marker)))))))))) | 165 | (mm-inline-override-types nil) |
| 166 | (mm-attachment-override-types | ||
| 167 | (cons type mm-attachment-override-types)) | ||
| 168 | (mm-automatic-display (cons type mm-automatic-display)) | ||
| 169 | (mm-automatic-external-display | ||
| 170 | (cons type mm-automatic-external-display)) | ||
| 171 | ;; Suppress adding of button to the cached part. | ||
| 172 | (gnus-inhibit-mime-unbuttonizing nil)) | ||
| 173 | (gnus-display-mime (mm-handle-cache handle))) | ||
| 174 | ;; Move undisplayer added to the cached handle to the parent. | ||
| 175 | (mm-handle-set-undisplayer | ||
| 176 | handle | ||
| 177 | (mm-handle-undisplayer (mm-handle-cache handle))) | ||
| 178 | (mm-handle-set-undisplayer (mm-handle-cache handle) nil))))) | ||
| 169 | 179 | ||
| 170 | (provide 'mm-extern) | 180 | (provide 'mm-extern) |
| 171 | 181 | ||
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index eb5afa794f5..9029e0d699c 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -464,7 +464,8 @@ value of `mm-uu-text-plain-type'." | |||
| 464 | (t (goto-char (point-max)))) | 464 | (t (goto-char (point-max)))) |
| 465 | (setq text-start (point)) | 465 | (setq text-start (point)) |
| 466 | (while (re-search-forward mm-uu-beginning-regexp nil t) | 466 | (while (re-search-forward mm-uu-beginning-regexp nil t) |
| 467 | (setq start-point (match-beginning 0)) | 467 | (setq start-point (match-beginning 0) |
| 468 | entry nil) | ||
| 468 | (let ((alist mm-uu-type-alist) | 469 | (let ((alist mm-uu-type-alist) |
| 469 | (beginning-regexp (match-string 0))) | 470 | (beginning-regexp (match-string 0))) |
| 470 | (while (not entry) | 471 | (while (not entry) |
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 3c05b3713ea..bada9da6891 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el | |||
| @@ -1127,18 +1127,12 @@ function is generally only called when Gnus is shutting down." | |||
| 1127 | (let (seen unseen) | 1127 | (let (seen unseen) |
| 1128 | ;; read info could contain articles marked unread by other | 1128 | ;; read info could contain articles marked unread by other |
| 1129 | ;; imap clients! we correct this | 1129 | ;; imap clients! we correct this |
| 1130 | (setq seen (gnus-uncompress-range (gnus-info-read info)) | 1130 | (setq unseen (gnus-compress-sequence |
| 1131 | unseen (imap-search "UNSEEN UNDELETED") | 1131 | (imap-search "UNSEEN UNDELETED")) |
| 1132 | seen (gnus-set-difference seen unseen) | 1132 | seen (gnus-range-difference (gnus-info-read info) unseen) |
| 1133 | ;; seen might lack articles marked as read by other | 1133 | seen (gnus-range-add seen |
| 1134 | ;; imap clients! we correct this | 1134 | (gnus-compress-sequence |
| 1135 | seen (append seen (imap-search "SEEN")) | 1135 | (imap-search "SEEN"))) |
| 1136 | ;; remove dupes | ||
| 1137 | seen (sort seen '<) | ||
| 1138 | seen (gnus-compress-sequence seen t) | ||
| 1139 | ;; we can't return '(1) since this isn't a "list of ranges", | ||
| 1140 | ;; and we can't return '((1)) since g-list-of-unread-articles | ||
| 1141 | ;; is buggy so we return '((1 . 1)). | ||
| 1142 | seen (if (and (integerp (car seen)) | 1136 | seen (if (and (integerp (car seen)) |
| 1143 | (null (cdr seen))) | 1137 | (null (cdr seen))) |
| 1144 | (list (cons (car seen) (car seen))) | 1138 | (list (cons (car seen) (car seen))) |
diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el index e8afe9dd10d..6476340f7bf 100644 --- a/lisp/gnus/smiley.el +++ b/lisp/gnus/smiley.el | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | ;; indifferent :-| | 42 | ;; indifferent :-| |
| 43 | ;; wry :-/ :-\ | 43 | ;; wry :-/ :-\ |
| 44 | ;; sad :-( | 44 | ;; sad :-( |
| 45 | ;; frown :-{ | ||
| 45 | ;; evil >:-) | 46 | ;; evil >:-) |
| 46 | ;; cry ;-( | 47 | ;; cry ;-( |
| 47 | ;; dead X-) | 48 | ;; dead X-) |
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index ed5fd6e7980..047035536f2 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el | |||
| @@ -100,6 +100,12 @@ spam groups." | |||
| 100 | :type 'boolean | 100 | :type 'boolean |
| 101 | :group 'spam) | 101 | :group 'spam) |
| 102 | 102 | ||
| 103 | (defcustom spam-mark-new-messages-in-spam-group-as-spam t | ||
| 104 | "Whether new messages in a spam group should get the spam-mark." | ||
| 105 | :type 'boolean | ||
| 106 | ;; :version "22.1" ;; Gnus 5.10.8 / No Gnus 0.3 | ||
| 107 | :group 'spam) | ||
| 108 | |||
| 103 | (defcustom spam-log-to-registry nil | 109 | (defcustom spam-log-to-registry nil |
| 104 | "Whether spam/ham processing should be logged in the registry." | 110 | "Whether spam/ham processing should be logged in the registry." |
| 105 | :type 'boolean | 111 | :type 'boolean |
| @@ -676,15 +682,17 @@ spam-use-* variable.") | |||
| 676 | ;; check the global list of group names spam-junk-mailgroups and the | 682 | ;; check the global list of group names spam-junk-mailgroups and the |
| 677 | ;; group parameters | 683 | ;; group parameters |
| 678 | (when (spam-group-spam-contents-p gnus-newsgroup-name) | 684 | (when (spam-group-spam-contents-p gnus-newsgroup-name) |
| 679 | (gnus-message 5 "Marking %s articles as spam" | 685 | (gnus-message 6 "Marking %s articles as spam" |
| 680 | (if spam-mark-only-unseen-as-spam | 686 | (if spam-mark-only-unseen-as-spam |
| 681 | "unseen" | 687 | "unseen" |
| 682 | "unread")) | 688 | "unread")) |
| 683 | (let ((articles (if spam-mark-only-unseen-as-spam | 689 | (let ((articles (if spam-mark-only-unseen-as-spam |
| 684 | gnus-newsgroup-unseen | 690 | gnus-newsgroup-unseen |
| 685 | gnus-newsgroup-unreads))) | 691 | gnus-newsgroup-unreads))) |
| 686 | (dolist (article articles) | 692 | (if spam-mark-new-messages-in-spam-group-as-spam |
| 687 | (gnus-summary-mark-article article gnus-spam-mark))))) | 693 | (dolist (article articles) |
| 694 | (gnus-summary-mark-article article gnus-spam-mark)) | ||
| 695 | (gnus-message 9 "Did not mark new messages as spam."))))) | ||
| 688 | 696 | ||
| 689 | (defun spam-mark-spam-as-expired-and-move-routine (&rest groups) | 697 | (defun spam-mark-spam-as-expired-and-move-routine (&rest groups) |
| 690 | (if (and (car-safe groups) (listp (car-safe groups))) | 698 | (if (and (car-safe groups) (listp (car-safe groups))) |
| @@ -732,7 +740,7 @@ spam-use-* variable.") | |||
| 732 | (gnus-check-backend-function | 740 | (gnus-check-backend-function |
| 733 | 'request-move-article gnus-newsgroup-name)) | 741 | 'request-move-article gnus-newsgroup-name)) |
| 734 | (respool-method (gnus-find-method-for-group gnus-newsgroup-name)) | 742 | (respool-method (gnus-find-method-for-group gnus-newsgroup-name)) |
| 735 | article mark todo deletep respool) | 743 | article mark deletep respool) |
| 736 | 744 | ||
| 737 | (when (member 'respool groups) | 745 | (when (member 'respool groups) |
| 738 | (setq respool t) ; boolean for later | 746 | (setq respool t) ; boolean for later |
diff --git a/lisp/help-mode.el b/lisp/help-mode.el index c2e1f59e578..94621535154 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | (define-key help-mode-map [mouse-2] 'help-follow-mouse) | 41 | (define-key help-mode-map [mouse-2] 'help-follow-mouse) |
| 42 | (define-key help-mode-map "\C-c\C-b" 'help-go-back) | 42 | (define-key help-mode-map "\C-c\C-b" 'help-go-back) |
| 43 | (define-key help-mode-map "\C-c\C-c" 'help-follow) | 43 | (define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) |
| 44 | ;; Documentation only, since we use minor-mode-overriding-map-alist. | 44 | ;; Documentation only, since we use minor-mode-overriding-map-alist. |
| 45 | (define-key help-mode-map "\r" 'help-follow) | 45 | (define-key help-mode-map "\r" 'help-follow) |
| 46 | 46 | ||
| @@ -233,10 +233,10 @@ Commands: | |||
| 233 | "Label to use by `help-make-xrefs' for the go-back reference.") | 233 | "Label to use by `help-make-xrefs' for the go-back reference.") |
| 234 | 234 | ||
| 235 | (defconst help-xref-symbol-regexp | 235 | (defconst help-xref-symbol-regexp |
| 236 | (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" | 236 | (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var |
| 237 | "\\(function\\|command\\)\\|" | 237 | "\\(function\\|command\\)\\|" ; Link to function |
| 238 | "\\(face\\)\\|" | 238 | "\\(face\\)\\|" ; Link to face |
| 239 | "\\(symbol\\)\\|" | 239 | "\\(symbol\\|program\\)\\|" ; Don't link |
| 240 | "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)" | 240 | "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)" |
| 241 | "[ \t\n]+\\)?" | 241 | "[ \t\n]+\\)?" |
| 242 | ;; Note starting with word-syntax character: | 242 | ;; Note starting with word-syntax character: |
| @@ -584,15 +584,6 @@ help buffer." | |||
| 584 | 584 | ||
| 585 | ;; Navigation/hyperlinking with xrefs | 585 | ;; Navigation/hyperlinking with xrefs |
| 586 | 586 | ||
| 587 | (defun help-follow-mouse (click) | ||
| 588 | "Follow the cross-reference that you CLICK on." | ||
| 589 | (interactive "e") | ||
| 590 | (let* ((start (event-start click)) | ||
| 591 | (window (car start)) | ||
| 592 | (pos (car (cdr start)))) | ||
| 593 | (with-current-buffer (window-buffer window) | ||
| 594 | (help-follow pos)))) | ||
| 595 | |||
| 596 | (defun help-xref-go-back (buffer) | 587 | (defun help-xref-go-back (buffer) |
| 597 | "From BUFFER, go back to previous help buffer text using `help-xref-stack'." | 588 | "From BUFFER, go back to previous help buffer text using `help-xref-stack'." |
| 598 | (let (item position method args) | 589 | (let (item position method args) |
| @@ -627,26 +618,38 @@ a proper [back] button." | |||
| 627 | (let ((help-xref-following t)) | 618 | (let ((help-xref-following t)) |
| 628 | (apply function args))) | 619 | (apply function args))) |
| 629 | 620 | ||
| 630 | (defun help-follow (&optional pos) | 621 | ;; The doc string is meant to explain what buttons do. |
| 631 | "Follow cross-reference at POS, defaulting to point. | 622 | (defun help-follow-mouse () |
| 623 | "Follow the cross-reference that you click on." | ||
| 624 | (interactive) | ||
| 625 | (error "No cross-reference here")) | ||
| 626 | |||
| 627 | ;; The doc string is meant to explain what buttons do. | ||
| 628 | (defun help-follow () | ||
| 629 | "Follow cross-reference at point. | ||
| 632 | 630 | ||
| 633 | For the cross-reference format, see `help-make-xrefs'." | 631 | For the cross-reference format, see `help-make-xrefs'." |
| 632 | (interactive) | ||
| 633 | (error "No cross-reference here")) | ||
| 634 | |||
| 635 | (defun help-follow-symbol (&optional pos) | ||
| 636 | "In help buffer, show docs for symbol at POS, defaulting to point. | ||
| 637 | Show all docs for that symbol as either a variable, function or face." | ||
| 634 | (interactive "d") | 638 | (interactive "d") |
| 635 | (unless pos | 639 | (unless pos |
| 636 | (setq pos (point))) | 640 | (setq pos (point))) |
| 637 | (unless (push-button pos) | 641 | ;; check if the symbol under point is a function, variable or face |
| 638 | ;; check if the symbol under point is a function or variable | 642 | (let ((sym |
| 639 | (let ((sym | 643 | (intern |
| 640 | (intern | 644 | (save-excursion |
| 641 | (save-excursion | 645 | (goto-char pos) (skip-syntax-backward "w_") |
| 642 | (goto-char pos) (skip-syntax-backward "w_") | 646 | (buffer-substring (point) |
| 643 | (buffer-substring (point) | 647 | (progn (skip-syntax-forward "w_") |
| 644 | (progn (skip-syntax-forward "w_") | 648 | (point))))))) |
| 645 | (point))))))) | 649 | (when (or (boundp sym) |
| 646 | (when (or (boundp sym) | 650 | (get sym 'variable-documentation) |
| 647 | (get sym 'variable-documentation) | 651 | (fboundp sym) (facep sym)) |
| 648 | (fboundp sym) (facep sym)) | 652 | (help-do-xref pos #'help-xref-interned (list sym))))) |
| 649 | (help-do-xref pos #'help-xref-interned (list sym)))))) | ||
| 650 | 653 | ||
| 651 | (defun help-insert-string (string) | 654 | (defun help-insert-string (string) |
| 652 | "Insert STRING to the help buffer and install xref info for it. | 655 | "Insert STRING to the help buffer and install xref info for it. |
diff --git a/lisp/ido.el b/lisp/ido.el index cae5446abcd..6bc2f45709f 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -613,6 +613,7 @@ A tramp file name uses the following syntax: /method:user@host:filename." | |||
| 613 | 613 | ||
| 614 | (defcustom ido-cache-ftp-work-directory-time 1.0 | 614 | (defcustom ido-cache-ftp-work-directory-time 1.0 |
| 615 | "*Maximum time to cache contents of an ftp directory (in hours). | 615 | "*Maximum time to cache contents of an ftp directory (in hours). |
| 616 | Use C-l in prompt to refresh list. | ||
| 616 | If zero, ftp directories are not cached." | 617 | If zero, ftp directories are not cached." |
| 617 | :type 'number | 618 | :type 'number |
| 618 | :group 'ido) | 619 | :group 'ido) |
| @@ -629,6 +630,18 @@ equivalent function, e.g. `find-file' rather than `ido-find-file'." | |||
| 629 | :type '(repeat regexp) | 630 | :type '(repeat regexp) |
| 630 | :group 'ido) | 631 | :group 'ido) |
| 631 | 632 | ||
| 633 | (defcustom ido-unc-hosts nil | ||
| 634 | "*List of known UNC host names to complete after initial //." | ||
| 635 | :type '(repeat string) | ||
| 636 | :group 'ido) | ||
| 637 | |||
| 638 | (defcustom ido-cache-unc-host-shares-time 8.0 | ||
| 639 | "*Maximum time to cache shares of an UNC host (in hours). | ||
| 640 | Use C-l in prompt to refresh list. | ||
| 641 | If zero, unc host shares are not cached." | ||
| 642 | :type 'number | ||
| 643 | :group 'ido) | ||
| 644 | |||
| 632 | (defcustom ido-max-work-file-list 10 | 645 | (defcustom ido-max-work-file-list 10 |
| 633 | "*Maximum number of names of recently opened files to record. | 646 | "*Maximum number of names of recently opened files to record. |
| 634 | This is the list the file names (sans directory) which have most recently | 647 | This is the list the file names (sans directory) which have most recently |
| @@ -1103,6 +1116,16 @@ it doesn't interfere with other minibuffer usage.") | |||
| 1103 | (string-match "\\`/[^/]+[@:]\\'" | 1116 | (string-match "\\`/[^/]+[@:]\\'" |
| 1104 | (or dir ido-current-directory)))) | 1117 | (or dir ido-current-directory)))) |
| 1105 | 1118 | ||
| 1119 | (defun ido-is-unc-root (&optional dir) | ||
| 1120 | (and ido-unc-hosts | ||
| 1121 | (string-equal "//" | ||
| 1122 | (or dir ido-current-directory)))) | ||
| 1123 | |||
| 1124 | (defun ido-is-unc-host (&optional dir) | ||
| 1125 | (and ido-unc-hosts | ||
| 1126 | (string-match "\\`//[^/]+/\\'" | ||
| 1127 | (or dir ido-current-directory)))) | ||
| 1128 | |||
| 1106 | (defun ido-is-root-directory (&optional dir) | 1129 | (defun ido-is-root-directory (&optional dir) |
| 1107 | (setq dir (or dir ido-current-directory)) | 1130 | (setq dir (or dir ido-current-directory)) |
| 1108 | (or | 1131 | (or |
| @@ -1148,6 +1171,12 @@ it doesn't interfere with other minibuffer usage.") | |||
| 1148 | (or (not time) | 1171 | (or (not time) |
| 1149 | (< (- (ido-time-stamp) time) ido-cache-ftp-work-directory-time)))) | 1172 | (< (- (ido-time-stamp) time) ido-cache-ftp-work-directory-time)))) |
| 1150 | 1173 | ||
| 1174 | (defun ido-cache-unc-valid (&optional time) | ||
| 1175 | (and (numberp ido-cache-unc-host-shares-time) | ||
| 1176 | (> ido-cache-unc-host-shares-time 0) | ||
| 1177 | (or (not time) | ||
| 1178 | (< (- (ido-time-stamp) time) ido-cache-unc-host-shares-time)))) | ||
| 1179 | |||
| 1151 | (defun ido-may-cache-directory (&optional dir) | 1180 | (defun ido-may-cache-directory (&optional dir) |
| 1152 | (setq dir (or dir ido-current-directory)) | 1181 | (setq dir (or dir ido-current-directory)) |
| 1153 | (cond | 1182 | (cond |
| @@ -1157,10 +1186,11 @@ it doesn't interfere with other minibuffer usage.") | |||
| 1157 | (or ido-enable-tramp-completion | 1186 | (or ido-enable-tramp-completion |
| 1158 | (memq system-type '(windows-nt ms-dos)))) | 1187 | (memq system-type '(windows-nt ms-dos)))) |
| 1159 | nil) | 1188 | nil) |
| 1160 | ((not (ido-is-ftp-directory dir)) | 1189 | ((ido-is-unc-host dir) |
| 1161 | t) | 1190 | (ido-cache-unc-valid)) |
| 1162 | ((ido-cache-ftp-valid) | 1191 | ((ido-is-ftp-directory dir) |
| 1163 | t))) | 1192 | (ido-cache-ftp-valid)) |
| 1193 | (t t))) | ||
| 1164 | 1194 | ||
| 1165 | (defun ido-pp (list &optional sep) | 1195 | (defun ido-pp (list &optional sep) |
| 1166 | (let ((print-level nil) (eval-expression-print-level nil) | 1196 | (let ((print-level nil) (eval-expression-print-level nil) |
| @@ -1262,15 +1292,21 @@ Removes badly formatted data and ignored directories." | |||
| 1262 | (and | 1292 | (and |
| 1263 | (stringp dir) | 1293 | (stringp dir) |
| 1264 | (consp time) | 1294 | (consp time) |
| 1265 | (if (integerp (car time)) | 1295 | (cond |
| 1266 | (and (/= (car time) 0) | 1296 | ((integerp (car time)) |
| 1267 | (integerp (car (cdr time))) | 1297 | (and (/= (car time) 0) |
| 1268 | (/= (car (cdr time)) 0) | 1298 | (integerp (car (cdr time))) |
| 1269 | (ido-may-cache-directory dir)) | 1299 | (/= (car (cdr time)) 0) |
| 1270 | (and (eq (car time) 'ftp) | 1300 | (ido-may-cache-directory dir))) |
| 1271 | (numberp (cdr time)) | 1301 | ((eq (car time) 'ftp) |
| 1302 | (and (numberp (cdr time)) | ||
| 1272 | (ido-is-ftp-directory dir) | 1303 | (ido-is-ftp-directory dir) |
| 1273 | (ido-cache-ftp-valid (cdr time)))) | 1304 | (ido-cache-ftp-valid (cdr time)))) |
| 1305 | ((eq (car time) 'unc) | ||
| 1306 | (and (numberp (cdr time)) | ||
| 1307 | (ido-is-unc-host dir) | ||
| 1308 | (ido-cache-unc-valid (cdr time)))) | ||
| 1309 | (t nil)) | ||
| 1274 | (let ((s files) (ok t)) | 1310 | (let ((s files) (ok t)) |
| 1275 | (while s | 1311 | (while s |
| 1276 | (if (stringp (car s)) | 1312 | (if (stringp (car s)) |
| @@ -1535,6 +1571,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1535 | ;; connect on incomplete tramp paths (after entring just method:). | 1571 | ;; connect on incomplete tramp paths (after entring just method:). |
| 1536 | (let ((ido-enable-tramp-completion nil)) | 1572 | (let ((ido-enable-tramp-completion nil)) |
| 1537 | (and (ido-final-slash dir) | 1573 | (and (ido-final-slash dir) |
| 1574 | (not (ido-is-unc-host dir)) | ||
| 1538 | (file-directory-p dir) | 1575 | (file-directory-p dir) |
| 1539 | (not (file-readable-p dir))))) | 1576 | (not (file-readable-p dir))))) |
| 1540 | 1577 | ||
| @@ -1545,6 +1582,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1545 | (let ((ido-enable-tramp-completion nil)) | 1582 | (let ((ido-enable-tramp-completion nil)) |
| 1546 | (and (numberp ido-max-directory-size) | 1583 | (and (numberp ido-max-directory-size) |
| 1547 | (ido-final-slash dir) | 1584 | (ido-final-slash dir) |
| 1585 | (not (ido-is-unc-host dir)) | ||
| 1548 | (file-directory-p dir) | 1586 | (file-directory-p dir) |
| 1549 | (> (nth 7 (file-attributes dir)) ido-max-directory-size)))) | 1587 | (> (nth 7 (file-attributes dir)) ido-max-directory-size)))) |
| 1550 | 1588 | ||
| @@ -1560,8 +1598,18 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1560 | (unless (and ido-enable-tramp-completion | 1598 | (unless (and ido-enable-tramp-completion |
| 1561 | (string-match "\\`/[^/]*@\\'" dir)) | 1599 | (string-match "\\`/[^/]*@\\'" dir)) |
| 1562 | (setq dir (ido-final-slash dir t)))) | 1600 | (setq dir (ido-final-slash dir t)))) |
| 1563 | (if (equal dir ido-current-directory) | 1601 | (if (get-buffer ido-completion-buffer) |
| 1564 | nil | 1602 | (kill-buffer ido-completion-buffer)) |
| 1603 | (cond | ||
| 1604 | ((equal dir ido-current-directory) | ||
| 1605 | nil) | ||
| 1606 | ((ido-is-unc-root dir) | ||
| 1607 | (ido-trace "unc" dir) | ||
| 1608 | (setq ido-current-directory dir) | ||
| 1609 | (setq ido-directory-nonreadable nil) | ||
| 1610 | (setq ido-directory-too-big nil) | ||
| 1611 | t) | ||
| 1612 | (t | ||
| 1565 | (ido-trace "cd" dir) | 1613 | (ido-trace "cd" dir) |
| 1566 | (setq ido-current-directory dir) | 1614 | (setq ido-current-directory dir) |
| 1567 | (if (get-buffer ido-completion-buffer) | 1615 | (if (get-buffer ido-completion-buffer) |
| @@ -1569,7 +1617,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1569 | (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir)) | 1617 | (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir)) |
| 1570 | (setq ido-directory-too-big (and (not ido-directory-nonreadable) | 1618 | (setq ido-directory-too-big (and (not ido-directory-nonreadable) |
| 1571 | (ido-directory-too-big-p dir))) | 1619 | (ido-directory-too-big-p dir))) |
| 1572 | t)) | 1620 | t))) |
| 1573 | 1621 | ||
| 1574 | (defun ido-set-current-home (&optional dir) | 1622 | (defun ido-set-current-home (&optional dir) |
| 1575 | ;; Set ido's current directory to user's home directory | 1623 | ;; Set ido's current directory to user's home directory |
| @@ -1940,6 +1988,7 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1940 | (setq ido-exit 'fallback | 1988 | (setq ido-exit 'fallback |
| 1941 | done t) | 1989 | done t) |
| 1942 | (setq ido-set-default-item t))) | 1990 | (setq ido-set-default-item t))) |
| 1991 | |||
| 1943 | ((or (string-match "[/\\][^/\\]" ido-selected) | 1992 | ((or (string-match "[/\\][^/\\]" ido-selected) |
| 1944 | (and (memq system-type '(windows-nt ms-dos)) | 1993 | (and (memq system-type '(windows-nt ms-dos)) |
| 1945 | (string-match "\\`.:" ido-selected))) | 1994 | (string-match "\\`.:" ido-selected))) |
| @@ -1973,7 +2022,7 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1973 | (defun ido-edit-input () | 2022 | (defun ido-edit-input () |
| 1974 | "Edit absolute file name entered so far with ido; terminate by RET." | 2023 | "Edit absolute file name entered so far with ido; terminate by RET." |
| 1975 | (interactive) | 2024 | (interactive) |
| 1976 | (setq ido-text-init ido-text) | 2025 | (setq ido-text-init (if ido-matches (car ido-matches) ido-text)) |
| 1977 | (setq ido-exit 'edit) | 2026 | (setq ido-exit 'edit) |
| 1978 | (exit-minibuffer)) | 2027 | (exit-minibuffer)) |
| 1979 | 2028 | ||
| @@ -3184,36 +3233,52 @@ for first matching file." | |||
| 3184 | (defun ido-file-name-all-completions (dir) | 3233 | (defun ido-file-name-all-completions (dir) |
| 3185 | ;; Return name of all files in DIR | 3234 | ;; Return name of all files in DIR |
| 3186 | ;; Uses and updates ido-dir-file-cache | 3235 | ;; Uses and updates ido-dir-file-cache |
| 3187 | (if (and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0) | 3236 | (cond |
| 3188 | (stringp dir) (> (length dir) 0) | 3237 | ((ido-is-unc-root dir) |
| 3189 | (ido-may-cache-directory dir)) | 3238 | (mapcar |
| 3190 | (let* ((cached (assoc dir ido-dir-file-cache)) | 3239 | (lambda (host) |
| 3240 | (if (string-match "/\\'" host) host (concat host "/"))) | ||
| 3241 | ido-unc-hosts)) | ||
| 3242 | ((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0) | ||
| 3243 | (stringp dir) (> (length dir) 0) | ||
| 3244 | (ido-may-cache-directory dir)) | ||
| 3245 | (let* ((cached (assoc dir ido-dir-file-cache)) | ||
| 3191 | (ctime (nth 1 cached)) | 3246 | (ctime (nth 1 cached)) |
| 3192 | (ftp (ido-is-ftp-directory dir)) | 3247 | (ftp (ido-is-ftp-directory dir)) |
| 3193 | (attr (if ftp nil (file-attributes dir))) | 3248 | (unc (ido-is-unc-host dir)) |
| 3249 | (attr (if (or ftp unc) nil (file-attributes dir))) | ||
| 3194 | (mtime (nth 5 attr)) | 3250 | (mtime (nth 5 attr)) |
| 3195 | valid) | 3251 | valid) |
| 3196 | (when cached ; should we use the cached entry ? | 3252 | (when cached ; should we use the cached entry ? |
| 3197 | (if ftp | 3253 | (cond |
| 3198 | (setq valid (and (eq (car ctime) 'ftp) | 3254 | (ftp |
| 3199 | (ido-cache-ftp-valid (cdr ctime)))) | 3255 | (setq valid (and (eq (car ctime) 'ftp) |
| 3256 | (ido-cache-ftp-valid (cdr ctime))))) | ||
| 3257 | (unc | ||
| 3258 | (setq valid (and (eq (car ctime) 'unc) | ||
| 3259 | (ido-cache-unc-valid (cdr ctime))))) | ||
| 3260 | (t | ||
| 3200 | (if attr | 3261 | (if attr |
| 3201 | (setq valid (and (= (car ctime) (car mtime)) | 3262 | (setq valid (and (= (car ctime) (car mtime)) |
| 3202 | (= (car (cdr ctime)) (car (cdr mtime))))))) | 3263 | (= (car (cdr ctime)) (car (cdr mtime)))))))) |
| 3203 | (if (not valid) | 3264 | (unless valid |
| 3204 | (setq ido-dir-file-cache (delq cached ido-dir-file-cache) | 3265 | (setq ido-dir-file-cache (delq cached ido-dir-file-cache) |
| 3205 | cached nil))) | 3266 | cached nil))) |
| 3206 | (unless cached | 3267 | (unless cached |
| 3207 | (if (and ftp (file-readable-p dir)) | 3268 | (cond |
| 3208 | (setq mtime (cons 'ftp (ido-time-stamp)))) | 3269 | (unc |
| 3270 | (setq mtime (cons 'unc (ido-time-stamp)))) | ||
| 3271 | ((and ftp (file-readable-p dir)) | ||
| 3272 | (setq mtime (cons 'ftp (ido-time-stamp))))) | ||
| 3209 | (if mtime | 3273 | (if mtime |
| 3210 | (setq cached (cons dir (cons mtime (ido-file-name-all-completions-1 dir))) | 3274 | (setq cached (cons dir (cons mtime (ido-file-name-all-completions-1 dir))) |
| 3211 | ido-dir-file-cache (cons cached ido-dir-file-cache))) | 3275 | ido-dir-file-cache (cons cached ido-dir-file-cache))) |
| 3212 | (if (> (length ido-dir-file-cache) ido-max-dir-file-cache) | 3276 | (if (> (length ido-dir-file-cache) ido-max-dir-file-cache) |
| 3213 | (setcdr (nthcdr (1- ido-max-dir-file-cache) ido-dir-file-cache) nil))) | 3277 | (setcdr (nthcdr (1- ido-max-dir-file-cache) ido-dir-file-cache) nil))) |
| 3214 | (and cached | 3278 | (and cached |
| 3215 | (cdr (cdr cached)))) | 3279 | (cdr (cdr cached))))) |
| 3216 | (ido-file-name-all-completions-1 dir))) | 3280 | (t |
| 3281 | (ido-file-name-all-completions-1 dir)))) | ||
| 3217 | 3282 | ||
| 3218 | (defun ido-remove-cached-dir (dir) | 3283 | (defun ido-remove-cached-dir (dir) |
| 3219 | ;; Remove dir from ido-dir-file-cache | 3284 | ;; Remove dir from ido-dir-file-cache |
| @@ -3227,7 +3292,8 @@ for first matching file." | |||
| 3227 | (defun ido-make-file-list-1 (dir &optional merged) | 3292 | (defun ido-make-file-list-1 (dir &optional merged) |
| 3228 | ;; Return list of non-ignored files in DIR | 3293 | ;; Return list of non-ignored files in DIR |
| 3229 | ;; If MERGED is non-nil, each file is cons'ed with DIR | 3294 | ;; If MERGED is non-nil, each file is cons'ed with DIR |
| 3230 | (and (or (ido-is-tramp-root dir) (file-directory-p dir)) | 3295 | (and (or (ido-is-tramp-root dir) (ido-is-unc-root dir) |
| 3296 | (file-directory-p dir)) | ||
| 3231 | (delq nil | 3297 | (delq nil |
| 3232 | (mapcar | 3298 | (mapcar |
| 3233 | (lambda (name) | 3299 | (lambda (name) |
| @@ -3956,10 +4022,16 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3956 | ) | 4022 | ) |
| 3957 | 4023 | ||
| 3958 | ((= (length contents) 1) | 4024 | ((= (length contents) 1) |
| 3959 | (when (and (ido-is-tramp-root) (string-equal contents "/")) | 4025 | (cond |
| 4026 | ((and (ido-is-tramp-root) (string-equal contents "/")) | ||
| 3960 | (ido-set-current-directory ido-current-directory contents) | 4027 | (ido-set-current-directory ido-current-directory contents) |
| 3961 | (setq refresh t)) | 4028 | (setq refresh t)) |
| 3962 | ) | 4029 | ((and ido-unc-hosts (string-equal contents "/") |
| 4030 | (let ((ido-enable-tramp-completion nil)) | ||
| 4031 | (ido-is-root-directory))) | ||
| 4032 | (ido-set-current-directory "//") | ||
| 4033 | (setq refresh t)) | ||
| 4034 | )) | ||
| 3963 | 4035 | ||
| 3964 | ((and (string-match (if ido-enable-tramp-completion "..[:@]\\'" "..:\\'") contents) | 4036 | ((and (string-match (if ido-enable-tramp-completion "..[:@]\\'" "..:\\'") contents) |
| 3965 | (ido-is-root-directory)) ;; Ange-ftp or tramp | 4037 | (ido-is-root-directory)) ;; Ange-ftp or tramp |
diff --git a/lisp/image.el b/lisp/image.el index 6938dba05cb..2212b0fb471 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -79,12 +79,13 @@ value is used as a list of directories to search.") | |||
| 79 | 79 | ||
| 80 | 80 | ||
| 81 | (defun image-load-path-for-library (library image &optional path no-error) | 81 | (defun image-load-path-for-library (library image &optional path no-error) |
| 82 | "Return a suitable search path for images relative to LIBRARY. | 82 | "Return a suitable search path for images used by LIBRARY. |
| 83 | 83 | ||
| 84 | First it searches for IMAGE in a path suitable for LIBRARY, which | 84 | It searches for IMAGE in `image-load-path' (excluding |
| 85 | includes \"../../etc/images\" and \"../etc/images\" relative to | 85 | \"`data-directory'/images\") and `load-path', followed by a path |
| 86 | the library file itself, followed by `image-load-path' and | 86 | suitable for LIBRARY, which includes \"../../etc/images\" and |
| 87 | `load-path'. | 87 | \"../etc/images\" relative to the library file itself, and then |
| 88 | in \"`data-directory'/images\". | ||
| 88 | 89 | ||
| 89 | Then this function returns a list of directories which contains | 90 | Then this function returns a list of directories which contains |
| 90 | first the directory in which IMAGE was found, followed by the | 91 | first the directory in which IMAGE was found, followed by the |
| @@ -99,16 +100,46 @@ Here is an example that uses a common idiom to provide | |||
| 99 | compatibility with versions of Emacs that lack the variable | 100 | compatibility with versions of Emacs that lack the variable |
| 100 | `image-load-path': | 101 | `image-load-path': |
| 101 | 102 | ||
| 102 | ;; Avoid errors on Emacsen without `image-load-path'. | 103 | ;; Shush compiler. |
| 103 | (if (not (boundp 'image-load-path)) (defvar image-load-path nil)) | 104 | (defvar image-load-path) |
| 104 | 105 | ||
| 105 | (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\")) | 106 | (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\")) |
| 106 | (image-load-path (cons (car load-path) image-load-path))) | 107 | (image-load-path (cons (car load-path) |
| 108 | (when (boundp 'image-load-path) | ||
| 109 | image-load-path)))) | ||
| 107 | (mh-tool-bar-folder-buttons-init))" | 110 | (mh-tool-bar-folder-buttons-init))" |
| 108 | (unless library (error "No library specified")) | 111 | (unless library (error "No library specified")) |
| 109 | (unless image (error "No image specified")) | 112 | (unless image (error "No image specified")) |
| 110 | (let ((image-directory)) | 113 | (let (image-directory image-directory-load-path) |
| 114 | ;; Check for images in image-load-path or load-path. | ||
| 115 | (let ((img image) | ||
| 116 | (dir (or | ||
| 117 | ;; Images in image-load-path. | ||
| 118 | (image-search-load-path image) | ||
| 119 | ;; Images in load-path. | ||
| 120 | (locate-library image))) | ||
| 121 | parent) | ||
| 122 | ;; Since the image might be in a nested directory (for | ||
| 123 | ;; example, mail/attach.pbm), adjust `image-directory' | ||
| 124 | ;; accordingly. | ||
| 125 | (when dir | ||
| 126 | (setq dir (file-name-directory dir)) | ||
| 127 | (while (setq parent (file-name-directory img)) | ||
| 128 | (setq img (directory-file-name parent) | ||
| 129 | dir (expand-file-name "../" dir)))) | ||
| 130 | (setq image-directory-load-path dir)) | ||
| 131 | |||
| 132 | ;; If `image-directory-load-path' isn't Emacs' image directory, | ||
| 133 | ;; it's probably a user preference, so use it. Then use a | ||
| 134 | ;; relative setting if possible; otherwise, use | ||
| 135 | ;; `image-directory-load-path'. | ||
| 111 | (cond | 136 | (cond |
| 137 | ;; User-modified image-load-path? | ||
| 138 | ((and image-directory-load-path | ||
| 139 | (not (equal image-directory-load-path | ||
| 140 | (file-name-as-directory | ||
| 141 | (expand-file-name "images" data-directory))))) | ||
| 142 | (setq image-directory image-directory-load-path)) | ||
| 112 | ;; Try relative setting. | 143 | ;; Try relative setting. |
| 113 | ((let (library-name d1ei d2ei) | 144 | ((let (library-name d1ei d2ei) |
| 114 | ;; First, find library in the load-path. | 145 | ;; First, find library in the load-path. |
| @@ -118,33 +149,20 @@ compatibility with versions of Emacs that lack the variable | |||
| 118 | ;; And then set image-directory relative to that. | 149 | ;; And then set image-directory relative to that. |
| 119 | (setq | 150 | (setq |
| 120 | ;; Go down 2 levels. | 151 | ;; Go down 2 levels. |
| 121 | d2ei (expand-file-name | 152 | d2ei (file-name-as-directory |
| 122 | (concat (file-name-directory library-name) "../../etc/images")) | 153 | (expand-file-name |
| 154 | (concat (file-name-directory library-name) "../../etc/images"))) | ||
| 123 | ;; Go down 1 level. | 155 | ;; Go down 1 level. |
| 124 | d1ei (expand-file-name | 156 | d1ei (file-name-as-directory |
| 125 | (concat (file-name-directory library-name) "../etc/images"))) | 157 | (expand-file-name |
| 158 | (concat (file-name-directory library-name) "../etc/images")))) | ||
| 126 | (setq image-directory | 159 | (setq image-directory |
| 127 | ;; Set it to nil if image is not found. | 160 | ;; Set it to nil if image is not found. |
| 128 | (cond ((file-exists-p (expand-file-name image d2ei)) d2ei) | 161 | (cond ((file-exists-p (expand-file-name image d2ei)) d2ei) |
| 129 | ((file-exists-p (expand-file-name image d1ei)) d1ei))))) | 162 | ((file-exists-p (expand-file-name image d1ei)) d1ei))))) |
| 130 | ;; Check for images in image-load-path or load-path. | 163 | ;; Use Emacs' image directory. |
| 131 | ((let ((img image) | 164 | (image-directory-load-path |
| 132 | (dir (or | 165 | (setq image-directory image-directory-load-path)) |
| 133 | ;; Images in image-load-path. | ||
| 134 | (image-search-load-path image) | ||
| 135 | ;; Images in load-path. | ||
| 136 | (locate-library image))) | ||
| 137 | parent) | ||
| 138 | ;; Since the image might be in a nested directory (for | ||
| 139 | ;; example, mail/attach.pbm), adjust `image-directory' | ||
| 140 | ;; accordingly. | ||
| 141 | (and dir | ||
| 142 | (setq dir (file-name-directory dir)) | ||
| 143 | (progn | ||
| 144 | (while (setq parent (file-name-directory img)) | ||
| 145 | (setq img (directory-file-name parent) | ||
| 146 | dir (expand-file-name "../" dir))) | ||
| 147 | (setq image-directory dir))))) | ||
| 148 | (no-error | 166 | (no-error |
| 149 | (message "Could not find image %s for library %s" image library)) | 167 | (message "Could not find image %s for library %s" image library)) |
| 150 | (t | 168 | (t |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index ca8e29b52e6..bf9a9570216 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -1593,7 +1593,10 @@ and the contents of `file-coding-system-alist'." | |||
| 1593 | (symbol :tag "Coding system")))) | 1593 | (symbol :tag "Coding system")))) |
| 1594 | 1594 | ||
| 1595 | (defcustom auto-coding-regexp-alist | 1595 | (defcustom auto-coding-regexp-alist |
| 1596 | '(("^BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion)) | 1596 | '(("^BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion) |
| 1597 | ("\\`\xFE\xFF" . utf-16be-with-signature) | ||
| 1598 | ("\\`\xFF\xFE" . utf-16le-with-signature) | ||
| 1599 | ("\\`\xEF\xBB\xBF" . utf-8)) | ||
| 1597 | "Alist of patterns vs corresponding coding systems. | 1600 | "Alist of patterns vs corresponding coding systems. |
| 1598 | Each element looks like (REGEXP . CODING-SYSTEM). | 1601 | Each element looks like (REGEXP . CODING-SYSTEM). |
| 1599 | A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading. | 1602 | A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading. |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 0a85f10cf40..13b54a02467 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -1696,12 +1696,15 @@ Isearch mode." | |||
| 1696 | (and (integerp main-event) | 1696 | (and (integerp main-event) |
| 1697 | (memq 'shift mods) | 1697 | (memq 'shift mods) |
| 1698 | (memq 'control mods) | 1698 | (memq 'control mods) |
| 1699 | (lookup-key isearch-mode-map | 1699 | (not (memq (lookup-key isearch-mode-map |
| 1700 | (let ((copy (copy-sequence key))) | 1700 | (let ((copy (copy-sequence key))) |
| 1701 | (aset copy 0 | 1701 | (aset copy 0 |
| 1702 | (- main-event (- ?\C-\S-a ?\C-a))) | 1702 | (- main-event |
| 1703 | copy) | 1703 | (- ?\C-\S-a ?\C-a))) |
| 1704 | nil))) | 1704 | copy) |
| 1705 | nil) | ||
| 1706 | '(nil | ||
| 1707 | isearch-other-control-char))))) | ||
| 1705 | (setcar keylist (- main-event (- ?\C-\S-a ?\C-a))) | 1708 | (setcar keylist (- main-event (- ?\C-\S-a ?\C-a))) |
| 1706 | (cancel-kbd-macro-events) | 1709 | (cancel-kbd-macro-events) |
| 1707 | (apply 'isearch-unread keylist)) | 1710 | (apply 'isearch-unread keylist)) |
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index d7d82ae5551..93d4755cf3a 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; Author: Stephen Eglen <stephen@gnu.org> | 6 | ;; Author: Stephen Eglen <stephen@gnu.org> |
| 7 | ;; Maintainer: Stephen Eglen <stephen@gnu.org> | 7 | ;; Maintainer: Stephen Eglen <stephen@gnu.org> |
| 8 | ;; Keywords: completion convenience | 8 | ;; Keywords: completion convenience |
| 9 | ;; location: http://www.anc.ed.ac.uk/~stephen/emacs/ | ||
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 12 | 11 | ||
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index f82ead462f0..0e131b665ef 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el | |||
| @@ -301,7 +301,7 @@ Only applies to the current buffer." | |||
| 301 | This function is added to `fontification-functions' when `jit-lock-mode' | 301 | This function is added to `fontification-functions' when `jit-lock-mode' |
| 302 | is active." | 302 | is active." |
| 303 | (when (and jit-lock-mode (not memory-full)) | 303 | (when (and jit-lock-mode (not memory-full)) |
| 304 | (if (null jit-lock-defer-time) | 304 | (if (null jit-lock-defer-timer) |
| 305 | ;; No deferral. | 305 | ;; No deferral. |
| 306 | (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) | 306 | (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) |
| 307 | ;; Record the buffer for later fontification. | 307 | ;; Record the buffer for later fontification. |
| @@ -510,7 +510,7 @@ This functions is called after Emacs has been idle for | |||
| 510 | (setq pos (next-single-property-change pos 'fontified))))))))) | 510 | (setq pos (next-single-property-change pos 'fontified))))))))) |
| 511 | (setq jit-lock-defer-buffers nil) | 511 | (setq jit-lock-defer-buffers nil) |
| 512 | ;; Force fontification of the visible parts. | 512 | ;; Force fontification of the visible parts. |
| 513 | (let ((jit-lock-defer-time nil)) | 513 | (let ((jit-lock-defer-timer nil)) |
| 514 | ;; (message "Jit-Defer Now") | 514 | ;; (message "Jit-Defer Now") |
| 515 | (sit-for 0) | 515 | (sit-for 0) |
| 516 | ;; (message "Jit-Defer Done") | 516 | ;; (message "Jit-Defer Done") |
| @@ -571,7 +571,7 @@ will take place when text is fontified stealthily." | |||
| 571 | (setq start (if region | 571 | (setq start (if region |
| 572 | (car region) | 572 | (car region) |
| 573 | (goto-char start) | 573 | (goto-char start) |
| 574 | (line-beginning-position (- 1 font-lock-lines-before)))) | 574 | (line-beginning-position))) |
| 575 | 575 | ||
| 576 | ;; If we're in text that matches a multi-line font-lock pattern, | 576 | ;; If we're in text that matches a multi-line font-lock pattern, |
| 577 | ;; make sure the whole text will be redisplayed. | 577 | ;; make sure the whole text will be redisplayed. |
diff --git a/lisp/locate.el b/lisp/locate.el index bca53a32152..702ae98ecd6 100644 --- a/lisp/locate.el +++ b/lisp/locate.el | |||
| @@ -122,7 +122,26 @@ | |||
| 122 | :group 'external) | 122 | :group 'external) |
| 123 | 123 | ||
| 124 | (defcustom locate-command "locate" | 124 | (defcustom locate-command "locate" |
| 125 | "*The executable program used to search a database of files." | 125 | "Executable program for searching a database of files. |
| 126 | The Emacs commands `locate' and `locate-with-filter' use this. | ||
| 127 | The value should be a program that can be called from a shell | ||
| 128 | with one argument, SEARCH-STRING. The program determines which | ||
| 129 | database it searches. The output of the program should consist | ||
| 130 | of those file names in the database that match SEARCH-STRING, | ||
| 131 | listed one per line, possibly with leading or trailing | ||
| 132 | whitespace. If the output is in another form, you may have to | ||
| 133 | redefine the function `locate-get-file-positions'. | ||
| 134 | |||
| 135 | The program may interpret SEARCH-STRING as a literal string, a | ||
| 136 | shell pattern or a regular expression. The exact rules of what | ||
| 137 | constitutes a match may also depend on the program. | ||
| 138 | |||
| 139 | The standard value of this variable is \"locate\". | ||
| 140 | This program normally searches a database of all files on your | ||
| 141 | system, or of all files that you have access to. Consult the | ||
| 142 | documentation of that program for the details about how it determines | ||
| 143 | which file names match SEARCH-STRING. (Those details vary highly with | ||
| 144 | the version.)" | ||
| 126 | :type 'string | 145 | :type 'string |
| 127 | :group 'locate) | 146 | :group 'locate) |
| 128 | 147 | ||
| @@ -133,22 +152,34 @@ | |||
| 133 | "The history list used by the \\[locate-with-filter] command.") | 152 | "The history list used by the \\[locate-with-filter] command.") |
| 134 | 153 | ||
| 135 | (defcustom locate-make-command-line 'locate-default-make-command-line | 154 | (defcustom locate-make-command-line 'locate-default-make-command-line |
| 136 | "*Function used to create the locate command line." | 155 | "Function used to create the locate command line. |
| 156 | The Emacs commands `locate' and `locate-with-filter' use this. | ||
| 157 | This function should take one argument, a string (the name to find) | ||
| 158 | and return a list of strings. The first element of the list should be | ||
| 159 | the name of a command to be executed by a shell, the remaining elements | ||
| 160 | should be the arguments to that command (including the name to find)." | ||
| 137 | :type 'function | 161 | :type 'function |
| 138 | :group 'locate) | 162 | :group 'locate) |
| 139 | 163 | ||
| 140 | (defcustom locate-buffer-name "*Locate*" | 164 | (defcustom locate-buffer-name "*Locate*" |
| 141 | "*Name of the buffer to show results from the \\[locate] command." | 165 | "Name of the buffer to show results from the \\[locate] command." |
| 142 | :type 'string | 166 | :type 'string |
| 143 | :group 'locate) | 167 | :group 'locate) |
| 144 | 168 | ||
| 145 | (defcustom locate-fcodes-file nil | 169 | (defcustom locate-fcodes-file nil |
| 146 | "*File name for the database of file names." | 170 | "File name for the database of file names used by `locate'. |
| 171 | If non-nil, `locate' uses this name in the header of the `*Locate*' | ||
| 172 | buffer. If nil, it mentions no file name in that header. | ||
| 173 | |||
| 174 | Just setting this variable does not actually change the database | ||
| 175 | that `locate' searches. The executive program that the Emacs | ||
| 176 | function `locate' uses, as given by the variables `locate-command' | ||
| 177 | or `locate-make-command-line', determines the database." | ||
| 147 | :type '(choice (const :tag "None" nil) file) | 178 | :type '(choice (const :tag "None" nil) file) |
| 148 | :group 'locate) | 179 | :group 'locate) |
| 149 | 180 | ||
| 150 | (defcustom locate-header-face nil | 181 | (defcustom locate-header-face nil |
| 151 | "*Face used to highlight the locate header." | 182 | "Face used to highlight the locate header." |
| 152 | :type '(choice (const :tag "None" nil) face) | 183 | :type '(choice (const :tag "None" nil) face) |
| 153 | :group 'locate) | 184 | :group 'locate) |
| 154 | 185 | ||
| @@ -161,12 +192,12 @@ This should contain the \"-l\" switch, but not the \"-F\" or \"-b\" switches." | |||
| 161 | :version "22.1") | 192 | :version "22.1") |
| 162 | 193 | ||
| 163 | (defcustom locate-update-command "updatedb" | 194 | (defcustom locate-update-command "updatedb" |
| 164 | "The command used to update the locate database." | 195 | "The executable program used to update the locate database." |
| 165 | :type 'string | 196 | :type 'string |
| 166 | :group 'locate) | 197 | :group 'locate) |
| 167 | 198 | ||
| 168 | (defcustom locate-prompt-for-command nil | 199 | (defcustom locate-prompt-for-command nil |
| 169 | "If non-nil, the locate command prompts for a command to run. | 200 | "If non-nil, the `locate' command prompts for a command to run. |
| 170 | Otherwise, that behavior is invoked via a prefix argument." | 201 | Otherwise, that behavior is invoked via a prefix argument." |
| 171 | :group 'locate | 202 | :group 'locate |
| 172 | :type 'boolean | 203 | :type 'boolean |
| @@ -191,7 +222,22 @@ Otherwise, that behavior is invoked via a prefix argument." | |||
| 191 | ;;;###autoload | 222 | ;;;###autoload |
| 192 | (defun locate (search-string &optional filter) | 223 | (defun locate (search-string &optional filter) |
| 193 | "Run the program `locate', putting results in `*Locate*' buffer. | 224 | "Run the program `locate', putting results in `*Locate*' buffer. |
| 194 | With prefix arg, prompt for the locate command to run." | 225 | Pass it SEARCH-STRING as argument. Interactively, prompt for SEARCH-STRING. |
| 226 | With prefix arg, prompt for the exact shell command to run instead. | ||
| 227 | |||
| 228 | This program searches for those file names in a database that match | ||
| 229 | SEARCH-STRING and normally outputs all matching absolute file names, | ||
| 230 | one per line. The database normally consists of all files on your | ||
| 231 | system, or of all files that you have access to. Consult the | ||
| 232 | documentation of the program for the details about how it determines | ||
| 233 | which file names match SEARCH-STRING. (Those details vary highly with | ||
| 234 | the version.) | ||
| 235 | |||
| 236 | You can specify another program for this command to run by customizing | ||
| 237 | the variables `locate-command' or `locate-make-command-line'. | ||
| 238 | |||
| 239 | The main use of FILTER is to implement `locate-with-filter'. See | ||
| 240 | the docstring of that function for its meaning." | ||
| 195 | (interactive | 241 | (interactive |
| 196 | (list | 242 | (list |
| 197 | (if (or (and current-prefix-arg | 243 | (if (or (and current-prefix-arg |
| @@ -255,10 +301,17 @@ With prefix arg, prompt for the locate command to run." | |||
| 255 | 301 | ||
| 256 | ;;;###autoload | 302 | ;;;###autoload |
| 257 | (defun locate-with-filter (search-string filter) | 303 | (defun locate-with-filter (search-string filter) |
| 258 | "Run the locate command with a filter. | 304 | "Run the executable program `locate' with a filter. |
| 259 | 305 | This function is similar to the function `locate', which see. | |
| 260 | The filter is a regular expression. Only results matching the filter are | 306 | The difference is that, when invoked interactively, the present function |
| 261 | shown; this is often useful to constrain a big search." | 307 | prompts for both SEARCH-STRING and FILTER. It passes SEARCH-STRING |
| 308 | to the locate executable program. It produces a `*Locate*' buffer | ||
| 309 | that lists only those lines in the output of the locate program that | ||
| 310 | contain a match for the regular expression FILTER; this is often useful | ||
| 311 | to constrain a big search. | ||
| 312 | |||
| 313 | When called from Lisp, this function is identical with `locate', | ||
| 314 | except that FILTER is not optional." | ||
| 262 | (interactive | 315 | (interactive |
| 263 | (list (read-from-minibuffer "Locate: " nil nil | 316 | (list (read-from-minibuffer "Locate: " nil nil |
| 264 | nil 'locate-history-list) | 317 | nil 'locate-history-list) |
| @@ -269,7 +322,7 @@ shown; this is often useful to constrain a big search." | |||
| 269 | (defun locate-filter-output (filter) | 322 | (defun locate-filter-output (filter) |
| 270 | "Filter output from the locate command." | 323 | "Filter output from the locate command." |
| 271 | (goto-char (point-min)) | 324 | (goto-char (point-min)) |
| 272 | (delete-non-matching-lines filter)) | 325 | (keep-lines filter)) |
| 273 | 326 | ||
| 274 | (defvar locate-mode-map nil | 327 | (defvar locate-mode-map nil |
| 275 | "Local keymap for Locate mode buffers.") | 328 | "Local keymap for Locate mode buffers.") |
| @@ -303,6 +356,15 @@ shown; this is often useful to constrain a big search." | |||
| 303 | "The amount of indentation for each file.") | 356 | "The amount of indentation for each file.") |
| 304 | 357 | ||
| 305 | (defun locate-get-file-positions () | 358 | (defun locate-get-file-positions () |
| 359 | "Return list of start and end of the file name on the current line. | ||
| 360 | This is a list of two buffer positions. | ||
| 361 | |||
| 362 | You should only call this function on lines that contain a file name | ||
| 363 | listed by the locate program. Inside inserted subdirectories, or if | ||
| 364 | there is no file name on the current line, the return value is | ||
| 365 | meaningless. You can check whether the current line contains a file | ||
| 366 | listed by the locate program, using the function | ||
| 367 | `locate-main-listing-line-p'." | ||
| 306 | (save-excursion | 368 | (save-excursion |
| 307 | (end-of-line) | 369 | (end-of-line) |
| 308 | (let ((eol (point))) | 370 | (let ((eol (point))) |
| @@ -320,6 +382,12 @@ shown; this is often useful to constrain a big search." | |||
| 320 | 1 | 382 | 1 |
| 321 | 0))) | 383 | 0))) |
| 322 | 384 | ||
| 385 | ;; You should only call this function on lines that contain a file name | ||
| 386 | ;; listed by the locate program. Inside inserted subdirectories, or if | ||
| 387 | ;; there is no file name on the current line, the return value is | ||
| 388 | ;; meaningless. You can check whether the current line contains a file | ||
| 389 | ;; listed by the locate program, using the function | ||
| 390 | ;; `locate-main-listing-line-p'. | ||
| 323 | (defun locate-get-filename () | 391 | (defun locate-get-filename () |
| 324 | (let ((pos (locate-get-file-positions)) | 392 | (let ((pos (locate-get-file-positions)) |
| 325 | (lineno (locate-current-line-number))) | 393 | (lineno (locate-current-line-number))) |
| @@ -516,8 +584,16 @@ Database is updated using the shell command in `locate-update-command'." | |||
| 516 | (defun locate-find-directory-other-window () | 584 | (defun locate-find-directory-other-window () |
| 517 | "Visit the directory of the file named on this line in other window." | 585 | "Visit the directory of the file named on this line in other window." |
| 518 | (interactive) | 586 | (interactive) |
| 519 | (find-file-other-window (locate-get-dirname))) | 587 | (if (locate-main-listing-line-p) |
| 588 | (find-file-other-window (locate-get-dirname)) | ||
| 589 | (message "This command only works inside main listing."))) | ||
| 520 | 590 | ||
| 591 | ;; You should only call this function on lines that contain a file name | ||
| 592 | ;; listed by the locate program. Inside inserted subdirectories, or if | ||
| 593 | ;; there is no file name on the current line, the return value is | ||
| 594 | ;; meaningless. You can check whether the current line contains a file | ||
| 595 | ;; listed by the locate program, using the function | ||
| 596 | ;; `locate-main-listing-line-p'. | ||
| 521 | (defun locate-get-dirname () | 597 | (defun locate-get-dirname () |
| 522 | "Return the directory name of the file mentioned on this line." | 598 | "Return the directory name of the file mentioned on this line." |
| 523 | (let (file (filepos (locate-get-file-positions))) | 599 | (let (file (filepos (locate-get-file-positions))) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 935e7d1b92c..5c06a1fe1ad 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -453,10 +453,10 @@ examples: | |||
| 453 | "String to prepend to Subject line when replying to a message.") | 453 | "String to prepend to Subject line when replying to a message.") |
| 454 | 454 | ||
| 455 | ;; Some mailers use "Re(2):" or "Re^2:" or "Re: Re:" or "Re[2]:". | 455 | ;; Some mailers use "Re(2):" or "Re^2:" or "Re: Re:" or "Re[2]:". |
| 456 | ;; This pattern should catch all the common variants. The pattern | 456 | ;; This pattern should catch all the common variants. |
| 457 | ;; also ignores mailing list identifiers sometimes added in square | 457 | ;; rms: I deleted the change to delete tags in square brackets |
| 458 | ;; brackets at the beginning of subject lines. | 458 | ;; because they mess up RT tags. |
| 459 | (defvar rmail-reply-regexp "\\`\\(\\[.+?\\] \\)?\\(Re\\(([0-9]+)\\|\\[[0-9]+\\]\\|\\^[0-9]+\\)?: *\\)*" | 459 | (defvar rmail-reply-regexp "\\`\\(Re\\(([0-9]+)\\|\\[[0-9]+\\]\\|\\^[0-9]+\\)?: *\\)*" |
| 460 | "Regexp to delete from Subject line before inserting `rmail-reply-prefix'.") | 460 | "Regexp to delete from Subject line before inserting `rmail-reply-prefix'.") |
| 461 | 461 | ||
| 462 | (defcustom rmail-display-summary nil | 462 | (defcustom rmail-display-summary nil |
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index ecdf207d252..7a6cf778bbe 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog | |||
| @@ -1,3 +1,42 @@ | |||
| 1 | 2006-03-19 Bill Wohler <wohler@newt.com> | ||
| 2 | |||
| 3 | * mh-comp.el (mh-reply): Sync docstring with manual. | ||
| 4 | |||
| 5 | * mh-compat.el (mh-image-load-path-for-library): Shorten first line in | ||
| 6 | docstring. | ||
| 7 | |||
| 8 | 2006-03-17 Bill Wohler <wohler@newt.com> | ||
| 9 | |||
| 10 | * mh-compat.el (mh-image-load-path-for-library): Minor docstring | ||
| 11 | fix. | ||
| 12 | |||
| 13 | 2006-03-16 Bill Wohler <wohler@newt.com> | ||
| 14 | |||
| 15 | * mh-comp.el (mh-send-letter): Use split-string to break up | ||
| 16 | mh-send-args (closes SF #1448604). | ||
| 17 | (mh-compose-and-send-mail): Use run-hook-with-args for | ||
| 18 | mh-compose-letter-function. | ||
| 19 | |||
| 20 | * mh-e.el (mh-list-to-string-1): Use dolist. | ||
| 21 | |||
| 22 | * mh-compat.el (mh-image-load-path-for-library): Prefer user's | ||
| 23 | images. | ||
| 24 | |||
| 25 | 2006-03-15 Bill Wohler <wohler@newt.com> | ||
| 26 | |||
| 27 | * mh-compat.el (mh-image-load-path-for-library): Fix example by | ||
| 28 | not recommending that one binds image-load-path. Just defvar it to | ||
| 29 | placate compiler and only use it if previously defined. | ||
| 30 | |||
| 31 | * mh-e.el (image-load-path): Don't bind! | ||
| 32 | |||
| 33 | * mh-folder.el (mh-folder-mode): Only use image-load-path if | ||
| 34 | previously defined. | ||
| 35 | |||
| 36 | * mh-letter.el (mh-letter-mode): Ditto. | ||
| 37 | |||
| 38 | * mh-utils.el (mh-logo-display): Ditto. | ||
| 39 | |||
| 1 | 2006-03-14 Bill Wohler <wohler@newt.com> | 40 | 2006-03-14 Bill Wohler <wohler@newt.com> |
| 2 | 41 | ||
| 3 | * mh-compat.el (mh-image-load-path-for-library): Incorporate | 42 | * mh-compat.el (mh-image-load-path-for-library): Incorporate |
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index 0cedc83719c..27806dc9ab9 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el | |||
| @@ -287,7 +287,7 @@ use `mh-send-prog' to tell MH-E the name." | |||
| 287 | (set-buffer draft-buffer)) ; for annotation below | 287 | (set-buffer draft-buffer)) ; for annotation below |
| 288 | (t | 288 | (t |
| 289 | (mh-exec-cmd-daemon mh-send-prog nil "-nodraftfolder" "-noverbose" | 289 | (mh-exec-cmd-daemon mh-send-prog nil "-nodraftfolder" "-noverbose" |
| 290 | mh-send-args file-name))) | 290 | (split-string mh-send-args) file-name))) |
| 291 | (if mh-annotate-char | 291 | (if mh-annotate-char |
| 292 | (mh-annotate-msg mh-sent-from-msg | 292 | (mh-annotate-msg mh-sent-from-msg |
| 293 | mh-sent-from-folder | 293 | mh-sent-from-folder |
| @@ -580,14 +580,16 @@ You have several choices here. | |||
| 580 | 580 | ||
| 581 | Response Reply Goes To | 581 | Response Reply Goes To |
| 582 | 582 | ||
| 583 | from The person who sent the message. This is the | 583 | from The person who sent the message. This is the |
| 584 | default, so <RET> is sufficient. | 584 | default, so <RET> is sufficient. |
| 585 | 585 | ||
| 586 | to Replies to the sender, plus all recipients in the | 586 | to Replies to the sender, plus all recipients in the |
| 587 | \"To:\" header field. | 587 | \"To:\" header field. |
| 588 | 588 | ||
| 589 | all | 589 | all cc Forms a reply to the addresses in the |
| 590 | cc Forms a reply to the sender, plus all recipients. | 590 | \"Mail-Followup-To:\" header field if one |
| 591 | exists; otherwise forms a reply to the sender, | ||
| 592 | plus all recipients. | ||
| 591 | 593 | ||
| 592 | Depending on your answer, \"repl\" is given a different argument | 594 | Depending on your answer, \"repl\" is given a different argument |
| 593 | to form your reply. Specifically, a choice of \"from\" or none at | 595 | to form your reply. Specifically, a choice of \"from\" or none at |
| @@ -597,7 +599,11 @@ all runs \"repl -nocc all\", and a choice of \"to\" runs \"repl | |||
| 597 | 599 | ||
| 598 | Two windows are then created. One window contains the message to | 600 | Two windows are then created. One window contains the message to |
| 599 | which you are replying in an MH-Show buffer. Your draft, in | 601 | which you are replying in an MH-Show buffer. Your draft, in |
| 600 | MH-Letter mode (see `mh-letter-mode'), is in the other window. | 602 | MH-Letter mode (*note `mh-letter-mode'), is in the other window. |
| 603 | If the reply draft was not one that you expected, check the | ||
| 604 | things that affect the behavior of \"repl\" which include the | ||
| 605 | \"repl:\" profile component and the \"replcomps\" and | ||
| 606 | \"replgroupcomps\" files. | ||
| 601 | 607 | ||
| 602 | If you supply a prefix argument INCLUDEP, the message you are | 608 | If you supply a prefix argument INCLUDEP, the message you are |
| 603 | replying to is inserted in your reply after having first been run | 609 | replying to is inserted in your reply after having first been run |
| @@ -895,15 +901,7 @@ letter." | |||
| 895 | (mh-logo-display) | 901 | (mh-logo-display) |
| 896 | (mh-make-local-hook 'kill-buffer-hook) | 902 | (mh-make-local-hook 'kill-buffer-hook) |
| 897 | (add-hook 'kill-buffer-hook 'mh-tidy-draft-buffer nil t) | 903 | (add-hook 'kill-buffer-hook 'mh-tidy-draft-buffer nil t) |
| 898 | (if (and (boundp 'mh-compose-letter-function) | 904 | (run-hook-with-args 'mh-compose-letter-function to subject cc)) |
| 899 | mh-compose-letter-function) | ||
| 900 | ;; run-hooks will not pass arguments. | ||
| 901 | (let ((value mh-compose-letter-function)) | ||
| 902 | (if (and (listp value) (not (eq (car value) 'lambda))) | ||
| 903 | (while value | ||
| 904 | (funcall (car value) to subject cc) | ||
| 905 | (setq value (cdr value))) | ||
| 906 | (funcall mh-compose-letter-function to subject cc))))) | ||
| 907 | 905 | ||
| 908 | (defun mh-insert-x-mailer () | 906 | (defun mh-insert-x-mailer () |
| 909 | "Append an X-Mailer field to the header. | 907 | "Append an X-Mailer field to the header. |
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el index 50542d67f4e..256a8cfe831 100644 --- a/lisp/mh-e/mh-compat.el +++ b/lisp/mh-e/mh-compat.el | |||
| @@ -117,12 +117,13 @@ introduced in Emacs 22." | |||
| 117 | 117 | ||
| 118 | (mh-defun-compat mh-image-load-path-for-library | 118 | (mh-defun-compat mh-image-load-path-for-library |
| 119 | image-load-path-for-library (library image &optional path no-error) | 119 | image-load-path-for-library (library image &optional path no-error) |
| 120 | "Return a suitable search path for images relative to LIBRARY. | 120 | "Return a suitable search path for images used by LIBRARY. |
| 121 | 121 | ||
| 122 | First it searches for IMAGE in a path suitable for LIBRARY, which | 122 | It searches for IMAGE in `image-load-path' (excluding |
| 123 | includes \"../../etc/images\" and \"../etc/images\" relative to | 123 | \"`data-directory'/images\") and `load-path', followed by a path |
| 124 | the library file itself, followed by `image-load-path' and | 124 | suitable for LIBRARY, which includes \"../../etc/images\" and |
| 125 | `load-path'. | 125 | \"../etc/images\" relative to the library file itself, and then |
| 126 | in \"`data-directory'/images\". | ||
| 126 | 127 | ||
| 127 | Then this function returns a list of directories which contains | 128 | Then this function returns a list of directories which contains |
| 128 | first the directory in which IMAGE was found, followed by the | 129 | first the directory in which IMAGE was found, followed by the |
| @@ -137,16 +138,46 @@ Here is an example that uses a common idiom to provide | |||
| 137 | compatibility with versions of Emacs that lack the variable | 138 | compatibility with versions of Emacs that lack the variable |
| 138 | `image-load-path': | 139 | `image-load-path': |
| 139 | 140 | ||
| 140 | ;; Avoid errors on Emacsen without `image-load-path'. | 141 | ;; Shush compiler. |
| 141 | (if (not (boundp 'image-load-path)) (defvar image-load-path nil)) | 142 | (defvar image-load-path) |
| 142 | 143 | ||
| 143 | (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\")) | 144 | (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\")) |
| 144 | (image-load-path (cons (car load-path) image-load-path))) | 145 | (image-load-path (cons (car load-path) |
| 146 | (when (boundp 'image-load-path) | ||
| 147 | image-load-path)))) | ||
| 145 | (mh-tool-bar-folder-buttons-init))" | 148 | (mh-tool-bar-folder-buttons-init))" |
| 146 | (unless library (error "No library specified")) | 149 | (unless library (error "No library specified")) |
| 147 | (unless image (error "No image specified")) | 150 | (unless image (error "No image specified")) |
| 148 | (let ((image-directory)) | 151 | (let (image-directory image-directory-load-path) |
| 152 | ;; Check for images in image-load-path or load-path. | ||
| 153 | (let ((img image) | ||
| 154 | (dir (or | ||
| 155 | ;; Images in image-load-path. | ||
| 156 | (mh-image-search-load-path image) | ||
| 157 | ;; Images in load-path. | ||
| 158 | (locate-library image))) | ||
| 159 | parent) | ||
| 160 | ;; Since the image might be in a nested directory (for | ||
| 161 | ;; example, mail/attach.pbm), adjust `image-directory' | ||
| 162 | ;; accordingly. | ||
| 163 | (when dir | ||
| 164 | (setq dir (file-name-directory dir)) | ||
| 165 | (while (setq parent (file-name-directory img)) | ||
| 166 | (setq img (directory-file-name parent) | ||
| 167 | dir (expand-file-name "../" dir)))) | ||
| 168 | (setq image-directory-load-path dir)) | ||
| 169 | |||
| 170 | ;; If `image-directory-load-path' isn't Emacs' image directory, | ||
| 171 | ;; it's probably a user preference, so use it. Then use a | ||
| 172 | ;; relative setting if possible; otherwise, use | ||
| 173 | ;; `image-directory-load-path'. | ||
| 149 | (cond | 174 | (cond |
| 175 | ;; User-modified image-load-path? | ||
| 176 | ((and image-directory-load-path | ||
| 177 | (not (equal image-directory-load-path | ||
| 178 | (file-name-as-directory | ||
| 179 | (expand-file-name "images" data-directory))))) | ||
| 180 | (setq image-directory image-directory-load-path)) | ||
| 150 | ;; Try relative setting. | 181 | ;; Try relative setting. |
| 151 | ((let (library-name d1ei d2ei) | 182 | ((let (library-name d1ei d2ei) |
| 152 | ;; First, find library in the load-path. | 183 | ;; First, find library in the load-path. |
| @@ -156,33 +187,20 @@ compatibility with versions of Emacs that lack the variable | |||
| 156 | ;; And then set image-directory relative to that. | 187 | ;; And then set image-directory relative to that. |
| 157 | (setq | 188 | (setq |
| 158 | ;; Go down 2 levels. | 189 | ;; Go down 2 levels. |
| 159 | d2ei (expand-file-name | 190 | d2ei (file-name-as-directory |
| 160 | (concat (file-name-directory library-name) "../../etc/images")) | 191 | (expand-file-name |
| 192 | (concat (file-name-directory library-name) "../../etc/images"))) | ||
| 161 | ;; Go down 1 level. | 193 | ;; Go down 1 level. |
| 162 | d1ei (expand-file-name | 194 | d1ei (file-name-as-directory |
| 163 | (concat (file-name-directory library-name) "../etc/images"))) | 195 | (expand-file-name |
| 196 | (concat (file-name-directory library-name) "../etc/images")))) | ||
| 164 | (setq image-directory | 197 | (setq image-directory |
| 165 | ;; Set it to nil if image is not found. | 198 | ;; Set it to nil if image is not found. |
| 166 | (cond ((file-exists-p (expand-file-name image d2ei)) d2ei) | 199 | (cond ((file-exists-p (expand-file-name image d2ei)) d2ei) |
| 167 | ((file-exists-p (expand-file-name image d1ei)) d1ei))))) | 200 | ((file-exists-p (expand-file-name image d1ei)) d1ei))))) |
| 168 | ;; Check for images in image-load-path or load-path. | 201 | ;; Use Emacs' image directory. |
| 169 | ((let ((img image) | 202 | (image-directory-load-path |
| 170 | (dir (or | 203 | (setq image-directory image-directory-load-path)) |
| 171 | ;; Images in image-load-path. | ||
| 172 | (mh-image-search-load-path image) | ||
| 173 | ;; Images in load-path. | ||
| 174 | (locate-library image))) | ||
| 175 | parent) | ||
| 176 | ;; Since the image might be in a nested directory (for | ||
| 177 | ;; example, mail/attach.pbm), adjust `image-directory' | ||
| 178 | ;; accordingly. | ||
| 179 | (and dir | ||
| 180 | (setq dir (file-name-directory dir)) | ||
| 181 | (progn | ||
| 182 | (while (setq parent (file-name-directory img)) | ||
| 183 | (setq img (directory-file-name parent) | ||
| 184 | dir (expand-file-name "../" dir))) | ||
| 185 | (setq image-directory dir))))) | ||
| 186 | (no-error | 204 | (no-error |
| 187 | (message "Could not find image %s for library %s" image library)) | 205 | (message "Could not find image %s for library %s" image library)) |
| 188 | (t | 206 | (t |
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 2f29a678f13..84e569bab81 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el | |||
| @@ -325,9 +325,6 @@ Name of the Previous sequence.") | |||
| 325 | 325 | ||
| 326 | ;; Etc. (alphabetical) | 326 | ;; Etc. (alphabetical) |
| 327 | 327 | ||
| 328 | ;; Avoid errors on Emacsen without image-load-path. | ||
| 329 | (if (not (boundp 'image-load-path)) (defvar image-load-path nil)) | ||
| 330 | |||
| 331 | (defvar mh-flists-present-flag nil | 328 | (defvar mh-flists-present-flag nil |
| 332 | "Non-nil means that we have \"flists\".") | 329 | "Non-nil means that we have \"flists\".") |
| 333 | 330 | ||
| @@ -430,20 +427,20 @@ gnus-version) | |||
| 430 | 427 | ||
| 431 | (defun mh-list-to-string-1 (l) | 428 | (defun mh-list-to-string-1 (l) |
| 432 | "Flatten the list L and make every element of the new list into a string." | 429 | "Flatten the list L and make every element of the new list into a string." |
| 433 | (let ((new-list nil)) | 430 | (let (new-list) |
| 434 | (while l | 431 | (dolist (element l) |
| 435 | (cond ((null (car l))) | 432 | (cond ((null element)) |
| 436 | ((symbolp (car l)) | 433 | ((symbolp element) |
| 437 | (setq new-list (cons (symbol-name (car l)) new-list))) | 434 | (push (symbol-name element) new-list)) |
| 438 | ((numberp (car l)) | 435 | ((numberp element) |
| 439 | (setq new-list (cons (int-to-string (car l)) new-list))) | 436 | (push (int-to-string element) new-list)) |
| 440 | ((equal (car l) "")) | 437 | ((equal element "")) |
| 441 | ((stringp (car l)) (setq new-list (cons (car l) new-list))) | 438 | ((stringp element) |
| 442 | ((listp (car l)) | 439 | (push element new-list)) |
| 443 | (setq new-list (nconc (mh-list-to-string-1 (car l)) | 440 | ((listp element) |
| 444 | new-list))) | 441 | (setq new-list (nconc (mh-list-to-string-1 element) new-list))) |
| 445 | (t (error "Bad element in `mh-list-to-string': %s" (car l)))) | 442 | (t |
| 446 | (setq l (cdr l))) | 443 | (error "Bad element: %s" element)))) |
| 447 | new-list)) | 444 | new-list)) |
| 448 | 445 | ||
| 449 | 446 | ||
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el index 2c32d1433f1..b1b8c7d859c 100644 --- a/lisp/mh-e/mh-folder.el +++ b/lisp/mh-e/mh-folder.el | |||
| @@ -525,6 +525,7 @@ font-lock is done highlighting.") | |||
| 525 | (eval-when-compile | 525 | (eval-when-compile |
| 526 | (defvar desktop-save-buffer) | 526 | (defvar desktop-save-buffer) |
| 527 | (defvar font-lock-auto-fontify) | 527 | (defvar font-lock-auto-fontify) |
| 528 | (defvar image-load-path) | ||
| 528 | (mh-do-in-xemacs (defvar font-lock-defaults))) | 529 | (mh-do-in-xemacs (defvar font-lock-defaults))) |
| 529 | 530 | ||
| 530 | (defvar mh-folder-buttons-init-flag nil) | 531 | (defvar mh-folder-buttons-init-flag nil) |
| @@ -592,7 +593,9 @@ perform the operation on all messages in that region. | |||
| 592 | (mh-do-in-gnu-emacs | 593 | (mh-do-in-gnu-emacs |
| 593 | (unless mh-folder-buttons-init-flag | 594 | (unless mh-folder-buttons-init-flag |
| 594 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) | 595 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) |
| 595 | (image-load-path (cons (car load-path) image-load-path))) | 596 | (image-load-path (cons (car load-path) |
| 597 | (when (boundp 'image-load-path) | ||
| 598 | image-load-path)))) | ||
| 596 | (mh-tool-bar-folder-buttons-init) | 599 | (mh-tool-bar-folder-buttons-init) |
| 597 | (setq mh-folder-buttons-init-flag t))) | 600 | (setq mh-folder-buttons-init-flag t))) |
| 598 | (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)) | 601 | (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)) |
diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el index a7290cf5ae9..024c1875eac 100644 --- a/lisp/mh-e/mh-letter.el +++ b/lisp/mh-e/mh-letter.el | |||
| @@ -278,7 +278,9 @@ searching for `mh-mail-header-separator' in the buffer." | |||
| 278 | (defvar mh-letter-buttons-init-flag nil) | 278 | (defvar mh-letter-buttons-init-flag nil) |
| 279 | 279 | ||
| 280 | ;; Shush compiler. | 280 | ;; Shush compiler. |
| 281 | (eval-when-compile (mh-do-in-xemacs (defvar font-lock-defaults))) | 281 | (eval-when-compile |
| 282 | (defvar image-load-path) | ||
| 283 | (mh-do-in-xemacs (defvar font-lock-defaults))) | ||
| 282 | 284 | ||
| 283 | ;; Ensure new buffers won't get this mode if default-major-mode is nil. | 285 | ;; Ensure new buffers won't get this mode if default-major-mode is nil. |
| 284 | (put 'mh-letter-mode 'mode-class 'special) | 286 | (put 'mh-letter-mode 'mode-class 'special) |
| @@ -314,7 +316,9 @@ order). | |||
| 314 | (mh-do-in-gnu-emacs | 316 | (mh-do-in-gnu-emacs |
| 315 | (unless mh-letter-buttons-init-flag | 317 | (unless mh-letter-buttons-init-flag |
| 316 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) | 318 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) |
| 317 | (image-load-path (cons (car load-path) image-load-path))) | 319 | (image-load-path (cons (car load-path) |
| 320 | (when (boundp 'image-load-path) | ||
| 321 | image-load-path)))) | ||
| 318 | (mh-tool-bar-letter-buttons-init) | 322 | (mh-tool-bar-letter-buttons-init) |
| 319 | (setq mh-letter-buttons-init-flag t))) | 323 | (setq mh-letter-buttons-init-flag t))) |
| 320 | (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map)) | 324 | (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map)) |
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index 44e15f3cb19..e41ee0bcc4f 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el | |||
| @@ -127,12 +127,17 @@ Ignores case when searching for OLD." | |||
| 127 | 127 | ||
| 128 | (defvar mh-logo-cache nil) | 128 | (defvar mh-logo-cache nil) |
| 129 | 129 | ||
| 130 | ;; Shush compiler. | ||
| 131 | (defvar image-load-path) | ||
| 132 | |||
| 130 | ;;;###mh-autoload | 133 | ;;;###mh-autoload |
| 131 | (defun mh-logo-display () | 134 | (defun mh-logo-display () |
| 132 | "Modify mode line to display MH-E logo." | 135 | "Modify mode line to display MH-E logo." |
| 133 | (mh-do-in-gnu-emacs | 136 | (mh-do-in-gnu-emacs |
| 134 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) | 137 | (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm")) |
| 135 | (image-load-path (cons (car load-path) image-load-path))) | 138 | (image-load-path (cons (car load-path) |
| 139 | (when (boundp 'image-load-path) | ||
| 140 | image-load-path)))) | ||
| 136 | (add-text-properties | 141 | (add-text-properties |
| 137 | 0 2 | 142 | 0 2 |
| 138 | `(display ,(or mh-logo-cache | 143 | `(display ,(or mh-logo-cache |
diff --git a/lisp/mouse.el b/lisp/mouse.el index 3a22fb49b04..c399515a3d2 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -538,19 +538,20 @@ resized by dragging their header-line." | |||
| 538 | (echo-keystrokes 0) | 538 | (echo-keystrokes 0) |
| 539 | (start-event-frame (window-frame (car (car (cdr start-event))))) | 539 | (start-event-frame (window-frame (car (car (cdr start-event))))) |
| 540 | (start-event-window (car (car (cdr start-event)))) | 540 | (start-event-window (car (car (cdr start-event)))) |
| 541 | (start-nwindows (count-windows t)) | ||
| 542 | event mouse x left right edges wconfig growth | 541 | event mouse x left right edges wconfig growth |
| 543 | (which-side | 542 | (which-side |
| 544 | (or (cdr (assq 'vertical-scroll-bars (frame-parameters start-event-frame))) | 543 | (or (cdr (assq 'vertical-scroll-bars (frame-parameters start-event-frame))) |
| 545 | 'right))) | 544 | 'right))) |
| 546 | (if (one-window-p t) | 545 | (cond |
| 547 | (error "Attempt to resize sole ordinary window")) | 546 | ((one-window-p t) |
| 548 | (if (eq which-side 'right) | 547 | (error "Attempt to resize sole ordinary window")) |
| 549 | (if (= (nth 2 (window-edges start-event-window)) | 548 | ((and (eq which-side 'right) |
| 550 | (frame-width start-event-frame)) | 549 | (>= (nth 2 (window-inside-edges start-event-window)) |
| 551 | (error "Attempt to drag rightmost scrollbar")) | 550 | (frame-width start-event-frame))) |
| 552 | (if (= (nth 0 (window-edges start-event-window)) 0) | 551 | (error "Attempt to drag rightmost scrollbar")) |
| 553 | (error "Attempt to drag leftmost scrollbar"))) | 552 | ((and (eq which-side 'left) |
| 553 | (= (nth 0 (window-inside-edges start-event-window)) 0)) | ||
| 554 | (error "Attempt to drag leftmost scrollbar"))) | ||
| 554 | (track-mouse | 555 | (track-mouse |
| 555 | (progn | 556 | (progn |
| 556 | ;; enlarge-window only works on the selected window, so | 557 | ;; enlarge-window only works on the selected window, so |
diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el index 0c9f45ab5b9..a9608b7f4f2 100644 --- a/lisp/pgg-gpg.el +++ b/lisp/pgg-gpg.el | |||
| @@ -51,6 +51,13 @@ | |||
| 51 | :type '(choice (const :tag "New `--recipient' option" "--recipient") | 51 | :type '(choice (const :tag "New `--recipient' option" "--recipient") |
| 52 | (const :tag "Old `--remote-user' option" "--remote-user"))) | 52 | (const :tag "Old `--remote-user' option" "--remote-user"))) |
| 53 | 53 | ||
| 54 | (defcustom pgg-gpg-use-agent (if (getenv "GPG_AGENT_INFO") t nil) | ||
| 55 | "Whether to use gnupg agent for key caching. | ||
| 56 | By default, it will be enabled iff the environment variable | ||
| 57 | \"GPG_AGENT_INFO\" is set." | ||
| 58 | :group 'pgg-gpg | ||
| 59 | :type 'boolean) | ||
| 60 | |||
| 54 | (defvar pgg-gpg-user-id nil | 61 | (defvar pgg-gpg-user-id nil |
| 55 | "GnuPG ID of your default identity.") | 62 | "GnuPG ID of your default identity.") |
| 56 | 63 | ||
| @@ -58,7 +65,8 @@ | |||
| 58 | (let* ((output-file-name (pgg-make-temp-file "pgg-output")) | 65 | (let* ((output-file-name (pgg-make-temp-file "pgg-output")) |
| 59 | (args | 66 | (args |
| 60 | `("--status-fd" "2" | 67 | `("--status-fd" "2" |
| 61 | ,@(if passphrase '("--passphrase-fd" "0")) | 68 | ,@(if pgg-gpg-use-agent '("--use-agent") |
| 69 | (if passphrase '("--passphrase-fd" "0"))) | ||
| 62 | "--yes" ; overwrite | 70 | "--yes" ; overwrite |
| 63 | "--output" ,output-file-name | 71 | "--output" ,output-file-name |
| 64 | ,@pgg-gpg-extra-args ,@args)) | 72 | ,@pgg-gpg-extra-args ,@args)) |
| @@ -100,7 +108,8 @@ | |||
| 100 | (set-default-file-modes orig-mode)))) | 108 | (set-default-file-modes orig-mode)))) |
| 101 | 109 | ||
| 102 | (defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate) | 110 | (defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate) |
| 103 | (if (and pgg-cache-passphrase | 111 | (if (and passphrase |
| 112 | pgg-cache-passphrase | ||
| 104 | (progn | 113 | (progn |
| 105 | (goto-char (point-min)) | 114 | (goto-char (point-min)) |
| 106 | (re-search-forward "^\\[GNUPG:] \\(GOOD_PASSPHRASE\\>\\)\\|\\(SIG_CREATED\\)" nil t))) | 115 | (re-search-forward "^\\[GNUPG:] \\(GOOD_PASSPHRASE\\>\\)\\|\\(SIG_CREATED\\)" nil t))) |
| @@ -154,24 +163,22 @@ Optional ALL non-nil means search all keys, including secret keys." | |||
| 154 | (let ((args (list "--with-colons" "--no-greeting" "--batch" | 163 | (let ((args (list "--with-colons" "--no-greeting" "--batch" |
| 155 | (if all "--list-secret-keys" "--list-keys") | 164 | (if all "--list-secret-keys" "--list-keys") |
| 156 | string)) | 165 | string)) |
| 157 | (key-regexp (concat "^\\(sec\\|pub\\)" | 166 | (key-regexp (concat "^\\(sec\\|pub\\)" |
| 158 | ":[^:]*:[^:]*:[^:]*:\\([^:]*\\):[^:]*" | 167 | ":[^:]*:[^:]*:[^:]*:\\([^:]*\\):[^:]*" |
| 159 | ":[^:]*:[^:]*:[^:]*:\\([^:]*\\):")) | 168 | ":[^:]*:[^:]*:[^:]*:\\([^:]*\\):"))) |
| 160 | ) | ||
| 161 | (with-temp-buffer | 169 | (with-temp-buffer |
| 162 | (apply #'call-process pgg-gpg-program nil t nil args) | 170 | (apply #'call-process pgg-gpg-program nil t nil args) |
| 163 | (goto-char (point-min)) | 171 | (goto-char (point-min)) |
| 164 | (if (re-search-forward key-regexp | 172 | (if (re-search-forward key-regexp |
| 165 | nil t) | 173 | nil t) |
| 166 | (match-string 3))))) | 174 | (match-string 3))))) |
| 167 | 175 | ||
| 168 | (defun pgg-gpg-key-id-from-key-owner (key-owner) | 176 | (defun pgg-gpg-key-id-from-key-owner (key-owner) |
| 169 | (cond ((not key-owner) nil) | 177 | (cond ((not key-owner) nil) |
| 170 | ;; Extract bare key id from outermost paired angle brackets, if any: | 178 | ;; Extract bare key id from outermost paired angle brackets, if any: |
| 171 | ((string-match "[^<]*<\\(.+\\)>[^>]*" key-owner) | 179 | ((string-match "[^<]*<\\(.+\\)>[^>]*" key-owner) |
| 172 | (substring key-owner (match-beginning 1)(match-end 1))) | 180 | (substring key-owner (match-beginning 1)(match-end 1))) |
| 173 | (key-owner)) | 181 | (key-owner))) |
| 174 | ) | ||
| 175 | 182 | ||
| 176 | (defun pgg-gpg-encrypt-region (start end recipients &optional sign passphrase) | 183 | (defun pgg-gpg-encrypt-region (start end recipients &optional sign passphrase) |
| 177 | "Encrypt the current region between START and END. | 184 | "Encrypt the current region between START and END. |
| @@ -182,11 +189,11 @@ If optional PASSPHRASE is not specified, it will be obtained from the | |||
| 182 | passphrase cache or user." | 189 | passphrase cache or user." |
| 183 | (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) | 190 | (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) |
| 184 | (passphrase (or passphrase | 191 | (passphrase (or passphrase |
| 185 | (when sign | 192 | (when (and sign (not pgg-gpg-use-agent)) |
| 186 | (pgg-read-passphrase | 193 | (pgg-read-passphrase |
| 187 | (format "GnuPG passphrase for %s: " | 194 | (format "GnuPG passphrase for %s: " |
| 188 | pgg-gpg-user-id) | 195 | pgg-gpg-user-id) |
| 189 | pgg-gpg-user-id)))) | 196 | pgg-gpg-user-id)))) |
| 190 | (args | 197 | (args |
| 191 | (append | 198 | (append |
| 192 | (list "--batch" "--armor" "--always-trust" "--encrypt") | 199 | (list "--batch" "--armor" "--always-trust" "--encrypt") |
| @@ -214,8 +221,9 @@ passphrase cache or user." | |||
| 214 | If optional PASSPHRASE is not specified, it will be obtained from the | 221 | If optional PASSPHRASE is not specified, it will be obtained from the |
| 215 | passphrase cache or user." | 222 | passphrase cache or user." |
| 216 | (let* ((passphrase (or passphrase | 223 | (let* ((passphrase (or passphrase |
| 217 | (pgg-read-passphrase | 224 | (when (not pgg-gpg-use-agent) |
| 218 | "GnuPG passphrase for symmetric encryption: "))) | 225 | (pgg-read-passphrase |
| 226 | "GnuPG passphrase for symmetric encryption: ")))) | ||
| 219 | (args | 227 | (args |
| 220 | (append (list "--batch" "--armor" "--symmetric" ) | 228 | (append (list "--batch" "--armor" "--symmetric" ) |
| 221 | (if pgg-text-mode (list "--textmode"))))) | 229 | (if pgg-text-mode (list "--textmode"))))) |
| @@ -232,22 +240,23 @@ passphrase cache or user." | |||
| 232 | (insert-buffer-substring current-buffer) | 240 | (insert-buffer-substring current-buffer) |
| 233 | (pgg-decode-armor-region (point-min) (point-max)))) | 241 | (pgg-decode-armor-region (point-min) (point-max)))) |
| 234 | (secret-keys (pgg-gpg-lookup-all-secret-keys)) | 242 | (secret-keys (pgg-gpg-lookup-all-secret-keys)) |
| 235 | ;; XXX the user is stuck if they need to use the passphrase for | 243 | ;; XXX the user is stuck if they need to use the passphrase for |
| 236 | ;; any but the first secret key for which the message is | 244 | ;; any but the first secret key for which the message is |
| 237 | ;; encrypted. ideally, we would incrementally give them a | 245 | ;; encrypted. ideally, we would incrementally give them a |
| 238 | ;; chance with subsequent keys each time they fail with one. | 246 | ;; chance with subsequent keys each time they fail with one. |
| 239 | (key (pgg-gpg-select-matching-key message-keys secret-keys)) | 247 | (key (pgg-gpg-select-matching-key message-keys secret-keys)) |
| 240 | (key-owner (and key (pgg-gpg-lookup-key-owner key t))) | 248 | (key-owner (and key (pgg-gpg-lookup-key-owner key t))) |
| 241 | (key-id (pgg-gpg-key-id-from-key-owner key-owner)) | 249 | (key-id (pgg-gpg-key-id-from-key-owner key-owner)) |
| 242 | (pgg-gpg-user-id (or key-id key | 250 | (pgg-gpg-user-id (or key-id key |
| 243 | pgg-gpg-user-id pgg-default-user-id)) | 251 | pgg-gpg-user-id pgg-default-user-id)) |
| 244 | (passphrase (or passphrase | 252 | (passphrase (or passphrase |
| 245 | (pgg-read-passphrase | 253 | (when (not pgg-gpg-use-agent) |
| 246 | (format (if (pgg-gpg-symmetric-key-p message-keys) | 254 | (pgg-read-passphrase |
| 247 | "Passphrase for symmetric decryption: " | 255 | (format (if (pgg-gpg-symmetric-key-p message-keys) |
| 248 | "GnuPG passphrase for %s: ") | 256 | "Passphrase for symmetric decryption: " |
| 249 | (or key-owner "??")) | 257 | "GnuPG passphrase for %s: ") |
| 250 | pgg-gpg-user-id))) | 258 | (or key-owner "??")) |
| 259 | pgg-gpg-user-id)))) | ||
| 251 | (args '("--batch" "--decrypt"))) | 260 | (args '("--batch" "--decrypt"))) |
| 252 | (pgg-gpg-process-region start end passphrase pgg-gpg-program args) | 261 | (pgg-gpg-process-region start end passphrase pgg-gpg-program args) |
| 253 | (with-current-buffer pgg-errors-buffer | 262 | (with-current-buffer pgg-errors-buffer |
| @@ -269,7 +278,7 @@ passphrase cache or user." | |||
| 269 | (loop for message-key in message-keys | 278 | (loop for message-key in message-keys |
| 270 | for message-key-id = (and (equal (car message-key) 1) | 279 | for message-key-id = (and (equal (car message-key) 1) |
| 271 | (cdr (assq 'key-identifier | 280 | (cdr (assq 'key-identifier |
| 272 | (cdr message-key)))) | 281 | (cdr message-key)))) |
| 273 | for key = (and message-key-id (pgg-lookup-key message-key-id 'encrypt)) | 282 | for key = (and message-key-id (pgg-lookup-key message-key-id 'encrypt)) |
| 274 | when (and key (member key secret-keys)) return key)) | 283 | when (and key (member key secret-keys)) return key)) |
| 275 | 284 | ||
| @@ -277,9 +286,11 @@ passphrase cache or user." | |||
| 277 | "Make detached signature from text between START and END." | 286 | "Make detached signature from text between START and END." |
| 278 | (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) | 287 | (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id)) |
| 279 | (passphrase (or passphrase | 288 | (passphrase (or passphrase |
| 280 | (pgg-read-passphrase | 289 | (when (not pgg-gpg-use-agent) |
| 281 | (format "GnuPG passphrase for %s: " pgg-gpg-user-id) | 290 | (pgg-read-passphrase |
| 282 | pgg-gpg-user-id))) | 291 | (format "GnuPG passphrase for %s: " |
| 292 | pgg-gpg-user-id) | ||
| 293 | pgg-gpg-user-id)))) | ||
| 283 | (args | 294 | (args |
| 284 | (append (list (if cleartext "--clearsign" "--detach-sign") | 295 | (append (list (if cleartext "--clearsign" "--detach-sign") |
| 285 | "--armor" "--batch" "--verbose" | 296 | "--armor" "--batch" "--verbose" |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index db704985f2a..5b657b1555b 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; Maintainer: FSF | 4 | ;; Maintainer: FSF |
| 5 | ;; Keywords: unix, tools | 5 | ;; Keywords: unix, tools |
| 6 | 6 | ||
| 7 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006 | 7 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006 |
| 8 | ;; Free Software Foundation, Inc. | 8 | ;; Free Software Foundation, Inc. |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| @@ -125,6 +125,7 @@ and #define directives otherwise.") | |||
| 125 | (defvar gdb-buffer-fringe-width nil) | 125 | (defvar gdb-buffer-fringe-width nil) |
| 126 | (defvar gdb-signalled nil) | 126 | (defvar gdb-signalled nil) |
| 127 | (defvar gdb-source-window nil) | 127 | (defvar gdb-source-window nil) |
| 128 | (defvar gdb-inferior-status nil) | ||
| 128 | 129 | ||
| 129 | (defvar gdb-buffer-type nil | 130 | (defvar gdb-buffer-type nil |
| 130 | "One of the symbols bound in `gdb-buffer-rules'.") | 131 | "One of the symbols bound in `gdb-buffer-rules'.") |
| @@ -317,6 +318,16 @@ of the inferior. Non-nil means display the layout shown for | |||
| 317 | :group 'gud | 318 | :group 'gud |
| 318 | :version "22.1") | 319 | :version "22.1") |
| 319 | 320 | ||
| 321 | (defun gdb-force-mode-line-update (status) | ||
| 322 | (let ((buffer gud-comint-buffer)) | ||
| 323 | (if (and buffer (buffer-name buffer)) | ||
| 324 | (with-current-buffer buffer | ||
| 325 | (setq mode-line-process | ||
| 326 | (format ":%s [%s]" | ||
| 327 | (process-status (get-buffer-process buffer)) status)) | ||
| 328 | ;; Force mode line redisplay soon. | ||
| 329 | (force-mode-line-update))))) | ||
| 330 | |||
| 320 | (defun gdb-many-windows (arg) | 331 | (defun gdb-many-windows (arg) |
| 321 | "Toggle the number of windows in the basic arrangement. | 332 | "Toggle the number of windows in the basic arrangement. |
| 322 | With arg, display additional buffers iff arg is positive." | 333 | With arg, display additional buffers iff arg is positive." |
| @@ -524,7 +535,9 @@ With arg, use separate IO iff arg is positive." | |||
| 524 | gdb-buffer-fringe-width (car (window-fringes)) | 535 | gdb-buffer-fringe-width (car (window-fringes)) |
| 525 | gdb-debug-ring nil | 536 | gdb-debug-ring nil |
| 526 | gdb-signalled nil | 537 | gdb-signalled nil |
| 527 | gdb-source-window nil) | 538 | gdb-source-window nil |
| 539 | gdb-inferior-status nil | ||
| 540 | gdb-continuation nil) | ||
| 528 | 541 | ||
| 529 | (setq gdb-buffer-type 'gdba) | 542 | (setq gdb-buffer-type 'gdba) |
| 530 | 543 | ||
| @@ -670,7 +683,8 @@ With arg, enter name of variable to be watched in the minibuffer." | |||
| 670 | (require 'tooltip) | 683 | (require 'tooltip) |
| 671 | (save-selected-window | 684 | (save-selected-window |
| 672 | (let ((expr (if arg | 685 | (let ((expr (if arg |
| 673 | (read-string "Name of variable: ") | 686 | (completing-read "Name of variable: " |
| 687 | 'gud-gdb-complete-command) | ||
| 674 | (tooltip-identifier-from-point (point))))) | 688 | (tooltip-identifier-from-point (point))))) |
| 675 | (catch 'already-watched | 689 | (catch 'already-watched |
| 676 | (dolist (var gdb-var-list) | 690 | (dolist (var gdb-var-list) |
| @@ -1064,6 +1078,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." | |||
| 1064 | ;; | 1078 | ;; |
| 1065 | ;; These lists are consumed tail first. | 1079 | ;; These lists are consumed tail first. |
| 1066 | ;; | 1080 | ;; |
| 1081 | (defvar gdb-continuation nil) | ||
| 1067 | 1082 | ||
| 1068 | (defun gdb-send (proc string) | 1083 | (defun gdb-send (proc string) |
| 1069 | "A comint send filter for gdb. | 1084 | "A comint send filter for gdb. |
| @@ -1071,12 +1086,15 @@ This filter may simply queue input for a later time." | |||
| 1071 | (with-current-buffer gud-comint-buffer | 1086 | (with-current-buffer gud-comint-buffer |
| 1072 | (let ((inhibit-read-only t)) | 1087 | (let ((inhibit-read-only t)) |
| 1073 | (remove-text-properties (point-min) (point-max) '(face)))) | 1088 | (remove-text-properties (point-min) (point-max) '(face)))) |
| 1074 | (let ((item (concat string "\n"))) | 1089 | (if (string-match "\\\\$" string) |
| 1075 | (if gud-running | 1090 | (setq gdb-continuation (concat gdb-continuation string "\n")) |
| 1076 | (progn | 1091 | (let ((item (concat gdb-continuation string "\n"))) |
| 1077 | (if gdb-enable-debug (push (cons 'send item) gdb-debug-ring)) | 1092 | (if gud-running |
| 1078 | (process-send-string proc item)) | 1093 | (progn |
| 1079 | (gdb-enqueue-input item)))) | 1094 | (if gdb-enable-debug (push (cons 'send item) gdb-debug-ring)) |
| 1095 | (process-send-string proc item)) | ||
| 1096 | (gdb-enqueue-input item))) | ||
| 1097 | (setq gdb-continuation nil))) | ||
| 1080 | 1098 | ||
| 1081 | ;; Note: Stuff enqueued here will be sent to the next prompt, even if it | 1099 | ;; Note: Stuff enqueued here will be sent to the next prompt, even if it |
| 1082 | ;; is a query, or other non-top-level prompt. | 1100 | ;; is a query, or other non-top-level prompt. |
| @@ -1152,7 +1170,7 @@ This filter may simply queue input for a later time." | |||
| 1152 | ("starting" gdb-starting) | 1170 | ("starting" gdb-starting) |
| 1153 | ("exited" gdb-exited) | 1171 | ("exited" gdb-exited) |
| 1154 | ("signalled" gdb-signalled) | 1172 | ("signalled" gdb-signalled) |
| 1155 | ("signal" gdb-stopping) | 1173 | ("signal" gdb-signal) |
| 1156 | ("breakpoint" gdb-stopping) | 1174 | ("breakpoint" gdb-stopping) |
| 1157 | ("watchpoint" gdb-stopping) | 1175 | ("watchpoint" gdb-stopping) |
| 1158 | ("frame-begin" gdb-frame-begin) | 1176 | ("frame-begin" gdb-frame-begin) |
| @@ -1164,6 +1182,7 @@ This filter may simply queue input for a later time." | |||
| 1164 | (defun gdb-resync() | 1182 | (defun gdb-resync() |
| 1165 | (setq gdb-flush-pending-output t) | 1183 | (setq gdb-flush-pending-output t) |
| 1166 | (setq gud-running nil) | 1184 | (setq gud-running nil) |
| 1185 | (gdb-force-mode-line-update "stopped") | ||
| 1167 | (setq gdb-output-sink 'user) | 1186 | (setq gdb-output-sink 'user) |
| 1168 | (setq gdb-input-queue nil) | 1187 | (setq gdb-input-queue nil) |
| 1169 | (setq gdb-pending-triggers nil) | 1188 | (setq gdb-pending-triggers nil) |
| @@ -1238,6 +1257,8 @@ not GDB." | |||
| 1238 | ((eq sink 'user) | 1257 | ((eq sink 'user) |
| 1239 | (progn | 1258 | (progn |
| 1240 | (setq gud-running t) | 1259 | (setq gud-running t) |
| 1260 | (setq gdb-inferior-status "running") | ||
| 1261 | (gdb-force-mode-line-update gdb-inferior-status) | ||
| 1241 | (gdb-remove-text-properties) | 1262 | (gdb-remove-text-properties) |
| 1242 | (setq gud-overlay-arrow-position nil) | 1263 | (setq gud-overlay-arrow-position nil) |
| 1243 | (setq gdb-overlay-arrow-position nil) | 1264 | (setq gdb-overlay-arrow-position nil) |
| @@ -1247,6 +1268,11 @@ not GDB." | |||
| 1247 | (gdb-resync) | 1268 | (gdb-resync) |
| 1248 | (error "Unexpected `starting' annotation"))))) | 1269 | (error "Unexpected `starting' annotation"))))) |
| 1249 | 1270 | ||
| 1271 | (defun gdb-signal (ignored) | ||
| 1272 | (setq gdb-inferior-status "signal") | ||
| 1273 | (gdb-force-mode-line-update gdb-inferior-status) | ||
| 1274 | (gdb-stopping ignored)) | ||
| 1275 | |||
| 1250 | (defun gdb-stopping (ignored) | 1276 | (defun gdb-stopping (ignored) |
| 1251 | "An annotation handler for `breakpoint' and other annotations. | 1277 | "An annotation handler for `breakpoint' and other annotations. |
| 1252 | They say that I/O for the subprocess is now GDB, not the program | 1278 | They say that I/O for the subprocess is now GDB, not the program |
| @@ -1269,6 +1295,8 @@ directives." | |||
| 1269 | (setq gdb-active-process nil) | 1295 | (setq gdb-active-process nil) |
| 1270 | (setq gud-overlay-arrow-position nil) | 1296 | (setq gud-overlay-arrow-position nil) |
| 1271 | (setq gdb-overlay-arrow-position nil) | 1297 | (setq gdb-overlay-arrow-position nil) |
| 1298 | (setq gdb-inferior-status "exited") | ||
| 1299 | (gdb-force-mode-line-update gdb-inferior-status) | ||
| 1272 | (gdb-stopping ignored)) | 1300 | (gdb-stopping ignored)) |
| 1273 | 1301 | ||
| 1274 | (defun gdb-signalled (ignored) | 1302 | (defun gdb-signalled (ignored) |
| @@ -1290,6 +1318,11 @@ directives." | |||
| 1290 | It is just like `gdb-stopping', except that if we already set the output | 1318 | It is just like `gdb-stopping', except that if we already set the output |
| 1291 | sink to `user' in `gdb-stopping', that is fine." | 1319 | sink to `user' in `gdb-stopping', that is fine." |
| 1292 | (setq gud-running nil) | 1320 | (setq gud-running nil) |
| 1321 | (unless (or gud-overlay-arrow-position gud-last-frame) | ||
| 1322 | (gud-display-line (car gud-last-last-frame) (cdr gud-last-last-frame))) | ||
| 1323 | (unless (member gdb-inferior-status '("exited" "signal")) | ||
| 1324 | (setq gdb-inferior-status "stopped") | ||
| 1325 | (gdb-force-mode-line-update gdb-inferior-status)) | ||
| 1293 | (let ((sink gdb-output-sink)) | 1326 | (let ((sink gdb-output-sink)) |
| 1294 | (cond | 1327 | (cond |
| 1295 | ((eq sink 'inferior) | 1328 | ((eq sink 'inferior) |
| @@ -1628,10 +1661,13 @@ static char *magick[] = { | |||
| 1628 | (defvar breakpoint-disabled-icon nil | 1661 | (defvar breakpoint-disabled-icon nil |
| 1629 | "Icon for disabled breakpoint in display margin.") | 1662 | "Icon for disabled breakpoint in display margin.") |
| 1630 | 1663 | ||
| 1631 | ;; Bitmap for breakpoint in fringe | ||
| 1632 | (and (display-images-p) | 1664 | (and (display-images-p) |
| 1665 | ;; Bitmap for breakpoint in fringe | ||
| 1633 | (define-fringe-bitmap 'breakpoint | 1666 | (define-fringe-bitmap 'breakpoint |
| 1634 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")) | 1667 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c") |
| 1668 | ;; Bitmap for gud-overlay-arrow in fringe | ||
| 1669 | (define-fringe-bitmap 'hollow-right-triangle | ||
| 1670 | "\xe0\x90\x88\x84\x84\x88\x90\xe0")) | ||
| 1635 | 1671 | ||
| 1636 | (defface breakpoint-enabled | 1672 | (defface breakpoint-enabled |
| 1637 | '((t | 1673 | '((t |
| @@ -1887,11 +1923,11 @@ static char *magick[] = { | |||
| 1887 | 1923 | ||
| 1888 | (def-gdb-auto-updated-buffer gdb-stack-buffer | 1924 | (def-gdb-auto-updated-buffer gdb-stack-buffer |
| 1889 | gdb-invalidate-frames | 1925 | gdb-invalidate-frames |
| 1890 | "server where\n" | 1926 | "server info stack\n" |
| 1891 | gdb-info-frames-handler | 1927 | gdb-info-stack-handler |
| 1892 | gdb-info-frames-custom) | 1928 | gdb-info-stack-custom) |
| 1893 | 1929 | ||
| 1894 | (defun gdb-info-frames-custom () | 1930 | (defun gdb-info-stack-custom () |
| 1895 | (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) | 1931 | (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) |
| 1896 | (save-excursion | 1932 | (save-excursion |
| 1897 | (let ((buffer-read-only nil) | 1933 | (let ((buffer-read-only nil) |
| @@ -1952,7 +1988,7 @@ static char *magick[] = { | |||
| 1952 | map)) | 1988 | map)) |
| 1953 | 1989 | ||
| 1954 | (defun gdb-frames-mode () | 1990 | (defun gdb-frames-mode () |
| 1955 | "Major mode for gdb frames. | 1991 | "Major mode for gdb call stack. |
| 1956 | 1992 | ||
| 1957 | \\{gdb-frames-mode-map}" | 1993 | \\{gdb-frames-mode-map}" |
| 1958 | (kill-all-local-variables) | 1994 | (kill-all-local-variables) |
| @@ -2033,15 +2069,13 @@ static char *magick[] = { | |||
| 2033 | map)) | 2069 | map)) |
| 2034 | 2070 | ||
| 2035 | (defvar gdb-threads-font-lock-keywords | 2071 | (defvar gdb-threads-font-lock-keywords |
| 2036 | '( | 2072 | '((") +\\([^ ]+\\) (" (1 font-lock-function-name-face)) |
| 2037 | (") +\\([^ ]+\\) (" (1 font-lock-function-name-face)) | ||
| 2038 | ("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) | 2073 | ("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) |
| 2039 | ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face)) | 2074 | ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))) |
| 2040 | ) | ||
| 2041 | "Font lock keywords used in `gdb-threads-mode'.") | 2075 | "Font lock keywords used in `gdb-threads-mode'.") |
| 2042 | 2076 | ||
| 2043 | (defun gdb-threads-mode () | 2077 | (defun gdb-threads-mode () |
| 2044 | "Major mode for gdb frames. | 2078 | "Major mode for gdb threads. |
| 2045 | 2079 | ||
| 2046 | \\{gdb-threads-mode-map}" | 2080 | \\{gdb-threads-mode-map}" |
| 2047 | (kill-all-local-variables) | 2081 | (kill-all-local-variables) |
| @@ -2101,7 +2135,7 @@ static char *magick[] = { | |||
| 2101 | (unless (string-equal (match-string 0) "The") | 2135 | (unless (string-equal (match-string 0) "The") |
| 2102 | (put-text-property start (match-end 0) | 2136 | (put-text-property start (match-end 0) |
| 2103 | 'face font-lock-variable-name-face) | 2137 | 'face font-lock-variable-name-face) |
| 2104 | (add-text-properties start end | 2138 | (add-text-properties start end |
| 2105 | '(help-echo "mouse-2: edit value" | 2139 | '(help-echo "mouse-2: edit value" |
| 2106 | mouse-face highlight)))) | 2140 | mouse-face highlight)))) |
| 2107 | (forward-line 1)))))) | 2141 | (forward-line 1)))))) |
| @@ -2754,6 +2788,7 @@ Kills the gdb buffers, and resets variables and the source buffers." | |||
| 2754 | (setq gdb-overlay-arrow-position nil)) | 2788 | (setq gdb-overlay-arrow-position nil)) |
| 2755 | (setq overlay-arrow-variable-list | 2789 | (setq overlay-arrow-variable-list |
| 2756 | (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) | 2790 | (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) |
| 2791 | (setq fringe-indicator-alist '((overlay-arrow . right-triangle))) | ||
| 2757 | (if (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) | 2792 | (if (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) |
| 2758 | (speedbar-refresh)) | 2793 | (speedbar-refresh)) |
| 2759 | (setq gud-running nil) | 2794 | (setq gud-running nil) |
| @@ -3079,6 +3114,17 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3079 | (goto-char (point-min)) | 3114 | (goto-char (point-min)) |
| 3080 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) | 3115 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) |
| 3081 | (setq gdb-frame-number (match-string 1))) | 3116 | (setq gdb-frame-number (match-string 1))) |
| 3117 | (if gud-overlay-arrow-position | ||
| 3118 | (let ((buffer (marker-buffer gud-overlay-arrow-position)) | ||
| 3119 | (position (marker-position gud-overlay-arrow-position))) | ||
| 3120 | (when buffer | ||
| 3121 | (with-current-buffer buffer | ||
| 3122 | (setq fringe-indicator-alist | ||
| 3123 | (if (string-equal gdb-frame-number "0") | ||
| 3124 | nil | ||
| 3125 | '((overlay-arrow . hollow-right-triangle)))) | ||
| 3126 | (setq gud-overlay-arrow-position (make-marker)) | ||
| 3127 | (set-marker gud-overlay-arrow-position position))))) | ||
| 3082 | (goto-char (point-min)) | 3128 | (goto-char (point-min)) |
| 3083 | (if (re-search-forward | 3129 | (if (re-search-forward |
| 3084 | ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t) | 3130 | ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t) |
| @@ -3123,7 +3169,7 @@ is set in them." | |||
| 3123 | (gdb-enqueue-input | 3169 | (gdb-enqueue-input |
| 3124 | (list | 3170 | (list |
| 3125 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) | 3171 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) |
| 3126 | (concat "server interpreter mi \"-var-list-children --all-values " | 3172 | (concat "server interpreter mi \"-var-list-children --all-values " |
| 3127 | varnum "\"\n") | 3173 | varnum "\"\n") |
| 3128 | (concat "-var-list-children --all-values " varnum "\n")) | 3174 | (concat "-var-list-children --all-values " varnum "\n")) |
| 3129 | `(lambda () (gdb-var-list-children-handler-1 ,varnum))))) | 3175 | `(lambda () (gdb-var-list-children-handler-1 ,varnum))))) |
| @@ -3252,7 +3298,7 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") | |||
| 3252 | (unless (string-equal (match-string 0) "No registers.") | 3298 | (unless (string-equal (match-string 0) "No registers.") |
| 3253 | (put-text-property start (match-end 0) | 3299 | (put-text-property start (match-end 0) |
| 3254 | 'face font-lock-variable-name-face) | 3300 | 'face font-lock-variable-name-face) |
| 3255 | (add-text-properties start end | 3301 | (add-text-properties start end |
| 3256 | '(help-echo "mouse-2: edit value" | 3302 | '(help-echo "mouse-2: edit value" |
| 3257 | mouse-face highlight)))) | 3303 | mouse-face highlight)))) |
| 3258 | (forward-line 1)))))) | 3304 | (forward-line 1)))))) |
| @@ -3334,7 +3380,7 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") | |||
| 3334 | help-echo "mouse-2: create watch expression" | 3380 | help-echo "mouse-2: create watch expression" |
| 3335 | local-map ,gdb-locals-watch-map-1) | 3381 | local-map ,gdb-locals-watch-map-1) |
| 3336 | name)) | 3382 | name)) |
| 3337 | (insert | 3383 | (insert |
| 3338 | (concat name "\t" (nth 1 local) | 3384 | (concat name "\t" (nth 1 local) |
| 3339 | "\t" (nth 2 local) "\n"))) | 3385 | "\t" (nth 2 local) "\n"))) |
| 3340 | (set-window-start window start) | 3386 | (set-window-start window start) |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 0e151ce9be2..6afa3f29348 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -33,8 +33,6 @@ | |||
| 33 | 33 | ||
| 34 | (require 'compile) | 34 | (require 'compile) |
| 35 | 35 | ||
| 36 | (defvar font-lock-lines-before) | ||
| 37 | |||
| 38 | 36 | ||
| 39 | (defgroup grep nil | 37 | (defgroup grep nil |
| 40 | "Run compiler as inferior of Emacs, parse error messages." | 38 | "Run compiler as inferior of Emacs, parse error messages." |
| @@ -536,10 +534,7 @@ temporarily highlight in visited source lines." | |||
| 536 | grep-regexp-alist) | 534 | grep-regexp-alist) |
| 537 | (set (make-local-variable 'compilation-process-setup-function) | 535 | (set (make-local-variable 'compilation-process-setup-function) |
| 538 | 'grep-process-setup) | 536 | 'grep-process-setup) |
| 539 | (set (make-local-variable 'compilation-disable-input) t) | 537 | (set (make-local-variable 'compilation-disable-input) t)) |
| 540 | ;; Set `font-lock-lines-before' to 0 to not refontify the previous | ||
| 541 | ;; line where grep markers may be already removed. | ||
| 542 | (set (make-local-variable 'font-lock-lines-before) 0)) | ||
| 543 | 538 | ||
| 544 | ;;;###autoload | 539 | ;;;###autoload |
| 545 | (defun grep-find (command-args) | 540 | (defun grep-find (command-args) |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index f98ee3540d8..7fa5a0b6dcc 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -740,14 +740,18 @@ To run GDB in text command mode, set `gud-gdb-command-name' to | |||
| 740 | 740 | ||
| 741 | (defvar gud-comint-buffer nil) | 741 | (defvar gud-comint-buffer nil) |
| 742 | 742 | ||
| 743 | (defun gud-gdb-complete-command () | 743 | (defun gud-gdb-complete-command (&optional command a b) |
| 744 | "Perform completion on the GDB command preceding point. | 744 | "Perform completion on the GDB command preceding point. |
| 745 | This is implemented using the GDB `complete' command which isn't | 745 | This is implemented using the GDB `complete' command which isn't |
| 746 | available with older versions of GDB." | 746 | available with older versions of GDB." |
| 747 | (interactive) | 747 | (interactive) |
| 748 | (let* ((end (point)) | 748 | (if command |
| 749 | (command (buffer-substring (comint-line-beginning-position) end)) | 749 | ;; Used by gud-watch in mini-buffer. |
| 750 | (command-word | 750 | (setq command (concat "p " command)) |
| 751 | ;; Used in GUD buffer. | ||
| 752 | (let ((end (point))) | ||
| 753 | (setq command (buffer-substring (comint-line-beginning-position) end)))) | ||
| 754 | (let* ((command-word | ||
| 751 | ;; Find the word break. This match will always succeed. | 755 | ;; Find the word break. This match will always succeed. |
| 752 | (and (string-match "\\(\\`\\| \\)\\([^ ]*\\)\\'" command) | 756 | (and (string-match "\\(\\`\\| \\)\\([^ ]*\\)\\'" command) |
| 753 | (substring command (match-beginning 2)))) | 757 | (substring command (match-beginning 2)))) |
| @@ -866,13 +870,14 @@ It is passed through FILTER before we look at it." | |||
| 866 | 870 | ||
| 867 | (defun gud-gdb-run-command-fetch-lines (command buffer &optional skip) | 871 | (defun gud-gdb-run-command-fetch-lines (command buffer &optional skip) |
| 868 | "Run COMMAND, and return the list of lines it outputs. | 872 | "Run COMMAND, and return the list of lines it outputs. |
| 869 | BUFFER is the GUD buffer in which to run the command. | 873 | BUFFER is the current buffer which may be the GUD buffer in which to run. |
| 870 | SKIP is the number of chars to skip on each lines, it defaults to 0." | 874 | SKIP is the number of chars to skip on each lines, it defaults to 0." |
| 871 | (with-current-buffer buffer | 875 | (with-current-buffer gud-comint-buffer |
| 872 | (if (save-excursion | 876 | (if (and (eq gud-comint-buffer buffer) |
| 873 | (goto-char (point-max)) | 877 | (save-excursion |
| 874 | (forward-line 0) | 878 | (goto-char (point-max)) |
| 875 | (not (looking-at comint-prompt-regexp))) | 879 | (forward-line 0) |
| 880 | (not (looking-at comint-prompt-regexp)))) | ||
| 876 | nil | 881 | nil |
| 877 | ;; Much of this copied from GDB complete, but I'm grabbing the stack | 882 | ;; Much of this copied from GDB complete, but I'm grabbing the stack |
| 878 | ;; frame instead. | 883 | ;; frame instead. |
| @@ -881,12 +886,13 @@ SKIP is the number of chars to skip on each lines, it defaults to 0." | |||
| 881 | (gud-gdb-fetch-lines-string nil) | 886 | (gud-gdb-fetch-lines-string nil) |
| 882 | (gud-gdb-fetch-lines-break (or skip 0)) | 887 | (gud-gdb-fetch-lines-break (or skip 0)) |
| 883 | (gud-marker-filter | 888 | (gud-marker-filter |
| 884 | `(lambda (string) (gud-gdb-fetch-lines-filter string ',gud-marker-filter)))) | 889 | `(lambda (string) |
| 890 | (gud-gdb-fetch-lines-filter string ',gud-marker-filter)))) | ||
| 885 | ;; Issue the command to GDB. | 891 | ;; Issue the command to GDB. |
| 886 | (gud-basic-call command) | 892 | (gud-basic-call command) |
| 887 | ;; Slurp the output. | 893 | ;; Slurp the output. |
| 888 | (while gud-gdb-fetch-lines-in-progress | 894 | (while gud-gdb-fetch-lines-in-progress |
| 889 | (accept-process-output (get-buffer-process buffer))) | 895 | (accept-process-output (get-buffer-process gud-comint-buffer))) |
| 890 | (nreverse gud-gdb-fetched-lines))))) | 896 | (nreverse gud-gdb-fetched-lines))))) |
| 891 | 897 | ||
| 892 | 898 | ||
| @@ -3270,11 +3276,10 @@ Treats actions as defuns." | |||
| 3270 | (remove-hook 'tooltip-hook 'gud-tooltip-tips) | 3276 | (remove-hook 'tooltip-hook 'gud-tooltip-tips) |
| 3271 | (define-key global-map [mouse-movement] 'ignore))) | 3277 | (define-key global-map [mouse-movement] 'ignore))) |
| 3272 | (gud-tooltip-activate-mouse-motions-if-enabled) | 3278 | (gud-tooltip-activate-mouse-motions-if-enabled) |
| 3273 | (if (and | 3279 | (if (and gud-comint-buffer |
| 3274 | gud-comint-buffer | 3280 | (buffer-name gud-comint-buffer); gud-comint-buffer might be killed |
| 3275 | (buffer-name gud-comint-buffer); gud-comint-buffer might be killed | 3281 | (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 3276 | (with-current-buffer gud-comint-buffer | 3282 | '(gdbmi gdba))) |
| 3277 | (memq gud-minor-mode '(gdbmi gdba)))) | ||
| 3278 | (if gud-tooltip-mode | 3283 | (if gud-tooltip-mode |
| 3279 | (progn | 3284 | (progn |
| 3280 | (dolist (buffer (buffer-list)) | 3285 | (dolist (buffer (buffer-list)) |
diff --git a/lisp/simple.el b/lisp/simple.el index 9b232dee4cc..812c2d1fa2e 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -3188,6 +3188,9 @@ With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument | |||
| 3188 | \\[universal-argument] \\[set-mark-command], unconditionally | 3188 | \\[universal-argument] \\[set-mark-command], unconditionally |
| 3189 | set mark where point is. | 3189 | set mark where point is. |
| 3190 | 3190 | ||
| 3191 | Setting the mark also sets the \"region\", which is the closest | ||
| 3192 | equivalent in Emacs to what some editors call the \"selection\". | ||
| 3193 | |||
| 3191 | Novice Emacs Lisp programmers often try to use the mark for the wrong | 3194 | Novice Emacs Lisp programmers often try to use the mark for the wrong |
| 3192 | purposes. See the documentation of `set-mark' for more information." | 3195 | purposes. See the documentation of `set-mark' for more information." |
| 3193 | (interactive "P") | 3196 | (interactive "P") |
diff --git a/lisp/sort.el b/lisp/sort.el index 5183bf65afa..c3d135f4c66 100644 --- a/lisp/sort.el +++ b/lisp/sort.el | |||
| @@ -121,6 +121,9 @@ it defaults to `<', otherwise it defaults to `string<'." | |||
| 121 | (defun sort-build-lists (nextrecfun endrecfun startkeyfun endkeyfun) | 121 | (defun sort-build-lists (nextrecfun endrecfun startkeyfun endkeyfun) |
| 122 | (let ((sort-lists ()) | 122 | (let ((sort-lists ()) |
| 123 | (start-rec nil) | 123 | (start-rec nil) |
| 124 | ;; To avoid such functins as `end-of-line' being affected by | ||
| 125 | ;; fields. | ||
| 126 | (inhibit-field-text-motion t) | ||
| 124 | done key) | 127 | done key) |
| 125 | ;; Loop over sort records. | 128 | ;; Loop over sort records. |
| 126 | ;(goto-char (point-min)) -- it is the caller's responsibility to | 129 | ;(goto-char (point-min)) -- it is the caller's responsibility to |
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 1b81ef362d2..3987ad66f6a 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el | |||
| @@ -1198,11 +1198,15 @@ See the documentation of `create-fontset-from-fontset-spec for the format.") | |||
| 1198 | (set-fontset-font nil (make-char 'japanese-jisx0208-1978) '("*" . "JISX0208-SJIS")) | 1198 | (set-fontset-font nil (make-char 'japanese-jisx0208-1978) '("*" . "JISX0208-SJIS")) |
| 1199 | 1199 | ||
| 1200 | (defun mouse-set-font (&rest fonts) | 1200 | (defun mouse-set-font (&rest fonts) |
| 1201 | "Select a font. | 1201 | "Select an Emacs font from a list of known good fonts and fontsets. |
| 1202 | |||
| 1202 | If `w32-use-w32-font-dialog' is non-nil (the default), use the Windows | 1203 | If `w32-use-w32-font-dialog' is non-nil (the default), use the Windows |
| 1203 | font dialog to get the matching FONTS. Otherwise use a pop-up menu | 1204 | font dialog to display the list of possible fonts. Otherwise use a |
| 1204 | \(like Emacs on other platforms) initialized with the fonts in | 1205 | pop-up menu (like Emacs does on other platforms) initialized with |
| 1205 | `w32-fixed-font-alist'." | 1206 | the fonts in `w32-fixed-font-alist'. |
| 1207 | If `w32-list-proportional-fonts' is non-nil, add proportional fonts | ||
| 1208 | to the list in the font selection dialog (the fonts listed by the | ||
| 1209 | pop-up menu are unaffected by `w32-list-proportional-fonts')." | ||
| 1206 | (interactive | 1210 | (interactive |
| 1207 | (if w32-use-w32-font-dialog | 1211 | (if w32-use-w32-font-dialog |
| 1208 | (let ((chosen-font (w32-select-font (selected-frame) | 1212 | (let ((chosen-font (w32-select-font (selected-frame) |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index f1e055594b7..daca0502454 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -88,6 +88,7 @@ If this is a function, call it to generate the initial field text." | |||
| 88 | (string :tag "Initial text") | 88 | (string :tag "Initial text") |
| 89 | (function :tag "Initialize Function" :value fun) | 89 | (function :tag "Initialize Function" :value fun) |
| 90 | (other :tag "Default" t))) | 90 | (other :tag "Default" t))) |
| 91 | (put 'bibtex-include-OPTkey 'risky-local-variable t) | ||
| 91 | 92 | ||
| 92 | (defcustom bibtex-user-optional-fields | 93 | (defcustom bibtex-user-optional-fields |
| 93 | '(("annote" "Personal annotation (ignored)")) | 94 | '(("annote" "Personal annotation (ignored)")) |
| @@ -437,6 +438,7 @@ field or a function, which is called to determine the initial content | |||
| 437 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the | 438 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the |
| 438 | field is an alternative. ALTERNATIVE-FLAG may be t only in the | 439 | field is an alternative. ALTERNATIVE-FLAG may be t only in the |
| 439 | REQUIRED or CROSSREF-REQUIRED lists.") | 440 | REQUIRED or CROSSREF-REQUIRED lists.") |
| 441 | (put 'bibtex-entry-field-alist 'risky-local-variable t) | ||
| 440 | 442 | ||
| 441 | (defcustom bibtex-comment-start "@Comment" | 443 | (defcustom bibtex-comment-start "@Comment" |
| 442 | "String starting a BibTeX comment." | 444 | "String starting a BibTeX comment." |
| @@ -595,7 +597,7 @@ See `bibtex-generate-autokey' for details." | |||
| 595 | :type '(repeat (cons (regexp :tag "Old") | 597 | :type '(repeat (cons (regexp :tag "Old") |
| 596 | (string :tag "New")))) | 598 | (string :tag "New")))) |
| 597 | 599 | ||
| 598 | (defcustom bibtex-autokey-name-case-convert 'downcase | 600 | (defcustom bibtex-autokey-name-case-convert-function 'downcase |
| 599 | "Function called for each name to perform case conversion. | 601 | "Function called for each name to perform case conversion. |
| 600 | See `bibtex-generate-autokey' for details." | 602 | See `bibtex-generate-autokey' for details." |
| 601 | :group 'bibtex-autokey | 603 | :group 'bibtex-autokey |
| @@ -604,6 +606,8 @@ See `bibtex-generate-autokey' for details." | |||
| 604 | (const :tag "Capitalize" capitalize) | 606 | (const :tag "Capitalize" capitalize) |
| 605 | (const :tag "Upcase" upcase) | 607 | (const :tag "Upcase" upcase) |
| 606 | (function :tag "Conversion function"))) | 608 | (function :tag "Conversion function"))) |
| 609 | (defvaralias 'bibtex-autokey-name-case-convert | ||
| 610 | 'bibtex-autokey-name-case-convert-function) | ||
| 607 | 611 | ||
| 608 | (defcustom bibtex-autokey-name-length 'infty | 612 | (defcustom bibtex-autokey-name-length 'infty |
| 609 | "Number of characters from name to incorporate into key. | 613 | "Number of characters from name to incorporate into key. |
| @@ -666,7 +670,7 @@ See `bibtex-generate-autokey' for details." | |||
| 666 | :group 'bibtex-autokey | 670 | :group 'bibtex-autokey |
| 667 | :type '(repeat regexp)) | 671 | :type '(repeat regexp)) |
| 668 | 672 | ||
| 669 | (defcustom bibtex-autokey-titleword-case-convert 'downcase | 673 | (defcustom bibtex-autokey-titleword-case-convert-function 'downcase |
| 670 | "Function called for each titleword to perform case conversion. | 674 | "Function called for each titleword to perform case conversion. |
| 671 | See `bibtex-generate-autokey' for details." | 675 | See `bibtex-generate-autokey' for details." |
| 672 | :group 'bibtex-autokey | 676 | :group 'bibtex-autokey |
| @@ -675,6 +679,8 @@ See `bibtex-generate-autokey' for details." | |||
| 675 | (const :tag "Capitalize" capitalize) | 679 | (const :tag "Capitalize" capitalize) |
| 676 | (const :tag "Upcase" upcase) | 680 | (const :tag "Upcase" upcase) |
| 677 | (function :tag "Conversion function"))) | 681 | (function :tag "Conversion function"))) |
| 682 | (defvaralias 'bibtex-autokey-titleword-case-convert | ||
| 683 | 'bibtex-autokey-titleword-case-convert-function) | ||
| 678 | 684 | ||
| 679 | (defcustom bibtex-autokey-titleword-abbrevs nil | 685 | (defcustom bibtex-autokey-titleword-abbrevs nil |
| 680 | "Determines exceptions to the usual abbreviation mechanism. | 686 | "Determines exceptions to the usual abbreviation mechanism. |
| @@ -847,6 +853,7 @@ The following is a complex example, see http://link.aps.org/linkfaq.html. | |||
| 847 | (choice (string :tag "Replacement") | 853 | (choice (string :tag "Replacement") |
| 848 | (integer :tag "Sub-match") | 854 | (integer :tag "Sub-match") |
| 849 | (function :tag "Filter")))))))) | 855 | (function :tag "Filter")))))))) |
| 856 | (put 'bibtex-generate-url-list 'risky-local-variable t) | ||
| 850 | 857 | ||
| 851 | (defcustom bibtex-expand-strings nil | 858 | (defcustom bibtex-expand-strings nil |
| 852 | "If non-nil, expand strings when extracting the content of a BibTeX field." | 859 | "If non-nil, expand strings when extracting the content of a BibTeX field." |
| @@ -1164,7 +1171,7 @@ The CDRs of the elements are t for header keys and nil for crossref keys.") | |||
| 1164 | (,(concat "^[ \t]*\\(" bibtex-field-name "\\)[ \t]*=") | 1171 | (,(concat "^[ \t]*\\(" bibtex-field-name "\\)[ \t]*=") |
| 1165 | 1 font-lock-variable-name-face) | 1172 | 1 font-lock-variable-name-face) |
| 1166 | ;; url | 1173 | ;; url |
| 1167 | bibtex-font-lock-url bibtex-font-lock-crossref) | 1174 | (bibtex-font-lock-url) (bibtex-font-lock-crossref)) |
| 1168 | "*Default expressions to highlight in BibTeX mode.") | 1175 | "*Default expressions to highlight in BibTeX mode.") |
| 1169 | 1176 | ||
| 1170 | (defvar bibtex-font-lock-url-regexp | 1177 | (defvar bibtex-font-lock-url-regexp |
| @@ -2085,7 +2092,7 @@ and `bibtex-autokey-names-stretch'." | |||
| 2085 | ;; --> take the last token | 2092 | ;; --> take the last token |
| 2086 | (match-string 1 fullname)) | 2093 | (match-string 1 fullname)) |
| 2087 | (t (error "Name `%s' is incorrectly formed" fullname))))) | 2094 | (t (error "Name `%s' is incorrectly formed" fullname))))) |
| 2088 | (funcall bibtex-autokey-name-case-convert | 2095 | (funcall bibtex-autokey-name-case-convert-function |
| 2089 | (bibtex-autokey-abbrev name bibtex-autokey-name-length)))) | 2096 | (bibtex-autokey-abbrev name bibtex-autokey-name-length)))) |
| 2090 | 2097 | ||
| 2091 | (defun bibtex-autokey-get-year () | 2098 | (defun bibtex-autokey-get-year () |
| @@ -2147,7 +2154,7 @@ and `bibtex-autokey-titleword-length'." | |||
| 2147 | (setq alist (cdr alist))) | 2154 | (setq alist (cdr alist))) |
| 2148 | (if alist | 2155 | (if alist |
| 2149 | (cdar alist) | 2156 | (cdar alist) |
| 2150 | (funcall bibtex-autokey-titleword-case-convert | 2157 | (funcall bibtex-autokey-titleword-case-convert-function |
| 2151 | (bibtex-autokey-abbrev titleword bibtex-autokey-titleword-length))))) | 2158 | (bibtex-autokey-abbrev titleword bibtex-autokey-titleword-length))))) |
| 2152 | 2159 | ||
| 2153 | (defun bibtex-generate-autokey () | 2160 | (defun bibtex-generate-autokey () |
| @@ -2167,7 +2174,7 @@ The name part: | |||
| 2167 | take at least `bibtex-autokey-name-length' characters (truncate only | 2174 | take at least `bibtex-autokey-name-length' characters (truncate only |
| 2168 | after a consonant or at a word end). | 2175 | after a consonant or at a word end). |
| 2169 | 5. Convert all last names using the function | 2176 | 5. Convert all last names using the function |
| 2170 | `bibtex-autokey-name-case-convert'. | 2177 | `bibtex-autokey-name-case-convert-function'. |
| 2171 | 6. Build the name part of the key by concatenating all abbreviated last | 2178 | 6. Build the name part of the key by concatenating all abbreviated last |
| 2172 | names with the string `bibtex-autokey-name-separator' between any two. | 2179 | names with the string `bibtex-autokey-name-separator' between any two. |
| 2173 | If there are more names in the name field than names used in the name | 2180 | If there are more names in the name field than names used in the name |
| @@ -2199,7 +2206,7 @@ The title part | |||
| 2199 | `bibtex-autokey-titleword-length' characters (truncate only after | 2206 | `bibtex-autokey-titleword-length' characters (truncate only after |
| 2200 | a consonant or at a word end). | 2207 | a consonant or at a word end). |
| 2201 | 5. Convert all title words using the function | 2208 | 5. Convert all title words using the function |
| 2202 | `bibtex-autokey-titleword-case-convert'. | 2209 | `bibtex-autokey-titleword-case-convert-function'. |
| 2203 | 6. Build the title part by concatenating all abbreviated title words with | 2210 | 6. Build the title part by concatenating all abbreviated title words with |
| 2204 | the string `bibtex-autokey-titleword-separator' between any two. | 2211 | the string `bibtex-autokey-titleword-separator' between any two. |
| 2205 | 2212 | ||
| @@ -2531,7 +2538,7 @@ Use `bibtex-summary-function' to generate summary." | |||
| 2531 | Used as default value of `bibtex-summary-function'." | 2538 | Used as default value of `bibtex-summary-function'." |
| 2532 | ;; It would be neat to customize this function. How? | 2539 | ;; It would be neat to customize this function. How? |
| 2533 | (if (looking-at bibtex-entry-maybe-empty-head) | 2540 | (if (looking-at bibtex-entry-maybe-empty-head) |
| 2534 | (let* ((bibtex-autokey-name-case-convert 'identity) | 2541 | (let* ((bibtex-autokey-name-case-convert-function 'identity) |
| 2535 | (bibtex-autokey-name-length 'infty) | 2542 | (bibtex-autokey-name-length 'infty) |
| 2536 | (bibtex-autokey-names 1) | 2543 | (bibtex-autokey-names 1) |
| 2537 | (bibtex-autokey-names-stretch 0) | 2544 | (bibtex-autokey-names-stretch 0) |
| @@ -2542,7 +2549,7 @@ Used as default value of `bibtex-summary-function'." | |||
| 2542 | (year (bibtex-autokey-get-year)) | 2549 | (year (bibtex-autokey-get-year)) |
| 2543 | (bibtex-autokey-titlewords 5) | 2550 | (bibtex-autokey-titlewords 5) |
| 2544 | (bibtex-autokey-titlewords-stretch 2) | 2551 | (bibtex-autokey-titlewords-stretch 2) |
| 2545 | (bibtex-autokey-titleword-case-convert 'identity) | 2552 | (bibtex-autokey-titleword-case-convert-function 'identity) |
| 2546 | (bibtex-autokey-titleword-length 5) | 2553 | (bibtex-autokey-titleword-length 5) |
| 2547 | (bibtex-autokey-titleword-separator " ") | 2554 | (bibtex-autokey-titleword-separator " ") |
| 2548 | (title (bibtex-autokey-get-title)) | 2555 | (title (bibtex-autokey-get-title)) |
| @@ -2785,7 +2792,6 @@ if that value is non-nil. | |||
| 2785 | (list (list nil bibtex-entry-head bibtex-key-in-head)) | 2792 | (list (list nil bibtex-entry-head bibtex-key-in-head)) |
| 2786 | imenu-case-fold-search t) | 2793 | imenu-case-fold-search t) |
| 2787 | (make-local-variable 'choose-completion-string-functions) | 2794 | (make-local-variable 'choose-completion-string-functions) |
| 2788 | (make-local-variable 'completion-ignore-case) | ||
| 2789 | ;; XEmacs needs easy-menu-add, Emacs does not care | 2795 | ;; XEmacs needs easy-menu-add, Emacs does not care |
| 2790 | (easy-menu-add bibtex-edit-menu) | 2796 | (easy-menu-add bibtex-edit-menu) |
| 2791 | (easy-menu-add bibtex-entry-menu) | 2797 | (easy-menu-add bibtex-entry-menu) |
| @@ -4155,9 +4161,9 @@ An error is signaled if point is outside key or BibTeX field." | |||
| 4155 | 4161 | ||
| 4156 | (cond ((eq compl 'key) | 4162 | (cond ((eq compl 'key) |
| 4157 | ;; key completion: no cleanup needed | 4163 | ;; key completion: no cleanup needed |
| 4158 | (setq choose-completion-string-functions nil | 4164 | (setq choose-completion-string-functions nil) |
| 4159 | completion-ignore-case nil) | 4165 | (let (completion-ignore-case) |
| 4160 | (bibtex-complete-internal (bibtex-global-key-alist))) | 4166 | (bibtex-complete-internal (bibtex-global-key-alist)))) |
| 4161 | 4167 | ||
| 4162 | ((eq compl 'crossref-key) | 4168 | ((eq compl 'crossref-key) |
| 4163 | ;; crossref key completion | 4169 | ;; crossref key completion |
| @@ -4167,40 +4173,35 @@ An error is signaled if point is outside key or BibTeX field." | |||
| 4167 | ;; non-nil. Therefore, `choose-completion-string-functions' is | 4173 | ;; non-nil. Therefore, `choose-completion-string-functions' is |
| 4168 | ;; always set (either to non-nil or nil) when a new completion | 4174 | ;; always set (either to non-nil or nil) when a new completion |
| 4169 | ;; is requested. | 4175 | ;; is requested. |
| 4170 | ;; Also, `choose-completion-delete-max-match' requires | 4176 | (let (completion-ignore-case) |
| 4171 | ;; that we set `completion-ignore-case' (i.e., binding via `let' | 4177 | (setq choose-completion-string-functions |
| 4172 | ;; is not sufficient). | 4178 | (lambda (choice buffer mini-p base-size) |
| 4173 | (setq completion-ignore-case nil | 4179 | (setq choose-completion-string-functions nil) |
| 4174 | choose-completion-string-functions | 4180 | (choose-completion-string choice buffer base-size) |
| 4175 | (lambda (choice buffer mini-p base-size) | 4181 | (bibtex-complete-crossref-cleanup choice) |
| 4176 | (setq choose-completion-string-functions nil) | 4182 | t)) ; needed by choose-completion-string-functions |
| 4177 | (choose-completion-string choice buffer base-size) | 4183 | (bibtex-complete-crossref-cleanup |
| 4178 | (bibtex-complete-crossref-cleanup choice) | 4184 | (bibtex-complete-internal (bibtex-global-key-alist))))) |
| 4179 | t)) ; needed by choose-completion-string-functions | ||
| 4180 | |||
| 4181 | (bibtex-complete-crossref-cleanup (bibtex-complete-internal | ||
| 4182 | (bibtex-global-key-alist)))) | ||
| 4183 | 4185 | ||
| 4184 | ((eq compl 'string) | 4186 | ((eq compl 'string) |
| 4185 | ;; string key completion: no cleanup needed | 4187 | ;; string key completion: no cleanup needed |
| 4186 | (setq choose-completion-string-functions nil | 4188 | (setq choose-completion-string-functions nil) |
| 4187 | completion-ignore-case t) | 4189 | (let ((completion-ignore-case t)) |
| 4188 | (bibtex-complete-internal bibtex-strings)) | 4190 | (bibtex-complete-internal bibtex-strings))) |
| 4189 | 4191 | ||
| 4190 | (compl | 4192 | (compl |
| 4191 | ;; string completion | 4193 | ;; string completion |
| 4192 | (setq completion-ignore-case t | 4194 | (let ((completion-ignore-case t)) |
| 4193 | choose-completion-string-functions | 4195 | (setq choose-completion-string-functions |
| 4194 | `(lambda (choice buffer mini-p base-size) | 4196 | `(lambda (choice buffer mini-p base-size) |
| 4195 | (setq choose-completion-string-functions nil) | 4197 | (setq choose-completion-string-functions nil) |
| 4196 | (choose-completion-string choice buffer base-size) | 4198 | (choose-completion-string choice buffer base-size) |
| 4197 | (bibtex-complete-string-cleanup choice ',compl) | 4199 | (bibtex-complete-string-cleanup choice ',compl) |
| 4198 | t)) ; needed by choose-completion-string-functions | 4200 | t)) ; needed by choose-completion-string-functions |
| 4199 | (bibtex-complete-string-cleanup (bibtex-complete-internal compl) | 4201 | (bibtex-complete-string-cleanup (bibtex-complete-internal compl) |
| 4200 | compl)) | 4202 | compl))) |
| 4201 | 4203 | ||
| 4202 | (t (setq choose-completion-string-functions nil | 4204 | (t (setq choose-completion-string-functions nil) |
| 4203 | completion-ignore-case nil) ; default | ||
| 4204 | (error "Point outside key or BibTeX field"))))) | 4205 | (error "Point outside key or BibTeX field"))))) |
| 4205 | 4206 | ||
| 4206 | (defun bibtex-Article () | 4207 | (defun bibtex-Article () |
| @@ -4334,16 +4335,16 @@ The URL is generated using the schemes defined in `bibtex-generate-url-list' | |||
| 4334 | (dolist (step scheme) | 4335 | (dolist (step scheme) |
| 4335 | (setq field (cdr (assoc-string (car step) fields-alist t))) | 4336 | (setq field (cdr (assoc-string (car step) fields-alist t))) |
| 4336 | (if (string-match (nth 1 step) field) | 4337 | (if (string-match (nth 1 step) field) |
| 4337 | (setq field (cond ((functionp (nth 2 step)) | 4338 | (push (cond ((functionp (nth 2 step)) |
| 4338 | (funcall (nth 2 step) field)) | 4339 | (funcall (nth 2 step) field)) |
| 4339 | ((numberp (nth 2 step)) | 4340 | ((numberp (nth 2 step)) |
| 4340 | (match-string (nth 2 step) field)) | 4341 | (match-string (nth 2 step) field)) |
| 4341 | (t | 4342 | (t |
| 4342 | (replace-match (nth 2 step) t nil field)))) | 4343 | (replace-match (nth 2 step) t nil field))) |
| 4344 | obj) | ||
| 4343 | ;; If the scheme is set up correctly, | 4345 | ;; If the scheme is set up correctly, |
| 4344 | ;; we should never reach this point | 4346 | ;; we should never reach this point |
| 4345 | (error "Match failed: %s" field)) | 4347 | (error "Match failed: %s" field))) |
| 4346 | (push field obj)) | ||
| 4347 | (if fmt (apply 'format fmt (nreverse obj)) | 4348 | (if fmt (apply 'format fmt (nreverse obj)) |
| 4348 | (apply 'concat (nreverse obj))))) | 4349 | (apply 'concat (nreverse obj))))) |
| 4349 | (browse-url (message "%s" url)))) | 4350 | (browse-url (message "%s" url)))) |
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 1991a73e8e2..64314c772b2 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -1325,9 +1325,10 @@ The last occurring definition in the buffer will be used.") | |||
| 1325 | ("^%!PS-Adobe-[123].0" . "\n%%EOF\n") | 1325 | ("^%!PS-Adobe-[123].0" . "\n%%EOF\n") |
| 1326 | ("^---* \\(Start of \\)?[Ff]orwarded [Mm]essage" | 1326 | ("^---* \\(Start of \\)?[Ff]orwarded [Mm]essage" |
| 1327 | . "^---* End of [Ff]orwarded [Mm]essage") | 1327 | . "^---* End of [Ff]orwarded [Mm]essage") |
| 1328 | ;; Matches e-mail addresses, file names, http addresses, etc. The `-+' | 1328 | ;; Matches e-mail addresses, file names, http addresses, etc. The |
| 1329 | ;; pattern necessary for performance reasons when `-' part of word syntax. | 1329 | ;; `-+' `_+' patterns are necessary for performance reasons when |
| 1330 | ("\\(--+\\|\\(/\\w\\|\\(\\(\\w\\|[-_]\\)+[.:@]\\)\\)\\(\\w\\|[-_]\\)*\\([.:/@]+\\(\\w\\|[-_~=?&]\\)+\\)+\\)") | 1330 | ;; `-' or `_' part of word syntax. |
| 1331 | ("\\(--+\\|_+\\|\\(/\\w\\|\\(\\(\\w\\|[-_]\\)+[.:@]\\)\\)\\(\\w\\|[-_]\\)*\\([.:/@]+\\(\\w\\|[-_~=?&]\\)+\\)+\\)") | ||
| 1331 | ;; above checks /.\w sequences | 1332 | ;; above checks /.\w sequences |
| 1332 | ;;("\\(--+\\|\\(/\\|\\(\\(\\w\\|[-_]\\)+[.:@]\\)\\)\\(\\w\\|[-_]\\)*\\([.:/@]+\\(\\w\\|[-_~=?&]\\)+\\)+\\)") | 1333 | ;;("\\(--+\\|\\(/\\|\\(\\(\\w\\|[-_]\\)+[.:@]\\)\\)\\(\\w\\|[-_]\\)*\\([.:/@]+\\(\\w\\|[-_~=?&]\\)+\\)+\\)") |
| 1333 | ;; This is a pretty complex regexp. It can be simplified to the following: | 1334 | ;; This is a pretty complex regexp. It can be simplified to the following: |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 3c77560a9cc..ad4744adf15 100644 --- a/lisp/textmodes/org.el +++ b/lisp/textmodes/org.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <dominik at science dot uva dot nl> | 5 | ;; Author: Carsten Dominik <dominik at science dot uva dot nl> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ | 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ |
| 8 | ;; Version: 4.09 | 8 | ;; Version: 4.10 |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -81,6 +81,9 @@ | |||
| 81 | ;; | 81 | ;; |
| 82 | ;; Changes since version 4.00: | 82 | ;; Changes since version 4.00: |
| 83 | ;; --------------------------- | 83 | ;; --------------------------- |
| 84 | ;; Version 4.10 | ||
| 85 | ;; - Bug fixes. | ||
| 86 | ;; | ||
| 84 | ;; Version 4.09 | 87 | ;; Version 4.09 |
| 85 | ;; - Bug fixes. | 88 | ;; - Bug fixes. |
| 86 | ;; - Small improvements to font-lock support. | 89 | ;; - Small improvements to font-lock support. |
| @@ -145,7 +148,7 @@ | |||
| 145 | 148 | ||
| 146 | ;;; Customization variables | 149 | ;;; Customization variables |
| 147 | 150 | ||
| 148 | (defvar org-version "4.09" | 151 | (defvar org-version "4.10" |
| 149 | "The version number of the file org.el.") | 152 | "The version number of the file org.el.") |
| 150 | (defun org-version () | 153 | (defun org-version () |
| 151 | (interactive) | 154 | (interactive) |
| @@ -445,7 +448,7 @@ In the calendar, the date can be selected with mouse-1. However, the | |||
| 445 | minibuffer will also be active, and you can simply enter the date as well. | 448 | minibuffer will also be active, and you can simply enter the date as well. |
| 446 | When nil, only the minibuffer will be available." | 449 | When nil, only the minibuffer will be available." |
| 447 | :group 'org-time | 450 | :group 'org-time |
| 448 | :type 'number) | 451 | :type 'boolean) |
| 449 | 452 | ||
| 450 | (defcustom org-calendar-follow-timestamp-change t | 453 | (defcustom org-calendar-follow-timestamp-change t |
| 451 | "Non-nil means, make the calendar window follow timestamp changes. | 454 | "Non-nil means, make the calendar window follow timestamp changes. |
| @@ -1739,7 +1742,8 @@ Changing this variable requires a restart of Emacs to take effect." | |||
| 1739 | :type 'boolean) | 1742 | :type 'boolean) |
| 1740 | 1743 | ||
| 1741 | (defface org-hide | 1744 | (defface org-hide |
| 1742 | '((((type tty) (class color)) (:foreground "blue" :weight bold)) | 1745 | '( |
| 1746 | (((type tty) (class color)) (:foreground "white")) | ||
| 1743 | (((class color) (background light)) (:foreground "white")) | 1747 | (((class color) (background light)) (:foreground "white")) |
| 1744 | (((class color) (background dark)) (:foreground "black")) | 1748 | (((class color) (background dark)) (:foreground "black")) |
| 1745 | ; (((class color) (background light)) (:foreground "grey90")) | 1749 | ; (((class color) (background light)) (:foreground "grey90")) |
| @@ -2589,6 +2593,7 @@ Optional argument N means, put the headline into the Nth line of the window." | |||
| 2589 | (define-key org-goto-map [(?q)] 'org-goto-quit) | 2593 | (define-key org-goto-map [(?q)] 'org-goto-quit) |
| 2590 | (define-key org-goto-map [(control ?g)] 'org-goto-quit) | 2594 | (define-key org-goto-map [(control ?g)] 'org-goto-quit) |
| 2591 | (define-key org-goto-map "\C-i" 'org-cycle) | 2595 | (define-key org-goto-map "\C-i" 'org-cycle) |
| 2596 | (define-key org-goto-map [(tab)] 'org-cycle) | ||
| 2592 | (define-key org-goto-map [(down)] 'outline-next-visible-heading) | 2597 | (define-key org-goto-map [(down)] 'outline-next-visible-heading) |
| 2593 | (define-key org-goto-map [(up)] 'outline-previous-visible-heading) | 2598 | (define-key org-goto-map [(up)] 'outline-previous-visible-heading) |
| 2594 | (define-key org-goto-map "n" 'outline-next-visible-heading) | 2599 | (define-key org-goto-map "n" 'outline-next-visible-heading) |
| @@ -4001,8 +4006,8 @@ used to insert the time stamp into the buffer to include the time." | |||
| 4001 | month (string-to-number (match-string 3 ans)) | 4006 | month (string-to-number (match-string 3 ans)) |
| 4002 | day (string-to-number (match-string 4 ans))) | 4007 | day (string-to-number (match-string 4 ans))) |
| 4003 | (if (< year 100) (setq year (+ 2000 year))) | 4008 | (if (< year 100) (setq year (+ 2000 year))) |
| 4004 | (setq ans (replace-match (format "%04d-%02d-%02d" year month day) | 4009 | (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day) |
| 4005 | t t ans)))) | 4010 | t nil ans)))) |
| 4006 | (setq tl (parse-time-string ans) | 4011 | (setq tl (parse-time-string ans) |
| 4007 | year (or (nth 5 tl) (string-to-number (format-time-string "%Y"))) | 4012 | year (or (nth 5 tl) (string-to-number (format-time-string "%Y"))) |
| 4008 | month (or (nth 4 tl) (string-to-number (format-time-string "%m"))) | 4013 | month (or (nth 4 tl) (string-to-number (format-time-string "%m"))) |
| @@ -4377,6 +4382,7 @@ The following commands are available: | |||
| 4377 | (list 'org-agenda-mode-hook))) | 4382 | (list 'org-agenda-mode-hook))) |
| 4378 | 4383 | ||
| 4379 | (define-key org-agenda-mode-map "\C-i" 'org-agenda-goto) | 4384 | (define-key org-agenda-mode-map "\C-i" 'org-agenda-goto) |
| 4385 | (define-key org-agenda-mode-map [(tab)] 'org-agenda-goto) | ||
| 4380 | (define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to) | 4386 | (define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to) |
| 4381 | (define-key org-agenda-mode-map " " 'org-agenda-show) | 4387 | (define-key org-agenda-mode-map " " 'org-agenda-show) |
| 4382 | (define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) | 4388 | (define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) |
| @@ -6827,8 +6833,8 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file." | |||
| 6827 | (while (string-match " *\n *" link) | 6833 | (while (string-match " *\n *" link) |
| 6828 | (setq link (replace-match " " t t link))) | 6834 | (setq link (replace-match " " t t link))) |
| 6829 | (if (string-match org-link-regexp link) | 6835 | (if (string-match org-link-regexp link) |
| 6830 | (setq type (match-string 1) | 6836 | (setq type (match-string 1 link) |
| 6831 | path (match-string 2)) | 6837 | path (match-string 2 link)) |
| 6832 | (setq type "thisfile" | 6838 | (setq type "thisfile" |
| 6833 | path link)) | 6839 | path link)) |
| 6834 | (throw 'match t))) | 6840 | (throw 'match t))) |
| @@ -6887,6 +6893,10 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file." | |||
| 6887 | 6893 | ||
| 6888 | (cond | 6894 | (cond |
| 6889 | 6895 | ||
| 6896 | ((member type '("http" "https" "ftp" "mailto" "news")) | ||
| 6897 | ;; give these to some browser | ||
| 6898 | (browse-url (concat type ":" path))) | ||
| 6899 | |||
| 6890 | ((string= type "tags") | 6900 | ((string= type "tags") |
| 6891 | (org-tags-view in-emacs path)) | 6901 | (org-tags-view in-emacs path)) |
| 6892 | ((or (string= type "camel") | 6902 | ((or (string= type "camel") |
| @@ -10801,11 +10811,11 @@ underlined headlines. The default is 3." | |||
| 10801 | 10811 | ||
| 10802 | (defun org-insert-centered (s &optional underline) | 10812 | (defun org-insert-centered (s &optional underline) |
| 10803 | "Insert the string S centered and underline it with character UNDERLINE." | 10813 | "Insert the string S centered and underline it with character UNDERLINE." |
| 10804 | (let ((ind (max (/ (- 80 (length s)) 2) 0))) | 10814 | (let ((ind (max (/ (- 80 (string-width s)) 2) 0))) |
| 10805 | (insert (make-string ind ?\ ) s "\n") | 10815 | (insert (make-string ind ?\ ) s "\n") |
| 10806 | (if underline | 10816 | (if underline |
| 10807 | (insert (make-string ind ?\ ) | 10817 | (insert (make-string ind ?\ ) |
| 10808 | (make-string (length s) underline) | 10818 | (make-string (string-width s) underline) |
| 10809 | "\n")))) | 10819 | "\n")))) |
| 10810 | 10820 | ||
| 10811 | (defun org-ascii-level-start (level title umax) | 10821 | (defun org-ascii-level-start (level title umax) |
| @@ -11915,6 +11925,7 @@ a time), or the day by one (if it does not contain a time)." | |||
| 11915 | 11925 | ||
| 11916 | ;; TAB key with modifiers | 11926 | ;; TAB key with modifiers |
| 11917 | (define-key org-mode-map "\C-i" 'org-cycle) | 11927 | (define-key org-mode-map "\C-i" 'org-cycle) |
| 11928 | (define-key org-mode-map [(tab)] 'org-cycle) | ||
| 11918 | (define-key org-mode-map [(meta tab)] 'org-complete) | 11929 | (define-key org-mode-map [(meta tab)] 'org-complete) |
| 11919 | (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs | 11930 | (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs |
| 11920 | ;; The following line is necessary under Suse GNU/Linux | 11931 | ;; The following line is necessary under Suse GNU/Linux |
| @@ -12925,4 +12936,3 @@ Show the heading too, if it is currently invisible." | |||
| 12925 | 12936 | ||
| 12926 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd | 12937 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd |
| 12927 | ;;; org.el ends here | 12938 | ;;; org.el ends here |
| 12928 | |||