diff options
Diffstat (limited to 'lisp')
50 files changed, 1888 insertions, 1090 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a049da097fd..fd04ddce0f0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,9 +1,339 @@ | |||
| 1 | 2006-01-24 Luc Teirlinck <teirllm@auburn.edu> | ||
| 2 | |||
| 3 | * completion.el: Minor fixes in introductory comment. | ||
| 4 | (completion-def-wrapper): Fix alist. | ||
| 5 | |||
| 6 | 2006-01-25 Nick Roberts <nickrob@snap.net.nz> | ||
| 7 | |||
| 8 | * thumbs.el (thumbs-new-image-size): New function. | ||
| 9 | (thumbs-increment-image-size-element) | ||
| 10 | (thumbs-decrement-image-size-element, thumbs-increment-image-size) | ||
| 11 | (thumbs-decrement-image-size): Delete. | ||
| 12 | (thumbs-resize-image-1): Rename from thumbs-resize-image. Keep old | ||
| 13 | temp files and use to resize. | ||
| 14 | (thumbs-resize-image): Rename from thumbs-resize-image-interactive. | ||
| 15 | Use increment argument to enlarge/shrink. Preserve point. | ||
| 16 | (thumbs-shrink-image): Rename from thumbs-resize-image-size-down. | ||
| 17 | (thumbs-enlarge-image): Rename from thumbs-resize-image-size-up | ||
| 18 | (thumbs-show-thumbs-list): Set thumbs-buffer to current-buffer. | ||
| 19 | (thumbs-mark, thumbs-unmark): Preserve point. | ||
| 20 | (thumbs-modify-image): Keep old temp files and use to modify. | ||
| 21 | Cleanup old temp files at load time. Preserve point. | ||
| 22 | (thumbs-view-image-mode-map): Use new command names. | ||
| 23 | |||
| 24 | 2006-01-24 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 25 | |||
| 26 | * log-view.el (log-view-minor-wrap): First rev is the one at point. | ||
| 27 | |||
| 28 | * calendar/cal-menu.el: Avoid macros from calendar.el so as to break | ||
| 29 | the nastiest part of the cyclic dependency. | ||
| 30 | (cal-menu-update): Use dotimes and calendar-increment-month. | ||
| 31 | |||
| 32 | * calendar/calendar.el: Remove unnecessary leading stars in docstrings. | ||
| 33 | (calendar-week-start-day): Add an :initializer. | ||
| 34 | (calendar-mode-map): Use suppress-keymap, and command remapping. | ||
| 35 | (describe-calendar-mode): Setup xref-stack info for the back button. | ||
| 36 | (calendar-star-date): Insert before delete. | ||
| 37 | (calendar-set-mode-line): Add file-modified info if applicable. | ||
| 38 | (calendar-increment-month): New function. | ||
| 39 | |||
| 40 | 2006-01-24 Tobias C. Rittweiler <tcr@freebits.de> (tiny change) | ||
| 41 | |||
| 42 | * font-lock.el (lisp-font-lock-keywords-2): | ||
| 43 | Recognize "& keywords" only at word boundaries. | ||
| 44 | |||
| 45 | 2006-01-24 Nick Roberts <nickrob@snap.net.nz> | ||
| 46 | |||
| 47 | * thumbs.el (thumbs-extra-images): New variable. Make it buffer-local | ||
| 48 | and permanent-local. | ||
| 49 | (thumbs-max-image-number): New variable. Make it | ||
| 50 | (thumbs-do-thumbs-insertion): Use them | ||
| 51 | (thumbs-per-line): Change default to 4. | ||
| 52 | (thumbs-marked-list): Rename from thumbs-markedL. | ||
| 53 | (thumbs-cleanup-thumbsdir, thumbs-delete-images) | ||
| 54 | (thumbs-rename-images): Use -list instead of L for internal variables. | ||
| 55 | (thumbs-call-convert): Use call-process instead of shell-command. | ||
| 56 | (thumbs-insert-thumb): Add filename as help-echo to each image. | ||
| 57 | (thumbs-show-from-dir): Rename from thumbs-show-all-from-dir. | ||
| 58 | Give dir to thumbs-show-thumbs-list. | ||
| 59 | (thumbs-show-thumbs-list): Set default-directory to that of images. | ||
| 60 | (thumbs-dired-show): Rename from thumbs-dired-show-all. | ||
| 61 | (thumbs-display-thumbs-buffer, thumbs-show-more-images): New functions. | ||
| 62 | (thumbs-mode-map): Bind "+" to thumbs-show-more-images. | ||
| 63 | (thumbs-view-image-mode-map): Bind "^" to thumbs-display-thumbs-buffer. | ||
| 64 | |||
| 65 | 2006-01-23 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 66 | |||
| 67 | * ses.el (ses-read-cell): Provide a default value. | ||
| 68 | |||
| 69 | 2006-01-23 Juanma Barranquero <lekktu@gmail.com> | ||
| 70 | |||
| 71 | * term/w32-win.el (image-library-alist): Add additional names for | ||
| 72 | GIF library. | ||
| 73 | |||
| 74 | 2006-01-23 Arne J,Ax(Brgensen <arne@arnested.dk> | ||
| 75 | |||
| 76 | * international/latexenc.el (latexenc-find-file-coding-system): | ||
| 77 | Add file-regular-p check. | ||
| 78 | |||
| 79 | 2006-01-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 80 | |||
| 81 | * simple.el (clone-buffer): Don't show the new buffer in the same | ||
| 82 | window. | ||
| 83 | |||
| 84 | 2006-01-23 Juri Linkov <juri@jurta.org> | ||
| 85 | |||
| 86 | * faces.el (link, link-visited): New faces based on default values | ||
| 87 | of `info-xref' and `info-xref-visited'. | ||
| 88 | |||
| 89 | * info.el (info-xref): Inherit from `link'. | ||
| 90 | (info-xref-visited): Inherit from `link-visited'. | ||
| 91 | |||
| 92 | * cus-edit.el (custom-buffer-create-internal): Use widget type | ||
| 93 | `custom-manual' instead of `info-link' and don't set properties | ||
| 94 | `button-face' and `mouse-face' explicitly. | ||
| 95 | (custom-browse-group-tag, custom-browse-variable-tag) | ||
| 96 | (custom-browse-face-tag): Inherit from widget class | ||
| 97 | `custom-group-link' instead of `push-button'. | ||
| 98 | (custom-button-unraised): Inherit from `underline' face. | ||
| 99 | (custom-link): Inherit from `link' face. Fix doc and group. | ||
| 100 | (custom-add-parent-links, custom-group-value-create): Don't set | ||
| 101 | properties `button-face' and `mouse-face' explicitly for | ||
| 102 | `custom-group-link' widget. | ||
| 103 | (custom-group-link): Add properties `button-face' and `mouse-face' | ||
| 104 | to widget definition. | ||
| 105 | (custom-field-keymap): New variable. Put `custom-field-keymap' to | ||
| 106 | editable-field's :keymap property. | ||
| 107 | (custom-mode): Fix docstring: substitute keybindings for | ||
| 108 | `widget-forward' and `widget-backward' from `widget-keymap', | ||
| 109 | `widget-complete' from `custom-field-keymap', replace old | ||
| 110 | `Custom-move-and-invoke' with `widget-move-and-invoke'. Untabify. | ||
| 111 | |||
| 112 | * desktop.el (desktop-load-file): Check for `fboundp' before | ||
| 113 | calling `symbol-function'. | ||
| 114 | |||
| 115 | * simple.el (clone-buffer, clone-indirect-buffer) | ||
| 116 | (clone-indirect-buffer-other-window): Use `read-buffer' instead of | ||
| 117 | `read-string'. Fix prompts. | ||
| 118 | |||
| 119 | * play/doctor.el (doctor-mode-map): Rename from `doc-mode-map'. | ||
| 120 | |||
| 121 | 2006-01-23 Nick Roberts <nickrob@snap.net.nz> | ||
| 122 | |||
| 123 | * thumbs.el (thumbs-file-alist): Avoid creating duplicate entries. | ||
| 124 | |||
| 125 | 2006-01-22 Luc Teirlinck <teirllm@auburn.edu> | ||
| 126 | |||
| 127 | * startup.el (inhibit-splash-screen, initial-scratch-message): | ||
| 128 | Doc fixes. | ||
| 129 | |||
| 130 | 2006-01-22 Michael Albinus <michael.albinus@gmx.de> | ||
| 131 | |||
| 132 | Sync with Tramp 2.0.52. | ||
| 133 | |||
| 134 | * net/tramp.el, net/tramp-ftp.el, net/tramp-util.el, | ||
| 135 | net/tramp-vc.el: Add code for unloading Tramp. See comment before | ||
| 136 | `tramp-unload-tramp' for checklist. | ||
| 137 | |||
| 138 | * net/tramp.el: Require `timer-funcs' instead of `timer' if in | ||
| 139 | XEmacs. Contributed by Steve Youngs <steve@sxemacs.org>. | ||
| 140 | (tramp-unload-file-name-handler-alist) | ||
| 141 | (tramp-unload-tramp): New defuns. | ||
| 142 | (tramp-advice-PC-expand-many-files): New defadvice. | ||
| 143 | (tramp-save-PC-expand-many-files, tramp-setup-complete) Defuns | ||
| 144 | removed. | ||
| 145 | (tramp-handle-expand-file-name): Remove double slash. | ||
| 146 | (tramp-handle-file-attributes-with-ls): Return t as 9th attribute. | ||
| 147 | It doesn't matter, because it will be converted later on. | ||
| 148 | (tramp-handle-file-ownership-preserved-p): Rewritten. The old | ||
| 149 | implementation was just heuristic. | ||
| 150 | (tramp-post-connection): Set uid and gid properties. | ||
| 151 | (tramp-convert-file-attributes): Set file's gid change bit. | ||
| 152 | (tramp-get-remote-uid, tramp-get-remote-gid): New defuns. | ||
| 153 | (tramp-handle-expand-file-name): Use "~root" for tilde expansion | ||
| 154 | in case of su(do)? methods. The home directory of the local user | ||
| 155 | will be taken else. | ||
| 156 | (tramp-open-connection-telnet) | ||
| 157 | (tramp-open-connection-rsh, tramp-open-connection-su) | ||
| 158 | (tramp-open-connection-multi): Set PS1 to "$ ". Otherwise, a | ||
| 159 | local shell prompt could hurt. Reported by Romain Francoise | ||
| 160 | <romain@orebokech.com>. | ||
| 161 | (tramp-let-maybe): Add `edebug-form-spec' property. | ||
| 162 | (tramp-handle-expand-file-name): Bind `default-directory' locally | ||
| 163 | to "/" in order to avoid problems with UNC shares or Cygwin | ||
| 164 | mounts. | ||
| 165 | (tramp-md5-function): Fix typo in error message. | ||
| 166 | |||
| 167 | * net/tramp-ftp.el (tramp-ftp-enable-ange-ftp): New defun. | ||
| 168 | |||
| 169 | * net/tramp-util.el (top): Apply `ignore' instead of `identity' | ||
| 170 | for byte-compiler pacification. | ||
| 171 | |||
| 172 | 2006-01-22 Andre Spiegel <spiegel@gnu.org> | ||
| 173 | |||
| 174 | * vc-rcs.el (vc-rcs-state-heuristic): Use file-attributes with | ||
| 175 | ID-FORMAT `string'. This allows us to get rid of | ||
| 176 | `vc-user-login-name UID'. | ||
| 177 | |||
| 178 | * vc-sccs.el (vc-sccs-state-heuristic): Likewise. | ||
| 179 | |||
| 180 | 2006-01-22 John Paul Wallington <jpw@pobox.com> | ||
| 181 | |||
| 182 | * hl-line.el (hl-line-highlight, hl-line-move): Doc fixes. | ||
| 183 | |||
| 184 | 2006-01-21 Martin Rudalics <rudalics@gmx.at> | ||
| 185 | |||
| 186 | * emacs-lisp/find-func.el (find-definition-noselect) | ||
| 187 | (find-variable-noselect): Search variables in C source code too. | ||
| 188 | (find-function-C-source, find-function-noselect, find-function) | ||
| 189 | (find-function-other-frame, find-variable-noselect, find-variable) | ||
| 190 | (find-variable-other-frame, find-variable-at-point): | ||
| 191 | Fix docstrings. | ||
| 192 | |||
| 193 | 2006-01-21 Francesco Potorti` <pot@gnu.org> | ||
| 194 | |||
| 195 | * mail/rmailout.el (rmail-output): Don't use content-type if it is nil. | ||
| 196 | |||
| 197 | 2006-01-21 Agustin Martin <agustin.martin@hispalinux.es> | ||
| 198 | |||
| 199 | * textmodes/flyspell.el (flyspell-emacs-popup, flypell-xemacs-popup): | ||
| 200 | Default to disabling the "Save affix" question. | ||
| 201 | |||
| 202 | 2006-01-21 Marien Zwart <marienz@gentoo.org> (tiny change) | ||
| 203 | |||
| 204 | * progmodes/python.el (python-mode) <eldoc-mode-hook>: Pass nil as | ||
| 205 | the first arg to run-python. | ||
| 206 | |||
| 207 | 2006-01-21 Eli Zaretskii <eliz@gnu.org> | ||
| 208 | |||
| 209 | * startup.el (command-line-1): Handle --no-desktop if desktop.el | ||
| 210 | is not loaded. | ||
| 211 | |||
| 212 | 2006-01-20 Jay Belanger <belanger@truman.edu> | ||
| 213 | |||
| 214 | * calc/calcalg2.el (calc-sum-rec): Fix the sum when the lower | ||
| 215 | limit is 0. | ||
| 216 | |||
| 217 | * calc/calc-arith.el (math-add-symb-fancy): Check the length of | ||
| 218 | the correct variable. | ||
| 219 | |||
| 220 | 2006-01-20 Carsten Dominik <dominik@science.uva.nl> | ||
| 221 | |||
| 222 | * textmodes/org.el (org-open-at-point): Fixed bug with matching a | ||
| 223 | link. Fixed buggy argument sequence in call to `org-view-tags'. | ||
| 224 | (org-compile-prefix-format): Set `org-prefix-has-tag'. | ||
| 225 | (org-prefix-has-tag): New variable. | ||
| 226 | (org-format-agenda-item): Remove tags from headline if | ||
| 227 | appropriate. | ||
| 228 | (org-agenda-remove-tags-when-in-prefix): New option. | ||
| 229 | (org-get-tags-at): New function. | ||
| 230 | |||
| 231 | 2006-01-20 Nick Roberts <nickrob@snap.net.nz> | ||
| 232 | |||
| 233 | * thumbs.el (thumbs-buffer): New variable. Make it buffer local. | ||
| 234 | (thumbs-find-image): Move image name and number from buffer name | ||
| 235 | to mode name. Set thumbs-buffer. Preserve point so that large | ||
| 236 | images remain visible. | ||
| 237 | (thumbs-file-alist): Construct list in thumbs-buffer and reverse | ||
| 238 | order. | ||
| 239 | (thumbs-show-image-num): Get image from thumbs-file-alist. Set | ||
| 240 | mode name. | ||
| 241 | (thumbs-next-image, thumbs-previous-image): Make them work. | ||
| 242 | |||
| 243 | 2006-01-19 Luc Teirlinck <teirllm@auburn.edu> | ||
| 244 | |||
| 245 | * cus-edit.el (custom-buffer-create-internal): State in the text above | ||
| 246 | the whole buffer buttons that they do not operate on hidden items. | ||
| 247 | (custom-face-menu): Use `custom-face-save' instead of | ||
| 248 | `custom-face-save-command'. | ||
| 249 | (custom-face-save-command): Make it an alias for `custom-face-save' | ||
| 250 | and declare it obsolete. | ||
| 251 | (custom-face-save): Doc fix. | ||
| 252 | |||
| 253 | * dired.el (dired-no-confirm): Add quote. | ||
| 254 | (dired-subdir-alist-pre-R): Add quote in | ||
| 255 | `make-variable-buffer-local' form and remove unbalanced parenthesis. | ||
| 256 | |||
| 257 | 2006-01-19 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 258 | |||
| 259 | * textmodes/table.el (table-mode-indicator): Typo in last change. | ||
| 260 | |||
| 261 | 2006-01-19 Richard M. Stallman <rms@gnu.org> | ||
| 262 | |||
| 263 | * outline.el (hide-leaves): Don't call outline-end-of-heading. | ||
| 264 | Fixes bug reported in Nov 2005. | ||
| 265 | |||
| 266 | * isearch.el (isearch-forward): Doc fix. | ||
| 267 | |||
| 268 | * dired.el (dired-move-to-filename-regexp): Define as alias. | ||
| 269 | (dired-no-confirm): Use defcustom. | ||
| 270 | (dired-subdir-alist-pre-R): Put defvar at top level. | ||
| 271 | |||
| 272 | * battery.el (battery-linux-proc-acpi): Handle "last full capacity". | ||
| 273 | |||
| 274 | * textmodes/bibtex.el (bibtex-strings, bibtex-reference-keys): | ||
| 275 | Mark as risky. | ||
| 276 | |||
| 277 | * simple.el (set-mark-command): Doc fix. | ||
| 278 | (clone-indirect-buffer-other-window): | ||
| 279 | Read arg like clone-indirect-buffer. | ||
| 280 | (move-beginning-of-line): Skip invisible newlines. | ||
| 281 | |||
| 282 | 2006-01-19 Masatake YAMATO <jet@gyve.org> | ||
| 283 | |||
| 284 | * progmodes/cpp.el (cpp-edit-load): Make the order of | ||
| 285 | listed conditions in a base C code buffer and its associate | ||
| 286 | CPP Edit buffer the same. | ||
| 287 | |||
| 1 | 2006-01-19 Kenichi Handa <handa@m17n.org> | 288 | 2006-01-19 Kenichi Handa <handa@m17n.org> |
| 2 | 289 | ||
| 3 | * international/mule.el (auto-coding-regexp-alist-lookup): New | 290 | * mail/rmail.el (rmail-enable-mime): Docstring fixed. |
| 4 | function. | 291 | (rmail-mime-feature): Likewise. |
| 292 | (rmail-require-mime-maybe): Use display-warning to show a warning | ||
| 293 | message. | ||
| 294 | |||
| 295 | * international/mule.el (auto-coding-regexp-alist-lookup): New fun. | ||
| 5 | (find-auto-coding): Use auto-coding-regexp-alist-lookup. | 296 | (find-auto-coding): Use auto-coding-regexp-alist-lookup. |
| 6 | 297 | ||
| 298 | 2006-01-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 299 | |||
| 300 | * array.el: Move defvars out of eval-when-compile. | ||
| 301 | (array-make-template): Replace undeclared global var with a local one. | ||
| 302 | (array-mode): Inline initialization functions. | ||
| 303 | (array-init-local-variables, array-init-max-row) | ||
| 304 | (array-init-max-column, array-init-columns-per-line) | ||
| 305 | (array-init-field-width, array-init-rows-numbered) | ||
| 306 | (array-init-line-length, array-init-lines-per-row): Remove. | ||
| 307 | |||
| 308 | * play/doctor.el: Move defvars out of eval-when-compile. Use dolist. | ||
| 309 | (doc-mode-map): Define explicitly. | ||
| 310 | (doctor-txtype): Use mapc. | ||
| 311 | |||
| 312 | * textmodes/table.el: Move defvars out of eval-when-compile. | ||
| 313 | Remove harmful code meant to avoid byte-compiler warnings. | ||
| 314 | (table-fixed-mode-indicator): Remove. Use a more complex mode-line | ||
| 315 | specification that checks table-fixed-width-mode directly. | ||
| 316 | (table-recognize-region, table-recognize-cell): | ||
| 317 | Use restore-buffer-modified-p. | ||
| 318 | (table-fixed-width-mode): Remove code that refreshes | ||
| 319 | table-fixed-mode-indicator. | ||
| 320 | (*table--cell-describe-bindings, *table--cell-describe-mode): | ||
| 321 | Avoid obsolete name print-help-return-message. | ||
| 322 | (table--test-cell-list): Don't use replace-regexp from elisp. | ||
| 323 | (table--point-entered-cell-function, table--point-left-cell-function): | ||
| 324 | Don't set table-fixed-mode-indicator, use force-mode-line-update. | ||
| 325 | |||
| 326 | * textmodes/org.el: Move defvars out of eval-when-compile. Move code | ||
| 327 | that was after the end of file. Use buffer-file-name variable. | ||
| 328 | (org-timestamp-change): Use with-current-buffer. | ||
| 329 | (org-todo-list): Don't unnecessarily define a new buffer-local var. | ||
| 330 | (org-agenda-file-to-end, org-agenda-file-to-front): Remove unused arg | ||
| 331 | `file'. | ||
| 332 | |||
| 333 | * progmodes/fortran.el: Move defvars out of eval-when-compile. | ||
| 334 | (fortran-break-line): Remove unused var `opoint'. | ||
| 335 | (fortran-abbrev-start): Obey help-event-list. | ||
| 336 | |||
| 7 | 2006-01-18 Jesper Harder <harder@phys.au.dk> | 337 | 2006-01-18 Jesper Harder <harder@phys.au.dk> |
| 8 | 338 | ||
| 9 | * mail/smtpmail.el (smtpmail-send-it): Use insert-buffer-substring. | 339 | * mail/smtpmail.el (smtpmail-send-it): Use insert-buffer-substring. |
| @@ -11,25 +341,20 @@ | |||
| 11 | 2006-01-18 Masatake YAMATO <jet@gyve.org> | 341 | 2006-01-18 Masatake YAMATO <jet@gyve.org> |
| 12 | 342 | ||
| 13 | * progmodes/make-mode.el (makefile-imake-mode): New mode | 343 | * progmodes/make-mode.el (makefile-imake-mode): New mode |
| 14 | derived from maiefile-mode. | 344 | derived from makefile-mode. |
| 15 | (makefile-imake-mode-syntax-table): New syntax table | 345 | (makefile-imake-mode-syntax-table): New syntax table |
| 16 | derived from makefile-mode-syntax-table. | 346 | derived from makefile-mode-syntax-table. |
| 17 | (makefile-mode): Write about makefile-imake-mode in | 347 | (makefile-mode): Write about makefile-imake-mode in doc string. |
| 18 | doc string. | ||
| 19 | (makefile-mode-map): Bind "\C-c\C-m\C-i" to makefile-imake-mode. | 348 | (makefile-mode-map): Bind "\C-c\C-m\C-i" to makefile-imake-mode. |
| 20 | (makefile-imake-font-lock-keywords): New font lock keywords. | 349 | (makefile-imake-font-lock-keywords): New font lock keywords. |
| 21 | 350 | ||
| 22 | * files.el (auto-mode-alist): Added Imakefile. | 351 | * files.el (auto-mode-alist): Add Imakefile. |
| 23 | 352 | ||
| 24 | 2006-01-17 Agustin Martin <agustin.martin@hispalinux.es> | 353 | 2006-01-17 Agustin Martin <agustin.martin@hispalinux.es> |
| 25 | 354 | ||
| 26 | * textmodes/flyspell.el (ispell-kill-ispell-hook): Add to the hook when | 355 | * textmodes/flyspell.el (ispell-kill-ispell-hook): Add to the hook when |
| 27 | loading the file rather than when turning on flyspell-mode. | 356 | loading the file rather than when turning on flyspell-mode. |
| 28 | 357 | ||
| 29 | 2006-01-13 Richard M. Stallman <rms@gnu.org> | ||
| 30 | |||
| 31 | * font-lock.el (lisp-font-lock-keywords-1): Minor rearrangement. | ||
| 32 | |||
| 33 | 2006-01-16 Luc Teirlinck <teirllm@auburn.edu> | 358 | 2006-01-16 Luc Teirlinck <teirllm@auburn.edu> |
| 34 | 359 | ||
| 35 | * cus-edit.el (customize-rogue): Minor doc fix. | 360 | * cus-edit.el (customize-rogue): Minor doc fix. |
| @@ -100,9 +425,8 @@ | |||
| 100 | (term-mode): Make variables local here instead of doing it in | 425 | (term-mode): Make variables local here instead of doing it in |
| 101 | `term-emulate-terminal'. | 426 | `term-emulate-terminal'. |
| 102 | (term-emulate-terminal): Delete incorrect optimization for cr+lf. | 427 | (term-emulate-terminal): Delete incorrect optimization for cr+lf. |
| 103 | Scroll reverse needs to take into account the scroll | 428 | Scroll reverse needs to take into account the scroll region. |
| 104 | region. Saving and restoring the cursor should save the color | 429 | Saving and restoring the cursor should save the color attributes too. |
| 105 | attributes too. | ||
| 106 | (term-reset-terminal): Reset the scroll region. | 430 | (term-reset-terminal): Reset the scroll region. |
| 107 | (term-handle-ansi-escape): Cursor up and down should take into | 431 | (term-handle-ansi-escape): Cursor up and down should take into |
| 108 | account the scroll region. | 432 | account the scroll region. |
| @@ -131,6 +455,10 @@ | |||
| 131 | (Custom-reset-saved): Do not ask for confirmation in single option | 455 | (Custom-reset-saved): Do not ask for confirmation in single option |
| 132 | buffers. | 456 | buffers. |
| 133 | 457 | ||
| 458 | 2006-01-13 Richard M. Stallman <rms@gnu.org> | ||
| 459 | |||
| 460 | * font-lock.el (lisp-font-lock-keywords-1): Minor rearrangement. | ||
| 461 | |||
| 134 | 2006-01-13 Romain Francoise <romain@orebokech.com> | 462 | 2006-01-13 Romain Francoise <romain@orebokech.com> |
| 135 | 463 | ||
| 136 | * add-log.el (add-change-log-entry, change-log-merge): | 464 | * add-log.el (add-change-log-entry, change-log-merge): |
| @@ -167,7 +495,7 @@ | |||
| 167 | Use `org-expand-wide-chars'. | 495 | Use `org-expand-wide-chars'. |
| 168 | (org-open-file): Fix bug in program launch. | 496 | (org-open-file): Fix bug in program launch. |
| 169 | (org-get-time-of-day): Fix bug with times before 1am. | 497 | (org-get-time-of-day): Fix bug with times before 1am. |
| 170 | (org-agenda-menu): Addes tags commands. | 498 | (org-agenda-menu): Add tags commands. |
| 171 | 499 | ||
| 172 | 2006-01-13 Agustin Martin <agustin.martin@hispalinux.es> | 500 | 2006-01-13 Agustin Martin <agustin.martin@hispalinux.es> |
| 173 | 501 | ||
| @@ -378,7 +706,7 @@ | |||
| 378 | 706 | ||
| 379 | * emacs-lisp/find-func.el (find-definition-noselect): Fix typo in | 707 | * emacs-lisp/find-func.el (find-definition-noselect): Fix typo in |
| 380 | the doc string: "functoin" => "function". | 708 | the doc string: "functoin" => "function". |
| 381 | ldefs-boot.el: Likewise. | 709 | * ldefs-boot.el: Likewise. |
| 382 | 710 | ||
| 383 | * textmodes/bibtex.el (bibtex-validate-globally): Fix typo in a | 711 | * textmodes/bibtex.el (bibtex-validate-globally): Fix typo in a |
| 384 | message text: "Duplicat" => "Duplicate". | 712 | message text: "Duplicat" => "Duplicate". |
| @@ -691,7 +1019,7 @@ | |||
| 691 | that we set completion-ignore-case (i.e., binding via let is not | 1019 | that we set completion-ignore-case (i.e., binding via let is not |
| 692 | sufficient). | 1020 | sufficient). |
| 693 | (bibtex-complete): Always set completion-ignore-case and | 1021 | (bibtex-complete): Always set completion-ignore-case and |
| 694 | choose-completion-string-functions. The latter is needed because | 1022 | choose-completion-string-functions. The latter is needed because |
| 695 | choose-completion-string-functions keeps its value if we quit the | 1023 | choose-completion-string-functions keeps its value if we quit the |
| 696 | *Completions* buffer without requesting a completion. | 1024 | *Completions* buffer without requesting a completion. |
| 697 | 1025 | ||
| @@ -753,7 +1081,7 @@ | |||
| 753 | (bibtex-beginning-first-field): New functions. | 1081 | (bibtex-beginning-first-field): New functions. |
| 754 | (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. | 1082 | (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. |
| 755 | (bibtex-map-entries): Fix docstring. | 1083 | (bibtex-map-entries): Fix docstring. |
| 756 | (bibtex-flash-head): New arg prompt. Simplify. | 1084 | (bibtex-flash-head): New arg prompt. Simplify. |
| 757 | (bibtex-enclosing-field): Include code of bibtex-inside-field. | 1085 | (bibtex-enclosing-field): Include code of bibtex-inside-field. |
| 758 | (bibtex-insert-kill): Simplify. Always insert text past the | 1086 | (bibtex-insert-kill): Simplify. Always insert text past the |
| 759 | current field or entry. | 1087 | current field or entry. |
| @@ -789,7 +1117,7 @@ | |||
| 789 | * progmodes/gud.el (gud-tooltip-dereference): Rename from | 1117 | * progmodes/gud.el (gud-tooltip-dereference): Rename from |
| 790 | toggle-gud-tooltip-dereference. | 1118 | toggle-gud-tooltip-dereference. |
| 791 | (gud-tooltip-print-command): Move concatenation of "*" to expr to... | 1119 | (gud-tooltip-print-command): Move concatenation of "*" to expr to... |
| 792 | (gud-tooltip-tips): ...here when dereferencing.. | 1120 | (gud-tooltip-tips): ...here when dereferencing. |
| 793 | 1121 | ||
| 794 | 2005-12-28 Bill Wohler <wohler@newt.com> | 1122 | 2005-12-28 Bill Wohler <wohler@newt.com> |
| 795 | 1123 | ||
| @@ -1040,7 +1368,7 @@ | |||
| 1040 | * menu-bar.el (menu-find-file-existing): New function. | 1368 | * menu-bar.el (menu-find-file-existing): New function. |
| 1041 | (menu-bar-file-menu): Use menu-find-file-existing for Open. | 1369 | (menu-bar-file-menu): Use menu-find-file-existing for Open. |
| 1042 | 1370 | ||
| 1043 | * tool-bar.el (tool-bar-setup): open changed to menu-find-file-existing. | 1371 | * tool-bar.el (tool-bar-setup): Open changed to menu-find-file-existing. |
| 1044 | 1372 | ||
| 1045 | 2005-12-22 Stefan Monnier <monnier@iro.umontreal.ca> | 1373 | 2005-12-22 Stefan Monnier <monnier@iro.umontreal.ca> |
| 1046 | 1374 | ||
| @@ -1301,7 +1629,7 @@ | |||
| 1301 | * simple.el (last-buffer): Move here. | 1629 | * simple.el (last-buffer): Move here. |
| 1302 | (get-next-valid-buffer): New function. | 1630 | (get-next-valid-buffer): New function. |
| 1303 | (next-buffer): Use frame-local buffer list, maintain buried buffer list. | 1631 | (next-buffer): Use frame-local buffer list, maintain buried buffer list. |
| 1304 | (prev-buffer): Ditto. Rename to `previous-buffer'. | 1632 | (prev-buffer): Ditto. Rename to `previous-buffer'. |
| 1305 | 1633 | ||
| 1306 | * menu-bar.el (menu-bar-update-buffers): Update uses of `prev-buffer'. | 1634 | * menu-bar.el (menu-bar-update-buffers): Update uses of `prev-buffer'. |
| 1307 | * bindings.el (global-map): Ditto. | 1635 | * bindings.el (global-map): Ditto. |
| @@ -1330,8 +1658,8 @@ | |||
| 1330 | (ispell-buffer-local-dict): | 1658 | (ispell-buffer-local-dict): |
| 1331 | Don't set spell-personal-dictionary after killing process. | 1659 | Don't set spell-personal-dictionary after killing process. |
| 1332 | (ispell-buffer-local-words): Don't clear out ispell-buffer-local-name. | 1660 | (ispell-buffer-local-words): Don't clear out ispell-buffer-local-name. |
| 1333 | (ispell-tex-skip-alists) | 1661 | (ispell-tex-skip-alists, ispell-html-skip-alists) |
| 1334 | (ispell-html-skip-alists, ispell-skip-region-alist): Mark as risky. | 1662 | (ispell-skip-region-alist): Mark as risky. |
| 1335 | 1663 | ||
| 1336 | * net/newsticker.el (newsticker--retrieval-timer-list) | 1664 | * net/newsticker.el (newsticker--retrieval-timer-list) |
| 1337 | (newsticker--display-timer, newsticker-running-p) | 1665 | (newsticker--display-timer, newsticker-running-p) |
| @@ -1570,7 +1898,7 @@ | |||
| 1570 | * progmodes/gud.el (gud-tooltip-modes, gud-tooltip-display): | 1898 | * progmodes/gud.el (gud-tooltip-modes, gud-tooltip-display): |
| 1571 | Add the gud groupname. | 1899 | Add the gud groupname. |
| 1572 | (gud-tooltip-mode): Add the tooltip groupname. | 1900 | (gud-tooltip-mode): Add the tooltip groupname. |
| 1573 | (gud-tooltip-echo-area): Add the gud groupname. Remove tag to | 1901 | (gud-tooltip-echo-area): Add the gud groupname. Remove tag to |
| 1574 | avoid conflict with tooltip-use-echo-area. | 1902 | avoid conflict with tooltip-use-echo-area. |
| 1575 | 1903 | ||
| 1576 | 2005-12-10 Romain Francoise <romain@orebokech.com> | 1904 | 2005-12-10 Romain Francoise <romain@orebokech.com> |
| @@ -1593,7 +1921,7 @@ | |||
| 1593 | 1921 | ||
| 1594 | 2005-12-10 David Koppelman <koppel@ece.lsu.edu> | 1922 | 2005-12-10 David Koppelman <koppel@ece.lsu.edu> |
| 1595 | 1923 | ||
| 1596 | * hi-lock.el: (hi-lock-mode) Renamed from hi-lock-buffer-mode; | 1924 | * hi-lock.el (hi-lock-mode): Rename from hi-lock-buffer-mode; |
| 1597 | react if global-hi-lock-mode seems intended. | 1925 | react if global-hi-lock-mode seems intended. |
| 1598 | (global-hi-lock-mode) Renamed from hi-lock-mode. | 1926 | (global-hi-lock-mode) Renamed from hi-lock-mode. |
| 1599 | (hi-lock-archaic-interface-message-used) | 1927 | (hi-lock-archaic-interface-message-used) |
| @@ -1736,8 +2064,8 @@ | |||
| 1736 | 2064 | ||
| 1737 | 2005-12-08 Kim F. Storm <storm@cua.dk> | 2065 | 2005-12-08 Kim F. Storm <storm@cua.dk> |
| 1738 | 2066 | ||
| 1739 | * emulation/cua-rect.el (cua--rectangle-aux-replace): Fix | 2067 | * emulation/cua-rect.el (cua--rectangle-aux-replace): |
| 1740 | indention of text on right side of replaced rectangle. | 2068 | Fix indention of text on right side of replaced rectangle. |
| 1741 | 2069 | ||
| 1742 | 2005-12-09 Nick Roberts <nickrob@snap.net.nz> | 2070 | 2005-12-09 Nick Roberts <nickrob@snap.net.nz> |
| 1743 | 2071 | ||
| @@ -1773,7 +2101,7 @@ | |||
| 1773 | * progmodes/cc-defs.el: | 2101 | * progmodes/cc-defs.el: |
| 1774 | (i) Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4) | 2102 | (i) Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4) |
| 1775 | 2103 | ||
| 1776 | * progmodes/cc-cmds.el (c-show-syntactic-information): change the | 2104 | * progmodes/cc-cmds.el (c-show-syntactic-information): Change the |
| 1777 | highlighting mechanism so it will work in XEmacs too. | 2105 | highlighting mechanism so it will work in XEmacs too. |
| 1778 | 2106 | ||
| 1779 | * progmodes/cc-defs.el: Insert c-int-to-char. | 2107 | * progmodes/cc-defs.el: Insert c-int-to-char. |
| @@ -1803,8 +2131,8 @@ | |||
| 1803 | 2131 | ||
| 1804 | * progmodes/cc-mode.el: Bind c-subword-mode to C-c C-w. | 2132 | * progmodes/cc-mode.el: Bind c-subword-mode to C-c C-w. |
| 1805 | 2133 | ||
| 1806 | * progmodes/cc-subword.el, cc-cmds.el, cc-mode.el: Rename | 2134 | * progmodes/cc-subword.el, cc-cmds.el, cc-mode.el: |
| 1807 | "c-subword-move-mode" as "c-subword-mode". | 2135 | Rename "c-subword-move-mode" as "c-subword-mode". |
| 1808 | 2136 | ||
| 1809 | * progmodes/cc-mode.el: Added tty suitable bindings for C-c | 2137 | * progmodes/cc-mode.el: Added tty suitable bindings for C-c |
| 1810 | <delete> and C-c C-<delete>. (To the c-hungry- delete functions). | 2138 | <delete> and C-c C-<delete>. (To the c-hungry- delete functions). |
| @@ -1836,8 +2164,8 @@ | |||
| 1836 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 2164 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 1837 | 2165 | ||
| 1838 | * progmodes/cc-fonts.el, cc-vars.el | 2166 | * progmodes/cc-fonts.el, cc-vars.el |
| 1839 | (gtkdoc-font-lock-doc-comments, gtkdoc-font-lock-doc-protection, | 2167 | (gtkdoc-font-lock-doc-comments, gtkdoc-font-lock-doc-protection) |
| 1840 | gtkdoc-font-lock-keywords): GtkDoc patterns contributed by | 2168 | (gtkdoc-font-lock-keywords): GtkDoc patterns contributed by |
| 1841 | Masatake YAMATO. | 2169 | Masatake YAMATO. |
| 1842 | 2170 | ||
| 1843 | (c-doc-comment-style): Made GtkDoc default in C mode. | 2171 | (c-doc-comment-style): Made GtkDoc default in C mode. |
| @@ -1861,7 +2189,7 @@ | |||
| 1861 | c-syntactic-context for calls to "criteria functions", for | 2189 | c-syntactic-context for calls to "criteria functions", for |
| 1862 | consistency with other calls to user functions. | 2190 | consistency with other calls to user functions. |
| 1863 | 2191 | ||
| 1864 | * progmodes/cc-cmds.el (c-indent-command): expunge use of | 2192 | * progmodes/cc-cmds.el (c-indent-command): Expunge use of |
| 1865 | `current-prefix-arg', since this might be the prefix arg to a | 2193 | `current-prefix-arg', since this might be the prefix arg to a |
| 1866 | command which calls c-indent-command as a function. Change the | 2194 | command which calls c-indent-command as a function. Change the |
| 1867 | interactive spec from "p" to "P". | 2195 | interactive spec from "p" to "P". |
| @@ -1880,14 +2208,14 @@ | |||
| 1880 | 2208 | ||
| 1881 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 2209 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 1882 | 2210 | ||
| 1883 | * progmodes/cc-cmds.el (c-mask-paragraph): correct, so that | 2211 | * progmodes/cc-cmds.el (c-mask-paragraph): Correct, so that |
| 1884 | auto-fill doesn't split a c-comment's last word from a hanging | 2212 | auto-fill doesn't split a c-comment's last word from a hanging |
| 1885 | "*/" when a space is typed between them after fill-column. | 2213 | "*/" when a space is typed between them after fill-column. |
| 1886 | 2214 | ||
| 1887 | * progmodes/cc-defs.el: New macro c-delete-and-extract-region. | 2215 | * progmodes/cc-defs.el: New macro c-delete-and-extract-region. |
| 1888 | 2216 | ||
| 1889 | * progmodes/cc-styles.el (c-set-style, | 2217 | * progmodes/cc-styles.el (c-set-style) |
| 1890 | c-setup-paragraph-variables): Abort the command if we're not in a | 2218 | (c-setup-paragraph-variables): Abort the command if we're not in a |
| 1891 | CC Mode buffer. | 2219 | CC Mode buffer. |
| 1892 | 2220 | ||
| 1893 | * progmodes/cc-align.el (c-lineup-C-comments): Correct indentation | 2221 | * progmodes/cc-align.el (c-lineup-C-comments): Correct indentation |
| @@ -1918,25 +2246,25 @@ | |||
| 1918 | 2246 | ||
| 1919 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 2247 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 1920 | 2248 | ||
| 1921 | * progmodes/cc-fonts.el (c-basic-matchers-before, | 2249 | * progmodes/cc-fonts.el (c-basic-matchers-before) |
| 1922 | c-complex-decl-matchers): Fixed the "not-arrow-prefix" regexp used | 2250 | (c-complex-decl-matchers): Fixed the "not-arrow-prefix" regexp used |
| 1923 | in Pike. | 2251 | in Pike. |
| 1924 | 2252 | ||
| 1925 | * progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has | 2253 | * progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has |
| 1926 | digraphs. | 2254 | digraphs. |
| 1927 | 2255 | ||
| 1928 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el | 2256 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el |
| 1929 | (c-cpp-message-directives, c-cpp-include-directives, | 2257 | (c-cpp-message-directives, c-cpp-include-directives) |
| 1930 | c-opt-cpp-macro-define, c-opt-cpp-macro-define-start, | 2258 | (c-opt-cpp-macro-define, c-opt-cpp-macro-define-start) |
| 1931 | c-cpp-expr-directives): Introduced new language constants to | 2259 | (c-cpp-expr-directives): Introduced new language constants to |
| 1932 | control cpp syntax in a cleaner way. | 2260 | control cpp syntax in a cleaner way. |
| 1933 | 2261 | ||
| 1934 | (c-cpp-expr-functions): Renamed from c-cpp-defined-fns. | 2262 | (c-cpp-expr-functions): Renamed from c-cpp-defined-fns. |
| 1935 | 2263 | ||
| 1936 | (c-cpp-matchers, c-forward-to-cpp-define-body): Use them. | 2264 | (c-cpp-matchers, c-forward-to-cpp-define-body): Use them. |
| 1937 | 2265 | ||
| 1938 | * progmodes/cc-langs.el, cc-fonts.el (c-string-escaped-newlines, | 2266 | * progmodes/cc-langs.el, cc-fonts.el (c-string-escaped-newlines) |
| 1939 | c-multiline-string-start-char): New language constants and | 2267 | (c-multiline-string-start-char): New language constants and |
| 1940 | variables to specify how newlines in string literals work. | 2268 | variables to specify how newlines in string literals work. |
| 1941 | 2269 | ||
| 1942 | (c-font-lock-invalid-string): Use them. | 2270 | (c-font-lock-invalid-string): Use them. |
| @@ -1952,15 +2280,15 @@ | |||
| 1952 | * progmodes/cc-engine.el, cc-langs.el | 2280 | * progmodes/cc-engine.el, cc-langs.el |
| 1953 | (c-opt-op-identifier-prefix): New language constant and variable. | 2281 | (c-opt-op-identifier-prefix): New language constant and variable. |
| 1954 | 2282 | ||
| 1955 | (c-just-after-func-arglist-p, c-after-special-operator-id, | 2283 | (c-just-after-func-arglist-p, c-after-special-operator-id) |
| 1956 | c-search-decl-header-end, c-inside-bracelist-p): Use it. | 2284 | (c-search-decl-header-end, c-inside-bracelist-p): Use it. |
| 1957 | 2285 | ||
| 1958 | * progmodes/cc-align.el, cc-engine.el | 2286 | * progmodes/cc-align.el, cc-engine.el |
| 1959 | (c-after-special-operator-id): New helper to handle C++ operator | 2287 | (c-after-special-operator-id): New helper to handle C++ operator |
| 1960 | identifiers. | 2288 | identifiers. |
| 1961 | 2289 | ||
| 1962 | (c-lineup-topmost-intro-cont, c-just-after-func-arglist-p, | 2290 | (c-lineup-topmost-intro-cont, c-just-after-func-arglist-p) |
| 1963 | c-guess-basic-syntax): Handle C++ operator identifiers in | 2291 | (c-guess-basic-syntax): Handle C++ operator identifiers in |
| 1964 | declarations. | 2292 | declarations. |
| 1965 | 2293 | ||
| 1966 | * progmodes/cc-langs.el (c-assignment-operators): Added the | 2294 | * progmodes/cc-langs.el (c-assignment-operators): Added the |
| @@ -2030,7 +2358,7 @@ | |||
| 2030 | (c-point-syntax): Add a check for "virtual semicolons" in AWK | 2358 | (c-point-syntax): Add a check for "virtual semicolons" in AWK |
| 2031 | mode, so that the tentative extra newline doesn't change the | 2359 | mode, so that the tentative extra newline doesn't change the |
| 2032 | syntax of the following brace. | 2360 | syntax of the following brace. |
| 2033 | (c-electric-brace): restructure by extracting the above functions. | 2361 | (c-electric-brace): Restructure by extracting the above functions. |
| 2034 | Tidy up the coding somewhat. | 2362 | Tidy up the coding somewhat. |
| 2035 | (c-electric-semi&comma, c-electric-colon, c-electric-paren): | 2363 | (c-electric-semi&comma, c-electric-colon, c-electric-paren): |
| 2036 | restructure a bit. | 2364 | restructure a bit. |
| @@ -2055,9 +2383,9 @@ | |||
| 2055 | * progmodes/cc-subword.el: New functions and minor mode to handle | 2383 | * progmodes/cc-subword.el: New functions and minor mode to handle |
| 2056 | SillyCapsedStyleIndentifiers, contributed by Masatake YAMATO: | 2384 | SillyCapsedStyleIndentifiers, contributed by Masatake YAMATO: |
| 2057 | 2385 | ||
| 2058 | (c-forward-subword, c-backward-subword, c-mark-subword, | 2386 | (c-forward-subword, c-backward-subword, c-mark-subword) |
| 2059 | c-kill-subword, c-backward-kill-subword, c-transpose-subwords, | 2387 | (c-kill-subword, c-backward-kill-subword, c-transpose-subwords) |
| 2060 | c-capitalize-subword, c-downcase-subword, c-upcase-subword): | 2388 | (c-capitalize-subword, c-downcase-subword, c-upcase-subword): |
| 2061 | Functions corresponding to the standard word handling functions. | 2389 | Functions corresponding to the standard word handling functions. |
| 2062 | 2390 | ||
| 2063 | (c-subword-move-mode): Minor mode that replaces all the standard | 2391 | (c-subword-move-mode): Minor mode that replaces all the standard |
| @@ -2078,7 +2406,7 @@ | |||
| 2078 | 2406 | ||
| 2079 | Introduce an "awk" style, mainly for auto-newline and clean-ups. | 2407 | Introduce an "awk" style, mainly for auto-newline and clean-ups. |
| 2080 | 2408 | ||
| 2081 | * progmodes/cc-align.el: new function c-snug-1line-defun-close | 2409 | * progmodes/cc-align.el: New function c-snug-1line-defun-close |
| 2082 | 2410 | ||
| 2083 | * progmodes/cc-cmds.el: In c-electric-brace, add code for new | 2411 | * progmodes/cc-cmds.el: In c-electric-brace, add code for new |
| 2084 | clean-up one-liner-defun. | 2412 | clean-up one-liner-defun. |
| @@ -2101,8 +2429,8 @@ | |||
| 2101 | * progmodes/cc-defs.el (c-tnt-chng-record-state): Don't signal an | 2429 | * progmodes/cc-defs.el (c-tnt-chng-record-state): Don't signal an |
| 2102 | error if the mark isn't set. | 2430 | error if the mark isn't set. |
| 2103 | 2431 | ||
| 2104 | * progmodes/cc-engine.el (c-guess-continued-construct, | 2432 | * progmodes/cc-engine.el (c-guess-continued-construct) |
| 2105 | c-guess-basic-syntax): Use `c-forward-decl-or-cast-1' to more | 2433 | (c-guess-basic-syntax): Use `c-forward-decl-or-cast-1' to more |
| 2106 | accurately detect functions inside functions. | 2434 | accurately detect functions inside functions. |
| 2107 | 2435 | ||
| 2108 | * progmodes/cc-engine.el (c-at-expression-start-p): New function | 2436 | * progmodes/cc-engine.el (c-at-expression-start-p): New function |
| @@ -2123,8 +2451,8 @@ | |||
| 2123 | (c-forward-objc-directive): New function to move over any ObjC | 2451 | (c-forward-objc-directive): New function to move over any ObjC |
| 2124 | directive. | 2452 | directive. |
| 2125 | 2453 | ||
| 2126 | (c-just-after-func-arglist-p, c-guess-basic-syntax, | 2454 | (c-just-after-func-arglist-p, c-guess-basic-syntax) |
| 2127 | c-basic-matchers-before): Use it. | 2455 | (c-basic-matchers-before): Use it. |
| 2128 | 2456 | ||
| 2129 | (c-font-lock-objc-iip-decl): Removed. | 2457 | (c-font-lock-objc-iip-decl): Removed. |
| 2130 | 2458 | ||
| @@ -2134,8 +2462,8 @@ | |||
| 2134 | * progmodes/cc-styles.el (c-style-alist): Fixed several | 2462 | * progmodes/cc-styles.el (c-style-alist): Fixed several |
| 2135 | inconsistencies in the Whitesmith style. | 2463 | inconsistencies in the Whitesmith style. |
| 2136 | 2464 | ||
| 2137 | * progmodes/cc-align.el (c-lineup-after-whitesmith-blocks): New | 2465 | * progmodes/cc-align.el (c-lineup-after-whitesmith-blocks): |
| 2138 | lineup function to get lines after Whitesmith style blocks | 2466 | New lineup function to get lines after Whitesmith style blocks |
| 2139 | correctly indented. | 2467 | correctly indented. |
| 2140 | 2468 | ||
| 2141 | (c-lineup-whitesmith-in-block): Backed out the compensation for | 2469 | (c-lineup-whitesmith-in-block): Backed out the compensation for |
| @@ -2170,10 +2498,10 @@ | |||
| 2170 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 2498 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 2171 | 2499 | ||
| 2172 | * progmodes/cc-awk.el: Change the terminology of regexps: A char | 2500 | * progmodes/cc-awk.el: Change the terminology of regexps: A char |
| 2173 | list is now | 2501 | list is now [asdf], a char class [:alpha:]. Include code for char |
| 2174 | [asdf], a char class [:alpha:]. Include code for char classes. | 2502 | classes. Set c-awk-NL-prop on lines ending in open strings. (Bug |
| 2175 | Set c-awk-NL-prop on lines ending in open strings. (Bug fix.) | 2503 | fix.) Add character classes (e.g. "[:alpha:]") into AWK Mode's |
| 2176 | Add character classes (e.g. "[:alpha:]") into AWK Mode's regexps. | 2504 | regexps. |
| 2177 | 2505 | ||
| 2178 | Remove (nearly all of) the cruft associated with AWK Mode's former | 2506 | Remove (nearly all of) the cruft associated with AWK Mode's former |
| 2179 | concept of "virtual semicolons": | 2507 | concept of "virtual semicolons": |
| @@ -2195,7 +2523,7 @@ | |||
| 2195 | adapted for virtual semicolons. | 2523 | adapted for virtual semicolons. |
| 2196 | 2524 | ||
| 2197 | * progmodes/cc-engine.el: | 2525 | * progmodes/cc-engine.el: |
| 2198 | (c-ws*-string-limit-regexp): new regexp. | 2526 | (c-ws*-string-limit-regexp): New regexp. |
| 2199 | (c-forward-single-comment, c-backward-single-comment): Comment out | 2527 | (c-forward-single-comment, c-backward-single-comment): Comment out |
| 2200 | the (now redundant) "special" AWK stuff. | 2528 | the (now redundant) "special" AWK stuff. |
| 2201 | 2529 | ||
| @@ -2207,9 +2535,8 @@ | |||
| 2207 | 2535 | ||
| 2208 | * progmodes/cc-fonts.el (c-font-lock-declarations): Always narrow | 2536 | * progmodes/cc-fonts.el (c-font-lock-declarations): Always narrow |
| 2209 | to the fontified region so that fontification doesn't occur | 2537 | to the fontified region so that fontification doesn't occur |
| 2210 | outside it | 2538 | outside it (could happen e.g. when fontifying a line with an |
| 2211 | (could happen e.g. when fontifying a line with an unfinished | 2539 | unfinished declaration). |
| 2212 | declaration). | ||
| 2213 | 2540 | ||
| 2214 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 2541 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> |
| 2215 | 2542 | ||
| @@ -2322,7 +2649,7 @@ | |||
| 2322 | initialised in c-setup-paragraph-variables, used in string | 2649 | initialised in c-setup-paragraph-variables, used in string |
| 2323 | scanning subroutines of c-beginning-of-statement. | 2650 | scanning subroutines of c-beginning-of-statement. |
| 2324 | 2651 | ||
| 2325 | * progmodes/cc-cmds.el (c-electric-brace): don't delete a comment | 2652 | * progmodes/cc-cmds.el (c-electric-brace): Don't delete a comment |
| 2326 | which precedes the newly inserted `{'. | 2653 | which precedes the newly inserted `{'. |
| 2327 | 2654 | ||
| 2328 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 2655 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| @@ -2358,8 +2685,8 @@ | |||
| 2358 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified case | 2685 | * progmodes/cc-engine.el (c-guess-basic-syntax): Simplified case |
| 2359 | 16D - can't be a class-close at that point. | 2686 | 16D - can't be a class-close at that point. |
| 2360 | 2687 | ||
| 2361 | * progmodes/cc-engine.el (c-guess-basic-syntax, | 2688 | * progmodes/cc-engine.el (c-guess-basic-syntax) |
| 2362 | c-add-class-syntax): Don't narrow out the enclosing declaration | 2689 | (c-add-class-syntax): Don't narrow out the enclosing declaration |
| 2363 | level. This makes everything a lot easier, and it was actually | 2690 | level. This makes everything a lot easier, and it was actually |
| 2364 | only four small places that needed it to work. Some places that | 2691 | only four small places that needed it to work. Some places that |
| 2365 | previously did `widen' are removed now, which has the effect that | 2692 | previously did `widen' are removed now, which has the effect that |
| @@ -2385,7 +2712,7 @@ | |||
| 2385 | 2712 | ||
| 2386 | * progmodes/cc-langs.el (c-symbol-start): Include `@' in ObjC. | 2713 | * progmodes/cc-langs.el (c-symbol-start): Include `@' in ObjC. |
| 2387 | 2714 | ||
| 2388 | (c-decl-start-re): No no longer any need for special treatment of | 2715 | (c-decl-start-re): No longer any need for special treatment of |
| 2389 | ObjC due to the above. | 2716 | ObjC due to the above. |
| 2390 | 2717 | ||
| 2391 | (c-other-block-decl-kwds): Handle "extern" in ObjC too since it | 2718 | (c-other-block-decl-kwds): Handle "extern" in ObjC too since it |
| @@ -2397,8 +2724,8 @@ | |||
| 2397 | 2724 | ||
| 2398 | (c-opt-identifier-prefix-key): New internal language constant. | 2725 | (c-opt-identifier-prefix-key): New internal language constant. |
| 2399 | 2726 | ||
| 2400 | (c-opt-identifier-concat-key, c-opt-after-id-concat-key, | 2727 | (c-opt-identifier-concat-key, c-opt-after-id-concat-key) |
| 2401 | c-identifier-start, c-identifier-key): Now completely calculated | 2728 | (c-identifier-start, c-identifier-key): Now completely calculated |
| 2402 | from other constants. | 2729 | from other constants. |
| 2403 | 2730 | ||
| 2404 | (c-identifier-last-sym-match): Decommissioned since it's no longer | 2731 | (c-identifier-last-sym-match): Decommissioned since it's no longer |
| @@ -2415,10 +2742,10 @@ | |||
| 2415 | * progmodes/cc-langs.el (c-filter-ops): New helper function to | 2742 | * progmodes/cc-langs.el (c-filter-ops): New helper function to |
| 2416 | simplify access to `c-operators' and its likes. | 2743 | simplify access to `c-operators' and its likes. |
| 2417 | 2744 | ||
| 2418 | (c-operator-list, c-all-op-syntax-tokens, | 2745 | (c-operator-list, c-all-op-syntax-tokens) |
| 2419 | c-nonsymbol-token-regexp, c-<>-multichar-token-regexp, | 2746 | (c-nonsymbol-token-regexp, c-<>-multichar-token-regexp) |
| 2420 | c-<-op-cont-regexp, c->-op-cont-regexp, c-expr-kwds, | 2747 | (c-<-op-cont-regexp, c->-op-cont-regexp, c-expr-kwds) |
| 2421 | c-primary-expr-regexp, c-cast-parens): Use it. | 2748 | (c-primary-expr-regexp, c-cast-parens): Use it. |
| 2422 | 2749 | ||
| 2423 | * progmodes/cc-defs.el (c-lang-const): Fixes to allow use without | 2750 | * progmodes/cc-defs.el (c-lang-const): Fixes to allow use without |
| 2424 | an explicit language in functions. | 2751 | an explicit language in functions. |
| @@ -2432,8 +2759,8 @@ | |||
| 2432 | (c-type-decl-prefix-key): Removed some now unnecessary cruft from | 2759 | (c-type-decl-prefix-key): Removed some now unnecessary cruft from |
| 2433 | the Pike value. | 2760 | the Pike value. |
| 2434 | 2761 | ||
| 2435 | * progmodes/cc-engine.el (c-on-identifier, | 2762 | * progmodes/cc-engine.el (c-on-identifier) |
| 2436 | c-simple-skip-symbol-backward): Small fix for handling "-" | 2763 | (c-simple-skip-symbol-backward): Small fix for handling "-" |
| 2437 | correctly in `skip-chars-backward'. Affected the operator lfun | 2764 | correctly in `skip-chars-backward'. Affected the operator lfun |
| 2438 | syntax in Pike. | 2765 | syntax in Pike. |
| 2439 | 2766 | ||
| @@ -2443,8 +2770,8 @@ | |||
| 2443 | * progmodes/cc-langs.el (c-paren-nontype-kwds): The GCC keyword | 2770 | * progmodes/cc-langs.el (c-paren-nontype-kwds): The GCC keyword |
| 2444 | "__attribute__" is followed by a parenthesis. | 2771 | "__attribute__" is followed by a parenthesis. |
| 2445 | 2772 | ||
| 2446 | (c-type-start-kwds, c-prefix-spec-kwds, c-prefix-spec-kwds-re, | 2773 | (c-type-start-kwds, c-prefix-spec-kwds, c-prefix-spec-kwds-re) |
| 2447 | c-specifier-key, c-not-decl-init-keywords): Some cleanup using new | 2774 | (c-specifier-key, c-not-decl-init-keywords): Some cleanup using new |
| 2448 | language constants `c-type-start-kwds' and `c-prefix-spec-kwds'. | 2775 | language constants `c-type-start-kwds' and `c-prefix-spec-kwds'. |
| 2449 | 2776 | ||
| 2450 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el: Internal | 2777 | * progmodes/cc-fonts.el, cc-langs.el, cc-engine.el: Internal |
| @@ -2455,12 +2782,12 @@ | |||
| 2455 | declarations that can start anywhere. Used for class declarations | 2782 | declarations that can start anywhere. Used for class declarations |
| 2456 | in Pike. | 2783 | in Pike. |
| 2457 | 2784 | ||
| 2458 | (c-specifier-key, c-not-decl-init-keywords, | 2785 | (c-specifier-key, c-not-decl-init-keywords) |
| 2459 | c-decl-prefix-or-start-re, c-find-decl-prefix-search, | 2786 | (c-decl-prefix-or-start-re, c-find-decl-prefix-search) |
| 2460 | c-find-decl-spots): Implement `c-decl-start-kwds'. | 2787 | (c-find-decl-spots): Implement `c-decl-start-kwds'. |
| 2461 | 2788 | ||
| 2462 | (c-other-decl-kwds, c-postfix-decl-spec-kwds, c-decl-hangon-kwds, | 2789 | (c-other-decl-kwds, c-postfix-decl-spec-kwds, c-decl-hangon-kwds) |
| 2463 | c-decl-hangon-key, c-forward-decl-or-cast-1): Separated the | 2790 | (c-decl-hangon-key, c-forward-decl-or-cast-1): Separated the |
| 2464 | handling of the compiler specific extension keywords into a new | 2791 | handling of the compiler specific extension keywords into a new |
| 2465 | language constant `c-decl-hangon-kwds' that defines keyword | 2792 | language constant `c-decl-hangon-kwds' that defines keyword |
| 2466 | clauses to be ignored in declarations. | 2793 | clauses to be ignored in declarations. |
| @@ -2470,10 +2797,10 @@ | |||
| 2470 | Necessary to stop at the declared identifier in e.g. IDL valuetype | 2797 | Necessary to stop at the declared identifier in e.g. IDL valuetype |
| 2471 | declarations. | 2798 | declarations. |
| 2472 | 2799 | ||
| 2473 | (c-typedef-decl-kwds, c-typeless-decl-kwds, c-type-list-kwds, | 2800 | (c-typedef-decl-kwds, c-typeless-decl-kwds, c-type-list-kwds) |
| 2474 | c-prefix-spec-kwds-re, c-postfix-spec-kwds, | 2801 | (c-prefix-spec-kwds-re, c-postfix-spec-kwds) |
| 2475 | c-after-suffixed-type-decl-key, c-opt-postfix-decl-spec-key, | 2802 | (c-after-suffixed-type-decl-key, c-opt-postfix-decl-spec-key) |
| 2476 | c-forward-decl-or-cast-1): Recognize the declared identifier in | 2803 | (c-forward-decl-or-cast-1): Recognize the declared identifier in |
| 2477 | class and enum declarations as such and not as part of the type. | 2804 | class and enum declarations as such and not as part of the type. |
| 2478 | 2805 | ||
| 2479 | (c-forward-decl-or-cast-1, c-forward-label): Relaxed the | 2806 | (c-forward-decl-or-cast-1, c-forward-label): Relaxed the |
| @@ -2489,24 +2816,24 @@ | |||
| 2489 | * progmodes/cc-engine.el (c-maybe-labelp): Provide no default | 2816 | * progmodes/cc-engine.el (c-maybe-labelp): Provide no default |
| 2490 | value - this variable is always dynamically bound. | 2817 | value - this variable is always dynamically bound. |
| 2491 | 2818 | ||
| 2492 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el, | 2819 | * progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el |
| 2493 | cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el, | 2820 | * cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el |
| 2494 | cc-cmds.el, cc-defs.el: Changed the policy for marking up | 2821 | * cc-cmds.el, cc-defs.el: Changed the policy for marking up |
| 2495 | functions that might do hidden buffer changes: All such internal | 2822 | functions that might do hidden buffer changes: All such internal |
| 2496 | functions are now marked instead of those that don't. | 2823 | functions are now marked instead of those that don't. |
| 2497 | 2824 | ||
| 2498 | (c-beginning-of-macro, c-end-of-macro, c-(forward|backward)-comments, | 2825 | (c-beginning-of-macro, c-end-of-macro, c-(forward|backward)-comments) |
| 2499 | c-(forward|backward)-single-comment, c-parse-state, c-on-identifier, | 2826 | (c-(forward|backward)-single-comment, c-parse-state, c-on-identifier) |
| 2500 | c-(fast-|slow-|)in-literal, c-literal-limits, c-collect-line-comments, | 2827 | (c-(fast-|slow-|)in-literal, c-literal-limits, c-collect-line-comments) |
| 2501 | c-literal-type): Allow these functions to make hidden buffer changes, | 2828 | (c-literal-type): Allow these functions to make hidden buffer changes, |
| 2502 | so that they are free to use text property caching later on. | 2829 | so that they are free to use text property caching later on. |
| 2503 | 2830 | ||
| 2504 | (c-electric-backspace, c-electric-delete-forward, c-electric-pound, | 2831 | (c-electric-backspace, c-electric-delete-forward, c-electric-pound) |
| 2505 | c-electric-brace, c-electric-slash, c-electric-star, | 2832 | (c-electric-brace, c-electric-slash, c-electric-star) |
| 2506 | c-electric-semi&comma, c-electric-colon, c-electric-lt-gt, | 2833 | (c-electric-semi&comma, c-electric-colon, c-electric-lt-gt) |
| 2507 | c-electric-paren, c-electric-continued-statement, c-indent-command, | 2834 | (c-electric-paren, c-electric-continued-statement, c-indent-command) |
| 2508 | c-indent-region, c-mask-paragraph, c-indent-new-comment-line, | 2835 | (c-indent-region, c-mask-paragraph, c-indent-new-comment-line) |
| 2509 | c-context-line-break): Added `c-save-buffer-state' calls to comply | 2836 | (c-context-line-break): Added `c-save-buffer-state' calls to comply |
| 2510 | with the changed semantics of the functions above. | 2837 | with the changed semantics of the functions above. |
| 2511 | 2838 | ||
| 2512 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a bug | 2839 | * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a bug |
| @@ -2521,10 +2848,10 @@ | |||
| 2521 | (completed statement) with `}' (statement completed by closing | 2848 | (completed statement) with `}' (statement completed by closing |
| 2522 | brace or semicolon) and `$' (statement completed by EOL). | 2849 | brace or semicolon) and `$' (statement completed by EOL). |
| 2523 | 2850 | ||
| 2524 | (c-awk-virtual-semicolon-ends-prev-line-p, | 2851 | (c-awk-virtual-semicolon-ends-prev-line-p) |
| 2525 | c-awk-virtual-semicolon-ends-line-p, | 2852 | (c-awk-virtual-semicolon-ends-line-p) |
| 2526 | c-awk-skip-semantic-ws-forward, c-awk-skip-semantic-ws-backward, | 2853 | (c-awk-skip-semantic-ws-forward, c-awk-skip-semantic-ws-backward) |
| 2527 | c-awk-at-statement-end-p): new functions | 2854 | (c-awk-at-statement-end-p): New functions. |
| 2528 | 2855 | ||
| 2529 | * progmodes/cc-cmds.el: Simplify the structure of functions | 2856 | * progmodes/cc-cmds.el: Simplify the structure of functions |
| 2530 | c-forward-over-illiterals, c-back-over-illiterals. Enhance these | 2857 | c-forward-over-illiterals, c-back-over-illiterals. Enhance these |
| @@ -2596,8 +2923,8 @@ | |||
| 2596 | * progmodes/cc-align.el (c-lineup-arglist): Fixed bug when the | 2923 | * progmodes/cc-align.el (c-lineup-arglist): Fixed bug when the |
| 2597 | first argument starts with a special brace list. | 2924 | first argument starts with a special brace list. |
| 2598 | 2925 | ||
| 2599 | * progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1, | 2926 | * progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1) |
| 2600 | c-font-lock-declarations): Broke out the declaration and cast | 2927 | (c-font-lock-declarations): Broke out the declaration and cast |
| 2601 | recognition from `c-font-lock-declarations' to a new function, so | 2928 | recognition from `c-font-lock-declarations' to a new function, so |
| 2602 | that it can be used in the indentation engine. | 2929 | that it can be used in the indentation engine. |
| 2603 | 2930 | ||
| @@ -2606,16 +2933,16 @@ | |||
| 2606 | wrong side of the search limit that could happen when the start | 2933 | wrong side of the search limit that could happen when the start |
| 2607 | position is inside a literal. | 2934 | position is inside a literal. |
| 2608 | 2935 | ||
| 2609 | * progmodes/cc-engine.el (c-parse-state, | 2936 | * progmodes/cc-engine.el (c-parse-state) |
| 2610 | c-invalidate-state-cache): Modified the use of `c-state-cache-end' | 2937 | (c-invalidate-state-cache): Modified the use of `c-state-cache-end' |
| 2611 | so that it's kept a little bit back to increase the hit rate. | 2938 | so that it's kept a little bit back to increase the hit rate. |
| 2612 | 2939 | ||
| 2613 | (c-parse-state): Changed the macro handling and fixed some | 2940 | (c-parse-state): Changed the macro handling and fixed some |
| 2614 | glitches. Macro context is checked more often than necessary now, | 2941 | glitches. Macro context is checked more often than necessary now, |
| 2615 | but otoh less garbage conses are generated. | 2942 | but otoh less garbage conses are generated. |
| 2616 | 2943 | ||
| 2617 | * progmodes/cc-engine.el (c-parse-state, | 2944 | * progmodes/cc-engine.el (c-parse-state) |
| 2618 | c-invalidate-state-cache): Cache the last position where | 2945 | (c-invalidate-state-cache): Cache the last position where |
| 2619 | `c-state-cache' applies. This can speed up refontification quite | 2946 | `c-state-cache' applies. This can speed up refontification quite |
| 2620 | a bit in blocks where there are many non-brace parens before the | 2947 | a bit in blocks where there are many non-brace parens before the |
| 2621 | point. | 2948 | point. |
| @@ -2640,8 +2967,8 @@ | |||
| 2640 | * progmodes/cc-engine.el (c-add-stmt-syntax): Narrowed down the | 2967 | * progmodes/cc-engine.el (c-add-stmt-syntax): Narrowed down the |
| 2641 | special case for "else if" clauses. | 2968 | special case for "else if" clauses. |
| 2642 | 2969 | ||
| 2643 | * progmodes/cc-engine.el (c-looking-at-inexpr-block, | 2970 | * progmodes/cc-engine.el (c-looking-at-inexpr-block) |
| 2644 | c-add-stmt-syntax): Use `c-recognize-paren-inexpr-blocks'. | 2971 | (c-add-stmt-syntax): Use `c-recognize-paren-inexpr-blocks'. |
| 2645 | 2972 | ||
| 2646 | * progmodes/cc-langs.el (c-recognize-paren-inexpr-blocks): New | 2973 | * progmodes/cc-langs.el (c-recognize-paren-inexpr-blocks): New |
| 2647 | language variable to recognize the gcc extension with statement | 2974 | language variable to recognize the gcc extension with statement |
| @@ -2658,8 +2985,8 @@ | |||
| 2658 | `c-beginning-of-statement-1' instead of duplicating parts of it. | 2985 | `c-beginning-of-statement-1' instead of duplicating parts of it. |
| 2659 | This fixes bogus label recognition. | 2986 | This fixes bogus label recognition. |
| 2660 | 2987 | ||
| 2661 | * progmodes/cc-engine.el (c-add-type, c-check-type, | 2988 | * progmodes/cc-engine.el (c-add-type, c-check-type) |
| 2662 | c-forward-name, c-forward-type): Improved storage of template | 2989 | (c-forward-name, c-forward-type): Improved storage of template |
| 2663 | types in `c-found-types' so that they can be recognized better. | 2990 | types in `c-found-types' so that they can be recognized better. |
| 2664 | 2991 | ||
| 2665 | (c-syntactic-content): Added option to skip past nested parens. | 2992 | (c-syntactic-content): Added option to skip past nested parens. |
| @@ -2672,8 +2999,8 @@ | |||
| 2672 | (c-forward-type): Handle that `c-last-identifier-range' might be | 2999 | (c-forward-type): Handle that `c-last-identifier-range' might be |
| 2673 | nil from `c-forward-name'. | 3000 | nil from `c-forward-name'. |
| 2674 | 3001 | ||
| 2675 | * progmodes/cc-defs.el: (c-safe-scan-lists, | 3002 | * progmodes/cc-defs.el (c-safe-scan-lists) |
| 2676 | c-(go-)?(up|down)-list-(forward|backward)): Added limit arguments. | 3003 | (c-(go-)?(up|down)-list-(forward|backward)): Added limit arguments. |
| 2677 | 3004 | ||
| 2678 | * progmodes/cc-defs.el (c-save-buffer-state): Use `unwind-protect' | 3005 | * progmodes/cc-defs.el (c-save-buffer-state): Use `unwind-protect' |
| 2679 | to work even if the form fails. | 3006 | to work even if the form fails. |
| @@ -2705,20 +3032,20 @@ | |||
| 2705 | * progmodes/cc-langs.el (c-unterminated-block-comment-regexp): | 3032 | * progmodes/cc-langs.el (c-unterminated-block-comment-regexp): |
| 2706 | Fixed a bug in the regexp that caused extreme backtracking. | 3033 | Fixed a bug in the regexp that caused extreme backtracking. |
| 2707 | 3034 | ||
| 2708 | * progmodes/cc-langs.el (c-block-comment-starter, | 3035 | * progmodes/cc-langs.el (c-block-comment-starter) |
| 2709 | c-block-comment-ender): New language constants to specify in a | 3036 | (c-block-comment-ender): New language constants to specify in a |
| 2710 | single place how block comments look. | 3037 | single place how block comments look. |
| 2711 | 3038 | ||
| 2712 | (c-comment-start-regexp, c-block-comment-start-regexp, | 3039 | (c-comment-start-regexp, c-block-comment-start-regexp) |
| 2713 | comment-start, comment-end, comment-start-skip, | 3040 | (comment-start, comment-end, comment-start-skip) |
| 2714 | c-syntactic-ws-start, c-syntactic-ws-end, c-nonwhite-syntactic-ws, | 3041 | (c-syntactic-ws-start, c-syntactic-ws-end, c-nonwhite-syntactic-ws) |
| 2715 | c-syntactic-ws, c-nonempty-syntactic-ws, | 3042 | (c-syntactic-ws, c-nonempty-syntactic-ws) |
| 2716 | c-single-line-syntactic-ws, c-syntactic-eol): Now built from | 3043 | (c-single-line-syntactic-ws, c-syntactic-eol): Now built from |
| 2717 | `c-line-comment-starter', `c-block-comment-starter' and | 3044 | `c-line-comment-starter', `c-block-comment-starter' and |
| 2718 | `c-block-comment-ender'. | 3045 | `c-block-comment-ender'. |
| 2719 | 3046 | ||
| 2720 | (c-block-comment-regexp, c-unterminated-block-comment-regexp): New | 3047 | (c-block-comment-regexp, c-unterminated-block-comment-regexp): |
| 2721 | language constants to break up things a bit. | 3048 | New language constants to break up things a bit. |
| 2722 | 3049 | ||
| 2723 | (c-simple-ws): New language constant for simple whitespace. | 3050 | (c-simple-ws): New language constant for simple whitespace. |
| 2724 | 3051 | ||
| @@ -2910,14 +3237,13 @@ | |||
| 2910 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> | 3237 | 2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> |
| 2911 | 3238 | ||
| 2912 | * progmodes/cc-defs.el, cc-engine.el (c-mode-is-new-awk-p): | 3239 | * progmodes/cc-defs.el, cc-engine.el (c-mode-is-new-awk-p): |
| 2913 | Removed; | 3240 | Removed; (c-major-mode-is 'awk-mode) can be used instead now. |
| 2914 | (c-major-mode-is 'awk-mode) can be used instead now. | ||
| 2915 | 3241 | ||
| 2916 | * progmodes/cc-mode.el: Always set up AWK mode since emacsen where | 3242 | * progmodes/cc-mode.el: Always set up AWK mode since emacsen where |
| 2917 | it doesn't work no longer are supported. | 3243 | it doesn't work no longer are supported. |
| 2918 | 3244 | ||
| 2919 | * progmodes/cc-mode.el, cc-styles.el, cc-vars.el, cc-defs.el, | 3245 | * progmodes/cc-mode.el, cc-styles.el, cc-vars.el, cc-defs.el |
| 2920 | cc-engine.el, cc-fonts.el, cc-langs.el, cc-cmds.el: CC Mode now | 3246 | * cc-engine.el, cc-fonts.el, cc-langs.el, cc-cmds.el: CC Mode now |
| 2921 | requires support for the syntax-table' text property, which rules | 3247 | requires support for the syntax-table' text property, which rules |
| 2922 | out Emacs 19 and XEmacs < 21.4. Removed various compatibility | 3248 | out Emacs 19 and XEmacs < 21.4. Removed various compatibility |
| 2923 | cruft associated with those versions. | 3249 | cruft associated with those versions. |
| @@ -2934,9 +3260,9 @@ | |||
| 2934 | variable and use an extra quoted face name instead. All the | 3260 | variable and use an extra quoted face name instead. All the |
| 2935 | emacsen flavors handle that correctly. | 3261 | emacsen flavors handle that correctly. |
| 2936 | 3262 | ||
| 2937 | * progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare, | 3263 | * progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare) |
| 2938 | c-font-lock-declarators, c-font-lock-declarations, | 3264 | (c-font-lock-declarators, c-font-lock-declarations) |
| 2939 | c-complex-decl-matchers, c-basic-matchers-after): Use a text | 3265 | (c-complex-decl-matchers, c-basic-matchers-after): Use a text |
| 2940 | property to mark the items in in declarator lists to handle | 3266 | property to mark the items in in declarator lists to handle |
| 2941 | refontification inside multiline declarations better. | 3267 | refontification inside multiline declarations better. |
| 2942 | 3268 | ||
| @@ -3000,7 +3326,7 @@ | |||
| 3000 | 3326 | ||
| 3001 | 2005-12-07 Bill Wohler <wohler@newt.com> | 3327 | 2005-12-07 Bill Wohler <wohler@newt.com> |
| 3002 | 3328 | ||
| 3003 | * files.el (auto-mode-alist): Remove mh-letter-mode. Unnecessary, | 3329 | * files.el (auto-mode-alist): Remove mh-letter-mode. Unnecessary, |
| 3004 | and causes problems with non-MH users (such as Gnus users). | 3330 | and causes problems with non-MH users (such as Gnus users). |
| 3005 | 3331 | ||
| 3006 | 2005-12-08 Nick Roberts <nickrob@snap.net.nz> | 3332 | 2005-12-08 Nick Roberts <nickrob@snap.net.nz> |
| @@ -3017,12 +3343,12 @@ | |||
| 3017 | 3343 | ||
| 3018 | 2005-12-07 Kim F. Storm <storm@cua.dk> | 3344 | 2005-12-07 Kim F. Storm <storm@cua.dk> |
| 3019 | 3345 | ||
| 3020 | * ido.el (ido-completion-map): Renamed from ido-mode-map. | 3346 | * ido.el (ido-completion-map): Rename from ido-mode-map. |
| 3021 | (ido-common-completion-map, ido-file-completion-map) | 3347 | (ido-common-completion-map, ido-file-completion-map) |
| 3022 | (ido-file-dir-completion-map, ido-buffer-completion-map): | 3348 | (ido-file-dir-completion-map, ido-buffer-completion-map): |
| 3023 | Renamed from ido-mode-....-map. | 3349 | Rename from ido-mode-....-map. |
| 3024 | (ido-init-completion-maps): Renamed from ido-init-mode-maps. | 3350 | (ido-init-completion-maps): Rename from ido-init-mode-maps. |
| 3025 | (ido-setup-completion-map): Renamed from ido-define-mode-map. | 3351 | (ido-setup-completion-map): Rename from ido-define-mode-map. |
| 3026 | (ido-read-internal): Bind minibuffer-local-filename-completion-map | 3352 | (ido-read-internal): Bind minibuffer-local-filename-completion-map |
| 3027 | to ido-completion-map. | 3353 | to ido-completion-map. |
| 3028 | 3354 | ||
| @@ -3076,7 +3402,7 @@ | |||
| 3076 | 3402 | ||
| 3077 | * progmodes/cc-defs.el (c-emacs-features): Don't assume point-min==1. | 3403 | * progmodes/cc-defs.el (c-emacs-features): Don't assume point-min==1. |
| 3078 | 3404 | ||
| 3079 | 2005-12-06 Nozomu Ando <nand@mac.com> (tiny patch) | 3405 | 2005-12-06 Nozomu Ando <nand@mac.com> (tiny patch) |
| 3080 | 3406 | ||
| 3081 | * mail/smtpmail.el (smtpmail-try-auth-methods): Make password | 3407 | * mail/smtpmail.el (smtpmail-try-auth-methods): Make password |
| 3082 | prompts work for AUTH PLAIN. Also reported by Steve Allan | 3408 | prompts work for AUTH PLAIN. Also reported by Steve Allan |
| @@ -3115,7 +3441,7 @@ | |||
| 3115 | (org-agenda-get-deadlines, org-agenda-get-scheduled) | 3441 | (org-agenda-get-deadlines, org-agenda-get-scheduled) |
| 3116 | (org-agenda-get-blocks): Use `org-get-category'. | 3442 | (org-agenda-get-blocks): Use `org-get-category'. |
| 3117 | (org-context-in-file-links): Rename from | 3443 | (org-context-in-file-links): Rename from |
| 3118 | `org-line-numbers-in-file-links' . | 3444 | `org-line-numbers-in-file-links'. |
| 3119 | 3445 | ||
| 3120 | 2005-12-06 Romain Francoise <romain@orebokech.com> | 3446 | 2005-12-06 Romain Francoise <romain@orebokech.com> |
| 3121 | 3447 | ||
| @@ -3259,7 +3585,7 @@ | |||
| 3259 | 3585 | ||
| 3260 | 2005-12-02 Ken Manheimer <ken.manheimer@gmail.com> | 3586 | 2005-12-02 Ken Manheimer <ken.manheimer@gmail.com> |
| 3261 | 3587 | ||
| 3262 | * allout.el:(eval-when-compile): Remove unnecessary load of cl. | 3588 | * allout.el (eval-when-compile): Remove unnecessary load of cl. |
| 3263 | Add fset of allout-real-isearch-abort during compile to fix | 3589 | Add fset of allout-real-isearch-abort during compile to fix |
| 3264 | byte-compilation warnings. | 3590 | byte-compilation warnings. |
| 3265 | (allout-mode-p): Move definition of this macro above all uses, or | 3591 | (allout-mode-p): Move definition of this macro above all uses, or |
| @@ -3669,8 +3995,8 @@ | |||
| 3669 | 3995 | ||
| 3670 | (hi-lock-face-phrase-buffer): Call hi-lock-buffer-mode. Use new | 3996 | (hi-lock-face-phrase-buffer): Call hi-lock-buffer-mode. Use new |
| 3671 | arguments for hi-lock-set-pattern. | 3997 | arguments for hi-lock-set-pattern. |
| 3672 | (hi-lock-unface-buffer, hi-lock-set-file-patterns): Call | 3998 | (hi-lock-unface-buffer, hi-lock-set-file-patterns): |
| 3673 | font-lock-fontify-buffer. | 3999 | Call font-lock-fontify-buffer. |
| 3674 | (hi-lock-find-file-hook, hi-lock-current-line) | 4000 | (hi-lock-find-file-hook, hi-lock-current-line) |
| 3675 | (hi-lock-refontify, hi-lock-set-patterns): Delete unused functions. | 4001 | (hi-lock-refontify, hi-lock-set-patterns): Delete unused functions. |
| 3676 | 4002 | ||
| @@ -3699,8 +4025,8 @@ | |||
| 3699 | (org-plain-list-ordered-item-terminator): New options. | 4025 | (org-plain-list-ordered-item-terminator): New options. |
| 3700 | (org-at-item-p, org-beginning-of-item, org-end-of-item) | 4026 | (org-at-item-p, org-beginning-of-item, org-end-of-item) |
| 3701 | (org-get-indentation, org-get-string-indentation) | 4027 | (org-get-indentation, org-get-string-indentation) |
| 3702 | (org-maybe-renumber-ordered-list, org-renumber-ordered-list): New | 4028 | (org-maybe-renumber-ordered-list, org-renumber-ordered-list): |
| 3703 | functions. | 4029 | New functions. |
| 3704 | (org-move-item-down, org-move-item-up): New commands. | 4030 | (org-move-item-down, org-move-item-up): New commands. |
| 3705 | (org-export-as-html): New classes for CSS support. Bug fix in | 4031 | (org-export-as-html): New classes for CSS support. Bug fix in |
| 3706 | regular expression detecting fixed-width regions. Respect | 4032 | regular expression detecting fixed-width regions. Respect |
| @@ -3884,7 +4210,7 @@ | |||
| 3884 | * man.el (Man-highlight-references): Doc fix. Reformat code in a | 4210 | * man.el (Man-highlight-references): Doc fix. Reformat code in a |
| 3885 | more Lisp-ish way. | 4211 | more Lisp-ish way. |
| 3886 | 4212 | ||
| 3887 | 2005-11-19 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se> (tiny change) | 4213 | 2005-11-19 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se> (tiny change) |
| 3888 | 4214 | ||
| 3889 | * ls-lisp.el (ls-lisp-format-file-size): Format file size with 9 | 4215 | * ls-lisp.el (ls-lisp-format-file-size): Format file size with 9 |
| 3890 | digits, not 8, to avoid misalignment for files larger than 100MB. | 4216 | digits, not 8, to avoid misalignment for files larger than 100MB. |
| @@ -3914,15 +4240,15 @@ | |||
| 3914 | (org-export-icalendar): Use `org-icalendar-combined-name'. | 4240 | (org-export-icalendar): Use `org-icalendar-combined-name'. |
| 3915 | (org-cycle-agenda-files, org-agenda-file-to-end) | 4241 | (org-cycle-agenda-files, org-agenda-file-to-end) |
| 3916 | (org-agenda-file-to-front): New commands. | 4242 | (org-agenda-file-to-front): New commands. |
| 3917 | (org-table-tab-jumps-over-hlines,org-export-html-style): New | 4243 | (org-table-tab-jumps-over-hlines, org-export-html-style): |
| 3918 | options. | 4244 | New options. |
| 3919 | (org-table-next-field): Use `org-table-tab-jumps-over-hlines'. | 4245 | (org-table-next-field): Use `org-table-tab-jumps-over-hlines'. |
| 3920 | (org-at-table.el-p, org-set-autofill-regexps,org-html-protect): | 4246 | (org-at-table.el-p, org-set-autofill-regexps, org-html-protect): |
| 3921 | New functions. | 4247 | New functions. |
| 3922 | (org-fill-paragraph): Call `org-table-align' in tables. | 4248 | (org-fill-paragraph): Call `org-table-align' in tables. |
| 3923 | (org-mode): Call `org-set-autofill-regexps'. | 4249 | (org-mode): Call `org-set-autofill-regexps'. |
| 3924 | (org-export-as-html): Support for local handformatted lists. | 4250 | (org-export-as-html): Support for local handformatted lists. |
| 3925 | Modified to produce valid HTML 4.0. Use `org-export-html-style'. | 4251 | Modified to produce valid HTML 4.0. Use `org-export-html-style'. |
| 3926 | (org-export-local-list-max-depth): New option. | 4252 | (org-export-local-list-max-depth): New option. |
| 3927 | (org-html-expand): Use `org-html-protect'. | 4253 | (org-html-expand): Use `org-html-protect'. |
| 3928 | 4254 | ||
| @@ -4370,9 +4696,9 @@ | |||
| 4370 | (apropos-variable): Doc fix. Use apropos-read-pattern. | 4696 | (apropos-variable): Doc fix. Use apropos-read-pattern. |
| 4371 | (apropos-command): Doc fix. Use apropos-read-pattern and | 4697 | (apropos-command): Doc fix. Use apropos-read-pattern and |
| 4372 | apropos-parse-pattern. Call apropos-print with nosubst=t. | 4698 | apropos-parse-pattern. Call apropos-print with nosubst=t. |
| 4373 | (apropos, apropos-value): Doc fix. Use apropos-read-pattern and | 4699 | (apropos, apropos-value): Doc fix. Use apropos-read-pattern and |
| 4374 | apropos-parse-pattern. | 4700 | apropos-parse-pattern. |
| 4375 | (apropos-documentation): Doc fix. Use apropos-read-pattern and | 4701 | (apropos-documentation): Doc fix. Use apropos-read-pattern and |
| 4376 | apropos-parse-pattern. Locally bind apropos-sort-by-scores to | 4702 | apropos-parse-pattern. Locally bind apropos-sort-by-scores to |
| 4377 | apropos-documentation-sort-by-scores. Call apropos-print with | 4703 | apropos-documentation-sort-by-scores. Call apropos-print with |
| 4378 | nosubst=t. | 4704 | nosubst=t. |
| @@ -4440,7 +4766,7 @@ | |||
| 4440 | 2005-11-10 Masatake YAMATO <jet@gyve.org> | 4766 | 2005-11-10 Masatake YAMATO <jet@gyve.org> |
| 4441 | 4767 | ||
| 4442 | * add-log.el (add-log-current-defun): Handle class::method | 4768 | * add-log.el (add-log-current-defun): Handle class::method |
| 4443 | notation of c++. Fix incorrect comment. | 4769 | notation of c++. Fix incorrect comment. |
| 4444 | 4770 | ||
| 4445 | 2005-11-10 Alan Mackenzie <acm@muc.de> | 4771 | 2005-11-10 Alan Mackenzie <acm@muc.de> |
| 4446 | 4772 | ||
| @@ -4574,7 +4900,7 @@ | |||
| 4574 | 4900 | ||
| 4575 | * replace.el (occur-engine): Add marker at end of line, too. | 4901 | * replace.el (occur-engine): Add marker at end of line, too. |
| 4576 | 4902 | ||
| 4577 | 2005-11-04 Ken Manheimer <ken.manheimer@gmail.com> | 4903 | 2005-11-04 Ken Manheimer <ken.manheimer@gmail.com> |
| 4578 | 4904 | ||
| 4579 | * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region) | 4905 | * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region) |
| 4580 | (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric) | 4906 | (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric) |
| @@ -4599,7 +4925,7 @@ | |||
| 4599 | * font-lock.el: Don't deal with font-lock-face-attributes here, | 4925 | * font-lock.el: Don't deal with font-lock-face-attributes here, |
| 4600 | move the code ... | 4926 | move the code ... |
| 4601 | 4927 | ||
| 4602 | * startup.el (command-line): ... here. Use face-spec-set instead | 4928 | * startup.el (command-line): ... here. Use face-spec-set instead |
| 4603 | of custom-declare-face. | 4929 | of custom-declare-face. |
| 4604 | 4930 | ||
| 4605 | * faces.el (face-spec-set): Reset the face if spec is not nil. | 4931 | * faces.el (face-spec-set): Reset the face if spec is not nil. |
| @@ -4616,7 +4942,7 @@ | |||
| 4616 | 4942 | ||
| 4617 | 2005-11-04 Ulf Jasper <ulf.jasper@web.de> | 4943 | 2005-11-04 Ulf Jasper <ulf.jasper@web.de> |
| 4618 | 4944 | ||
| 4619 | * newsticker.el: Commentary updated. Code formatting changed. | 4945 | * newsticker.el: Commentary updated. Code formatting changed. |
| 4620 | (newsticker-version): Change to "1.9". | 4946 | (newsticker-version): Change to "1.9". |
| 4621 | (newsticker, newsticker-feed): Doc fix. | 4947 | (newsticker, newsticker-feed): Doc fix. |
| 4622 | (newsticker-url-list): Doc fix. Add option "Weekly". | 4948 | (newsticker-url-list): Doc fix. Add option "Weekly". |
| @@ -4636,7 +4962,7 @@ | |||
| 4636 | (newsticker-mode): Doc fix. | 4962 | (newsticker-mode): Doc fix. |
| 4637 | (newsticker-mode): Change mode-line-format. | 4963 | (newsticker-mode): Change mode-line-format. |
| 4638 | (newsticker-start): Remove debug output. | 4964 | (newsticker-start): Remove debug output. |
| 4639 | (newsticker-start-ticker): Doc fix. Add Autoload cookie. | 4965 | (newsticker-start-ticker): Doc fix. Add autoload cookie. |
| 4640 | (newsticker-w3m-show-inline-images): Code formatting. | 4966 | (newsticker-w3m-show-inline-images): Code formatting. |
| 4641 | (newsticker-next-item): Call `force-mode-line-update'. | 4967 | (newsticker-next-item): Call `force-mode-line-update'. |
| 4642 | (newsticker-previous-item): Call `force-mode-line-update'. | 4968 | (newsticker-previous-item): Call `force-mode-line-update'. |
| @@ -4789,8 +5115,8 @@ | |||
| 4789 | 2005-11-04 Henrik Enberg <henrik.enberg@telia.com> | 5115 | 2005-11-04 Henrik Enberg <henrik.enberg@telia.com> |
| 4790 | 5116 | ||
| 4791 | (rcirc-browse-url-map, rcirc-browse-url-at-point) | 5117 | (rcirc-browse-url-map, rcirc-browse-url-at-point) |
| 4792 | (rcirc-browse-url-at-mouse, rcirc-mangle-text): Make urls | 5118 | (rcirc-browse-url-at-mouse, rcirc-mangle-text): |
| 4793 | mouse and RET clickable. | 5119 | Make urls mouse and RET clickable. |
| 4794 | 5120 | ||
| 4795 | 2005-11-04 Henrik Enberg <henrik.enberg@telia.com> | 5121 | 2005-11-04 Henrik Enberg <henrik.enberg@telia.com> |
| 4796 | 5122 | ||
| @@ -4941,7 +5267,7 @@ | |||
| 4941 | * progmodes/fortran.el (fortran-blink-match): | 5267 | * progmodes/fortran.el (fortran-blink-match): |
| 4942 | Use `blink-matching-delay'. | 5268 | Use `blink-matching-delay'. |
| 4943 | 5269 | ||
| 4944 | 2005-11-02 John Mongan <jmongan@mccammon.ucsd.edu> (tiny change) | 5270 | 2005-11-02 John Mongan <jmongan@mccammon.ucsd.edu> (tiny change) |
| 4945 | 5271 | ||
| 4946 | * progmodes/f90.el (f90-match-end): Use `blink-matching-delay'. | 5272 | * progmodes/f90.el (f90-match-end): Use `blink-matching-delay'. |
| 4947 | 5273 | ||
| @@ -4981,7 +5307,7 @@ | |||
| 4981 | * vc-sccs.el: Update copyright year. | 5307 | * vc-sccs.el: Update copyright year. |
| 4982 | * ezimage.el: Likewise. | 5308 | * ezimage.el: Likewise. |
| 4983 | 5309 | ||
| 4984 | 2005-11-01 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) | 5310 | 2005-11-01 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change) |
| 4985 | 5311 | ||
| 4986 | * info.el (Info-fontify-node): Use `string-width' for fontifying | 5312 | * info.el (Info-fontify-node): Use `string-width' for fontifying |
| 4987 | underlined titles. | 5313 | underlined titles. |
| @@ -5212,7 +5538,7 @@ | |||
| 5212 | * pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region) | 5538 | * pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region) |
| 5213 | (pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region) | 5539 | (pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region) |
| 5214 | (pgg-decrypt, pgg-sign-region, pgg-sign): Add optional | 5540 | (pgg-decrypt, pgg-sign-region, pgg-sign): Add optional |
| 5215 | 'passphrase' argument, so the passphrase can be managed externally | 5541 | `passphrase' argument, so the passphrase can be managed externally |
| 5216 | and then passed in to the system. | 5542 | and then passed in to the system. |
| 5217 | 5543 | ||
| 5218 | * pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache) | 5544 | * pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache) |
| @@ -5228,7 +5554,7 @@ | |||
| 5228 | externally and passed in to the system. | 5554 | externally and passed in to the system. |
| 5229 | 5555 | ||
| 5230 | * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional | 5556 | * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional |
| 5231 | 'notruncate' argument, so the passphrase cache can be used | 5557 | `notruncate' argument, so the passphrase cache can be used |
| 5232 | reliably with identifiers besides a pgp packet's key id. | 5558 | reliably with identifiers besides a pgp packet's key id. |
| 5233 | 5559 | ||
| 5234 | 2005-10-29 Sascha Wilde <swilde@sha-bang.de> | 5560 | 2005-10-29 Sascha Wilde <swilde@sha-bang.de> |
| @@ -5295,12 +5621,12 @@ | |||
| 5295 | (pgg-decrypt): Convey provided passphrase in subordinate call to | 5621 | (pgg-decrypt): Convey provided passphrase in subordinate call to |
| 5296 | pgg-decrypt-region. | 5622 | pgg-decrypt-region. |
| 5297 | 5623 | ||
| 5298 | 2005-10-20 Ken Manheimer <ken.manheimer+emacs@gmail.com> | 5624 | 2005-10-20 Ken Manheimer <ken.manheimer+emacs@gmail.com> |
| 5299 | 5625 | ||
| 5300 | * pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region) | 5626 | * pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region) |
| 5301 | (pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region) | 5627 | (pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region) |
| 5302 | (pgg-decrypt, pgg-sign-region, pgg-sign): Add optional | 5628 | (pgg-decrypt, pgg-sign-region, pgg-sign): Add optional |
| 5303 | 'passphrase' argument, so the passphrase can be managed externally | 5629 | `passphrase' argument, so the passphrase can be managed externally |
| 5304 | and then passed in to the system. | 5630 | and then passed in to the system. |
| 5305 | 5631 | ||
| 5306 | * pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache) | 5632 | * pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache) |
| @@ -5316,7 +5642,7 @@ | |||
| 5316 | externally and passed in to the system. | 5642 | externally and passed in to the system. |
| 5317 | 5643 | ||
| 5318 | * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional | 5644 | * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional |
| 5319 | 'notruncate' argument, so the passphrase cache can be used | 5645 | `notruncate' argument, so the passphrase cache can be used |
| 5320 | reliably with identifiers besides a pgp packet's key id. | 5646 | reliably with identifiers besides a pgp packet's key id. |
| 5321 | 5647 | ||
| 5322 | 2005-10-29 Sascha Wilde <swilde@sha-bang.de> | 5648 | 2005-10-29 Sascha Wilde <swilde@sha-bang.de> |
| @@ -5333,7 +5659,7 @@ | |||
| 5333 | 5659 | ||
| 5334 | 2005-10-28 Bill Wohler <wohler@newt.com> | 5660 | 2005-10-28 Bill Wohler <wohler@newt.com> |
| 5335 | 5661 | ||
| 5336 | * help-mode.el (help-url): New button type. Calls browse-url. | 5662 | * help-mode.el (help-url): New button type. Calls browse-url. |
| 5337 | (help-xref-url-regexp): New regexp to recognize URLs in docstring. | 5663 | (help-xref-url-regexp): New regexp to recognize URLs in docstring. |
| 5338 | Similar to Info nodes: URL `url'. | 5664 | Similar to Info nodes: URL `url'. |
| 5339 | (help-make-xrefs): Create help-url buttons for | 5665 | (help-make-xrefs): Create help-url buttons for |
| @@ -5392,7 +5718,7 @@ | |||
| 5392 | * calc/calc-arith.el (calc-mul-symb-fancy): Add checks for | 5718 | * calc/calc-arith.el (calc-mul-symb-fancy): Add checks for |
| 5393 | multiplication by an identity matrix; don't turn multiplication by | 5719 | multiplication by an identity matrix; don't turn multiplication by |
| 5394 | an inverse matrix into division. | 5720 | an inverse matrix into division. |
| 5395 | (math-div-symbol-fancy): Replace division by matrices with | 5721 | (math-div-symbol-fancy): Replace division by matrices with |
| 5396 | multiplication by inverse. | 5722 | multiplication by inverse. |
| 5397 | 5723 | ||
| 5398 | * calc/calc-misc.el (calcFunc-inv): Check for symbolic matrices. | 5724 | * calc/calc-misc.el (calcFunc-inv): Check for symbolic matrices. |
| @@ -5525,7 +5851,7 @@ | |||
| 5525 | * progmodes/gdb-ui.el (gdb-ann3): Bind mouse-3 in left fringe | 5851 | * progmodes/gdb-ui.el (gdb-ann3): Bind mouse-3 in left fringe |
| 5526 | to gdb-mouse-toggle-breakpoint-fringe. | 5852 | to gdb-mouse-toggle-breakpoint-fringe. |
| 5527 | (gdb-mouse-toggle-breakpoint-margin): Rename from | 5853 | (gdb-mouse-toggle-breakpoint-margin): Rename from |
| 5528 | gdb-mouse-toggle-breakpoint. Fix doc. | 5854 | gdb-mouse-toggle-breakpoint. Fix doc. |
| 5529 | (gdb-mouse-toggle-breakpoint-fringe): New defun. | 5855 | (gdb-mouse-toggle-breakpoint-fringe): New defun. |
| 5530 | (gdb-put-string): Add optional SPROPS arg. Add props to string. | 5856 | (gdb-put-string): Add optional SPROPS arg. Add props to string. |
| 5531 | (gdb-put-breakpoint-icon): Add gdb-bptno and gdb-enabled | 5857 | (gdb-put-breakpoint-icon): Add gdb-bptno and gdb-enabled |
| @@ -5769,7 +6095,7 @@ | |||
| 5769 | (outlineify-sticky, outlinify-sticky): Add autoload cookie. | 6095 | (outlineify-sticky, outlinify-sticky): Add autoload cookie. |
| 5770 | (my-mark-marker): Use `(featurep 'xemacs)'. | 6096 | (my-mark-marker): Use `(featurep 'xemacs)'. |
| 5771 | 6097 | ||
| 5772 | 2005-10-23 Lars Hansen <larsh@soem.dk> | 6098 | 2005-10-23 Lars Hansen <larsh@soem.dk> |
| 5773 | 6099 | ||
| 5774 | * emacs-lisp/bytecomp.el (byte-compile-lambda): New arg add-lambda. | 6100 | * emacs-lisp/bytecomp.el (byte-compile-lambda): New arg add-lambda. |
| 5775 | (byte-compile-file-form-defmumble, byte-compile-defun) | 6101 | (byte-compile-file-form-defmumble, byte-compile-defun) |
| @@ -6057,7 +6383,7 @@ | |||
| 6057 | 6383 | ||
| 6058 | * calc/calc-units.el (math-standard-units): Add units, adjust | 6384 | * calc/calc-units.el (math-standard-units): Add units, adjust |
| 6059 | symbols and update values. | 6385 | symbols and update values. |
| 6060 | (math-unit-prefixes): Add more prefixes. | 6386 | (math-unit-prefixes): Add more prefixes. |
| 6061 | 6387 | ||
| 6062 | 2005-10-19 Romain Francoise <romain@orebokech.com> | 6388 | 2005-10-19 Romain Francoise <romain@orebokech.com> |
| 6063 | 6389 | ||
| @@ -6136,12 +6462,12 @@ | |||
| 6136 | lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar. Place | 6462 | lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar. Place |
| 6137 | the low resolution images in their own directory (low-color). | 6463 | the low resolution images in their own directory (low-color). |
| 6138 | 6464 | ||
| 6139 | * toolbar/attach.*, toolbar/cancel.*, toolbar/close.*, | 6465 | * toolbar/attach.*, toolbar/cancel.*, toolbar/close.* |
| 6140 | * toolbar/copy.*, toolbar/cut.*, toolbar/diropen.*, toolbar/exit.*: | 6466 | * toolbar/copy.*, toolbar/cut.*, toolbar/diropen.*, toolbar/exit.* |
| 6141 | * toolbar/help.*, toolbar/home.*, toolbar/index.*, toolbar/info.*: | 6467 | * toolbar/help.*, toolbar/home.*, toolbar/index.*, toolbar/info.* |
| 6142 | * toolbar/mail.*, toolbar/new.*, toolbar/open.*, toolbar/paste.*: | 6468 | * toolbar/mail.*, toolbar/new.*, toolbar/open.*, toolbar/paste.* |
| 6143 | * toolbar/preferences.*, toolbar/print.*, toolbar/save.*: | 6469 | * toolbar/preferences.*, toolbar/print.*, toolbar/save.* |
| 6144 | * toolbar/saveas.*, toolbar/search.*, toolbar/search-replace.*: | 6470 | * toolbar/saveas.*, toolbar/search.*, toolbar/search-replace.* |
| 6145 | * toolbar/spell.*, toolbar/undo.*: Move to etc/images. | 6471 | * toolbar/spell.*, toolbar/undo.*: Move to etc/images. |
| 6146 | 6472 | ||
| 6147 | * toolbar/lc-copy.*: Move to etc/images/low-color/copy.*. | 6473 | * toolbar/lc-copy.*: Move to etc/images/low-color/copy.*. |
| @@ -6241,7 +6567,7 @@ | |||
| 6241 | 6567 | ||
| 6242 | * diff-mode.el (diff-mode): Doc fix. | 6568 | * diff-mode.el (diff-mode): Doc fix. |
| 6243 | 6569 | ||
| 6244 | 2005-10-16 David Reitter <david.reitter@gmail.com> | 6570 | 2005-10-16 David Reitter <david.reitter@gmail.com> |
| 6245 | 6571 | ||
| 6246 | * mail/sendmail.el (send-mail-function): Use mailclient-send-it | 6572 | * mail/sendmail.el (send-mail-function): Use mailclient-send-it |
| 6247 | as default on darwin and windows systems. | 6573 | as default on darwin and windows systems. |
| @@ -6433,8 +6759,8 @@ | |||
| 6433 | 6759 | ||
| 6434 | 2005-10-12 Bill Wohler <wohler@newt.com> | 6760 | 2005-10-12 Bill Wohler <wohler@newt.com> |
| 6435 | 6761 | ||
| 6436 | * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads. | 6762 | * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads. |
| 6437 | (mh-autoloads): New. Builds mh-e/mh-loaddefs.el. Rebuilds if any | 6763 | (mh-autoloads): New. Builds mh-e/mh-loaddefs.el. Rebuilds if any |
| 6438 | files in MH-E-SRC have been updated. | 6764 | files in MH-E-SRC have been updated. |
| 6439 | (updates, compile, recompile, bootstrap): Depend on mh-autoloads. | 6765 | (updates, compile, recompile, bootstrap): Depend on mh-autoloads. |
| 6440 | 6766 | ||
| @@ -7073,7 +7399,7 @@ | |||
| 7073 | 7399 | ||
| 7074 | * toolbar/rescan.*: Move and rename to etc/images/refresh.*. | 7400 | * toolbar/rescan.*: Move and rename to etc/images/refresh.*. |
| 7075 | 7401 | ||
| 7076 | 2005-09-30 Eric M. Ludlam <zappo@gnu.org> | 7402 | 2005-09-30 Eric M. Ludlam <zappo@gnu.org> |
| 7077 | 7403 | ||
| 7078 | * speedbar.el: New version 1.0pre3. | 7404 | * speedbar.el: New version 1.0pre3. |
| 7079 | 7405 | ||
| @@ -7275,7 +7601,7 @@ | |||
| 7275 | color rxvt terminals by using the code xterm.el used to use before | 7601 | color rxvt terminals by using the code xterm.el used to use before |
| 7276 | 2005-04-09 in order to match the colors used by rxvt. | 7602 | 2005-04-09 in order to match the colors used by rxvt. |
| 7277 | 7603 | ||
| 7278 | 2005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) | 7604 | 2005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) |
| 7279 | 7605 | ||
| 7280 | * term/rxvt.el (rxvt-register-default-colors): Add support for 88 | 7606 | * term/rxvt.el (rxvt-register-default-colors): Add support for 88 |
| 7281 | colors rxvt-unicode terminals by using the same code as xterm.el. | 7607 | colors rxvt-unicode terminals by using the same code as xterm.el. |
| @@ -8058,7 +8384,7 @@ | |||
| 8058 | 2005-09-02 Dan Nicolaescu <dann@ics.uci.edu> | 8384 | 2005-09-02 Dan Nicolaescu <dann@ics.uci.edu> |
| 8059 | 8385 | ||
| 8060 | * term/xterm.el (terminal-init-xterm): Add eval-when-compile to | 8386 | * term/xterm.el (terminal-init-xterm): Add eval-when-compile to |
| 8061 | fix compilation warning. Reorder the key definitions to group | 8387 | fix compilation warning. Reorder the key definitions to group |
| 8062 | together keys emitted by the current version of xterm. | 8388 | together keys emitted by the current version of xterm. |
| 8063 | 8389 | ||
| 8064 | * progmodes/vhdl-mode.el (vhdl-highlight-faces) | 8390 | * progmodes/vhdl-mode.el (vhdl-highlight-faces) |
| @@ -8140,7 +8466,7 @@ | |||
| 8140 | (vhdl-get-visible-signals): Fix signal name searching. | 8466 | (vhdl-get-visible-signals): Fix signal name searching. |
| 8141 | (vhdl-port-flatten, vhdl-port-reverse-direction): Better message. | 8467 | (vhdl-port-flatten, vhdl-port-reverse-direction): Better message. |
| 8142 | (vhdl-fixup-whitespace-region): Fix for character | 8468 | (vhdl-fixup-whitespace-region): Fix for character |
| 8143 | literals (e.g. ':'). | 8469 | literals (e.g. `:'). |
| 8144 | 8470 | ||
| 8145 | 2005-08-31 Juanma Barranquero <lekktu@gmail.com> | 8471 | 2005-08-31 Juanma Barranquero <lekktu@gmail.com> |
| 8146 | 8472 | ||
| @@ -8933,7 +9259,7 @@ | |||
| 8933 | 2005-08-10 Lars Hansen <larsh@soem.dk> | 9259 | 2005-08-10 Lars Hansen <larsh@soem.dk> |
| 8934 | 9260 | ||
| 8935 | * desktop.el (desktop-buffer-mode-handlers): | 9261 | * desktop.el (desktop-buffer-mode-handlers): |
| 8936 | Make non-customizable. Add autoload cookie. Change initial value to | 9262 | Make non-customizable. Add autoload cookie. Change initial value to |
| 8937 | nil; add elements in respective modules instead. Fix doc string. | 9263 | nil; add elements in respective modules instead. Fix doc string. |
| 8938 | (desktop-load-file): New function. | 9264 | (desktop-load-file): New function. |
| 8939 | (desktop-minor-mode-handlers): New autoloaded variable. | 9265 | (desktop-minor-mode-handlers): New autoloaded variable. |
| @@ -8949,7 +9275,7 @@ | |||
| 8949 | indicate-buffer-boundaries, indicate-empty-lines and | 9275 | indicate-buffer-boundaries, indicate-empty-lines and |
| 8950 | show-trailing-whitespace. | 9276 | show-trailing-whitespace. |
| 8951 | (desktop-clear): Allow desktop-clear-preserve-buffers to contain | 9277 | (desktop-clear): Allow desktop-clear-preserve-buffers to contain |
| 8952 | regexps. Don't use desktop-clear-preserve-buffers-regexp. | 9278 | regexps. Don't use desktop-clear-preserve-buffers-regexp. |
| 8953 | (desktop-clear-preserve-buffers-regexp): Delete. | 9279 | (desktop-clear-preserve-buffers-regexp): Delete. |
| 8954 | (desktop-clear-preserve-buffers): Update initial value and docstring. | 9280 | (desktop-clear-preserve-buffers): Update initial value and docstring. |
| 8955 | (desktop-save-buffer): Fix doc string. | 9281 | (desktop-save-buffer): Fix doc string. |
| @@ -9575,7 +9901,7 @@ | |||
| 9575 | not `bookmark-exit-hooks'. Fix docstring. | 9901 | not `bookmark-exit-hooks'. Fix docstring. |
| 9576 | (bookmark-bmenu-select): "?\ " -> "?\s". | 9902 | (bookmark-bmenu-select): "?\ " -> "?\s". |
| 9577 | 9903 | ||
| 9578 | 2005-07-25 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change) | 9904 | 2005-07-25 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change) |
| 9579 | 9905 | ||
| 9580 | * startup.el (command-line): Fix typo. | 9906 | * startup.el (command-line): Fix typo. |
| 9581 | 9907 | ||
| @@ -9624,7 +9950,7 @@ | |||
| 9624 | (xterm-rxvt-set-background-mode): Remove, not used anymore. | 9950 | (xterm-rxvt-set-background-mode): Remove, not used anymore. |
| 9625 | 9951 | ||
| 9626 | * term/rxvt.el (function-key-map): Use substitute-key-definition | 9952 | * term/rxvt.el (function-key-map): Use substitute-key-definition |
| 9627 | to bind {C,S,C-S}-{f1-f10}. Add a few missing key bindings. | 9953 | to bind {C,S,C-S}-{f1-f10}. Add a few missing key bindings. |
| 9628 | 9954 | ||
| 9629 | * term/cygwin.el: New file. | 9955 | * term/cygwin.el: New file. |
| 9630 | 9956 | ||
| @@ -10338,7 +10664,7 @@ | |||
| 10338 | (mac-services-mail-to): New functions. | 10664 | (mac-services-mail-to): New functions. |
| 10339 | (mac-application-menu-map): Bind them. | 10665 | (mac-application-menu-map): Bind them. |
| 10340 | 10666 | ||
| 10341 | 2005-07-12 wulei <milton@wulei.net> (tiny change) | 10667 | 2005-07-12 wulei <milton@wulei.net> (tiny change) |
| 10342 | 10668 | ||
| 10343 | * progmodes/gdb-ui.el: Add note about buffering with Windows. | 10669 | * progmodes/gdb-ui.el: Add note about buffering with Windows. |
| 10344 | 10670 | ||
| @@ -12611,7 +12937,7 @@ | |||
| 12611 | 12937 | ||
| 12612 | * textmodes/ispell.el (ispell-check-version): | 12938 | * textmodes/ispell.el (ispell-check-version): |
| 12613 | Use match-string-no-properties. | 12939 | Use match-string-no-properties. |
| 12614 | (ispell-region, ispell-buffer-local-parsing, ispell-buffer-local-dict) | 12940 | (ispell-region, ispell-buffer-local-parsing, ispell-buffer-local-dict) |
| 12615 | (ispell-buffer-local-words): Likewise. | 12941 | (ispell-buffer-local-words): Likewise. |
| 12616 | 12942 | ||
| 12617 | * progmodes/make-mode.el (makefile-shell-face): Make this a no-op | 12943 | * progmodes/make-mode.el (makefile-shell-face): Make this a no-op |
| @@ -14811,12 +15137,12 @@ | |||
| 14811 | with mode-require-final-newline. | 15137 | with mode-require-final-newline. |
| 14812 | (mode-require-final-newline): Doc fix. | 15138 | (mode-require-final-newline): Doc fix. |
| 14813 | 15139 | ||
| 14814 | 2005-05-01 Stefan Monnier <monnier@iro.umontreal.ca> | 15140 | 2005-05-01 Stefan Monnier <monnier@iro.umontreal.ca> |
| 14815 | 15141 | ||
| 14816 | * international/latexenc.el (latexenc-find-file-coding-system): | 15142 | * international/latexenc.el (latexenc-find-file-coding-system): |
| 14817 | Fix regular expressions. | 15143 | Fix regular expressions. |
| 14818 | 15144 | ||
| 14819 | 2005-05-01 David Kastrup <dak@gnu.org> | 15145 | 2005-05-01 David Kastrup <dak@gnu.org> |
| 14820 | 15146 | ||
| 14821 | * international/latexenc.el (latexenc-find-file-coding-system): | 15147 | * international/latexenc.el (latexenc-find-file-coding-system): |
| 14822 | Fix regular expressions. | 15148 | Fix regular expressions. |
| @@ -14883,7 +15209,7 @@ | |||
| 14883 | (org-prefix-format-compiled): New variable. | 15209 | (org-prefix-format-compiled): New variable. |
| 14884 | (org-compile-prefix-format): New function. | 15210 | (org-compile-prefix-format): New function. |
| 14885 | (org-timeline, org-agenda, org-diary): Call org-compile-prefix-format. | 15211 | (org-timeline, org-agenda, org-diary): Call org-compile-prefix-format. |
| 14886 | (org-agenda-prefix-format,org-timeline-prefix-format): New options. | 15212 | (org-agenda-prefix-format, org-timeline-prefix-format): New options. |
| 14887 | (org-agenda-get-scheduled): Check if file is opened in `org-mode'. | 15213 | (org-agenda-get-scheduled): Check if file is opened in `org-mode'. |
| 14888 | (org-get-entries-from-diary): Use `org-get-time-of-day' for | 15214 | (org-get-entries-from-diary): Use `org-get-time-of-day' for |
| 14889 | consistency with entries from `org-mode' files. | 15215 | consistency with entries from `org-mode' files. |
| @@ -15494,7 +15820,7 @@ | |||
| 15494 | (org-mode): Insert first line "*-* mode: org-mode -*-" when called | 15820 | (org-mode): Insert first line "*-* mode: org-mode -*-" when called |
| 15495 | interactively in empty file and option | 15821 | interactively in empty file and option |
| 15496 | `org-insert-mode-line-in-empty-file' has been set. | 15822 | `org-insert-mode-line-in-empty-file' has been set. |
| 15497 | (org-agenda-todo,org-agenda-priority): Modify to use | 15823 | (org-agenda-todo, org-agenda-priority): Modify to use |
| 15498 | `org-agenda-change-all-lines'. | 15824 | `org-agenda-change-all-lines'. |
| 15499 | (org-warning-face): Change color on dark background | 15825 | (org-warning-face): Change color on dark background |
| 15500 | 15826 | ||
| @@ -16641,16 +16967,16 @@ | |||
| 16641 | 16967 | ||
| 16642 | 2005-03-25 Werner Lemberg <wl@gnu.org> | 16968 | 2005-03-25 Werner Lemberg <wl@gnu.org> |
| 16643 | 16969 | ||
| 16644 | * calc/calc-forms.el, calc/calc-sel.el: | 16970 | * calc/calc-forms.el, calc/calc-sel.el |
| 16645 | * midnight.el, vc-cvs.el: | 16971 | * midnight.el, vc-cvs.el |
| 16646 | * emacs-lisp/cl-macs.el: | 16972 | * emacs-lisp/cl-macs.el |
| 16647 | * emulation/vip.el: | 16973 | * emulation/vip.el |
| 16648 | * eshell/esh-io.el, eshell/esh-var.el: | 16974 | * eshell/esh-io.el, eshell/esh-var.el |
| 16649 | * mail/supercite.el: | 16975 | * mail/supercite.el |
| 16650 | * progmodes/ebnf-abn.el, progmodes/ebnf-bnf.el | 16976 | * progmodes/ebnf-abn.el, progmodes/ebnf-bnf.el |
| 16651 | * progmodes/ebnf-ebx.el, progmodes/ebnf-dtd.el, progmodes/ebnf-iso.el | 16977 | * progmodes/ebnf-ebx.el, progmodes/ebnf-dtd.el, progmodes/ebnf-iso.el |
| 16652 | * progmodes/ebnf-yac.el, progmodes/ebnf2ps.el, progmodes/idlwave.el | 16978 | * progmodes/ebnf-yac.el, progmodes/ebnf2ps.el, progmodes/idlwave.el |
| 16653 | * progmodes/sh-script.el, progmodes/xscheme.el: | 16979 | * progmodes/sh-script.el, progmodes/xscheme.el |
| 16654 | * textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el | 16980 | * textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el |
| 16655 | * textmodes/reftex-index.el, textmodes/reftex-parse.el | 16981 | * textmodes/reftex-index.el, textmodes/reftex-parse.el |
| 16656 | * textmodes/reftex-ref.el, textmodes/reftex-vars.el | 16982 | * textmodes/reftex-ref.el, textmodes/reftex-vars.el |
| @@ -16767,7 +17093,7 @@ | |||
| 16767 | 17093 | ||
| 16768 | 2005-03-23 David Ponce <david@dponce.com> | 17094 | 2005-03-23 David Ponce <david@dponce.com> |
| 16769 | 17095 | ||
| 16770 | * recentf.el: (recentf-keep): New option. | 17096 | * recentf.el (recentf-keep): New option. |
| 16771 | (recentf-menu-action): Default to `find-file'. | 17097 | (recentf-menu-action): Default to `find-file'. |
| 16772 | (recentf-keep-non-readable-files-flag) | 17098 | (recentf-keep-non-readable-files-flag) |
| 16773 | (recentf-keep-non-readable-files-p) | 17099 | (recentf-keep-non-readable-files-p) |
| @@ -17966,9 +18292,9 @@ | |||
| 17966 | 2005-02-19 Michael Kifer <kifer@cs.stonybrook.edu> | 18292 | 2005-02-19 Michael Kifer <kifer@cs.stonybrook.edu> |
| 17967 | 18293 | ||
| 17968 | * ediff.el (ediff-set-diff-overlays-in-one-buffer) | 18294 | * ediff.el (ediff-set-diff-overlays-in-one-buffer) |
| 17969 | (ediff-set-fine-overlays-in-one-buffer,ediff-goto-word): Make sure | 18295 | (ediff-set-fine-overlays-in-one-buffer, ediff-goto-word): Make sure |
| 17970 | we use the syntax table of the correct buffer. | 18296 | we use the syntax table of the correct buffer. |
| 17971 | (ediff-same-file-contents,ediff-same-contents): Enhancements thanks to | 18297 | (ediff-same-file-contents, ediff-same-contents): Enhancements thanks to |
| 17972 | Felix Gatzemeier. | 18298 | Felix Gatzemeier. |
| 17973 | 18299 | ||
| 17974 | * ediff-init.el (ediff-hide-face): Check for definedness of functions. | 18300 | * ediff-init.el (ediff-hide-face): Check for definedness of functions. |
| @@ -18842,7 +19168,7 @@ | |||
| 18842 | (rmail-movemail-variant-in-use): New variables. | 19168 | (rmail-movemail-variant-in-use): New variables. |
| 18843 | (rmail-remote-password, rmail-remote-password-required): | 19169 | (rmail-remote-password, rmail-remote-password-required): |
| 18844 | New customization variables. | 19170 | New customization variables. |
| 18845 | (rmail-probe,rmail-autodetect, rmail-movemail-variant-p): New funs. | 19171 | (rmail-probe, rmail-autodetect, rmail-movemail-variant-p): New funs. |
| 18846 | (rmail-parse-url): New function. | 19172 | (rmail-parse-url): New function. |
| 18847 | (rmail-get-new-mail, rmail-insert-inbox-text): Update for use | 19173 | (rmail-get-new-mail, rmail-insert-inbox-text): Update for use |
| 18848 | with GNU mailutils movemail. | 19174 | with GNU mailutils movemail. |
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10 index 51cda269238..395ba326ce3 100644 --- a/lisp/ChangeLog.10 +++ b/lisp/ChangeLog.10 | |||
| @@ -19133,6 +19133,10 @@ | |||
| 19133 | 19133 | ||
| 19134 | * menu-bar.el (menu-bar-showhide-menu): Rename functions for toggling. | 19134 | * menu-bar.el (menu-bar-showhide-menu): Rename functions for toggling. |
| 19135 | 19135 | ||
| 19136 | 2002-02-10 Stephen J. Turnbull <stephen@xemacs.org> | ||
| 19137 | |||
| 19138 | * ediff-init.el (ediff-has-gutter-support): What was this? | ||
| 19139 | |||
| 19136 | 2002-02-10 Michael Kifer <kifer@cs.stonybrook.edu> | 19140 | 2002-02-10 Michael Kifer <kifer@cs.stonybrook.edu> |
| 19137 | 19141 | ||
| 19138 | * viper-util.el (viper-read-key-sequence): Fix so it'll read | 19142 | * viper-util.el (viper-read-key-sequence): Fix so it'll read |
| @@ -19142,8 +19146,6 @@ | |||
| 19142 | * viper.el (describe-key, describe-key-briefly): Get rid of | 19146 | * viper.el (describe-key, describe-key-briefly): Get rid of |
| 19143 | viper-events-to-keys. | 19147 | viper-events-to-keys. |
| 19144 | 19148 | ||
| 19145 | * ediff-init.el (ediff-has-gutter-support): Steven Turnbull's patch. | ||
| 19146 | |||
| 19147 | * ediff-wind.el (ediff-setup-control-frame): | 19149 | * ediff-wind.el (ediff-setup-control-frame): |
| 19148 | Use ediff-has-gutter-support. | 19150 | Use ediff-has-gutter-support. |
| 19149 | 19151 | ||
diff --git a/lisp/battery.el b/lisp/battery.el index 710be5a4220..54a0e207ffc 100644 --- a/lisp/battery.el +++ b/lisp/battery.el | |||
| @@ -271,6 +271,8 @@ The following %-sequences are provided: | |||
| 271 | %h Remaining time in hours | 271 | %h Remaining time in hours |
| 272 | %t Remaining time in the form `h:min'" | 272 | %t Remaining time in the form `h:min'" |
| 273 | (let ((design-capacity 0) | 273 | (let ((design-capacity 0) |
| 274 | (last-full-capacity 0) | ||
| 275 | full-capacity | ||
| 274 | (warn 0) | 276 | (warn 0) |
| 275 | (low 0) | 277 | (low 0) |
| 276 | capacity rate rate-type charging-state minutes hours) | 278 | capacity rate rate-type charging-state minutes hours) |
| @@ -310,18 +312,25 @@ The following %-sequences are provided: | |||
| 310 | (when (re-search-forward "design capacity: +\\([0-9]+\\) m[AW]h$" | 312 | (when (re-search-forward "design capacity: +\\([0-9]+\\) m[AW]h$" |
| 311 | nil t) | 313 | nil t) |
| 312 | (incf design-capacity (string-to-number (match-string 1)))) | 314 | (incf design-capacity (string-to-number (match-string 1)))) |
| 315 | (when (re-search-forward "last full capacity: +\\([0-9]+\\) m[AW]h$" | ||
| 316 | nil t) | ||
| 317 | (incf last-full-capacity (string-to-number (match-string 1)))) | ||
| 313 | (when (re-search-forward | 318 | (when (re-search-forward |
| 314 | "design capacity warning: +\\([0-9]+\\) m[AW]h$" nil t) | 319 | "design capacity warning: +\\([0-9]+\\) m[AW]h$" nil t) |
| 315 | (incf warn (string-to-number (match-string 1)))) | 320 | (incf warn (string-to-number (match-string 1)))) |
| 316 | (when (re-search-forward "design capacity low: +\\([0-9]+\\) m[AW]h$" | 321 | (when (re-search-forward "design capacity low: +\\([0-9]+\\) m[AW]h$" |
| 317 | nil t) | 322 | nil t) |
| 318 | (incf low (string-to-number (match-string 1))))))) | 323 | (incf low (string-to-number (match-string 1))))))) |
| 324 | (setq full-capacity (if (> last-full-capacity 0) | ||
| 325 | last-full-capacity design-capacity)) | ||
| 319 | (and capacity rate | 326 | (and capacity rate |
| 320 | (setq minutes (if (zerop rate) 0 | 327 | (setq minutes (if (zerop rate) 0 |
| 321 | (floor (* (/ (float (if (string= charging-state | 328 | (floor (* (/ (float (if (string= charging-state |
| 322 | "charging") | 329 | "charging") |
| 323 | (- design-capacity capacity) | 330 | (- full-capacity capacity) |
| 324 | capacity)) rate) 60))) | 331 | capacity)) |
| 332 | rate) | ||
| 333 | 60))) | ||
| 325 | hours (/ minutes 60))) | 334 | hours (/ minutes 60))) |
| 326 | (list (cons ?c (or (and capacity (number-to-string capacity)) "N/A")) | 335 | (list (cons ?c (or (and capacity (number-to-string capacity)) "N/A")) |
| 327 | (cons ?L (or (when (file-exists-p "/proc/acpi/ac_adapter/AC/state") | 336 | (cons ?L (or (when (file-exists-p "/proc/acpi/ac_adapter/AC/state") |
| @@ -368,10 +377,10 @@ The following %-sequences are provided: | |||
| 368 | (cons ?t (or (and minutes | 377 | (cons ?t (or (and minutes |
| 369 | (format "%d:%02d" hours (- minutes (* 60 hours)))) | 378 | (format "%d:%02d" hours (- minutes (* 60 hours)))) |
| 370 | "N/A")) | 379 | "N/A")) |
| 371 | (cons ?p (or (and design-capacity capacity | 380 | (cons ?p (or (and full-capacity capacity |
| 372 | (number-to-string | 381 | (number-to-string |
| 373 | (floor (/ capacity | 382 | (floor (/ capacity |
| 374 | (/ (float design-capacity) 100))))) | 383 | (/ (float full-capacity) 100))))) |
| 375 | "N/A"))))) | 384 | "N/A"))))) |
| 376 | 385 | ||
| 377 | 386 | ||
diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index dc341cb7aec..64e0b4b7d10 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el | |||
| @@ -1201,7 +1201,7 @@ | |||
| 1201 | (and (math-known-scalarp b) | 1201 | (and (math-known-scalarp b) |
| 1202 | (math-add (nth 1 a) b)))) | 1202 | (math-add (nth 1 a) b)))) |
| 1203 | (and (eq (car-safe b) 'calcFunc-idn) | 1203 | (and (eq (car-safe b) 'calcFunc-idn) |
| 1204 | (= (length a) 2) | 1204 | (= (length b) 2) |
| 1205 | (or (and (math-square-matrixp a) | 1205 | (or (and (math-square-matrixp a) |
| 1206 | (math-add a (math-mimic-ident (nth 1 b) a))) | 1206 | (math-add a (math-mimic-ident (nth 1 b) a))) |
| 1207 | (and (math-known-scalarp a) | 1207 | (and (math-known-scalarp a) |
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index c0fa5310bf4..849ec42c5f6 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el | |||
| @@ -2012,7 +2012,7 @@ | |||
| 2012 | n (1+ n) | 2012 | n (1+ n) |
| 2013 | t1 (cdr t1))) | 2013 | t1 (cdr t1))) |
| 2014 | (setq n (math-build-polynomial-expr poly high)) | 2014 | (setq n (math-build-polynomial-expr poly high)) |
| 2015 | (if (memq low '(0 1)) | 2015 | (if (= low 1) |
| 2016 | n | 2016 | n |
| 2017 | (math-sub n (math-build-polynomial-expr poly | 2017 | (math-sub n (math-build-polynomial-expr poly |
| 2018 | (math-sub low 1)))))) | 2018 | (math-sub low 1)))))) |
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index 0f8e7295d32..c377bcc8735 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; cal-menu.el --- calendar functions for menu bar and popup menu support | 1 | ;;; cal-menu.el --- calendar functions for menu bar and popup menu support |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005 | 3 | ;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006 |
| 4 | ;; Free Software Foundation, Inc. | 4 | ;; Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
| @@ -42,7 +42,9 @@ | |||
| 42 | (defvar displayed-month) | 42 | (defvar displayed-month) |
| 43 | (defvar displayed-year) | 43 | (defvar displayed-year) |
| 44 | 44 | ||
| 45 | (eval-when-compile (require 'calendar)) | 45 | ;; Don't require calendar because calendar requires us. |
| 46 | ;; (eval-when-compile (require 'calendar)) | ||
| 47 | (defvar calendar-mode-map) | ||
| 46 | 48 | ||
| 47 | (define-key calendar-mode-map [menu-bar edit] 'undefined) | 49 | (define-key calendar-mode-map [menu-bar edit] 'undefined) |
| 48 | (define-key calendar-mode-map [menu-bar search] 'undefined) | 50 | (define-key calendar-mode-map [menu-bar search] 'undefined) |
| @@ -211,14 +213,14 @@ not available." | |||
| 211 | (condition-case nil | 213 | (condition-case nil |
| 212 | (if (eq major-mode 'calendar-mode) | 214 | (if (eq major-mode 'calendar-mode) |
| 213 | (let ((l)) | 215 | (let ((l)) |
| 214 | (calendar-for-loop;; Show 11 years--5 before, 5 after year of | 216 | ;; Show 11 years--5 before, 5 after year of middle month |
| 215 | ;; middle month | 217 | (dotimes (i 11) |
| 216 | i from (- displayed-year 5) to (+ displayed-year 5) do | 218 | (let ((y (+ displayed-year -5 i))) |
| 217 | (setq l (cons (vector (format "For Year %s" i) | 219 | (push (vector (format "For Year %s" y) |
| 218 | (list (list 'lambda 'nil '(interactive) | 220 | (list (list 'lambda 'nil '(interactive) |
| 219 | (list 'list-holidays i i))) | 221 | (list 'list-holidays y y))) |
| 220 | t) | 222 | t) |
| 221 | l))) | 223 | l))) |
| 222 | (setq l (cons ["Mark Holidays" mark-calendar-holidays t] | 224 | (setq l (cons ["Mark Holidays" mark-calendar-holidays t] |
| 223 | (cons ["Unmark Calendar" calendar-unmark t] | 225 | (cons ["Unmark Calendar" calendar-unmark t] |
| 224 | (cons "--" l)))) | 226 | (cons "--" l)))) |
| @@ -231,22 +233,18 @@ not available." | |||
| 231 | (calendar-date-string (calendar-current-date) t t)) | 233 | (calendar-date-string (calendar-current-date) t t)) |
| 232 | . cal-menu-today-holidays)) | 234 | . cal-menu-today-holidays)) |
| 233 | (let ((title | 235 | (let ((title |
| 234 | (let ((m1 displayed-month) | 236 | (let ((my1 (calendar-increment-month -1)) |
| 235 | (y1 displayed-year) | 237 | (my2 (calendar-increment-month 1))) |
| 236 | (m2 displayed-month) | 238 | (if (= (cdr my1) (cdr my2)) |
| 237 | (y2 displayed-year)) | ||
| 238 | (increment-calendar-month m1 y1 -1) | ||
| 239 | (increment-calendar-month m2 y2 1) | ||
| 240 | (if (= y1 y2) | ||
| 241 | (format "%s-%s, %d" | 239 | (format "%s-%s, %d" |
| 242 | (calendar-month-name m1 'abbrev) | 240 | (calendar-month-name (car my1) 'abbrev) |
| 243 | (calendar-month-name m2 'abbrev) | 241 | (calendar-month-name (car my2) 'abbrev) |
| 244 | y2) | 242 | (cdr my2)) |
| 245 | (format "%s, %d-%s, %d" | 243 | (format "%s, %d-%s, %d" |
| 246 | (calendar-month-name m1 'abbrev) | 244 | (calendar-month-name (car my1) 'abbrev) |
| 247 | y1 | 245 | (cdr my1) |
| 248 | (calendar-month-name m2 'abbrev) | 246 | (calendar-month-name (car my2) 'abbrev) |
| 249 | y2))))) | 247 | (cdr my2)))))) |
| 250 | (define-key calendar-mode-map [menu-bar Holidays 3-month] | 248 | (define-key calendar-mode-map [menu-bar Holidays 3-month] |
| 251 | `(,(format "For Window (%s)" title) | 249 | `(,(format "For Window (%s)" title) |
| 252 | . list-calendar-holidays))) | 250 | . list-calendar-holidays))) |
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 1ef8d048c88..f01f4305708 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; calendar.el --- calendar functions | 1 | ;;; calendar.el --- calendar functions |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, | 3 | ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, |
| 4 | ;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 4 | ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
| 7 | ;; Maintainer: Glenn Morris <rgm@gnu.org> | 7 | ;; Maintainer: Glenn Morris <rgm@gnu.org> |
| @@ -98,11 +98,10 @@ | |||
| 98 | 98 | ||
| 99 | ;;; Code: | 99 | ;;; Code: |
| 100 | 100 | ||
| 101 | (eval-when-compile | 101 | (defvar displayed-month) |
| 102 | (defvar displayed-month) | 102 | (defvar displayed-year) |
| 103 | (defvar displayed-year) | 103 | (defvar calendar-month-name-array) |
| 104 | (defvar calendar-month-name-array) | 104 | (defvar calendar-starred-day) |
| 105 | (defvar calendar-starred-day)) | ||
| 106 | 105 | ||
| 107 | (defun calendar-version () | 106 | (defun calendar-version () |
| 108 | (interactive) | 107 | (interactive) |
| @@ -146,7 +145,7 @@ | |||
| 146 | 145 | ||
| 147 | ;;;###autoload | 146 | ;;;###autoload |
| 148 | (defcustom calendar-offset 0 | 147 | (defcustom calendar-offset 0 |
| 149 | "*The offset of the principal month from the center of the calendar window. | 148 | "The offset of the principal month from the center of the calendar window. |
| 150 | 0 means the principal month is in the center (default), -1 means on the left, | 149 | 0 means the principal month is in the center (default), -1 means on the left, |
| 151 | +1 means on the right. Larger (or smaller) values push the principal month off | 150 | +1 means on the right. Larger (or smaller) values push the principal month off |
| 152 | the screen." | 151 | the screen." |
| @@ -155,7 +154,7 @@ the screen." | |||
| 155 | 154 | ||
| 156 | ;;;###autoload | 155 | ;;;###autoload |
| 157 | (defcustom view-diary-entries-initially nil | 156 | (defcustom view-diary-entries-initially nil |
| 158 | "*Non-nil means display current date's diary entries on entry to calendar. | 157 | "Non-nil means display current date's diary entries on entry to calendar. |
| 159 | The diary is displayed in another window when the calendar is first displayed, | 158 | The diary is displayed in another window when the calendar is first displayed, |
| 160 | if the current date is visible. The number of days of diary entries displayed | 159 | if the current date is visible. The number of days of diary entries displayed |
| 161 | is governed by the variable `number-of-diary-entries'. This variable can | 160 | is governed by the variable `number-of-diary-entries'. This variable can |
| @@ -165,14 +164,14 @@ be overridden by the value of `calendar-setup'." | |||
| 165 | 164 | ||
| 166 | ;;;###autoload | 165 | ;;;###autoload |
| 167 | (defcustom mark-diary-entries-in-calendar nil | 166 | (defcustom mark-diary-entries-in-calendar nil |
| 168 | "*Non-nil means mark dates with diary entries, in the calendar window. | 167 | "Non-nil means mark dates with diary entries, in the calendar window. |
| 169 | The marking symbol is specified by the variable `diary-entry-marker'." | 168 | The marking symbol is specified by the variable `diary-entry-marker'." |
| 170 | :type 'boolean | 169 | :type 'boolean |
| 171 | :group 'diary) | 170 | :group 'diary) |
| 172 | 171 | ||
| 173 | ;;;###autoload | 172 | ;;;###autoload |
| 174 | (defcustom calendar-remove-frame-by-deleting nil | 173 | (defcustom calendar-remove-frame-by-deleting nil |
| 175 | "*Determine how the calendar mode removes a frame no longer needed. | 174 | "Determine how the calendar mode removes a frame no longer needed. |
| 176 | If nil, make an icon of the frame. If non-nil, delete the frame." | 175 | If nil, make an icon of the frame. If non-nil, delete the frame." |
| 177 | :type 'boolean | 176 | :type 'boolean |
| 178 | :group 'view) | 177 | :group 'view) |
| @@ -224,7 +223,7 @@ If nil, make an icon of the frame. If non-nil, delete the frame." | |||
| 224 | (if (not (display-color-p)) | 223 | (if (not (display-color-p)) |
| 225 | "+" | 224 | "+" |
| 226 | 'diary) | 225 | 'diary) |
| 227 | "*How to mark dates that have diary entries. | 226 | "How to mark dates that have diary entries. |
| 228 | The value can be either a single-character string or a face." | 227 | The value can be either a single-character string or a face." |
| 229 | :type '(choice string face) | 228 | :type '(choice string face) |
| 230 | :group 'diary) | 229 | :group 'diary) |
| @@ -233,7 +232,7 @@ The value can be either a single-character string or a face." | |||
| 233 | (if (not (display-color-p)) | 232 | (if (not (display-color-p)) |
| 234 | "=" | 233 | "=" |
| 235 | 'calendar-today) | 234 | 'calendar-today) |
| 236 | "*How to mark today's date in the calendar. | 235 | "How to mark today's date in the calendar. |
| 237 | The value can be either a single-character string or a face. | 236 | The value can be either a single-character string or a face. |
| 238 | Marking today's date is done only if you set up `today-visible-calendar-hook' | 237 | Marking today's date is done only if you set up `today-visible-calendar-hook' |
| 239 | to request that." | 238 | to request that." |
| @@ -244,14 +243,14 @@ to request that." | |||
| 244 | (if (not (display-color-p)) | 243 | (if (not (display-color-p)) |
| 245 | "*" | 244 | "*" |
| 246 | 'holiday) | 245 | 'holiday) |
| 247 | "*How to mark notable dates in the calendar. | 246 | "How to mark notable dates in the calendar. |
| 248 | The value can be either a single-character string or a face." | 247 | The value can be either a single-character string or a face." |
| 249 | :type '(choice string face) | 248 | :type '(choice string face) |
| 250 | :group 'calendar) | 249 | :group 'calendar) |
| 251 | 250 | ||
| 252 | ;;;###autoload | 251 | ;;;###autoload |
| 253 | (defcustom view-calendar-holidays-initially nil | 252 | (defcustom view-calendar-holidays-initially nil |
| 254 | "*Non-nil means display holidays for current three month period on entry. | 253 | "Non-nil means display holidays for current three month period on entry. |
| 255 | The holidays are displayed in another window when the calendar is first | 254 | The holidays are displayed in another window when the calendar is first |
| 256 | displayed." | 255 | displayed." |
| 257 | :type 'boolean | 256 | :type 'boolean |
| @@ -259,14 +258,14 @@ displayed." | |||
| 259 | 258 | ||
| 260 | ;;;###autoload | 259 | ;;;###autoload |
| 261 | (defcustom mark-holidays-in-calendar nil | 260 | (defcustom mark-holidays-in-calendar nil |
| 262 | "*Non-nil means mark dates of holidays in the calendar window. | 261 | "Non-nil means mark dates of holidays in the calendar window. |
| 263 | The marking symbol is specified by the variable `calendar-holiday-marker'." | 262 | The marking symbol is specified by the variable `calendar-holiday-marker'." |
| 264 | :type 'boolean | 263 | :type 'boolean |
| 265 | :group 'holidays) | 264 | :group 'holidays) |
| 266 | 265 | ||
| 267 | ;;;###autoload | 266 | ;;;###autoload |
| 268 | (defcustom all-hebrew-calendar-holidays nil | 267 | (defcustom all-hebrew-calendar-holidays nil |
| 269 | "*If nil, show only major holidays from the Hebrew calendar. | 268 | "If nil, show only major holidays from the Hebrew calendar. |
| 270 | This means only those Jewish holidays that appear on secular calendars. | 269 | This means only those Jewish holidays that appear on secular calendars. |
| 271 | 270 | ||
| 272 | If t, show all the holidays that would appear in a complete Hebrew calendar." | 271 | If t, show all the holidays that would appear in a complete Hebrew calendar." |
| @@ -275,7 +274,7 @@ If t, show all the holidays that would appear in a complete Hebrew calendar." | |||
| 275 | 274 | ||
| 276 | ;;;###autoload | 275 | ;;;###autoload |
| 277 | (defcustom all-christian-calendar-holidays nil | 276 | (defcustom all-christian-calendar-holidays nil |
| 278 | "*If nil, show only major holidays from the Christian calendar. | 277 | "If nil, show only major holidays from the Christian calendar. |
| 279 | This means only those Christian holidays that appear on secular calendars. | 278 | This means only those Christian holidays that appear on secular calendars. |
| 280 | 279 | ||
| 281 | If t, show all the holidays that would appear in a complete Christian | 280 | If t, show all the holidays that would appear in a complete Christian |
| @@ -285,7 +284,7 @@ calendar." | |||
| 285 | 284 | ||
| 286 | ;;;###autoload | 285 | ;;;###autoload |
| 287 | (defcustom all-islamic-calendar-holidays nil | 286 | (defcustom all-islamic-calendar-holidays nil |
| 288 | "*If nil, show only major holidays from the Islamic calendar. | 287 | "If nil, show only major holidays from the Islamic calendar. |
| 289 | This means only those Islamic holidays that appear on secular calendars. | 288 | This means only those Islamic holidays that appear on secular calendars. |
| 290 | 289 | ||
| 291 | If t, show all the holidays that would appear in a complete Islamic | 290 | If t, show all the holidays that would appear in a complete Islamic |
| @@ -294,13 +293,13 @@ calendar." | |||
| 294 | :group 'holidays) | 293 | :group 'holidays) |
| 295 | 294 | ||
| 296 | (defcustom diary-file-name-prefix-function (function (lambda (str) str)) | 295 | (defcustom diary-file-name-prefix-function (function (lambda (str) str)) |
| 297 | "*The function that will take a diary file name and return the desired prefix." | 296 | "The function that will take a diary file name and return the desired prefix." |
| 298 | :type 'function | 297 | :type 'function |
| 299 | :group 'diary) | 298 | :group 'diary) |
| 300 | 299 | ||
| 301 | ;;;###autoload | 300 | ;;;###autoload |
| 302 | (defcustom all-bahai-calendar-holidays nil | 301 | (defcustom all-bahai-calendar-holidays nil |
| 303 | "*If nil, show only major holidays from the Baha'i calendar. | 302 | "If nil, show only major holidays from the Baha'i calendar. |
| 304 | These are the days on which work and school must be suspended. | 303 | These are the days on which work and school must be suspended. |
| 305 | 304 | ||
| 306 | If t, show all the holidays that would appear in a complete Baha'i | 305 | If t, show all the holidays that would appear in a complete Baha'i |
| @@ -310,14 +309,14 @@ calendar." | |||
| 310 | 309 | ||
| 311 | ;;;###autoload | 310 | ;;;###autoload |
| 312 | (defcustom calendar-load-hook nil | 311 | (defcustom calendar-load-hook nil |
| 313 | "*List of functions to be called after the calendar is first loaded. | 312 | "List of functions to be called after the calendar is first loaded. |
| 314 | This is the place to add key bindings to `calendar-mode-map'." | 313 | This is the place to add key bindings to `calendar-mode-map'." |
| 315 | :type 'hook | 314 | :type 'hook |
| 316 | :group 'calendar-hooks) | 315 | :group 'calendar-hooks) |
| 317 | 316 | ||
| 318 | ;;;###autoload | 317 | ;;;###autoload |
| 319 | (defcustom initial-calendar-window-hook nil | 318 | (defcustom initial-calendar-window-hook nil |
| 320 | "*List of functions to be called when the calendar window is first opened. | 319 | "List of functions to be called when the calendar window is first opened. |
| 321 | The functions invoked are called after the calendar window is opened, but | 320 | The functions invoked are called after the calendar window is opened, but |
| 322 | once opened is never called again. Leaving the calendar with the `q' command | 321 | once opened is never called again. Leaving the calendar with the `q' command |
| 323 | and reentering it will cause these functions to be called again." | 322 | and reentering it will cause these functions to be called again." |
| @@ -326,7 +325,7 @@ and reentering it will cause these functions to be called again." | |||
| 326 | 325 | ||
| 327 | ;;;###autoload | 326 | ;;;###autoload |
| 328 | (defcustom today-visible-calendar-hook nil | 327 | (defcustom today-visible-calendar-hook nil |
| 329 | "*List of functions called whenever the current date is visible. | 328 | "List of functions called whenever the current date is visible. |
| 330 | This can be used, for example, to replace today's date with asterisks; a | 329 | This can be used, for example, to replace today's date with asterisks; a |
| 331 | function `calendar-star-date' is included for this purpose: | 330 | function `calendar-star-date' is included for this purpose: |
| 332 | (setq today-visible-calendar-hook 'calendar-star-date) | 331 | (setq today-visible-calendar-hook 'calendar-star-date) |
| @@ -346,7 +345,7 @@ functions that move by days and weeks." | |||
| 346 | 345 | ||
| 347 | ;;;###autoload | 346 | ;;;###autoload |
| 348 | (defcustom today-invisible-calendar-hook nil | 347 | (defcustom today-invisible-calendar-hook nil |
| 349 | "*List of functions called whenever the current date is not visible. | 348 | "List of functions called whenever the current date is not visible. |
| 350 | 349 | ||
| 351 | The corresponding variable `today-visible-calendar-hook' is the list of | 350 | The corresponding variable `today-visible-calendar-hook' is the list of |
| 352 | functions called when the calendar function was called when the current | 351 | functions called when the calendar function was called when the current |
| @@ -360,7 +359,7 @@ functions that move by days and weeks." | |||
| 360 | 359 | ||
| 361 | ;;;###autoload | 360 | ;;;###autoload |
| 362 | (defcustom calendar-move-hook nil | 361 | (defcustom calendar-move-hook nil |
| 363 | "*List of functions called whenever the cursor moves in the calendar. | 362 | "List of functions called whenever the cursor moves in the calendar. |
| 364 | 363 | ||
| 365 | For example, | 364 | For example, |
| 366 | 365 | ||
| @@ -372,7 +371,7 @@ redisplays the diary for whatever date the cursor is moved to." | |||
| 372 | 371 | ||
| 373 | ;;;###autoload | 372 | ;;;###autoload |
| 374 | (defcustom diary-file "~/diary" | 373 | (defcustom diary-file "~/diary" |
| 375 | "*Name of the file in which one's personal diary of dates is kept. | 374 | "Name of the file in which one's personal diary of dates is kept. |
| 376 | 375 | ||
| 377 | The file's entries are lines beginning with any of the forms | 376 | The file's entries are lines beginning with any of the forms |
| 378 | specified by the variable `american-date-diary-pattern', by default: | 377 | specified by the variable `american-date-diary-pattern', by default: |
| @@ -480,37 +479,37 @@ details, see the documentation for the variable `list-diary-entries-hook'." | |||
| 480 | 479 | ||
| 481 | ;;;###autoload | 480 | ;;;###autoload |
| 482 | (defcustom diary-nonmarking-symbol "&" | 481 | (defcustom diary-nonmarking-symbol "&" |
| 483 | "*Symbol indicating that a diary entry is not to be marked in the calendar." | 482 | "Symbol indicating that a diary entry is not to be marked in the calendar." |
| 484 | :type 'string | 483 | :type 'string |
| 485 | :group 'diary) | 484 | :group 'diary) |
| 486 | 485 | ||
| 487 | ;;;###autoload | 486 | ;;;###autoload |
| 488 | (defcustom hebrew-diary-entry-symbol "H" | 487 | (defcustom hebrew-diary-entry-symbol "H" |
| 489 | "*Symbol indicating a diary entry according to the Hebrew calendar." | 488 | "Symbol indicating a diary entry according to the Hebrew calendar." |
| 490 | :type 'string | 489 | :type 'string |
| 491 | :group 'diary) | 490 | :group 'diary) |
| 492 | 491 | ||
| 493 | ;;;###autoload | 492 | ;;;###autoload |
| 494 | (defcustom islamic-diary-entry-symbol "I" | 493 | (defcustom islamic-diary-entry-symbol "I" |
| 495 | "*Symbol indicating a diary entry according to the Islamic calendar." | 494 | "Symbol indicating a diary entry according to the Islamic calendar." |
| 496 | :type 'string | 495 | :type 'string |
| 497 | :group 'diary) | 496 | :group 'diary) |
| 498 | 497 | ||
| 499 | ;;;###autoload | 498 | ;;;###autoload |
| 500 | (defcustom bahai-diary-entry-symbol "B" | 499 | (defcustom bahai-diary-entry-symbol "B" |
| 501 | "*Symbol indicating a diary entry according to the Baha'i calendar." | 500 | "Symbol indicating a diary entry according to the Baha'i calendar." |
| 502 | :type 'string | 501 | :type 'string |
| 503 | :group 'diary) | 502 | :group 'diary) |
| 504 | 503 | ||
| 505 | ;;;###autoload | 504 | ;;;###autoload |
| 506 | (defcustom diary-include-string "#include" | 505 | (defcustom diary-include-string "#include" |
| 507 | "*The string indicating inclusion of another file of diary entries. | 506 | "The string indicating inclusion of another file of diary entries. |
| 508 | See the documentation for the function `include-other-diary-files'." | 507 | See the documentation for the function `include-other-diary-files'." |
| 509 | :type 'string | 508 | :type 'string |
| 510 | :group 'diary) | 509 | :group 'diary) |
| 511 | 510 | ||
| 512 | (defcustom diary-glob-file-regexp-prefix "^\\#" | 511 | (defcustom diary-glob-file-regexp-prefix "^\\#" |
| 513 | "*The regular expression that gets pre-pended to each of the attribute-regexp's for file-wide specifiers." | 512 | "The regular expression that gets pre-pended to each of the attribute-regexp's for file-wide specifiers." |
| 514 | :type 'regexp | 513 | :type 'regexp |
| 515 | :group 'diary) | 514 | :group 'diary) |
| 516 | 515 | ||
| @@ -531,7 +530,7 @@ See the documentation for the function `include-other-diary-files'." | |||
| 531 | ;;; (" *\\[box:\\([-a-z]+\\)\\]$" 1 :box) | 530 | ;;; (" *\\[box:\\([-a-z]+\\)\\]$" 1 :box) |
| 532 | ;;; (" *\\[stipple:\\([-a-z]+\\)\\]$" 1 :stipple) | 531 | ;;; (" *\\[stipple:\\([-a-z]+\\)\\]$" 1 :stipple) |
| 533 | ) | 532 | ) |
| 534 | "*A list of (regexp regnum attr attrtype) lists where the | 533 | "A list of (regexp regnum attr attrtype) lists where the |
| 535 | regexp says how to find the tag, the regnum says which | 534 | regexp says how to find the tag, the regnum says which |
| 536 | parenthetical sub-regexp this regexp looks for, and the attr says | 535 | parenthetical sub-regexp this regexp looks for, and the attr says |
| 537 | which attribute of the face (or that this _is_ a face) is being | 536 | which attribute of the face (or that this _is_ a face) is being |
| @@ -546,14 +545,14 @@ modified." | |||
| 546 | 545 | ||
| 547 | ;;;###autoload | 546 | ;;;###autoload |
| 548 | (defcustom sexp-diary-entry-symbol "%%" | 547 | (defcustom sexp-diary-entry-symbol "%%" |
| 549 | "*The string used to indicate a sexp diary entry in `diary-file'. | 548 | "The string used to indicate a sexp diary entry in `diary-file'. |
| 550 | See the documentation for the function `list-sexp-diary-entries'." | 549 | See the documentation for the function `list-sexp-diary-entries'." |
| 551 | :type 'string | 550 | :type 'string |
| 552 | :group 'diary) | 551 | :group 'diary) |
| 553 | 552 | ||
| 554 | ;;;###autoload | 553 | ;;;###autoload |
| 555 | (defcustom abbreviated-calendar-year t | 554 | (defcustom abbreviated-calendar-year t |
| 556 | "*Interpret a two-digit year DD in a diary entry as either 19DD or 20DD. | 555 | "Interpret a two-digit year DD in a diary entry as either 19DD or 20DD. |
| 557 | For the Gregorian calendar; similarly for the Hebrew, Islamic and | 556 | For the Gregorian calendar; similarly for the Hebrew, Islamic and |
| 558 | Baha'i calendars. If this variable is nil, years must be written in | 557 | Baha'i calendars. If this variable is nil, years must be written in |
| 559 | full." | 558 | full." |
| @@ -562,7 +561,7 @@ full." | |||
| 562 | 561 | ||
| 563 | ;;;###autoload | 562 | ;;;###autoload |
| 564 | (defcustom european-calendar-style nil | 563 | (defcustom european-calendar-style nil |
| 565 | "*Use the European style of dates in the diary and in any displays. | 564 | "Use the European style of dates in the diary and in any displays. |
| 566 | If this variable is t, a date 1/2/1990 would be interpreted as February 1, | 565 | If this variable is t, a date 1/2/1990 would be interpreted as February 1, |
| 567 | 1990. The default European date styles (see `european-date-diary-pattern') | 566 | 1990. The default European date styles (see `european-date-diary-pattern') |
| 568 | are | 567 | are |
| @@ -589,7 +588,7 @@ are loaded. Otherwise, use one of the functions `european-calendar' or | |||
| 589 | (monthname " *" day "[^,0-9]") | 588 | (monthname " *" day "[^,0-9]") |
| 590 | (monthname " *" day ", *" year "[^0-9]") | 589 | (monthname " *" day ", *" year "[^0-9]") |
| 591 | (dayname "\\W")) | 590 | (dayname "\\W")) |
| 592 | "*List of pseudo-patterns describing the American patterns of date used. | 591 | "List of pseudo-patterns describing the American patterns of date used. |
| 593 | See the documentation of `diary-date-forms' for an explanation." | 592 | See the documentation of `diary-date-forms' for an explanation." |
| 594 | :type '(repeat (choice (cons :tag "Backup" | 593 | :type '(repeat (choice (cons :tag "Backup" |
| 595 | :value (backup . nil) | 594 | :value (backup . nil) |
| @@ -609,7 +608,7 @@ See the documentation of `diary-date-forms' for an explanation." | |||
| 609 | (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)") | 608 | (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)") |
| 610 | (day " *" monthname " *" year "[^0-9]") | 609 | (day " *" monthname " *" year "[^0-9]") |
| 611 | (dayname "\\W")) | 610 | (dayname "\\W")) |
| 612 | "*List of pseudo-patterns describing the European patterns of date used. | 611 | "List of pseudo-patterns describing the European patterns of date used. |
| 613 | See the documentation of `diary-date-forms' for an explanation." | 612 | See the documentation of `diary-date-forms' for an explanation." |
| 614 | :type '(repeat (choice (cons :tag "Backup" | 613 | :type '(repeat (choice (cons :tag "Backup" |
| 615 | :value (backup . nil) | 614 | :value (backup . nil) |
| @@ -626,7 +625,7 @@ See the documentation of `diary-date-forms' for an explanation." | |||
| 626 | (if european-calendar-style | 625 | (if european-calendar-style |
| 627 | european-date-diary-pattern | 626 | european-date-diary-pattern |
| 628 | american-date-diary-pattern) | 627 | american-date-diary-pattern) |
| 629 | "*List of pseudo-patterns describing the forms of date used in the diary. | 628 | "List of pseudo-patterns describing the forms of date used in the diary. |
| 630 | The patterns on the list must be MUTUALLY EXCLUSIVE and should not match | 629 | The patterns on the list must be MUTUALLY EXCLUSIVE and should not match |
| 631 | any portion of the diary entry itself, just the date component. | 630 | any portion of the diary entry itself, just the date component. |
| 632 | 631 | ||
| @@ -664,7 +663,7 @@ a portion of the first word of the diary entry." | |||
| 664 | ;;;###autoload | 663 | ;;;###autoload |
| 665 | (defcustom european-calendar-display-form | 664 | (defcustom european-calendar-display-form |
| 666 | '((if dayname (concat dayname ", ")) day " " monthname " " year) | 665 | '((if dayname (concat dayname ", ")) day " " monthname " " year) |
| 667 | "*Pseudo-pattern governing the way a date appears in the European style. | 666 | "Pseudo-pattern governing the way a date appears in the European style. |
| 668 | See the documentation of `calendar-date-display-form' for an explanation." | 667 | See the documentation of `calendar-date-display-form' for an explanation." |
| 669 | :type 'sexp | 668 | :type 'sexp |
| 670 | :group 'calendar) | 669 | :group 'calendar) |
| @@ -672,7 +671,7 @@ See the documentation of `calendar-date-display-form' for an explanation." | |||
| 672 | ;;;###autoload | 671 | ;;;###autoload |
| 673 | (defcustom american-calendar-display-form | 672 | (defcustom american-calendar-display-form |
| 674 | '((if dayname (concat dayname ", ")) monthname " " day ", " year) | 673 | '((if dayname (concat dayname ", ")) monthname " " day ", " year) |
| 675 | "*Pseudo-pattern governing the way a date appears in the American style. | 674 | "Pseudo-pattern governing the way a date appears in the American style. |
| 676 | See the documentation of `calendar-date-display-form' for an explanation." | 675 | See the documentation of `calendar-date-display-form' for an explanation." |
| 677 | :type 'sexp | 676 | :type 'sexp |
| 678 | :group 'calendar) | 677 | :group 'calendar) |
| @@ -681,7 +680,7 @@ See the documentation of `calendar-date-display-form' for an explanation." | |||
| 681 | (if european-calendar-style | 680 | (if european-calendar-style |
| 682 | european-calendar-display-form | 681 | european-calendar-display-form |
| 683 | american-calendar-display-form) | 682 | american-calendar-display-form) |
| 684 | "*Pseudo-pattern governing the way a date appears. | 683 | "Pseudo-pattern governing the way a date appears. |
| 685 | 684 | ||
| 686 | Used by the function `calendar-date-string', a pseudo-pattern is a list of | 685 | Used by the function `calendar-date-string', a pseudo-pattern is a list of |
| 687 | expressions that can involve the keywords `month', `day', and `year', all | 686 | expressions that can involve the keywords `month', `day', and `year', all |
| @@ -722,7 +721,7 @@ See the documentation of the function `calendar-date-string'." | |||
| 722 | 721 | ||
| 723 | ;;;###autoload | 722 | ;;;###autoload |
| 724 | (defcustom print-diary-entries-hook 'lpr-buffer | 723 | (defcustom print-diary-entries-hook 'lpr-buffer |
| 725 | "*List of functions called after a temporary diary buffer is prepared. | 724 | "List of functions called after a temporary diary buffer is prepared. |
| 726 | The buffer shows only the diary entries currently visible in the diary | 725 | The buffer shows only the diary entries currently visible in the diary |
| 727 | buffer. The default just does the printing. Other uses might include, for | 726 | buffer. The default just does the printing. Other uses might include, for |
| 728 | example, rearranging the lines into order by day and time, saving the buffer | 727 | example, rearranging the lines into order by day and time, saving the buffer |
| @@ -732,7 +731,7 @@ instead of deleting it, or changing the function used to do the printing." | |||
| 732 | 731 | ||
| 733 | ;;;###autoload | 732 | ;;;###autoload |
| 734 | (defcustom list-diary-entries-hook nil | 733 | (defcustom list-diary-entries-hook nil |
| 735 | "*List of functions called after diary file is culled for relevant entries. | 734 | "List of functions called after diary file is culled for relevant entries. |
| 736 | It is to be used for diary entries that are not found in the diary file. | 735 | It is to be used for diary entries that are not found in the diary file. |
| 737 | 736 | ||
| 738 | A function `include-other-diary-files' is provided for use as the value of | 737 | A function `include-other-diary-files' is provided for use as the value of |
| @@ -763,14 +762,14 @@ lexicographic order." | |||
| 763 | 762 | ||
| 764 | ;;;###autoload | 763 | ;;;###autoload |
| 765 | (defcustom diary-hook nil | 764 | (defcustom diary-hook nil |
| 766 | "*List of functions called after the display of the diary. | 765 | "List of functions called after the display of the diary. |
| 767 | Can be used for appointment notification." | 766 | Can be used for appointment notification." |
| 768 | :type 'hook | 767 | :type 'hook |
| 769 | :group 'diary) | 768 | :group 'diary) |
| 770 | 769 | ||
| 771 | ;;;###autoload | 770 | ;;;###autoload |
| 772 | (defcustom diary-display-hook nil | 771 | (defcustom diary-display-hook nil |
| 773 | "*List of functions that handle the display of the diary. | 772 | "List of functions that handle the display of the diary. |
| 774 | If nil (the default), `simple-diary-display' is used. Use `ignore' for no | 773 | If nil (the default), `simple-diary-display' is used. Use `ignore' for no |
| 775 | diary display. | 774 | diary display. |
| 776 | 775 | ||
| @@ -796,7 +795,7 @@ diary buffer, set the variable `diary-list-include-blanks' to t." | |||
| 796 | 795 | ||
| 797 | ;;;###autoload | 796 | ;;;###autoload |
| 798 | (defcustom nongregorian-diary-listing-hook nil | 797 | (defcustom nongregorian-diary-listing-hook nil |
| 799 | "*List of functions called for listing diary file and included files. | 798 | "List of functions called for listing diary file and included files. |
| 800 | As the files are processed for diary entries, these functions are used | 799 | As the files are processed for diary entries, these functions are used |
| 801 | to cull relevant entries. You can use either or both of | 800 | to cull relevant entries. You can use either or both of |
| 802 | `list-hebrew-diary-entries', `list-islamic-diary-entries' and | 801 | `list-hebrew-diary-entries', `list-islamic-diary-entries' and |
| @@ -810,7 +809,7 @@ describes the style of such diary entries." | |||
| 810 | 809 | ||
| 811 | ;;;###autoload | 810 | ;;;###autoload |
| 812 | (defcustom mark-diary-entries-hook nil | 811 | (defcustom mark-diary-entries-hook nil |
| 813 | "*List of functions called after marking diary entries in the calendar. | 812 | "List of functions called after marking diary entries in the calendar. |
| 814 | 813 | ||
| 815 | A function `mark-included-diary-files' is also provided for use as the | 814 | A function `mark-included-diary-files' is also provided for use as the |
| 816 | `mark-diary-entries-hook'; it enables you to use shared diary files together | 815 | `mark-diary-entries-hook'; it enables you to use shared diary files together |
| @@ -828,7 +827,7 @@ function `include-other-diary-files' as part of `list-diary-entries-hook'." | |||
| 828 | 827 | ||
| 829 | ;;;###autoload | 828 | ;;;###autoload |
| 830 | (defcustom nongregorian-diary-marking-hook nil | 829 | (defcustom nongregorian-diary-marking-hook nil |
| 831 | "*List of functions called for marking diary file and included files. | 830 | "List of functions called for marking diary file and included files. |
| 832 | As the files are processed for diary entries, these functions are used | 831 | As the files are processed for diary entries, these functions are used |
| 833 | to cull relevant entries. You can use either or both of | 832 | to cull relevant entries. You can use either or both of |
| 834 | `mark-hebrew-diary-entries', `mark-islamic-diary-entries' and | 833 | `mark-hebrew-diary-entries', `mark-islamic-diary-entries' and |
| @@ -842,7 +841,7 @@ describes the style of such diary entries." | |||
| 842 | 841 | ||
| 843 | ;;;###autoload | 842 | ;;;###autoload |
| 844 | (defcustom diary-list-include-blanks nil | 843 | (defcustom diary-list-include-blanks nil |
| 845 | "*If nil, do not include days with no diary entry in the list of diary entries. | 844 | "If nil, do not include days with no diary entry in the list of diary entries. |
| 846 | Such days will then not be shown in the fancy diary buffer, even if they | 845 | Such days will then not be shown in the fancy diary buffer, even if they |
| 847 | are holidays." | 846 | are holidays." |
| 848 | :type 'boolean | 847 | :type 'boolean |
| @@ -850,7 +849,7 @@ are holidays." | |||
| 850 | 849 | ||
| 851 | ;;;###autoload | 850 | ;;;###autoload |
| 852 | (defcustom holidays-in-diary-buffer t | 851 | (defcustom holidays-in-diary-buffer t |
| 853 | "*Non-nil means include holidays in the diary display. | 852 | "Non-nil means include holidays in the diary display. |
| 854 | The holidays appear in the mode line of the diary buffer, or in the | 853 | The holidays appear in the mode line of the diary buffer, or in the |
| 855 | fancy diary buffer next to the date. This slows down the diary functions | 854 | fancy diary buffer next to the date. This slows down the diary functions |
| 856 | somewhat; setting it to nil makes the diary display faster." | 855 | somewhat; setting it to nil makes the diary display faster." |
| @@ -880,7 +879,7 @@ somewhat; setting it to nil makes the diary display faster." | |||
| 880 | (holiday-fixed 10 31 "Halloween") | 879 | (holiday-fixed 10 31 "Halloween") |
| 881 | (holiday-fixed 11 11 "Veteran's Day") | 880 | (holiday-fixed 11 11 "Veteran's Day") |
| 882 | (holiday-float 11 4 4 "Thanksgiving")) | 881 | (holiday-float 11 4 4 "Thanksgiving")) |
| 883 | "*General holidays. Default value is for the United States. | 882 | "General holidays. Default value is for the United States. |
| 884 | See the documentation for `calendar-holidays' for details." | 883 | See the documentation for `calendar-holidays' for details." |
| 885 | :type 'sexp | 884 | :type 'sexp |
| 886 | :group 'holidays) | 885 | :group 'holidays) |
| @@ -891,7 +890,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 891 | (defcustom oriental-holidays | 890 | (defcustom oriental-holidays |
| 892 | '((if (fboundp 'atan) | 891 | '((if (fboundp 'atan) |
| 893 | (holiday-chinese-new-year))) | 892 | (holiday-chinese-new-year))) |
| 894 | "*Oriental holidays. | 893 | "Oriental holidays. |
| 895 | See the documentation for `calendar-holidays' for details." | 894 | See the documentation for `calendar-holidays' for details." |
| 896 | :type 'sexp | 895 | :type 'sexp |
| 897 | :group 'holidays) | 896 | :group 'holidays) |
| @@ -900,7 +899,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 900 | (put 'local-holidays 'risky-local-variable t) | 899 | (put 'local-holidays 'risky-local-variable t) |
| 901 | ;;;###autoload | 900 | ;;;###autoload |
| 902 | (defcustom local-holidays nil | 901 | (defcustom local-holidays nil |
| 903 | "*Local holidays. | 902 | "Local holidays. |
| 904 | See the documentation for `calendar-holidays' for details." | 903 | See the documentation for `calendar-holidays' for details." |
| 905 | :type 'sexp | 904 | :type 'sexp |
| 906 | :group 'holidays) | 905 | :group 'holidays) |
| @@ -909,7 +908,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 909 | (put 'other-holidays 'risky-local-variable t) | 908 | (put 'other-holidays 'risky-local-variable t) |
| 910 | ;;;###autoload | 909 | ;;;###autoload |
| 911 | (defcustom other-holidays nil | 910 | (defcustom other-holidays nil |
| 912 | "*User defined holidays. | 911 | "User defined holidays. |
| 913 | See the documentation for `calendar-holidays' for details." | 912 | See the documentation for `calendar-holidays' for details." |
| 914 | :type 'sexp | 913 | :type 'sexp |
| 915 | :group 'holidays) | 914 | :group 'holidays) |
| @@ -1013,7 +1012,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1013 | ;;;###autoload | 1012 | ;;;###autoload |
| 1014 | (defcustom hebrew-holidays (append hebrew-holidays-1 hebrew-holidays-2 | 1013 | (defcustom hebrew-holidays (append hebrew-holidays-1 hebrew-holidays-2 |
| 1015 | hebrew-holidays-3 hebrew-holidays-4) | 1014 | hebrew-holidays-3 hebrew-holidays-4) |
| 1016 | "*Jewish holidays. | 1015 | "Jewish holidays. |
| 1017 | See the documentation for `calendar-holidays' for details." | 1016 | See the documentation for `calendar-holidays' for details." |
| 1018 | :type 'sexp | 1017 | :type 'sexp |
| 1019 | :group 'holidays) | 1018 | :group 'holidays) |
| @@ -1064,7 +1063,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1064 | (holiday-fixed 12 25 "Christmas") | 1063 | (holiday-fixed 12 25 "Christmas") |
| 1065 | (if all-christian-calendar-holidays | 1064 | (if all-christian-calendar-holidays |
| 1066 | (holiday-julian 12 25 "Eastern Orthodox Christmas"))) | 1065 | (holiday-julian 12 25 "Eastern Orthodox Christmas"))) |
| 1067 | "*Christian holidays. | 1066 | "Christian holidays. |
| 1068 | See the documentation for `calendar-holidays' for details." | 1067 | See the documentation for `calendar-holidays' for details." |
| 1069 | :type 'sexp | 1068 | :type 'sexp |
| 1070 | :group 'holidays) | 1069 | :group 'holidays) |
| @@ -1099,7 +1098,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1099 | (holiday-islamic 10 1 "Id-al-Fitr")) | 1098 | (holiday-islamic 10 1 "Id-al-Fitr")) |
| 1100 | (if all-islamic-calendar-holidays | 1099 | (if all-islamic-calendar-holidays |
| 1101 | (holiday-islamic 12 10 "Id-al-Adha"))) | 1100 | (holiday-islamic 12 10 "Id-al-Adha"))) |
| 1102 | "*Islamic holidays. | 1101 | "Islamic holidays. |
| 1103 | See the documentation for `calendar-holidays' for details." | 1102 | See the documentation for `calendar-holidays' for details." |
| 1104 | :type 'sexp | 1103 | :type 'sexp |
| 1105 | :group 'holidays) | 1104 | :group 'holidays) |
| @@ -1141,7 +1140,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1141 | (holiday-fixed 11 26 "Day of the Covenant")) | 1140 | (holiday-fixed 11 26 "Day of the Covenant")) |
| 1142 | (if all-bahai-calendar-holidays | 1141 | (if all-bahai-calendar-holidays |
| 1143 | (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha"))) | 1142 | (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha"))) |
| 1144 | "*Baha'i holidays. | 1143 | "Baha'i holidays. |
| 1145 | See the documentation for `calendar-holidays' for details." | 1144 | See the documentation for `calendar-holidays' for details." |
| 1146 | :type 'sexp | 1145 | :type 'sexp |
| 1147 | :group 'holidays) | 1146 | :group 'holidays) |
| @@ -1173,7 +1172,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1173 | (/ calendar-daylight-savings-ends-time (float 60)) | 1172 | (/ calendar-daylight-savings-ends-time (float 60)) |
| 1174 | calendar-daylight-time-zone-name) | 1173 | calendar-daylight-time-zone-name) |
| 1175 | "")))) | 1174 | "")))) |
| 1176 | "*Sun-related holidays. | 1175 | "Sun-related holidays. |
| 1177 | See the documentation for `calendar-holidays' for details." | 1176 | See the documentation for `calendar-holidays' for details." |
| 1178 | :type 'sexp | 1177 | :type 'sexp |
| 1179 | :group 'holidays) | 1178 | :group 'holidays) |
| @@ -1184,7 +1183,7 @@ See the documentation for `calendar-holidays' for details." | |||
| 1184 | (append general-holidays local-holidays other-holidays | 1183 | (append general-holidays local-holidays other-holidays |
| 1185 | christian-holidays hebrew-holidays islamic-holidays | 1184 | christian-holidays hebrew-holidays islamic-holidays |
| 1186 | bahai-holidays oriental-holidays solar-holidays) | 1185 | bahai-holidays oriental-holidays solar-holidays) |
| 1187 | "*List of notable days for the command \\[holidays]. | 1186 | "List of notable days for the command \\[holidays]. |
| 1188 | 1187 | ||
| 1189 | Additional holidays are easy to add to the list, just put them in the | 1188 | Additional holidays are easy to add to the list, just put them in the |
| 1190 | list `other-holidays' in your .emacs file. Similarly, by setting any | 1189 | list `other-holidays' in your .emacs file. Similarly, by setting any |
| @@ -1304,6 +1303,15 @@ A negative YR is interpreted as BC; -1 being 1 BC, and so on." | |||
| 1304 | (and (< macro-y 0) (> ,mon 1) (setq ,yr (1- ,yr))) | 1303 | (and (< macro-y 0) (> ,mon 1) (setq ,yr (1- ,yr))) |
| 1305 | (if (< ,yr 1) (setq ,yr (1- ,yr))))) ; 0 AD -> -1 BC, etc | 1304 | (if (< ,yr 1) (setq ,yr (1- ,yr))))) ; 0 AD -> -1 BC, etc |
| 1306 | 1305 | ||
| 1306 | (defun calendar-increment-month (n &optional mon yr) | ||
| 1307 | "Return the Nth month after MON/YR. | ||
| 1308 | The return value is a pair (MONTH . YEAR). | ||
| 1309 | MON defaults to `displayed-month'. YR defaults to `displayed-year'." | ||
| 1310 | (unless mon (setq mon displayed-month)) | ||
| 1311 | (unless yr (setq mon displayed-year)) | ||
| 1312 | (increment-calendar-month mon yr n) | ||
| 1313 | (cons mon yr)) | ||
| 1314 | |||
| 1307 | (defmacro calendar-for-loop (var from init to final do &rest body) | 1315 | (defmacro calendar-for-loop (var from init to final do &rest body) |
| 1308 | "Execute a for loop." | 1316 | "Execute a for loop." |
| 1309 | (declare (debug (symbolp "from" form "to" form "do" body))) | 1317 | (declare (debug (symbolp "from" form "to" form "do" body))) |
| @@ -1313,6 +1321,7 @@ A negative YR is interpreted as BC; -1 being 1 BC, and so on." | |||
| 1313 | 1321 | ||
| 1314 | (defmacro calendar-sum (index initial condition expression) | 1322 | (defmacro calendar-sum (index initial condition expression) |
| 1315 | "For INDEX = INITIAL et seq, as long as CONDITION holds, sum EXPRESSION." | 1323 | "For INDEX = INITIAL et seq, as long as CONDITION holds, sum EXPRESSION." |
| 1324 | (declare (debug (symbolp form form form))) | ||
| 1316 | `(let ((,index ,initial) | 1325 | `(let ((,index ,initial) |
| 1317 | (sum 0)) | 1326 | (sum 0)) |
| 1318 | (while ,condition | 1327 | (while ,condition |
| @@ -2140,7 +2149,7 @@ the inserted text. Value is always t." | |||
| 2140 | 2149 | ||
| 2141 | ;;;###autoload | 2150 | ;;;###autoload |
| 2142 | (defcustom calendar-week-start-day 0 | 2151 | (defcustom calendar-week-start-day 0 |
| 2143 | "*The day of the week on which a week in the calendar begins. | 2152 | "The day of the week on which a week in the calendar begins. |
| 2144 | 0 means Sunday (default), 1 means Monday, and so on. | 2153 | 0 means Sunday (default), 1 means Monday, and so on. |
| 2145 | 2154 | ||
| 2146 | If you change this variable directly (without using customize) | 2155 | If you change this variable directly (without using customize) |
| @@ -2148,160 +2157,159 @@ after starting `calendar', you should call `redraw-calendar' to | |||
| 2148 | update the calendar display to reflect the change, otherwise | 2157 | update the calendar display to reflect the change, otherwise |
| 2149 | movement commands will not work correctly." | 2158 | movement commands will not work correctly." |
| 2150 | :type 'integer | 2159 | :type 'integer |
| 2160 | ;; Change the initialize so that if you reload calendar.el, it will not | ||
| 2161 | ;; cause a redraw (which may fail, e.g. with "invalid byte-code in | ||
| 2162 | ;; calendar.elc" because of the "byte-compile-dynamic"). | ||
| 2163 | :initialize 'custom-initialize-default | ||
| 2151 | :set (lambda (sym val) | 2164 | :set (lambda (sym val) |
| 2152 | (set sym val) | 2165 | (set sym val) |
| 2153 | (redraw-calendar)) | 2166 | (redraw-calendar)) |
| 2154 | :group 'calendar) | 2167 | :group 'calendar) |
| 2155 | 2168 | ||
| 2156 | (defcustom calendar-debug-sexp nil | 2169 | (defcustom calendar-debug-sexp nil |
| 2157 | "*Turn debugging on when evaluating a sexp in the diary or holiday list." | 2170 | "Turn debugging on when evaluating a sexp in the diary or holiday list." |
| 2158 | :type 'boolean | 2171 | :type 'boolean |
| 2159 | :group 'calendar) | 2172 | :group 'calendar) |
| 2160 | 2173 | ||
| 2161 | (defvar calendar-mode-map nil) | 2174 | (defvar calendar-mode-map nil) |
| 2162 | (if calendar-mode-map | 2175 | (if calendar-mode-map |
| 2163 | nil | 2176 | nil |
| 2164 | (setq calendar-mode-map (make-sparse-keymap)) | 2177 | (let ((map (make-keymap))) |
| 2165 | (require 'cal-menu) | 2178 | (suppress-keymap map) |
| 2166 | (calendar-for-loop i from 0 to 9 do | 2179 | (dolist (c '(narrow-to-region mark-word mark-sexp mark-paragraph |
| 2167 | (define-key calendar-mode-map (int-to-string i) 'digit-argument)) | 2180 | mark-defun mark-whole-buffer mark-page |
| 2168 | (let ((l (list 'narrow-to-region 'mark-word 'mark-sexp 'mark-paragraph | 2181 | downcase-region upcase-region kill-region |
| 2169 | 'mark-defun 'mark-whole-buffer 'mark-page | 2182 | copy-region-as-kill capitalize-region write-region)) |
| 2170 | 'downcase-region 'upcase-region 'kill-region | 2183 | (define-key map (vector 'remap c) 'calendar-not-implemented)) |
| 2171 | 'copy-region-as-kill 'capitalize-region 'write-region))) | 2184 | (define-key map ">" 'scroll-calendar-right) |
| 2172 | (while l | 2185 | (define-key map "\C-x>" 'scroll-calendar-right) |
| 2173 | (substitute-key-definition (car l) 'calendar-not-implemented | 2186 | (define-key map [prior] 'scroll-calendar-right-three-months) |
| 2174 | calendar-mode-map global-map) | 2187 | (define-key map "\ev" 'scroll-calendar-right-three-months) |
| 2175 | (setq l (cdr l)))) | 2188 | (define-key map "<" 'scroll-calendar-left) |
| 2176 | (define-key calendar-mode-map "-" 'negative-argument) | 2189 | (define-key map "\C-x<" 'scroll-calendar-left) |
| 2177 | (define-key calendar-mode-map ">" 'scroll-calendar-right) | 2190 | (define-key map [next] 'scroll-calendar-left-three-months) |
| 2178 | (define-key calendar-mode-map "\C-x>" 'scroll-calendar-right) | 2191 | (define-key map "\C-v" 'scroll-calendar-left-three-months) |
| 2179 | (define-key calendar-mode-map [prior] 'scroll-calendar-right-three-months) | 2192 | (define-key map "\C-b" 'calendar-backward-day) |
| 2180 | (define-key calendar-mode-map "\ev" 'scroll-calendar-right-three-months) | 2193 | (define-key map "\C-p" 'calendar-backward-week) |
| 2181 | (define-key calendar-mode-map "<" 'scroll-calendar-left) | 2194 | (define-key map "\e{" 'calendar-backward-month) |
| 2182 | (define-key calendar-mode-map "\C-x<" 'scroll-calendar-left) | 2195 | (define-key map "\C-x[" 'calendar-backward-year) |
| 2183 | (define-key calendar-mode-map [next] 'scroll-calendar-left-three-months) | 2196 | (define-key map "\C-f" 'calendar-forward-day) |
| 2184 | (define-key calendar-mode-map "\C-v" 'scroll-calendar-left-three-months) | 2197 | (define-key map "\C-n" 'calendar-forward-week) |
| 2185 | (define-key calendar-mode-map "\C-b" 'calendar-backward-day) | 2198 | (define-key map [left] 'calendar-backward-day) |
| 2186 | (define-key calendar-mode-map "\C-p" 'calendar-backward-week) | 2199 | (define-key map [up] 'calendar-backward-week) |
| 2187 | (define-key calendar-mode-map "\e{" 'calendar-backward-month) | 2200 | (define-key map [right] 'calendar-forward-day) |
| 2188 | (define-key calendar-mode-map "\C-x[" 'calendar-backward-year) | 2201 | (define-key map [down] 'calendar-forward-week) |
| 2189 | (define-key calendar-mode-map "\C-f" 'calendar-forward-day) | 2202 | (define-key map "\e}" 'calendar-forward-month) |
| 2190 | (define-key calendar-mode-map "\C-n" 'calendar-forward-week) | 2203 | (define-key map "\C-x]" 'calendar-forward-year) |
| 2191 | (define-key calendar-mode-map [left] 'calendar-backward-day) | 2204 | (define-key map "\C-a" 'calendar-beginning-of-week) |
| 2192 | (define-key calendar-mode-map [up] 'calendar-backward-week) | 2205 | (define-key map "\C-e" 'calendar-end-of-week) |
| 2193 | (define-key calendar-mode-map [right] 'calendar-forward-day) | 2206 | (define-key map "\ea" 'calendar-beginning-of-month) |
| 2194 | (define-key calendar-mode-map [down] 'calendar-forward-week) | 2207 | (define-key map "\ee" 'calendar-end-of-month) |
| 2195 | (define-key calendar-mode-map "\e}" 'calendar-forward-month) | 2208 | (define-key map "\e<" 'calendar-beginning-of-year) |
| 2196 | (define-key calendar-mode-map "\C-x]" 'calendar-forward-year) | 2209 | (define-key map "\e>" 'calendar-end-of-year) |
| 2197 | (define-key calendar-mode-map "\C-a" 'calendar-beginning-of-week) | 2210 | (define-key map "\C-@" 'calendar-set-mark) |
| 2198 | (define-key calendar-mode-map "\C-e" 'calendar-end-of-week) | 2211 | ;; Many people are used to typing C-SPC and getting C-@. |
| 2199 | (define-key calendar-mode-map "\ea" 'calendar-beginning-of-month) | 2212 | (define-key map [?\C- ] 'calendar-set-mark) |
| 2200 | (define-key calendar-mode-map "\ee" 'calendar-end-of-month) | 2213 | (define-key map "\C-x\C-x" 'calendar-exchange-point-and-mark) |
| 2201 | (define-key calendar-mode-map "\e<" 'calendar-beginning-of-year) | 2214 | (define-key map "\e=" 'calendar-count-days-region) |
| 2202 | (define-key calendar-mode-map "\e>" 'calendar-end-of-year) | 2215 | (define-key map "gd" 'calendar-goto-date) |
| 2203 | (define-key calendar-mode-map "\C-@" 'calendar-set-mark) | 2216 | (define-key map "gD" 'calendar-goto-day-of-year) |
| 2204 | ;; Many people are used to typing C-SPC and getting C-@. | 2217 | (define-key map "gj" 'calendar-goto-julian-date) |
| 2205 | (define-key calendar-mode-map [?\C- ] 'calendar-set-mark) | 2218 | (define-key map "ga" 'calendar-goto-astro-day-number) |
| 2206 | (define-key calendar-mode-map "\C-x\C-x" 'calendar-exchange-point-and-mark) | 2219 | (define-key map "gh" 'calendar-goto-hebrew-date) |
| 2207 | (define-key calendar-mode-map "\e=" 'calendar-count-days-region) | 2220 | (define-key map "gi" 'calendar-goto-islamic-date) |
| 2208 | (define-key calendar-mode-map "gd" 'calendar-goto-date) | 2221 | (define-key map "gb" 'calendar-goto-bahai-date) |
| 2209 | (define-key calendar-mode-map "gD" 'calendar-goto-day-of-year) | 2222 | (define-key map "gC" 'calendar-goto-chinese-date) |
| 2210 | (define-key calendar-mode-map "gj" 'calendar-goto-julian-date) | 2223 | (define-key map "gk" 'calendar-goto-coptic-date) |
| 2211 | (define-key calendar-mode-map "ga" 'calendar-goto-astro-day-number) | 2224 | (define-key map "ge" 'calendar-goto-ethiopic-date) |
| 2212 | (define-key calendar-mode-map "gh" 'calendar-goto-hebrew-date) | 2225 | (define-key map "gp" 'calendar-goto-persian-date) |
| 2213 | (define-key calendar-mode-map "gi" 'calendar-goto-islamic-date) | 2226 | (define-key map "gc" 'calendar-goto-iso-date) |
| 2214 | (define-key calendar-mode-map "gb" 'calendar-goto-bahai-date) | 2227 | (define-key map "gw" 'calendar-goto-iso-week) |
| 2215 | (define-key calendar-mode-map "gC" 'calendar-goto-chinese-date) | 2228 | (define-key map "gf" 'calendar-goto-french-date) |
| 2216 | (define-key calendar-mode-map "gk" 'calendar-goto-coptic-date) | 2229 | (define-key map "gml" 'calendar-goto-mayan-long-count-date) |
| 2217 | (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date) | 2230 | (define-key map "gmpc" 'calendar-previous-calendar-round-date) |
| 2218 | (define-key calendar-mode-map "gp" 'calendar-goto-persian-date) | 2231 | (define-key map "gmnc" 'calendar-next-calendar-round-date) |
| 2219 | (define-key calendar-mode-map "gc" 'calendar-goto-iso-date) | 2232 | (define-key map "gmph" 'calendar-previous-haab-date) |
| 2220 | (define-key calendar-mode-map "gw" 'calendar-goto-iso-week) | 2233 | (define-key map "gmnh" 'calendar-next-haab-date) |
| 2221 | (define-key calendar-mode-map "gf" 'calendar-goto-french-date) | 2234 | (define-key map "gmpt" 'calendar-previous-tzolkin-date) |
| 2222 | (define-key calendar-mode-map "gml" 'calendar-goto-mayan-long-count-date) | 2235 | (define-key map "gmnt" 'calendar-next-tzolkin-date) |
| 2223 | (define-key calendar-mode-map "gmpc" 'calendar-previous-calendar-round-date) | 2236 | (define-key map "Aa" 'appt-add) |
| 2224 | (define-key calendar-mode-map "gmnc" 'calendar-next-calendar-round-date) | 2237 | (define-key map "Ad" 'appt-delete) |
| 2225 | (define-key calendar-mode-map "gmph" 'calendar-previous-haab-date) | 2238 | (define-key map "S" 'calendar-sunrise-sunset) |
| 2226 | (define-key calendar-mode-map "gmnh" 'calendar-next-haab-date) | 2239 | (define-key map "M" 'calendar-phases-of-moon) |
| 2227 | (define-key calendar-mode-map "gmpt" 'calendar-previous-tzolkin-date) | 2240 | (define-key map " " 'scroll-other-window) |
| 2228 | (define-key calendar-mode-map "gmnt" 'calendar-next-tzolkin-date) | 2241 | (define-key map (kbd "DEL") 'scroll-other-window-down) |
| 2229 | (define-key calendar-mode-map "Aa" 'appt-add) | 2242 | (define-key map "\C-c\C-l" 'redraw-calendar) |
| 2230 | (define-key calendar-mode-map "Ad" 'appt-delete) | 2243 | (define-key map "." 'calendar-goto-today) |
| 2231 | (define-key calendar-mode-map "S" 'calendar-sunrise-sunset) | 2244 | (define-key map "o" 'calendar-other-month) |
| 2232 | (define-key calendar-mode-map "M" 'calendar-phases-of-moon) | 2245 | (define-key map "q" 'exit-calendar) |
| 2233 | (define-key calendar-mode-map " " 'scroll-other-window) | 2246 | (define-key map "a" 'list-calendar-holidays) |
| 2234 | (define-key calendar-mode-map (kbd "DEL") 'scroll-other-window-down) | 2247 | (define-key map "h" 'calendar-cursor-holidays) |
| 2235 | (define-key calendar-mode-map "\C-c\C-l" 'redraw-calendar) | 2248 | (define-key map "x" 'mark-calendar-holidays) |
| 2236 | (define-key calendar-mode-map "." 'calendar-goto-today) | 2249 | (define-key map "u" 'calendar-unmark) |
| 2237 | (define-key calendar-mode-map "o" 'calendar-other-month) | 2250 | (define-key map "m" 'mark-diary-entries) |
| 2238 | (define-key calendar-mode-map "q" 'exit-calendar) | 2251 | (define-key map "d" 'diary-view-entries) |
| 2239 | (define-key calendar-mode-map "a" 'list-calendar-holidays) | 2252 | (define-key map "D" 'view-other-diary-entries) |
| 2240 | (define-key calendar-mode-map "h" 'calendar-cursor-holidays) | 2253 | (define-key map "s" 'show-all-diary-entries) |
| 2241 | (define-key calendar-mode-map "x" 'mark-calendar-holidays) | 2254 | (define-key map "pd" 'calendar-print-day-of-year) |
| 2242 | (define-key calendar-mode-map "u" 'calendar-unmark) | 2255 | (define-key map "pC" 'calendar-print-chinese-date) |
| 2243 | (define-key calendar-mode-map "m" 'mark-diary-entries) | 2256 | (define-key map "pk" 'calendar-print-coptic-date) |
| 2244 | (define-key calendar-mode-map "d" 'diary-view-entries) | 2257 | (define-key map "pe" 'calendar-print-ethiopic-date) |
| 2245 | (define-key calendar-mode-map "D" 'view-other-diary-entries) | 2258 | (define-key map "pp" 'calendar-print-persian-date) |
| 2246 | (define-key calendar-mode-map "s" 'show-all-diary-entries) | 2259 | (define-key map "pc" 'calendar-print-iso-date) |
| 2247 | (define-key calendar-mode-map "pd" 'calendar-print-day-of-year) | 2260 | (define-key map "pj" 'calendar-print-julian-date) |
| 2248 | (define-key calendar-mode-map "pC" 'calendar-print-chinese-date) | 2261 | (define-key map "pa" 'calendar-print-astro-day-number) |
| 2249 | (define-key calendar-mode-map "pk" 'calendar-print-coptic-date) | 2262 | (define-key map "ph" 'calendar-print-hebrew-date) |
| 2250 | (define-key calendar-mode-map "pe" 'calendar-print-ethiopic-date) | 2263 | (define-key map "pi" 'calendar-print-islamic-date) |
| 2251 | (define-key calendar-mode-map "pp" 'calendar-print-persian-date) | 2264 | (define-key map "pb" 'calendar-print-bahai-date) |
| 2252 | (define-key calendar-mode-map "pc" 'calendar-print-iso-date) | 2265 | (define-key map "pf" 'calendar-print-french-date) |
| 2253 | (define-key calendar-mode-map "pj" 'calendar-print-julian-date) | 2266 | (define-key map "pm" 'calendar-print-mayan-date) |
| 2254 | (define-key calendar-mode-map "pa" 'calendar-print-astro-day-number) | 2267 | (define-key map "po" 'calendar-print-other-dates) |
| 2255 | (define-key calendar-mode-map "ph" 'calendar-print-hebrew-date) | 2268 | (define-key map "id" 'insert-diary-entry) |
| 2256 | (define-key calendar-mode-map "pi" 'calendar-print-islamic-date) | 2269 | (define-key map "iw" 'insert-weekly-diary-entry) |
| 2257 | (define-key calendar-mode-map "pb" 'calendar-print-bahai-date) | 2270 | (define-key map "im" 'insert-monthly-diary-entry) |
| 2258 | (define-key calendar-mode-map "pf" 'calendar-print-french-date) | 2271 | (define-key map "iy" 'insert-yearly-diary-entry) |
| 2259 | (define-key calendar-mode-map "pm" 'calendar-print-mayan-date) | 2272 | (define-key map "ia" 'insert-anniversary-diary-entry) |
| 2260 | (define-key calendar-mode-map "po" 'calendar-print-other-dates) | 2273 | (define-key map "ib" 'insert-block-diary-entry) |
| 2261 | (define-key calendar-mode-map "id" 'insert-diary-entry) | 2274 | (define-key map "ic" 'insert-cyclic-diary-entry) |
| 2262 | (define-key calendar-mode-map "iw" 'insert-weekly-diary-entry) | 2275 | (define-key map "ihd" 'insert-hebrew-diary-entry) |
| 2263 | (define-key calendar-mode-map "im" 'insert-monthly-diary-entry) | 2276 | (define-key map "ihm" 'insert-monthly-hebrew-diary-entry) |
| 2264 | (define-key calendar-mode-map "iy" 'insert-yearly-diary-entry) | 2277 | (define-key map "ihy" 'insert-yearly-hebrew-diary-entry) |
| 2265 | (define-key calendar-mode-map "ia" 'insert-anniversary-diary-entry) | 2278 | (define-key map "iid" 'insert-islamic-diary-entry) |
| 2266 | (define-key calendar-mode-map "ib" 'insert-block-diary-entry) | 2279 | (define-key map "iim" 'insert-monthly-islamic-diary-entry) |
| 2267 | (define-key calendar-mode-map "ic" 'insert-cyclic-diary-entry) | 2280 | (define-key map "iiy" 'insert-yearly-islamic-diary-entry) |
| 2268 | (define-key calendar-mode-map "ihd" 'insert-hebrew-diary-entry) | 2281 | (define-key map "iBd" 'insert-bahai-diary-entry) |
| 2269 | (define-key calendar-mode-map "ihm" 'insert-monthly-hebrew-diary-entry) | 2282 | (define-key map "iBm" 'insert-monthly-bahai-diary-entry) |
| 2270 | (define-key calendar-mode-map "ihy" 'insert-yearly-hebrew-diary-entry) | 2283 | (define-key map "iBy" 'insert-yearly-bahai-diary-entry) |
| 2271 | (define-key calendar-mode-map "iid" 'insert-islamic-diary-entry) | 2284 | (define-key map "?" 'calendar-goto-info-node) |
| 2272 | (define-key calendar-mode-map "iim" 'insert-monthly-islamic-diary-entry) | 2285 | (define-key map "tm" 'cal-tex-cursor-month) |
| 2273 | (define-key calendar-mode-map "iiy" 'insert-yearly-islamic-diary-entry) | 2286 | (define-key map "tM" 'cal-tex-cursor-month-landscape) |
| 2274 | (define-key calendar-mode-map "iBd" 'insert-bahai-diary-entry) | 2287 | (define-key map "td" 'cal-tex-cursor-day) |
| 2275 | (define-key calendar-mode-map "iBm" 'insert-monthly-bahai-diary-entry) | 2288 | (define-key map "tw1" 'cal-tex-cursor-week) |
| 2276 | (define-key calendar-mode-map "iBy" 'insert-yearly-bahai-diary-entry) | 2289 | (define-key map "tw2" 'cal-tex-cursor-week2) |
| 2277 | (define-key calendar-mode-map "?" 'calendar-goto-info-node) | 2290 | (define-key map "tw3" 'cal-tex-cursor-week-iso) |
| 2278 | (define-key calendar-mode-map "tm" 'cal-tex-cursor-month) | 2291 | (define-key map "tw4" 'cal-tex-cursor-week-monday) |
| 2279 | (define-key calendar-mode-map "tM" 'cal-tex-cursor-month-landscape) | 2292 | (define-key map "tfd" 'cal-tex-cursor-filofax-daily) |
| 2280 | (define-key calendar-mode-map "td" 'cal-tex-cursor-day) | 2293 | (define-key map "tfw" 'cal-tex-cursor-filofax-2week) |
| 2281 | (define-key calendar-mode-map "tw1" 'cal-tex-cursor-week) | 2294 | (define-key map "tfW" 'cal-tex-cursor-filofax-week) |
| 2282 | (define-key calendar-mode-map "tw2" 'cal-tex-cursor-week2) | 2295 | (define-key map "tfy" 'cal-tex-cursor-filofax-year) |
| 2283 | (define-key calendar-mode-map "tw3" 'cal-tex-cursor-week-iso) | 2296 | (define-key map "ty" 'cal-tex-cursor-year) |
| 2284 | (define-key calendar-mode-map "tw4" 'cal-tex-cursor-week-monday) | 2297 | (define-key map "tY" 'cal-tex-cursor-year-landscape) |
| 2285 | (define-key calendar-mode-map "tfd" 'cal-tex-cursor-filofax-daily) | 2298 | (setq calendar-mode-map map) |
| 2286 | (define-key calendar-mode-map "tfw" 'cal-tex-cursor-filofax-2week) | 2299 | ;; Require cal-menu after initializing calendar-mode-map because it uses it. |
| 2287 | (define-key calendar-mode-map "tfW" 'cal-tex-cursor-filofax-week) | 2300 | (require 'cal-menu))) |
| 2288 | (define-key calendar-mode-map "tfy" 'cal-tex-cursor-filofax-year) | ||
| 2289 | (define-key calendar-mode-map "ty" 'cal-tex-cursor-year) | ||
| 2290 | (define-key calendar-mode-map "tY" 'cal-tex-cursor-year-landscape)) | ||
| 2291 | 2301 | ||
| 2292 | (defun describe-calendar-mode () | 2302 | (defun describe-calendar-mode () |
| 2293 | "Create a help buffer with a brief description of the `calendar-mode'." | 2303 | "Create a help buffer with a brief description of the `calendar-mode'." |
| 2294 | (interactive) | 2304 | (interactive) |
| 2295 | (with-output-to-temp-buffer "*Help*" | 2305 | (help-setup-xref (list #'describe-calendar-mode) (interactive-p)) |
| 2306 | (with-output-to-temp-buffer (help-buffer) | ||
| 2296 | (princ | 2307 | (princ |
| 2297 | (format | 2308 | (format |
| 2298 | "Calendar Mode:\nFor a complete description, type %s\n%s\n" | 2309 | "Calendar Mode:\nFor a complete description, type %s\n%s\n" |
| 2299 | (substitute-command-keys | 2310 | (substitute-command-keys |
| 2300 | "\\<calendar-mode-map>\\[describe-mode] from within the calendar") | 2311 | "\\<calendar-mode-map>\\[describe-mode] from within the calendar") |
| 2301 | (substitute-command-keys "\\{calendar-mode-map}"))) | 2312 | (substitute-command-keys "\\{calendar-mode-map}"))) |
| 2302 | (save-excursion | ||
| 2303 | (set-buffer standard-output) | ||
| 2304 | (help-mode)) | ||
| 2305 | (print-help-return-message))) | 2313 | (print-help-return-message))) |
| 2306 | 2314 | ||
| 2307 | ;; Calendar mode is suitable only for specially formatted data. | 2315 | ;; Calendar mode is suitable only for specially formatted data. |
| @@ -2451,12 +2459,11 @@ the STRINGS are just concatenated and the result truncated." | |||
| 2451 | (s (car strings)) | 2459 | (s (car strings)) |
| 2452 | (strings (cdr strings)) | 2460 | (strings (cdr strings)) |
| 2453 | (i 0)) | 2461 | (i 0)) |
| 2454 | (while strings | 2462 | (dolist (string strings) |
| 2455 | (setq s (concat s | 2463 | (setq s (concat s |
| 2456 | (make-string (max 0 (/ (+ n i) m)) char) | 2464 | (make-string (max 0 (/ (+ n i) m)) char) |
| 2457 | (car strings))) | 2465 | string)) |
| 2458 | (setq i (1+ i)) | 2466 | (setq i (1+ i))) |
| 2459 | (setq strings (cdr strings))) | ||
| 2460 | (substring s 0 length))) | 2467 | (substring s 0 length))) |
| 2461 | 2468 | ||
| 2462 | (defun update-calendar-mode-line () | 2469 | (defun update-calendar-mode-line () |
| @@ -2478,7 +2485,7 @@ the STRINGS are just concatenated and the result truncated." | |||
| 2478 | list) | 2485 | list) |
| 2479 | (walk-windows (lambda (w) | 2486 | (walk-windows (lambda (w) |
| 2480 | (if (memq (window-buffer w) calendar-buffers) | 2487 | (if (memq (window-buffer w) calendar-buffers) |
| 2481 | (setq list (cons w list)))) | 2488 | (push w list))) |
| 2482 | nil t) | 2489 | nil t) |
| 2483 | list)) | 2490 | list)) |
| 2484 | 2491 | ||
| @@ -2488,15 +2495,12 @@ the STRINGS are just concatenated and the result truncated." | |||
| 2488 | (buffers (list "*Yahrzeits*" lunar-phases-buffer holiday-buffer | 2495 | (buffers (list "*Yahrzeits*" lunar-phases-buffer holiday-buffer |
| 2489 | fancy-diary-buffer diary-buffer calendar-buffer | 2496 | fancy-diary-buffer diary-buffer calendar-buffer |
| 2490 | other-calendars-buffer)) | 2497 | other-calendars-buffer)) |
| 2491 | (buffer-list nil) | 2498 | (buffer-list nil)) |
| 2492 | b) | 2499 | (dolist (b buffers) |
| 2493 | (while buffers | ||
| 2494 | (setq b (car buffers)) | ||
| 2495 | (setq b (cond ((stringp b) (get-buffer b)) | 2500 | (setq b (cond ((stringp b) (get-buffer b)) |
| 2496 | ((bufferp b) b) | 2501 | ((bufferp b) b) |
| 2497 | (t nil))) | 2502 | (t nil))) |
| 2498 | (if b (setq buffer-list (cons b buffer-list))) | 2503 | (if b (push b buffer-list))) |
| 2499 | (setq buffers (cdr buffers))) | ||
| 2500 | buffer-list)) | 2504 | buffer-list)) |
| 2501 | 2505 | ||
| 2502 | (defun exit-calendar () | 2506 | (defun exit-calendar () |
| @@ -2642,7 +2646,7 @@ With argument, jump to mark, pop it, and put point at end of ring." | |||
| 2642 | (let ((date (calendar-cursor-to-date t))) | 2646 | (let ((date (calendar-cursor-to-date t))) |
| 2643 | (if (null arg) | 2647 | (if (null arg) |
| 2644 | (progn | 2648 | (progn |
| 2645 | (setq calendar-mark-ring (cons date calendar-mark-ring)) | 2649 | (push date calendar-mark-ring) |
| 2646 | ;; Since the top of the mark ring is the marked date in the | 2650 | ;; Since the top of the mark ring is the marked date in the |
| 2647 | ;; calendar, the mark ring in the calendar is one longer than | 2651 | ;; calendar, the mark ring in the calendar is one longer than |
| 2648 | ;; in other buffers to get the same effect. | 2652 | ;; in other buffers to get the same effect. |
| @@ -2949,16 +2953,18 @@ MARK defaults to `diary-entry-marker'." | |||
| 2949 | "Replace the date under the cursor in the calendar window with asterisks. | 2953 | "Replace the date under the cursor in the calendar window with asterisks. |
| 2950 | This function can be used with the `today-visible-calendar-hook' run after the | 2954 | This function can be used with the `today-visible-calendar-hook' run after the |
| 2951 | calendar window has been prepared." | 2955 | calendar window has been prepared." |
| 2952 | (let ((inhibit-read-only t)) | 2956 | (let ((inhibit-read-only t) |
| 2953 | (make-local-variable 'calendar-starred-day) | 2957 | (modified (buffer-modified-p))) |
| 2954 | (forward-char 1) | 2958 | (forward-char 1) |
| 2955 | (setq calendar-starred-day | 2959 | (set (make-local-variable 'calendar-starred-day) |
| 2956 | (string-to-number | 2960 | (string-to-number |
| 2957 | (buffer-substring (point) (- (point) 2)))) | 2961 | (buffer-substring (point) (- (point) 2)))) |
| 2958 | (delete-char -2) | 2962 | ;; Insert before deleting, to better preserve markers. |
| 2959 | (insert "**") | 2963 | (insert "**") |
| 2960 | (backward-char 1) | 2964 | (forward-char -2) |
| 2961 | (set-buffer-modified-p nil))) | 2965 | (delete-char -2) |
| 2966 | (forward-char 1) | ||
| 2967 | (restore-buffer-modified-p modified))) | ||
| 2962 | 2968 | ||
| 2963 | (defun calendar-mark-today () | 2969 | (defun calendar-mark-today () |
| 2964 | "Mark the date under the cursor in the calendar window. | 2970 | "Mark the date under the cursor in the calendar window. |
| @@ -3048,48 +3054,48 @@ Defaults to today's date if DATE is not given." | |||
| 3048 | (interactive) | 3054 | (interactive) |
| 3049 | (let* ((date (calendar-cursor-to-date t))) | 3055 | (let* ((date (calendar-cursor-to-date t))) |
| 3050 | (with-current-buffer (get-buffer-create other-calendars-buffer) | 3056 | (with-current-buffer (get-buffer-create other-calendars-buffer) |
| 3051 | (setq buffer-read-only nil) | 3057 | (let ((inhibit-read-only t) |
| 3052 | (calendar-set-mode-line | 3058 | (modified (buffer-modified-p))) |
| 3053 | (concat (calendar-date-string date) " (Gregorian)")) | 3059 | (calendar-set-mode-line |
| 3054 | (erase-buffer) | 3060 | (concat (calendar-date-string date) " (Gregorian)")) |
| 3055 | (insert | 3061 | (erase-buffer) |
| 3056 | (mapconcat 'identity | 3062 | (apply |
| 3057 | (list (calendar-day-of-year-string date) | 3063 | 'insert |
| 3058 | (format "ISO date: %s" (calendar-iso-date-string date)) | 3064 | (delq nil |
| 3059 | (format "Julian date: %s" | 3065 | (list |
| 3060 | (calendar-julian-date-string date)) | 3066 | (calendar-day-of-year-string date) "\n" |
| 3061 | (format | 3067 | (format "ISO date: %s\n" (calendar-iso-date-string date)) |
| 3062 | "Astronomical (Julian) day number (at noon UTC): %s.0" | 3068 | (format "Julian date: %s\n" |
| 3063 | (calendar-astro-date-string date)) | 3069 | (calendar-julian-date-string date)) |
| 3064 | (format "Fixed (RD) date: %s" | 3070 | (format "Astronomical (Julian) day number (at noon UTC): %s.0\n" |
| 3065 | (calendar-absolute-from-gregorian date)) | 3071 | (calendar-astro-date-string date)) |
| 3066 | (format "Hebrew date (before sunset): %s" | 3072 | (format "Fixed (RD) date: %s\n" |
| 3067 | (calendar-hebrew-date-string date)) | 3073 | (calendar-absolute-from-gregorian date)) |
| 3068 | (format "Persian date: %s" | 3074 | (format "Hebrew date (before sunset): %s\n" |
| 3069 | (calendar-persian-date-string date)) | 3075 | (calendar-hebrew-date-string date)) |
| 3070 | (let ((i (calendar-islamic-date-string date))) | 3076 | (format "Persian date: %s\n" |
| 3071 | (if (not (string-equal i "")) | 3077 | (calendar-persian-date-string date)) |
| 3072 | (format "Islamic date (before sunset): %s" i))) | 3078 | (let ((i (calendar-islamic-date-string date))) |
| 3073 | (let ((b (calendar-bahai-date-string date))) | 3079 | (if (not (string-equal i "")) |
| 3074 | (if (not (string-equal b "")) | 3080 | (format "Islamic date (before sunset): %s\n" i))) |
| 3075 | (format "Baha'i date (before sunset): %s" b))) | 3081 | (let ((b (calendar-bahai-date-string date))) |
| 3076 | (format "Chinese date: %s" | 3082 | (if (not (string-equal b "")) |
| 3077 | (calendar-chinese-date-string date)) | 3083 | (format "Baha'i date (before sunset): %s\n" b))) |
| 3078 | (let ((c (calendar-coptic-date-string date))) | 3084 | (format "Chinese date: %s\n" |
| 3079 | (if (not (string-equal c "")) | 3085 | (calendar-chinese-date-string date)) |
| 3080 | (format "Coptic date: %s" c))) | 3086 | (let ((c (calendar-coptic-date-string date))) |
| 3081 | (let ((e (calendar-ethiopic-date-string date))) | 3087 | (if (not (string-equal c "")) |
| 3082 | (if (not (string-equal e "")) | 3088 | (format "Coptic date: %s\n" c))) |
| 3083 | (format "Ethiopic date: %s" e))) | 3089 | (let ((e (calendar-ethiopic-date-string date))) |
| 3084 | (let ((f (calendar-french-date-string date))) | 3090 | (if (not (string-equal e "")) |
| 3085 | (if (not (string-equal f "")) | 3091 | (format "Ethiopic date: %s\n" e))) |
| 3086 | (format "French Revolutionary date: %s" f))) | 3092 | (let ((f (calendar-french-date-string date))) |
| 3087 | (format "Mayan date: %s" | 3093 | (if (not (string-equal f "")) |
| 3088 | (calendar-mayan-date-string date))) | 3094 | (format "French Revolutionary date: %s\n" f))) |
| 3089 | "\n")) | 3095 | (format "Mayan date: %s\n" |
| 3090 | (goto-char (point-min)) | 3096 | (calendar-mayan-date-string date))))) |
| 3091 | (set-buffer-modified-p nil) | 3097 | (goto-char (point-min)) |
| 3092 | (setq buffer-read-only t) | 3098 | (restore-buffer-modified-p modified)) |
| 3093 | (display-buffer other-calendars-buffer)))) | 3099 | (display-buffer other-calendars-buffer)))) |
| 3094 | 3100 | ||
| 3095 | (defun calendar-print-day-of-year () | 3101 | (defun calendar-print-day-of-year () |
| @@ -3099,11 +3105,15 @@ Defaults to today's date if DATE is not given." | |||
| 3099 | 3105 | ||
| 3100 | (defun calendar-set-mode-line (str) | 3106 | (defun calendar-set-mode-line (str) |
| 3101 | "Set mode line to STR, centered, surrounded by dashes." | 3107 | "Set mode line to STR, centered, surrounded by dashes." |
| 3102 | (setq mode-line-format | 3108 | (let* ((edges (window-edges)) |
| 3103 | (calendar-string-spread | ||
| 3104 | (list str) ?- | ||
| 3105 | ;; As per doc of window-width, total visible mode-line length. | 3109 | ;; As per doc of window-width, total visible mode-line length. |
| 3106 | (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges)))))) | 3110 | (width (- (nth 2 edges) (nth 0 edges)))) |
| 3111 | (setq mode-line-format | ||
| 3112 | (if buffer-file-name | ||
| 3113 | `("-" mode-line-modified | ||
| 3114 | ,(calendar-string-spread (list str) ?- (- width 6)) | ||
| 3115 | "---") | ||
| 3116 | (calendar-string-spread (list str) ?- width))))) | ||
| 3107 | 3117 | ||
| 3108 | (defun calendar-mod (m n) | 3118 | (defun calendar-mod (m n) |
| 3109 | "Non-negative remainder of M/N with N instead of 0." | 3119 | "Non-negative remainder of M/N with N instead of 0." |
diff --git a/lisp/completion.el b/lisp/completion.el index 28bf1dd10b9..e231906ad27 100644 --- a/lisp/completion.el +++ b/lisp/completion.el | |||
| @@ -82,11 +82,11 @@ | |||
| 82 | ;; SAVING/LOADING COMPLETIONS | 82 | ;; SAVING/LOADING COMPLETIONS |
| 83 | ;; Completions are automatically saved from one session to another | 83 | ;; Completions are automatically saved from one session to another |
| 84 | ;; (unless save-completions-flag or enable-completion is nil). | 84 | ;; (unless save-completions-flag or enable-completion is nil). |
| 85 | ;; Activating this minor-mode calling completion-initialize) causes Emacs | 85 | ;; Activating this minor-mode (calling completion-initialize) loads |
| 86 | ;; to load a completions database for a saved completions file | 86 | ;; a completions database for a saved completions file |
| 87 | ;; (default: ~/.completions). When you exit, Emacs saves a copy of the | 87 | ;; (default: ~/.completions). When you exit, Emacs saves a copy of the |
| 88 | ;; completions that you | 88 | ;; completions that you often use. When you next start, Emacs loads in |
| 89 | ;; often use. When you next start, Emacs loads in the saved completion file. | 89 | ;; the saved completion file. |
| 90 | ;; | 90 | ;; |
| 91 | ;; The number of completions saved depends loosely on | 91 | ;; The number of completions saved depends loosely on |
| 92 | ;; *saved-completions-decay-factor*. Completions that have never been | 92 | ;; *saved-completions-decay-factor*. Completions that have never been |
| @@ -2250,13 +2250,14 @@ Patched to remove the most recent completion." | |||
| 2250 | TYPE is the type of the wrapper to be added. Can be :before or :under." | 2250 | TYPE is the type of the wrapper to be added. Can be :before or :under." |
| 2251 | (put function-name 'completion-function | 2251 | (put function-name 'completion-function |
| 2252 | (cdr (assq type | 2252 | (cdr (assq type |
| 2253 | '((:separator 'use-completion-before-separator) | 2253 | '((:separator . use-completion-before-separator) |
| 2254 | (:before 'use-completion-before-point) | 2254 | (:before . use-completion-before-point) |
| 2255 | (:backward-under 'use-completion-backward-under) | 2255 | (:backward-under . use-completion-backward-under) |
| 2256 | (:backward 'use-completion-backward) | 2256 | (:backward . use-completion-backward) |
| 2257 | (:under 'use-completion-under-point) | 2257 | (:under . use-completion-under-point) |
| 2258 | (:under-or-before 'use-completion-under-or-before-point) | 2258 | (:under-or-before . use-completion-under-or-before-point) |
| 2259 | (:minibuffer-separator 'use-completion-minibuffer-separator)))))) | 2259 | (:minibuffer-separator |
| 2260 | . use-completion-minibuffer-separator)))))) | ||
| 2260 | 2261 | ||
| 2261 | (defun use-completion-minibuffer-separator () | 2262 | (defun use-completion-minibuffer-separator () |
| 2262 | (let ((completion-syntax-table completion-standard-syntax-table)) | 2263 | (let ((completion-syntax-table completion-standard-syntax-table)) |
| @@ -2354,7 +2355,7 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." | |||
| 2354 | (if dynamic-completion-mode | 2355 | (if dynamic-completion-mode |
| 2355 | (add-hook (car x) (cdr x)) | 2356 | (add-hook (car x) (cdr x)) |
| 2356 | (remove-hook (car x) (cdr x)))) | 2357 | (remove-hook (car x) (cdr x)))) |
| 2357 | 2358 | ||
| 2358 | ;; "Complete" Key Keybindings. We don't want to use a minor-mode | 2359 | ;; "Complete" Key Keybindings. We don't want to use a minor-mode |
| 2359 | ;; map because these have too high a priority. We could/should | 2360 | ;; map because these have too high a priority. We could/should |
| 2360 | ;; probably change the interpretation of minor-mode-map-alist such | 2361 | ;; probably change the interpretation of minor-mode-map-alist such |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index a5f9e301946..87dc594b0fe 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -1470,22 +1470,19 @@ See " | |||
| 1470 | (if custom-raised-buttons | 1470 | (if custom-raised-buttons |
| 1471 | "`Raised' text indicates" | 1471 | "`Raised' text indicates" |
| 1472 | "Square brackets indicate"))) | 1472 | "Square brackets indicate"))) |
| 1473 | (widget-create 'info-link | 1473 | (widget-create 'custom-manual |
| 1474 | :tag "Custom file" | 1474 | :tag "Custom file" |
| 1475 | :button-face 'custom-link | ||
| 1476 | :mouse-face 'highlight | ||
| 1477 | "(emacs)Saving Customizations") | 1475 | "(emacs)Saving Customizations") |
| 1478 | (widget-insert | 1476 | (widget-insert |
| 1479 | " for information on how to save in a different file.\n | 1477 | " for information on how to save in a different file.\n |
| 1480 | See ") | 1478 | See ") |
| 1481 | (widget-create 'info-link | 1479 | (widget-create 'custom-manual |
| 1482 | :tag "Help" | 1480 | :tag "Help" |
| 1483 | :button-face 'custom-link | ||
| 1484 | :mouse-face 'highlight | ||
| 1485 | :help-echo "Read the online help." | 1481 | :help-echo "Read the online help." |
| 1486 | "(emacs)Easy Customization") | 1482 | "(emacs)Easy Customization") |
| 1487 | (widget-insert " for more information.\n\n") | 1483 | (widget-insert " for more information.\n\n") |
| 1488 | (widget-insert "Operate on everything in this buffer:\n ")) | 1484 | (widget-insert "Operate on all settings in this buffer that \ |
| 1485 | are not marked HIDDEN:\n ")) | ||
| 1489 | (widget-insert " ")) | 1486 | (widget-insert " ")) |
| 1490 | (widget-create 'push-button | 1487 | (widget-create 'push-button |
| 1491 | :tag "Set for Current Session" | 1488 | :tag "Set for Current Session" |
| @@ -1496,10 +1493,8 @@ Make your editing in this buffer take effect for this session." | |||
| 1496 | (if (not custom-buffer-verbose-help) | 1493 | (if (not custom-buffer-verbose-help) |
| 1497 | (progn | 1494 | (progn |
| 1498 | (widget-insert " ") | 1495 | (widget-insert " ") |
| 1499 | (widget-create 'info-link | 1496 | (widget-create 'custom-manual |
| 1500 | :tag "Help" | 1497 | :tag "Help" |
| 1501 | :button-face 'custom-link | ||
| 1502 | :mouse-face 'highlight | ||
| 1503 | :help-echo "Read the online help." | 1498 | :help-echo "Read the online help." |
| 1504 | "(emacs)Easy Customization"))) | 1499 | "(emacs)Easy Customization"))) |
| 1505 | (when (or custom-file user-init-file) | 1500 | (when (or custom-file user-init-file) |
| @@ -1647,7 +1642,7 @@ item in another window.\n\n")) | |||
| 1647 | (let ((custom-buffer-style 'tree)) | 1642 | (let ((custom-buffer-style 'tree)) |
| 1648 | (custom-toggle-parent widget))) | 1643 | (custom-toggle-parent widget))) |
| 1649 | 1644 | ||
| 1650 | (define-widget 'custom-browse-group-tag 'push-button | 1645 | (define-widget 'custom-browse-group-tag 'custom-group-link |
| 1651 | "Show parent in other window when activated." | 1646 | "Show parent in other window when activated." |
| 1652 | :tag "Group" | 1647 | :tag "Group" |
| 1653 | :tag-glyph "folder" | 1648 | :tag-glyph "folder" |
| @@ -1657,7 +1652,7 @@ item in another window.\n\n")) | |||
| 1657 | (let ((parent (widget-get widget :parent))) | 1652 | (let ((parent (widget-get widget :parent))) |
| 1658 | (customize-group-other-window (widget-value parent)))) | 1653 | (customize-group-other-window (widget-value parent)))) |
| 1659 | 1654 | ||
| 1660 | (define-widget 'custom-browse-variable-tag 'push-button | 1655 | (define-widget 'custom-browse-variable-tag 'custom-group-link |
| 1661 | "Show parent in other window when activated." | 1656 | "Show parent in other window when activated." |
| 1662 | :tag "Option" | 1657 | :tag "Option" |
| 1663 | :tag-glyph "option" | 1658 | :tag-glyph "option" |
| @@ -1667,7 +1662,7 @@ item in another window.\n\n")) | |||
| 1667 | (let ((parent (widget-get widget :parent))) | 1662 | (let ((parent (widget-get widget :parent))) |
| 1668 | (customize-variable-other-window (widget-value parent)))) | 1663 | (customize-variable-other-window (widget-value parent)))) |
| 1669 | 1664 | ||
| 1670 | (define-widget 'custom-browse-face-tag 'push-button | 1665 | (define-widget 'custom-browse-face-tag 'custom-group-link |
| 1671 | "Show parent in other window when activated." | 1666 | "Show parent in other window when activated." |
| 1672 | :tag "Face" | 1667 | :tag "Face" |
| 1673 | :tag-glyph "face" | 1668 | :tag-glyph "face" |
| @@ -2009,13 +2004,7 @@ and `face'." | |||
| 2009 | :group 'custom-faces) | 2004 | :group 'custom-faces) |
| 2010 | 2005 | ||
| 2011 | (defface custom-button-unraised | 2006 | (defface custom-button-unraised |
| 2012 | '((((min-colors 88) | 2007 | '((t :inherit underline)) |
| 2013 | (class color) (background light)) :foreground "blue1" :underline t) | ||
| 2014 | (((class color) (background light)) :foreground "blue" :underline t) | ||
| 2015 | (((min-colors 88) | ||
| 2016 | (class color) (background dark)) :foreground "cyan1" :underline t) | ||
| 2017 | (((class color) (background dark)) :foreground "cyan" :underline t) | ||
| 2018 | (t :underline t)) | ||
| 2019 | "Face for custom buffer buttons if `custom-raised-buttons' is nil." | 2008 | "Face for custom buffer buttons if `custom-raised-buttons' is nil." |
| 2020 | :version "22.1" | 2009 | :version "22.1" |
| 2021 | :group 'custom-faces) | 2010 | :group 'custom-faces) |
| @@ -2070,15 +2059,10 @@ and `face'." | |||
| 2070 | (put 'custom-state-face 'face-alias 'custom-state) | 2059 | (put 'custom-state-face 'face-alias 'custom-state) |
| 2071 | 2060 | ||
| 2072 | (defface custom-link | 2061 | (defface custom-link |
| 2073 | '((((min-colors 88) | 2062 | '((t :inherit link)) |
| 2074 | (class color) (background light)) :foreground "blue1" :underline t) | 2063 | "Face for links in customization buffers." |
| 2075 | (((class color) (background light)) :foreground "blue" :underline t) | 2064 | :version "22.1" |
| 2076 | (((min-colors 88) | 2065 | :group 'custom-faces) |
| 2077 | (class color) (background dark)) :foreground "cyan1" :underline t) | ||
| 2078 | (((class color) (background dark)) :foreground "cyan" :underline t) | ||
| 2079 | (t :underline t)) | ||
| 2080 | "Face for Info links in customization buffers." | ||
| 2081 | :group 'info) | ||
| 2082 | 2066 | ||
| 2083 | (define-widget 'custom 'default | 2067 | (define-widget 'custom 'default |
| 2084 | "Customize a user option." | 2068 | "Customize a user option." |
| @@ -2245,8 +2229,6 @@ If INITIAL-STRING is non-nil, use that rather than \"Parent groups:\"." | |||
| 2245 | (insert " ") | 2229 | (insert " ") |
| 2246 | (push (widget-create-child-and-convert | 2230 | (push (widget-create-child-and-convert |
| 2247 | widget 'custom-group-link | 2231 | widget 'custom-group-link |
| 2248 | :button-face 'custom-link | ||
| 2249 | :mouse-face 'highlight | ||
| 2250 | :tag (custom-unlispify-tag-name symbol) | 2232 | :tag (custom-unlispify-tag-name symbol) |
| 2251 | symbol) | 2233 | symbol) |
| 2252 | buttons) | 2234 | buttons) |
| @@ -3323,7 +3305,7 @@ SPEC must be a full face spec." | |||
| 3323 | (defvar custom-face-menu | 3305 | (defvar custom-face-menu |
| 3324 | `(("Set for Current Session" custom-face-set) | 3306 | `(("Set for Current Session" custom-face-set) |
| 3325 | ,@(when (or custom-file user-init-file) | 3307 | ,@(when (or custom-file user-init-file) |
| 3326 | '(("Save for Future Sessions" custom-face-save-command))) | 3308 | '(("Save for Future Sessions" custom-face-save))) |
| 3327 | ("Undo Edits" custom-redraw | 3309 | ("Undo Edits" custom-redraw |
| 3328 | (lambda (widget) | 3310 | (lambda (widget) |
| 3329 | (memq (widget-get widget :custom-state) '(modified changed)))) | 3311 | (memq (widget-get widget :custom-state) '(modified changed)))) |
| @@ -3448,13 +3430,8 @@ Optional EVENT is the location for the menu." | |||
| 3448 | (custom-face-state-set widget) | 3430 | (custom-face-state-set widget) |
| 3449 | (custom-redraw-magic widget))) | 3431 | (custom-redraw-magic widget))) |
| 3450 | 3432 | ||
| 3451 | (defun custom-face-save-command (widget) | ||
| 3452 | "Save in `.emacs' the face attributes in WIDGET." | ||
| 3453 | (custom-face-save widget) | ||
| 3454 | (custom-save-all)) | ||
| 3455 | |||
| 3456 | (defun custom-face-save (widget) | 3433 | (defun custom-face-save (widget) |
| 3457 | "Prepare for saving WIDGET's face attributes, but don't write `.emacs'." | 3434 | "Save in `.emacs' the face attributes in WIDGET." |
| 3458 | (let* ((symbol (widget-value widget)) | 3435 | (let* ((symbol (widget-value widget)) |
| 3459 | (child (car (widget-get widget :children))) | 3436 | (child (car (widget-get widget :children))) |
| 3460 | (value (custom-post-filter-face-spec (widget-value child))) | 3437 | (value (custom-post-filter-face-spec (widget-value child))) |
| @@ -3480,6 +3457,10 @@ Optional EVENT is the location for the menu." | |||
| 3480 | (custom-face-state-set widget) | 3457 | (custom-face-state-set widget) |
| 3481 | (custom-redraw-magic widget))) | 3458 | (custom-redraw-magic widget))) |
| 3482 | 3459 | ||
| 3460 | ;; For backward compatibility. | ||
| 3461 | (define-obsolete-function-alias 'custom-face-save-command 'custom-face-save | ||
| 3462 | "22.1") | ||
| 3463 | |||
| 3483 | (defun custom-face-reset-saved (widget) | 3464 | (defun custom-face-reset-saved (widget) |
| 3484 | "Restore WIDGET to the face's default attributes." | 3465 | "Restore WIDGET to the face's default attributes." |
| 3485 | (let* ((symbol (widget-value widget)) | 3466 | (let* ((symbol (widget-value widget)) |
| @@ -3607,6 +3588,8 @@ restoring it to the state of a face that has never been customized." | |||
| 3607 | 3588 | ||
| 3608 | (define-widget 'custom-group-link 'link | 3589 | (define-widget 'custom-group-link 'link |
| 3609 | "Show parent in other window when activated." | 3590 | "Show parent in other window when activated." |
| 3591 | :button-face 'custom-link | ||
| 3592 | :mouse-face 'highlight | ||
| 3610 | :help-echo "Create customization buffer for this group." | 3593 | :help-echo "Create customization buffer for this group." |
| 3611 | :action 'custom-group-link-action) | 3594 | :action 'custom-group-link-action) |
| 3612 | 3595 | ||
| @@ -3805,8 +3788,6 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 3805 | (if (eq custom-buffer-style 'links) | 3788 | (if (eq custom-buffer-style 'links) |
| 3806 | (push (widget-create-child-and-convert | 3789 | (push (widget-create-child-and-convert |
| 3807 | widget 'custom-group-link | 3790 | widget 'custom-group-link |
| 3808 | :button-face 'custom-link | ||
| 3809 | :mouse-face 'highlight | ||
| 3810 | :tag "Go to Group" | 3791 | :tag "Go to Group" |
| 3811 | symbol) | 3792 | symbol) |
| 3812 | buttons) | 3793 | buttons) |
| @@ -4400,6 +4381,15 @@ The format is suitable for use with `easy-menu-define'." | |||
| 4400 | ["Erase Customization" Custom-reset-standard t] | 4381 | ["Erase Customization" Custom-reset-standard t] |
| 4401 | ["Info" (info "(emacs)Easy Customization") t])) | 4382 | ["Info" (info "(emacs)Easy Customization") t])) |
| 4402 | 4383 | ||
| 4384 | (defvar custom-field-keymap | ||
| 4385 | (let ((map (copy-keymap widget-field-keymap))) | ||
| 4386 | (define-key map "\C-c\C-c" 'Custom-set) | ||
| 4387 | (define-key map "\C-x\C-s" 'Custom-save) | ||
| 4388 | map) | ||
| 4389 | "Keymap used inside editable fields in customization buffers.") | ||
| 4390 | |||
| 4391 | (widget-put (get 'editable-field 'widget-type) :keymap custom-field-keymap) | ||
| 4392 | |||
| 4403 | (defun Custom-goto-parent () | 4393 | (defun Custom-goto-parent () |
| 4404 | "Go to the parent group listed at the top of this buffer. | 4394 | "Go to the parent group listed at the top of this buffer. |
| 4405 | If several parents are listed, go to the first of them." | 4395 | If several parents are listed, go to the first of them." |
| @@ -4425,17 +4415,18 @@ If several parents are listed, go to the first of them." | |||
| 4425 | 4415 | ||
| 4426 | The following commands are available: | 4416 | The following commands are available: |
| 4427 | 4417 | ||
| 4428 | Move to next button or editable field. \\[widget-forward] | 4418 | \\<widget-keymap>\ |
| 4429 | Move to previous button or editable field. \\[widget-backward] | 4419 | Move to next button, link or editable field. \\[widget-forward] |
| 4430 | \\<widget-field-keymap>\ | 4420 | Move to previous button, link or editable field. \\[widget-backward] |
| 4421 | \\<custom-field-keymap>\ | ||
| 4431 | Complete content of editable text field. \\[widget-complete] | 4422 | Complete content of editable text field. \\[widget-complete] |
| 4432 | \\<custom-mode-map>\ | 4423 | \\<custom-mode-map>\ |
| 4433 | Invoke button under the mouse pointer. \\[Custom-move-and-invoke] | 4424 | Invoke button under the mouse pointer. \\[widget-move-and-invoke] |
| 4434 | Invoke button under point. \\[widget-button-press] | 4425 | Invoke button under point. \\[widget-button-press] |
| 4435 | Set all options from current text. \\[Custom-set] | 4426 | Set all options from current text. \\[Custom-set] |
| 4436 | Make values in current text permanent. \\[Custom-save] | 4427 | Make values in current text permanent. \\[Custom-save] |
| 4437 | Make text match actual option values. \\[Custom-reset-current] | 4428 | Make text match actual option values. \\[Custom-reset-current] |
| 4438 | Reset options to permanent settings. \\[Custom-reset-saved] | 4429 | Reset options to permanent settings. \\[Custom-reset-saved] |
| 4439 | Erase customizations; set options | 4430 | Erase customizations; set options |
| 4440 | and buffer text to the standard values. \\[Custom-reset-standard] | 4431 | and buffer text to the standard values. \\[Custom-reset-standard] |
| 4441 | 4432 | ||
diff --git a/lisp/desktop.el b/lisp/desktop.el index 689c541140e..98e31081abf 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -966,7 +966,7 @@ directory DIRNAME." | |||
| 966 | (defun desktop-load-file (function) | 966 | (defun desktop-load-file (function) |
| 967 | "Load the file where auto loaded FUNCTION is defined." | 967 | "Load the file where auto loaded FUNCTION is defined." |
| 968 | (when function | 968 | (when function |
| 969 | (let ((fcell (symbol-function function))) | 969 | (let ((fcell (and (fboundp function) (symbol-function function)))) |
| 970 | (when (and (listp fcell) | 970 | (when (and (listp fcell) |
| 971 | (eq 'autoload (car fcell))) | 971 | (eq 'autoload (car fcell))) |
| 972 | (load (cadr fcell)))))) | 972 | (load (cadr fcell)))))) |
diff --git a/lisp/dired.el b/lisp/dired.el index 3cc83b29fdd..fe8f6996b28 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -286,6 +286,9 @@ In simple cases, this list contains one element.") | |||
| 286 | This is an alist of the form (SUBDIR . SWITCHES).") | 286 | This is an alist of the form (SUBDIR . SWITCHES).") |
| 287 | (make-variable-buffer-local 'dired-switches-alist) | 287 | (make-variable-buffer-local 'dired-switches-alist) |
| 288 | 288 | ||
| 289 | (defvaralias 'dired-move-to-filename-regexp | ||
| 290 | 'directory-listing-before-filename-regexp) | ||
| 291 | |||
| 289 | (defvar dired-subdir-regexp "^. \\([^\n\r]+\\)\\(:\\)[\n\r]" | 292 | (defvar dired-subdir-regexp "^. \\([^\n\r]+\\)\\(:\\)[\n\r]" |
| 290 | "Regexp matching a maybe hidden subdirectory line in `ls -lR' output. | 293 | "Regexp matching a maybe hidden subdirectory line in `ls -lR' output. |
| 291 | Subexpression 1 is the subdirectory proper, no trailing colon. | 294 | Subexpression 1 is the subdirectory proper, no trailing colon. |
| @@ -2514,11 +2517,18 @@ if there are no flagged files." | |||
| 2514 | (set-window-start w2 1) | 2517 | (set-window-start w2 1) |
| 2515 | ))) | 2518 | ))) |
| 2516 | 2519 | ||
| 2517 | (defvar dired-no-confirm nil | 2520 | (defcustom dired-no-confirm nil |
| 2518 | "A list of symbols for commands Dired should not confirm. | 2521 | "A list of symbols for commands Dired should not confirm. |
| 2519 | Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress', | 2522 | Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress', |
| 2520 | `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink', | 2523 | `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink', |
| 2521 | `touch' and `uncompress'.") | 2524 | `touch' and `uncompress'." |
| 2525 | :group 'dired | ||
| 2526 | :type '(set (const byte-compile) (const chgrp) | ||
| 2527 | (const chmod) (const chown) (const compress) | ||
| 2528 | (const copy) (const delete) (const hardlink) | ||
| 2529 | (const load) (const move) (const print) | ||
| 2530 | (const shell) (const symlink) (const touch) | ||
| 2531 | (const uncompress))) | ||
| 2522 | 2532 | ||
| 2523 | (defun dired-mark-pop-up (bufname op-symbol files function &rest args) | 2533 | (defun dired-mark-pop-up (bufname op-symbol files function &rest args) |
| 2524 | "Return FUNCTION's result on ARGS after showing which files are marked. | 2534 | "Return FUNCTION's result on ARGS after showing which files are marked. |
| @@ -3091,9 +3101,9 @@ With optional second arg NO-REVERT, don't refresh the listing afterwards." | |||
| 3091 | (if (eq major-mode 'dired-mode) (dired-sort-set-modeline)) | 3101 | (if (eq major-mode 'dired-mode) (dired-sort-set-modeline)) |
| 3092 | (or no-revert (revert-buffer))) | 3102 | (or no-revert (revert-buffer))) |
| 3093 | 3103 | ||
| 3094 | (make-variable-buffer-local | 3104 | (defvar dired-subdir-alist-pre-R nil |
| 3095 | (defvar dired-subdir-alist-pre-R nil | 3105 | "Value of `dired-subdir-alist' before -R switch added.") |
| 3096 | "Value of `dired-subdir-alist' before -R switch added.")) | 3106 | (make-variable-buffer-local 'dired-subdir-alist-pre-R) |
| 3097 | 3107 | ||
| 3098 | (defun dired-sort-R-check (switches) | 3108 | (defun dired-sort-R-check (switches) |
| 3099 | "Additional processing of -R in ls option string SWITCHES. | 3109 | "Additional processing of -R in ls option string SWITCHES. |
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 43e8b917ce8..4c218263a62 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el | |||
| @@ -165,7 +165,7 @@ If nil, do not try to find the source code of functions and variables | |||
| 165 | defined in C.") | 165 | defined in C.") |
| 166 | 166 | ||
| 167 | (defun find-function-C-source (fun-or-var file type) | 167 | (defun find-function-C-source (fun-or-var file type) |
| 168 | "Find the source location where SUBR-OR-VAR is defined in FILE. | 168 | "Find the source location where FUN-OR-VAR is defined in FILE. |
| 169 | TYPE should be nil to find a function, or `defvar' to find a variable." | 169 | TYPE should be nil to find a function, or `defvar' to find a variable." |
| 170 | (unless find-function-C-source-directory | 170 | (unless find-function-C-source-directory |
| 171 | (setq find-function-C-source-directory | 171 | (setq find-function-C-source-directory |
| @@ -243,7 +243,7 @@ The search is done in the source for library LIBRARY." | |||
| 243 | (defun find-function-noselect (function) | 243 | (defun find-function-noselect (function) |
| 244 | "Return a pair (BUFFER . POINT) pointing to the definition of FUNCTION. | 244 | "Return a pair (BUFFER . POINT) pointing to the definition of FUNCTION. |
| 245 | 245 | ||
| 246 | Finds the Emacs Lisp library containing the definition of FUNCTION | 246 | Finds the source file containing the definition of FUNCTION |
| 247 | in a buffer and the point of the definition. The buffer is | 247 | in a buffer and the point of the definition. The buffer is |
| 248 | not selected. | 248 | not selected. |
| 249 | 249 | ||
| @@ -335,7 +335,7 @@ Set mark before moving, if the buffer already existed." | |||
| 335 | (defun find-function (function) | 335 | (defun find-function (function) |
| 336 | "Find the definition of the FUNCTION near point. | 336 | "Find the definition of the FUNCTION near point. |
| 337 | 337 | ||
| 338 | Finds the Emacs Lisp library containing the definition of the function | 338 | Finds the source file containing the definition of the function |
| 339 | near point (selected by `function-called-at-point') in a buffer and | 339 | near point (selected by `function-called-at-point') in a buffer and |
| 340 | places point before the definition. | 340 | places point before the definition. |
| 341 | Set mark before moving, if the buffer already existed. | 341 | Set mark before moving, if the buffer already existed. |
| @@ -356,7 +356,7 @@ See `find-function' for more details." | |||
| 356 | 356 | ||
| 357 | ;;;###autoload | 357 | ;;;###autoload |
| 358 | (defun find-function-other-frame (function) | 358 | (defun find-function-other-frame (function) |
| 359 | "Find, in ananother frame, the definition of FUNCTION near point. | 359 | "Find, in another frame, the definition of FUNCTION near point. |
| 360 | 360 | ||
| 361 | See `find-function' for more details." | 361 | See `find-function' for more details." |
| 362 | (interactive (find-function-read)) | 362 | (interactive (find-function-read)) |
| @@ -364,24 +364,25 @@ See `find-function' for more details." | |||
| 364 | 364 | ||
| 365 | ;;;###autoload | 365 | ;;;###autoload |
| 366 | (defun find-variable-noselect (variable &optional file) | 366 | (defun find-variable-noselect (variable &optional file) |
| 367 | "Return a pair `(BUFFER . POINT)' pointing to the definition of SYMBOL. | 367 | "Return a pair `(BUFFER . POINT)' pointing to the definition of VARIABLE. |
| 368 | 368 | ||
| 369 | Finds the Emacs Lisp library containing the definition of SYMBOL | 369 | Finds the library containing the definition of VARIABLE in a buffer and |
| 370 | in a buffer, and the point of the definition. It does not switch | 370 | the point of the definition. The buffer is not selected. |
| 371 | to the buffer or display it. | ||
| 372 | 371 | ||
| 373 | The library where VARIABLE is defined is searched for in FILE or | 372 | The library where VARIABLE is defined is searched for in FILE or |
| 374 | `find-function-source-path', if non nil, otherwise in `load-path'." | 373 | `find-function-source-path', if non nil, otherwise in `load-path'." |
| 375 | (if (not variable) | 374 | (if (not variable) |
| 376 | (error "You didn't specify a variable")) | 375 | (error "You didn't specify a variable") |
| 377 | (let ((library (or file (symbol-file variable 'defvar)))) | 376 | (let ((library (or file |
| 378 | (find-function-search-for-symbol variable 'defvar library))) | 377 | (symbol-file variable 'defvar) |
| 378 | (help-C-file-name variable 'var)))) | ||
| 379 | (find-function-search-for-symbol variable 'defvar library)))) | ||
| 379 | 380 | ||
| 380 | ;;;###autoload | 381 | ;;;###autoload |
| 381 | (defun find-variable (variable) | 382 | (defun find-variable (variable) |
| 382 | "Find the definition of the VARIABLE near point. | 383 | "Find the definition of the VARIABLE near point. |
| 383 | 384 | ||
| 384 | Finds the Emacs Lisp library containing the definition of the variable | 385 | Finds the library containing the definition of the variable |
| 385 | near point (selected by `variable-at-point') in a buffer and | 386 | near point (selected by `variable-at-point') in a buffer and |
| 386 | places point before the definition. | 387 | places point before the definition. |
| 387 | 388 | ||
| @@ -403,7 +404,7 @@ See `find-variable' for more details." | |||
| 403 | 404 | ||
| 404 | ;;;###autoload | 405 | ;;;###autoload |
| 405 | (defun find-variable-other-frame (variable) | 406 | (defun find-variable-other-frame (variable) |
| 406 | "Find, in annother frame, the definition of VARIABLE near point. | 407 | "Find, in another frame, the definition of VARIABLE near point. |
| 407 | 408 | ||
| 408 | See `find-variable' for more details." | 409 | See `find-variable' for more details." |
| 409 | (interactive (find-function-read 'defvar)) | 410 | (interactive (find-function-read 'defvar)) |
| @@ -412,18 +413,22 @@ See `find-variable' for more details." | |||
| 412 | ;;;###autoload | 413 | ;;;###autoload |
| 413 | (defun find-definition-noselect (symbol type &optional file) | 414 | (defun find-definition-noselect (symbol type &optional file) |
| 414 | "Return a pair `(BUFFER . POINT)' pointing to the definition of SYMBOL. | 415 | "Return a pair `(BUFFER . POINT)' pointing to the definition of SYMBOL. |
| 415 | TYPE says what type of definition: nil for a function, | 416 | TYPE says what type of definition: nil for a function, `defvar' for a |
| 416 | `defvar' or `defface' for a variable or face. This function | 417 | variabke, `defface' for a face. This function does not switch to the |
| 417 | does not switch to the buffer or display it. | 418 | buffer nor display it. |
| 418 | 419 | ||
| 419 | The library where SYMBOL is defined is searched for in FILE or | 420 | The library where SYMBOL is defined is searched for in FILE or |
| 420 | `find-function-source-path', if non nil, otherwise in `load-path'." | 421 | `find-function-source-path', if non nil, otherwise in `load-path'." |
| 421 | (if (not symbol) | 422 | (cond |
| 422 | (error "You didn't specify a symbol")) | 423 | ((not symbol) |
| 423 | (if (null type) | 424 | (error "You didn't specify a symbol")) |
| 424 | (find-function-noselect symbol) | 425 | ((null type) |
| 426 | (find-function-noselect symbol)) | ||
| 427 | ((eq type 'defvar) | ||
| 428 | (find-variable-noselect symbol file)) | ||
| 429 | (t | ||
| 425 | (let ((library (or file (symbol-file symbol type)))) | 430 | (let ((library (or file (symbol-file symbol type)))) |
| 426 | (find-function-search-for-symbol symbol type library)))) | 431 | (find-function-search-for-symbol symbol type library))))) |
| 427 | 432 | ||
| 428 | ;; For symmetry, this should be called find-face; but some programs | 433 | ;; For symmetry, this should be called find-face; but some programs |
| 429 | ;; assume that, if that name is defined, it means something else. | 434 | ;; assume that, if that name is defined, it means something else. |
| @@ -480,7 +485,7 @@ Set mark before moving, if the buffer already existed." | |||
| 480 | 485 | ||
| 481 | ;;;###autoload | 486 | ;;;###autoload |
| 482 | (defun find-variable-at-point () | 487 | (defun find-variable-at-point () |
| 483 | "Find directly the function at point in the other window." | 488 | "Find directly the variable at point in the other window." |
| 484 | (interactive) | 489 | (interactive) |
| 485 | (let ((symb (variable-at-point))) | 490 | (let ((symb (variable-at-point))) |
| 486 | (when (and symb (not (equal symb 0))) | 491 | (when (and symb (not (equal symb 0))) |
diff --git a/lisp/faces.el b/lisp/faces.el index 2bc3d3968e2..14613bec679 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -1918,6 +1918,28 @@ created." | |||
| 1918 | :group 'basic-faces | 1918 | :group 'basic-faces |
| 1919 | :version "22.1") | 1919 | :version "22.1") |
| 1920 | 1920 | ||
| 1921 | (defface link | ||
| 1922 | '((((class color) (min-colors 88) (background light)) | ||
| 1923 | :foreground "blue1" :underline t) | ||
| 1924 | (((class color) (background light)) | ||
| 1925 | :foreground "blue" :underline t) | ||
| 1926 | (((class color) (min-colors 88) (background dark)) | ||
| 1927 | :foreground "cyan1" :underline t) | ||
| 1928 | (((class color) (background dark)) | ||
| 1929 | :foreground "cyan" :underline t) | ||
| 1930 | (t :inherit underline)) | ||
| 1931 | "Basic face for unvisited links." | ||
| 1932 | :group 'basic-faces | ||
| 1933 | :version "22.1") | ||
| 1934 | |||
| 1935 | (defface link-visited | ||
| 1936 | '((default :inherit link) | ||
| 1937 | (((class color) (background light)) :foreground "magenta4") | ||
| 1938 | (((class color) (background dark)) :foreground "violet")) | ||
| 1939 | "Basic face for visited links." | ||
| 1940 | :group 'basic-faces | ||
| 1941 | :version "22.1") | ||
| 1942 | |||
| 1921 | (defface highlight | 1943 | (defface highlight |
| 1922 | '((((class color) (min-colors 88) (background light)) | 1944 | '((((class color) (min-colors 88) (background light)) |
| 1923 | :background "darkseagreen2") | 1945 | :background "darkseagreen2") |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index acdcf68c7dc..f85aa37b3b5 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -2127,7 +2127,7 @@ other modes in which C preprocessor directives are used. e.g. `asm-mode' and | |||
| 2127 | ;; Constant values. | 2127 | ;; Constant values. |
| 2128 | ("\\<:\\sw+\\>" 0 font-lock-builtin-face) | 2128 | ("\\<:\\sw+\\>" 0 font-lock-builtin-face) |
| 2129 | ;; ELisp and CLisp `&' keywords as types. | 2129 | ;; ELisp and CLisp `&' keywords as types. |
| 2130 | ("\\&\\sw+\\>" . font-lock-type-face) | 2130 | ("\\<\\&\\sw+\\>" . font-lock-type-face) |
| 2131 | ;; ELisp regexp grouping constructs | 2131 | ;; ELisp regexp grouping constructs |
| 2132 | ((lambda (bound) | 2132 | ((lambda (bound) |
| 2133 | (catch 'found | 2133 | (catch 'found |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 6e0405c24eb..fbbf7281b69 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,62 @@ | |||
| 1 | 2006-01-25 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2 | |||
| 3 | * mm-uu.el (mm-uu-dissect-text-parts): Ignore it if a given part | ||
| 4 | is dissected into a single part of which the type is the same as | ||
| 5 | the given one. | ||
| 6 | |||
| 7 | 2006-01-21 Kevin Ryde <user42@zip.com.au> | ||
| 8 | |||
| 9 | * mailcap.el (mailcap-parse-mailcap-extras): "test" key must go | ||
| 10 | into alists as symbol not string, since that's what | ||
| 11 | mailcap-viewer-passes-test and mailcap-mailcap-entry-passes-test | ||
| 12 | look for. | ||
| 13 | |||
| 14 | 2006-01-24 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 15 | |||
| 16 | * mm-uu.el (mm-uu-dissect-text-parts): Reduce the number of | ||
| 17 | recursive calls. | ||
| 18 | |||
| 19 | 2006-01-24 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 20 | |||
| 21 | * mm-view.el (mm-w3m-standalone-supports-m17n-p): New variable. | ||
| 22 | (mm-w3m-standalone-supports-m17n-p): New function. | ||
| 23 | (mm-inline-text-html-render-with-w3m-standalone): Use it to alter | ||
| 24 | w3m usage. | ||
| 25 | |||
| 26 | * gnus-art.el (gnus-article-wash-html-with-w3m-standalone): Use | ||
| 27 | mm-w3m-standalone-supports-m17n-p to alter w3m usage. | ||
| 28 | |||
| 29 | 2006-01-23 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 30 | |||
| 31 | * mm-uu.el (mm-uu-dissect-text-parts): Decode content transfer | ||
| 32 | encoding. | ||
| 33 | |||
| 34 | 2006-01-20 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 35 | |||
| 36 | * mml.el (mml-attach-file): Describe `description' in doc string. | ||
| 37 | (mml-menu): Add Emacs MIME manual and PGG manual. | ||
| 38 | |||
| 39 | 2006-01-19 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 40 | |||
| 41 | * spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p) | ||
| 42 | (spam-group-spam-marks, spam-list-articles, spam-group-ham-marks): | ||
| 43 | Revert 2006-01-08 change because the functions will be used in No | ||
| 44 | Gnus. | ||
| 45 | |||
| 46 | 2006-01-19 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 47 | |||
| 48 | * mm-bodies.el (mm-decode-body): Don't decode decoded body. | ||
| 49 | |||
| 50 | * mm-uu.el (mm-uu-dissect-text-parts): Dissect dissected parts. | ||
| 51 | |||
| 52 | 2006-01-17 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 53 | |||
| 54 | * mm-decode.el (mm-inlined-types): Add application/pgp. | ||
| 55 | (mm-automatic-display): Ditto. | ||
| 56 | |||
| 57 | * mm-uu.el (mm-uu-dissect-text-parts): Recognize application/pgp | ||
| 58 | part as text. | ||
| 59 | |||
| 1 | 2006-01-16 Katsumi Yamaoka <yamaoka@jpl.org> | 60 | 2006-01-16 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 61 | ||
| 3 | * nnrss.el: Update copyright. | 62 | * nnrss.el: Update copyright. |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 92a4f09ded3..b51ceff29a9 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -2541,15 +2541,18 @@ charset defined in `gnus-summary-show-article-charset-alist' is used." | |||
| 2541 | 2541 | ||
| 2542 | (defun gnus-article-wash-html-with-w3m-standalone () | 2542 | (defun gnus-article-wash-html-with-w3m-standalone () |
| 2543 | "Wash the current buffer with w3m." | 2543 | "Wash the current buffer with w3m." |
| 2544 | (unless (mm-coding-system-p charset) | 2544 | (if (mm-w3m-standalone-supports-m17n-p) |
| 2545 | ;; The default. | 2545 | (progn |
| 2546 | (setq charset 'iso-8859-1)) | 2546 | (unless (mm-coding-system-p charset) ;; Bound by `article-wash-html'. |
| 2547 | (let ((coding-system-for-write charset) | 2547 | ;; The default. |
| 2548 | (coding-system-for-read charset)) | 2548 | (setq charset 'iso-8859-1)) |
| 2549 | (call-process-region | 2549 | (let ((coding-system-for-write charset) |
| 2550 | (point-min) (point-max) | 2550 | (coding-system-for-read charset)) |
| 2551 | "w3m" t t nil "-dump" "-T" "text/html" | 2551 | (call-process-region |
| 2552 | "-I" (symbol-name charset) "-O" (symbol-name charset)))) | 2552 | (point-min) (point-max) |
| 2553 | "w3m" t t nil "-dump" "-T" "text/html" | ||
| 2554 | "-I" (symbol-name charset) "-O" (symbol-name charset)))) | ||
| 2555 | (mm-inline-wash-with-stdin nil "w3m" "-dump" "-T" "text/html"))) | ||
| 2553 | 2556 | ||
| 2554 | (defun article-hide-list-identifiers () | 2557 | (defun article-hide-list-identifiers () |
| 2555 | "Remove list identifies from the Subject header. | 2558 | "Remove list identifies from the Subject header. |
diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index 166edb60f7a..80153645819 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el | |||
| @@ -528,7 +528,12 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus | |||
| 528 | (skip-chars-forward ";")) | 528 | (skip-chars-forward ";")) |
| 529 | (setq done t)))) | 529 | (setq done t)))) |
| 530 | (setq value (buffer-substring val-pos (point)))) | 530 | (setq value (buffer-substring val-pos (point)))) |
| 531 | (setq results (cons (cons name value) results)) | 531 | ;; `test' as symbol, others like "copiousoutput" and "needsx11" as |
| 532 | ;; strings | ||
| 533 | (setq results (cons (cons (if (string-equal name "test") | ||
| 534 | 'test | ||
| 535 | name) | ||
| 536 | value) results)) | ||
| 532 | (skip-chars-forward " \";\n\t")) | 537 | (skip-chars-forward " \";\n\t")) |
| 533 | results))) | 538 | results))) |
| 534 | 539 | ||
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index ed3dc28253d..7871ca9f253 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; mm-bodies.el --- Functions for decoding MIME things | 1 | ;;; mm-bodies.el --- Functions for decoding MIME things |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 7 | ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> | 7 | ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> |
| @@ -248,7 +248,8 @@ decoding. If it is nil, default to `mail-parse-charset'." | |||
| 248 | (save-excursion | 248 | (save-excursion |
| 249 | (when encoding | 249 | (when encoding |
| 250 | (mm-decode-content-transfer-encoding encoding type)) | 250 | (mm-decode-content-transfer-encoding encoding type)) |
| 251 | (when (featurep 'mule) ; Fixme: Wrong test for unibyte session. | 251 | (when (and (featurep 'mule) ;; Fixme: Wrong test for unibyte session. |
| 252 | (not (eq charset 'gnus-decoded))) | ||
| 252 | (let ((coding-system (mm-charset-to-coding-system charset))) | 253 | (let ((coding-system (mm-charset-to-coding-system charset))) |
| 253 | (if (and (not coding-system) | 254 | (if (and (not coding-system) |
| 254 | (listp mail-parse-ignored-charsets) | 255 | (listp mail-parse-ignored-charsets) |
| @@ -261,8 +262,7 @@ decoding. If it is nil, default to `mail-parse-charset'." | |||
| 261 | ;;in XEmacs | 262 | ;;in XEmacs |
| 262 | (mm-multibyte-p) | 263 | (mm-multibyte-p) |
| 263 | (or (not (eq coding-system 'ascii)) | 264 | (or (not (eq coding-system 'ascii)) |
| 264 | (setq coding-system mail-parse-charset)) | 265 | (setq coding-system mail-parse-charset))) |
| 265 | (not (eq coding-system 'gnus-decoded))) | ||
| 266 | (mm-decode-coding-region (point-min) (point-max) | 266 | (mm-decode-coding-region (point-min) (point-max) |
| 267 | coding-system)) | 267 | coding-system)) |
| 268 | (setq buffer-file-coding-system | 268 | (setq buffer-file-coding-system |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 5b55af4d756..b275807c051 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; mm-decode.el --- Functions for decoding MIME things | 1 | ;;; mm-decode.el --- Functions for decoding MIME things |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 7 | ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> | 7 | ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> |
| @@ -279,7 +279,9 @@ before the external MIME handler is invoked." | |||
| 279 | "application/x-emacs-lisp" | 279 | "application/x-emacs-lisp" |
| 280 | "application/pgp-signature" "application/x-pkcs7-signature" | 280 | "application/pgp-signature" "application/x-pkcs7-signature" |
| 281 | "application/pkcs7-signature" "application/x-pkcs7-mime" | 281 | "application/pkcs7-signature" "application/x-pkcs7-mime" |
| 282 | "application/pkcs7-mime") | 282 | "application/pkcs7-mime" |
| 283 | ;; Mutt still uses this even though it has already been withdrawn. | ||
| 284 | "application/pgp") | ||
| 283 | "List of media types that are to be displayed inline. | 285 | "List of media types that are to be displayed inline. |
| 284 | See also `mm-inline-media-tests', which says how to display a media | 286 | See also `mm-inline-media-tests', which says how to display a media |
| 285 | type inline." | 287 | type inline." |
| @@ -302,7 +304,9 @@ when selecting a different article." | |||
| 302 | "application/emacs-lisp" "application/x-emacs-lisp" | 304 | "application/emacs-lisp" "application/x-emacs-lisp" |
| 303 | "application/x-pkcs7-signature" | 305 | "application/x-pkcs7-signature" |
| 304 | "application/pkcs7-signature" "application/x-pkcs7-mime" | 306 | "application/pkcs7-signature" "application/x-pkcs7-mime" |
| 305 | "application/pkcs7-mime") | 307 | "application/pkcs7-mime" |
| 308 | ;; Mutt still uses this even though it has already been withdrawn. | ||
| 309 | "application/pgp") | ||
| 306 | "A list of MIME types to be displayed automatically." | 310 | "A list of MIME types to be displayed automatically." |
| 307 | :type '(repeat regexp) | 311 | :type '(repeat regexp) |
| 308 | :group 'mime-display) | 312 | :group 'mime-display) |
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 312c3dd8542..fa36582af01 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -511,21 +511,40 @@ value of `mm-uu-text-plain-type'." | |||
| 511 | 511 | ||
| 512 | (defun mm-uu-dissect-text-parts (handle) | 512 | (defun mm-uu-dissect-text-parts (handle) |
| 513 | "Dissect text parts and put uu handles into HANDLE." | 513 | "Dissect text parts and put uu handles into HANDLE." |
| 514 | (let ((buffer (mm-handle-buffer handle)) | 514 | (let ((buffer (mm-handle-buffer handle))) |
| 515 | type children) | ||
| 516 | (cond ((stringp buffer) | 515 | (cond ((stringp buffer) |
| 517 | (dolist (elem (cdr handle)) | 516 | (dolist (elem (cdr handle)) |
| 518 | (mm-uu-dissect-text-parts elem))) | 517 | (mm-uu-dissect-text-parts elem))) |
| 519 | ((bufferp buffer) | 518 | ((bufferp buffer) |
| 520 | (when (and (setq type (mm-handle-media-type handle)) | 519 | (let ((type (mm-handle-media-type handle)) |
| 521 | (stringp type) | 520 | (case-fold-search t) ;; string-match |
| 522 | (string-match "\\`text/" type) | 521 | encoding children) |
| 523 | (with-current-buffer buffer | 522 | (when (and |
| 524 | (setq children | 523 | (stringp type) |
| 525 | (mm-uu-dissect t (mm-handle-type handle))))) | 524 | ;; Mutt still uses application/pgp even though |
| 526 | (kill-buffer buffer) | 525 | ;; it has already been withdrawn. |
| 527 | (setcar handle (car children)) | 526 | (string-match "\\`text/\\|\\`application/pgp\\'" type) |
| 528 | (setcdr handle (cdr children)))) | 527 | (setq children |
| 528 | (with-current-buffer buffer | ||
| 529 | (if (setq encoding (mm-handle-encoding handle)) | ||
| 530 | ;; Inherit the multibyteness of the `buffer'. | ||
| 531 | (with-temp-buffer | ||
| 532 | (insert-buffer-substring buffer) | ||
| 533 | (mm-decode-content-transfer-encoding | ||
| 534 | encoding type) | ||
| 535 | (mm-uu-dissect t (mm-handle-type handle))) | ||
| 536 | (mm-uu-dissect t (mm-handle-type handle)))))) | ||
| 537 | ;; Ignore it if a given part is dissected into a single | ||
| 538 | ;; part of which the type is the same as the given one. | ||
| 539 | (if (and (<= (length children) 2) | ||
| 540 | (string-equal (mm-handle-media-type (cadr children)) | ||
| 541 | type)) | ||
| 542 | (kill-buffer (mm-handle-buffer (cadr children))) | ||
| 543 | (kill-buffer buffer) | ||
| 544 | (setcdr handle (cdr children)) | ||
| 545 | (setcar handle (car children)) ;; "multipart/mixed" | ||
| 546 | (dolist (elem (cdr children)) | ||
| 547 | (mm-uu-dissect-text-parts elem)))))) | ||
| 529 | (t | 548 | (t |
| 530 | (dolist (elem handle) | 549 | (dolist (elem handle) |
| 531 | (mm-uu-dissect-text-parts elem)))))) | 550 | (mm-uu-dissect-text-parts elem)))))) |
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index 645e960b535..73cab0a5676 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el | |||
| @@ -262,29 +262,57 @@ | |||
| 262 | (delete-region ,(point-min-marker) | 262 | (delete-region ,(point-min-marker) |
| 263 | ,(point-max-marker))))))))) | 263 | ,(point-max-marker))))))))) |
| 264 | 264 | ||
| 265 | (defvar mm-w3m-standalone-supports-m17n-p (if (featurep 'mule) 'undecided) | ||
| 266 | "*T means the w3m command supports the m17n feature.") | ||
| 267 | |||
| 268 | (defun mm-w3m-standalone-supports-m17n-p () | ||
| 269 | "Say whether the w3m command supports the m17n feature." | ||
| 270 | (cond ((eq mm-w3m-standalone-supports-m17n-p t) t) | ||
| 271 | ((eq mm-w3m-standalone-supports-m17n-p nil) nil) | ||
| 272 | ((not (featurep 'mule)) (setq mm-w3m-standalone-supports-m17n-p nil)) | ||
| 273 | ((condition-case nil | ||
| 274 | (let ((coding-system-for-write 'iso-2022-jp) | ||
| 275 | (coding-system-for-read 'iso-2022-jp) | ||
| 276 | (str (mm-decode-coding-string "\ | ||
| 277 | \e$B#D#o#e#s!!#w#3#m!!#s#u#p#p#o#r#t#s!!#m#1#7#n!)\e(B" 'iso-2022-jp))) | ||
| 278 | (mm-with-multibyte-buffer | ||
| 279 | (insert str) | ||
| 280 | (call-process-region | ||
| 281 | (point-min) (point-max) "w3m" t t nil "-dump" | ||
| 282 | "-T" "text/html" "-I" "iso-2022-jp" "-O" "iso-2022-jp") | ||
| 283 | (goto-char (point-min)) | ||
| 284 | (search-forward str nil t))) | ||
| 285 | (error nil)) | ||
| 286 | (setq mm-w3m-standalone-supports-m17n-p t)) | ||
| 287 | (t | ||
| 288 | ;;(message "You had better upgrade your w3m command") | ||
| 289 | (setq mm-w3m-standalone-supports-m17n-p nil)))) | ||
| 290 | |||
| 265 | (defun mm-inline-text-html-render-with-w3m-standalone (handle) | 291 | (defun mm-inline-text-html-render-with-w3m-standalone (handle) |
| 266 | "Render a text/html part using w3m." | 292 | "Render a text/html part using w3m." |
| 267 | (let ((source (mm-get-part handle)) | 293 | (if (mm-w3m-standalone-supports-m17n-p) |
| 268 | (charset (mail-content-type-get (mm-handle-type handle) 'charset)) | 294 | (let ((source (mm-get-part handle)) |
| 269 | cs) | 295 | (charset (mail-content-type-get (mm-handle-type handle) 'charset)) |
| 270 | (unless (and charset | 296 | cs) |
| 271 | (setq cs (mm-charset-to-coding-system charset)) | 297 | (unless (and charset |
| 272 | (not (eq cs 'ascii))) | 298 | (setq cs (mm-charset-to-coding-system charset)) |
| 273 | ;; The default. | 299 | (not (eq cs 'ascii))) |
| 274 | (setq charset "iso-8859-1" | 300 | ;; The default. |
| 275 | cs 'iso-8859-1)) | 301 | (setq charset "iso-8859-1" |
| 276 | (mm-insert-inline | 302 | cs 'iso-8859-1)) |
| 277 | handle | 303 | (mm-insert-inline |
| 278 | (mm-with-unibyte-buffer | 304 | handle |
| 279 | (insert source) | 305 | (mm-with-unibyte-buffer |
| 280 | (mm-enable-multibyte) | 306 | (insert source) |
| 281 | (let ((coding-system-for-write 'binary) | 307 | (mm-enable-multibyte) |
| 282 | (coding-system-for-read cs)) | 308 | (let ((coding-system-for-write 'binary) |
| 283 | (call-process-region | 309 | (coding-system-for-read cs)) |
| 284 | (point-min) (point-max) | 310 | (call-process-region |
| 285 | "w3m" t t nil "-dump" "-T" "text/html" | 311 | (point-min) (point-max) |
| 286 | "-I" charset "-O" charset)) | 312 | "w3m" t t nil "-dump" "-T" "text/html" |
| 287 | (buffer-string))))) | 313 | "-I" charset "-O" charset)) |
| 314 | (buffer-string)))) | ||
| 315 | (mm-inline-render-with-stdin handle nil "w3m" "-dump" "-T" "text/html"))) | ||
| 288 | 316 | ||
| 289 | (defun mm-links-remove-leading-blank () | 317 | (defun mm-links-remove-leading-blank () |
| 290 | ;; Delete the annoying three spaces preceding each line of links | 318 | ;; Delete the annoying three spaces preceding each line of links |
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index f88276f4e69..7d7ea9e20a1 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | (autoload 'gnus-add-minor-mode "gnus-ems") | 38 | (autoload 'gnus-add-minor-mode "gnus-ems") |
| 39 | (autoload 'gnus-make-local-hook "gnus-util") | 39 | (autoload 'gnus-make-local-hook "gnus-util") |
| 40 | (autoload 'message-fetch-field "message") | 40 | (autoload 'message-fetch-field "message") |
| 41 | (autoload 'message-info "message") | ||
| 41 | (autoload 'fill-flowed-encode "flow-fill") | 42 | (autoload 'fill-flowed-encode "flow-fill") |
| 42 | (autoload 'message-posting-charset "message")) | 43 | (autoload 'message-posting-charset "message")) |
| 43 | 44 | ||
| @@ -916,7 +917,14 @@ If HANDLES is non-nil, use it instead reparsing the buffer." | |||
| 916 | ;;["Narrow" mml-narrow-to-part t] | 917 | ;;["Narrow" mml-narrow-to-part t] |
| 917 | ["Quote MML" mml-quote-region t] | 918 | ["Quote MML" mml-quote-region t] |
| 918 | ["Validate MML" mml-validate t] | 919 | ["Validate MML" mml-validate t] |
| 919 | ["Preview" mml-preview t])) | 920 | ["Preview" mml-preview t] |
| 921 | "----" | ||
| 922 | ["Emacs MIME manual" (lambda () (interactive) (message-info 4)) | ||
| 923 | ,@(if (featurep 'xemacs) '(t) | ||
| 924 | '(:help "Display the Emacs MIME manual"))] | ||
| 925 | ["PGG manual" (lambda () (interactive) (message-info 16)) | ||
| 926 | ,@(if (featurep 'xemacs) '(t) | ||
| 927 | '(:help "Display the PGG manual"))])) | ||
| 920 | 928 | ||
| 921 | (defvar mml-mode nil | 929 | (defvar mml-mode nil |
| 922 | "Minor mode for editing MML.") | 930 | "Minor mode for editing MML.") |
| @@ -1035,9 +1043,12 @@ See Info node `(emacs-mime)Composing'. | |||
| 1035 | The file is not inserted or encoded until you send the message with | 1043 | The file is not inserted or encoded until you send the message with |
| 1036 | `\\[message-send-and-exit]' or `\\[message-send]'. | 1044 | `\\[message-send-and-exit]' or `\\[message-send]'. |
| 1037 | 1045 | ||
| 1038 | FILE is the name of the file to attach. TYPE is its content-type, a | 1046 | FILE is the name of the file to attach. TYPE is its |
| 1039 | string of the form \"type/subtype\". DESCRIPTION is a one-line | 1047 | content-type, a string of the form \"type/subtype\". DESCRIPTION |
| 1040 | description of the attachment." | 1048 | is a one-line description of the attachment. The DISPOSITION |
| 1049 | specifies how the attachment is intended to be displayed. It can | ||
| 1050 | be either \"inline\" (displayed automatically within the message | ||
| 1051 | body) or \"attachment\" (separate from the body)." | ||
| 1041 | (interactive | 1052 | (interactive |
| 1042 | (let* ((file (mml-minibuffer-read-file "Attach file: ")) | 1053 | (let* ((file (mml-minibuffer-read-file "Attach file: ")) |
| 1043 | (type (mml-minibuffer-read-type file)) | 1054 | (type (mml-minibuffer-read-type file)) |
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 8b722c95586..32de2f60e22 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el | |||
| @@ -467,14 +467,28 @@ spamoracle database." | |||
| 467 | "Logical exclusive `or'." | 467 | "Logical exclusive `or'." |
| 468 | (and (or a b) (not (and a b)))) | 468 | (and (or a b) (not (and a b)))) |
| 469 | 469 | ||
| 470 | (defun spam-group-ham-mark-p (group mark &optional spam) | ||
| 471 | (when (stringp group) | ||
| 472 | (let* ((marks (spam-group-ham-marks group spam)) | ||
| 473 | (marks (if (symbolp mark) | ||
| 474 | marks | ||
| 475 | (mapcar 'symbol-value marks)))) | ||
| 476 | (memq mark marks)))) | ||
| 477 | |||
| 478 | (defun spam-group-spam-mark-p (group mark) | ||
| 479 | (spam-group-ham-mark-p group mark t)) | ||
| 480 | |||
| 470 | (defun spam-group-ham-marks (group &optional spam) | 481 | (defun spam-group-ham-marks (group &optional spam) |
| 471 | (when (stringp group) | 482 | (when (stringp group) |
| 472 | (let ((marks (car (if spam | 483 | (let* ((marks (if spam |
| 473 | (gnus-parameter-spam-marks group) | 484 | (gnus-parameter-spam-marks group) |
| 474 | (gnus-parameter-ham-marks group))))) | 485 | (gnus-parameter-ham-marks group))) |
| 475 | (if (listp (car marks)) | 486 | (marks (car marks)) |
| 476 | (car marks) | 487 | (marks (if (listp (car marks)) (car marks) marks))) |
| 477 | marks)))) | 488 | marks))) |
| 489 | |||
| 490 | (defun spam-group-spam-marks (group) | ||
| 491 | (spam-group-ham-marks group t)) | ||
| 478 | 492 | ||
| 479 | (defun spam-group-spam-contents-p (group) | 493 | (defun spam-group-spam-contents-p (group) |
| 480 | (if (stringp group) | 494 | (if (stringp group) |
| @@ -1036,12 +1050,23 @@ functions") | |||
| 1036 | (nth 2 flist)))) | 1050 | (nth 2 flist)))) |
| 1037 | 1051 | ||
| 1038 | (defun spam-list-articles (articles classification) | 1052 | (defun spam-list-articles (articles classification) |
| 1039 | (let ((marks (mapcar 'eval (spam-group-ham-marks gnus-newsgroup-name | 1053 | (let ((mark-check (if (eq classification 'spam) |
| 1040 | (eq classification 'spam)))) | 1054 | 'spam-group-spam-mark-p |
| 1041 | list) | 1055 | 'spam-group-ham-mark-p)) |
| 1056 | list mark-cache-yes mark-cache-no) | ||
| 1042 | (dolist (article articles) | 1057 | (dolist (article articles) |
| 1043 | (if (memq (gnus-summary-article-mark article) marks) | 1058 | (let ((mark (gnus-summary-article-mark article))) |
| 1044 | (push article list))) | 1059 | (unless (memq mark mark-cache-no) |
| 1060 | (if (memq mark mark-cache-yes) | ||
| 1061 | (push article list) | ||
| 1062 | ;; else, we have to actually check the mark | ||
| 1063 | (if (funcall mark-check | ||
| 1064 | gnus-newsgroup-name | ||
| 1065 | mark) | ||
| 1066 | (progn | ||
| 1067 | (push article list) | ||
| 1068 | (push mark mark-cache-yes)) | ||
| 1069 | (push mark mark-cache-no)))))) | ||
| 1045 | list)) | 1070 | list)) |
| 1046 | 1071 | ||
| 1047 | (defun spam-register-routine (classification | 1072 | (defun spam-register-routine (classification |
diff --git a/lisp/hl-line.el b/lisp/hl-line.el index 3dd56f2f239..c2d2d293010 100644 --- a/lisp/hl-line.el +++ b/lisp/hl-line.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; hl-line.el --- highlight the current line | 1 | ;;; hl-line.el --- highlight the current line |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Dave Love <fx@gnu.org> | 6 | ;; Author: Dave Love <fx@gnu.org> |
| 7 | ;; Maintainer: FSF | 7 | ;; Maintainer: FSF |
| @@ -58,7 +58,7 @@ | |||
| 58 | ;; it to nil to avoid highlighting specific buffers, when the global | 58 | ;; it to nil to avoid highlighting specific buffers, when the global |
| 59 | ;; mode is used. | 59 | ;; mode is used. |
| 60 | 60 | ||
| 61 | ;; In default whole the line is highlighted. The range of highlighting | 61 | ;; By default the whole line is highlighted. The range of highlighting |
| 62 | ;; can be changed by defining an appropriate function as the | 62 | ;; can be changed by defining an appropriate function as the |
| 63 | ;; buffer-local value of `hl-line-range-function'. | 63 | ;; buffer-local value of `hl-line-range-function'. |
| 64 | 64 | ||
| @@ -130,7 +130,7 @@ addition to `hl-line-highlight' on `post-command-hook'." | |||
| 130 | (remove-hook 'pre-command-hook #'hl-line-unhighlight t))) | 130 | (remove-hook 'pre-command-hook #'hl-line-unhighlight t))) |
| 131 | 131 | ||
| 132 | (defun hl-line-highlight () | 132 | (defun hl-line-highlight () |
| 133 | "Active the Hl-Line overlay on the current line." | 133 | "Activate the Hl-Line overlay on the current line." |
| 134 | (if hl-line-mode ; Might be changed outside the mode function. | 134 | (if hl-line-mode ; Might be changed outside the mode function. |
| 135 | (progn | 135 | (progn |
| 136 | (unless hl-line-overlay | 136 | (unless hl-line-overlay |
| @@ -179,9 +179,9 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and | |||
| 179 | (delete-overlay global-hl-line-overlay))) | 179 | (delete-overlay global-hl-line-overlay))) |
| 180 | 180 | ||
| 181 | (defun hl-line-move (overlay) | 181 | (defun hl-line-move (overlay) |
| 182 | "Move the hl-line-mode overlay. | 182 | "Move the Hl-Line overlay. |
| 183 | If `hl-line-range-function' is non-nil, move the OVERLAY to the position | 183 | If `hl-line-range-function' is non-nil, move the OVERLAY to the position |
| 184 | where the function returns. If `hl-line-range-function' is nil, fill | 184 | where the function returns. If `hl-line-range-function' is nil, fill |
| 185 | the line including the point by OVERLAY." | 185 | the line including the point by OVERLAY." |
| 186 | (let (tmp b e) | 186 | (let (tmp b e) |
| 187 | (if hl-line-range-function | 187 | (if hl-line-range-function |
diff --git a/lisp/info.el b/lisp/info.el index 61d59741078..912e31f62ad 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -129,21 +129,14 @@ The Lisp code is executed when the node is selected.") | |||
| 129 | (put 'info-menu-5 'face-alias 'info-menu-star) | 129 | (put 'info-menu-5 'face-alias 'info-menu-star) |
| 130 | 130 | ||
| 131 | (defface info-xref | 131 | (defface info-xref |
| 132 | '((((min-colors 88) | 132 | '((t :inherit link)) |
| 133 | (class color) (background light)) :foreground "blue1" :underline t) | 133 | "Face for unvisited Info cross-references." |
| 134 | (((class color) (background light)) :foreground "blue" :underline t) | ||
| 135 | (((min-colors 88) | ||
| 136 | (class color) (background dark)) :foreground "cyan1" :underline t) | ||
| 137 | (((class color) (background dark)) :foreground "cyan" :underline t) | ||
| 138 | (t :underline t)) | ||
| 139 | "Face for Info cross-references." | ||
| 140 | :group 'info) | 134 | :group 'info) |
| 141 | 135 | ||
| 142 | (defface info-xref-visited | 136 | (defface info-xref-visited |
| 143 | '((default :inherit info-xref) | 137 | '((t :inherit link-visited)) |
| 144 | (((class color) (background light)) :foreground "magenta4") | ||
| 145 | (((class color) (background dark)) :foreground "violet")) | ||
| 146 | "Face for visited Info cross-references." | 138 | "Face for visited Info cross-references." |
| 139 | :version "22.1" | ||
| 147 | :group 'info) | 140 | :group 'info) |
| 148 | 141 | ||
| 149 | (defcustom Info-fontify-visited-nodes t | 142 | (defcustom Info-fontify-visited-nodes t |
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index 51d70faf76c..17a9df20843 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; latexenc.el --- guess correct coding system in LaTeX files | 1 | ;;; latexenc.el --- guess correct coding system in LaTeX files |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005, 2006 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Arne J,Ax(Brgensen <arne@arnested.dk> | 5 | ;; Author: Arne J,Ax(Brgensen <arne@arnested.dk> |
| 6 | ;; Keywords: mule, coding system, latex | 6 | ;; Keywords: mule, coding system, latex |
| @@ -167,6 +167,7 @@ coding system names is determined from `latex-inputenc-coding-alist'." | |||
| 167 | (setq latexenc-main-file (tex-guess-main-file))))) | 167 | (setq latexenc-main-file (tex-guess-main-file))))) |
| 168 | ;; if we found a master/main file get the coding system from it | 168 | ;; if we found a master/main file get the coding system from it |
| 169 | (if (and latexenc-main-file | 169 | (if (and latexenc-main-file |
| 170 | (file-regular-p latexenc-main-file) | ||
| 170 | (file-readable-p latexenc-main-file)) | 171 | (file-readable-p latexenc-main-file)) |
| 171 | (let* ((latexenc-dont-use-tex-guess-main-file-flag t) | 172 | (let* ((latexenc-dont-use-tex-guess-main-file-flag t) |
| 172 | (latexenc-dont-use-TeX-master-flag t) | 173 | (latexenc-dont-use-TeX-master-flag t) |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 332b57381c3..ce104f74b11 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -517,8 +517,8 @@ Type \\[isearch-exit] to exit, leaving point at location found. | |||
| 517 | Type LFD (C-j) to match end of line. | 517 | Type LFD (C-j) to match end of line. |
| 518 | Type \\[isearch-repeat-forward] to search again forward,\ | 518 | Type \\[isearch-repeat-forward] to search again forward,\ |
| 519 | \\[isearch-repeat-backward] to search again backward. | 519 | \\[isearch-repeat-backward] to search again backward. |
| 520 | Type \\[isearch-yank-word-or-char] to yank word from buffer onto end of search\ | 520 | Type \\[isearch-yank-word-or-char] to yank next word or character in buffer |
| 521 | string and search for it. | 521 | onto the end of the search string, and search for it. |
| 522 | Type \\[isearch-del-char] to delete character from end of search string. | 522 | Type \\[isearch-del-char] to delete character from end of search string. |
| 523 | Type \\[isearch-yank-char] to yank char from buffer onto end of search\ | 523 | Type \\[isearch-yank-char] to yank char from buffer onto end of search\ |
| 524 | string and search for it. | 524 | string and search for it. |
diff --git a/lisp/log-view.el b/lisp/log-view.el index 91320f08dd9..e7a58dad8b7 100644 --- a/lisp/log-view.el +++ b/lisp/log-view.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output | 1 | ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> | 6 | ;; Author: Stefan Monnier <monnier@cs.yale.edu> |
| 7 | ;; Keywords: rcs sccs cvs log version-control | 7 | ;; Keywords: rcs sccs cvs log version-control |
| @@ -225,8 +225,8 @@ | |||
| 225 | 225 | ||
| 226 | (defun log-view-minor-wrap (buf f) | 226 | (defun log-view-minor-wrap (buf f) |
| 227 | (let ((data (with-current-buffer buf | 227 | (let ((data (with-current-buffer buf |
| 228 | (let* ((beg (if mark-active (region-beginning) (point))) | 228 | (let* ((beg (point)) |
| 229 | (end (if mark-active (region-end) (point))) | 229 | (end (if mark-active (mark) (point))) |
| 230 | (fr (log-view-current-tag beg)) | 230 | (fr (log-view-current-tag beg)) |
| 231 | (to (log-view-current-tag end))) | 231 | (to (log-view-current-tag end))) |
| 232 | (when (string-equal fr to) | 232 | (when (string-equal fr to) |
| @@ -235,8 +235,11 @@ | |||
| 235 | (log-view-msg-next) | 235 | (log-view-msg-next) |
| 236 | (setq to (log-view-current-tag)))) | 236 | (setq to (log-view-current-tag)))) |
| 237 | (cons | 237 | (cons |
| 238 | (cons (log-view-current-file) to) | 238 | ;; The first revision has to be the one at point, for |
| 239 | (cons (log-view-current-file) fr)))))) | 239 | ;; operations that only take one revision |
| 240 | ;; (e.g. cvs-mode-edit). | ||
| 241 | (cons (log-view-current-file) fr) | ||
| 242 | (cons (log-view-current-file) to)))))) | ||
| 240 | (let ((cvs-branch-prefix (cdar data)) | 243 | (let ((cvs-branch-prefix (cdar data)) |
| 241 | (cvs-secondary-branch-prefix (and (cdar data) (cddr data))) | 244 | (cvs-secondary-branch-prefix (and (cdar data) (cddr data))) |
| 242 | (cvs-minor-current-files | 245 | (cvs-minor-current-files |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index da801492210..7319589d9f0 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -543,7 +543,11 @@ This is set to nil by default.") | |||
| 543 | "*If non-nil, RMAIL uses MIME feature. | 543 | "*If non-nil, RMAIL uses MIME feature. |
| 544 | If the value is t, RMAIL automatically shows MIME decoded message. | 544 | If the value is t, RMAIL automatically shows MIME decoded message. |
| 545 | If the value is neither t nor nil, RMAIL does not show MIME decoded message | 545 | If the value is neither t nor nil, RMAIL does not show MIME decoded message |
| 546 | until a user explicitly requires it." | 546 | until a user explicitly requires it. |
| 547 | |||
| 548 | Even if the value is non-nil, you can't use MIME feature | ||
| 549 | if the feature specified by `rmail-mime-feature' is not available | ||
| 550 | in your session." | ||
| 547 | :type '(choice (const :tag "on" t) | 551 | :type '(choice (const :tag "on" t) |
| 548 | (const :tag "off" nil) | 552 | (const :tag "off" nil) |
| 549 | (other :tag "when asked" ask)) | 553 | (other :tag "when asked" ask)) |
| @@ -595,7 +599,10 @@ LIMIT is the position specifying the end of header.") | |||
| 595 | (defvar rmail-mime-feature 'rmail-mime | 599 | (defvar rmail-mime-feature 'rmail-mime |
| 596 | "Feature to require to load MIME support in Rmail. | 600 | "Feature to require to load MIME support in Rmail. |
| 597 | When starting Rmail, if `rmail-enable-mime' is non-nil, | 601 | When starting Rmail, if `rmail-enable-mime' is non-nil, |
| 598 | this feature is required with `require'.") | 602 | this feature is required with `require'. |
| 603 | |||
| 604 | The default value is `rmail-mime'. This feature is provided by | ||
| 605 | the rmail-mime package available at <http://www.m17n.org/rmail-mime/>.") | ||
| 599 | 606 | ||
| 600 | ;;;###autoload | 607 | ;;;###autoload |
| 601 | (defvar rmail-decode-mime-charset t | 608 | (defvar rmail-decode-mime-charset t |
| @@ -735,8 +742,14 @@ isn't provided." | |||
| 735 | (condition-case err | 742 | (condition-case err |
| 736 | (require rmail-mime-feature) | 743 | (require rmail-mime-feature) |
| 737 | (error | 744 | (error |
| 738 | (message "Feature `%s' not provided" rmail-mime-feature) | 745 | (display-warning |
| 739 | (sit-for 1) | 746 | :warning |
| 747 | (format "Although MIME support is requested | ||
| 748 | by setting `rmail-enable-mime' to non-nil, the required feature | ||
| 749 | `%s' (the value of `rmail-mime-feature') | ||
| 750 | is not available in the current session. | ||
| 751 | So, the MIME support is turned off for the moment." | ||
| 752 | rmail-mime-feature)) | ||
| 740 | (setq rmail-enable-mime nil))))) | 753 | (setq rmail-enable-mime nil))))) |
| 741 | 754 | ||
| 742 | 755 | ||
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el index 97654ae92c5..bd37a41aef8 100644 --- a/lisp/mail/rmailout.el +++ b/lisp/mail/rmailout.el | |||
| @@ -349,9 +349,11 @@ The optional fourth argument FROM-GNUS is set when called from GNUS." | |||
| 349 | (mail-fetch-field "sender") | 349 | (mail-fetch-field "sender") |
| 350 | "unknown")) | 350 | "unknown")) |
| 351 | " " (current-time-string) "\n")) | 351 | " " (current-time-string) "\n")) |
| 352 | (if mime-version | 352 | (when mime-version |
| 353 | (insert "MIME-Version: " mime-version | 353 | (insert "MIME-Version: " mime-version) |
| 354 | "\nContent-type: " content-type "\n")) | 354 | ;; Some malformed MIME messages set content-type to nil. |
| 355 | (when content-type | ||
| 356 | (insert "\nContent-type: " content-type "\n"))) | ||
| 355 | ;; ``Quote'' "\nFrom " as "\n>From " | 357 | ;; ``Quote'' "\nFrom " as "\n>From " |
| 356 | ;; (note that this isn't really quoting, as there is no requirement | 358 | ;; (note that this isn't really quoting, as there is no requirement |
| 357 | ;; that "\n[>]+From " be quoted in the same transparent way.) | 359 | ;; that "\n[>]+From " be quoted in the same transparent way.) |
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index 53cc392ad7a..dc3742c231a 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- | 1 | ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Michael Albinus <michael.albinus@gmx.de> | 5 | ;; Author: Michael Albinus <michael.albinus@gmx.de> |
| 6 | ;; Keywords: comm, processes | 6 | ;; Keywords: comm, processes |
| @@ -63,8 +63,40 @@ present for backward compatibility." | |||
| 63 | (a2 (rassq 'ange-ftp-completion-hook-function file-name-handler-alist))) | 63 | (a2 (rassq 'ange-ftp-completion-hook-function file-name-handler-alist))) |
| 64 | (setq file-name-handler-alist | 64 | (setq file-name-handler-alist |
| 65 | (delete a1 (delete a2 file-name-handler-alist))))) | 65 | (delete a1 (delete a2 file-name-handler-alist))))) |
| 66 | (tramp-disable-ange-ftp) | 66 | |
| 67 | (eval-after-load "ange-ftp" '(tramp-disable-ange-ftp)) | 67 | (eval-after-load "ange-ftp" |
| 68 | '(when (functionp 'tramp-disable-ange-ftp) | ||
| 69 | (tramp-disable-ange-ftp))) | ||
| 70 | |||
| 71 | ;;;###autoload | ||
| 72 | (defun tramp-ftp-enable-ange-ftp () | ||
| 73 | ;; The following code is commented out in Ange-FTP. | ||
| 74 | |||
| 75 | ;;; This regexp takes care of real ange-ftp file names (with a slash | ||
| 76 | ;;; and colon). | ||
| 77 | ;;; Don't allow the host name to end in a period--some systems use /.: | ||
| 78 | (or (assoc "^/[^/:]*[^/:.]:" file-name-handler-alist) | ||
| 79 | (setq file-name-handler-alist | ||
| 80 | (cons '("^/[^/:]*[^/:.]:" . ange-ftp-hook-function) | ||
| 81 | file-name-handler-alist))) | ||
| 82 | |||
| 83 | ;;; This regexp recognizes absolute filenames with only one component, | ||
| 84 | ;;; for the sake of hostname completion. | ||
| 85 | (or (assoc "^/[^/:]*\\'" file-name-handler-alist) | ||
| 86 | (setq file-name-handler-alist | ||
| 87 | (cons '("^/[^/:]*\\'" . ange-ftp-completion-hook-function) | ||
| 88 | file-name-handler-alist))) | ||
| 89 | |||
| 90 | ;;; This regexp recognizes absolute filenames with only one component | ||
| 91 | ;;; on Windows, for the sake of hostname completion. | ||
| 92 | (and (memq system-type '(ms-dos windows-nt)) | ||
| 93 | (or (assoc "^[a-zA-Z]:/[^/:]*\\'" file-name-handler-alist) | ||
| 94 | (setq file-name-handler-alist | ||
| 95 | (cons '("^[a-zA-Z]:/[^/:]*\\'" . | ||
| 96 | ange-ftp-completion-hook-function) | ||
| 97 | file-name-handler-alist))))) | ||
| 98 | |||
| 99 | (add-hook 'tramp-ftp-unload-hook 'tramp-ftp-enable-ange-ftp) | ||
| 68 | 100 | ||
| 69 | ;; Define FTP method ... | 101 | ;; Define FTP method ... |
| 70 | (defcustom tramp-ftp-method "ftp" | 102 | (defcustom tramp-ftp-method "ftp" |
diff --git a/lisp/net/tramp-util.el b/lisp/net/tramp-util.el index acb10727d46..666471d6429 100644 --- a/lisp/net/tramp-util.el +++ b/lisp/net/tramp-util.el | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | ;;; -*- coding: iso-2022-7bit; -*- | 1 | ;;; -*- coding: iso-2022-7bit; -*- |
| 2 | ;;; tramp-util.el --- Misc utility functions to use with Tramp | 2 | ;;; tramp-util.el --- Misc utility functions to use with Tramp |
| 3 | 3 | ||
| 4 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 4 | ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, |
| 5 | ;; 2006 Free Software Foundation, Inc. | ||
| 5 | 6 | ||
| 6 | ;; Author: kai.grossjohann@gmx.net | 7 | ;; Author: kai.grossjohann@gmx.net |
| 7 | ;; Keywords: comm, extensions, processes | 8 | ;; Keywords: comm, extensions, processes |
| @@ -31,6 +32,10 @@ | |||
| 31 | (eval-when-compile (require 'cl)) | 32 | (eval-when-compile (require 'cl)) |
| 32 | (require 'compile) | 33 | (require 'compile) |
| 33 | (require 'tramp) | 34 | (require 'tramp) |
| 35 | (add-hook 'tramp-util-unload-hook | ||
| 36 | '(lambda () | ||
| 37 | (when (featurep 'tramp) | ||
| 38 | (unload-feature 'tramp 'force)))) | ||
| 34 | 39 | ||
| 35 | ;; Define a Tramp minor mode. It's intention is to redefine some keys for Tramp | 40 | ;; Define a Tramp minor mode. It's intention is to redefine some keys for Tramp |
| 36 | ;; specific functions, like compilation. | 41 | ;; specific functions, like compilation. |
| @@ -42,7 +47,7 @@ | |||
| 42 | (defalias 'define-minor-mode 'identity) | 47 | (defalias 'define-minor-mode 'identity) |
| 43 | (defvar tramp-minor-mode)) | 48 | (defvar tramp-minor-mode)) |
| 44 | (unless (featurep 'xemacs) | 49 | (unless (featurep 'xemacs) |
| 45 | (defalias 'add-menu-button 'identity))) | 50 | (defalias 'add-menu-button 'ignore))) |
| 46 | 51 | ||
| 47 | (defvar tramp-minor-mode-map (make-sparse-keymap) | 52 | (defvar tramp-minor-mode-map (make-sparse-keymap) |
| 48 | "Keymap for Tramp minor mode.") | 53 | "Keymap for Tramp minor mode.") |
| @@ -57,7 +62,14 @@ | |||
| 57 | (and tramp-minor-mode (tramp-tramp-file-p default-directory)))) | 62 | (and tramp-minor-mode (tramp-tramp-file-p default-directory)))) |
| 58 | 63 | ||
| 59 | (add-hook 'find-file-hooks 'tramp-minor-mode t) | 64 | (add-hook 'find-file-hooks 'tramp-minor-mode t) |
| 65 | (add-hook 'tramp-util-unload-hook | ||
| 66 | '(lambda () | ||
| 67 | (remove-hook 'find-file-hooks 'tramp-minor-mode))) | ||
| 68 | |||
| 60 | (add-hook 'dired-mode-hook 'tramp-minor-mode t) | 69 | (add-hook 'dired-mode-hook 'tramp-minor-mode t) |
| 70 | (add-hook 'tramp-util-unload-hook | ||
| 71 | '(lambda () | ||
| 72 | (remove-hook 'dired-mode-hook 'tramp-minor-mode))) | ||
| 61 | 73 | ||
| 62 | (defun tramp-remap-command (old-command new-command) | 74 | (defun tramp-remap-command (old-command new-command) |
| 63 | "Replaces bindings of OLD-COMMAND by NEW-COMMAND. | 75 | "Replaces bindings of OLD-COMMAND by NEW-COMMAND. |
diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el index c1806a4be24..368d85c8e57 100644 --- a/lisp/net/tramp-vc.el +++ b/lisp/net/tramp-vc.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; tramp-vc.el --- Version control integration for TRAMP.el | 1 | ;;; tramp-vc.el --- Version control integration for TRAMP.el |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Daniel Pittman <daniel@danann.net> | 6 | ;; Author: Daniel Pittman <daniel@danann.net> |
| 7 | ;; Keywords: comm, processes | 7 | ;; Keywords: comm, processes |
| @@ -220,34 +220,37 @@ Since TRAMP doesn't do async commands yet, this function doesn't, either." | |||
| 220 | ;; Daniel Pittman <daniel@danann.net> | 220 | ;; Daniel Pittman <daniel@danann.net> |
| 221 | ;;-(if (fboundp 'vc-call-backend) | 221 | ;;-(if (fboundp 'vc-call-backend) |
| 222 | ;;- () ;; This is the new VC for which we don't have an appropriate advice yet | 222 | ;;- () ;; This is the new VC for which we don't have an appropriate advice yet |
| 223 | ;;-) | ||
| 223 | (unless (fboundp 'process-file) | 224 | (unless (fboundp 'process-file) |
| 224 | (if (fboundp 'vc-call-backend) | 225 | (if (fboundp 'vc-call-backend) |
| 226 | (defadvice vc-do-command | ||
| 227 | (around tramp-advice-vc-do-command | ||
| 228 | (buffer okstatus command file &rest flags) | ||
| 229 | activate) | ||
| 230 | "Invoke tramp-vc-do-command for tramp files." | ||
| 231 | (let ((file (symbol-value 'file))) ;pacify byte-compiler | ||
| 232 | (if (or (and (stringp file) (tramp-tramp-file-p file)) | ||
| 233 | (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))) | ||
| 234 | (setq ad-return-value | ||
| 235 | (apply 'tramp-vc-do-command-new buffer okstatus command | ||
| 236 | file ;(or file (buffer-file-name)) | ||
| 237 | flags)) | ||
| 238 | ad-do-it))) | ||
| 225 | (defadvice vc-do-command | 239 | (defadvice vc-do-command |
| 226 | (around tramp-advice-vc-do-command | 240 | (around tramp-advice-vc-do-command |
| 227 | (buffer okstatus command file &rest flags) | 241 | (buffer okstatus command file last &rest flags) |
| 228 | activate) | 242 | activate) |
| 229 | "Invoke tramp-vc-do-command for tramp files." | 243 | "Invoke tramp-vc-do-command for tramp files." |
| 230 | (let ((file (symbol-value 'file))) ;pacify byte-compiler | 244 | (let ((file (symbol-value 'file))) ;pacify byte-compiler |
| 231 | (if (or (and (stringp file) (tramp-tramp-file-p file)) | 245 | (if (or (and (stringp file) (tramp-tramp-file-p file)) |
| 232 | (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))) | 246 | (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))) |
| 233 | (setq ad-return-value | 247 | (setq ad-return-value |
| 234 | (apply 'tramp-vc-do-command-new buffer okstatus command | 248 | (apply 'tramp-vc-do-command buffer okstatus command |
| 235 | file ;(or file (buffer-file-name)) | 249 | (or file (buffer-file-name)) last flags)) |
| 236 | flags)) | 250 | ad-do-it)))) |
| 237 | ad-do-it))) | 251 | |
| 238 | (defadvice vc-do-command | 252 | (add-hook 'tramp-unload-hook |
| 239 | (around tramp-advice-vc-do-command | 253 | '(lambda () (ad-unadvise 'vc-do-command)))) |
| 240 | (buffer okstatus command file last &rest flags) | ||
| 241 | activate) | ||
| 242 | "Invoke tramp-vc-do-command for tramp files." | ||
| 243 | (let ((file (symbol-value 'file))) ;pacify byte-compiler | ||
| 244 | (if (or (and (stringp file) (tramp-tramp-file-p file)) | ||
| 245 | (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))) | ||
| 246 | (setq ad-return-value | ||
| 247 | (apply 'tramp-vc-do-command buffer okstatus command | ||
| 248 | (or file (buffer-file-name)) last flags)) | ||
| 249 | ad-do-it))))) | ||
| 250 | ;;-) | ||
| 251 | 254 | ||
| 252 | 255 | ||
| 253 | ;; XEmacs uses this to do some of its work. Like vc-do-command, we | 256 | ;; XEmacs uses this to do some of its work. Like vc-do-command, we |
| @@ -324,6 +327,9 @@ Since TRAMP doesn't do async commands yet, this function doesn't, either." | |||
| 324 | (or file (buffer-file-name)) args)) | 327 | (or file (buffer-file-name)) args)) |
| 325 | ad-do-it))) | 328 | ad-do-it))) |
| 326 | 329 | ||
| 330 | (add-hook 'tramp-unload-hook | ||
| 331 | '(lambda () (ad-unadvise 'vc-simple-command))) | ||
| 332 | |||
| 327 | 333 | ||
| 328 | ;; `vc-workfile-unchanged-p' | 334 | ;; `vc-workfile-unchanged-p' |
| 329 | ;; This function does not deal well with remote files, so we do the | 335 | ;; This function does not deal well with remote files, so we do the |
| @@ -364,6 +370,9 @@ Since TRAMP doesn't do async commands yet, this function doesn't, either." | |||
| 364 | (tramp-vc-workfile-unchanged-p filename want-differences-if-changed)) | 370 | (tramp-vc-workfile-unchanged-p filename want-differences-if-changed)) |
| 365 | ad-do-it)) | 371 | ad-do-it)) |
| 366 | 372 | ||
| 373 | (add-hook 'tramp-unload-hook | ||
| 374 | '(lambda () (ad-unadvise 'vc-workfile-unchanged-p))) | ||
| 375 | |||
| 367 | 376 | ||
| 368 | ;; Redefine a function from vc.el -- allow tramp files. | 377 | ;; Redefine a function from vc.el -- allow tramp files. |
| 369 | ;; `save-match-data' seems not to be required -- it isn't in | 378 | ;; `save-match-data' seems not to be required -- it isn't in |
| @@ -445,6 +454,9 @@ filename we are thinking about..." | |||
| 445 | (tramp-handle-vc-user-login-name uid)))) ; get the owner name | 454 | (tramp-handle-vc-user-login-name uid)))) ; get the owner name |
| 446 | ad-do-it))) ; else call the original | 455 | ad-do-it))) ; else call the original |
| 447 | 456 | ||
| 457 | (add-hook 'tramp-unload-hook | ||
| 458 | '(lambda () (ad-unadvise 'vc-user-login-name))) | ||
| 459 | |||
| 448 | 460 | ||
| 449 | ;; Determine the name of the user owning a file. | 461 | ;; Determine the name of the user owning a file. |
| 450 | (defun tramp-file-owner (filename) | 462 | (defun tramp-file-owner (filename) |
| @@ -486,6 +498,9 @@ filename we are thinking about..." | |||
| 486 | (tramp-file-owner filename)))) ; get the owner name | 498 | (tramp-file-owner filename)))) ; get the owner name |
| 487 | ad-do-it))) ; else call the original | 499 | ad-do-it))) ; else call the original |
| 488 | 500 | ||
| 501 | (add-hook 'tramp-unload-hook | ||
| 502 | '(lambda () (ad-unadvise 'vc-file-owner))) | ||
| 503 | |||
| 489 | 504 | ||
| 490 | ;; We need to make the version control software backend version | 505 | ;; We need to make the version control software backend version |
| 491 | ;; information local to the current buffer. This is because each TRAMP | 506 | ;; information local to the current buffer. This is because each TRAMP |
| @@ -506,7 +521,11 @@ This makes remote VC work correctly at the cost of some processing time." | |||
| 506 | (tramp-tramp-file-p (buffer-file-name))) | 521 | (tramp-tramp-file-p (buffer-file-name))) |
| 507 | (make-local-variable 'vc-rcs-release) | 522 | (make-local-variable 'vc-rcs-release) |
| 508 | (setq vc-rcs-release nil))) | 523 | (setq vc-rcs-release nil))) |
| 524 | |||
| 509 | (add-hook 'find-file-hooks 'tramp-vc-setup-for-remote t) | 525 | (add-hook 'find-file-hooks 'tramp-vc-setup-for-remote t) |
| 526 | (add-hook 'tramp-unload-hook | ||
| 527 | '(lambda () | ||
| 528 | (remove-hook 'find-file-hooks 'tramp-vc-setup-for-remote))) | ||
| 510 | 529 | ||
| 511 | ;; No need to load this again if anyone asks. | 530 | ;; No need to load this again if anyone asks. |
| 512 | (provide 'tramp-vc) | 531 | (provide 'tramp-vc) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 8555c9a83c5..10a5dd9eedf 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | ;;; tramp.el --- Transparent Remote Access, Multiple Protocol | 2 | ;;; tramp.el --- Transparent Remote Access, Multiple Protocol |
| 3 | 3 | ||
| 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 4 | ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
| 5 | ;; 2005 Free Software Foundation, Inc. | 5 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 7 | ;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 8 | ;; Michael Albinus <michael.albinus@gmx.de> | 8 | ;; Michael Albinus <michael.albinus@gmx.de> |
| @@ -67,8 +67,15 @@ | |||
| 67 | 67 | ||
| 68 | ;; The Tramp version number and bug report address, as prepared by configure. | 68 | ;; The Tramp version number and bug report address, as prepared by configure. |
| 69 | (require 'trampver) | 69 | (require 'trampver) |
| 70 | (add-hook 'tramp-unload-hook | ||
| 71 | '(lambda () | ||
| 72 | (when (featurep 'trampver) | ||
| 73 | (unload-feature 'trampver 'force)))) | ||
| 74 | |||
| 75 | (if (featurep 'xemacs) | ||
| 76 | (require 'timer-funcs) | ||
| 77 | (require 'timer)) | ||
| 70 | 78 | ||
| 71 | (require 'timer) | ||
| 72 | (require 'format-spec) ;from Gnus 5.8, also in tar ball | 79 | (require 'format-spec) ;from Gnus 5.8, also in tar ball |
| 73 | ;; As long as password.el is not part of (X)Emacs, it shouldn't | 80 | ;; As long as password.el is not part of (X)Emacs, it shouldn't |
| 74 | ;; be mandatory | 81 | ;; be mandatory |
| @@ -87,6 +94,10 @@ | |||
| 87 | 94 | ||
| 88 | (autoload 'tramp-uuencode-region "tramp-uu" | 95 | (autoload 'tramp-uuencode-region "tramp-uu" |
| 89 | "Implementation of `uuencode' in Lisp.") | 96 | "Implementation of `uuencode' in Lisp.") |
| 97 | (add-hook 'tramp-unload-hook | ||
| 98 | '(lambda () | ||
| 99 | (when (featurep 'tramp-uu) | ||
| 100 | (unload-feature 'tramp-uu 'force)))) | ||
| 90 | 101 | ||
| 91 | (unless (fboundp 'uudecode-decode-region) | 102 | (unless (fboundp 'uudecode-decode-region) |
| 92 | (autoload 'uudecode-decode-region "uudecode")) | 103 | (autoload 'uudecode-decode-region "uudecode")) |
| @@ -110,10 +121,20 @@ Nil means to use a separate filename syntax for Tramp.") | |||
| 110 | ;; tramp-ftp supports Ange-FTP only. Not suited for XEmacs therefore. | 121 | ;; tramp-ftp supports Ange-FTP only. Not suited for XEmacs therefore. |
| 111 | (unless (featurep 'xemacs) | 122 | (unless (featurep 'xemacs) |
| 112 | (eval-after-load "tramp" | 123 | (eval-after-load "tramp" |
| 113 | '(require 'tramp-ftp))) | 124 | '(progn |
| 125 | (require 'tramp-ftp) | ||
| 126 | (add-hook 'tramp-unload-hook | ||
| 127 | '(lambda () | ||
| 128 | (when (featurep 'tramp-ftp) | ||
| 129 | (unload-feature 'tramp-ftp 'force))))))) | ||
| 114 | (when (and tramp-unified-filenames (featurep 'xemacs)) | 130 | (when (and tramp-unified-filenames (featurep 'xemacs)) |
| 115 | (eval-after-load "tramp" | 131 | (eval-after-load "tramp" |
| 116 | '(require 'tramp-efs))) | 132 | '(progn |
| 133 | (require 'tramp-efs) | ||
| 134 | (add-hook 'tramp-unload-hook | ||
| 135 | '(lambda () | ||
| 136 | (when (featurep 'tramp-efs) | ||
| 137 | (unload-feature 'tramp-efs 'force))))))) | ||
| 117 | 138 | ||
| 118 | ;; tramp-smb uses "smbclient" from Samba. | 139 | ;; tramp-smb uses "smbclient" from Samba. |
| 119 | ;; Not available under Cygwin and Windows, because they don't offer | 140 | ;; Not available under Cygwin and Windows, because they don't offer |
| @@ -121,7 +142,12 @@ Nil means to use a separate filename syntax for Tramp.") | |||
| 121 | ;; UNC file names like "//host/share/localname". | 142 | ;; UNC file names like "//host/share/localname". |
| 122 | (unless (memq system-type '(cygwin windows-nt)) | 143 | (unless (memq system-type '(cygwin windows-nt)) |
| 123 | (eval-after-load "tramp" | 144 | (eval-after-load "tramp" |
| 124 | '(require 'tramp-smb))) | 145 | '(progn |
| 146 | (require 'tramp-smb) | ||
| 147 | (add-hook 'tramp-unload-hook | ||
| 148 | '(lambda () | ||
| 149 | (when (featurep 'tramp-smb) | ||
| 150 | (unload-feature 'tramp-smb 'force))))))) | ||
| 125 | 151 | ||
| 126 | (eval-when-compile | 152 | (eval-when-compile |
| 127 | (require 'cl) | 153 | (require 'cl) |
| @@ -1445,7 +1471,7 @@ the visited file modtime.") | |||
| 1445 | ((fboundp 'md5-encode) | 1471 | ((fboundp 'md5-encode) |
| 1446 | (lambda (x) (base64-encode-string | 1472 | (lambda (x) (base64-encode-string |
| 1447 | (funcall (symbol-function 'md5-encode) x)))) | 1473 | (funcall (symbol-function 'md5-encode) x)))) |
| 1448 | (t (error "Coulnd't find an `md5' function"))) | 1474 | (t (error "Couldn't find an `md5' function"))) |
| 1449 | "Function to call for running the MD5 algorithm.") | 1475 | "Function to call for running the MD5 algorithm.") |
| 1450 | 1476 | ||
| 1451 | (defvar tramp-end-of-output | 1477 | (defvar tramp-end-of-output |
| @@ -2012,6 +2038,7 @@ The intent is to protect against `obsolete variable' warnings." | |||
| 2012 | (let ((,variable ,value)) | 2038 | (let ((,variable ,value)) |
| 2013 | ,@body))) | 2039 | ,@body))) |
| 2014 | (put 'tramp-let-maybe 'lisp-indent-function 2) | 2040 | (put 'tramp-let-maybe 'lisp-indent-function 2) |
| 2041 | (put 'tramp-let-maybe 'edebug-form-spec t) | ||
| 2015 | 2042 | ||
| 2016 | ;;; Config Manipulation Functions: | 2043 | ;;; Config Manipulation Functions: |
| 2017 | 2044 | ||
| @@ -2370,8 +2397,8 @@ target of the symlink differ." | |||
| 2370 | ;; 8. File modes, as a string of ten letters or dashes as in ls -l. | 2397 | ;; 8. File modes, as a string of ten letters or dashes as in ls -l. |
| 2371 | res-filemodes | 2398 | res-filemodes |
| 2372 | ;; 9. t iff file's gid would change if file were deleted and | 2399 | ;; 9. t iff file's gid would change if file were deleted and |
| 2373 | ;; recreated. | 2400 | ;; recreated. Will be set in `tramp-convert-file-attributes' |
| 2374 | nil ;hm? | 2401 | t |
| 2375 | ;; 10. inode number. | 2402 | ;; 10. inode number. |
| 2376 | res-inode | 2403 | res-inode |
| 2377 | ;; 11. Device number. Will be replaced by a virtual device number. | 2404 | ;; 11. Device number. Will be replaced by a virtual device number. |
| @@ -2627,9 +2654,12 @@ of." | |||
| 2627 | (defun tramp-handle-file-ownership-preserved-p (filename) | 2654 | (defun tramp-handle-file-ownership-preserved-p (filename) |
| 2628 | "Like `file-ownership-preserved-p' for tramp files." | 2655 | "Like `file-ownership-preserved-p' for tramp files." |
| 2629 | (with-parsed-tramp-file-name filename nil | 2656 | (with-parsed-tramp-file-name filename nil |
| 2630 | (or (not (file-exists-p filename)) | 2657 | (let ((attributes (file-attributes filename))) |
| 2631 | ;; Existing files must be writable. | 2658 | ;; Return t if the file doesn't exist, since it's true that no |
| 2632 | (zerop (tramp-run-test "-O" filename))))) | 2659 | ;; information would be lost by an (attempted) delete and create. |
| 2660 | (or (null attributes) | ||
| 2661 | (= (nth 2 attributes) | ||
| 2662 | (tramp-get-remote-uid multi-method method user host)))))) | ||
| 2633 | 2663 | ||
| 2634 | ;; Other file name ops. | 2664 | ;; Other file name ops. |
| 2635 | 2665 | ||
| @@ -3487,6 +3517,17 @@ the result will be a local, non-Tramp, filename." | |||
| 3487 | (when (string-match "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname) | 3517 | (when (string-match "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname) |
| 3488 | (let ((uname (match-string 1 localname)) | 3518 | (let ((uname (match-string 1 localname)) |
| 3489 | (fname (match-string 2 localname))) | 3519 | (fname (match-string 2 localname))) |
| 3520 | ;; We cannot simply apply "~/", because under sudo "~/" is | ||
| 3521 | ;; expanded to the local user home directory but to the | ||
| 3522 | ;; root home directory. On the other hand, using always | ||
| 3523 | ;; the default user name for tilde expansion is not | ||
| 3524 | ;; appropriate either, because ssh and companions might | ||
| 3525 | ;; use a user name from the config file. | ||
| 3526 | (when (and (string-equal uname "~") | ||
| 3527 | (string-match | ||
| 3528 | "\\`su\\(do\\)?\\'" | ||
| 3529 | (tramp-find-method multi-method method user host))) | ||
| 3530 | (setq uname (concat uname (or user "root")))) | ||
| 3490 | ;; CCC fanatic error checking? | 3531 | ;; CCC fanatic error checking? |
| 3491 | (set-buffer (tramp-get-buffer multi-method method user host)) | 3532 | (set-buffer (tramp-get-buffer multi-method method user host)) |
| 3492 | (erase-buffer) | 3533 | (erase-buffer) |
| @@ -3499,17 +3540,24 @@ the result will be a local, non-Tramp, filename." | |||
| 3499 | (setq uname (buffer-substring (point) (tramp-line-end-position))) | 3540 | (setq uname (buffer-substring (point) (tramp-line-end-position))) |
| 3500 | (setq localname (concat uname fname)) | 3541 | (setq localname (concat uname fname)) |
| 3501 | (erase-buffer))) | 3542 | (erase-buffer))) |
| 3543 | ;; There might be a double slash, for example when "~/" | ||
| 3544 | ;; expands to "/". Remove this. | ||
| 3545 | (while (string-match "//" localname) | ||
| 3546 | (setq localname (replace-match "/" t t localname))) | ||
| 3502 | ;; No tilde characters in file name, do normal | 3547 | ;; No tilde characters in file name, do normal |
| 3503 | ;; expand-file-name (this does "/./" and "/../"). We bind | 3548 | ;; expand-file-name (this does "/./" and "/../"). We bind |
| 3504 | ;; directory-sep-char here for XEmacs on Windows, which | 3549 | ;; directory-sep-char here for XEmacs on Windows, which would |
| 3505 | ;; would otherwise use backslash. | 3550 | ;; otherwise use backslash. `default-directory' is bound to |
| 3551 | ;; "/", because on Windows there would be problems with UNC | ||
| 3552 | ;; shares or Cygwin mounts. | ||
| 3506 | (tramp-let-maybe directory-sep-char ?/ | 3553 | (tramp-let-maybe directory-sep-char ?/ |
| 3507 | (tramp-make-tramp-file-name | 3554 | (let ((default-directory "/")) |
| 3508 | multi-method (or method (tramp-find-default-method user host)) | 3555 | (tramp-make-tramp-file-name |
| 3509 | user host | 3556 | multi-method (or method (tramp-find-default-method user host)) |
| 3510 | (tramp-drop-volume-letter | 3557 | user host |
| 3511 | (tramp-run-real-handler 'expand-file-name | 3558 | (tramp-drop-volume-letter |
| 3512 | (list localname))))))))) | 3559 | (tramp-run-real-handler 'expand-file-name |
| 3560 | (list localname)))))))))) | ||
| 3513 | 3561 | ||
| 3514 | ;; old version follows. it uses ".." to cross file handler | 3562 | ;; old version follows. it uses ".." to cross file handler |
| 3515 | ;; boundaries. | 3563 | ;; boundaries. |
| @@ -4294,6 +4342,17 @@ Falls back to normal file name handler if no tramp file name handler exists." | |||
| 4294 | (cons tramp-completion-file-name-regexp | 4342 | (cons tramp-completion-file-name-regexp |
| 4295 | 'tramp-completion-file-name-handler)) | 4343 | 'tramp-completion-file-name-handler)) |
| 4296 | 4344 | ||
| 4345 | ;;;###autoload | ||
| 4346 | (defun tramp-unload-file-name-handler-alist () | ||
| 4347 | (setq file-name-handler-alist | ||
| 4348 | (delete (rassoc 'tramp-file-name-handler | ||
| 4349 | file-name-handler-alist) | ||
| 4350 | (delete (rassoc 'tramp-completion-file-name-handler | ||
| 4351 | file-name-handler-alist) | ||
| 4352 | file-name-handler-alist)))) | ||
| 4353 | |||
| 4354 | (add-hook 'tramp-unload-hook 'tramp-unload-file-name-handler-alist) | ||
| 4355 | |||
| 4297 | (defun tramp-repair-jka-compr () | 4356 | (defun tramp-repair-jka-compr () |
| 4298 | "If jka-compr is already loaded, move it to the front of | 4357 | "If jka-compr is already loaded, move it to the front of |
| 4299 | `file-name-handler-alist'. On Emacs 22 or so this will not be | 4358 | `file-name-handler-alist'. On Emacs 22 or so this will not be |
| @@ -4353,22 +4412,16 @@ necessary anymore." | |||
| 4353 | (read (current-buffer)))))) | 4412 | (read (current-buffer)))))) |
| 4354 | (list (expand-file-name name)))))) | 4413 | (list (expand-file-name name)))))) |
| 4355 | 4414 | ||
| 4356 | ;; Check for complete.el and override PC-expand-many-files if appropriate. | 4415 | (eval-after-load "complete" |
| 4357 | (eval-and-compile | 4416 | '(progn |
| 4358 | (defun tramp-save-PC-expand-many-files (name))); avoid compiler warning | 4417 | (defadvice PC-expand-many-files |
| 4359 | 4418 | (around tramp-advice-PC-expand-many-files (name) activate) | |
| 4360 | (defun tramp-setup-complete () | 4419 | "Invoke `tramp-handle-expand-many-files' for tramp files." |
| 4361 | (fset 'tramp-save-PC-expand-many-files | 4420 | (if (tramp-tramp-file-p name) |
| 4362 | (symbol-function 'PC-expand-many-files)) | 4421 | (setq ad-return-value (tramp-handle-expand-many-files name)) |
| 4363 | (defun PC-expand-many-files (name) | 4422 | ad-do-it)) |
| 4364 | (if (tramp-tramp-file-p name) | 4423 | (add-hook 'tramp-unload-hook |
| 4365 | (funcall (symbol-function 'expand-many-files) name) | 4424 | '(lambda () (ad-unadvise 'PC-expand-many-files))))) |
| 4366 | (tramp-save-PC-expand-many-files name)))) | ||
| 4367 | |||
| 4368 | ;; Why isn't eval-after-load sufficient? | ||
| 4369 | (if (fboundp 'PC-expand-many-files) | ||
| 4370 | (tramp-setup-complete) | ||
| 4371 | (eval-after-load "complete" '(tramp-setup-complete))) | ||
| 4372 | 4425 | ||
| 4373 | ;;; File name handler functions for completion mode | 4426 | ;;; File name handler functions for completion mode |
| 4374 | 4427 | ||
| @@ -4940,6 +4993,9 @@ Function may have 0-3 parameters." | |||
| 4940 | auto-save-default) | 4993 | auto-save-default) |
| 4941 | (auto-save-mode 1))) | 4994 | (auto-save-mode 1))) |
| 4942 | (add-hook 'find-file-hooks 'tramp-set-auto-save t) | 4995 | (add-hook 'find-file-hooks 'tramp-set-auto-save t) |
| 4996 | (add-hook 'tramp-unload-hook | ||
| 4997 | '(lambda () | ||
| 4998 | (remove-hook 'find-file-hooks 'tramp-set-auto-save))) | ||
| 4943 | 4999 | ||
| 4944 | (defun tramp-run-test (switch filename) | 5000 | (defun tramp-run-test (switch filename) |
| 4945 | "Run `test' on the remote system, given a SWITCH and a FILENAME. | 5001 | "Run `test' on the remote system, given a SWITCH and a FILENAME. |
| @@ -5532,6 +5588,7 @@ Maybe the different regular expressions need to be tuned. | |||
| 5532 | (or user (user-login-name)) host method) | 5588 | (or user (user-login-name)) host method) |
| 5533 | (let ((process-environment (copy-sequence process-environment))) | 5589 | (let ((process-environment (copy-sequence process-environment))) |
| 5534 | (setenv "TERM" tramp-terminal-type) | 5590 | (setenv "TERM" tramp-terminal-type) |
| 5591 | (setenv "PS1" "$ ") | ||
| 5535 | (let* ((default-directory (tramp-temporary-file-directory)) | 5592 | (let* ((default-directory (tramp-temporary-file-directory)) |
| 5536 | ;; If we omit the conditional here, then we would use | 5593 | ;; If we omit the conditional here, then we would use |
| 5537 | ;; `undecided-dos' in some cases. With the conditional, | 5594 | ;; `undecided-dos' in some cases. With the conditional, |
| @@ -5608,6 +5665,7 @@ arguments, and xx will be used as the host name to connect to. | |||
| 5608 | (setq login-args (cons "-p" (cons (match-string 2 host) login-args))) | 5665 | (setq login-args (cons "-p" (cons (match-string 2 host) login-args))) |
| 5609 | (setq real-host (match-string 1 host))) | 5666 | (setq real-host (match-string 1 host))) |
| 5610 | (setenv "TERM" tramp-terminal-type) | 5667 | (setenv "TERM" tramp-terminal-type) |
| 5668 | (setenv "PS1" "$ ") | ||
| 5611 | (let* ((default-directory (tramp-temporary-file-directory)) | 5669 | (let* ((default-directory (tramp-temporary-file-directory)) |
| 5612 | ;; If we omit the conditional, we would use | 5670 | ;; If we omit the conditional, we would use |
| 5613 | ;; `undecided-dos' in some cases. With the conditional, | 5671 | ;; `undecided-dos' in some cases. With the conditional, |
| @@ -5659,6 +5717,7 @@ prompt than you do, so it is not at all unlikely that the variable | |||
| 5659 | (or user "<root>") method) | 5717 | (or user "<root>") method) |
| 5660 | (let ((process-environment (copy-sequence process-environment))) | 5718 | (let ((process-environment (copy-sequence process-environment))) |
| 5661 | (setenv "TERM" tramp-terminal-type) | 5719 | (setenv "TERM" tramp-terminal-type) |
| 5720 | (setenv "PS1" "$ ") | ||
| 5662 | (let* ((default-directory (tramp-temporary-file-directory)) | 5721 | (let* ((default-directory (tramp-temporary-file-directory)) |
| 5663 | ;; If we omit the conditional, we use `undecided-dos' in | 5722 | ;; If we omit the conditional, we use `undecided-dos' in |
| 5664 | ;; some cases. With the conditional, we use nil in these | 5723 | ;; some cases. With the conditional, we use nil in these |
| @@ -5723,6 +5782,7 @@ log in as u2 to h2." | |||
| 5723 | (tramp-message 7 "Opening `%s' connection..." multi-method) | 5782 | (tramp-message 7 "Opening `%s' connection..." multi-method) |
| 5724 | (let ((process-environment (copy-sequence process-environment))) | 5783 | (let ((process-environment (copy-sequence process-environment))) |
| 5725 | (setenv "TERM" tramp-terminal-type) | 5784 | (setenv "TERM" tramp-terminal-type) |
| 5785 | (setenv "PS1" "$ ") | ||
| 5726 | (let* ((default-directory (tramp-temporary-file-directory)) | 5786 | (let* ((default-directory (tramp-temporary-file-directory)) |
| 5727 | ;; If we omit the conditional, we use `undecided-dos' in | 5787 | ;; If we omit the conditional, we use `undecided-dos' in |
| 5728 | ;; some cases. With the conditional, we use nil in these | 5788 | ;; some cases. With the conditional, we use nil in these |
| @@ -6203,8 +6263,17 @@ locale to C and sets up the remote shell search path." | |||
| 6203 | "ln" tramp-remote-path nil))) | 6263 | "ln" tramp-remote-path nil))) |
| 6204 | (when ln | 6264 | (when ln |
| 6205 | (tramp-set-connection-property "ln" ln multi-method method user host))) | 6265 | (tramp-set-connection-property "ln" ln multi-method method user host))) |
| 6266 | ;; Set uid and gid. | ||
| 6206 | (erase-buffer) | 6267 | (erase-buffer) |
| 6268 | (tramp-send-command multi-method method user host "id -u; id -g") | ||
| 6269 | (tramp-wait-for-output) | ||
| 6270 | (goto-char (point-min)) | ||
| 6271 | (tramp-set-connection-property | ||
| 6272 | "uid" (read (current-buffer)) multi-method method user host) | ||
| 6273 | (tramp-set-connection-property | ||
| 6274 | "gid" (read (current-buffer)) multi-method method user host) | ||
| 6207 | ;; Find the right encoding/decoding commands to use. | 6275 | ;; Find the right encoding/decoding commands to use. |
| 6276 | (erase-buffer) | ||
| 6208 | (unless (tramp-method-out-of-band-p multi-method method user host) | 6277 | (unless (tramp-method-out-of-band-p multi-method method user host) |
| 6209 | (tramp-find-inline-encoding multi-method method user host)) | 6278 | (tramp-find-inline-encoding multi-method method user host)) |
| 6210 | ;; If encoding/decoding command are given, test to see if they work. | 6279 | ;; If encoding/decoding command are given, test to see if they work. |
| @@ -6700,6 +6769,10 @@ Return ATTR." | |||
| 6700 | (unless (stringp (nth 8 attr)) | 6769 | (unless (stringp (nth 8 attr)) |
| 6701 | ;; Convert file mode bits to string. | 6770 | ;; Convert file mode bits to string. |
| 6702 | (setcar (nthcdr 8 attr) (tramp-file-mode-from-int (nth 8 attr)))) | 6771 | (setcar (nthcdr 8 attr) (tramp-file-mode-from-int (nth 8 attr)))) |
| 6772 | ;; Set file's gid change bit. | ||
| 6773 | (setcar (nthcdr 9 attr) | ||
| 6774 | (not (= (nth 3 attr) | ||
| 6775 | (tramp-get-remote-gid multi-method method user host)))) | ||
| 6703 | ;; Set virtual device number. | 6776 | ;; Set virtual device number. |
| 6704 | (setcar (nthcdr 11 attr) | 6777 | (setcar (nthcdr 11 attr) |
| 6705 | (tramp-get-device multi-method method user host)) | 6778 | (tramp-get-device multi-method method user host)) |
| @@ -6957,6 +7030,12 @@ If both MULTI-METHOD and METHOD are nil, do a lookup in | |||
| 6957 | (defun tramp-get-remote-ln (multi-method method user host) | 7030 | (defun tramp-get-remote-ln (multi-method method user host) |
| 6958 | (tramp-get-connection-property "ln" nil multi-method method user host)) | 7031 | (tramp-get-connection-property "ln" nil multi-method method user host)) |
| 6959 | 7032 | ||
| 7033 | (defun tramp-get-remote-uid (multi-method method user host) | ||
| 7034 | (tramp-get-connection-property "uid" nil multi-method method user host)) | ||
| 7035 | |||
| 7036 | (defun tramp-get-remote-gid (multi-method method user host) | ||
| 7037 | (tramp-get-connection-property "gid" nil multi-method method user host)) | ||
| 7038 | |||
| 6960 | ;; Get a property of a TRAMP connection. | 7039 | ;; Get a property of a TRAMP connection. |
| 6961 | (defun tramp-get-connection-property | 7040 | (defun tramp-get-connection-property |
| 6962 | (property default multi-method method user host) | 7041 | (property default multi-method method user host) |
| @@ -6967,7 +7046,7 @@ If the value is not set for the connection, return `default'" | |||
| 6967 | (let (error) | 7046 | (let (error) |
| 6968 | (condition-case nil | 7047 | (condition-case nil |
| 6969 | (symbol-value (intern (concat "tramp-connection-property-" property))) | 7048 | (symbol-value (intern (concat "tramp-connection-property-" property))) |
| 6970 | (error default))))) | 7049 | (error default))))) |
| 6971 | 7050 | ||
| 6972 | ;; Set a property of a TRAMP connection. | 7051 | ;; Set a property of a TRAMP connection. |
| 6973 | (defun tramp-set-connection-property | 7052 | (defun tramp-set-connection-property |
| @@ -7045,7 +7124,9 @@ as default." | |||
| 7045 | "Invoke `tramp-handle-make-auto-save-file-name' for tramp files." | 7124 | "Invoke `tramp-handle-make-auto-save-file-name' for tramp files." |
| 7046 | (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name))) | 7125 | (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name))) |
| 7047 | (setq ad-return-value (tramp-handle-make-auto-save-file-name)) | 7126 | (setq ad-return-value (tramp-handle-make-auto-save-file-name)) |
| 7048 | ad-do-it))) | 7127 | ad-do-it)) |
| 7128 | (add-hook 'tramp-unload-hook | ||
| 7129 | '(lambda () (ad-unadvise 'make-auto-save-file-name)))) | ||
| 7049 | 7130 | ||
| 7050 | ;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have | 7131 | ;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have |
| 7051 | ;; permission 0666 minus umask. This is a security threat. | 7132 | ;; permission 0666 minus umask. This is a security threat. |
| @@ -7069,7 +7150,10 @@ as default." | |||
| 7069 | (and (featurep 'xemacs) | 7150 | (and (featurep 'xemacs) |
| 7070 | (= emacs-major-version 21) | 7151 | (= emacs-major-version 21) |
| 7071 | (> emacs-minor-version 4))) | 7152 | (> emacs-minor-version 4))) |
| 7072 | (add-hook 'auto-save-hook 'tramp-set-auto-save-file-modes)) | 7153 | (add-hook 'auto-save-hook 'tramp-set-auto-save-file-modes) |
| 7154 | (add-hook 'tramp-unload-hook | ||
| 7155 | '(lambda () | ||
| 7156 | (remove-hook 'auto-save-hook 'tramp-set-auto-save-file-modes)))) | ||
| 7073 | 7157 | ||
| 7074 | (defun tramp-subst-strs-in-string (alist string) | 7158 | (defun tramp-subst-strs-in-string (alist string) |
| 7075 | "Replace all occurrences of the string FROM with TO in STRING. | 7159 | "Replace all occurrences of the string FROM with TO in STRING. |
| @@ -7296,7 +7380,9 @@ Only works for Bourne-like shells." | |||
| 7296 | (setq ad-return-value (list name)))) | 7380 | (setq ad-return-value (list name)))) |
| 7297 | ;; If it is not a Tramp file, just run the original function. | 7381 | ;; If it is not a Tramp file, just run the original function. |
| 7298 | (let ((res ad-do-it)) | 7382 | (let ((res ad-do-it)) |
| 7299 | (setq ad-return-value (or res (list name)))))))) | 7383 | (setq ad-return-value (or res (list name))))))) |
| 7384 | (add-hook 'tramp-unload-hook | ||
| 7385 | '(lambda () (ad-unadvise 'file-expand-wildcards)))) | ||
| 7300 | 7386 | ||
| 7301 | ;; Tramp version is useful in a number of situations. | 7387 | ;; Tramp version is useful in a number of situations. |
| 7302 | 7388 | ||
| @@ -7521,6 +7607,25 @@ Therefore, the contents of files might be included in the debug buffer(s).") | |||
| 7521 | 7607 | ||
| 7522 | (defalias 'tramp-submit-bug 'tramp-bug) | 7608 | (defalias 'tramp-submit-bug 'tramp-bug) |
| 7523 | 7609 | ||
| 7610 | ;; Checklist for `tramp-unload-hook' | ||
| 7611 | ;; - Unload all `tramp-*' packages | ||
| 7612 | ;; - Reset `file-name-handler-alist' | ||
| 7613 | ;; - Cleanup hooks where Tramp functions are in | ||
| 7614 | ;; - Cleanup advised functions | ||
| 7615 | ;; - Cleanup autoloads | ||
| 7616 | ;;;###autoload | ||
| 7617 | (defun tramp-unload-tramp () | ||
| 7618 | (interactive) | ||
| 7619 | ;; When Tramp is not loaded yet, its autoloads are still active. | ||
| 7620 | (tramp-unload-file-name-handler-alist) | ||
| 7621 | ;; ange-ftp settings must be enabled. | ||
| 7622 | (when (functionp 'tramp-ftp-enable-ange-ftp) | ||
| 7623 | (funcall (symbol-function 'tramp-ftp-enable-ange-ftp))) | ||
| 7624 | ;; `tramp-util' unloads also `tramp'. | ||
| 7625 | (condition-case nil ;; maybe its not loaded yet. | ||
| 7626 | (unload-feature (if (featurep 'tramp-util) 'tramp-util 'tramp) 'force) | ||
| 7627 | (error nil))) | ||
| 7628 | |||
| 7524 | (provide 'tramp) | 7629 | (provide 'tramp) |
| 7525 | 7630 | ||
| 7526 | ;; Make sure that we get integration with the VC package. | 7631 | ;; Make sure that we get integration with the VC package. |
| @@ -7528,7 +7633,12 @@ Therefore, the contents of files might be included in the debug buffer(s).") | |||
| 7528 | ;; This must come after (provide 'tramp) because tramp-vc.el | 7633 | ;; This must come after (provide 'tramp) because tramp-vc.el |
| 7529 | ;; requires tramp. | 7634 | ;; requires tramp. |
| 7530 | (eval-after-load "vc" | 7635 | (eval-after-load "vc" |
| 7531 | '(require 'tramp-vc)) | 7636 | '(progn |
| 7637 | (require 'tramp-vc) | ||
| 7638 | (add-hook 'tramp-unload-hook | ||
| 7639 | '(lambda () | ||
| 7640 | (when (featurep 'tramp-vc) | ||
| 7641 | (unload-feature 'tramp-vc 'force)))))) | ||
| 7532 | 7642 | ||
| 7533 | ;;; TODO: | 7643 | ;;; TODO: |
| 7534 | 7644 | ||
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index 650f1a727a7..632d958249d 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run | 30 | ;; are auto-frobbed from configure.ac, so you should edit that file and run |
| 31 | ;; "autoconf && ./configure" to change them. | 31 | ;; "autoconf && ./configure" to change them. |
| 32 | 32 | ||
| 33 | (defconst tramp-version "2.0.51" | 33 | (defconst tramp-version "2.0.52" |
| 34 | "This version of Tramp.") | 34 | "This version of Tramp.") |
| 35 | 35 | ||
| 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" | 36 | (defconst tramp-bug-report-address "tramp-devel@gnu.org" |
diff --git a/lisp/outline.el b/lisp/outline.el index 8a05aaf0cd9..eed84bd61c7 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -803,11 +803,12 @@ Show the heading too, if it is currently invisible." | |||
| 803 | (outline-flag-subtree t)) | 803 | (outline-flag-subtree t)) |
| 804 | 804 | ||
| 805 | (defun hide-leaves () | 805 | (defun hide-leaves () |
| 806 | "Hide all body after this heading at deeper levels." | 806 | "Hide the body after this heading and at deeper levels." |
| 807 | (interactive) | 807 | (interactive) |
| 808 | (save-excursion | 808 | (save-excursion |
| 809 | (outline-back-to-heading) | 809 | (outline-back-to-heading) |
| 810 | (outline-end-of-heading) | 810 | ;; Turned off to fix bug reported by Otto Maddox on 22 Nov 2005. |
| 811 | ;; (outline-end-of-heading) | ||
| 811 | (hide-region-body (point) (progn (outline-end-of-subtree) (point))))) | 812 | (hide-region-body (point) (progn (outline-end-of-subtree) (point))))) |
| 812 | 813 | ||
| 813 | (defun show-subtree () | 814 | (defun show-subtree () |
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index 85e15470dbc..32dfd6254c3 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el | |||
| @@ -89,7 +89,7 @@ | |||
| 89 | (set what ww) | 89 | (set what ww) |
| 90 | first)) | 90 | first)) |
| 91 | 91 | ||
| 92 | (defvar doc-mode-map | 92 | (defvar doctor-mode-map |
| 93 | (let ((map (make-sparse-keymap))) | 93 | (let ((map (make-sparse-keymap))) |
| 94 | (define-key map "\n" 'doctor-read-print) | 94 | (define-key map "\n" 'doctor-read-print) |
| 95 | (define-key map "\r" 'doctor-ret-or-read) | 95 | (define-key map "\r" 'doctor-ret-or-read) |
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el index cf119bde719..06a141016e5 100644 --- a/lisp/progmodes/cpp.el +++ b/lisp/progmodes/cpp.el | |||
| @@ -526,6 +526,8 @@ You can also use the keyboard accelerators indicated like this: [K]ey." | |||
| 526 | 'cpp-edit-toggle-unknown) | 526 | 'cpp-edit-toggle-unknown) |
| 527 | (insert (format "\n\n\n%39s: %14s %14s %7s\n\n" "Expression" | 527 | (insert (format "\n\n\n%39s: %14s %14s %7s\n\n" "Expression" |
| 528 | "[T]rue Face" "[F]alse Face" "[W]rite")) | 528 | "[T]rue Face" "[F]alse Face" "[W]rite")) |
| 529 | |||
| 530 | (setq symbols (reverse symbols)) | ||
| 529 | (while symbols | 531 | (while symbols |
| 530 | (let* ((symbol (car symbols)) | 532 | (let* ((symbol (car symbols)) |
| 531 | (entry (assoc symbol cpp-edit-list)) | 533 | (entry (assoc symbol cpp-edit-list)) |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 6ed2e39e4e8..0ed58fd558e 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -1743,7 +1743,7 @@ lines count as headers. | |||
| 1743 | (set (make-local-variable 'eldoc-documentation-function) | 1743 | (set (make-local-variable 'eldoc-documentation-function) |
| 1744 | #'python-eldoc-function) | 1744 | #'python-eldoc-function) |
| 1745 | (add-hook 'eldoc-mode-hook | 1745 | (add-hook 'eldoc-mode-hook |
| 1746 | '(lambda () (run-python 0 t)) nil t) ; need it running | 1746 | '(lambda () (run-python nil t)) nil t) ; need it running |
| 1747 | (if (featurep 'hippie-exp) | 1747 | (if (featurep 'hippie-exp) |
| 1748 | (set (make-local-variable 'hippie-expand-try-functions-list) | 1748 | (set (make-local-variable 'hippie-expand-try-functions-list) |
| 1749 | (cons 'python-try-complete hippie-expand-try-functions-list))) | 1749 | (cons 'python-try-complete hippie-expand-try-functions-list))) |
diff --git a/lisp/ses.el b/lisp/ses.el index 4c959c015a7..debb22d84db 100644 --- a/lisp/ses.el +++ b/lisp/ses.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; ses.el -- Simple Emacs Spreadsheet -*- coding: utf-8 -*- | 1 | ;;; ses.el -- Simple Emacs Spreadsheet -*- coding: utf-8 -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> | 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> |
| 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> | 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> |
| @@ -148,8 +148,7 @@ Each function is called with ARG=1." | |||
| 148 | (newmap (make-sparse-keymap))) | 148 | (newmap (make-sparse-keymap))) |
| 149 | (set-keymap-parent newmap minibuffer-local-map) | 149 | (set-keymap-parent newmap minibuffer-local-map) |
| 150 | (while keys | 150 | (while keys |
| 151 | (define-key newmap (car keys) (cadr keys)) | 151 | (define-key newmap (pop keys) (pop keys))) |
| 152 | (setq keys (cddr keys))) | ||
| 153 | newmap) | 152 | newmap) |
| 154 | "Local keymap for SES minibuffer cell-editing.") | 153 | "Local keymap for SES minibuffer cell-editing.") |
| 155 | 154 | ||
| @@ -1865,20 +1864,20 @@ cell formula was unsafe and user declined confirmation." | |||
| 1865 | (defun ses-read-cell (row col newval) | 1864 | (defun ses-read-cell (row col newval) |
| 1866 | "Self-insert for initial character of cell function." | 1865 | "Self-insert for initial character of cell function." |
| 1867 | (interactive | 1866 | (interactive |
| 1868 | (let ((initial (this-command-keys)) | 1867 | (let* ((initial (this-command-keys)) |
| 1869 | (rowcol (progn (ses-check-curcell) (ses-sym-rowcol ses--curcell)))) | 1868 | (rowcol (progn (ses-check-curcell) (ses-sym-rowcol ses--curcell))) |
| 1869 | (curval (ses-cell-formula (car rowcol) (cdr rowcol)))) | ||
| 1870 | (barf-if-buffer-read-only) | 1870 | (barf-if-buffer-read-only) |
| 1871 | (if (string= initial "\"") | ||
| 1872 | (setq initial "\"\"") ;Enter a string | ||
| 1873 | (if (string= initial "(") | ||
| 1874 | (setq initial "()"))) ;Enter a formula list | ||
| 1875 | (list (car rowcol) | 1871 | (list (car rowcol) |
| 1876 | (cdr rowcol) | 1872 | (cdr rowcol) |
| 1877 | (read-from-minibuffer (format "Cell %s: " ses--curcell) | 1873 | (read-from-minibuffer |
| 1878 | (cons initial 2) | 1874 | (format "Cell %s: " ses--curcell) |
| 1879 | ses-mode-edit-map | 1875 | (cons (if (equal initial "\"") "\"\"" |
| 1880 | t ;Convert to Lisp object | 1876 | (if (equal initial "(") "()" initial)) 2) |
| 1881 | 'ses-read-cell-history)))) | 1877 | ses-mode-edit-map |
| 1878 | t ;Convert to Lisp object | ||
| 1879 | 'ses-read-cell-history | ||
| 1880 | (prin1-to-string curval))))) | ||
| 1882 | (when (ses-edit-cell row col newval) | 1881 | (when (ses-edit-cell row col newval) |
| 1883 | (ses-command-hook) ;Update cell widths before movement | 1882 | (ses-command-hook) ;Update cell widths before movement |
| 1884 | (dolist (x ses-after-entry-functions) | 1883 | (dolist (x ses-after-entry-functions) |
diff --git a/lisp/simple.el b/lisp/simple.el index 1f00d52155e..087961fabac 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; simple.el --- basic editing commands for Emacs | 1 | ;;; simple.el --- basic editing commands for Emacs |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | 3 | ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
| 4 | ;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 4 | ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| 7 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| @@ -3185,8 +3185,9 @@ for mark off the local mark ring \(this does not affect the global | |||
| 3185 | mark ring\). Use \\[pop-global-mark] to jump to a mark off the global | 3185 | mark ring\). Use \\[pop-global-mark] to jump to a mark off the global |
| 3186 | mark ring \(see `pop-global-mark'\). | 3186 | mark ring \(see `pop-global-mark'\). |
| 3187 | 3187 | ||
| 3188 | Repeating the \\[set-mark-command] command without the prefix jumps to | 3188 | If `set-mark-command-repeat-pop' is non-nil, repeating |
| 3189 | the next position off the local (or global) mark ring. | 3189 | the \\[set-mark-command] command with no prefix pops the next position |
| 3190 | off the local (or global) mark ring and jumps there. | ||
| 3190 | 3191 | ||
| 3191 | With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \ | 3192 | With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \ |
| 3192 | \\[universal-argument] \\[set-mark-command], unconditionally | 3193 | \\[universal-argument] \\[set-mark-command], unconditionally |
| @@ -3734,7 +3735,13 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." | |||
| 3734 | (or arg (setq arg 1)) | 3735 | (or arg (setq arg 1)) |
| 3735 | (if (/= arg 1) | 3736 | (if (/= arg 1) |
| 3736 | (line-move (1- arg) t)) | 3737 | (line-move (1- arg) t)) |
| 3737 | (beginning-of-line 1) | 3738 | |
| 3739 | ;; Move to beginning-of-line, ignoring fields and invisibles. | ||
| 3740 | (skip-chars-backward "^\n") | ||
| 3741 | (while (and (not (bobp)) (line-move-invisible-p (1- (point)))) | ||
| 3742 | (goto-char (previous-char-property-change (1- (point)))) | ||
| 3743 | (skip-chars-backward "^\n")) | ||
| 3744 | |||
| 3738 | (let ((orig (point))) | 3745 | (let ((orig (point))) |
| 3739 | (vertical-motion 0) | 3746 | (vertical-motion 0) |
| 3740 | (if (/= orig (point)) | 3747 | (if (/= orig (point)) |
| @@ -5028,8 +5035,8 @@ select the completion near point.\n\n"))))) | |||
| 5028 | (goto-char (point-min)) | 5035 | (goto-char (point-min)) |
| 5029 | (search-forward "\n\n") | 5036 | (search-forward "\n\n") |
| 5030 | (forward-line 1)))) | 5037 | (forward-line 1)))) |
| 5031 | 5038 | ||
| 5032 | ;; Support keyboard commands to turn on various modifiers. | 5039 | ;;; Support keyboard commands to turn on various modifiers. |
| 5033 | 5040 | ||
| 5034 | ;; These functions -- which are not commands -- each add one modifier | 5041 | ;; These functions -- which are not commands -- each add one modifier |
| 5035 | ;; to the following event. | 5042 | ;; to the following event. |
| @@ -5094,7 +5101,7 @@ PREFIX is the string that represents this modifier in an event type symbol." | |||
| 5094 | (define-key function-key-map [?\C-x ?@ ?a] 'event-apply-alt-modifier) | 5101 | (define-key function-key-map [?\C-x ?@ ?a] 'event-apply-alt-modifier) |
| 5095 | (define-key function-key-map [?\C-x ?@ ?S] 'event-apply-shift-modifier) | 5102 | (define-key function-key-map [?\C-x ?@ ?S] 'event-apply-shift-modifier) |
| 5096 | (define-key function-key-map [?\C-x ?@ ?c] 'event-apply-control-modifier) | 5103 | (define-key function-key-map [?\C-x ?@ ?c] 'event-apply-control-modifier) |
| 5097 | 5104 | ||
| 5098 | ;;;; Keypad support. | 5105 | ;;;; Keypad support. |
| 5099 | 5106 | ||
| 5100 | ;;; Make the keypad keys act like ordinary typing keys. If people add | 5107 | ;;; Make the keypad keys act like ordinary typing keys. If people add |
| @@ -5189,7 +5196,8 @@ after it has been set up properly in other respects." | |||
| 5189 | (error "Cannot clone a file-visiting buffer")) | 5196 | (error "Cannot clone a file-visiting buffer")) |
| 5190 | (if (get major-mode 'no-clone) | 5197 | (if (get major-mode 'no-clone) |
| 5191 | (error "Cannot clone a buffer in %s mode" mode-name)) | 5198 | (error "Cannot clone a buffer in %s mode" mode-name)) |
| 5192 | (list (if current-prefix-arg (read-string "Name: ")) | 5199 | (list (if current-prefix-arg |
| 5200 | (read-buffer "Name of new cloned buffer: " (current-buffer))) | ||
| 5193 | t))) | 5201 | t))) |
| 5194 | (if buffer-file-name | 5202 | (if buffer-file-name |
| 5195 | (error "Cannot clone a file-visiting buffer")) | 5203 | (error "Cannot clone a file-visiting buffer")) |
| @@ -5236,7 +5244,12 @@ after it has been set up properly in other respects." | |||
| 5236 | ;; Run any hooks (typically set up by the major mode | 5244 | ;; Run any hooks (typically set up by the major mode |
| 5237 | ;; for cloning to work properly). | 5245 | ;; for cloning to work properly). |
| 5238 | (run-hooks 'clone-buffer-hook)) | 5246 | (run-hooks 'clone-buffer-hook)) |
| 5239 | (if display-flag (pop-to-buffer new)) | 5247 | (if display-flag |
| 5248 | ;; Presumably the current buffer is shown in the selected frame, so | ||
| 5249 | ;; we want to display the clone elsewhere. | ||
| 5250 | (let ((same-window-regexps nil) | ||
| 5251 | (same-window-buffer-names)) | ||
| 5252 | (pop-to-buffer new))) | ||
| 5240 | new)) | 5253 | new)) |
| 5241 | 5254 | ||
| 5242 | 5255 | ||
| @@ -5259,7 +5272,7 @@ front of the list of recently selected ones." | |||
| 5259 | (if (get major-mode 'no-clone-indirect) | 5272 | (if (get major-mode 'no-clone-indirect) |
| 5260 | (error "Cannot indirectly clone a buffer in %s mode" mode-name)) | 5273 | (error "Cannot indirectly clone a buffer in %s mode" mode-name)) |
| 5261 | (list (if current-prefix-arg | 5274 | (list (if current-prefix-arg |
| 5262 | (read-string "BName of indirect buffer: ")) | 5275 | (read-buffer "Name of indirect buffer: " (current-buffer))) |
| 5263 | t))) | 5276 | t))) |
| 5264 | (if (get major-mode 'no-clone-indirect) | 5277 | (if (get major-mode 'no-clone-indirect) |
| 5265 | (error "Cannot indirectly clone a buffer in %s mode" mode-name)) | 5278 | (error "Cannot indirectly clone a buffer in %s mode" mode-name)) |
| @@ -5278,7 +5291,13 @@ front of the list of recently selected ones." | |||
| 5278 | Select the new buffer in another window. | 5291 | Select the new buffer in another window. |
| 5279 | Optional second arg NORECORD non-nil means do not put this buffer at | 5292 | Optional second arg NORECORD non-nil means do not put this buffer at |
| 5280 | the front of the list of recently selected ones." | 5293 | the front of the list of recently selected ones." |
| 5281 | (interactive "bClone buffer in other window: ") | 5294 | (interactive |
| 5295 | (progn | ||
| 5296 | (if (get major-mode 'no-clone-indirect) | ||
| 5297 | (error "Cannot indirectly clone a buffer in %s mode" mode-name)) | ||
| 5298 | (list (if current-prefix-arg | ||
| 5299 | (read-buffer "Name of indirect buffer: " (current-buffer))) | ||
| 5300 | t))) | ||
| 5282 | (let ((pop-up-windows t)) | 5301 | (let ((pop-up-windows t)) |
| 5283 | (set-buffer buffer) | 5302 | (set-buffer buffer) |
| 5284 | (clone-indirect-buffer nil t norecord))) | 5303 | (clone-indirect-buffer nil t norecord))) |
diff --git a/lisp/startup.el b/lisp/startup.el index df20bc14685..d2f5de838c8 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -41,7 +41,9 @@ | |||
| 41 | :group 'internal) | 41 | :group 'internal) |
| 42 | 42 | ||
| 43 | (defcustom inhibit-splash-screen nil | 43 | (defcustom inhibit-splash-screen nil |
| 44 | "*Non-nil inhibits the startup screen. | 44 | "Non-nil inhibits the startup screen. |
| 45 | It also inhibits display of the initial message in the *scratch* buffer. | ||
| 46 | |||
| 45 | This is for use in your personal init file, once you are familiar | 47 | This is for use in your personal init file, once you are familiar |
| 46 | with the contents of the startup screen." | 48 | with the contents of the startup screen." |
| 47 | :type 'boolean | 49 | :type 'boolean |
| @@ -1087,7 +1089,9 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'." | |||
| 1087 | 1089 | ||
| 1088 | ") | 1090 | ") |
| 1089 | "Initial message displayed in *scratch* buffer at startup. | 1091 | "Initial message displayed in *scratch* buffer at startup. |
| 1090 | If this is nil, no message will be displayed." | 1092 | If this is nil, no message will be displayed. |
| 1093 | If `inhibit-splash-screen' is non-nil, then no message is displayed, | ||
| 1094 | regardless of the value of this variable." | ||
| 1091 | :type '(choice (text :tag "Message") | 1095 | :type '(choice (text :tag "Message") |
| 1092 | (const :tag "none" nil)) | 1096 | (const :tag "none" nil)) |
| 1093 | :group 'initialization) | 1097 | :group 'initialization) |
| @@ -1631,7 +1635,7 @@ normal otherwise." | |||
| 1631 | (longopts | 1635 | (longopts |
| 1632 | (append '(("--funcall") ("--load") ("--insert") ("--kill") | 1636 | (append '(("--funcall") ("--load") ("--insert") ("--kill") |
| 1633 | ("--directory") ("--eval") ("--execute") ("--no-splash") | 1637 | ("--directory") ("--eval") ("--execute") ("--no-splash") |
| 1634 | ("--find-file") ("--visit") ("--file")) | 1638 | ("--find-file") ("--visit") ("--file") ("--no-desktop")) |
| 1635 | (mapcar (lambda (elt) | 1639 | (mapcar (lambda (elt) |
| 1636 | (list (concat "-" (car elt)))) | 1640 | (list (concat "-" (car elt)))) |
| 1637 | command-switch-alist))) | 1641 | command-switch-alist))) |
| @@ -1731,6 +1735,13 @@ normal otherwise." | |||
| 1731 | ((equal argi "-kill") | 1735 | ((equal argi "-kill") |
| 1732 | (kill-emacs t)) | 1736 | (kill-emacs t)) |
| 1733 | 1737 | ||
| 1738 | ;; This is for when they use --no-desktop with -q, or | ||
| 1739 | ;; don't load Desktop in their .emacs. If desktop.el | ||
| 1740 | ;; _is_ loaded, it will handle this switch, and we | ||
| 1741 | ;; won't see it by the time we get here. | ||
| 1742 | ((equal argi "-no-desktop") | ||
| 1743 | (message "\"--no-desktop\" ignored because the Desktop package is not loaded")) | ||
| 1744 | |||
| 1734 | ((string-match "^\\+[0-9]+\\'" argi) | 1745 | ((string-match "^\\+[0-9]+\\'" argi) |
| 1735 | (setq line (string-to-number argi))) | 1746 | (setq line (string-to-number argi))) |
| 1736 | 1747 | ||
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index ac067f34fef..a083d308036 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; w32-win.el --- parse switches controlling interface with W32 window system | 1 | ;;; w32-win.el --- parse switches controlling interface with W32 window system |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993, 1994, 2002, 2003, 2004, | 3 | ;; Copyright (C) 1993, 1994, 2002, 2003, 2004, |
| 4 | ;; 2005 Free Software Foundation, Inc. | 4 | ;; 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Kevin Gallo | 6 | ;; Author: Kevin Gallo |
| 7 | ;; Keywords: terminals | 7 | ;; Keywords: terminals |
| @@ -1232,7 +1232,7 @@ font dialog to get the matching FONTS. Otherwise use a pop-up menu | |||
| 1232 | (png "libpng13d.dll" "libpng13.dll" "libpng12d.dll" "libpng12.dll" "libpng.dll") | 1232 | (png "libpng13d.dll" "libpng13.dll" "libpng12d.dll" "libpng12.dll" "libpng.dll") |
| 1233 | (jpeg "jpeg62.dll" "libjpeg.dll" "jpeg-62.dll" "jpeg.dll") | 1233 | (jpeg "jpeg62.dll" "libjpeg.dll" "jpeg-62.dll" "jpeg.dll") |
| 1234 | (tiff "libtiff3.dll" "libtiff.dll") | 1234 | (tiff "libtiff3.dll" "libtiff.dll") |
| 1235 | (gif "libungif.dll"))) | 1235 | (gif "giflib4.dll" "libungif4.dll" "libungif.dll"))) |
| 1236 | 1236 | ||
| 1237 | ;; arch-tag: 69fb1701-28c2-4890-b351-3d1fe4b4f166 | 1237 | ;; arch-tag: 69fb1701-28c2-4890-b351-3d1fe4b4f166 |
| 1238 | ;;; w32-win.el ends here | 1238 | ;;; w32-win.el ends here |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 6bb3c0d642c..c708355ce7e 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -1049,6 +1049,7 @@ At most `bibtex-entry-kill-ring-max' items are kept here.") | |||
| 1049 | "Completion table for BibTeX string keys. | 1049 | "Completion table for BibTeX string keys. |
| 1050 | Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") | 1050 | Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") |
| 1051 | (make-variable-buffer-local 'bibtex-strings) | 1051 | (make-variable-buffer-local 'bibtex-strings) |
| 1052 | (put 'bibtex-strings 'risky-local-variable t) | ||
| 1052 | 1053 | ||
| 1053 | (defvar bibtex-reference-keys | 1054 | (defvar bibtex-reference-keys |
| 1054 | (lazy-completion-table bibtex-reference-keys | 1055 | (lazy-completion-table bibtex-reference-keys |
| @@ -1056,6 +1057,7 @@ Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") | |||
| 1056 | "Completion table for BibTeX reference keys. | 1057 | "Completion table for BibTeX reference keys. |
| 1057 | The CDRs of the elements are t for header keys and nil for crossref keys.") | 1058 | The CDRs of the elements are t for header keys and nil for crossref keys.") |
| 1058 | (make-variable-buffer-local 'bibtex-reference-keys) | 1059 | (make-variable-buffer-local 'bibtex-reference-keys) |
| 1060 | (put 'bibtex-reference-keys 'risky-local-variable t) | ||
| 1059 | 1061 | ||
| 1060 | (defvar bibtex-buffer-last-parsed-tick nil | 1062 | (defvar bibtex-buffer-last-parsed-tick nil |
| 1061 | "Value of `buffer-modified-tick' last time buffer was parsed for keys.") | 1063 | "Value of `buffer-modified-tick' last time buffer was parsed for keys.") |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index a4930324e95..61192bbbe1c 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -2080,7 +2080,8 @@ The word checked is the word at the mouse position." | |||
| 2080 | corrects) | 2080 | corrects) |
| 2081 | '())) | 2081 | '())) |
| 2082 | (affix (car (cdr (cdr (cdr poss))))) | 2082 | (affix (car (cdr (cdr (cdr poss))))) |
| 2083 | (base-menu (let ((save (if (consp affix) | 2083 | show-affix-info |
| 2084 | (base-menu (let ((save (if (and (consp affix) show-affix-info) | ||
| 2084 | (list | 2085 | (list |
| 2085 | (list (concat "Save affix: " (car affix)) | 2086 | (list (concat "Save affix: " (car affix)) |
| 2086 | 'save) | 2087 | 'save) |
| @@ -2121,7 +2122,8 @@ The word checked is the word at the mouse position." | |||
| 2121 | corrects) | 2122 | corrects) |
| 2122 | '())) | 2123 | '())) |
| 2123 | (affix (car (cdr (cdr (cdr poss))))) | 2124 | (affix (car (cdr (cdr (cdr poss))))) |
| 2124 | (menu (let ((save (if (consp affix) | 2125 | show-affix-info |
| 2126 | (menu (let ((save (if (and (consp affix) show-affix-info) | ||
| 2125 | (vector | 2127 | (vector |
| 2126 | (concat "Save affix: " (car affix)) | 2128 | (concat "Save affix: " (car affix)) |
| 2127 | (list 'flyspell-do-correct | 2129 | (list 'flyspell-do-correct |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 7c686091319..926cc56bfe9 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.03 | 8 | ;; Version: 4.04 |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -81,6 +81,10 @@ | |||
| 81 | ;; | 81 | ;; |
| 82 | ;; Changes since version 4.00: | 82 | ;; Changes since version 4.00: |
| 83 | ;; --------------------------- | 83 | ;; --------------------------- |
| 84 | ;; Version 4.04 | ||
| 85 | ;; - Cleanup tags display in agenda. | ||
| 86 | ;; - Bug fixes. | ||
| 87 | ;; | ||
| 84 | ;; Version 4.03 | 88 | ;; Version 4.03 |
| 85 | ;; - Table alignment fixed for use with wide characters. | 89 | ;; - Table alignment fixed for use with wide characters. |
| 86 | ;; - `C-c -' leaves cursor in current table line. | 90 | ;; - `C-c -' leaves cursor in current table line. |
| @@ -111,7 +115,7 @@ | |||
| 111 | 115 | ||
| 112 | ;;; Customization variables | 116 | ;;; Customization variables |
| 113 | 117 | ||
| 114 | (defvar org-version "4.03" | 118 | (defvar org-version "4.04" |
| 115 | "The version number of the file org.el.") | 119 | "The version number of the file org.el.") |
| 116 | (defun org-version () | 120 | (defun org-version () |
| 117 | (interactive) | 121 | (interactive) |
| @@ -608,7 +612,8 @@ the prefix, you could use: | |||
| 608 | 612 | ||
| 609 | (setq org-agenda-prefix-format \" %-11:c% s\") | 613 | (setq org-agenda-prefix-format \" %-11:c% s\") |
| 610 | 614 | ||
| 611 | See also the variable `org-agenda-remove-times-when-in-prefix'." | 615 | See also the variables `org-agenda-remove-times-when-in-prefix' and |
| 616 | `org-agenda-remove-tags-when-in-prefix'." | ||
| 612 | :type 'string | 617 | :type 'string |
| 613 | :group 'org-agenda) | 618 | :group 'org-agenda) |
| 614 | 619 | ||
| @@ -691,6 +696,16 @@ agenda entries." | |||
| 691 | :group 'org-agenda | 696 | :group 'org-agenda |
| 692 | :type 'boolean) | 697 | :type 'boolean) |
| 693 | 698 | ||
| 699 | (defcustom org-agenda-remove-tags-when-in-prefix nil | ||
| 700 | "Non-nil means, the tags from copy of headline in agenda. | ||
| 701 | When this is the symbol `prefix', only remove tags when | ||
| 702 | `org-agenda-prefix-format' contains a `%T' specifier." | ||
| 703 | :group 'org-agenda | ||
| 704 | :type '(choice | ||
| 705 | (const :tag "Always" t) | ||
| 706 | (const :tag "Never" nil) | ||
| 707 | (const :tag "When prefix format contains %T" prefix))) | ||
| 708 | |||
| 694 | (defgroup org-structure nil | 709 | (defgroup org-structure nil |
| 695 | "Options concerning structure editing in Org-mode." | 710 | "Options concerning structure editing in Org-mode." |
| 696 | :tag "Org Structure" | 711 | :tag "Org Structure" |
| @@ -1875,42 +1890,43 @@ When this is non-nil, the headline after the keyword is set to the | |||
| 1875 | 1890 | ||
| 1876 | ;; Tell the compiler about dynamically scoped variables, | 1891 | ;; Tell the compiler about dynamically scoped variables, |
| 1877 | ;; and variables from other packages | 1892 | ;; and variables from other packages |
| 1878 | (defvar zmacs-regions) | 1893 | (eval-when-compile |
| 1879 | (defvar original-date) | 1894 | (defvar zmacs-regions) |
| 1880 | (defvar org-transient-mark-mode) | 1895 | (defvar original-date) |
| 1881 | (defvar org-old-auto-fill-inhibit-regexp) | 1896 | (defvar org-transient-mark-mode) |
| 1882 | (defvar orgtbl-mode-menu) | 1897 | (defvar org-old-auto-fill-inhibit-regexp) |
| 1883 | (defvar org-html-entities) | 1898 | (defvar orgtbl-mode-menu) |
| 1884 | (defvar org-goto-start-pos) | 1899 | (defvar org-html-entities) |
| 1885 | (defvar org-cursor-color) | 1900 | (defvar org-goto-start-pos) |
| 1886 | (defvar org-time-was-given) | 1901 | (defvar org-cursor-color) |
| 1887 | (defvar org-ts-what) | 1902 | (defvar org-time-was-given) |
| 1888 | (defvar mark-active) | 1903 | (defvar org-ts-what) |
| 1889 | (defvar timecnt) | 1904 | (defvar mark-active) |
| 1890 | (defvar levels-open) | 1905 | (defvar timecnt) |
| 1891 | (defvar title) | 1906 | (defvar levels-open) |
| 1892 | (defvar author) | 1907 | (defvar title) |
| 1893 | (defvar email) | 1908 | (defvar author) |
| 1894 | (defvar text) | 1909 | (defvar email) |
| 1895 | (defvar entry) | 1910 | (defvar text) |
| 1896 | (defvar date) | 1911 | (defvar entry) |
| 1897 | (defvar language) | 1912 | (defvar date) |
| 1898 | (defvar options) | 1913 | (defvar language) |
| 1899 | (defvar ans1) | 1914 | (defvar options) |
| 1900 | (defvar ans2) | 1915 | (defvar ans1) |
| 1901 | (defvar starting-day) | 1916 | (defvar ans2) |
| 1902 | (defvar include-all-loc) | 1917 | (defvar starting-day) |
| 1903 | (defvar vm-message-pointer) | 1918 | (defvar include-all-loc) |
| 1904 | (defvar vm-folder-directory) | 1919 | (defvar vm-message-pointer) |
| 1905 | (defvar wl-summary-buffer-elmo-folder) | 1920 | (defvar vm-folder-directory) |
| 1906 | (defvar wl-summary-buffer-folder-name) | 1921 | (defvar wl-summary-buffer-elmo-folder) |
| 1907 | (defvar gnus-group-name) | 1922 | (defvar wl-summary-buffer-folder-name) |
| 1908 | (defvar gnus-article-current) | 1923 | (defvar gnus-group-name) |
| 1909 | (defvar w3m-current-url) | 1924 | (defvar gnus-article-current) |
| 1910 | (defvar org-selected-point) | 1925 | (defvar w3m-current-url) |
| 1911 | (defvar calendar-mode-map) | 1926 | (defvar org-selected-point) |
| 1912 | (defvar remember-save-after-remembering) | 1927 | (defvar calendar-mode-map) |
| 1913 | (defvar remember-data-file) | 1928 | (defvar remember-save-after-remembering) |
| 1929 | (defvar remember-data-file)) | ||
| 1914 | 1930 | ||
| 1915 | 1931 | ||
| 1916 | ;;; Define the mode | 1932 | ;;; Define the mode |
| @@ -3100,7 +3116,7 @@ heading be marked DONE, and the current time will be added." | |||
| 3100 | (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location) | 3116 | (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location) |
| 3101 | (progn | 3117 | (progn |
| 3102 | (setq file (format (match-string 1 org-archive-location) | 3118 | (setq file (format (match-string 1 org-archive-location) |
| 3103 | (file-name-nondirectory buffer-file-name)) | 3119 | (file-name-nondirectory (buffer-file-name))) |
| 3104 | heading (match-string 2 org-archive-location))) | 3120 | heading (match-string 2 org-archive-location))) |
| 3105 | (error "Invalid `org-archive-location'")) | 3121 | (error "Invalid `org-archive-location'")) |
| 3106 | (if (> (length file) 0) | 3122 | (if (> (length file) 0) |
| @@ -4031,8 +4047,9 @@ in the timestamp determines what will be changed." | |||
| 4031 | (nthcdr 6 time0)))) | 4047 | (nthcdr 6 time0)))) |
| 4032 | (if (eq what 'calendar) | 4048 | (if (eq what 'calendar) |
| 4033 | (let ((cal-date | 4049 | (let ((cal-date |
| 4034 | (save-match-data | 4050 | (save-excursion |
| 4035 | (with-current-buffer "*Calendar*" | 4051 | (save-match-data |
| 4052 | (set-buffer "*Calendar*") | ||
| 4036 | (calendar-cursor-to-date))))) | 4053 | (calendar-cursor-to-date))))) |
| 4037 | (setcar (nthcdr 4 time0) (nth 0 cal-date)) ; month | 4054 | (setcar (nthcdr 4 time0) (nth 0 cal-date)) ; month |
| 4038 | (setcar (nthcdr 3 time0) (nth 1 cal-date)) ; day | 4055 | (setcar (nthcdr 3 time0) (nth 1 cal-date)) ; day |
| @@ -4285,7 +4302,7 @@ first press `1' to indicate that the agenda should be temporarily (until the | |||
| 4285 | next use of \\[org-agenda]) restricted to the current file." | 4302 | next use of \\[org-agenda]) restricted to the current file." |
| 4286 | (interactive "P") | 4303 | (interactive "P") |
| 4287 | (catch 'exit | 4304 | (catch 'exit |
| 4288 | (let ((restrict-ok (and buffer-file-name (eq major-mode 'org-mode))) | 4305 | (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode))) |
| 4289 | (custom org-agenda-custom-commands) | 4306 | (custom org-agenda-custom-commands) |
| 4290 | c entry key type string) | 4307 | c entry key type string) |
| 4291 | (put 'org-agenda-files 'org-restrict nil) | 4308 | (put 'org-agenda-files 'org-restrict nil) |
| @@ -4320,7 +4337,7 @@ C Configure your own agenda commands") | |||
| 4320 | (message "") | 4337 | (message "") |
| 4321 | (when (equal c ?1) | 4338 | (when (equal c ?1) |
| 4322 | (if restrict-ok | 4339 | (if restrict-ok |
| 4323 | (put 'org-agenda-files 'org-restrict (list buffer-file-name)) | 4340 | (put 'org-agenda-files 'org-restrict (list (buffer-file-name))) |
| 4324 | (error "Cannot restrict agenda to current buffer")) | 4341 | (error "Cannot restrict agenda to current buffer")) |
| 4325 | (message "Press key for agenda command%s" | 4342 | (message "Press key for agenda command%s" |
| 4326 | (if restrict-ok " (restricted to current file)" "")) | 4343 | (if restrict-ok " (restricted to current file)" "")) |
| @@ -4444,8 +4461,8 @@ dates." | |||
| 4444 | (dotodo include-all) | 4461 | (dotodo include-all) |
| 4445 | (doclosed org-agenda-show-log) | 4462 | (doclosed org-agenda-show-log) |
| 4446 | (org-agenda-keep-modes keep-modes) | 4463 | (org-agenda-keep-modes keep-modes) |
| 4447 | (entry buffer-file-name) | 4464 | (entry (buffer-file-name)) |
| 4448 | (org-agenda-files (list buffer-file-name)) | 4465 | (org-agenda-files (list (buffer-file-name))) |
| 4449 | (date (calendar-current-date)) | 4466 | (date (calendar-current-date)) |
| 4450 | (win (selected-window)) | 4467 | (win (selected-window)) |
| 4451 | (pos1 (point)) | 4468 | (pos1 (point)) |
| @@ -4672,9 +4689,10 @@ for a keyword. A numeric prefix directly selects the Nth keyword in | |||
| 4672 | (erase-buffer) | 4689 | (erase-buffer) |
| 4673 | (org-agenda-mode) (setq buffer-read-only nil) | 4690 | (org-agenda-mode) (setq buffer-read-only nil) |
| 4674 | (set (make-local-variable 'org-agenda-type) 'todo) | 4691 | (set (make-local-variable 'org-agenda-type) 'todo) |
| 4692 | (set (make-local-variable 'last-arg) arg) | ||
| 4675 | (set (make-local-variable 'org-todo-keywords) kwds) | 4693 | (set (make-local-variable 'org-todo-keywords) kwds) |
| 4676 | (set (make-local-variable 'org-agenda-redo-command) | 4694 | (set (make-local-variable 'org-agenda-redo-command) |
| 4677 | `(org-todo-list (or current-prefix-arg ',arg) t)) | 4695 | '(org-todo-list (or current-prefix-arg last-arg) t)) |
| 4678 | (setq files (org-agenda-files) | 4696 | (setq files (org-agenda-files) |
| 4679 | rtnall nil) | 4697 | rtnall nil) |
| 4680 | (while (setq file (pop files)) | 4698 | (while (setq file (pop files)) |
| @@ -4971,7 +4989,7 @@ date. Itt also removes lines that contain only whitespace." | |||
| 4971 | "Make the position visible." | 4989 | "Make the position visible." |
| 4972 | (if (and org-disable-agenda-to-diary ;; called from org-agenda | 4990 | (if (and org-disable-agenda-to-diary ;; called from org-agenda |
| 4973 | (stringp string) | 4991 | (stringp string) |
| 4974 | buffer-file-name) | 4992 | (buffer-file-name)) |
| 4975 | (setq string (org-modify-diary-entry-string string)))))) | 4993 | (setq string (org-modify-diary-entry-string string)))))) |
| 4976 | 4994 | ||
| 4977 | (defun org-modify-diary-entry-string (string) | 4995 | (defun org-modify-diary-entry-string (string) |
| @@ -4983,7 +5001,7 @@ date. Itt also removes lines that contain only whitespace." | |||
| 4983 | 'help-echo | 5001 | 'help-echo |
| 4984 | (format | 5002 | (format |
| 4985 | "mouse-2 or RET jump to diary file %s" | 5003 | "mouse-2 or RET jump to diary file %s" |
| 4986 | (abbreviate-file-name buffer-file-name)) | 5004 | (abbreviate-file-name (buffer-file-name))) |
| 4987 | 'org-agenda-diary-link t | 5005 | 'org-agenda-diary-link t |
| 4988 | 'org-marker (org-agenda-new-marker (point-at-bol))) | 5006 | 'org-marker (org-agenda-new-marker (point-at-bol))) |
| 4989 | string) | 5007 | string) |
| @@ -5005,7 +5023,7 @@ If the current buffer visits an agenda file, find the next one in the list. | |||
| 5005 | If the current buffer does not, find the first agenda file." | 5023 | If the current buffer does not, find the first agenda file." |
| 5006 | (interactive) | 5024 | (interactive) |
| 5007 | (let ((files (append org-agenda-files (list (car org-agenda-files)))) | 5025 | (let ((files (append org-agenda-files (list (car org-agenda-files)))) |
| 5008 | (tcf (if buffer-file-name (file-truename buffer-file-name))) | 5026 | (tcf (if (buffer-file-name) (file-truename (buffer-file-name)))) |
| 5009 | file) | 5027 | file) |
| 5010 | (unless files (error "No agenda files")) | 5028 | (unless files (error "No agenda files")) |
| 5011 | (catch 'exit | 5029 | (catch 'exit |
| @@ -5016,28 +5034,30 @@ If the current buffer does not, find the first agenda file." | |||
| 5016 | (throw 'exit t)))) | 5034 | (throw 'exit t)))) |
| 5017 | (find-file (car org-agenda-files))))) | 5035 | (find-file (car org-agenda-files))))) |
| 5018 | 5036 | ||
| 5019 | (defun org-agenda-file-to-end () | 5037 | (defun org-agenda-file-to-end (&optional file) |
| 5020 | "Move/add the current file to the end of the agenda fiole list. | 5038 | "Move/add the current file to the end of the agenda fiole list. |
| 5021 | If the file is not present in the list, append it to the list. If it is | 5039 | I the file is not present in the list, it is appended ot the list. If it is |
| 5022 | present, move it there." | 5040 | present, it is moved there." |
| 5023 | (interactive) | 5041 | (interactive) |
| 5024 | (org-agenda-file-to-front 'to-end)) | 5042 | (org-agenda-file-to-front 'to-end file)) |
| 5025 | 5043 | ||
| 5026 | (defun org-agenda-file-to-front (&optional to-end) | 5044 | (defun org-agenda-file-to-front (&optional to-end file) |
| 5027 | "Move/add the current file to the top of the agenda file list. | 5045 | "Move/add the current file to the top of the agenda file list. |
| 5028 | If the file is not present in the list, add it to the front. If it is | 5046 | If the file is not present in the list, it is added to the front. If it is |
| 5029 | present, it move it there. With optional argument TO-END, add/move to the | 5047 | present, it is moved there. With optional argument TO-END, add/move to the |
| 5030 | end of the list." | 5048 | end of the list." |
| 5031 | (interactive "P") | 5049 | (interactive "P") |
| 5032 | (let* ((file-alist (mapcar (lambda (x) | 5050 | (let ((file-alist (mapcar (lambda (x) |
| 5033 | (cons (file-truename x) x)) | 5051 | (cons (file-truename x) x)) |
| 5034 | org-agenda-files)) | 5052 | org-agenda-files)) |
| 5035 | (ctf (file-truename buffer-file-name)) | 5053 | (ctf (file-truename (buffer-file-name))) |
| 5036 | (had (assoc ctf file-alist)) | 5054 | x had) |
| 5037 | (x (or had (cons ctf (abbreviate-file-name buffer-file-name))))) | 5055 | (setq x (assoc ctf file-alist) had x) |
| 5038 | (setq file-alist (if to-end | 5056 | |
| 5039 | (append (delq x file-alist) (list x)) | 5057 | (if (not x) (setq x (cons ctf (abbreviate-file-name (buffer-file-name))))) |
| 5040 | (cons x (delq x file-alist)))) | 5058 | (if to-end |
| 5059 | (setq file-alist (append (delq x file-alist) (list x))) | ||
| 5060 | (setq file-alist (cons x (delq x file-alist)))) | ||
| 5041 | (setq org-agenda-files (mapcar 'cdr file-alist)) | 5061 | (setq org-agenda-files (mapcar 'cdr file-alist)) |
| 5042 | (let ((org-mode-hook nil) (default-major-mode 'fundamental-mode)) | 5062 | (let ((org-mode-hook nil) (default-major-mode 'fundamental-mode)) |
| 5043 | (customize-save-variable 'org-agenda-files org-agenda-files)) | 5063 | (customize-save-variable 'org-agenda-files org-agenda-files)) |
| @@ -5050,7 +5070,7 @@ end of the list." | |||
| 5050 | These are the files which are being checked for agenda entries. | 5070 | These are the files which are being checked for agenda entries. |
| 5051 | Optional argument FILE means, use this file instead of the current." | 5071 | Optional argument FILE means, use this file instead of the current." |
| 5052 | (interactive) | 5072 | (interactive) |
| 5053 | (let* ((file (or file buffer-file-name)) | 5073 | (let* ((file (or file (buffer-file-name))) |
| 5054 | (true-file (file-truename file)) | 5074 | (true-file (file-truename file)) |
| 5055 | (afile (abbreviate-file-name file)) | 5075 | (afile (abbreviate-file-name file)) |
| 5056 | (files (delq nil (mapcar | 5076 | (files (delq nil (mapcar |
| @@ -5174,9 +5194,9 @@ function from a program - use `org-agenda-get-day-entries' instead." | |||
| 5174 | (cond | 5194 | (cond |
| 5175 | ((null org-category) | 5195 | ((null org-category) |
| 5176 | (setq org-category | 5196 | (setq org-category |
| 5177 | (if buffer-file-name | 5197 | (if (buffer-file-name) |
| 5178 | (file-name-sans-extension | 5198 | (file-name-sans-extension |
| 5179 | (file-name-nondirectory buffer-file-name)) | 5199 | (file-name-nondirectory (buffer-file-name))) |
| 5180 | "???"))) | 5200 | "???"))) |
| 5181 | ((symbolp org-category) (symbol-name org-category)) | 5201 | ((symbolp org-category) (symbol-name org-category)) |
| 5182 | (t org-category)) | 5202 | (t org-category)) |
| @@ -5265,6 +5285,27 @@ the documentation of `org-diary'." | |||
| 5265 | (throw 'exit t))) | 5285 | (throw 'exit t))) |
| 5266 | nil))) | 5286 | nil))) |
| 5267 | 5287 | ||
| 5288 | (defun org-get-tags-at (&optional pos) | ||
| 5289 | "Get a list of all headline targs applicable at POS. | ||
| 5290 | POS defaults to point. If tags are inherited, the list contains | ||
| 5291 | the targets in the same sequence as the headlines appear, i.e. | ||
| 5292 | the tags of the current headline come last." | ||
| 5293 | (interactive) | ||
| 5294 | (let (tags) | ||
| 5295 | (save-excursion | ||
| 5296 | (goto-char (or pos (point))) | ||
| 5297 | (save-match-data | ||
| 5298 | (org-back-to-heading t) | ||
| 5299 | (condition-case nil | ||
| 5300 | (while t | ||
| 5301 | (if (looking-at "[^\r\n]+?:\\([a-zA-Z_:]+\\):[ \t]*\\([\n\r]\\|\\'\\)") | ||
| 5302 | (setq tags (append (org-split-string (match-string 1) ":") tags))) | ||
| 5303 | (or org-use-tag-inheritance (error "")) | ||
| 5304 | (org-up-heading-all 1)) | ||
| 5305 | (error nil)))) | ||
| 5306 | (message "%s" tags) | ||
| 5307 | tags)) | ||
| 5308 | |||
| 5268 | (defun org-agenda-get-todos () | 5309 | (defun org-agenda-get-todos () |
| 5269 | "Return the TODO information for agenda display." | 5310 | "Return the TODO information for agenda display." |
| 5270 | (let* ((props (list 'face nil | 5311 | (let* ((props (list 'face nil |
| @@ -5273,7 +5314,7 @@ the documentation of `org-diary'." | |||
| 5273 | 'keymap org-agenda-keymap | 5314 | 'keymap org-agenda-keymap |
| 5274 | 'help-echo | 5315 | 'help-echo |
| 5275 | (format "mouse-2 or RET jump to org file %s" | 5316 | (format "mouse-2 or RET jump to org file %s" |
| 5276 | (abbreviate-file-name buffer-file-name)))) | 5317 | (abbreviate-file-name (buffer-file-name))))) |
| 5277 | (regexp (concat "[\n\r]\\*+ *\\(" | 5318 | (regexp (concat "[\n\r]\\*+ *\\(" |
| 5278 | (if org-select-this-todo-keyword | 5319 | (if org-select-this-todo-keyword |
| 5279 | (concat "\\<\\(" org-select-this-todo-keyword | 5320 | (concat "\\<\\(" org-select-this-todo-keyword |
| @@ -5315,7 +5356,7 @@ the documentation of `org-diary'." | |||
| 5315 | 'keymap org-agenda-keymap | 5356 | 'keymap org-agenda-keymap |
| 5316 | 'help-echo | 5357 | 'help-echo |
| 5317 | (format "mouse-2 or RET jump to org file %s" | 5358 | (format "mouse-2 or RET jump to org file %s" |
| 5318 | (abbreviate-file-name buffer-file-name)))) | 5359 | (abbreviate-file-name (buffer-file-name))))) |
| 5319 | (regexp (regexp-quote | 5360 | (regexp (regexp-quote |
| 5320 | (substring | 5361 | (substring |
| 5321 | (format-time-string | 5362 | (format-time-string |
| @@ -5392,7 +5433,7 @@ the documentation of `org-diary'." | |||
| 5392 | 'keymap org-agenda-keymap | 5433 | 'keymap org-agenda-keymap |
| 5393 | 'help-echo | 5434 | 'help-echo |
| 5394 | (format "mouse-2 or RET jump to org file %s" | 5435 | (format "mouse-2 or RET jump to org file %s" |
| 5395 | (abbreviate-file-name buffer-file-name)))) | 5436 | (abbreviate-file-name (buffer-file-name))))) |
| 5396 | (regexp (concat | 5437 | (regexp (concat |
| 5397 | "\\<" org-closed-string " *\\[" | 5438 | "\\<" org-closed-string " *\\[" |
| 5398 | (regexp-quote | 5439 | (regexp-quote |
| @@ -5448,7 +5489,7 @@ the documentation of `org-diary'." | |||
| 5448 | 'keymap org-agenda-keymap | 5489 | 'keymap org-agenda-keymap |
| 5449 | 'help-echo | 5490 | 'help-echo |
| 5450 | (format "mouse-2 or RET jump to org file %s" | 5491 | (format "mouse-2 or RET jump to org file %s" |
| 5451 | (abbreviate-file-name buffer-file-name)))) | 5492 | (abbreviate-file-name (buffer-file-name))))) |
| 5452 | (regexp org-deadline-time-regexp) | 5493 | (regexp org-deadline-time-regexp) |
| 5453 | (todayp (equal date (calendar-current-date))) ; DATE bound by calendar | 5494 | (todayp (equal date (calendar-current-date))) ; DATE bound by calendar |
| 5454 | (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar | 5495 | (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar |
| @@ -5510,7 +5551,7 @@ the documentation of `org-diary'." | |||
| 5510 | 'keymap org-agenda-keymap | 5551 | 'keymap org-agenda-keymap |
| 5511 | 'help-echo | 5552 | 'help-echo |
| 5512 | (format "mouse-2 or RET jump to org file %s" | 5553 | (format "mouse-2 or RET jump to org file %s" |
| 5513 | (abbreviate-file-name buffer-file-name)))) | 5554 | (abbreviate-file-name (buffer-file-name))))) |
| 5514 | (regexp org-scheduled-time-regexp) | 5555 | (regexp org-scheduled-time-regexp) |
| 5515 | (todayp (equal date (calendar-current-date))) ; DATE bound by calendar | 5556 | (todayp (equal date (calendar-current-date))) ; DATE bound by calendar |
| 5516 | (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar | 5557 | (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar |
| @@ -5559,7 +5600,7 @@ the documentation of `org-diary'." | |||
| 5559 | 'keymap org-agenda-keymap | 5600 | 'keymap org-agenda-keymap |
| 5560 | 'help-echo | 5601 | 'help-echo |
| 5561 | (format "mouse-2 or RET jump to org file %s" | 5602 | (format "mouse-2 or RET jump to org file %s" |
| 5562 | (abbreviate-file-name buffer-file-name)))) | 5603 | (abbreviate-file-name (buffer-file-name))))) |
| 5563 | (regexp org-tr-regexp) | 5604 | (regexp org-tr-regexp) |
| 5564 | (d0 (calendar-absolute-from-gregorian date)) | 5605 | (d0 (calendar-absolute-from-gregorian date)) |
| 5565 | marker hdmarker ee txt d1 d2 s1 s2 timestr category tags) | 5606 | marker hdmarker ee txt d1 d2 s1 s2 timestr category tags) |
| @@ -5631,9 +5672,10 @@ After a match, the following groups carry important information: | |||
| 5631 | (defvar org-prefix-has-time nil | 5672 | (defvar org-prefix-has-time nil |
| 5632 | "A flag, set by `org-compile-prefix-format'. | 5673 | "A flag, set by `org-compile-prefix-format'. |
| 5633 | The flag is set if the currently compiled format contains a `%t'.") | 5674 | The flag is set if the currently compiled format contains a `%t'.") |
| 5675 | (defvar org-prefix-has-tag nil | ||
| 5676 | "A flag, set by `org-compile-prefix-format'. | ||
| 5677 | The flag is set if the currently compiled format contains a `%T'.") | ||
| 5634 | 5678 | ||
| 5635 | (defvar time) ;Needed for the eval of the prefix format. | ||
| 5636 | (defvar tag) ;Presumably, same thing as above. | ||
| 5637 | (defun org-format-agenda-item (extra txt &optional category tags dotime noprefix) | 5679 | (defun org-format-agenda-item (extra txt &optional category tags dotime noprefix) |
| 5638 | "Format TXT to be inserted into the agenda buffer. | 5680 | "Format TXT to be inserted into the agenda buffer. |
| 5639 | In particular, it adds the prefix and corresponding text properties. EXTRA | 5681 | In particular, it adds the prefix and corresponding text properties. EXTRA |
| @@ -5651,9 +5693,9 @@ only the correctly processes TXT should be returned - this is used by | |||
| 5651 | (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt))) | 5693 | (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt))) |
| 5652 | (let* ((category (or category | 5694 | (let* ((category (or category |
| 5653 | org-category | 5695 | org-category |
| 5654 | (if buffer-file-name | 5696 | (if (buffer-file-name) |
| 5655 | (file-name-sans-extension | 5697 | (file-name-sans-extension |
| 5656 | (file-name-nondirectory buffer-file-name)) | 5698 | (file-name-nondirectory (buffer-file-name))) |
| 5657 | ""))) | 5699 | ""))) |
| 5658 | (tag (or (nth (1- (length tags)) tags) "")) | 5700 | (tag (or (nth (1- (length tags)) tags) "")) |
| 5659 | time ;; needed for the eval of the prefix format | 5701 | time ;; needed for the eval of the prefix format |
| @@ -5681,6 +5723,12 @@ only the correctly processes TXT should be returned - this is used by | |||
| 5681 | (if s1 (setq s1 (org-get-time-of-day s1 'string))) | 5723 | (if s1 (setq s1 (org-get-time-of-day s1 'string))) |
| 5682 | (if s2 (setq s2 (org-get-time-of-day s2 'string)))) | 5724 | (if s2 (setq s2 (org-get-time-of-day s2 'string)))) |
| 5683 | 5725 | ||
| 5726 | (when (and (or (eq org-agenda-remove-tags-when-in-prefix t) | ||
| 5727 | (and org-agenda-remove-tags-when-in-prefix | ||
| 5728 | org-prefix-has-tag)) | ||
| 5729 | (string-match ":[a-zA-Z_:]+:[ \t]*$" txt)) | ||
| 5730 | (setq txt (replace-match "" t t txt))) | ||
| 5731 | |||
| 5684 | ;; Create the final string | 5732 | ;; Create the final string |
| 5685 | (if noprefix | 5733 | (if noprefix |
| 5686 | (setq rtn txt) | 5734 | (setq rtn txt) |
| @@ -5738,7 +5786,7 @@ only the correctly processes TXT should be returned - this is used by | |||
| 5738 | "Compile the prefix format into a Lisp form that can be evaluated. | 5786 | "Compile the prefix format into a Lisp form that can be evaluated. |
| 5739 | The resulting form is returned and stored in the variable | 5787 | The resulting form is returned and stored in the variable |
| 5740 | `org-prefix-format-compiled'." | 5788 | `org-prefix-format-compiled'." |
| 5741 | (setq org-prefix-has-time nil) | 5789 | (setq org-prefix-has-time nil org-prefix-has-tag nil) |
| 5742 | (let ((start 0) varform vars var (s format)e c f opt) | 5790 | (let ((start 0) varform vars var (s format)e c f opt) |
| 5743 | (while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cts]\\)" | 5791 | (while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cts]\\)" |
| 5744 | s start) | 5792 | s start) |
| @@ -5749,6 +5797,7 @@ The resulting form is returned and stored in the variable | |||
| 5749 | opt (match-beginning 1) | 5797 | opt (match-beginning 1) |
| 5750 | start (1+ (match-beginning 0))) | 5798 | start (1+ (match-beginning 0))) |
| 5751 | (if (equal var 'time) (setq org-prefix-has-time t)) | 5799 | (if (equal var 'time) (setq org-prefix-has-time t)) |
| 5800 | (if (equal var 'tag) (setq org-prefix-has-tag t)) | ||
| 5752 | (setq f (concat "%" (match-string 2 s) "s")) | 5801 | (setq f (concat "%" (match-string 2 s) "s")) |
| 5753 | (if opt | 5802 | (if opt |
| 5754 | (setq varform | 5803 | (setq varform |
| @@ -5783,7 +5832,7 @@ HH:MM." | |||
| 5783 | (string-to-number (match-string 3 s)) | 5832 | (string-to-number (match-string 3 s)) |
| 5784 | 0))) | 5833 | 0))) |
| 5785 | (t1 (concat " " | 5834 | (t1 (concat " " |
| 5786 | (if (< t0 100) "0" "") (if (< t0 10) "0" "") | 5835 | (if (< t0 100) "0" "") (if (< t0 10) "0" "") |
| 5787 | (int-to-string t0)))) | 5836 | (int-to-string t0)))) |
| 5788 | (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0))))) | 5837 | (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0))))) |
| 5789 | 5838 | ||
| @@ -5816,9 +5865,6 @@ HH:MM." | |||
| 5816 | ((< tb ta) +1) | 5865 | ((< tb ta) +1) |
| 5817 | (t nil)))) | 5866 | (t nil)))) |
| 5818 | 5867 | ||
| 5819 | (defvar time-up) (defvar time-down) | ||
| 5820 | (defvar priority-up) (defvar priority-down) | ||
| 5821 | (defvar category-up) (defvar category-down) (defvar category-keep) | ||
| 5822 | (defun org-entries-lessp (a b) | 5868 | (defun org-entries-lessp (a b) |
| 5823 | "Predicate for sorting agenda entries." | 5869 | "Predicate for sorting agenda entries." |
| 5824 | ;; The following variables will be used when the form is evaluated. | 5870 | ;; The following variables will be used when the form is evaluated. |
| @@ -6260,7 +6306,7 @@ d are included in the output." | |||
| 6260 | 'keymap org-agenda-keymap | 6306 | 'keymap org-agenda-keymap |
| 6261 | 'help-echo | 6307 | 'help-echo |
| 6262 | (format "mouse-2 or RET jump to org file %s" | 6308 | (format "mouse-2 or RET jump to org file %s" |
| 6263 | (abbreviate-file-name buffer-file-name)))) | 6309 | (abbreviate-file-name (buffer-file-name))))) |
| 6264 | lspos | 6310 | lspos |
| 6265 | tags tags-list tags-alist (llast 0) rtn level category i txt | 6311 | tags tags-list tags-alist (llast 0) rtn level category i txt |
| 6266 | todo marker) | 6312 | todo marker) |
| @@ -6551,7 +6597,10 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file." | |||
| 6551 | (skip-chars-backward | 6597 | (skip-chars-backward |
| 6552 | (concat (if org-allow-space-in-links "^" "^ ") | 6598 | (concat (if org-allow-space-in-links "^" "^ ") |
| 6553 | org-non-link-chars)) | 6599 | org-non-link-chars)) |
| 6554 | (when (looking-at org-link-regexp) | 6600 | (when (or (looking-at org-link-regexp) |
| 6601 | (and (re-search-forward org-link-regexp (point-at-eol) t) | ||
| 6602 | (<= (match-beginning 0) pos) | ||
| 6603 | (>= (match-end 0) pos))) | ||
| 6555 | (setq type (match-string 1) | 6604 | (setq type (match-string 1) |
| 6556 | path (match-string 2)) | 6605 | path (match-string 2)) |
| 6557 | (throw 'match t))) | 6606 | (throw 'match t))) |
| @@ -6589,7 +6638,7 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file." | |||
| 6589 | (cond | 6638 | (cond |
| 6590 | 6639 | ||
| 6591 | ((string= type "tags") | 6640 | ((string= type "tags") |
| 6592 | (org-tags-view path in-emacs)) | 6641 | (org-tags-view in-emacs path)) |
| 6593 | ((string= type "camel") | 6642 | ((string= type "camel") |
| 6594 | (org-link-search | 6643 | (org-link-search |
| 6595 | path | 6644 | path |
| @@ -6862,7 +6911,7 @@ openen in emacs. | |||
| 6862 | If the file does not exist, an error is thrown." | 6911 | If the file does not exist, an error is thrown." |
| 6863 | (setq in-emacs (or in-emacs line search)) | 6912 | (setq in-emacs (or in-emacs line search)) |
| 6864 | (let* ((file (if (equal path "") | 6913 | (let* ((file (if (equal path "") |
| 6865 | buffer-file-name | 6914 | (buffer-file-name) |
| 6866 | (convert-standard-filename (org-expand-file-name path)))) | 6915 | (convert-standard-filename (org-expand-file-name path)))) |
| 6867 | (dfile (downcase file)) | 6916 | (dfile (downcase file)) |
| 6868 | ext cmd apps) | 6917 | ext cmd apps) |
| @@ -6893,7 +6942,7 @@ If the file does not exist, an error is thrown." | |||
| 6893 | (shell-command (concat cmd " &")))) | 6942 | (shell-command (concat cmd " &")))) |
| 6894 | ((or (stringp cmd) | 6943 | ((or (stringp cmd) |
| 6895 | (eq cmd 'emacs)) | 6944 | (eq cmd 'emacs)) |
| 6896 | (unless (equal (file-truename file) (file-truename buffer-file-name)) | 6945 | (unless (equal (file-truename file) (file-truename (buffer-file-name))) |
| 6897 | (funcall (cdr (assq 'file org-link-frame-setup)) file)) | 6946 | (funcall (cdr (assq 'file org-link-frame-setup)) file)) |
| 6898 | (if line (goto-line line) | 6947 | (if line (goto-line line) |
| 6899 | (if search (org-link-search search)))) | 6948 | (if search (org-link-search search)))) |
| @@ -6956,7 +7005,7 @@ For file links, arg negates `org-context-in-file-links'." | |||
| 6956 | (save-excursion | 7005 | (save-excursion |
| 6957 | (vm-select-folder-buffer) | 7006 | (vm-select-folder-buffer) |
| 6958 | (let* ((message (car vm-message-pointer)) | 7007 | (let* ((message (car vm-message-pointer)) |
| 6959 | (folder buffer-file-name) | 7008 | (folder (buffer-file-name)) |
| 6960 | (subject (vm-su-subject message)) | 7009 | (subject (vm-su-subject message)) |
| 6961 | (author (vm-su-full-name message)) | 7010 | (author (vm-su-full-name message)) |
| 6962 | (message-id (vm-su-message-id message))) | 7011 | (message-id (vm-su-message-id message))) |
| @@ -6987,7 +7036,7 @@ For file links, arg negates `org-context-in-file-links'." | |||
| 6987 | (save-excursion | 7036 | (save-excursion |
| 6988 | (save-restriction | 7037 | (save-restriction |
| 6989 | (rmail-narrow-to-non-pruned-header) | 7038 | (rmail-narrow-to-non-pruned-header) |
| 6990 | (let ((folder buffer-file-name) | 7039 | (let ((folder (buffer-file-name)) |
| 6991 | (message-id (mail-fetch-field "message-id")) | 7040 | (message-id (mail-fetch-field "message-id")) |
| 6992 | (author (mail-fetch-field "from")) | 7041 | (author (mail-fetch-field "from")) |
| 6993 | (subject (mail-fetch-field "subject"))) | 7042 | (subject (mail-fetch-field "subject"))) |
| @@ -7041,7 +7090,7 @@ For file links, arg negates `org-context-in-file-links'." | |||
| 7041 | ((eq major-mode 'org-mode) | 7090 | ((eq major-mode 'org-mode) |
| 7042 | ;; Just link to current headline | 7091 | ;; Just link to current headline |
| 7043 | (setq cpltxt (concat "file:" | 7092 | (setq cpltxt (concat "file:" |
| 7044 | (abbreviate-file-name buffer-file-name))) | 7093 | (abbreviate-file-name (buffer-file-name)))) |
| 7045 | ;; Add a context search string | 7094 | ;; Add a context search string |
| 7046 | (when (org-xor org-context-in-file-links arg) | 7095 | (when (org-xor org-context-in-file-links arg) |
| 7047 | (if (save-excursion | 7096 | (if (save-excursion |
| @@ -7059,10 +7108,10 @@ For file links, arg negates `org-context-in-file-links'." | |||
| 7059 | ))))) | 7108 | ))))) |
| 7060 | (setq link (org-make-link cpltxt))) | 7109 | (setq link (org-make-link cpltxt))) |
| 7061 | 7110 | ||
| 7062 | (buffer-file-name | 7111 | ((buffer-file-name) |
| 7063 | ;; Just link to this file here. | 7112 | ;; Just link to this file here. |
| 7064 | (setq cpltxt (concat "file:" | 7113 | (setq cpltxt (concat "file:" |
| 7065 | (abbreviate-file-name buffer-file-name))) | 7114 | (abbreviate-file-name (buffer-file-name)))) |
| 7066 | ;; Add a context string | 7115 | ;; Add a context string |
| 7067 | (when (org-xor org-context-in-file-links arg) | 7116 | (when (org-xor org-context-in-file-links arg) |
| 7068 | (setq cpltxt | 7117 | (setq cpltxt |
| @@ -7197,7 +7246,7 @@ is in the current directory or below." | |||
| 7197 | (case-fold-search nil) | 7246 | (case-fold-search nil) |
| 7198 | (search (match-string 2 link))) | 7247 | (search (match-string 2 link))) |
| 7199 | (when (save-match-data | 7248 | (when (save-match-data |
| 7200 | (equal (file-truename buffer-file-name) | 7249 | (equal (file-truename (buffer-file-name)) |
| 7201 | (file-truename path))) | 7250 | (file-truename path))) |
| 7202 | (if (save-match-data | 7251 | (if (save-match-data |
| 7203 | (string-match (concat "^" org-camel-regexp "$") search)) | 7252 | (string-match (concat "^" org-camel-regexp "$") search)) |
| @@ -7356,7 +7405,7 @@ See also the variable `org-reverse-note-order'." | |||
| 7356 | (let ((all org-reverse-note-order) | 7405 | (let ((all org-reverse-note-order) |
| 7357 | entry) | 7406 | entry) |
| 7358 | (while (setq entry (pop all)) | 7407 | (while (setq entry (pop all)) |
| 7359 | (if (string-match (car entry) buffer-file-name) | 7408 | (if (string-match (car entry) (buffer-file-name)) |
| 7360 | (throw 'exit (cdr entry)))) | 7409 | (throw 'exit (cdr entry)))) |
| 7361 | nil))))) | 7410 | nil))))) |
| 7362 | 7411 | ||
| @@ -10010,7 +10059,7 @@ underlined headlines. The default is 3." | |||
| 10010 | (level 0) line txt | 10059 | (level 0) line txt |
| 10011 | (umax nil) | 10060 | (umax nil) |
| 10012 | (case-fold-search nil) | 10061 | (case-fold-search nil) |
| 10013 | (filename (concat (file-name-sans-extension buffer-file-name) | 10062 | (filename (concat (file-name-sans-extension (buffer-file-name)) |
| 10014 | ".txt")) | 10063 | ".txt")) |
| 10015 | (buffer (find-file-noselect filename)) | 10064 | (buffer (find-file-noselect filename)) |
| 10016 | (levels-open (make-vector org-level-max nil)) | 10065 | (levels-open (make-vector org-level-max nil)) |
| @@ -10159,7 +10208,7 @@ underlined headlines. The default is 3." | |||
| 10159 | Also removes the first line of the buffer if it specifies a mode, | 10208 | Also removes the first line of the buffer if it specifies a mode, |
| 10160 | and all options lines." | 10209 | and all options lines." |
| 10161 | (interactive) | 10210 | (interactive) |
| 10162 | (let* ((filename (concat (file-name-sans-extension buffer-file-name) | 10211 | (let* ((filename (concat (file-name-sans-extension (buffer-file-name)) |
| 10163 | ".txt")) | 10212 | ".txt")) |
| 10164 | (buffer (find-file-noselect filename)) | 10213 | (buffer (find-file-noselect filename)) |
| 10165 | (ore (concat | 10214 | (ore (concat |
| @@ -10233,7 +10282,7 @@ Does include HTML export options as well as TODO and CATEGORY stuff." | |||
| 10233 | org-export-with-sub-superscripts | 10282 | org-export-with-sub-superscripts |
| 10234 | org-export-with-emphasize | 10283 | org-export-with-emphasize |
| 10235 | org-export-with-TeX-macros | 10284 | org-export-with-TeX-macros |
| 10236 | (file-name-nondirectory buffer-file-name) | 10285 | (file-name-nondirectory (buffer-file-name)) |
| 10237 | (if (equal org-todo-interpretation 'sequence) | 10286 | (if (equal org-todo-interpretation 'sequence) |
| 10238 | (mapconcat 'identity org-todo-keywords " ") | 10287 | (mapconcat 'identity org-todo-keywords " ") |
| 10239 | "TODO FEEDBACK VERIFY DONE") | 10288 | "TODO FEEDBACK VERIFY DONE") |
| @@ -10306,7 +10355,7 @@ The prefix ARG specifies how many levels of the outline should become | |||
| 10306 | headlines. The default is 3. Lower levels will become bulleted lists." | 10355 | headlines. The default is 3. Lower levels will become bulleted lists." |
| 10307 | (interactive "P") | 10356 | (interactive "P") |
| 10308 | (org-export-as-html arg 'hidden) | 10357 | (org-export-as-html arg 'hidden) |
| 10309 | (org-open-file buffer-file-name)) | 10358 | (org-open-file (buffer-file-name))) |
| 10310 | 10359 | ||
| 10311 | (defun org-export-as-html-batch () | 10360 | (defun org-export-as-html-batch () |
| 10312 | "Call `org-export-as-html', may be used in batch processing as | 10361 | "Call `org-export-as-html', may be used in batch processing as |
| @@ -10336,7 +10385,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 10336 | (lines (org-export-find-first-heading-line all_lines)) | 10385 | (lines (org-export-find-first-heading-line all_lines)) |
| 10337 | (level 0) (line "") (origline "") txt todo | 10386 | (level 0) (line "") (origline "") txt todo |
| 10338 | (umax nil) | 10387 | (umax nil) |
| 10339 | (filename (concat (file-name-sans-extension buffer-file-name) | 10388 | (filename (concat (file-name-sans-extension (buffer-file-name)) |
| 10340 | ".html")) | 10389 | ".html")) |
| 10341 | (buffer (find-file-noselect filename)) | 10390 | (buffer (find-file-noselect filename)) |
| 10342 | (levels-open (make-vector org-level-max nil)) | 10391 | (levels-open (make-vector org-level-max nil)) |
| @@ -10999,7 +11048,7 @@ When LEVEL is non-nil, increase section numbers on that level." | |||
| 10999 | The iCalendar file will be located in the same directory as the Org-mode | 11048 | The iCalendar file will be located in the same directory as the Org-mode |
| 11000 | file, but with extension `.ics'." | 11049 | file, but with extension `.ics'." |
| 11001 | (interactive) | 11050 | (interactive) |
| 11002 | (org-export-icalendar nil buffer-file-name)) | 11051 | (org-export-icalendar nil (buffer-file-name))) |
| 11003 | 11052 | ||
| 11004 | ;;;###autoload | 11053 | ;;;###autoload |
| 11005 | (defun org-export-icalendar-all-agenda-files () | 11054 | (defun org-export-icalendar-all-agenda-files () |
| @@ -11036,7 +11085,7 @@ file and store it under the name `org-combined-agenda-icalendar-file'." | |||
| 11036 | (set-buffer (org-get-agenda-file-buffer file)) | 11085 | (set-buffer (org-get-agenda-file-buffer file)) |
| 11037 | (setq category (or org-category | 11086 | (setq category (or org-category |
| 11038 | (file-name-sans-extension | 11087 | (file-name-sans-extension |
| 11039 | (file-name-nondirectory buffer-file-name)))) | 11088 | (file-name-nondirectory (buffer-file-name))))) |
| 11040 | (if (symbolp category) (setq category (symbol-name category))) | 11089 | (if (symbolp category) (setq category (symbol-name category))) |
| 11041 | (let ((standard-output ical-buffer)) | 11090 | (let ((standard-output ical-buffer)) |
| 11042 | (if combine | 11091 | (if combine |
| @@ -12137,27 +12186,6 @@ Show the heading too, if it is currently invisible." | |||
| 12137 | (org-invisible-p))) | 12186 | (org-invisible-p))) |
| 12138 | (org-show-hierarchy-above))) | 12187 | (org-show-hierarchy-above))) |
| 12139 | 12188 | ||
| 12140 | (defun org-get-tags-at (&optional pos) | ||
| 12141 | "Get a list of all headline targs applicable at POS. | ||
| 12142 | POS defaults to point. If tags are inherited, the list contains | ||
| 12143 | the targets in the same sequence as the headlines appear, i.e. | ||
| 12144 | the tags of the current headline come last." | ||
| 12145 | (interactive) | ||
| 12146 | (let (tags) | ||
| 12147 | (save-excursion | ||
| 12148 | (goto-char (or pos (point))) | ||
| 12149 | (save-match-data | ||
| 12150 | (org-back-to-heading t) | ||
| 12151 | (condition-case nil | ||
| 12152 | (while t | ||
| 12153 | (if (looking-at "[^\r\n]+?:\\([a-zA-Z_:]+\\):[ \t]*\\([\n\r]\\|\\'\\)") | ||
| 12154 | (setq tags (append (org-split-string (match-string 1) ":") tags))) | ||
| 12155 | (or org-use-tag-inheritance (error "")) | ||
| 12156 | (org-up-heading-all 1)) | ||
| 12157 | (error nil)))) | ||
| 12158 | (message "%s" tags) | ||
| 12159 | tags)) | ||
| 12160 | |||
| 12161 | ;;; Finish up | 12189 | ;;; Finish up |
| 12162 | 12190 | ||
| 12163 | (provide 'org) | 12191 | (provide 'org) |
| @@ -12166,4 +12194,5 @@ the tags of the current headline come last." | |||
| 12166 | 12194 | ||
| 12167 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd | 12195 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd |
| 12168 | ;;; org.el ends here | 12196 | ;;; org.el ends here |
| 12197 | |||
| 12169 | 12198 | ||
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 80f062ae3fe..db8d2c94c46 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el | |||
| @@ -913,7 +913,7 @@ This is always set to nil at the entry to `table-with-cache-buffer' before execu | |||
| 913 | "For mode line indicator") | 913 | "For mode line indicator") |
| 914 | ;; This is not a real minor-mode but placed in the minor-mode-alist | 914 | ;; This is not a real minor-mode but placed in the minor-mode-alist |
| 915 | ;; so that we can show the indicator on the mode line handy. | 915 | ;; so that we can show the indicator on the mode line handy. |
| 916 | (make-variable-buffer-local table-mode-indicator) | 916 | (make-variable-buffer-local 'table-mode-indicator) |
| 917 | (unless (assq table-mode-indicator minor-mode-alist) | 917 | (unless (assq table-mode-indicator minor-mode-alist) |
| 918 | (push '(table-mode-indicator (table-fixed-width-mode " Fixed-Table" " Table")) | 918 | (push '(table-mode-indicator (table-fixed-width-mode " Fixed-Table" " Table")) |
| 919 | minor-mode-alist)) | 919 | minor-mode-alist)) |
diff --git a/lisp/thumbs.el b/lisp/thumbs.el index 2a8f6b217d4..f4b283bf7f2 100644 --- a/lisp/thumbs.el +++ b/lisp/thumbs.el | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> | 5 | ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> |
| 6 | ;; Maintainer: FSF | ||
| 6 | ;; Keywords: Multimedia | 7 | ;; Keywords: Multimedia |
| 7 | 8 | ||
| 8 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| @@ -21,23 +22,24 @@ | |||
| 21 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | 22 | ;; along with GNU Emacs; see the file COPYING. If not, write to the |
| 22 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 23 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 23 | ;; Boston, MA 02110-1301, USA. | 24 | ;; Boston, MA 02110-1301, USA. |
| 24 | ;; | ||
| 25 | ;; Thanks: Alex Schroeder <alex@gnu.org> for maintaining the package at some time | ||
| 26 | ;; The peoples at #emacs@freenode.net for numerous help | ||
| 27 | ;; RMS for emacs and the GNU project. | ||
| 28 | ;; | ||
| 29 | 25 | ||
| 30 | ;;; Commentary: | 26 | ;;; Commentary: |
| 31 | 27 | ||
| 32 | ;; This package create two new mode: thumbs-mode and | 28 | ;; This package create two new modes: thumbs-mode and thumbs-view-image-mode. |
| 33 | ;; thumbs-view-image-mode. It is used for images browsing and viewing | 29 | ;; It is used for basic browsing and viewing of images from within Emacs. |
| 34 | ;; from within Emacs. Minimal image manipulation functions are also | 30 | ;; Minimal image manipulation functions are also available via external |
| 35 | ;; available via external programs. | 31 | ;; programs. If you want to do more complex tasks like categorise and tag |
| 32 | ;; your images, use tumme.el | ||
| 36 | ;; | 33 | ;; |
| 37 | ;; The 'convert' program from 'ImageMagick' | 34 | ;; The 'convert' program from 'ImageMagick' |
| 38 | ;; [URL:http://www.imagemagick.org/] is required. | 35 | ;; [URL:http://www.imagemagick.org/] is required. |
| 39 | ;; | 36 | ;; |
| 37 | ;; Thanks: Alex Schroeder <alex@gnu.org> for maintaining the package at some | ||
| 38 | ;; time. The peoples at #emacs@freenode.net for numerous help. RMS | ||
| 39 | ;; for emacs and the GNU project. | ||
| 40 | ;; | ||
| 40 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 41 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 42 | ;; | ||
| 41 | ;; CHANGELOG | 43 | ;; CHANGELOG |
| 42 | ;; | 44 | ;; |
| 43 | ;; This is version 2.0 | 45 | ;; This is version 2.0 |
| @@ -48,8 +50,8 @@ | |||
| 48 | ;; That should be a directory containing image files. | 50 | ;; That should be a directory containing image files. |
| 49 | ;; from dired, C-t m enter in thumbs-mode with all marked files | 51 | ;; from dired, C-t m enter in thumbs-mode with all marked files |
| 50 | ;; C-t a enter in thumbs-mode with all files in current-directory | 52 | ;; C-t a enter in thumbs-mode with all files in current-directory |
| 51 | ;; In thumbs-mode, pressing <return> on a image will bring you in image view mode | 53 | ;; In thumbs-mode, pressing <return> on a image will bring you in image view |
| 52 | ;; for that image. C-h m will give you a list of available keybinding. | 54 | ;; mode for that image. C-h m will give you a list of available keybinding. |
| 53 | 55 | ||
| 54 | ;;; History: | 56 | ;;; History: |
| 55 | ;; | 57 | ;; |
| @@ -75,13 +77,18 @@ | |||
| 75 | :type 'string | 77 | :type 'string |
| 76 | :group 'thumbs) | 78 | :group 'thumbs) |
| 77 | 79 | ||
| 78 | (defcustom thumbs-per-line 5 | 80 | (defcustom thumbs-per-line 4 |
| 79 | "*Number of thumbnails per line to show in directory." | 81 | "Number of thumbnails per line to show in directory." |
| 82 | :type 'integer | ||
| 83 | :group 'thumbs) | ||
| 84 | |||
| 85 | (defcustom thumbs-max-image-number 16 | ||
| 86 | "Maximum number of images initially displayed in thumbs buffer." | ||
| 80 | :type 'integer | 87 | :type 'integer |
| 81 | :group 'thumbs) | 88 | :group 'thumbs) |
| 82 | 89 | ||
| 83 | (defcustom thumbs-thumbsdir-max-size 50000000 | 90 | (defcustom thumbs-thumbsdir-max-size 50000000 |
| 84 | "Max size for thumbnails directory. | 91 | "Maximum size for thumbnails directory. |
| 85 | When it reaches that size (in bytes), a warning is sent." | 92 | When it reaches that size (in bytes), a warning is sent." |
| 86 | :type 'integer | 93 | :type 'integer |
| 87 | :group 'thumbs) | 94 | :group 'thumbs) |
| @@ -121,7 +128,7 @@ than `thumbs-thumbsdir-max-size'." | |||
| 121 | :group 'thumbs) | 128 | :group 'thumbs) |
| 122 | 129 | ||
| 123 | (defcustom thumbs-image-resizing-step 10 | 130 | (defcustom thumbs-image-resizing-step 10 |
| 124 | "Step by which to resize image." | 131 | "Step by which to resize image as a percentage." |
| 125 | :type 'integer | 132 | :type 'integer |
| 126 | :group 'thumbs) | 133 | :group 'thumbs) |
| 127 | 134 | ||
| @@ -146,6 +153,11 @@ this value can let another user see some of your images." | |||
| 146 | "Filename of current image.") | 153 | "Filename of current image.") |
| 147 | (make-variable-buffer-local 'thumbs-current-image-filename) | 154 | (make-variable-buffer-local 'thumbs-current-image-filename) |
| 148 | 155 | ||
| 156 | (defvar thumbs-extra-images 1 | ||
| 157 | "Counter for showing extra images in thumbs buffer.") | ||
| 158 | (make-variable-buffer-local 'thumbs-extra-images) | ||
| 159 | (put 'thumbs-extra-images 'permanent-local t) | ||
| 160 | |||
| 149 | (defvar thumbs-current-image-size nil | 161 | (defvar thumbs-current-image-size nil |
| 150 | "Size of current image.") | 162 | "Size of current image.") |
| 151 | 163 | ||
| @@ -153,10 +165,14 @@ this value can let another user see some of your images." | |||
| 153 | "Number of current image.") | 165 | "Number of current image.") |
| 154 | (make-variable-buffer-local 'thumbs-image-num) | 166 | (make-variable-buffer-local 'thumbs-image-num) |
| 155 | 167 | ||
| 168 | (defvar thumbs-buffer nil | ||
| 169 | "Name of buffer containing thumbnails associated with image.") | ||
| 170 | (make-variable-buffer-local 'thumbs-buffer) | ||
| 171 | |||
| 156 | (defvar thumbs-current-dir nil | 172 | (defvar thumbs-current-dir nil |
| 157 | "Current directory.") | 173 | "Current directory.") |
| 158 | 174 | ||
| 159 | (defvar thumbs-markedL nil | 175 | (defvar thumbs-marked-list nil |
| 160 | "List of marked files.") | 176 | "List of marked files.") |
| 161 | 177 | ||
| 162 | (defalias 'thumbs-gensym | 178 | (defalias 'thumbs-gensym |
| @@ -199,21 +215,21 @@ Create the thumbnails directory if it does not exist." | |||
| 199 | If the total size of all files in `thumbs-thumbsdir' is bigger than | 215 | If the total size of all files in `thumbs-thumbsdir' is bigger than |
| 200 | `thumbs-thumbsdir-max-size', files are deleted until the max size is | 216 | `thumbs-thumbsdir-max-size', files are deleted until the max size is |
| 201 | reached." | 217 | reached." |
| 202 | (let* ((filesL | 218 | (let* ((files-list |
| 203 | (sort | 219 | (sort |
| 204 | (mapcar | 220 | (mapcar |
| 205 | (lambda (f) | 221 | (lambda (f) |
| 206 | (let ((fattribsL (file-attributes f))) | 222 | (let ((fattribs-list (file-attributes f))) |
| 207 | `(,(nth 4 fattribsL) ,(nth 7 fattribsL) ,f))) | 223 | `(,(nth 4 fattribs-list) ,(nth 7 fattribs-list) ,f))) |
| 208 | (directory-files (thumbs-thumbsdir) t (image-file-name-regexp))) | 224 | (directory-files (thumbs-thumbsdir) t (image-file-name-regexp))) |
| 209 | '(lambda (l1 l2) (time-less-p (car l1) (car l2))))) | 225 | '(lambda (l1 l2) (time-less-p (car l1) (car l2))))) |
| 210 | (dirsize (apply '+ (mapcar (lambda (x) (cadr x)) filesL)))) | 226 | (dirsize (apply '+ (mapcar (lambda (x) (cadr x)) files-list)))) |
| 211 | (while (> dirsize thumbs-thumbsdir-max-size) | 227 | (while (> dirsize thumbs-thumbsdir-max-size) |
| 212 | (progn | 228 | (progn |
| 213 | (message "Deleting file %s" (cadr (cdar filesL)))) | 229 | (message "Deleting file %s" (cadr (cdar files-list)))) |
| 214 | (delete-file (cadr (cdar filesL))) | 230 | (delete-file (cadr (cdar files-list))) |
| 215 | (setq dirsize (- dirsize (car (cdar filesL)))) | 231 | (setq dirsize (- dirsize (car (cdar files-list)))) |
| 216 | (setq filesL (cdr filesL))))) | 232 | (setq files-list (cdr files-list))))) |
| 217 | 233 | ||
| 218 | ;; Check the thumbsnail directory size and clean it if necessary. | 234 | ;; Check the thumbsnail directory size and clean it if necessary. |
| 219 | (when thumbs-thumbsdir-auto-clean | 235 | (when thumbs-thumbsdir-auto-clean |
| @@ -238,75 +254,47 @@ ACTION-PREFIX is the symbol to place before the ACTION command | |||
| 238 | filein | 254 | filein |
| 239 | (or output-format "jpeg") | 255 | (or output-format "jpeg") |
| 240 | fileout))) | 256 | fileout))) |
| 241 | (shell-command command))) | 257 | (call-process shell-file-name nil nil nil "-c" command))) |
| 242 | 258 | ||
| 243 | (defun thumbs-increment-image-size-element (n d) | 259 | (defun thumbs-new-image-size (s increment) |
| 244 | "Increment number N by D percent." | 260 | "New image (a cons of width x height)." |
| 245 | (round (+ n (/ (* d n) 100)))) | 261 | (let ((d (* increment thumbs-image-resizing-step))) |
| 246 | 262 | (cons | |
| 247 | (defun thumbs-decrement-image-size-element (n d) | 263 | (round (+ (car s) (/ (* d (car s)) 100))) |
| 248 | "Decrement number N by D percent." | 264 | (round (+ (cdr s) (/ (* d (cdr s)) 100)))))) |
| 249 | (round (- n (/ (* d n) 100)))) | 265 | |
| 250 | 266 | (defun thumbs-resize-image-1 (&optional increment size) | |
| 251 | (defun thumbs-increment-image-size (s) | ||
| 252 | "Increment S (a cons of width x height)." | ||
| 253 | (cons | ||
| 254 | (thumbs-increment-image-size-element (car s) | ||
| 255 | thumbs-image-resizing-step) | ||
| 256 | (thumbs-increment-image-size-element (cdr s) | ||
| 257 | thumbs-image-resizing-step))) | ||
| 258 | |||
| 259 | (defun thumbs-decrement-image-size (s) | ||
| 260 | "Decrement S (a cons of width x height)." | ||
| 261 | (cons | ||
| 262 | (thumbs-decrement-image-size-element (car s) | ||
| 263 | thumbs-image-resizing-step) | ||
| 264 | (thumbs-decrement-image-size-element (cdr s) | ||
| 265 | thumbs-image-resizing-step))) | ||
| 266 | |||
| 267 | (defun thumbs-resize-image (&optional increment size) | ||
| 268 | "Resize image in current buffer. | 267 | "Resize image in current buffer. |
| 269 | If INCREMENT is set, make the image bigger, else smaller. | 268 | If SIZE is specified use it. Otherwise make the image larger or |
| 270 | Or, alternatively, a SIZE may be specified." | 269 | smaller according to whether INCREMENT is 1 or -1." |
| 271 | (interactive) | 270 | (let* ((buffer-read-only nil) |
| 272 | ;; cleaning of old temp file | 271 | (old thumbs-current-tmp-filename) |
| 273 | (condition-case nil | 272 | (x (or size |
| 274 | (apply 'delete-file | 273 | (thumbs-new-image-size thumbs-current-image-size increment))) |
| 275 | (directory-files | 274 | (tmp (thumbs-temp-file))) |
| 276 | (thumbs-temp-dir) t | ||
| 277 | thumbs-temp-prefix)) | ||
| 278 | (error nil)) | ||
| 279 | (let ((buffer-read-only nil) | ||
| 280 | (x (if size | ||
| 281 | size | ||
| 282 | (if increment | ||
| 283 | (thumbs-increment-image-size | ||
| 284 | thumbs-current-image-size) | ||
| 285 | (thumbs-decrement-image-size | ||
| 286 | thumbs-current-image-size)))) | ||
| 287 | (tmp (thumbs-temp-file))) | ||
| 288 | (erase-buffer) | 275 | (erase-buffer) |
| 289 | (thumbs-call-convert thumbs-current-image-filename | 276 | (thumbs-call-convert (or old thumbs-current-image-filename) |
| 290 | tmp "sample" | 277 | tmp "sample" |
| 291 | (concat (number-to-string (car x)) "x" | 278 | (concat (number-to-string (car x)) "x" |
| 292 | (number-to-string (cdr x)))) | 279 | (number-to-string (cdr x)))) |
| 293 | (thumbs-insert-image tmp 'jpeg 0) | 280 | (save-excursion |
| 281 | (thumbs-insert-image tmp 'jpeg 0)) | ||
| 294 | (setq thumbs-current-tmp-filename tmp))) | 282 | (setq thumbs-current-tmp-filename tmp))) |
| 295 | 283 | ||
| 296 | (defun thumbs-resize-interactive (width height) | 284 | (defun thumbs-resize-image (width height) |
| 297 | "Resize image interactively to specified WIDTH and HEIGHT." | 285 | "Resize image interactively to specified WIDTH and HEIGHT." |
| 298 | (interactive "nWidth: \nnHeight: ") | 286 | (interactive "nWidth: \nnHeight: ") |
| 299 | (thumbs-resize-image nil (cons width height))) | 287 | (thumbs-resize-image-1 nil (cons width height))) |
| 300 | 288 | ||
| 301 | (defun thumbs-resize-image-size-down () | 289 | (defun thumbs-shrink-image () |
| 302 | "Resize image (smaller)." | 290 | "Resize image (smaller)." |
| 303 | (interactive) | 291 | (interactive) |
| 304 | (thumbs-resize-image nil)) | 292 | (thumbs-resize-image-1 -1)) |
| 305 | 293 | ||
| 306 | (defun thumbs-resize-image-size-up () | 294 | (defun thumbs-enlarge-image () |
| 307 | "Resize image (bigger)." | 295 | "Resize image (bigger)." |
| 308 | (interactive) | 296 | (interactive) |
| 309 | (thumbs-resize-image t)) | 297 | (thumbs-resize-image-1 1)) |
| 310 | 298 | ||
| 311 | (defun thumbs-thumbname (img) | 299 | (defun thumbs-thumbname (img) |
| 312 | "Return a thumbnail name for the image IMG." | 300 | "Return a thumbnail name for the image IMG." |
| @@ -376,70 +364,81 @@ If MARKED is non-nil, the image is marked." | |||
| 376 | If MARKED is non-nil, the image is marked." | 364 | If MARKED is non-nil, the image is marked." |
| 377 | (thumbs-insert-image | 365 | (thumbs-insert-image |
| 378 | (thumbs-make-thumb img) 'jpeg thumbs-relief marked) | 366 | (thumbs-make-thumb img) 'jpeg thumbs-relief marked) |
| 379 | (put-text-property (1- (point)) (point) | 367 | (add-text-properties (1- (point)) (point) |
| 380 | 'thumb-image-file img)) | 368 | `(thumb-image-file ,img |
| 381 | 369 | help-echo ,(file-name-nondirectory img)))) | |
| 382 | (defun thumbs-do-thumbs-insertion (L) | 370 | |
| 383 | "Insert all thumbs in list L." | 371 | (defun thumbs-do-thumbs-insertion (list) |
| 384 | (let ((i 0)) | 372 | "Insert all thumbnails into thumbs buffer." |
| 385 | (dolist (img L) | 373 | (let* ((i 0) |
| 374 | (length (length list)) | ||
| 375 | (diff (- length (* thumbs-max-image-number thumbs-extra-images)))) | ||
| 376 | (nbutlast list diff) | ||
| 377 | (dolist (img list) | ||
| 386 | (thumbs-insert-thumb img | 378 | (thumbs-insert-thumb img |
| 387 | (member img thumbs-markedL)) | 379 | (member img thumbs-marked-list)) |
| 388 | (when (= 0 (mod (setq i (1+ i)) thumbs-per-line)) | 380 | (when (= 0 (mod (setq i (1+ i)) thumbs-per-line)) |
| 389 | (newline))) | 381 | (newline))) |
| 390 | (unless (bobp) (newline)))) | 382 | (unless (bobp) (newline)) |
| 383 | (if diff (message "Type + to display more images.")))) | ||
| 391 | 384 | ||
| 392 | (defun thumbs-show-thumbs-list (L &optional buffer-name same-window) | 385 | (defun thumbs-show-thumbs-list (list &optional dir same-window) |
| 393 | (unless (and (display-images-p) | 386 | (unless (and (display-images-p) |
| 394 | (image-type-available-p 'jpeg)) | 387 | (image-type-available-p 'jpeg)) |
| 395 | (error "Required image type is not supported in this Emacs session")) | 388 | (error "Required image type is not supported in this Emacs session")) |
| 396 | (funcall (if same-window 'switch-to-buffer 'pop-to-buffer) | 389 | (funcall (if same-window 'switch-to-buffer 'pop-to-buffer) |
| 397 | (or buffer-name "*THUMB-View*")) | 390 | (if dir (concat "*Thumbs: " dir) "*THUMB-View*")) |
| 398 | (let ((inhibit-read-only t)) | 391 | (let ((inhibit-read-only t)) |
| 399 | (erase-buffer) | 392 | (erase-buffer) |
| 400 | (thumbs-mode) | 393 | (thumbs-mode) |
| 401 | (thumbs-do-thumbs-insertion L) | 394 | (setq thumbs-buffer (current-buffer)) |
| 395 | (if dir (setq default-directory dir)) | ||
| 396 | (thumbs-do-thumbs-insertion list) | ||
| 402 | (goto-char (point-min)) | 397 | (goto-char (point-min)) |
| 403 | (set (make-local-variable 'thumbs-current-dir) default-directory))) | 398 | (set (make-local-variable 'thumbs-current-dir) default-directory))) |
| 404 | 399 | ||
| 405 | ;;;###autoload | 400 | ;;;###autoload |
| 406 | (defun thumbs-show-all-from-dir (dir &optional reg same-window) | 401 | (defun thumbs-show-from-dir (dir &optional reg same-window) |
| 407 | "Make a preview buffer for all images in DIR. | 402 | "Make a preview buffer for all images in DIR. |
| 408 | Optional argument REG to select file matching a regexp, | 403 | Optional argument REG to select file matching a regexp, |
| 409 | and SAME-WINDOW to show thumbs in the same window." | 404 | and SAME-WINDOW to show thumbs in the same window." |
| 410 | (interactive "DDir: ") | 405 | (interactive "DDir: ") |
| 411 | (thumbs-show-thumbs-list | 406 | (thumbs-show-thumbs-list |
| 412 | (directory-files dir t | 407 | (directory-files dir t (or reg (image-file-name-regexp))) |
| 413 | (or reg (image-file-name-regexp))) | 408 | dir same-window)) |
| 414 | (concat "*Thumbs: " dir) same-window)) | ||
| 415 | 409 | ||
| 416 | ;;;###autoload | 410 | ;;;###autoload |
| 417 | (defun thumbs-dired-show-marked () | 411 | (defun thumbs-dired-show-marked () |
| 418 | "In dired, make a thumbs buffer with all marked files." | 412 | "In dired, make a thumbs buffer with marked files." |
| 419 | (interactive) | 413 | (interactive) |
| 420 | (thumbs-show-thumbs-list (dired-get-marked-files) nil t)) | 414 | (thumbs-show-thumbs-list (dired-get-marked-files) nil t)) |
| 421 | 415 | ||
| 422 | ;;;###autoload | 416 | ;;;###autoload |
| 423 | (defun thumbs-dired-show-all () | 417 | (defun thumbs-dired-show () |
| 424 | "In dired, make a thumbs buffer with all files in current directory." | 418 | "In dired, make a thumbs buffer with all files in current directory." |
| 425 | (interactive) | 419 | (interactive) |
| 426 | (thumbs-show-all-from-dir default-directory nil t)) | 420 | (thumbs-show-from-dir default-directory nil t)) |
| 427 | 421 | ||
| 428 | ;;;###autoload | 422 | ;;;###autoload |
| 429 | (defalias 'thumbs 'thumbs-show-all-from-dir) | 423 | (defalias 'thumbs 'thumbs-show-from-dir) |
| 430 | 424 | ||
| 431 | (defun thumbs-find-image (img &optional num otherwin) | 425 | (defun thumbs-find-image (img &optional num otherwin) |
| 432 | (funcall | 426 | (let ((buffer (current-buffer))) |
| 433 | (if otherwin 'switch-to-buffer-other-window 'switch-to-buffer) | 427 | (funcall |
| 434 | (concat "*Image: " (file-name-nondirectory img) " - " | 428 | (if otherwin 'switch-to-buffer-other-window 'switch-to-buffer) |
| 435 | (number-to-string (or num 0)) "*")) | 429 | "*Image*") |
| 436 | (thumbs-view-image-mode) | 430 | (thumbs-view-image-mode) |
| 437 | (let ((inhibit-read-only t)) | 431 | (setq mode-name |
| 438 | (setq thumbs-current-image-filename img | 432 | (concat "image-view-mode: " (file-name-nondirectory img) |
| 439 | thumbs-current-tmp-filename nil | 433 | " - " (number-to-string num))) |
| 440 | thumbs-image-num (or num 0)) | 434 | (setq thumbs-buffer buffer) |
| 441 | (delete-region (point-min)(point-max)) | 435 | (let ((inhibit-read-only t)) |
| 442 | (thumbs-insert-image img (thumbs-image-type img) 0))) | 436 | (setq thumbs-current-image-filename img |
| 437 | thumbs-current-tmp-filename nil | ||
| 438 | thumbs-image-num (or num 0)) | ||
| 439 | (delete-region (point-min)(point-max)) | ||
| 440 | (save-excursion | ||
| 441 | (thumbs-insert-image img (thumbs-image-type img) 0))))) | ||
| 443 | 442 | ||
| 444 | (defun thumbs-find-image-at-point (&optional img otherwin) | 443 | (defun thumbs-find-image-at-point (&optional img otherwin) |
| 445 | "Display image IMG for thumbnail at point. | 444 | "Display image IMG for thumbnail at point. |
| @@ -484,16 +483,18 @@ Open another window." | |||
| 484 | 483 | ||
| 485 | (defun thumbs-file-alist () | 484 | (defun thumbs-file-alist () |
| 486 | "Make an alist of elements (POS . FILENAME) for all images in thumb buffer." | 485 | "Make an alist of elements (POS . FILENAME) for all images in thumb buffer." |
| 487 | (save-excursion | 486 | (with-current-buffer thumbs-buffer |
| 488 | (let (list) | 487 | (save-excursion |
| 489 | (goto-char (point-min)) | 488 | (let (list) |
| 490 | (while (not (eobp)) | 489 | (goto-char (point-min)) |
| 491 | (if (thumbs-current-image) | 490 | (while (not (eobp)) |
| 492 | (push (cons (point-marker) | 491 | (unless (= 0 (mod (point) (1+ thumbs-per-line))) |
| 493 | (thumbs-current-image)) | 492 | (if (thumbs-current-image) |
| 494 | list)) | 493 | (push (cons (point-marker) |
| 495 | (forward-char 1)) | 494 | (thumbs-current-image)) |
| 496 | list))) | 495 | list))) |
| 496 | (forward-char 1)) | ||
| 497 | (nreverse list))))) | ||
| 497 | 498 | ||
| 498 | (defun thumbs-file-list () | 499 | (defun thumbs-file-list () |
| 499 | "Make a list of file names for all images in thumb buffer." | 500 | "Make a list of file names for all images in thumb buffer." |
| @@ -509,9 +510,9 @@ Open another window." | |||
| 509 | (defun thumbs-delete-images () | 510 | (defun thumbs-delete-images () |
| 510 | "Delete the image at point (and its thumbnail) (or marked files if any)." | 511 | "Delete the image at point (and its thumbnail) (or marked files if any)." |
| 511 | (interactive) | 512 | (interactive) |
| 512 | (let ((files (or thumbs-markedL (list (thumbs-current-image))))) | 513 | (let ((files (or thumbs-marked-list (list (thumbs-current-image))))) |
| 513 | (if (yes-or-no-p (format "Really delete %d files? " (length files))) | 514 | (if (yes-or-no-p (format "Really delete %d files? " (length files))) |
| 514 | (let ((thumbs-fileL (thumbs-file-alist)) | 515 | (let ((thumbs-file-list (thumbs-file-alist)) |
| 515 | (inhibit-read-only t)) | 516 | (inhibit-read-only t)) |
| 516 | (dolist (x files) | 517 | (dolist (x files) |
| 517 | (let (failure) | 518 | (let (failure) |
| @@ -521,24 +522,24 @@ Open another window." | |||
| 521 | (delete-file (thumbs-thumbname x))) | 522 | (delete-file (thumbs-thumbname x))) |
| 522 | (file-error (setq failure t))) | 523 | (file-error (setq failure t))) |
| 523 | (unless failure | 524 | (unless failure |
| 524 | (when (rassoc x thumbs-fileL) | 525 | (when (rassoc x thumbs-file-list) |
| 525 | (goto-char (car (rassoc x thumbs-fileL))) | 526 | (goto-char (car (rassoc x thumbs-file-list))) |
| 526 | (delete-region (point) (1+ (point)))) | 527 | (delete-region (point) (1+ (point)))) |
| 527 | (setq thumbs-markedL | 528 | (setq thumbs-marked-list |
| 528 | (delq x thumbs-markedL))))))))) | 529 | (delq x thumbs-marked-list))))))))) |
| 529 | 530 | ||
| 530 | (defun thumbs-rename-images (newfile) | 531 | (defun thumbs-rename-images (newfile) |
| 531 | "Rename the image at point (and its thumbnail) (or marked files if any)." | 532 | "Rename the image at point (and its thumbnail) (or marked files if any)." |
| 532 | (interactive "FRename to file or directory: ") | 533 | (interactive "FRename to file or directory: ") |
| 533 | (let ((files (or thumbs-markedL (list (thumbs-current-image)))) | 534 | (let ((files (or thumbs-marked-list (list (thumbs-current-image)))) |
| 534 | failures) | 535 | failures) |
| 535 | (if (and (not (file-directory-p newfile)) | 536 | (if (and (not (file-directory-p newfile)) |
| 536 | thumbs-markedL) | 537 | thumbs-marked-list) |
| 537 | (if (file-exists-p newfile) | 538 | (if (file-exists-p newfile) |
| 538 | (error "Renaming marked files to file name `%s'" newfile) | 539 | (error "Renaming marked files to file name `%s'" newfile) |
| 539 | (make-directory newfile t))) | 540 | (make-directory newfile t))) |
| 540 | (if (yes-or-no-p (format "Really rename %d files? " (length files))) | 541 | (if (yes-or-no-p (format "Really rename %d files? " (length files))) |
| 541 | (let ((thumbs-fileL (thumbs-file-alist)) | 542 | (let ((thumbs-file-list (thumbs-file-alist)) |
| 542 | (inhibit-read-only t)) | 543 | (inhibit-read-only t)) |
| 543 | (dolist (file files) | 544 | (dolist (file files) |
| 544 | (let (failure) | 545 | (let (failure) |
| @@ -552,11 +553,11 @@ Open another window." | |||
| 552 | (file-error (setq failure t) | 553 | (file-error (setq failure t) |
| 553 | (push file failures))) | 554 | (push file failures))) |
| 554 | (unless failure | 555 | (unless failure |
| 555 | (when (rassoc file thumbs-fileL) | 556 | (when (rassoc file thumbs-file-list) |
| 556 | (goto-char (car (rassoc file thumbs-fileL))) | 557 | (goto-char (car (rassoc file thumbs-file-list))) |
| 557 | (delete-region (point) (1+ (point)))) | 558 | (delete-region (point) (1+ (point)))) |
| 558 | (setq thumbs-markedL | 559 | (setq thumbs-marked-list |
| 559 | (delq file thumbs-markedL))))))) | 560 | (delq file thumbs-marked-list))))))) |
| 560 | (if failures | 561 | (if failures |
| 561 | (display-warning 'file-error | 562 | (display-warning 'file-error |
| 562 | (format "Rename failures for %s into %s" | 563 | (format "Rename failures for %s into %s" |
| @@ -571,31 +572,38 @@ Open another window." | |||
| 571 | (defun thumbs-show-image-num (num) | 572 | (defun thumbs-show-image-num (num) |
| 572 | "Show the image with number NUM." | 573 | "Show the image with number NUM." |
| 573 | (let ((image-buffer (get-buffer-create "*Image*"))) | 574 | (let ((image-buffer (get-buffer-create "*Image*"))) |
| 574 | (let ((i (thumbs-current-image))) | 575 | (let ((img (cdr (nth (1- num) (thumbs-file-alist))))) |
| 575 | (with-current-buffer image-buffer | 576 | (with-current-buffer image-buffer |
| 576 | (thumbs-insert-image i (thumbs-image-type i) 0)) | 577 | (setq mode-name |
| 578 | (concat "image-view-mode: " (file-name-nondirectory img) | ||
| 579 | " - " (number-to-string num))) | ||
| 580 | (let ((inhibit-read-only t)) | ||
| 581 | (erase-buffer) | ||
| 582 | (thumbs-insert-image img (thumbs-image-type img) 0) | ||
| 583 | (goto-char (point-min)))) | ||
| 577 | (setq thumbs-image-num num | 584 | (setq thumbs-image-num num |
| 578 | thumbs-current-image-filename i)))) | 585 | thumbs-current-image-filename img)))) |
| 586 | |||
| 587 | (defun thumbs-previous-image () | ||
| 588 | "Show the previous image." | ||
| 589 | (interactive) | ||
| 590 | (let* ((i (- thumbs-image-num 1)) | ||
| 591 | (number (length (thumbs-file-alist)))) | ||
| 592 | (if (= i 0) (setq i (1- number))) | ||
| 593 | (thumbs-show-image-num i))) | ||
| 579 | 594 | ||
| 580 | (defun thumbs-next-image () | 595 | (defun thumbs-next-image () |
| 581 | "Show the next image." | 596 | "Show the next image." |
| 582 | (interactive) | 597 | (interactive) |
| 583 | (let* ((i (1+ thumbs-image-num)) | 598 | (let* ((i (1+ thumbs-image-num)) |
| 584 | (list (thumbs-file-alist)) | 599 | (number (length (thumbs-file-alist)))) |
| 585 | (l (caar list))) | 600 | (if (= i number) (setq i 1)) |
| 586 | (while (and (/= i thumbs-image-num) (not (assoc i list))) | ||
| 587 | (setq i (if (>= i l) 1 (1+ i)))) | ||
| 588 | (thumbs-show-image-num i))) | 601 | (thumbs-show-image-num i))) |
| 589 | 602 | ||
| 590 | (defun thumbs-previous-image () | 603 | (defun thumbs-display-thumbs-buffer () |
| 591 | "Show the previous image." | 604 | "Display the associated thumbs buffer." |
| 592 | (interactive) | 605 | (interactive) |
| 593 | (let* ((i (- thumbs-image-num 1)) | 606 | (display-buffer thumbs-buffer)) |
| 594 | (list (thumbs-file-alist)) | ||
| 595 | (l (caar list))) | ||
| 596 | (while (and (/= i thumbs-image-num) (not (assoc i list))) | ||
| 597 | (setq i (if (<= i 1) l (1- i)))) | ||
| 598 | (thumbs-show-image-num i))) | ||
| 599 | 607 | ||
| 600 | (defun thumbs-redraw-buffer () | 608 | (defun thumbs-redraw-buffer () |
| 601 | "Redraw the current thumbs buffer." | 609 | "Redraw the current thumbs buffer." |
| @@ -612,10 +620,11 @@ Open another window." | |||
| 612 | (let ((elt (thumbs-current-image))) | 620 | (let ((elt (thumbs-current-image))) |
| 613 | (unless elt | 621 | (unless elt |
| 614 | (error "No image here")) | 622 | (error "No image here")) |
| 615 | (push elt thumbs-markedL) | 623 | (push elt thumbs-marked-list) |
| 616 | (let ((inhibit-read-only t)) | 624 | (let ((inhibit-read-only t)) |
| 617 | (delete-char 1) | 625 | (delete-char 1) |
| 618 | (thumbs-insert-thumb elt t))) | 626 | (save-excursion |
| 627 | (thumbs-insert-thumb elt t)))) | ||
| 619 | (when (eolp) (forward-char))) | 628 | (when (eolp) (forward-char))) |
| 620 | 629 | ||
| 621 | (defun thumbs-unmark () | 630 | (defun thumbs-unmark () |
| @@ -624,32 +633,34 @@ Open another window." | |||
| 624 | (let ((elt (thumbs-current-image))) | 633 | (let ((elt (thumbs-current-image))) |
| 625 | (unless elt | 634 | (unless elt |
| 626 | (error "No image here")) | 635 | (error "No image here")) |
| 627 | (setq thumbs-markedL (delete elt thumbs-markedL)) | 636 | (setq thumbs-marked-list (delete elt thumbs-marked-list)) |
| 628 | (let ((inhibit-read-only t)) | 637 | (let ((inhibit-read-only t)) |
| 629 | (delete-char 1) | 638 | (delete-char 1) |
| 630 | (thumbs-insert-thumb elt nil))) | 639 | (save-excursion |
| 640 | (thumbs-insert-thumb elt nil)))) | ||
| 631 | (when (eolp) (forward-char))) | 641 | (when (eolp) (forward-char))) |
| 632 | 642 | ||
| 643 | |||
| 644 | ;; cleaning of old temp files | ||
| 645 | (mapc 'delete-file | ||
| 646 | (directory-files (thumbs-temp-dir) t thumbs-temp-prefix)) | ||
| 647 | |||
| 633 | ;; Image modification routines | 648 | ;; Image modification routines |
| 634 | 649 | ||
| 635 | (defun thumbs-modify-image (action &optional arg) | 650 | (defun thumbs-modify-image (action &optional arg) |
| 636 | "Call convert to do ACTION on image with argument ARG. | 651 | "Call convert to do ACTION on image with argument ARG. |
| 637 | ACTION and ARG should be a valid convert command." | 652 | ACTION and ARG should be a valid convert command." |
| 638 | (interactive "sAction: \nsValue: ") | 653 | (interactive "sAction: \nsValue: ") |
| 639 | ;; cleaning of old temp file | 654 | (let* ((buffer-read-only nil) |
| 640 | (mapc 'delete-file | 655 | (old thumbs-current-tmp-filename) |
| 641 | (directory-files | 656 | (tmp (thumbs-temp-file))) |
| 642 | (thumbs-temp-dir) | ||
| 643 | t | ||
| 644 | thumbs-temp-prefix)) | ||
| 645 | (let ((buffer-read-only nil) | ||
| 646 | (tmp (thumbs-temp-file))) | ||
| 647 | (erase-buffer) | 657 | (erase-buffer) |
| 648 | (thumbs-call-convert thumbs-current-image-filename | 658 | (thumbs-call-convert (or old thumbs-current-image-filename) |
| 649 | tmp | 659 | tmp |
| 650 | action | 660 | action |
| 651 | (or arg "")) | 661 | (or arg "")) |
| 652 | (thumbs-insert-image tmp 'jpeg 0) | 662 | (save-excursion |
| 663 | (thumbs-insert-image tmp 'jpeg 0)) | ||
| 653 | (setq thumbs-current-tmp-filename tmp))) | 664 | (setq thumbs-current-tmp-filename tmp))) |
| 654 | 665 | ||
| 655 | (defun thumbs-emboss-image (emboss) | 666 | (defun thumbs-emboss-image (emboss) |
| @@ -699,17 +710,24 @@ ACTION and ARG should be a valid convert command." | |||
| 699 | (forward-char -1)) | 710 | (forward-char -1)) |
| 700 | (thumbs-show-name)) | 711 | (thumbs-show-name)) |
| 701 | 712 | ||
| 713 | (defun thumbs-backward-line () | ||
| 714 | "Move up one line." | ||
| 715 | (interactive) | ||
| 716 | (forward-line -1) | ||
| 717 | (thumbs-show-name)) | ||
| 718 | |||
| 702 | (defun thumbs-forward-line () | 719 | (defun thumbs-forward-line () |
| 703 | "Move down one line." | 720 | "Move down one line." |
| 704 | (interactive) | 721 | (interactive) |
| 705 | (forward-line 1) | 722 | (forward-line 1) |
| 706 | (thumbs-show-name)) | 723 | (thumbs-show-name)) |
| 707 | 724 | ||
| 708 | (defun thumbs-backward-line () | 725 | (defun thumbs-show-more-images (&optional arg) |
| 709 | "Move up one line." | 726 | "Show more than `thumbs-max-image-number' images, if present." |
| 710 | (interactive) | 727 | (interactive "P") |
| 711 | (forward-line -1) | 728 | (or arg (setq arg 1)) |
| 712 | (thumbs-show-name)) | 729 | (setq thumbs-extra-images (+ thumbs-extra-images arg)) |
| 730 | (thumbs-dired-show)) | ||
| 713 | 731 | ||
| 714 | (defun thumbs-show-name () | 732 | (defun thumbs-show-name () |
| 715 | "Show the name of the current file." | 733 | "Show the name of the current file." |
| @@ -744,6 +762,7 @@ ACTION and ARG should be a valid convert command." | |||
| 744 | (define-key map [left] 'thumbs-backward-char) | 762 | (define-key map [left] 'thumbs-backward-char) |
| 745 | (define-key map [up] 'thumbs-backward-line) | 763 | (define-key map [up] 'thumbs-backward-line) |
| 746 | (define-key map [down] 'thumbs-forward-line) | 764 | (define-key map [down] 'thumbs-forward-line) |
| 765 | (define-key map "+" 'thumbs-show-more-images) | ||
| 747 | (define-key map "d" 'thumbs-dired) | 766 | (define-key map "d" 'thumbs-dired) |
| 748 | (define-key map "m" 'thumbs-mark) | 767 | (define-key map "m" 'thumbs-mark) |
| 749 | (define-key map "u" 'thumbs-unmark) | 768 | (define-key map "u" 'thumbs-unmark) |
| @@ -759,18 +778,19 @@ ACTION and ARG should be a valid convert command." | |||
| 759 | fundamental-mode "thumbs" | 778 | fundamental-mode "thumbs" |
| 760 | "Preview images in a thumbnails buffer" | 779 | "Preview images in a thumbnails buffer" |
| 761 | (setq buffer-read-only t) | 780 | (setq buffer-read-only t) |
| 762 | (set (make-local-variable 'thumbs-markedL) nil)) | 781 | (set (make-local-variable 'thumbs-marked-list) nil)) |
| 763 | 782 | ||
| 764 | (defvar thumbs-view-image-mode-map | 783 | (defvar thumbs-view-image-mode-map |
| 765 | (let ((map (make-sparse-keymap))) | 784 | (let ((map (make-sparse-keymap))) |
| 766 | (define-key map [prior] 'thumbs-previous-image) | 785 | (define-key map [prior] 'thumbs-previous-image) |
| 767 | (define-key map [next] 'thumbs-next-image) | 786 | (define-key map [next] 'thumbs-next-image) |
| 768 | (define-key map "-" 'thumbs-resize-image-size-down) | 787 | (define-key map "^" 'thumbs-display-thumbs-buffer) |
| 769 | (define-key map "+" 'thumbs-resize-image-size-up) | 788 | (define-key map "-" 'thumbs-shrink-image) |
| 789 | (define-key map "+" 'thumbs-enlarge-image) | ||
| 770 | (define-key map "<" 'thumbs-rotate-left) | 790 | (define-key map "<" 'thumbs-rotate-left) |
| 771 | (define-key map ">" 'thumbs-rotate-right) | 791 | (define-key map ">" 'thumbs-rotate-right) |
| 772 | (define-key map "e" 'thumbs-emboss-image) | 792 | (define-key map "e" 'thumbs-emboss-image) |
| 773 | (define-key map "r" 'thumbs-resize-interactive) | 793 | (define-key map "r" 'thumbs-resize-image) |
| 774 | (define-key map "s" 'thumbs-save-current-image) | 794 | (define-key map "s" 'thumbs-save-current-image) |
| 775 | (define-key map "q" 'thumbs-kill-buffer) | 795 | (define-key map "q" 'thumbs-kill-buffer) |
| 776 | (define-key map "w" 'thumbs-set-root) | 796 | (define-key map "w" 'thumbs-set-root) |
| @@ -790,7 +810,7 @@ ACTION and ARG should be a valid convert command." | |||
| 790 | (thumbs-call-setroot-command (dired-get-filename))) | 810 | (thumbs-call-setroot-command (dired-get-filename))) |
| 791 | 811 | ||
| 792 | ;; Modif to dired mode map | 812 | ;; Modif to dired mode map |
| 793 | (define-key dired-mode-map "\C-ta" 'thumbs-dired-show-all) | 813 | (define-key dired-mode-map "\C-ta" 'thumbs-dired-show) |
| 794 | (define-key dired-mode-map "\C-tm" 'thumbs-dired-show-marked) | 814 | (define-key dired-mode-map "\C-tm" 'thumbs-dired-show-marked) |
| 795 | (define-key dired-mode-map "\C-tw" 'thumbs-dired-setroot) | 815 | (define-key dired-mode-map "\C-tw" 'thumbs-dired-setroot) |
| 796 | 816 | ||
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el index e301804cf17..0729064c72b 100644 --- a/lisp/vc-rcs.el +++ b/lisp/vc-rcs.el | |||
| @@ -152,8 +152,8 @@ For a description of possible values, see `vc-check-master-templates'." | |||
| 152 | (vc-file-setprop file 'vc-checkout-model 'locking)))) | 152 | (vc-file-setprop file 'vc-checkout-model 'locking)))) |
| 153 | state) | 153 | state) |
| 154 | (if (not (vc-mistrust-permissions file)) | 154 | (if (not (vc-mistrust-permissions file)) |
| 155 | (let* ((attributes (file-attributes file)) | 155 | (let* ((attributes (file-attributes file 'string)) |
| 156 | (owner-uid (nth 2 attributes)) | 156 | (owner-name (nth 2 attributes)) |
| 157 | (permissions (nth 8 attributes))) | 157 | (permissions (nth 8 attributes))) |
| 158 | (cond ((string-match ".r-..-..-." permissions) | 158 | (cond ((string-match ".r-..-..-." permissions) |
| 159 | (vc-file-setprop file 'vc-checkout-model 'locking) | 159 | (vc-file-setprop file 'vc-checkout-model 'locking) |
| @@ -162,7 +162,7 @@ For a description of possible values, see `vc-check-master-templates'." | |||
| 162 | (if (eq (vc-checkout-model file) 'locking) | 162 | (if (eq (vc-checkout-model file) 'locking) |
| 163 | (if (file-ownership-preserved-p file) | 163 | (if (file-ownership-preserved-p file) |
| 164 | 'edited | 164 | 'edited |
| 165 | (vc-user-login-name owner-uid)) | 165 | owner-name) |
| 166 | (if (vc-rcs-workfile-is-newer file) | 166 | (if (vc-rcs-workfile-is-newer file) |
| 167 | 'edited | 167 | 'edited |
| 168 | 'up-to-date))) | 168 | 'up-to-date))) |
diff --git a/lisp/vc-sccs.el b/lisp/vc-sccs.el index 8f00e1df627..c4047d1b3ec 100644 --- a/lisp/vc-sccs.el +++ b/lisp/vc-sccs.el | |||
| @@ -122,15 +122,15 @@ For a description of possible values, see `vc-check-master-templates'." | |||
| 122 | ;; We have to be careful not to exclude files with execute bits on; | 122 | ;; We have to be careful not to exclude files with execute bits on; |
| 123 | ;; scripts can be under version control too. Also, we must ignore the | 123 | ;; scripts can be under version control too. Also, we must ignore the |
| 124 | ;; group-read and other-read bits, since paranoid users turn them off. | 124 | ;; group-read and other-read bits, since paranoid users turn them off. |
| 125 | (let* ((attributes (file-attributes file)) | 125 | (let* ((attributes (file-attributes file 'string)) |
| 126 | (owner-uid (nth 2 attributes)) | 126 | (owner-name (nth 2 attributes)) |
| 127 | (permissions (nth 8 attributes))) | 127 | (permissions (nth 8 attributes))) |
| 128 | (if (string-match ".r-..-..-." permissions) | 128 | (if (string-match ".r-..-..-." permissions) |
| 129 | 'up-to-date | 129 | 'up-to-date |
| 130 | (if (string-match ".rw..-..-." permissions) | 130 | (if (string-match ".rw..-..-." permissions) |
| 131 | (if (file-ownership-preserved-p file) | 131 | (if (file-ownership-preserved-p file) |
| 132 | 'edited | 132 | 'edited |
| 133 | (vc-user-login-name owner-uid)) | 133 | owner-name) |
| 134 | ;; Strange permissions. | 134 | ;; Strange permissions. |
| 135 | ;; Fall through to real state computation. | 135 | ;; Fall through to real state computation. |
| 136 | (vc-sccs-state file)))) | 136 | (vc-sccs-state file)))) |