diff options
Diffstat (limited to 'lisp')
38 files changed, 935 insertions, 514 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6e9c40d2cca..b3b1757b2e4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,85 @@ | |||
| 1 | 2005-12-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * log-view.el (log-view-file-re, log-view-message-re): Use shy groups. | ||
| 4 | (log-view-font-lock-keywords): Ajust subgroup numbers. | ||
| 5 | (log-view-current-tag): Don't hard code the number of subgroups. | ||
| 6 | |||
| 7 | 2005-12-20 Juri Linkov <juri@jurta.org> | ||
| 8 | |||
| 9 | * tooltip.el (tooltip): Move defgroup before define-minor-mode. | ||
| 10 | (tooltip-x-offset, tooltip-y-offset): Doc fix. | ||
| 11 | |||
| 12 | * menu-bar.el (menu-bar-menu-frame-live-and-visible-p) | ||
| 13 | (menu-bar-non-minibuffer-window-p): Instead of checking | ||
| 14 | display-multi-frame-p, use selected-frame when menu-updating-frame | ||
| 15 | is nil. | ||
| 16 | |||
| 17 | 2005-12-20 Davis Herring <herring@lanl.gov> (tiny change) | ||
| 18 | |||
| 19 | * align.el (align-rules-list): Use [ \t] instead of \s- | ||
| 20 | for column separators in text mode. | ||
| 21 | |||
| 22 | 2005-12-20 Nick Roberts <nickrob@snap.net.nz> | ||
| 23 | |||
| 24 | * help-mode.el (help-customize-variable, help-customize-face): | ||
| 25 | Don't pop help-xref-stack as help-follow no longer pushes | ||
| 26 | anything on to it. | ||
| 27 | |||
| 28 | 2005-12-20 Carsten Dominik <dominik@science.uva.nl> | ||
| 29 | |||
| 30 | * textmodes/org.el: (org-agenda-custom-commands): New option. | ||
| 31 | (org-agenda): Offer custom commands on splash screen. | ||
| 32 | (org-make-tags-matcher): Parser for Boolean logic added. | ||
| 33 | (org-agenda-set-tags): New command. | ||
| 34 | (org-agenda-menu, org-agenda-mode-map): Add `org-agenda-set-tags'. | ||
| 35 | (org-set-tags): Efficiency improvements. | ||
| 36 | (org-auto-align-tags): New option. | ||
| 37 | (org-todo, org-demote, org-promote): Realign tags. | ||
| 38 | (org-tags-completion-function): Use also "&" and "|" as separators. | ||
| 39 | (org-org-menu): Agenda commands simplified. | ||
| 40 | |||
| 41 | 2005-12-19 Luc Teirlinck <teirllm@auburn.edu> | ||
| 42 | |||
| 43 | * cus-edit.el (customize-apropos, customize-apropos-options): | ||
| 44 | Docstring changes. | ||
| 45 | |||
| 46 | * font-lock.el (font-lock): Add tags to the links in the defgroup. | ||
| 47 | |||
| 48 | 2005-12-19 Chong Yidong <cyd@stupidchicken.com> | ||
| 49 | |||
| 50 | * longlines.el (longlines-mode): Wrap while widened. | ||
| 51 | (longlines-decode-region, longlines-encode-region): Compute max | ||
| 52 | just once. | ||
| 53 | |||
| 54 | 2005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 55 | |||
| 56 | * cus-edit.el (mac): New group. | ||
| 57 | |||
| 58 | * cus-start.el (all): Add user options in macterm.c. Add test for | ||
| 59 | Mac-related built-ins. Fix test for GTK-related built-ins. | ||
| 60 | |||
| 61 | * term/mac-win.el (mac-handle-language-change) | ||
| 62 | (mac-ae-open-documents, mac-ae-get-url, mac-services-open-file) | ||
| 63 | (mac-services-open-selection, mac-services-mail-selection) | ||
| 64 | (mac-services-mail-to, mac-services-insert-text) | ||
| 65 | (mac-dispatch-apple-event): Add docstrings. | ||
| 66 | (x-get-selection, mac-select-convert-to-string): Select coding | ||
| 67 | system from `utf-16be' and `utf-16le' using `byteorder'. | ||
| 68 | |||
| 69 | 2005-12-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 70 | |||
| 71 | * subr.el (lazy-completion-table): Don't be fooled if the var holds | ||
| 72 | a "list" (lambda ...) rather than a real completion list. | ||
| 73 | |||
| 74 | * emacs-lisp/cl-extra.el (cl-macroexpand-all): Fix code-walk for | ||
| 75 | lexical-let when encountering ((lambda (...) ...) ...). | ||
| 76 | |||
| 77 | 2005-12-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 78 | |||
| 79 | * progmodes/sh-script.el (sh-mode): | ||
| 80 | * language/ethio-util.el (ethio-fidel-to-sera-mail-or-marker): | ||
| 81 | * textmodes/picture.el (picture-mode): Update docstrings. | ||
| 82 | |||
| 1 | 2005-12-17 Eli Zaretskii <eliz@gnu.org> | 83 | 2005-12-17 Eli Zaretskii <eliz@gnu.org> |
| 2 | 84 | ||
| 3 | * makefile.w32-in (autoloads, custom-deps): Warn that parts of | 85 | * makefile.w32-in (autoloads, custom-deps): Warn that parts of |
| @@ -9,8 +91,8 @@ | |||
| 9 | 91 | ||
| 10 | 2005-12-17 Chong Yidong <cyd@stupidchicken.com> | 92 | 2005-12-17 Chong Yidong <cyd@stupidchicken.com> |
| 11 | 93 | ||
| 12 | * emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Capture | 94 | * emacs-lisp/edebug.el (edebug-safe-prin1-to-string): |
| 13 | error from printing circular structures. | 95 | Capture error from printing circular structures. |
| 14 | 96 | ||
| 15 | 2005-12-17 Martin Rudalics <rudalics@gmx.at> (tiny change) | 97 | 2005-12-17 Martin Rudalics <rudalics@gmx.at> (tiny change) |
| 16 | 98 | ||
| @@ -7215,7 +7297,7 @@ | |||
| 7215 | 2005-08-26 Kim F. Storm <storm@cua.dk> | 7297 | 2005-08-26 Kim F. Storm <storm@cua.dk> |
| 7216 | 7298 | ||
| 7217 | * subr.el (version-list-<, version-list-<=, version-list-=): | 7299 | * subr.el (version-list-<, version-list-<=, version-list-=): |
| 7218 | Renamed from integer-list-*. | 7300 | Rename from integer-list-*. |
| 7219 | (version-list-not-zero): Likewise. Fix while loop. | 7301 | (version-list-not-zero): Likewise. Fix while loop. |
| 7220 | (version=): Use version-list-= instead of string-equal. | 7302 | (version=): Use version-list-= instead of string-equal. |
| 7221 | 7303 | ||
| @@ -12362,8 +12444,7 @@ | |||
| 12362 | (multiple-value-bind, multiple-value-setq, shiftf): | 12444 | (multiple-value-bind, multiple-value-setq, shiftf): |
| 12363 | Improve argument/docstring consistency. | 12445 | Improve argument/docstring consistency. |
| 12364 | 12446 | ||
| 12365 | * subr.el (focus-frame, unfocus-frame): | 12447 | * subr.el (focus-frame, unfocus-frame): Revert deletion on 2005-05-01. |
| 12366 | Revert deletion on 2005-05-01. | ||
| 12367 | 12448 | ||
| 12368 | 2005-05-22 Andre Spiegel <spiegel@gnu.org> | 12449 | 2005-05-22 Andre Spiegel <spiegel@gnu.org> |
| 12369 | 12450 | ||
| @@ -12496,8 +12577,7 @@ | |||
| 12496 | (subst-if-not, nsubst, nsubst-if, nsubst-if-not, sublis) | 12577 | (subst-if-not, nsubst, nsubst-if, nsubst-if-not, sublis) |
| 12497 | (nsublis, tree-equal): Improve argument/docstring consistency. | 12578 | (nsublis, tree-equal): Improve argument/docstring consistency. |
| 12498 | 12579 | ||
| 12499 | * subr.el (send-string, send-region): | 12580 | * subr.el (send-string, send-region): Remove obsolescence declaration. |
| 12500 | Remove obsolescence declaration. | ||
| 12501 | (window-dot, set-window-dot, read-input, show-buffer) | 12581 | (window-dot, set-window-dot, read-input, show-buffer) |
| 12502 | (eval-current-buffer, string-to-int): | 12582 | (eval-current-buffer, string-to-int): |
| 12503 | Add release number to obsolescence declarations. | 12583 | Add release number to obsolescence declarations. |
| @@ -12574,8 +12654,8 @@ | |||
| 12574 | * emacs-lisp/byte-run.el (eval-when-compile): Doc fix. | 12654 | * emacs-lisp/byte-run.el (eval-when-compile): Doc fix. |
| 12575 | 12655 | ||
| 12576 | * emacs-lisp/bytecomp.el | 12656 | * emacs-lisp/bytecomp.el |
| 12577 | (byte-compile-file-form-custom-declare-variable): Call | 12657 | (byte-compile-file-form-custom-declare-variable): |
| 12578 | byte-compile-nogroup-warn if appropriate. | 12658 | Call byte-compile-nogroup-warn if appropriate. |
| 12579 | 12659 | ||
| 12580 | * progmodes/compile.el (compilation-finish-function): Mark obsolete. | 12660 | * progmodes/compile.el (compilation-finish-function): Mark obsolete. |
| 12581 | (compilation-set-window): Don't call left-fringe-p; do it directly. | 12661 | (compilation-set-window): Don't call left-fringe-p; do it directly. |
diff --git a/lisp/align.el b/lisp/align.el index 122ce2f0f88..f63085011b7 100644 --- a/lisp/align.el +++ b/lisp/align.el | |||
| @@ -559,7 +559,7 @@ The possible settings for `align-region-separate' are: | |||
| 559 | ;; With a numeric prefix argument, or C-u, space delimited text | 559 | ;; With a numeric prefix argument, or C-u, space delimited text |
| 560 | ;; tables will be aligned. | 560 | ;; tables will be aligned. |
| 561 | (text-column | 561 | (text-column |
| 562 | (regexp . "\\(^\\|\\S-\\)\\(\\s-+\\)\\(\\S-\\|$\\)") | 562 | (regexp . "\\(^\\|\\S-\\)\\([ \t]+\\)\\(\\S-\\|$\\)") |
| 563 | (group . 2) | 563 | (group . 2) |
| 564 | (modes . align-text-modes) | 564 | (modes . align-text-modes) |
| 565 | (repeat . t) | 565 | (repeat . t) |
diff --git a/lisp/composite.el b/lisp/composite.el index 452a9cebca9..a1c84e7b22a 100644 --- a/lisp/composite.el +++ b/lisp/composite.el | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | ;;; composite.el --- support character composition | 1 | ;;; composite.el --- support character composition |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. | 3 | ;; Copyright (C) 1999, 2000 |
| 4 | ;; Licensed to the Free Software Foundation. | 4 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 5 | ;; Registration Number H14PRO021 | ||
| 5 | 6 | ||
| 6 | ;; Keywords: mule, multilingual, character composition | 7 | ;; Keywords: mule, multilingual, character composition |
| 7 | 8 | ||
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 20a023dee75..43c38e172b5 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -459,6 +459,13 @@ | |||
| 459 | :link '(custom-manual "(emacs)Windows") | 459 | :link '(custom-manual "(emacs)Windows") |
| 460 | :group 'environment) | 460 | :group 'environment) |
| 461 | 461 | ||
| 462 | (defgroup mac nil | ||
| 463 | "Mac specific features." | ||
| 464 | :link '(custom-manual "(emacs)Mac OS") | ||
| 465 | :group 'environment | ||
| 466 | :version "22.1" | ||
| 467 | :prefix "mac-") | ||
| 468 | |||
| 462 | ;;; Utilities. | 469 | ;;; Utilities. |
| 463 | 470 | ||
| 464 | (defun custom-quote (sexp) | 471 | (defun custom-quote (sexp) |
| @@ -1258,7 +1265,8 @@ If ALL is `options', include only options. | |||
| 1258 | If ALL is `faces', include only faces. | 1265 | If ALL is `faces', include only faces. |
| 1259 | If ALL is `groups', include only groups. | 1266 | If ALL is `groups', include only groups. |
| 1260 | If ALL is t (interactively, with prefix arg), include variables | 1267 | If ALL is t (interactively, with prefix arg), include variables |
| 1261 | that are not customizable options, as well as faces and groups." | 1268 | that are not customizable options, as well as faces and groups |
| 1269 | \(but we recommend using `apropos-variable' instead)." | ||
| 1262 | (interactive "sCustomize regexp: \nP") | 1270 | (interactive "sCustomize regexp: \nP") |
| 1263 | (let ((found nil)) | 1271 | (let ((found nil)) |
| 1264 | (mapatoms (lambda (symbol) | 1272 | (mapatoms (lambda (symbol) |
| @@ -1286,7 +1294,8 @@ that are not customizable options, as well as faces and groups." | |||
| 1286 | ;;;###autoload | 1294 | ;;;###autoload |
| 1287 | (defun customize-apropos-options (regexp &optional arg) | 1295 | (defun customize-apropos-options (regexp &optional arg) |
| 1288 | "Customize all loaded customizable options matching REGEXP. | 1296 | "Customize all loaded customizable options matching REGEXP. |
| 1289 | With prefix arg, include variables that are not customizable options." | 1297 | With prefix arg, include variables that are not customizable options |
| 1298 | \(but we recommend using `apropos-variable' instead)." | ||
| 1290 | (interactive "sCustomize regexp: \nP") | 1299 | (interactive "sCustomize regexp: \nP") |
| 1291 | (customize-apropos regexp (or arg 'options))) | 1300 | (customize-apropos regexp (or arg 'options))) |
| 1292 | 1301 | ||
diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 73e1dff5a44..65f9c0812fd 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el | |||
| @@ -194,6 +194,33 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of | |||
| 194 | (suggest-key-bindings keyboard (choice (const :tag "off" nil) | 194 | (suggest-key-bindings keyboard (choice (const :tag "off" nil) |
| 195 | (integer :tag "time" 2) | 195 | (integer :tag "time" 2) |
| 196 | (other :tag "on"))) | 196 | (other :tag "on"))) |
| 197 | ;; macterm.c | ||
| 198 | (mac-control-modifier mac (choice (const :tag "No modifier" nil) | ||
| 199 | (const control) (const meta) | ||
| 200 | (const alt) (const hyper) | ||
| 201 | (const super)) "22.1") | ||
| 202 | (mac-command-modifier mac (choice (const :tag "No modifier" nil) | ||
| 203 | (const control) (const meta) | ||
| 204 | (const alt) (const hyper) | ||
| 205 | (const super)) "22.1") | ||
| 206 | (mac-option-modifier mac (choice (const :tag "No modifier (work as option)" nil) | ||
| 207 | (const control) (const meta) | ||
| 208 | (const alt) (const hyper) | ||
| 209 | (const super)) "22.1") | ||
| 210 | (mac-function-modifier mac | ||
| 211 | (choice (const :tag "No modifier (work as function)" nil) | ||
| 212 | (const control) (const meta) | ||
| 213 | (const alt) (const hyper) | ||
| 214 | (const super)) "22.1") | ||
| 215 | (mac-emulate-three-button-mouse mac | ||
| 216 | (choice (const :tag "No emulation" nil) | ||
| 217 | (const :tag "Option->2, Command->3" t) | ||
| 218 | (const :tag "Command->2, Option->3" reverse)) | ||
| 219 | "22.1") | ||
| 220 | (mac-wheel-button-is-mouse-2 mac boolean "22.1") | ||
| 221 | (mac-pass-command-to-system mac boolean "22.1") | ||
| 222 | (mac-pass-control-to-system mac boolean "22.1") | ||
| 223 | (mac-allow-anti-aliasing mac boolean "22.1") | ||
| 197 | 224 | ||
| 198 | ;; This is not good news because it will use the wrong | 225 | ;; This is not good news because it will use the wrong |
| 199 | ;; version-specific directories when you upgrade. We need | 226 | ;; version-specific directories when you upgrade. We need |
| @@ -366,6 +393,8 @@ since it could result in memory overflow and make Emacs crash." | |||
| 366 | (eq system-type 'ms-dos)) | 393 | (eq system-type 'ms-dos)) |
| 367 | ((string-match "\\`w32-" (symbol-name symbol)) | 394 | ((string-match "\\`w32-" (symbol-name symbol)) |
| 368 | (eq system-type 'windows-nt)) | 395 | (eq system-type 'windows-nt)) |
| 396 | ((string-match "\\`mac-" (symbol-name symbol)) | ||
| 397 | (eq window-system 'mac)) | ||
| 369 | ((string-match "\\`x-.*gtk" (symbol-name symbol)) | 398 | ((string-match "\\`x-.*gtk" (symbol-name symbol)) |
| 370 | (featurep 'gtk)) | 399 | (featurep 'gtk)) |
| 371 | ((string-match "\\`x-" (symbol-name symbol)) | 400 | ((string-match "\\`x-" (symbol-name symbol)) |
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 4ac1a72b0d7..c5a006912df 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el | |||
| @@ -743,6 +743,11 @@ This also does some trivial optimizations to make the form prettier." | |||
| 743 | (let* ((args (cl-macroexpand-body (cdr form) env)) (p args)) | 743 | (let* ((args (cl-macroexpand-body (cdr form) env)) (p args)) |
| 744 | (while (and p (symbolp (car p))) (setq p (cddr p))) | 744 | (while (and p (symbolp (car p))) (setq p (cddr p))) |
| 745 | (if p (cl-macroexpand-all (cons 'setf args)) (cons 'setq args)))) | 745 | (if p (cl-macroexpand-all (cons 'setf args)) (cons 'setq args)))) |
| 746 | ((consp (car form)) | ||
| 747 | (cl-macroexpand-all (list* 'funcall | ||
| 748 | (list 'function (car form)) | ||
| 749 | (cdr form)) | ||
| 750 | env)) | ||
| 746 | (t (cons (car form) (cl-macroexpand-body (cdr form) env))))) | 751 | (t (cons (car form) (cl-macroexpand-body (cdr form) env))))) |
| 747 | 752 | ||
| 748 | (defun cl-macroexpand-body (body &optional env) | 753 | (defun cl-macroexpand-body (body &optional env) |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 58fdf6dd809..45feee19744 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -212,8 +212,8 @@ | |||
| 212 | ;; Define core `font-lock' group. | 212 | ;; Define core `font-lock' group. |
| 213 | (defgroup font-lock '((jit-lock custom-group)) | 213 | (defgroup font-lock '((jit-lock custom-group)) |
| 214 | "Font Lock mode text highlighting package." | 214 | "Font Lock mode text highlighting package." |
| 215 | :link '(custom-manual "(emacs)Font Lock") | 215 | :link '(custom-manual :tag "Emacs Manual" "(emacs)Font Lock") |
| 216 | :link '(custom-manual "(elisp)Font Lock Mode") | 216 | :link '(custom-manual :tag "Elisp Manual" "(elisp)Font Lock Mode") |
| 217 | :group 'faces) | 217 | :group 'faces) |
| 218 | 218 | ||
| 219 | (defgroup font-lock-faces nil | 219 | (defgroup font-lock-faces nil |
diff --git a/lisp/help-mode.el b/lisp/help-mode.el index b7cea179aea..9941f0604bd 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el | |||
| @@ -136,16 +136,12 @@ The format is (FUNCTION ARGS...).") | |||
| 136 | (define-button-type 'help-customize-variable | 136 | (define-button-type 'help-customize-variable |
| 137 | :supertype 'help-xref | 137 | :supertype 'help-xref |
| 138 | 'help-function (lambda (v) | 138 | 'help-function (lambda (v) |
| 139 | (if help-xref-stack | ||
| 140 | (pop help-xref-stack)) | ||
| 141 | (customize-variable v)) | 139 | (customize-variable v)) |
| 142 | 'help-echo (purecopy "mouse-2, RET: customize variable")) | 140 | 'help-echo (purecopy "mouse-2, RET: customize variable")) |
| 143 | 141 | ||
| 144 | (define-button-type 'help-customize-face | 142 | (define-button-type 'help-customize-face |
| 145 | :supertype 'help-xref | 143 | :supertype 'help-xref |
| 146 | 'help-function (lambda (v) | 144 | 'help-function (lambda (v) |
| 147 | (if help-xref-stack | ||
| 148 | (pop help-xref-stack)) | ||
| 149 | (customize-face v)) | 145 | (customize-face v)) |
| 150 | 'help-echo (purecopy "mouse-2, RET: customize face")) | 146 | 'help-echo (purecopy "mouse-2, RET: customize face")) |
| 151 | 147 | ||
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el index fb70b2641d0..413ad3c3183 100644 --- a/lisp/language/ethio-util.el +++ b/lisp/language/ethio-util.el | |||
| @@ -824,7 +824,7 @@ Delete the escape even it is not recognized." | |||
| 824 | 824 | ||
| 825 | ;;;###autoload | 825 | ;;;###autoload |
| 826 | (defun ethio-sera-to-fidel-mail-or-marker (&optional arg) | 826 | (defun ethio-sera-to-fidel-mail-or-marker (&optional arg) |
| 827 | "Execute ethio-sera-to-fidel-mail or ethio-sera-to-fidel-marker depending on the current major mode. | 827 | "Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode. |
| 828 | If in rmail-mode or in mail-mode, execute the former; otherwise latter." | 828 | If in rmail-mode or in mail-mode, execute the former; otherwise latter." |
| 829 | 829 | ||
| 830 | (interactive "P") | 830 | (interactive "P") |
| @@ -1214,7 +1214,7 @@ See also the descriptions of the variables | |||
| 1214 | 1214 | ||
| 1215 | ;;;###autoload | 1215 | ;;;###autoload |
| 1216 | (defun ethio-fidel-to-sera-mail-or-marker (&optional arg) | 1216 | (defun ethio-fidel-to-sera-mail-or-marker (&optional arg) |
| 1217 | "Execute ethio-fidel-to-sera-mail or ethio-fidel-to-sera-marker depending on the current major mode. | 1217 | "Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode. |
| 1218 | If in rmail-mode or in mail-mode, execute the former; otherwise latter." | 1218 | If in rmail-mode or in mail-mode, execute the former; otherwise latter." |
| 1219 | 1219 | ||
| 1220 | (interactive "P") | 1220 | (interactive "P") |
diff --git a/lisp/log-view.el b/lisp/log-view.el index 6a9464005fb..9249531129b 100644 --- a/lisp/log-view.el +++ b/lisp/log-view.el | |||
| @@ -25,11 +25,36 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Commentary: | 26 | ;;; Commentary: |
| 27 | 27 | ||
| 28 | ;; Todo: | 28 | ;; Major mode to browse revision log histories. |
| 29 | ;; Currently supports the format output by: | ||
| 30 | ;; RCS, SCCS, CVS, Subversion. | ||
| 31 | |||
| 32 | ;; Examples of log output: | ||
| 33 | |||
| 34 | ;;;; RCS/CVS: | ||
| 35 | |||
| 36 | ;; ---------------------------- | ||
| 37 | ;; revision 1.35 locked by: turlutut | ||
| 38 | ;; date: 2005-03-22 18:48:38 +0000; author: monnier; state: Exp; lines: +6 -8 | ||
| 39 | ;; (gnus-display-time-event-handler): | ||
| 40 | ;; Check display-time-timer at runtime rather than only at load time | ||
| 41 | ;; in case display-time-mode is turned off in the mean time. | ||
| 42 | ;; ---------------------------- | ||
| 43 | ;; revision 1.34 | ||
| 44 | ;; date: 2005-02-09 15:50:38 +0000; author: kfstorm; state: Exp; lines: +7 -7 | ||
| 45 | ;; branches: 1.34.2; | ||
| 46 | ;; Change release version from 21.4 to 22.1 throughout. | ||
| 47 | ;; Change development version from 21.3.50 to 22.0.50. | ||
| 48 | |||
| 49 | ;;;; SCCS: | ||
| 50 | |||
| 51 | ;;;; Subversion: | ||
| 52 | |||
| 53 | ;;; Todo: | ||
| 29 | 54 | ||
| 30 | ;; - add compatibility with cvs-log.el | ||
| 31 | ;; - add ability to modify a log-entry (via cvs-mode-admin ;-) | 55 | ;; - add ability to modify a log-entry (via cvs-mode-admin ;-) |
| 32 | ;; - remove references to cvs-* | 56 | ;; - remove references to cvs-* |
| 57 | ;; - make it easier to add support for new backends without changing the code. | ||
| 33 | 58 | ||
| 34 | ;;; Code: | 59 | ;;; Code: |
| 35 | 60 | ||
| @@ -87,17 +112,20 @@ | |||
| 87 | (defvar log-view-message-face 'log-view-message) | 112 | (defvar log-view-message-face 'log-view-message) |
| 88 | 113 | ||
| 89 | (defconst log-view-file-re | 114 | (defconst log-view-file-re |
| 90 | (concat "^\\(" | 115 | (concat "^\\(?:Working file: \\(.+\\)" ;RCS and CVS. |
| 91 | "Working file: \\(.+\\)" | 116 | "\\|SCCS/s\\.\\(.+\\):" ;SCCS. |
| 92 | "\\|SCCS/s\\.\\(.+\\):" | 117 | "\\)\n")) ;Include the \n for font-lock reasons. |
| 93 | "\\)\n")) | 118 | |
| 94 | ;; In RCS, a locked revision will look like "revision N.M\tlocked by: FOO". | 119 | (defconst log-view-message-re |
| 95 | (defconst log-view-message-re "^\\(revision \\([.0-9]+\\)\\(?:\t.*\\)?\\|r\\([0-9]+\\) | .* | .*\\|D \\([.0-9]+\\) .*\\)$") | 120 | (concat "^\\(?:revision \\([.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. |
| 121 | "\\|r\\([0-9]+\\) | .* | .*" ; Subversion. | ||
| 122 | "\\|D \\([.0-9]+\\) .*" ; SCCS. | ||
| 123 | "\\)$")) | ||
| 96 | 124 | ||
| 97 | (defconst log-view-font-lock-keywords | 125 | (defconst log-view-font-lock-keywords |
| 98 | `((,log-view-file-re | 126 | `((,log-view-file-re |
| 127 | (1 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) | ||
| 99 | (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) | 128 | (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) |
| 100 | (3 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) | ||
| 101 | (0 log-view-file-face append)) | 129 | (0 log-view-file-face append)) |
| 102 | (,log-view-message-re . log-view-message-face))) | 130 | (,log-view-message-re . log-view-message-face))) |
| 103 | (defconst log-view-font-lock-defaults | 131 | (defconst log-view-font-lock-defaults |
| @@ -158,10 +186,17 @@ | |||
| 158 | (forward-line 1) | 186 | (forward-line 1) |
| 159 | (let ((pt (point))) | 187 | (let ((pt (point))) |
| 160 | (when (re-search-backward log-view-message-re nil t) | 188 | (when (re-search-backward log-view-message-re nil t) |
| 161 | (let ((rev (or (match-string 2) (match-string 3) (match-string 4)))) | 189 | (let (rev) |
| 190 | ;; Find the subgroup that matched. | ||
| 191 | (dotimes (i (/ (match-data 'integers) 2)) | ||
| 192 | (setq rev (or rev (match-string (1+ i))))) | ||
| 162 | (unless (re-search-forward log-view-file-re pt t) | 193 | (unless (re-search-forward log-view-file-re pt t) |
| 163 | rev)))))) | 194 | rev)))))) |
| 164 | 195 | ||
| 196 | (defvar cvs-minor-current-files) | ||
| 197 | (defvar cvs-branch-prefix) | ||
| 198 | (defvar cvs-secondary-branch-prefix) | ||
| 199 | |||
| 165 | (defun log-view-minor-wrap (buf f) | 200 | (defun log-view-minor-wrap (buf f) |
| 166 | (let ((data (with-current-buffer buf | 201 | (let ((data (with-current-buffer buf |
| 167 | (cons | 202 | (cons |
diff --git a/lisp/longlines.el b/lisp/longlines.el index a3912a26ca7..dadd8a5d58f 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; longlines.el --- automatically wrap long lines | 1 | ;;; longlines.el --- automatically wrap long lines |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 5 | ;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> |
| 6 | ;; Alex Schroeder <alex@gnu.org> | 6 | ;; Alex Schroeder <alex@gnu.org> |
| @@ -111,7 +111,7 @@ are indicated with a symbol." | |||
| 111 | (add-hook 'before-revert-hook 'longlines-before-revert-hook nil t) | 111 | (add-hook 'before-revert-hook 'longlines-before-revert-hook nil t) |
| 112 | (make-local-variable 'buffer-substring-filters) | 112 | (make-local-variable 'buffer-substring-filters) |
| 113 | (set (make-local-variable 'isearch-search-fun-function) | 113 | (set (make-local-variable 'isearch-search-fun-function) |
| 114 | 'longlinges-search-function) | 114 | 'longlines-search-function) |
| 115 | (add-to-list 'buffer-substring-filters 'longlines-encode-string) | 115 | (add-to-list 'buffer-substring-filters 'longlines-encode-string) |
| 116 | (when longlines-wrap-follows-window-size | 116 | (when longlines-wrap-follows-window-size |
| 117 | (set (make-local-variable 'fill-column) | 117 | (set (make-local-variable 'fill-column) |
| @@ -127,8 +127,8 @@ are indicated with a symbol." | |||
| 127 | ;; longlines-wrap-lines that we'll never encounter from here | 127 | ;; longlines-wrap-lines that we'll never encounter from here |
| 128 | (save-restriction | 128 | (save-restriction |
| 129 | (widen) | 129 | (widen) |
| 130 | (longlines-decode-buffer)) | 130 | (longlines-decode-buffer) |
| 131 | (longlines-wrap-region (point-min) (point-max)) | 131 | (longlines-wrap-region (point-min) (point-max))) |
| 132 | (set-buffer-modified-p mod)) | 132 | (set-buffer-modified-p mod)) |
| 133 | (when (and longlines-show-hard-newlines | 133 | (when (and longlines-show-hard-newlines |
| 134 | (not longlines-showing)) | 134 | (not longlines-showing)) |
| @@ -166,7 +166,6 @@ are indicated with a symbol." | |||
| 166 | (widen) | 166 | (widen) |
| 167 | (longlines-encode-region (point-min) (point-max)))) | 167 | (longlines-encode-region (point-min) (point-max)))) |
| 168 | (remove-hook 'change-major-mode-hook 'longlines-mode-off t) | 168 | (remove-hook 'change-major-mode-hook 'longlines-mode-off t) |
| 169 | (remove-hook 'before-kill-functions 'longlines-encode-region t) | ||
| 170 | (remove-hook 'after-change-functions 'longlines-after-change-function t) | 169 | (remove-hook 'after-change-functions 'longlines-after-change-function t) |
| 171 | (remove-hook 'post-command-hook 'longlines-post-command-function t) | 170 | (remove-hook 'post-command-hook 'longlines-post-command-function t) |
| 172 | (remove-hook 'before-revert-hook 'longlines-before-revert-hook t) | 171 | (remove-hook 'before-revert-hook 'longlines-before-revert-hook t) |
| @@ -327,10 +326,11 @@ If BEG and END are nil, the point and mark are used." | |||
| 327 | (if (null beg) (setq beg (point))) | 326 | (if (null beg) (setq beg (point))) |
| 328 | (if (null end) (setq end (mark t))) | 327 | (if (null end) (setq end (mark t))) |
| 329 | (save-excursion | 328 | (save-excursion |
| 330 | (goto-char (min beg end)) | 329 | (let ((reg-max (max beg end))) |
| 331 | (while (search-forward "\n" (max beg end) t) | 330 | (goto-char (min beg end)) |
| 332 | (set-hard-newline-properties | 331 | (while (search-forward "\n" reg-max t) |
| 333 | (match-beginning 0) (match-end 0))))) | 332 | (set-hard-newline-properties |
| 333 | (match-beginning 0) (match-end 0)))))) | ||
| 334 | 334 | ||
| 335 | (defun longlines-decode-buffer () | 335 | (defun longlines-decode-buffer () |
| 336 | "Turn all newlines in the buffer into hard newlines." | 336 | "Turn all newlines in the buffer into hard newlines." |
| @@ -341,9 +341,10 @@ If BEG and END are nil, the point and mark are used." | |||
| 341 | Hard newlines are left intact. The optional argument BUFFER exists for | 341 | Hard newlines are left intact. The optional argument BUFFER exists for |
| 342 | compatibility with `format-alist', and is ignored." | 342 | compatibility with `format-alist', and is ignored." |
| 343 | (save-excursion | 343 | (save-excursion |
| 344 | (let ((mod (buffer-modified-p))) | 344 | (let ((reg-max (max beg end)) |
| 345 | (mod (buffer-modified-p))) | ||
| 345 | (goto-char (min beg end)) | 346 | (goto-char (min beg end)) |
| 346 | (while (search-forward "\n" (max (max beg end)) t) | 347 | (while (search-forward "\n" reg-max t) |
| 347 | (unless (get-text-property (match-beginning 0) 'hard) | 348 | (unless (get-text-property (match-beginning 0) 'hard) |
| 348 | (replace-match " "))) | 349 | (replace-match " "))) |
| 349 | (set-buffer-modified-p mod) | 350 | (set-buffer-modified-p mod) |
| @@ -422,7 +423,7 @@ This is called by `window-size-change-functions'." | |||
| 422 | 423 | ||
| 423 | ;; Isearch | 424 | ;; Isearch |
| 424 | 425 | ||
| 425 | (defun longlinges-search-function () | 426 | (defun longlines-search-function () |
| 426 | (cond | 427 | (cond |
| 427 | (isearch-word | 428 | (isearch-word |
| 428 | (if isearch-forward 'word-search-forward 'word-search-backward)) | 429 | (if isearch-forward 'word-search-forward 'word-search-backward)) |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 6fa8c8b0f03..afc207bc9f0 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -1418,8 +1418,7 @@ key, a click, or a menu-item")) | |||
| 1418 | (defun menu-bar-menu-frame-live-and-visible-p () | 1418 | (defun menu-bar-menu-frame-live-and-visible-p () |
| 1419 | "Return non-nil if the menu frame is alive and visible. | 1419 | "Return non-nil if the menu frame is alive and visible. |
| 1420 | The menu frame is the frame for which we are updating the menu." | 1420 | The menu frame is the frame for which we are updating the menu." |
| 1421 | (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame | 1421 | (let ((menu-frame (or menu-updating-frame (selected-frame)))) |
| 1422 | (selected-frame)))) | ||
| 1423 | (and (frame-live-p menu-frame) | 1422 | (and (frame-live-p menu-frame) |
| 1424 | (frame-visible-p menu-frame)))) | 1423 | (frame-visible-p menu-frame)))) |
| 1425 | 1424 | ||
| @@ -1428,8 +1427,7 @@ The menu frame is the frame for which we are updating the menu." | |||
| 1428 | 1427 | ||
| 1429 | See the documentation of `menu-bar-menu-frame-live-and-visible-p' | 1428 | See the documentation of `menu-bar-menu-frame-live-and-visible-p' |
| 1430 | for the definition of the menu frame." | 1429 | for the definition of the menu frame." |
| 1431 | (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame | 1430 | (let ((menu-frame (or menu-updating-frame (selected-frame)))) |
| 1432 | (selected-frame)))) | ||
| 1433 | (not (window-minibuffer-p (frame-selected-window menu-frame))))) | 1431 | (not (window-minibuffer-p (frame-selected-window menu-frame))))) |
| 1434 | 1432 | ||
| 1435 | (defun kill-this-buffer () ; for the menu bar | 1433 | (defun kill-this-buffer () ; for the menu bar |
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 33f016bb2f9..dce4b1def32 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog | |||
| @@ -1,3 +1,68 @@ | |||
| 1 | 2005-12-19 Stephen Gildea | ||
| 2 | |||
| 3 | * mh-customize.el (mh-after-commands-processed-hook): New variable. | ||
| 4 | (mh-before-commands-processed-hook): mh-folder-updated-hook, renamed. | ||
| 5 | |||
| 6 | * mh-e.el (mh-process-commands): Rename mh-folder-updated-hook | ||
| 7 | to mh-before-commands-processed-hook, call new | ||
| 8 | mh-after-commands-processed-hook. | ||
| 9 | (mh-folders-changed): New variable (for use in | ||
| 10 | mh-after-commands-processed-hook). | ||
| 11 | |||
| 12 | 2005-12-19 Bill Wohler <wohler@newt.com> | ||
| 13 | |||
| 14 | * mh-acros.el: | ||
| 15 | * mh-alias.el: | ||
| 16 | * mh-comp.el: | ||
| 17 | * mh-customize.el: | ||
| 18 | * mh-e.el: | ||
| 19 | * mh-funcs.el: | ||
| 20 | * mh-gnus.el: | ||
| 21 | * mh-identity.el: | ||
| 22 | * mh-inc.el: | ||
| 23 | * mh-index.el: | ||
| 24 | * mh-init.el: | ||
| 25 | * mh-junk.el: | ||
| 26 | * mh-mime.el: | ||
| 27 | * mh-pick.el: | ||
| 28 | * mh-print.el: | ||
| 29 | * mh-seq.el: | ||
| 30 | * mh-speed.el: | ||
| 31 | * mh-utils.el: | ||
| 32 | Follow commenting conventions. Don't use ;;; form so much, except | ||
| 33 | for headings. Precede headings with page feed. This was mostly | ||
| 34 | already done, so I made it a convention. Did not update copyright | ||
| 35 | on a couple of files since this was an insignificant change. | ||
| 36 | |||
| 37 | 2005-12-18 Bill Wohler <wohler@newt.com> | ||
| 38 | |||
| 39 | * mh-customize.el (mh-toolbar): Rename to mh-tool-bar. | ||
| 40 | (mh-tool-bar-search-function): Sync docstrings with manual. | ||
| 41 | (mh-tool-bar-customize): Replace toolbar with tool bar in | ||
| 42 | docstring. | ||
| 43 | (mh-tool-bar-letter-help): Fix manual reference. | ||
| 44 | (mh-xemacs-use-toolbar-flag): Rename to | ||
| 45 | mh-xemacs-use-tool-bar-flag. Initialize to | ||
| 46 | mh-xemacs-has-tool-bar-flag. Sync docstrings with manual. | ||
| 47 | (mh-xemacs-toolbar-position): Rename to | ||
| 48 | mh-xemacs-tool-bar-position. Initialize to nil. Drop "no tool bar" | ||
| 49 | option (redundant) and change "Same As Default Tool Bar" setting | ||
| 50 | to nil. Sync docstrings with manual. | ||
| 51 | (mh-tool-bar-define): Replace toolbar with tool-bar or tool bar | ||
| 52 | depending on context. | ||
| 53 | (mh-toolbar-init): Rename to mh-tool-bar-init. Simplified | ||
| 54 | condition for calling set-specifier. Only look at the value of | ||
| 55 | mh-xemacs-use-tool-bar-flag. | ||
| 56 | (mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync | ||
| 57 | docstrings with manual. | ||
| 58 | |||
| 59 | * mh-comp.el (mh-letter-mode): Use mh-tool-bar-init instead of | ||
| 60 | mh-toolbar-init. | ||
| 61 | |||
| 62 | * mh-e.el (mh-folder-mode): Ditto. | ||
| 63 | |||
| 64 | * mh-utils.el (mh-show-mode): Ditto. | ||
| 65 | |||
| 1 | 2005-12-15 Bill Wohler <wohler@newt.com> | 66 | 2005-12-15 Bill Wohler <wohler@newt.com> |
| 2 | 67 | ||
| 3 | * mh-e.el (mh-delete-msg): Sync docstrings with manual. | 68 | * mh-e.el (mh-delete-msg): Sync docstrings with manual. |
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el index 8136c56ca90..5523f1cf46b 100644 --- a/lisp/mh-e/mh-acros.el +++ b/lisp/mh-e/mh-acros.el | |||
| @@ -55,7 +55,7 @@ recognizes that and loads `cl' where appropriate." | |||
| 55 | `(require 'cl) | 55 | `(require 'cl) |
| 56 | `(eval-when-compile (require 'cl)))) | 56 | `(eval-when-compile (require 'cl)))) |
| 57 | 57 | ||
| 58 | ;;; Macros to generate correct code for different emacs variants | 58 | ;; Macros to generate correct code for different emacs variants |
| 59 | 59 | ||
| 60 | (defmacro mh-do-in-gnu-emacs (&rest body) | 60 | (defmacro mh-do-in-gnu-emacs (&rest body) |
| 61 | "Execute BODY if in GNU Emacs." | 61 | "Execute BODY if in GNU Emacs." |
| @@ -144,11 +144,11 @@ Emacs 22." | |||
| 144 | 144 | ||
| 145 | (provide 'mh-acros) | 145 | (provide 'mh-acros) |
| 146 | 146 | ||
| 147 | ;;; Local Variables: | 147 | ;; Local Variables: |
| 148 | ;;; no-byte-compile: t | 148 | ;; no-byte-compile: t |
| 149 | ;;; indent-tabs-mode: nil | 149 | ;; indent-tabs-mode: nil |
| 150 | ;;; sentence-end-double-space: nil | 150 | ;; sentence-end-double-space: nil |
| 151 | ;;; End: | 151 | ;; End: |
| 152 | 152 | ||
| 153 | ;; arch-tag: b383b49a-494f-4ed0-a30a-cb6d5d2da4ff | 153 | ;; arch-tag: b383b49a-494f-4ed0-a30a-cb6d5d2da4ff |
| 154 | ;;; mh-acros.el ends here | 154 | ;;; mh-acros.el ends here |
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el index 5367d2cbc18..f82a0ea24dc 100644 --- a/lisp/mh-e/mh-alias.el +++ b/lisp/mh-e/mh-alias.el | |||
| @@ -38,7 +38,10 @@ | |||
| 38 | ; completing-read-multiple. | 38 | ; completing-read-multiple. |
| 39 | (eval-when-compile (defvar mail-abbrev-syntax-table)) | 39 | (eval-when-compile (defvar mail-abbrev-syntax-table)) |
| 40 | 40 | ||
| 41 | |||
| 42 | |||
| 41 | ;;; Autoloads | 43 | ;;; Autoloads |
| 44 | |||
| 42 | (eval-when (compile load eval) | 45 | (eval-when (compile load eval) |
| 43 | (ignore-errors | 46 | (ignore-errors |
| 44 | (require 'mailabbrev) | 47 | (require 'mailabbrev) |
| @@ -71,6 +74,7 @@ listed in your `Aliasfile:' MH profile component are automatically included. | |||
| 71 | You can update the alias list manually using \\[mh-alias-reload].") | 74 | You can update the alias list manually using \\[mh-alias-reload].") |
| 72 | 75 | ||
| 73 | 76 | ||
| 77 | |||
| 74 | ;;; Alias Loading | 78 | ;;; Alias Loading |
| 75 | 79 | ||
| 76 | (defun mh-alias-tstamp (arg) | 80 | (defun mh-alias-tstamp (arg) |
| @@ -228,6 +232,7 @@ with no arguments, after the aliases have been loaded." | |||
| 228 | (mh-alias-reload))) | 232 | (mh-alias-reload))) |
| 229 | 233 | ||
| 230 | 234 | ||
| 235 | |||
| 231 | ;;; Alias Expansion | 236 | ;;; Alias Expansion |
| 232 | 237 | ||
| 233 | (defun mh-alias-ali (alias &optional user) | 238 | (defun mh-alias-ali (alias &optional user) |
| @@ -312,6 +317,7 @@ Blind aliases or users from /etc/passwd are not expanded." | |||
| 312 | (delete-region begin end) | 317 | (delete-region begin end) |
| 313 | (insert expansion))))) | 318 | (insert expansion))))) |
| 314 | 319 | ||
| 320 | |||
| 315 | ;;; Adding addresses to alias file. | 321 | ;;; Adding addresses to alias file. |
| 316 | 322 | ||
| 317 | (defun mh-alias-suggest-alias (string &optional no-comma-swap) | 323 | (defun mh-alias-suggest-alias (string &optional no-comma-swap) |
| @@ -653,10 +659,10 @@ name hint when filing messages." | |||
| 653 | 659 | ||
| 654 | (provide 'mh-alias) | 660 | (provide 'mh-alias) |
| 655 | 661 | ||
| 656 | ;;; Local Variables: | 662 | ;; Local Variables: |
| 657 | ;;; indent-tabs-mode: nil | 663 | ;; indent-tabs-mode: nil |
| 658 | ;;; sentence-end-double-space: nil | 664 | ;; sentence-end-double-space: nil |
| 659 | ;;; End: | 665 | ;; End: |
| 660 | 666 | ||
| 661 | ;;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690 | 667 | ;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690 |
| 662 | ;;; mh-alias.el ends here | 668 | ;;; mh-alias.el ends here |
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index 5cac13d265b..47999fbbeff 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el | |||
| @@ -52,7 +52,9 @@ | |||
| 52 | (defvar mh-mml-mode-default) | 52 | (defvar mh-mml-mode-default) |
| 53 | (defvar mh-identity-menu) | 53 | (defvar mh-identity-menu) |
| 54 | 54 | ||
| 55 | |||
| 55 | ;;; Autoloads | 56 | ;;; Autoloads |
| 57 | |||
| 56 | (autoload 'mail-mode-fill-paragraph "sendmail") | 58 | (autoload 'mail-mode-fill-paragraph "sendmail") |
| 57 | (autoload 'mm-handle-displayed-p "mm-decode") | 59 | (autoload 'mm-handle-displayed-p "mm-decode") |
| 58 | 60 | ||
| @@ -80,6 +82,8 @@ For Emacs 19's, the region need not be active (and typically isn't | |||
| 80 | when this function is called. Also, the hook `sc-pre-hook' is run | 82 | when this function is called. Also, the hook `sc-pre-hook' is run |
| 81 | before, and `sc-post-hook' is run after the guts of this function.") | 83 | before, and `sc-post-hook' is run after the guts of this function.") |
| 82 | 84 | ||
| 85 | |||
| 86 | |||
| 83 | ;;; Site customization (see also mh-utils.el): | 87 | ;;; Site customization (see also mh-utils.el): |
| 84 | 88 | ||
| 85 | (defvar mh-send-prog "send" | 89 | (defvar mh-send-prog "send" |
| @@ -91,6 +95,8 @@ Some sites need to change this because of a name conflict.") | |||
| 91 | This allows transaction log to be visible if -watch, -verbose or -snoop are | 95 | This allows transaction log to be visible if -watch, -verbose or -snoop are |
| 92 | used.") | 96 | used.") |
| 93 | 97 | ||
| 98 | |||
| 99 | |||
| 94 | ;;; Scan Line Formats | 100 | ;;; Scan Line Formats |
| 95 | 101 | ||
| 96 | (defvar mh-note-repl ?- | 102 | (defvar mh-note-repl ?- |
| @@ -824,7 +830,7 @@ Returns t if found, nil if not." | |||
| 824 | 830 | ||
| 825 | (put 'mh-letter-mode 'mode-class 'special) | 831 | (put 'mh-letter-mode 'mode-class 'special) |
| 826 | 832 | ||
| 827 | ;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) | 833 | ;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) |
| 828 | (eval-when-compile (defvar mh-letter-menu nil)) | 834 | (eval-when-compile (defvar mh-letter-menu nil)) |
| 829 | (easy-menu-define | 835 | (easy-menu-define |
| 830 | mh-letter-menu mh-letter-mode-map "Menu for MH-E letter mode." | 836 | mh-letter-menu mh-letter-mode-map "Menu for MH-E letter mode." |
| @@ -874,8 +880,11 @@ Returns t if found, nil if not." | |||
| 874 | mh-mh-to-mime-undo (equal mh-compose-insertion 'mh)] | 880 | mh-mh-to-mime-undo (equal mh-compose-insertion 'mh)] |
| 875 | ["Kill This Draft" mh-fully-kill-draft t])) | 881 | ["Kill This Draft" mh-fully-kill-draft t])) |
| 876 | 882 | ||
| 883 | |||
| 884 | |||
| 877 | ;;; Help Messages | 885 | ;;; Help Messages |
| 878 | ;;; Group messages logically, more or less. | 886 | |
| 887 | ;; Group messages logically, more or less. | ||
| 879 | (defvar mh-letter-mode-help-messages | 888 | (defvar mh-letter-mode-help-messages |
| 880 | '((nil | 889 | '((nil |
| 881 | "Send letter: \\[mh-send-letter]" | 890 | "Send letter: \\[mh-send-letter]" |
| @@ -994,7 +1003,7 @@ When a message is composed, the hooks `text-mode-hook' and | |||
| 994 | ;; Enable undo since a show-mode buffer might have been reused. | 1003 | ;; Enable undo since a show-mode buffer might have been reused. |
| 995 | (buffer-enable-undo) | 1004 | (buffer-enable-undo) |
| 996 | (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map) | 1005 | (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map) |
| 997 | (mh-funcall-if-exists mh-toolbar-init :letter) | 1006 | (mh-funcall-if-exists mh-tool-bar-init :letter) |
| 998 | (make-local-variable 'font-lock-defaults) | 1007 | (make-local-variable 'font-lock-defaults) |
| 999 | (cond | 1008 | (cond |
| 1000 | ((or (equal mh-highlight-citation-style 'font-lock) | 1009 | ((or (equal mh-highlight-citation-style 'font-lock) |
| @@ -2026,8 +2035,11 @@ Otherwise return the empty string." | |||
| 2026 | (goto-char (point-max)) | 2035 | (goto-char (point-max)) |
| 2027 | (mh-letter-next-header-field))) | 2036 | (mh-letter-next-header-field))) |
| 2028 | 2037 | ||
| 2029 | ;;; Build the letter-mode keymap: | 2038 | |
| 2030 | ;;; If this changes, modify mh-letter-mode-help-messages accordingly, above. | 2039 | |
| 2040 | ;;; Build mh-letter-mode keymap | ||
| 2041 | |||
| 2042 | ;; If this changes, modify mh-letter-mode-help-messages accordingly, above. | ||
| 2031 | (gnus-define-keys mh-letter-mode-map | 2043 | (gnus-define-keys mh-letter-mode-map |
| 2032 | " " mh-letter-complete-or-space | 2044 | " " mh-letter-complete-or-space |
| 2033 | "," mh-letter-confirm-address | 2045 | "," mh-letter-confirm-address |
| @@ -2089,10 +2101,10 @@ Otherwise return the empty string." | |||
| 2089 | 2101 | ||
| 2090 | (provide 'mh-comp) | 2102 | (provide 'mh-comp) |
| 2091 | 2103 | ||
| 2092 | ;;; Local Variables: | 2104 | ;; Local Variables: |
| 2093 | ;;; indent-tabs-mode: nil | 2105 | ;; indent-tabs-mode: nil |
| 2094 | ;;; sentence-end-double-space: nil | 2106 | ;; sentence-end-double-space: nil |
| 2095 | ;;; End: | 2107 | ;; End: |
| 2096 | 2108 | ||
| 2097 | ;;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34 | 2109 | ;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34 |
| 2098 | ;;; mh-comp.el ends here | 2110 | ;;; mh-comp.el ends here |
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el index e07603f69ba..0e22e38a742 100644 --- a/lisp/mh-e/mh-customize.el +++ b/lisp/mh-e/mh-customize.el | |||
| @@ -83,6 +83,11 @@ | |||
| 83 | (require 'mh-init) | 83 | (require 'mh-init) |
| 84 | (require 'mh-identity)) | 84 | (require 'mh-identity)) |
| 85 | 85 | ||
| 86 | ;; For compiler warnings... | ||
| 87 | (eval-when-compile | ||
| 88 | (defvar mh-show-buffer) | ||
| 89 | (defvar mh-show-folder-buffer)) | ||
| 90 | |||
| 86 | (defun mh-customize (&optional delete-other-windows-flag) | 91 | (defun mh-customize (&optional delete-other-windows-flag) |
| 87 | "Customize MH-E variables. | 92 | "Customize MH-E variables. |
| 88 | If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in | 93 | If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in |
| @@ -94,11 +99,6 @@ the frame are removed." | |||
| 94 | 99 | ||
| 95 | 100 | ||
| 96 | 101 | ||
| 97 | ;;; For compiler warnings... | ||
| 98 | (eval-when-compile | ||
| 99 | (defvar mh-show-buffer) | ||
| 100 | (defvar mh-show-folder-buffer)) | ||
| 101 | |||
| 102 | ;;; MH-E Customization Groups | 102 | ;;; MH-E Customization Groups |
| 103 | 103 | ||
| 104 | (defgroup mh-e nil | 104 | (defgroup mh-e nil |
| @@ -198,9 +198,9 @@ mailutils." | |||
| 198 | :link '(custom-manual "(mh-e)Threading") | 198 | :link '(custom-manual "(mh-e)Threading") |
| 199 | :group 'mh-e) | 199 | :group 'mh-e) |
| 200 | 200 | ||
| 201 | (defgroup mh-toolbar nil | 201 | (defgroup mh-tool-bar nil |
| 202 | "The toolbar" | 202 | "The tool bar" |
| 203 | :link '(custom-manual "(mh-e)Toolbar") | 203 | :link '(custom-manual "(mh-e)Tool Bar") |
| 204 | :prefix "mh-" | 204 | :prefix "mh-" |
| 205 | :group 'mh-e) | 205 | :group 'mh-e) |
| 206 | 206 | ||
| @@ -217,6 +217,8 @@ mailutils." | |||
| 217 | :prefix "mh-" | 217 | :prefix "mh-" |
| 218 | :group 'mh-e) | 218 | :group 'mh-e) |
| 219 | 219 | ||
| 220 | |||
| 221 | |||
| 220 | ;;; Faces | 222 | ;;; Faces |
| 221 | 223 | ||
| 222 | (defgroup mh-folder-faces nil | 224 | (defgroup mh-folder-faces nil |
| @@ -998,7 +1000,7 @@ default). If you need to scan just the message 200, then use the range | |||
| 998 | 1000 | ||
| 999 | ;;; Scan Line Formats (:group 'mh-scan-line-formats) | 1001 | ;;; Scan Line Formats (:group 'mh-scan-line-formats) |
| 1000 | 1002 | ||
| 1001 | ;;; Forward definition to avoid compiler and runtime error. | 1003 | ;; Forward definition to avoid compiler and runtime error. |
| 1002 | (defvar mh-scan-format-file t) | 1004 | (defvar mh-scan-format-file t) |
| 1003 | 1005 | ||
| 1004 | (defun mh-adaptive-cmd-note-flag-check (symbol value) | 1006 | (defun mh-adaptive-cmd-note-flag-check (symbol value) |
| @@ -1163,9 +1165,9 @@ See also `mh-reply'." | |||
| 1163 | 1165 | ||
| 1164 | ;;; Sequences (:group 'mh-sequences) | 1166 | ;;; Sequences (:group 'mh-sequences) |
| 1165 | 1167 | ||
| 1166 | ;;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to | 1168 | ;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to |
| 1167 | ;;; the docstring: "Additional sequences that should not to be preserved can be | 1169 | ;; the docstring: "Additional sequences that should not to be preserved can be |
| 1168 | ;;; specified by setting `mh-unpropagated-sequences' appropriately." XXX | 1170 | ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX |
| 1169 | 1171 | ||
| 1170 | (defcustom mh-refile-preserves-sequences-flag t | 1172 | (defcustom mh-refile-preserves-sequences-flag t |
| 1171 | "*Non-nil means that sequences are preserved when messages are refiled. | 1173 | "*Non-nil means that sequences are preserved when messages are refiled. |
| @@ -1801,15 +1803,18 @@ only if the number of messages being threaded is less than `mh-large-folder'." | |||
| 1801 | 1803 | ||
| 1802 | 1804 | ||
| 1803 | 1805 | ||
| 1804 | ;;; The Toolbar (:group 'mh-toolbar) | 1806 | ;;; The Tool Bar (:group 'mh-tool-bar) |
| 1805 | 1807 | ||
| 1806 | (defcustom mh-tool-bar-search-function 'mh-search-folder | 1808 | (defcustom mh-tool-bar-search-function 'mh-search-folder |
| 1807 | "*Function called by the tool-bar search button. | 1809 | "*Function called by the tool bar search button. |
| 1808 | See `mh-search-folder' and `mh-index-search' for details." | 1810 | |
| 1811 | Available functions include `mh-search-folder', the default, and | ||
| 1812 | `mh-index-search'. You can also choose \"Other Function\" from the \"Value | ||
| 1813 | Menu\" and enter a function of your own choosing." | ||
| 1809 | :type '(choice (const mh-search-folder) | 1814 | :type '(choice (const mh-search-folder) |
| 1810 | (const mh-index-search) | 1815 | (const mh-index-search) |
| 1811 | (function :tag "Other function")) | 1816 | (function :tag "Other Function")) |
| 1812 | :group 'mh-toolbar) | 1817 | :group 'mh-tool-bar) |
| 1813 | 1818 | ||
| 1814 | ;; Functions called from the tool bar | 1819 | ;; Functions called from the tool bar |
| 1815 | (defun mh-tool-bar-search (&optional arg) | 1820 | (defun mh-tool-bar-search (&optional arg) |
| @@ -1819,7 +1824,7 @@ Optional argument ARG is not used." | |||
| 1819 | (call-interactively mh-tool-bar-search-function)) | 1824 | (call-interactively mh-tool-bar-search-function)) |
| 1820 | 1825 | ||
| 1821 | (defun mh-tool-bar-customize () | 1826 | (defun mh-tool-bar-customize () |
| 1822 | "Call `mh-customize' from the toolbar." | 1827 | "Call `mh-customize' from the tool bar." |
| 1823 | (interactive) | 1828 | (interactive) |
| 1824 | (mh-customize t)) | 1829 | (mh-customize t)) |
| 1825 | 1830 | ||
| @@ -1830,9 +1835,9 @@ Optional argument ARG is not used." | |||
| 1830 | (delete-other-windows)) | 1835 | (delete-other-windows)) |
| 1831 | 1836 | ||
| 1832 | (defun mh-tool-bar-letter-help () | 1837 | (defun mh-tool-bar-letter-help () |
| 1833 | "Visit \"(mh-e)Draft Editing\"." | 1838 | "Visit \"(mh-e)Editing Drafts\"." |
| 1834 | (interactive) | 1839 | (interactive) |
| 1835 | (info "(mh-e)Draft Editing") | 1840 | (info "(mh-e)Editing Drafts") |
| 1836 | (delete-other-windows)) | 1841 | (delete-other-windows)) |
| 1837 | 1842 | ||
| 1838 | (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) | 1843 | (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) |
| @@ -1855,45 +1860,35 @@ When INCLUDE-FLAG is non-nil, include message body being replied to." | |||
| 1855 | 1860 | ||
| 1856 | ;; XEmacs has a couple of extra customizations... | 1861 | ;; XEmacs has a couple of extra customizations... |
| 1857 | (mh-do-in-xemacs | 1862 | (mh-do-in-xemacs |
| 1858 | (defcustom mh-xemacs-use-toolbar-flag (if (and (featurep 'toolbar) | 1863 | (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag |
| 1859 | (featurep 'xpm) | 1864 | "*If non-nil, use tool bar. |
| 1860 | (device-on-window-system-p)) | 1865 | |
| 1861 | t | 1866 | This option controls whether to show the MH-E icons at all. By default, this |
| 1862 | nil) | 1867 | option is turned on if the window system supports tool bars. If your system |
| 1863 | "*If non-nil, use toolbar. | 1868 | doesn't support tool bars, then you won't be able to turn on this option." |
| 1864 | |||
| 1865 | This will default to t if you are in an environment that supports | ||
| 1866 | toolbars and xpm." | ||
| 1867 | :type 'boolean | 1869 | :type 'boolean |
| 1868 | :group 'mh-toolbar) | 1870 | :group 'mh-tool-bar |
| 1869 | 1871 | :set (lambda (symbol value) | |
| 1870 | (defcustom mh-xemacs-toolbar-position (if mh-xemacs-use-toolbar-flag | 1872 | (if (and (eq value t) |
| 1871 | 'default | 1873 | (not mh-xemacs-has-tool-bar-flag)) |
| 1872 | nil) | 1874 | (error "Tool bar not supported")) |
| 1873 | "*Where to put the toolbar. | 1875 | (set-default symbol value))) |
| 1874 | 1876 | ||
| 1875 | Valid non-nil values are \"default\", \"top\", \"bottom\", \"left\", | 1877 | (defcustom mh-xemacs-tool-bar-position nil |
| 1876 | \"right\". These match the four edges of the frame, with \"default\" | 1878 | "*Tool bar location. |
| 1877 | meaning \"use the same position as the default-toolbar\". | 1879 | |
| 1878 | 1880 | This option controls the placement of the tool bar along the four edges of the | |
| 1879 | A nil value means do not use a toolbar. | 1881 | frame. You can choose from one of \"Same As Default Tool Bar\", \"Top\", |
| 1880 | 1882 | \"Bottom\", \"Left\", or \"Right\". If this variable is set to anything other | |
| 1881 | If this variable is set to anything other than \"default\" and the | 1883 | than \"Same As Default Tool Bar\" and the default tool bar is in a different |
| 1882 | default-toolbar has a different positional setting from the value of | 1884 | location, then two tool bars will be displayed: the MH-E tool bar and the |
| 1883 | this variable, then two toolbars will be displayed. The MH-E toolbar | 1885 | default tool bar." |
| 1884 | and the default-toolbar." | 1886 | :type '(radio (const :tag "Same As Default Tool Bar" :value nil) |
| 1885 | :type '(radio (const :tag "Same position as the \"default-toolbar\"" | 1887 | (const :tag "Top" :value top) |
| 1886 | :value default) | 1888 | (const :tag "Bottom" :value bottom) |
| 1887 | (const :tag "Along the top edge of the frame" | 1889 | (const :tag "Left" :value left) |
| 1888 | :value top) | 1890 | (const :tag "Right" :value right)) |
| 1889 | (const :tag "Along the bottom edge of the frame" | 1891 | :group 'mh-tool-bar)) |
| 1890 | :value bottom) | ||
| 1891 | (const :tag "Along the left edge of the frame" | ||
| 1892 | :value left) | ||
| 1893 | (const :tag "Along the right edge of the frame" | ||
| 1894 | :value right) | ||
| 1895 | (const :tag "Don't use a toolbar" nil)) | ||
| 1896 | :group 'mh-toolbar)) | ||
| 1897 | 1892 | ||
| 1898 | (defun mh-buffer-exists-p (mode) | 1893 | (defun mh-buffer-exists-p (mode) |
| 1899 | "Test whether a buffer with major mode MODE is present." | 1894 | "Test whether a buffer with major mode MODE is present." |
| @@ -1996,7 +1991,7 @@ where, | |||
| 1996 | (t 'folder-vectors))) | 1991 | (t 'folder-vectors))) |
| 1997 | (list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons) | 1992 | (list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons) |
| 1998 | (t 'mh-tool-bar-folder-buttons))) | 1993 | (t 'mh-tool-bar-folder-buttons))) |
| 1999 | (key (intern (concat "mh-" type1 "toolbar-" name-str))) | 1994 | (key (intern (concat "mh-" type1 "tool-bar-" name-str))) |
| 2000 | (setter (intern (concat type1 "-button-setter"))) | 1995 | (setter (intern (concat type1 "-button-setter"))) |
| 2001 | (mbuttons (cond ((eq type :letter) 'letter-buttons) | 1996 | (mbuttons (cond ((eq type :letter) 'letter-buttons) |
| 2002 | ((eq type :show) 'show-buttons) | 1997 | ((eq type :show) 'show-buttons) |
| @@ -2063,89 +2058,87 @@ where, | |||
| 2063 | tool-bar-map)))) | 2058 | tool-bar-map)))) |
| 2064 | ;; Custom setter functions | 2059 | ;; Custom setter functions |
| 2065 | (defun mh-tool-bar-folder-buttons-set (symbol value) | 2060 | (defun mh-tool-bar-folder-buttons-set (symbol value) |
| 2066 | "Construct toolbar for `mh-folder-mode' and `mh-show-mode'." | 2061 | "Construct tool bar for `mh-folder-mode' and `mh-show-mode'." |
| 2067 | (set-default symbol value) | 2062 | (set-default symbol value) |
| 2068 | (mh-tool-bar-folder-buttons-init)) | 2063 | (mh-tool-bar-folder-buttons-init)) |
| 2069 | (defun mh-tool-bar-letter-buttons-set (symbol value) | 2064 | (defun mh-tool-bar-letter-buttons-set (symbol value) |
| 2070 | "Construct toolbar for `mh-letter-mode'." | 2065 | "Construct tool bar for `mh-letter-mode'." |
| 2071 | (set-default symbol value) | 2066 | (set-default symbol value) |
| 2072 | (mh-tool-bar-letter-buttons-init))) | 2067 | (mh-tool-bar-letter-buttons-init))) |
| 2073 | ;; XEmacs specific code | 2068 | ;; XEmacs specific code |
| 2074 | (mh-do-in-xemacs | 2069 | (mh-do-in-xemacs |
| 2075 | (defvar mh-toolbar-folder-vector-map | 2070 | (defvar mh-tool-bar-folder-vector-map |
| 2076 | ',(loop for button in folder-buttons | 2071 | ',(loop for button in folder-buttons |
| 2077 | for vector in folder-vectors | 2072 | for vector in folder-vectors |
| 2078 | collect (cons button vector))) | 2073 | collect (cons button vector))) |
| 2079 | (defvar mh-toolbar-show-vector-map | 2074 | (defvar mh-tool-bar-show-vector-map |
| 2080 | ',(loop for button in show-buttons | 2075 | ',(loop for button in show-buttons |
| 2081 | for vector in show-vectors | 2076 | for vector in show-vectors |
| 2082 | collect (cons button vector))) | 2077 | collect (cons button vector))) |
| 2083 | (defvar mh-toolbar-letter-vector-map | 2078 | (defvar mh-tool-bar-letter-vector-map |
| 2084 | ',(loop for button in letter-buttons | 2079 | ',(loop for button in letter-buttons |
| 2085 | for vector in letter-vectors | 2080 | for vector in letter-vectors |
| 2086 | collect (cons button vector))) | 2081 | collect (cons button vector))) |
| 2087 | (defvar mh-toolbar-folder-buttons nil) | 2082 | (defvar mh-tool-bar-folder-buttons nil) |
| 2088 | (defvar mh-toolbar-show-buttons nil) | 2083 | (defvar mh-tool-bar-show-buttons nil) |
| 2089 | (defvar mh-toolbar-letter-buttons nil) | 2084 | (defvar mh-tool-bar-letter-buttons nil) |
| 2090 | ;; Custom setter functions | 2085 | ;; Custom setter functions |
| 2091 | (defun mh-tool-bar-letter-buttons-set (symbol value) | 2086 | (defun mh-tool-bar-letter-buttons-set (symbol value) |
| 2092 | (set-default symbol value) | 2087 | (set-default symbol value) |
| 2093 | (when mh-xemacs-has-toolbar-flag | 2088 | (when mh-xemacs-has-tool-bar-flag |
| 2094 | (setq mh-toolbar-letter-buttons | 2089 | (setq mh-tool-bar-letter-buttons |
| 2095 | (loop for b in value | 2090 | (loop for b in value |
| 2096 | collect (cdr (assoc b mh-toolbar-letter-vector-map)))))) | 2091 | collect (cdr (assoc b mh-tool-bar-letter-vector-map)))))) |
| 2097 | (defun mh-tool-bar-folder-buttons-set (symbol value) | 2092 | (defun mh-tool-bar-folder-buttons-set (symbol value) |
| 2098 | (set-default symbol value) | 2093 | (set-default symbol value) |
| 2099 | (when mh-xemacs-has-toolbar-flag | 2094 | (when mh-xemacs-has-tool-bar-flag |
| 2100 | (setq mh-toolbar-folder-buttons | 2095 | (setq mh-tool-bar-folder-buttons |
| 2101 | (loop for b in value | 2096 | (loop for b in value |
| 2102 | collect (cdr (assoc b mh-toolbar-folder-vector-map)))) | 2097 | collect (cdr (assoc b mh-tool-bar-folder-vector-map)))) |
| 2103 | (setq mh-toolbar-show-buttons | 2098 | (setq mh-tool-bar-show-buttons |
| 2104 | (loop for b in value | 2099 | (loop for b in value |
| 2105 | collect (cdr (assoc b mh-toolbar-show-vector-map)))))) | 2100 | collect (cdr (assoc b mh-tool-bar-show-vector-map)))))) |
| 2106 | ;; Initialize toolbar | 2101 | (defun mh-tool-bar-init (mode) |
| 2107 | (defun mh-toolbar-init (mode) | 2102 | "Install tool bar in MODE." |
| 2108 | "Install toolbar in MODE." | 2103 | (let ((tool-bar (cond ((eq mode :folder) mh-tool-bar-folder-buttons) |
| 2109 | (let ((toolbar (cond ((eq mode :folder) mh-toolbar-folder-buttons) | 2104 | ((eq mode :letter) mh-tool-bar-letter-buttons) |
| 2110 | ((eq mode :letter) mh-toolbar-letter-buttons) | 2105 | ((eq mode :show) mh-tool-bar-show-buttons))) |
| 2111 | ((eq mode :show) mh-toolbar-show-buttons))) | ||
| 2112 | (height 37) | 2106 | (height 37) |
| 2113 | (width 40) | 2107 | (width 40) |
| 2114 | (buffer (current-buffer))) | 2108 | (buffer (current-buffer))) |
| 2115 | (when (and mh-xemacs-toolbar-position mh-xemacs-use-toolbar-flag | 2109 | (when mh-xemacs-use-tool-bar-flag |
| 2116 | mh-xemacs-has-toolbar-flag) | ||
| 2117 | (cond | 2110 | (cond |
| 2118 | ((eq mh-xemacs-toolbar-position 'top) | 2111 | ((eq mh-xemacs-tool-bar-position 'top) |
| 2119 | (set-specifier top-toolbar toolbar buffer) | 2112 | (set-specifier top-toolbar tool-bar buffer) |
| 2120 | (set-specifier top-toolbar-visible-p t) | 2113 | (set-specifier top-toolbar-visible-p t) |
| 2121 | (set-specifier top-toolbar-height height)) | 2114 | (set-specifier top-toolbar-height height)) |
| 2122 | ((eq mh-xemacs-toolbar-position 'bottom) | 2115 | ((eq mh-xemacs-tool-bar-position 'bottom) |
| 2123 | (set-specifier bottom-toolbar toolbar buffer) | 2116 | (set-specifier bottom-toolbar tool-bar buffer) |
| 2124 | (set-specifier bottom-toolbar-visible-p t) | 2117 | (set-specifier bottom-toolbar-visible-p t) |
| 2125 | (set-specifier bottom-toolbar-height height)) | 2118 | (set-specifier bottom-toolbar-height height)) |
| 2126 | ((eq mh-xemacs-toolbar-position 'left) | 2119 | ((eq mh-xemacs-tool-bar-position 'left) |
| 2127 | (set-specifier left-toolbar toolbar buffer) | 2120 | (set-specifier left-toolbar tool-bar buffer) |
| 2128 | (set-specifier left-toolbar-visible-p t) | 2121 | (set-specifier left-toolbar-visible-p t) |
| 2129 | (set-specifier left-toolbar-width width)) | 2122 | (set-specifier left-toolbar-width width)) |
| 2130 | ((eq mh-xemacs-toolbar-position 'right) | 2123 | ((eq mh-xemacs-tool-bar-position 'right) |
| 2131 | (set-specifier right-toolbar toolbar buffer) | 2124 | (set-specifier right-toolbar tool-bar buffer) |
| 2132 | (set-specifier right-toolbar-visible-p t) | 2125 | (set-specifier right-toolbar-visible-p t) |
| 2133 | (set-specifier right-toolbar-width width)) | 2126 | (set-specifier right-toolbar-width width)) |
| 2134 | (t (set-specifier default-toolbar toolbar buffer))))))) | 2127 | (t (set-specifier default-toolbar tool-bar buffer))))))) |
| 2135 | ;; Declare customizable toolbars | 2128 | ;; Declare customizable tool bars |
| 2136 | (custom-declare-variable | 2129 | (custom-declare-variable |
| 2137 | 'mh-tool-bar-folder-buttons | 2130 | 'mh-tool-bar-folder-buttons |
| 2138 | '(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults)) | 2131 | '(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults)) |
| 2139 | "Choose buttons to include in MH-E folder/show toolbar." | 2132 | "List of buttons to include in MH-Folder tool bar." |
| 2140 | :group 'mh-toolbar :set 'mh-tool-bar-folder-buttons-set | 2133 | :group 'mh-tool-bar :set 'mh-tool-bar-folder-buttons-set |
| 2141 | :type '(set ,@(loop for x in folder-buttons | 2134 | :type '(set ,@(loop for x in folder-buttons |
| 2142 | for y in folder-docs | 2135 | for y in folder-docs |
| 2143 | collect `(const :tag ,y ,x)))) | 2136 | collect `(const :tag ,y ,x)))) |
| 2144 | (custom-declare-variable | 2137 | (custom-declare-variable |
| 2145 | 'mh-tool-bar-letter-buttons | 2138 | 'mh-tool-bar-letter-buttons |
| 2146 | '(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults)) | 2139 | '(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults)) |
| 2147 | "Choose buttons to include in MH-E letter toolbar." | 2140 | "List of buttons to include in MH-Letter tool bar." |
| 2148 | :group 'mh-toolbar :set 'mh-tool-bar-letter-buttons-set | 2141 | :group 'mh-tool-bar :set 'mh-tool-bar-letter-buttons-set |
| 2149 | :type '(set ,@(loop for x in letter-buttons | 2142 | :type '(set ,@(loop for x in letter-buttons |
| 2150 | for y in letter-docs | 2143 | for y in letter-docs |
| 2151 | collect `(const :tag ,y ,x))))))) | 2144 | collect `(const :tag ,y ,x))))))) |
| @@ -2301,15 +2294,24 @@ on his mail usage." | |||
| 2301 | :group 'mh-hooks | 2294 | :group 'mh-hooks |
| 2302 | :group 'mh-folder) | 2295 | :group 'mh-folder) |
| 2303 | 2296 | ||
| 2304 | (defcustom mh-folder-updated-hook nil | 2297 | (defcustom mh-before-commands-processed-hook nil |
| 2305 | "Invoked when the folder actions (such as moves and deletes) are performed. | 2298 | "Invoked before the folder actions (such as moves and deletes) are performed. |
| 2306 | Variables that are useful in this hook include `mh-delete-list' and | 2299 | Variables that are useful in this hook include `mh-delete-list' and |
| 2307 | `mh-refile-list' which can be used to see which changes are being made to | 2300 | `mh-refile-list' which can be used to see which changes will be made to |
| 2308 | current folder, `mh-current-folder'." | 2301 | current folder, `mh-current-folder'." |
| 2309 | :type 'hook | 2302 | :type 'hook |
| 2310 | :group 'mh-hooks | 2303 | :group 'mh-hooks |
| 2311 | :group 'mh-folder) | 2304 | :group 'mh-folder) |
| 2312 | 2305 | ||
| 2306 | (defcustom mh-after-commands-processed-hook nil | ||
| 2307 | "Invoked after the folder actions (such as moves and deletes) are performed. | ||
| 2308 | Variables that are useful in this hook include `mh-folders-changed', | ||
| 2309 | which lists which folders were affected by deletes and refiles. This | ||
| 2310 | list will always include the current folder, which is also available | ||
| 2311 | in `mh-current-folder'." | ||
| 2312 | :type 'hook | ||
| 2313 | :group 'mh-hooks) | ||
| 2314 | |||
| 2313 | (defcustom mh-forward-hook nil | 2315 | (defcustom mh-forward-hook nil |
| 2314 | "Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]." | 2316 | "Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]." |
| 2315 | :type 'hook | 2317 | :type 'hook |
| @@ -2403,6 +2405,8 @@ will be removed from the unseen sequence." | |||
| 2403 | 2405 | ||
| 2404 | ;;; Faces (:group 'mh-*-faces + group where faces described) | 2406 | ;;; Faces (:group 'mh-*-faces + group where faces described) |
| 2405 | 2407 | ||
| 2408 | |||
| 2409 | |||
| 2406 | ;;; Faces Used in Scan Listing (:group 'mh-folder-faces) | 2410 | ;;; Faces Used in Scan Listing (:group 'mh-folder-faces) |
| 2407 | 2411 | ||
| 2408 | (defvar mh-folder-body-face 'mh-folder-body | 2412 | (defvar mh-folder-body-face 'mh-folder-body |
| @@ -2767,10 +2771,10 @@ The background and foreground is used in the image." | |||
| 2767 | "Face used for the current folder when it has unread messages." | 2771 | "Face used for the current folder when it has unread messages." |
| 2768 | :group 'mh-speed-faces) | 2772 | :group 'mh-speed-faces) |
| 2769 | 2773 | ||
| 2770 | ;;; Local Variables: | 2774 | ;; Local Variables: |
| 2771 | ;;; indent-tabs-mode: nil | 2775 | ;; indent-tabs-mode: nil |
| 2772 | ;;; sentence-end-double-space: nil | 2776 | ;; sentence-end-double-space: nil |
| 2773 | ;;; End: | 2777 | ;; End: |
| 2774 | 2778 | ||
| 2775 | ;;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68 | 2779 | ;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68 |
| 2776 | ;;; mh-customize.el ends here | 2780 | ;;; mh-customize.el ends here |
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index b87fa4c2e3d..0c8c3346ecb 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el | |||
| @@ -105,11 +105,12 @@ | |||
| 105 | The string is displayed after the folder's name. nil for no annotation.") | 105 | The string is displayed after the folder's name. nil for no annotation.") |
| 106 | 106 | ||
| 107 | 107 | ||
| 108 | |||
| 108 | ;;; Scan Line Formats | 109 | ;;; Scan Line Formats |
| 109 | 110 | ||
| 110 | ;;; Parameterize MH-E to work with different scan formats. The defaults work | 111 | ;; Parameterize MH-E to work with different scan formats. The defaults work |
| 111 | ;;; with the standard MH scan listings, in which the first 4 characters on | 112 | ;; with the standard MH scan listings, in which the first 4 characters on |
| 112 | ;;; the line are the message number, followed by two places for notations. | 113 | ;; the line are the message number, followed by two places for notations. |
| 113 | 114 | ||
| 114 | ;; The following scan formats are passed to the scan program if the setting of | 115 | ;; The following scan formats are passed to the scan program if the setting of |
| 115 | ;; `mh-scan-format-file' is t. They are identical except the later one makes | 116 | ;; `mh-scan-format-file' is t. They are identical except the later one makes |
| @@ -459,6 +460,8 @@ is done highlighting.") | |||
| 459 | 460 | ||
| 460 | (defvar mh-refile-list nil) ;List of folder names in mh-seq-list. | 461 | (defvar mh-refile-list nil) ;List of folder names in mh-seq-list. |
| 461 | 462 | ||
| 463 | (defvar mh-folders-changed nil) ;For mh-after-commands-processed-hook. | ||
| 464 | |||
| 462 | (defvar mh-next-direction 'forward) ;Direction to move to next message. | 465 | (defvar mh-next-direction 'forward) ;Direction to move to next message. |
| 463 | 466 | ||
| 464 | (defvar mh-view-ops ()) ;Stack of ops that change the folder | 467 | (defvar mh-view-ops ()) ;Stack of ops that change the folder |
| @@ -483,6 +486,8 @@ is done highlighting.") | |||
| 483 | 486 | ||
| 484 | (defvar mh-colors-available-flag nil) ;Are colors available? | 487 | (defvar mh-colors-available-flag nil) ;Are colors available? |
| 485 | 488 | ||
| 489 | |||
| 490 | |||
| 486 | ;;; Macros and generic functions: | 491 | ;;; Macros and generic functions: |
| 487 | 492 | ||
| 488 | (defun mh-mapc (function list) | 493 | (defun mh-mapc (function list) |
| @@ -1507,14 +1512,16 @@ Make it the current folder." | |||
| 1507 | (mh-index-read-data)) | 1512 | (mh-index-read-data)) |
| 1508 | (mh-make-folder-mode-line)) | 1513 | (mh-make-folder-mode-line)) |
| 1509 | 1514 | ||
| 1510 | ;;; Ensure new buffers won't get this mode if default-major-mode is nil. | 1515 | ;; Ensure new buffers won't get this mode if default-major-mode is nil. |
| 1511 | (put 'mh-folder-mode 'mode-class 'special) | 1516 | (put 'mh-folder-mode 'mode-class 'special) |
| 1512 | 1517 | ||
| 1513 | 1518 | ||
| 1514 | 1519 | ||
| 1515 | ;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) | 1520 | ;;; Build mh-folder-mode menu |
| 1516 | ;;; Menus for folder mode: folder, message, sequence (in that order) | 1521 | |
| 1517 | ;;; folder-mode "Sequence" menu | 1522 | ;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) |
| 1523 | ;; Menus for folder mode: folder, message, sequence (in that order) | ||
| 1524 | ;; folder-mode "Sequence" menu | ||
| 1518 | (easy-menu-define | 1525 | (easy-menu-define |
| 1519 | mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence." | 1526 | mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence." |
| 1520 | '("Sequence" | 1527 | '("Sequence" |
| @@ -1535,7 +1542,7 @@ Make it the current folder." | |||
| 1535 | "--" | 1542 | "--" |
| 1536 | ["Push State Out to MH" mh-update-sequences t])) | 1543 | ["Push State Out to MH" mh-update-sequences t])) |
| 1537 | 1544 | ||
| 1538 | ;;; folder-mode "Message" menu | 1545 | ;; folder-mode "Message" menu |
| 1539 | (easy-menu-define | 1546 | (easy-menu-define |
| 1540 | mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message." | 1547 | mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message." |
| 1541 | '("Message" | 1548 | '("Message" |
| @@ -1568,7 +1575,7 @@ Make it the current folder." | |||
| 1568 | ["Unpack Uuencoded Message..." mh-store-msg (mh-get-msg-num nil)] | 1575 | ["Unpack Uuencoded Message..." mh-store-msg (mh-get-msg-num nil)] |
| 1569 | ["Burst Digest Message" mh-burst-digest (mh-get-msg-num nil)])) | 1576 | ["Burst Digest Message" mh-burst-digest (mh-get-msg-num nil)])) |
| 1570 | 1577 | ||
| 1571 | ;;; folder-mode "Folder" menu | 1578 | ;; folder-mode "Folder" menu |
| 1572 | (easy-menu-define | 1579 | (easy-menu-define |
| 1573 | mh-folder-folder-menu mh-folder-mode-map "Menu for MH-E folder." | 1580 | mh-folder-folder-menu mh-folder-mode-map "Menu for MH-E folder." |
| 1574 | '("Folder" | 1581 | '("Folder" |
| @@ -1742,7 +1749,7 @@ messages in that region. | |||
| 1742 | (easy-menu-add mh-folder-message-menu) | 1749 | (easy-menu-add mh-folder-message-menu) |
| 1743 | (easy-menu-add mh-folder-folder-menu) | 1750 | (easy-menu-add mh-folder-folder-menu) |
| 1744 | (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map) | 1751 | (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map) |
| 1745 | (mh-funcall-if-exists mh-toolbar-init :folder) | 1752 | (mh-funcall-if-exists mh-tool-bar-init :folder) |
| 1746 | (if (and mh-xemacs-flag | 1753 | (if (and mh-xemacs-flag |
| 1747 | font-lock-auto-fontify) | 1754 | font-lock-auto-fontify) |
| 1748 | (turn-on-font-lock))) ; Force font-lock in XEmacs. | 1755 | (turn-on-font-lock))) ; Force font-lock in XEmacs. |
| @@ -1786,7 +1793,7 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the | |||
| 1786 | (mh-visit-folder desktop-buffer-name) | 1793 | (mh-visit-folder desktop-buffer-name) |
| 1787 | (current-buffer)) | 1794 | (current-buffer)) |
| 1788 | 1795 | ||
| 1789 | ;;; desktop-buffer-mode-handlers appeared in Emacs 22. | 1796 | ;; desktop-buffer-mode-handlers appeared in Emacs 22. |
| 1790 | (if (fboundp 'desktop-buffer-mode-handlers) | 1797 | (if (fboundp 'desktop-buffer-mode-handlers) |
| 1791 | (add-to-list 'desktop-buffer-mode-handlers | 1798 | (add-to-list 'desktop-buffer-mode-handlers |
| 1792 | '(mh-folder-mode . mh-restore-desktop-buffer))) | 1799 | '(mh-folder-mode . mh-restore-desktop-buffer))) |
| @@ -2144,13 +2151,15 @@ Called by functions like `mh-sort-folder', so also invalidate show buffer." | |||
| 2144 | 2151 | ||
| 2145 | (defun mh-process-commands (folder) | 2152 | (defun mh-process-commands (folder) |
| 2146 | "Process outstanding commands for FOLDER. | 2153 | "Process outstanding commands for FOLDER. |
| 2147 | The value of `mh-folder-updated-hook' is a list of functions to be called, | 2154 | The value of `mh-before-commands-processed-hook' is a list of functions |
| 2148 | with no arguments, before the commands are processed." | 2155 | to be called, with no arguments, before the commands are processed. |
| 2156 | After all cammands are processed, the functions in | ||
| 2157 | `mh-after-commands-processed-hook' are called with no arguments." | ||
| 2149 | (message "Processing deletes and refiles for %s..." folder) | 2158 | (message "Processing deletes and refiles for %s..." folder) |
| 2150 | (set-buffer folder) | 2159 | (set-buffer folder) |
| 2151 | (with-mh-folder-updating (nil) | 2160 | (with-mh-folder-updating (nil) |
| 2152 | ;; Run the hook while the lists are still valid | 2161 | ;; Run the before hook -- the refile and delete lists are still valid |
| 2153 | (run-hooks 'mh-folder-updated-hook) | 2162 | (run-hooks 'mh-before-commands-processed-hook) |
| 2154 | 2163 | ||
| 2155 | ;; Update the unseen sequence if it exists | 2164 | ;; Update the unseen sequence if it exists |
| 2156 | (mh-update-unseen) | 2165 | (mh-update-unseen) |
| @@ -2217,17 +2226,23 @@ with no arguments, before the commands are processed." | |||
| 2217 | (when (mh-speed-flists-active-p) | 2226 | (when (mh-speed-flists-active-p) |
| 2218 | (apply #'mh-speed-flists t folders-changed)) | 2227 | (apply #'mh-speed-flists t folders-changed)) |
| 2219 | (cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max))) | 2228 | (cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max))) |
| 2220 | (mh-index-data (mh-index-insert-folder-headers))))) | 2229 | (mh-index-data (mh-index-insert-folder-headers)))) |
| 2221 | 2230 | ||
| 2222 | (and (buffer-file-name (get-buffer mh-show-buffer)) | 2231 | (and (buffer-file-name (get-buffer mh-show-buffer)) |
| 2223 | (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer)))) | 2232 | (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer)))) |
| 2224 | ;; If "inc" were to put a new msg in this file, | 2233 | ;; If "inc" were to put a new msg in this file, |
| 2225 | ;; we would not notice, so mark it invalid now. | 2234 | ;; we would not notice, so mark it invalid now. |
| 2226 | (mh-invalidate-show-buffer)) | 2235 | (mh-invalidate-show-buffer)) |
| 2236 | |||
| 2237 | (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil)) | ||
| 2238 | (mh-remove-all-notation) | ||
| 2239 | (mh-notate-user-sequences) | ||
| 2240 | |||
| 2241 | ;; Run the after hook -- now folders-changed is valid, | ||
| 2242 | ;; but not the lists of specific messages. | ||
| 2243 | (let ((mh-folders-changed folders-changed)) | ||
| 2244 | (run-hooks 'mh-after-commands-processed-hook))) | ||
| 2227 | 2245 | ||
| 2228 | (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil)) | ||
| 2229 | (mh-remove-all-notation) | ||
| 2230 | (mh-notate-user-sequences) | ||
| 2231 | (message "Processing deletes and refiles for %s...done" folder))) | 2246 | (message "Processing deletes and refiles for %s...done" folder))) |
| 2232 | 2247 | ||
| 2233 | (defun mh-update-unseen () | 2248 | (defun mh-update-unseen () |
| @@ -2478,7 +2493,7 @@ If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences in list." | |||
| 2478 | 2493 | ||
| 2479 | 2494 | ||
| 2480 | 2495 | ||
| 2481 | ;;; Build the folder-mode keymap: | 2496 | ;;; Build mh-folder-mode keymap: |
| 2482 | 2497 | ||
| 2483 | (suppress-keymap mh-folder-mode-map) | 2498 | (suppress-keymap mh-folder-mode-map) |
| 2484 | 2499 | ||
| @@ -2631,15 +2646,15 @@ If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences in list." | |||
| 2631 | 2646 | ||
| 2632 | ;;; Help Messages | 2647 | ;;; Help Messages |
| 2633 | 2648 | ||
| 2634 | ;;; If you add a new prefix, add appropriate text to the nil key. | 2649 | ;; If you add a new prefix, add appropriate text to the nil key. |
| 2635 | ;;; | 2650 | ;; |
| 2636 | ;;; In general, messages are grouped logically. Taking the main commands for | 2651 | ;; In general, messages are grouped logically. Taking the main commands for |
| 2637 | ;;; example, the first line is "ways to view messages," the second line is | 2652 | ;; example, the first line is "ways to view messages," the second line is |
| 2638 | ;;; "things you can do with messages", and the third is "composing" messages. | 2653 | ;; "things you can do with messages", and the third is "composing" messages. |
| 2639 | ;;; | 2654 | ;; |
| 2640 | ;;; When adding a new prefix, ensure that the help message contains "what" the | 2655 | ;; When adding a new prefix, ensure that the help message contains "what" the |
| 2641 | ;;; prefix is for. For example, if the word "folder" were not present in the | 2656 | ;; prefix is for. For example, if the word "folder" were not present in the |
| 2642 | ;;; `F' entry, it would not be clear what these commands operated upon. | 2657 | ;; `F' entry, it would not be clear what these commands operated upon. |
| 2643 | (defvar mh-help-messages | 2658 | (defvar mh-help-messages |
| 2644 | '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n" | 2659 | '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n" |
| 2645 | "[d]elete, [o]refile, e[x]ecute,\n" | 2660 | "[d]elete, [o]refile, e[x]ecute,\n" |
| @@ -2682,10 +2697,10 @@ well.") | |||
| 2682 | 2697 | ||
| 2683 | (provide 'mh-e) | 2698 | (provide 'mh-e) |
| 2684 | 2699 | ||
| 2685 | ;;; Local Variables: | 2700 | ;; Local Variables: |
| 2686 | ;;; indent-tabs-mode: nil | 2701 | ;; indent-tabs-mode: nil |
| 2687 | ;;; sentence-end-double-space: nil | 2702 | ;; sentence-end-double-space: nil |
| 2688 | ;;; End: | 2703 | ;; End: |
| 2689 | 2704 | ||
| 2690 | ;;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b | 2705 | ;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b |
| 2691 | ;;; mh-e.el ends here | 2706 | ;;; mh-e.el ends here |
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el index ca2f7333eb8..813d8a07b6c 100644 --- a/lisp/mh-e/mh-funcs.el +++ b/lisp/mh-e/mh-funcs.el | |||
| @@ -39,6 +39,8 @@ | |||
| 39 | (mh-require-cl) | 39 | (mh-require-cl) |
| 40 | (require 'mh-e) | 40 | (require 'mh-e) |
| 41 | 41 | ||
| 42 | |||
| 43 | |||
| 42 | ;;; Scan Line Formats | 44 | ;;; Scan Line Formats |
| 43 | 45 | ||
| 44 | (defvar mh-note-copied "C" | 46 | (defvar mh-note-copied "C" |
| @@ -47,6 +49,8 @@ | |||
| 47 | (defvar mh-note-printed "P" | 49 | (defvar mh-note-printed "P" |
| 48 | "Messages that have been printed are marked by this character.") | 50 | "Messages that have been printed are marked by this character.") |
| 49 | 51 | ||
| 52 | |||
| 53 | |||
| 50 | ;;; Functions | 54 | ;;; Functions |
| 51 | 55 | ||
| 52 | ;;;###mh-autoload | 56 | ;;;###mh-autoload |
| @@ -411,10 +415,10 @@ Default directory is the last directory used, or initially the value of | |||
| 411 | 415 | ||
| 412 | (provide 'mh-funcs) | 416 | (provide 'mh-funcs) |
| 413 | 417 | ||
| 414 | ;;; Local Variables: | 418 | ;; Local Variables: |
| 415 | ;;; indent-tabs-mode: nil | 419 | ;; indent-tabs-mode: nil |
| 416 | ;;; sentence-end-double-space: nil | 420 | ;; sentence-end-double-space: nil |
| 417 | ;;; End: | 421 | ;; End: |
| 418 | 422 | ||
| 419 | ;;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762 | 423 | ;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762 |
| 420 | ;;; mh-funcs.el ends here | 424 | ;;; mh-funcs.el ends here |
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el index 23209275d12..71220e2dd3d 100644 --- a/lisp/mh-e/mh-gnus.el +++ b/lisp/mh-e/mh-gnus.el | |||
| @@ -30,8 +30,8 @@ | |||
| 30 | 30 | ||
| 31 | ;;; Code: | 31 | ;;; Code: |
| 32 | 32 | ||
| 33 | ;;; Load libraries in a non-fatal way in order to see if certain functions are | 33 | ;; Load libraries in a non-fatal way in order to see if certain functions are |
| 34 | ;;; pre-defined. | 34 | ;; pre-defined. |
| 35 | (load "mailabbrev" t t) | 35 | (load "mailabbrev" t t) |
| 36 | (load "mailcap" t t) | 36 | (load "mailcap" t t) |
| 37 | (load "mm-decode" t t) | 37 | (load "mm-decode" t t) |
| @@ -147,10 +147,10 @@ BODY." | |||
| 147 | disposition | 147 | disposition |
| 148 | default))) | 148 | default))) |
| 149 | 149 | ||
| 150 | ;;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is | 150 | ;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is |
| 151 | ;;; buggy (the args to read-file-name are incorrect). When all supported | 151 | ;; buggy (the args to read-file-name are incorrect). When all supported |
| 152 | ;;; versions of Emacs come with at least Gnus 5.10, we can delete this | 152 | ;; versions of Emacs come with at least Gnus 5.10, we can delete this |
| 153 | ;;; function and rename calls to mh-mm-save-part to mm-save-part. | 153 | ;; function and rename calls to mh-mm-save-part to mm-save-part. |
| 154 | (defun mh-mm-save-part (handle) | 154 | (defun mh-mm-save-part (handle) |
| 155 | "Write HANDLE to a file." | 155 | "Write HANDLE to a file." |
| 156 | (let ((name (mail-content-type-get (mm-handle-type handle) 'name)) | 156 | (let ((name (mail-content-type-get (mm-handle-type handle) 'name)) |
| @@ -181,12 +181,12 @@ BODY." | |||
| 181 | 181 | ||
| 182 | (provide 'mh-gnus) | 182 | (provide 'mh-gnus) |
| 183 | 183 | ||
| 184 | ;;; Local Variables: | 184 | ;; Local Variables: |
| 185 | ;;; no-byte-compile: t | 185 | ;; no-byte-compile: t |
| 186 | ;;; no-update-autoloads: t | 186 | ;; no-update-autoloads: t |
| 187 | ;;; indent-tabs-mode: nil | 187 | ;; indent-tabs-mode: nil |
| 188 | ;;; sentence-end-double-space: nil | 188 | ;; sentence-end-double-space: nil |
| 189 | ;;; End: | 189 | ;; End: |
| 190 | 190 | ||
| 191 | ;; arch-tag: 1e3638af-cad3-4c69-8427-bc8eb6e5e4fa | 191 | ;; arch-tag: 1e3638af-cad3-4c69-8427-bc8eb6e5e4fa |
| 192 | ;;; mh-gnus.el ends here | 192 | ;;; mh-gnus.el ends here |
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el index 9d81a2acbe2..1e621af7df9 100644 --- a/lisp/mh-e/mh-identity.el +++ b/lisp/mh-e/mh-identity.el | |||
| @@ -282,10 +282,10 @@ If the field wasn't present, it is added to the bottom of the header." | |||
| 282 | 282 | ||
| 283 | (provide 'mh-identity) | 283 | (provide 'mh-identity) |
| 284 | 284 | ||
| 285 | ;;; Local Variables: | 285 | ;; Local Variables: |
| 286 | ;;; indent-tabs-mode: nil | 286 | ;; indent-tabs-mode: nil |
| 287 | ;;; sentence-end-double-space: nil | 287 | ;; sentence-end-double-space: nil |
| 288 | ;;; End: | 288 | ;; End: |
| 289 | 289 | ||
| 290 | ;;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45 | 290 | ;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45 |
| 291 | ;;; mh-identity.el ends here | 291 | ;;; mh-identity.el ends here |
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el index 9ccec70e969..d5becd26ce4 100644 --- a/lisp/mh-e/mh-inc.el +++ b/lisp/mh-e/mh-inc.el | |||
| @@ -98,10 +98,10 @@ This is called after 'customize is used to alter `mh-inc-spool-list'." | |||
| 98 | 98 | ||
| 99 | (provide 'mh-inc) | 99 | (provide 'mh-inc) |
| 100 | 100 | ||
| 101 | ;;; Local Variables: | 101 | ;; Local Variables: |
| 102 | ;;; indent-tabs-mode: nil | 102 | ;; indent-tabs-mode: nil |
| 103 | ;;; sentence-end-double-space: nil | 103 | ;; sentence-end-double-space: nil |
| 104 | ;;; End: | 104 | ;; End: |
| 105 | 105 | ||
| 106 | ;;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835 | 106 | ;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835 |
| 107 | ;;; mh-inc.el ends here | 107 | ;;; mh-inc.el ends here |
diff --git a/lisp/mh-e/mh-index.el b/lisp/mh-e/mh-index.el index 6b429773945..e261b47b753 100644 --- a/lisp/mh-e/mh-index.el +++ b/lisp/mh-e/mh-index.el | |||
| @@ -26,18 +26,18 @@ | |||
| 26 | 26 | ||
| 27 | ;;; Commentary: | 27 | ;;; Commentary: |
| 28 | 28 | ||
| 29 | ;;; (1) The following search engines are supported: | 29 | ;; (1) The following search engines are supported: |
| 30 | ;;; swish++ | 30 | ;; swish++ |
| 31 | ;;; swish-e | 31 | ;; swish-e |
| 32 | ;;; mairix | 32 | ;; mairix |
| 33 | ;;; namazu | 33 | ;; namazu |
| 34 | ;;; pick | 34 | ;; pick |
| 35 | ;;; grep | 35 | ;; grep |
| 36 | ;;; | 36 | ;; |
| 37 | ;;; (2) To use this package, you first have to build an index. Please read | 37 | ;; (2) To use this package, you first have to build an index. Please read |
| 38 | ;;; the documentation for `mh-index-search' to get started. That | 38 | ;; the documentation for `mh-index-search' to get started. That |
| 39 | ;;; documentation will direct you to the specific instructions for your | 39 | ;; documentation will direct you to the specific instructions for your |
| 40 | ;;; particular indexer. | 40 | ;; particular indexer. |
| 41 | 41 | ||
| 42 | ;;; Change Log: | 42 | ;;; Change Log: |
| 43 | 43 | ||
| @@ -91,17 +91,17 @@ | |||
| 91 | 91 | ||
| 92 | 92 | ||
| 93 | 93 | ||
| 94 | ;;; A few different checksum programs are supported. The supported programs | 94 | ;; A few different checksum programs are supported. The supported programs |
| 95 | ;;; are: | 95 | ;; are: |
| 96 | ;;; 1. md5sum | 96 | ;; 1. md5sum |
| 97 | ;;; 2. md5 | 97 | ;; 2. md5 |
| 98 | ;;; 3. openssl | 98 | ;; 3. openssl |
| 99 | ;;; | 99 | ;; |
| 100 | ;;; To add support for your favorite checksum program add a clause to the cond | 100 | ;; To add support for your favorite checksum program add a clause to the cond |
| 101 | ;;; statement in mh-checksum-choose. This should set the variable | 101 | ;; statement in mh-checksum-choose. This should set the variable |
| 102 | ;;; mh-checksum-cmd to the command line needed to run the checsum program and | 102 | ;; mh-checksum-cmd to the command line needed to run the checsum program and |
| 103 | ;;; should set mh-checksum-parser to a function which returns a cons cell | 103 | ;; should set mh-checksum-parser to a function which returns a cons cell |
| 104 | ;;; containing the message number and checksum string. | 104 | ;; containing the message number and checksum string. |
| 105 | 105 | ||
| 106 | (defvar mh-checksum-cmd) | 106 | (defvar mh-checksum-cmd) |
| 107 | (defvar mh-checksum-parser) | 107 | (defvar mh-checksum-parser) |
| @@ -152,8 +152,7 @@ | |||
| 152 | 152 | ||
| 153 | 153 | ||
| 154 | 154 | ||
| 155 | ;;; Make sure that we don't produce too long a command line. | 155 | ;; Make sure that we don't produce too long a command line. |
| 156 | |||
| 157 | (defvar mh-index-max-cmdline-args 500 | 156 | (defvar mh-index-max-cmdline-args 500 |
| 158 | "Maximum number of command line args.") | 157 | "Maximum number of command line args.") |
| 159 | 158 | ||
| @@ -1653,10 +1652,10 @@ system." | |||
| 1653 | 1652 | ||
| 1654 | (provide 'mh-index) | 1653 | (provide 'mh-index) |
| 1655 | 1654 | ||
| 1656 | ;;; Local Variables: | 1655 | ;; Local Variables: |
| 1657 | ;;; indent-tabs-mode: nil | 1656 | ;; indent-tabs-mode: nil |
| 1658 | ;;; sentence-end-double-space: nil | 1657 | ;; sentence-end-double-space: nil |
| 1659 | ;;; End: | 1658 | ;; End: |
| 1660 | 1659 | ||
| 1661 | ;;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47 | 1660 | ;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47 |
| 1662 | ;;; mh-index ends here | 1661 | ;;; mh-index ends here |
diff --git a/lisp/mh-e/mh-init.el b/lisp/mh-e/mh-init.el index 79f779810e2..1bafe960eff 100644 --- a/lisp/mh-e/mh-init.el +++ b/lisp/mh-e/mh-init.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; mh-init.el --- MH-E initialization. | 1 | ;;; mh-init.el --- MH-E initialization |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -43,14 +43,14 @@ | |||
| 43 | (mh-require-cl) | 43 | (mh-require-cl) |
| 44 | (require 'mh-utils) | 44 | (require 'mh-utils) |
| 45 | 45 | ||
| 46 | ;;; Avoid compiler warnings. | 46 | ;; Avoid compiler warnings. |
| 47 | (eval-when-compile (defvar image-load-path)) | 47 | (eval-when-compile (defvar image-load-path)) |
| 48 | 48 | ||
| 49 | ;;; Set for local environment: | 49 | ;; Set for local environment: |
| 50 | ;;; mh-progs and mh-lib used to be set in paths.el, which tried to | 50 | ;; mh-progs and mh-lib used to be set in paths.el, which tried to |
| 51 | ;;; figure out at build time which of several possible directories MH | 51 | ;; figure out at build time which of several possible directories MH |
| 52 | ;;; was installed into. But if you installed MH after building Emacs, | 52 | ;; was installed into. But if you installed MH after building Emacs, |
| 53 | ;;; this would almost certainly be wrong, so now we do it at run time. | 53 | ;; this would almost certainly be wrong, so now we do it at run time. |
| 54 | 54 | ||
| 55 | (defvar mh-progs nil | 55 | (defvar mh-progs nil |
| 56 | "Directory containing MH commands, such as inc, repl, and rmm.") | 56 | "Directory containing MH commands, such as inc, repl, and rmm.") |
| @@ -350,10 +350,10 @@ single \"class\" requirement with a \"color\" item, renames the requirement to | |||
| 350 | 350 | ||
| 351 | (provide 'mh-init) | 351 | (provide 'mh-init) |
| 352 | 352 | ||
| 353 | ;;; Local Variables: | 353 | ;; Local Variables: |
| 354 | ;;; indent-tabs-mode: nil | 354 | ;; indent-tabs-mode: nil |
| 355 | ;;; sentence-end-double-space: nil | 355 | ;; sentence-end-double-space: nil |
| 356 | ;;; End: | 356 | ;; End: |
| 357 | 357 | ||
| 358 | ;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c | 358 | ;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c |
| 359 | ;;; mh-init.el ends here | 359 | ;;; mh-init.el ends here |
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el index 5cbc7b77b47..29caef6cae7 100644 --- a/lisp/mh-e/mh-junk.el +++ b/lisp/mh-e/mh-junk.el | |||
| @@ -420,10 +420,10 @@ See `mh-spamprobe-blacklist' for more information." | |||
| 420 | 420 | ||
| 421 | (provide 'mh-junk) | 421 | (provide 'mh-junk) |
| 422 | 422 | ||
| 423 | ;;; Local Variables: | 423 | ;; Local Variables: |
| 424 | ;;; indent-tabs-mode: nil | 424 | ;; indent-tabs-mode: nil |
| 425 | ;;; sentence-end-double-space: nil | 425 | ;; sentence-end-double-space: nil |
| 426 | ;;; End: | 426 | ;; End: |
| 427 | 427 | ||
| 428 | ;;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1 | 428 | ;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1 |
| 429 | ;;; mh-junk.el ends here | 429 | ;;; mh-junk.el ends here |
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index 3d55c5cded1..bb2fc2b8f50 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el | |||
| @@ -219,9 +219,9 @@ Obsolete; use `mailcap-mime-types'. | |||
| 219 | 219 | ||
| 220 | See also \\[mh-mh-to-mime].") | 220 | See also \\[mh-mh-to-mime].") |
| 221 | 221 | ||
| 222 | ;;; Delete mh-minibuffer-read-type and mh-mime-content-types and use | 222 | ;; Delete mh-minibuffer-read-type and mh-mime-content-types and use |
| 223 | ;;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we | 223 | ;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we |
| 224 | ;;; think (mh-file-mime-type) is better than (mm-default-file-encoding). | 224 | ;; think (mh-file-mime-type) is better than (mm-default-file-encoding). |
| 225 | 225 | ||
| 226 | (defun mh-minibuffer-read-type (filename &optional default) | 226 | (defun mh-minibuffer-read-type (filename &optional default) |
| 227 | "Return the content type associated with the given FILENAME. | 227 | "Return the content type associated with the given FILENAME. |
| @@ -1347,9 +1347,9 @@ Parameter EL is unused." | |||
| 1347 | (mm-set-handle-multipart-parameter | 1347 | (mm-set-handle-multipart-parameter |
| 1348 | handle 'mh-region (cons (point-min-marker) (point-max-marker))))) | 1348 | handle 'mh-region (cons (point-min-marker) (point-max-marker))))) |
| 1349 | 1349 | ||
| 1350 | ;;; I rewrote the security part because Gnus doesn't seem to ever minimize | 1350 | ;; I rewrote the security part because Gnus doesn't seem to ever minimize |
| 1351 | ;;; the button. That is once the mime-security button is pressed there seems | 1351 | ;; the button. That is once the mime-security button is pressed there seems |
| 1352 | ;;; to be no way of getting rid of the inserted text. | 1352 | ;; to be no way of getting rid of the inserted text. |
| 1353 | (defun mh-mime-security-show-details (handle) | 1353 | (defun mh-mime-security-show-details (handle) |
| 1354 | "Toggle display of detailed security info for HANDLE." | 1354 | "Toggle display of detailed security info for HANDLE." |
| 1355 | (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details))) | 1355 | (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details))) |
| @@ -1509,10 +1509,10 @@ message multiple times." | |||
| 1509 | 1509 | ||
| 1510 | (provide 'mh-mime) | 1510 | (provide 'mh-mime) |
| 1511 | 1511 | ||
| 1512 | ;;; Local Variables: | 1512 | ;; Local Variables: |
| 1513 | ;;; indent-tabs-mode: nil | 1513 | ;; indent-tabs-mode: nil |
| 1514 | ;;; sentence-end-double-space: nil | 1514 | ;; sentence-end-double-space: nil |
| 1515 | ;;; End: | 1515 | ;; End: |
| 1516 | 1516 | ||
| 1517 | ;;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002 | 1517 | ;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002 |
| 1518 | ;;; mh-mime.el ends here | 1518 | ;;; mh-mime.el ends here |
diff --git a/lisp/mh-e/mh-pick.el b/lisp/mh-e/mh-pick.el index eb825fe462f..a20172ba6f3 100644 --- a/lisp/mh-e/mh-pick.el +++ b/lisp/mh-e/mh-pick.el | |||
| @@ -158,15 +158,22 @@ is used when the search folder is dismissed." | |||
| 158 | (add-text-properties (point) (1- (line-end-position)) '(read-only t)) | 158 | (add-text-properties (point) (1- (line-end-position)) '(read-only t)) |
| 159 | (goto-char (point-max))) | 159 | (goto-char (point-max))) |
| 160 | 160 | ||
| 161 | ;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) | 161 | |
| 162 | |||
| 163 | ;;; Build mh-pick-mode menu | ||
| 164 | |||
| 165 | ;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) | ||
| 162 | (easy-menu-define | 166 | (easy-menu-define |
| 163 | mh-pick-menu mh-pick-mode-map "Menu for MH-E pick-mode" | 167 | mh-pick-menu mh-pick-mode-map "Menu for MH-E pick-mode" |
| 164 | '("Pick" | 168 | '("Pick" |
| 165 | ["Execute the Search" mh-pick-do-search t])) | 169 | ["Execute the Search" mh-pick-do-search t])) |
| 166 | 170 | ||
| 167 | 171 | ||
| 172 | |||
| 173 | |||
| 168 | ;;; Help Messages | 174 | ;;; Help Messages |
| 169 | ;;; Group messages logically, more or less. | 175 | |
| 176 | ;; Group messages logically, more or less. | ||
| 170 | (defvar mh-pick-mode-help-messages | 177 | (defvar mh-pick-mode-help-messages |
| 171 | '((nil | 178 | '((nil |
| 172 | "Search messages using pick: \\[mh-pick-do-search]\n" | 179 | "Search messages using pick: \\[mh-pick-do-search]\n" |
| @@ -351,7 +358,8 @@ COMPONENT is the component to search." | |||
| 351 | 358 | ||
| 352 | 359 | ||
| 353 | ;;; Build the pick-mode keymap: | 360 | ;;; Build the pick-mode keymap: |
| 354 | ;;; If this changes, modify mh-pick-mode-help-messages accordingly, above. | 361 | |
| 362 | ;; If this changes, modify mh-pick-mode-help-messages accordingly, above. | ||
| 355 | (gnus-define-keys mh-pick-mode-map | 363 | (gnus-define-keys mh-pick-mode-map |
| 356 | "\C-c?" mh-help | 364 | "\C-c?" mh-help |
| 357 | "\C-c\C-i" mh-index-do-search | 365 | "\C-c\C-i" mh-index-do-search |
| @@ -374,10 +382,10 @@ COMPONENT is the component to search." | |||
| 374 | 382 | ||
| 375 | (provide 'mh-pick) | 383 | (provide 'mh-pick) |
| 376 | 384 | ||
| 377 | ;;; Local Variables: | 385 | ;; Local Variables: |
| 378 | ;;; indent-tabs-mode: nil | 386 | ;; indent-tabs-mode: nil |
| 379 | ;;; sentence-end-double-space: nil | 387 | ;; sentence-end-double-space: nil |
| 380 | ;;; End: | 388 | ;; End: |
| 381 | 389 | ||
| 382 | ;;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7 | 390 | ;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7 |
| 383 | ;;; mh-pick.el ends here | 391 | ;;; mh-pick.el ends here |
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el index cc35926aecc..acca58c494f 100644 --- a/lisp/mh-e/mh-print.el +++ b/lisp/mh-e/mh-print.el | |||
| @@ -183,7 +183,7 @@ best. You change this setting permanently by customizing the option | |||
| 183 | (setq mh-ps-print-color-option nil) | 183 | (setq mh-ps-print-color-option nil) |
| 184 | (message "Colors will not be printed")))) | 184 | (message "Colors will not be printed")))) |
| 185 | 185 | ||
| 186 | ;;; Old non-PS based printing | 186 | ;; Old non-PS based printing |
| 187 | ;;;###mh-autoload | 187 | ;;;###mh-autoload |
| 188 | (defun mh-print-msg (range) | 188 | (defun mh-print-msg (range) |
| 189 | "Print RANGE the old fashioned way\\<mh-folder-mode-map>. | 189 | "Print RANGE the old fashioned way\\<mh-folder-mode-map>. |
| @@ -242,10 +242,10 @@ Consider using \\[mh-ps-print-msg] instead." | |||
| 242 | 242 | ||
| 243 | (provide 'mh-print) | 243 | (provide 'mh-print) |
| 244 | 244 | ||
| 245 | ;;; Local Variables: | 245 | ;; Local Variables: |
| 246 | ;;; indent-tabs-mode: nil | 246 | ;; indent-tabs-mode: nil |
| 247 | ;;; sentence-end-double-space: nil | 247 | ;; sentence-end-double-space: nil |
| 248 | ;;; End: | 248 | ;; End: |
| 249 | 249 | ||
| 250 | ;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679 | 250 | ;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679 |
| 251 | ;;; mh-print.el ends here | 251 | ;;; mh-print.el ends here |
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el index 795970d3739..4942df58f71 100644 --- a/lisp/mh-e/mh-seq.el +++ b/lisp/mh-e/mh-seq.el | |||
| @@ -78,7 +78,10 @@ | |||
| 78 | ;; Shush the byte-compiler | 78 | ;; Shush the byte-compiler |
| 79 | (defvar tool-bar-mode) | 79 | (defvar tool-bar-mode) |
| 80 | 80 | ||
| 81 | |||
| 82 | |||
| 81 | ;;; Data structures (used in message threading)... | 83 | ;;; Data structures (used in message threading)... |
| 84 | |||
| 82 | (mh-defstruct (mh-thread-message (:conc-name mh-message-) | 85 | (mh-defstruct (mh-thread-message (:conc-name mh-message-) |
| 83 | (:constructor mh-thread-make-message)) | 86 | (:constructor mh-thread-make-message)) |
| 84 | (id nil) | 87 | (id nil) |
| @@ -91,15 +94,20 @@ | |||
| 91 | message parent children | 94 | message parent children |
| 92 | (real-child-p t)) | 95 | (real-child-p t)) |
| 93 | 96 | ||
| 97 | |||
| 94 | 98 | ||
| 95 | ;;; Internal variables: | 99 | ;;; Internal variables: |
| 100 | |||
| 96 | (defvar mh-last-seq-used nil | 101 | (defvar mh-last-seq-used nil |
| 97 | "Name of seq to which a msg was last added.") | 102 | "Name of seq to which a msg was last added.") |
| 98 | 103 | ||
| 99 | (defvar mh-non-seq-mode-line-annotation nil | 104 | (defvar mh-non-seq-mode-line-annotation nil |
| 100 | "Saved value of `mh-mode-line-annotation' when narrowed to a seq.") | 105 | "Saved value of `mh-mode-line-annotation' when narrowed to a seq.") |
| 101 | 106 | ||
| 107 | |||
| 108 | |||
| 102 | ;;; Maps and hashes... | 109 | ;;; Maps and hashes... |
| 110 | |||
| 103 | (defvar mh-thread-id-hash nil | 111 | (defvar mh-thread-id-hash nil |
| 104 | "Hashtable used to canonicalize message identifiers.") | 112 | "Hashtable used to canonicalize message identifiers.") |
| 105 | (defvar mh-thread-subject-hash nil | 113 | (defvar mh-thread-subject-hash nil |
| @@ -377,9 +385,10 @@ refiled are present in `mh-refile-list'." | |||
| 377 | 385 | ||
| 378 | 386 | ||
| 379 | 387 | ||
| 380 | ;;; Commands to manipulate sequences. Sequences are stored in an alist | 388 | ;;; Commands to manipulate sequences. |
| 381 | ;;; of the form: | 389 | |
| 382 | ;;; ((seq-name msgs ...) (seq-name msgs ...) ...) | 390 | ;; Sequences are stored in an alist of the form: |
| 391 | ;; ((seq-name msgs ...) (seq-name msgs ...) ...) | ||
| 383 | 392 | ||
| 384 | (defvar mh-sequence-history ()) | 393 | (defvar mh-sequence-history ()) |
| 385 | 394 | ||
| @@ -412,7 +421,10 @@ defaults to the first sequence containing the current message." | |||
| 412 | (error "No messages in sequence `%s'" seq)) | 421 | (error "No messages in sequence `%s'" seq)) |
| 413 | seq)) | 422 | seq)) |
| 414 | 423 | ||
| 424 | |||
| 425 | |||
| 415 | ;;; Functions to read ranges with completion... | 426 | ;;; Functions to read ranges with completion... |
| 427 | |||
| 416 | (defvar mh-range-seq-names) | 428 | (defvar mh-range-seq-names) |
| 417 | (defvar mh-range-history ()) | 429 | (defvar mh-range-history ()) |
| 418 | (defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map)) | 430 | (defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map)) |
| @@ -702,11 +714,10 @@ a uniform interface to MH-E functions." | |||
| 702 | 714 | ||
| 703 | 715 | ||
| 704 | 716 | ||
| 705 | ;;; Commands to handle new 'subject sequence. | 717 | ;;; Commands to handle new 'subject sequence ("Poor man's threading" by psg) |
| 706 | ;;; Or "Poor man's threading" by psg. | ||
| 707 | 718 | ||
| 708 | ;;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number | 719 | ;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number |
| 709 | ;;; 41 for the max size of the subject part. Avoiding this would be desirable. | 720 | ;; 41 for the max size of the subject part. Avoiding this would be desirable. |
| 710 | (defun mh-subject-to-sequence (all) | 721 | (defun mh-subject-to-sequence (all) |
| 711 | "Put all following messages with same subject in sequence 'subject. | 722 | "Put all following messages with same subject in sequence 'subject. |
| 712 | If arg ALL is t, move to beginning of folder buffer to collect all messages. | 723 | If arg ALL is t, move to beginning of folder buffer to collect all messages. |
| @@ -970,6 +981,8 @@ command behaves like \\[mh-thread-delete]." | |||
| 970 | (mh-thread-delete) | 981 | (mh-thread-delete) |
| 971 | (mh-delete-subject))) | 982 | (mh-delete-subject))) |
| 972 | 983 | ||
| 984 | |||
| 985 | |||
| 973 | ;;; Message threading: | 986 | ;;; Message threading: |
| 974 | 987 | ||
| 975 | (defmacro mh-thread-initialize-hash (var test) | 988 | (defmacro mh-thread-initialize-hash (var test) |
| @@ -1745,10 +1758,10 @@ messages. When you want to widen the view to all your messages again, use | |||
| 1745 | 1758 | ||
| 1746 | (provide 'mh-seq) | 1759 | (provide 'mh-seq) |
| 1747 | 1760 | ||
| 1748 | ;;; Local Variables: | 1761 | ;; Local Variables: |
| 1749 | ;;; indent-tabs-mode: nil | 1762 | ;; indent-tabs-mode: nil |
| 1750 | ;;; sentence-end-double-space: nil | 1763 | ;; sentence-end-double-space: nil |
| 1751 | ;;; End: | 1764 | ;; End: |
| 1752 | 1765 | ||
| 1753 | ;;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942 | 1766 | ;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942 |
| 1754 | ;;; mh-seq.el ends here | 1767 | ;;; mh-seq.el ends here |
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el index 4b33a81a7e9..64aa84fa8d8 100644 --- a/lisp/mh-e/mh-speed.el +++ b/lisp/mh-e/mh-speed.el | |||
| @@ -558,10 +558,10 @@ The function invalidates the latest ancestor that is present." | |||
| 558 | 558 | ||
| 559 | (provide 'mh-speed) | 559 | (provide 'mh-speed) |
| 560 | 560 | ||
| 561 | ;;; Local Variables: | 561 | ;; Local Variables: |
| 562 | ;;; indent-tabs-mode: nil | 562 | ;; indent-tabs-mode: nil |
| 563 | ;;; sentence-end-double-space: nil | 563 | ;; sentence-end-double-space: nil |
| 564 | ;;; End: | 564 | ;; End: |
| 565 | 565 | ||
| 566 | ;;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c | 566 | ;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c |
| 567 | ;;; mh-speed.el ends here | 567 | ;;; mh-speed.el ends here |
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index cc48b1248d4..e39d141b70b 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el | |||
| @@ -62,7 +62,10 @@ | |||
| 62 | (defvar font-lock-defaults) | 62 | (defvar font-lock-defaults) |
| 63 | (defvar mark-active) | 63 | (defvar mark-active) |
| 64 | 64 | ||
| 65 | |||
| 66 | |||
| 65 | ;;; Autoloads | 67 | ;;; Autoloads |
| 68 | |||
| 66 | (autoload 'gnus-article-highlight-citation "gnus-cite") | 69 | (autoload 'gnus-article-highlight-citation "gnus-cite") |
| 67 | (autoload 'message-fetch-field "message") | 70 | (autoload 'message-fetch-field "message") |
| 68 | (autoload 'message-tokenize-header "message") | 71 | (autoload 'message-tokenize-header "message") |
| @@ -70,7 +73,10 @@ | |||
| 70 | (unless (fboundp 'make-hash-table) | 73 | (unless (fboundp 'make-hash-table) |
| 71 | (autoload 'make-hash-table "cl")) | 74 | (autoload 'make-hash-table "cl")) |
| 72 | 75 | ||
| 76 | |||
| 77 | |||
| 73 | ;;; CL Replacements | 78 | ;;; CL Replacements |
| 79 | |||
| 74 | (defun mh-search-from-end (char string) | 80 | (defun mh-search-from-end (char string) |
| 75 | "Return the position of last occurrence of CHAR in STRING. | 81 | "Return the position of last occurrence of CHAR in STRING. |
| 76 | If CHAR is not present in STRING then return nil. The function is used in lieu | 82 | If CHAR is not present in STRING then return nil. The function is used in lieu |
| @@ -79,10 +85,11 @@ of `search' in the CL package." | |||
| 79 | when (equal (aref string index) char) return index | 85 | when (equal (aref string index) char) return index |
| 80 | finally return nil)) | 86 | finally return nil)) |
| 81 | 87 | ||
| 82 | ;;; Additional header fields that might someday be added: | 88 | ;; Additional header fields that might someday be added: |
| 83 | ;;; "Sender: " "Reply-to: " | 89 | ;; "Sender: " "Reply-to: " |
| 84 | 90 | ||
| 85 | 91 | ||
| 92 | |||
| 86 | ;;; Scan Line Formats | 93 | ;;; Scan Line Formats |
| 87 | 94 | ||
| 88 | (defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)" | 95 | (defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)" |
| @@ -171,7 +178,8 @@ Use `mh-signature-separator-regexp' when searching for a separator.") | |||
| 171 | ; this number | 178 | ; this number |
| 172 | (part-index-hash (make-hash-table))) ; Avoid incrementing the part number | 179 | (part-index-hash (make-hash-table))) ; Avoid incrementing the part number |
| 173 | ; for nested messages | 180 | ; for nested messages |
| 174 | ;;; This has to be a macro, since we do: (setf (mh-buffer-data) ...) | 181 | |
| 182 | ;; This has to be a macro, since we do: (setf (mh-buffer-data) ...) | ||
| 175 | (defmacro mh-buffer-data () | 183 | (defmacro mh-buffer-data () |
| 176 | "Convenience macro to get the MIME data structures of the current buffer." | 184 | "Convenience macro to get the MIME data structures of the current buffer." |
| 177 | `(gethash (current-buffer) mh-globals-hash)) | 185 | `(gethash (current-buffer) mh-globals-hash)) |
| @@ -457,6 +465,8 @@ about the fontification operation." | |||
| 457 | (gnus-article-highlight-citation t) | 465 | (gnus-article-highlight-citation t) |
| 458 | (set-buffer-modified-p modified)))) | 466 | (set-buffer-modified-p modified)))) |
| 459 | 467 | ||
| 468 | |||
| 469 | |||
| 460 | ;;; Internal bookkeeping variables: | 470 | ;;; Internal bookkeeping variables: |
| 461 | 471 | ||
| 462 | ;; Cached value of the `Path:' component in the user's MH profile. | 472 | ;; Cached value of the `Path:' component in the user's MH profile. |
| @@ -510,6 +520,8 @@ about the fontification operation." | |||
| 510 | ;;Non-nil means next SPC or whatever goes to next undeleted message. | 520 | ;;Non-nil means next SPC or whatever goes to next undeleted message. |
| 511 | (defvar mh-page-to-next-msg-flag nil) | 521 | (defvar mh-page-to-next-msg-flag nil) |
| 512 | 522 | ||
| 523 | |||
| 524 | |||
| 513 | ;;; Internal variables local to a folder. | 525 | ;;; Internal variables local to a folder. |
| 514 | 526 | ||
| 515 | ;; Name of current folder, a string. | 527 | ;; Name of current folder, a string. |
| @@ -554,7 +566,7 @@ about the fontification operation." | |||
| 554 | (cons modeline-buffer-id-left-extent "XEmacs%N:")) | 566 | (cons modeline-buffer-id-left-extent "XEmacs%N:")) |
| 555 | (cons modeline-buffer-id-right-extent " %17b"))))) | 567 | (cons modeline-buffer-id-right-extent " %17b"))))) |
| 556 | 568 | ||
| 557 | ;;; This holds a documentation string used by describe-mode. | 569 | ;; This holds a documentation string used by describe-mode. |
| 558 | (defun mh-showing-mode (&optional arg) | 570 | (defun mh-showing-mode (&optional arg) |
| 559 | "Change whether messages should be displayed. | 571 | "Change whether messages should be displayed. |
| 560 | With arg, display messages iff ARG is positive." | 572 | With arg, display messages iff ARG is positive." |
| @@ -574,6 +586,8 @@ With arg, display messages iff ARG is positive." | |||
| 574 | ;; Showing message with headers or normally. | 586 | ;; Showing message with headers or normally. |
| 575 | (defvar mh-showing-with-headers nil) | 587 | (defvar mh-showing-with-headers nil) |
| 576 | 588 | ||
| 589 | |||
| 590 | |||
| 577 | ;;; MH-E macros | 591 | ;;; MH-E macros |
| 578 | 592 | ||
| 579 | (defmacro with-mh-folder-updating (save-modification-flag &rest body) | 593 | (defmacro with-mh-folder-updating (save-modification-flag &rest body) |
| @@ -740,10 +754,10 @@ See `expand-file-name' for description of DEFAULT." | |||
| 740 | (mh-expand-file-name folder) | 754 | (mh-expand-file-name folder) |
| 741 | mh-folder-filename))) | 755 | mh-folder-filename))) |
| 742 | 756 | ||
| 743 | ;;; Infrastructure to generate show-buffer functions from folder functions | 757 | ;; Infrastructure to generate show-buffer functions from folder functions |
| 744 | ;;; XEmacs does not have deactivate-mark? What is the equivalent of | 758 | ;; XEmacs does not have deactivate-mark? What is the equivalent of |
| 745 | ;;; transient-mark-mode for XEmacs? Should we be restoring the mark in the | 759 | ;; transient-mark-mode for XEmacs? Should we be restoring the mark in the |
| 746 | ;;; folder buffer after the operation has been carried out. | 760 | ;; folder buffer after the operation has been carried out. |
| 747 | (defmacro mh-defun-show-buffer (function original-function | 761 | (defmacro mh-defun-show-buffer (function original-function |
| 748 | &optional dont-return) | 762 | &optional dont-return) |
| 749 | "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer. | 763 | "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer. |
| @@ -784,8 +798,8 @@ still visible.\n") | |||
| 784 | (get-buffer cur-buffer-name)))) | 798 | (get-buffer cur-buffer-name)))) |
| 785 | (pop-to-buffer (get-buffer cur-buffer-name) nil))))))))) | 799 | (pop-to-buffer (get-buffer cur-buffer-name) nil))))))))) |
| 786 | 800 | ||
| 787 | ;;; Generate interactive functions for the show buffer from the corresponding | 801 | ;; Generate interactive functions for the show buffer from the corresponding |
| 788 | ;;; folder functions. | 802 | ;; folder functions. |
| 789 | (mh-defun-show-buffer mh-show-previous-undeleted-msg | 803 | (mh-defun-show-buffer mh-show-previous-undeleted-msg |
| 790 | mh-previous-undeleted-msg) | 804 | mh-previous-undeleted-msg) |
| 791 | (mh-defun-show-buffer mh-show-next-undeleted-msg | 805 | (mh-defun-show-buffer mh-show-next-undeleted-msg |
| @@ -883,7 +897,10 @@ still visible.\n") | |||
| 883 | (mh-defun-show-buffer mh-show-display-with-external-viewer | 897 | (mh-defun-show-buffer mh-show-display-with-external-viewer |
| 884 | mh-display-with-external-viewer) | 898 | mh-display-with-external-viewer) |
| 885 | 899 | ||
| 886 | ;;; Populate mh-show-mode-map | 900 | |
| 901 | |||
| 902 | ;;; Build mh-show-mode keymaps | ||
| 903 | |||
| 887 | (gnus-define-keys mh-show-mode-map | 904 | (gnus-define-keys mh-show-mode-map |
| 888 | " " mh-show-page-msg | 905 | " " mh-show-page-msg |
| 889 | "!" mh-show-refile-or-write-again | 906 | "!" mh-show-refile-or-write-again |
| @@ -1081,7 +1098,7 @@ still visible.\n") | |||
| 1081 | ["Quit MH-E" mh-quit t])) | 1098 | ["Quit MH-E" mh-quit t])) |
| 1082 | 1099 | ||
| 1083 | 1100 | ||
| 1084 | ;;; Ensure new buffers won't get this mode if default-major-mode is nil. | 1101 | ;; Ensure new buffers won't get this mode if default-major-mode is nil. |
| 1085 | (put 'mh-show-mode 'mode-class 'special) | 1102 | (put 'mh-show-mode 'mode-class 'special) |
| 1086 | 1103 | ||
| 1087 | ;; Avoid compiler warnings in XEmacs and Emacs 20 | 1104 | ;; Avoid compiler warnings in XEmacs and Emacs 20 |
| @@ -1120,7 +1137,7 @@ See also `mh-folder-mode'. | |||
| 1120 | font-lock-auto-fontify) | 1137 | font-lock-auto-fontify) |
| 1121 | (turn-on-font-lock)) | 1138 | (turn-on-font-lock)) |
| 1122 | (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map) | 1139 | (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map) |
| 1123 | (mh-funcall-if-exists mh-toolbar-init :show) | 1140 | (mh-funcall-if-exists mh-tool-bar-init :show) |
| 1124 | (when mh-decode-mime-flag | 1141 | (when mh-decode-mime-flag |
| 1125 | (mh-make-local-hook 'kill-buffer-hook) | 1142 | (mh-make-local-hook 'kill-buffer-hook) |
| 1126 | (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t)) | 1143 | (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t)) |
| @@ -1260,10 +1277,10 @@ is used." | |||
| 1260 | 1277 | ||
| 1261 | 1278 | ||
| 1262 | 1279 | ||
| 1263 | ;; Picon display | 1280 | ;;; Picon display |
| 1264 | 1281 | ||
| 1265 | ;;; XXX: This should be customizable. As a side-effect of setting this | 1282 | ;; XXX: This should be customizable. As a side-effect of setting this |
| 1266 | ;;; variable, arrange to reset mh-picon-existing-directory-list to 'unset. | 1283 | ;; variable, arrange to reset mh-picon-existing-directory-list to 'unset. |
| 1267 | (defvar mh-picon-directory-list | 1284 | (defvar mh-picon-directory-list |
| 1268 | '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news" | 1285 | '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news" |
| 1269 | "~/.picons/domains" "~/.picons/misc" | 1286 | "~/.picons/domains" "~/.picons/misc" |
| @@ -2388,6 +2405,8 @@ The function returns the size of the final size of the log buffer." | |||
| 2388 | (insert "\n\n")) | 2405 | (insert "\n\n")) |
| 2389 | (buffer-size))) | 2406 | (buffer-size))) |
| 2390 | 2407 | ||
| 2408 | |||
| 2409 | |||
| 2391 | ;;; Issue commands to MH. | 2410 | ;;; Issue commands to MH. |
| 2392 | 2411 | ||
| 2393 | (defun mh-exec-cmd (command &rest args) | 2412 | (defun mh-exec-cmd (command &rest args) |
| @@ -2593,10 +2612,10 @@ older versions of Gnus." | |||
| 2593 | 2612 | ||
| 2594 | (provide 'mh-utils) | 2613 | (provide 'mh-utils) |
| 2595 | 2614 | ||
| 2596 | ;;; Local Variables: | 2615 | ;; Local Variables: |
| 2597 | ;;; indent-tabs-mode: nil | 2616 | ;; indent-tabs-mode: nil |
| 2598 | ;;; sentence-end-double-space: nil | 2617 | ;; sentence-end-double-space: nil |
| 2599 | ;;; End: | 2618 | ;; End: |
| 2600 | 2619 | ||
| 2601 | ;;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36 | 2620 | ;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36 |
| 2602 | ;;; mh-utils.el ends here | 2621 | ;;; mh-utils.el ends here |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 5728499db43..51291d717b6 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -1336,7 +1336,7 @@ shell-specific features. | |||
| 1336 | The default style of this mode is that of Rosenblatt's Korn shell book. | 1336 | The default style of this mode is that of Rosenblatt's Korn shell book. |
| 1337 | The syntax of the statements varies with the shell being used. The | 1337 | The syntax of the statements varies with the shell being used. The |
| 1338 | following commands are available, based on the current shell's syntax: | 1338 | following commands are available, based on the current shell's syntax: |
| 1339 | 1339 | \\<sh-mode-map> | |
| 1340 | \\[sh-case] case statement | 1340 | \\[sh-case] case statement |
| 1341 | \\[sh-for] for loop | 1341 | \\[sh-for] for loop |
| 1342 | \\[sh-function] function definition | 1342 | \\[sh-function] function definition |
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index 6cc23f7bf6b..090f0431218 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | ;;; ps-bdf.el --- BDF font file handler for ps-print | 1 | ;;; ps-bdf.el --- BDF font file handler for ps-print |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 1999, 2001, 2003 Electrotechnical Laboratory, JAPAN. | 3 | ;; Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. |
| 4 | ;; Licensed to the Free Software Foundation. | 4 | ;; Copyright (C) 1998, 1999, 2001, 2003 |
| 5 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | ||
| 6 | ;; Registration Number H14PRO021 | ||
| 5 | 7 | ||
| 6 | ;; Keywords: wp, BDF, font, PostScript | 8 | ;; Keywords: wp, BDF, font, PostScript |
| 7 | ;; Maintainer: Kenichi Handa <handa@etl.go.jp> | 9 | ;; Maintainer: Kenichi Handa <handa@etl.go.jp> |
diff --git a/lisp/subr.el b/lisp/subr.el index e55858e42d8..01444481b22 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -2280,7 +2280,7 @@ from which the minibuffer was entered. The return value of | |||
| 2280 | (let ((str (make-symbol "string"))) | 2280 | (let ((str (make-symbol "string"))) |
| 2281 | `(dynamic-completion-table | 2281 | `(dynamic-completion-table |
| 2282 | (lambda (,str) | 2282 | (lambda (,str) |
| 2283 | (unless (listp ,var) | 2283 | (when (functionp ,var) |
| 2284 | (setq ,var (,fun ,@args))) | 2284 | (setq ,var (,fun ,@args))) |
| 2285 | ,var)))) | 2285 | ,var)))) |
| 2286 | 2286 | ||
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index c4ccc9588ed..6feaa347c8b 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el | |||
| @@ -1140,6 +1140,7 @@ correspoinding TextEncodingBase value." | |||
| 1140 | 1140 | ||
| 1141 | ;;;; Keyboard layout/language change events | 1141 | ;;;; Keyboard layout/language change events |
| 1142 | (defun mac-handle-language-change (event) | 1142 | (defun mac-handle-language-change (event) |
| 1143 | "Set keyboard coding system to what is specified in EVENT." | ||
| 1143 | (interactive "e") | 1144 | (interactive "e") |
| 1144 | (let ((coding-system | 1145 | (let ((coding-system |
| 1145 | (cdr (assq (car (cadr event)) mac-script-code-coding-systems)))) | 1146 | (cdr (assq (car (cadr event)) mac-script-code-coding-systems)))) |
| @@ -1201,21 +1202,14 @@ in `selection-converter-alist', which see." | |||
| 1201 | (when (and (stringp data) | 1202 | (when (and (stringp data) |
| 1202 | (setq data-type (get-text-property 0 'foreign-selection data))) | 1203 | (setq data-type (get-text-property 0 'foreign-selection data))) |
| 1203 | (cond ((eq data-type 'public.utf16-plain-text) | 1204 | (cond ((eq data-type 'public.utf16-plain-text) |
| 1204 | (if (fboundp 'mac-code-convert-string) | 1205 | (let ((encoded (and (fboundp 'mac-code-convert-string) |
| 1205 | (let ((s (mac-code-convert-string data nil coding))) | 1206 | (mac-code-convert-string data nil coding)))) |
| 1206 | (if s | 1207 | (if encoded |
| 1207 | (setq data (decode-coding-string s coding)) | 1208 | (setq data (decode-coding-string encoded coding)) |
| 1208 | (setq data | 1209 | (setq data |
| 1209 | ;; (decode-coding-string data 'utf-16) is | 1210 | (decode-coding-string data |
| 1210 | ;; not correct because | 1211 | (if (eq (byteorder) ?B) |
| 1211 | ;; public.utf16-plain-text is defined as | 1212 | 'utf-16be 'utf-16le)))))) |
| 1212 | ;; native byte order, no BOM. | ||
| 1213 | (decode-coding-string | ||
| 1214 | (mac-code-convert-string data nil 'utf-8) | ||
| 1215 | 'utf-8)))) | ||
| 1216 | ;; No `mac-code-convert-string' means non-Carbon, which | ||
| 1217 | ;; implies big endian. | ||
| 1218 | (setq data (decode-coding-string data 'utf-16be)))) | ||
| 1219 | ((eq data-type 'com.apple.traditional-mac-plain-text) | 1213 | ((eq data-type 'com.apple.traditional-mac-plain-text) |
| 1220 | (setq data (decode-coding-string data coding))) | 1214 | (setq data (decode-coding-string data coding))) |
| 1221 | ((eq data-type 'public.file-url) | 1215 | ((eq data-type 'public.file-url) |
| @@ -1332,25 +1326,17 @@ in `selection-converter-alist', which see." | |||
| 1332 | (remove-text-properties 0 (length str) '(composition nil) str) | 1326 | (remove-text-properties 0 (length str) '(composition nil) str) |
| 1333 | (cond | 1327 | (cond |
| 1334 | ((eq type 'public.utf16-plain-text) | 1328 | ((eq type 'public.utf16-plain-text) |
| 1335 | (if (fboundp 'mac-code-convert-string) | 1329 | (let (s) |
| 1336 | (let (s) | 1330 | (when (and (fboundp 'mac-code-convert-string) |
| 1337 | (when (memq coding (find-coding-systems-string str)) | 1331 | (memq coding (find-coding-systems-string str))) |
| 1338 | (setq coding | 1332 | (setq coding (coding-system-change-eol-conversion coding 'mac)) |
| 1339 | (coding-system-change-eol-conversion coding 'mac)) | 1333 | (setq s (mac-code-convert-string |
| 1340 | (setq s (mac-code-convert-string | 1334 | (encode-coding-string str coding) |
| 1341 | (encode-coding-string str coding) | 1335 | coding nil))) |
| 1342 | coding nil))) | 1336 | (setq str (or s |
| 1343 | (setq str (or s | 1337 | (encode-coding-string str |
| 1344 | ;; (encode-coding-string str | 1338 | (if (eq (byteorder) ?B) |
| 1345 | ;; 'utf-16-mac) is not correct because | 1339 | 'utf-16be 'utf-16le)))))) |
| 1346 | ;; public.utf16-plain-text is defined | ||
| 1347 | ;; as native byte order, no BOM. | ||
| 1348 | (mac-code-convert-string | ||
| 1349 | (encode-coding-string str 'utf-8-mac) | ||
| 1350 | 'utf-8 nil)))) | ||
| 1351 | ;; No `mac-code-convert-string' means non-Carbon, which | ||
| 1352 | ;; implies big endian. | ||
| 1353 | (setq str (encode-coding-string str 'utf-16be-mac)))) | ||
| 1354 | ((eq type 'com.apple.traditional-mac-plain-text) | 1340 | ((eq type 'com.apple.traditional-mac-plain-text) |
| 1355 | (let ((encodables (find-coding-systems-string str)) | 1341 | (let ((encodables (find-coding-systems-string str)) |
| 1356 | (rest mac-script-code-coding-systems)) | 1342 | (rest mac-script-code-coding-systems)) |
| @@ -1484,6 +1470,7 @@ in `selection-converter-alist', which see." | |||
| 1484 | (decode-coding-string utf8-text 'utf-8)))) | 1470 | (decode-coding-string utf8-text 'utf-8)))) |
| 1485 | 1471 | ||
| 1486 | (defun mac-ae-open-documents (event) | 1472 | (defun mac-ae-open-documents (event) |
| 1473 | "Open the documents specified by the Apple event EVENT." | ||
| 1487 | (interactive "e") | 1474 | (interactive "e") |
| 1488 | (let ((ae (mac-event-ae event))) | 1475 | (let ((ae (mac-event-ae event))) |
| 1489 | (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name)) | 1476 | (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name)) |
| @@ -1511,6 +1498,8 @@ in `selection-converter-alist', which see." | |||
| 1511 | (error "No text in Apple event."))) | 1498 | (error "No text in Apple event."))) |
| 1512 | 1499 | ||
| 1513 | (defun mac-ae-get-url (event) | 1500 | (defun mac-ae-get-url (event) |
| 1501 | "Open the URL specified by the Apple event EVENT. | ||
| 1502 | Currently the `mailto' scheme is supported." | ||
| 1514 | (interactive "e") | 1503 | (interactive "e") |
| 1515 | (let* ((ae (mac-event-ae event)) | 1504 | (let* ((ae (mac-event-ae event)) |
| 1516 | (parsed-url (url-generic-parse-url (mac-ae-text ae)))) | 1505 | (parsed-url (url-generic-parse-url (mac-ae-text ae)))) |
| @@ -1541,10 +1530,12 @@ in `selection-converter-alist', which see." | |||
| 1541 | (define-key mac-apple-event-map [hicommand about] 'display-splash-screen) | 1530 | (define-key mac-apple-event-map [hicommand about] 'display-splash-screen) |
| 1542 | 1531 | ||
| 1543 | (defun mac-services-open-file () | 1532 | (defun mac-services-open-file () |
| 1533 | "Open the file specified by the selection value for Services." | ||
| 1544 | (interactive) | 1534 | (interactive) |
| 1545 | (find-file-existing (x-selection-value mac-services-selection))) | 1535 | (find-file-existing (x-selection-value mac-services-selection))) |
| 1546 | 1536 | ||
| 1547 | (defun mac-services-open-selection () | 1537 | (defun mac-services-open-selection () |
| 1538 | "Create a new buffer containing the selection value for Services." | ||
| 1548 | (interactive) | 1539 | (interactive) |
| 1549 | (switch-to-buffer (generate-new-buffer "*untitled*")) | 1540 | (switch-to-buffer (generate-new-buffer "*untitled*")) |
| 1550 | (insert (x-selection-value mac-services-selection)) | 1541 | (insert (x-selection-value mac-services-selection)) |
| @@ -1553,6 +1544,7 @@ in `selection-converter-alist', which see." | |||
| 1553 | ) | 1544 | ) |
| 1554 | 1545 | ||
| 1555 | (defun mac-services-mail-selection () | 1546 | (defun mac-services-mail-selection () |
| 1547 | "Prepare a mail buffer containing the selection value for Services." | ||
| 1556 | (interactive) | 1548 | (interactive) |
| 1557 | (compose-mail) | 1549 | (compose-mail) |
| 1558 | (rfc822-goto-eoh) | 1550 | (rfc822-goto-eoh) |
| @@ -1560,10 +1552,12 @@ in `selection-converter-alist', which see." | |||
| 1560 | (insert (x-selection-value mac-services-selection) "\n")) | 1552 | (insert (x-selection-value mac-services-selection) "\n")) |
| 1561 | 1553 | ||
| 1562 | (defun mac-services-mail-to () | 1554 | (defun mac-services-mail-to () |
| 1555 | "Prepare a mail buffer to be sent to the selection value for Services." | ||
| 1563 | (interactive) | 1556 | (interactive) |
| 1564 | (compose-mail (x-selection-value mac-services-selection))) | 1557 | (compose-mail (x-selection-value mac-services-selection))) |
| 1565 | 1558 | ||
| 1566 | (defun mac-services-insert-text () | 1559 | (defun mac-services-insert-text () |
| 1560 | "Insert the selection value for Services." | ||
| 1567 | (interactive) | 1561 | (interactive) |
| 1568 | (let ((text (x-selection-value mac-services-selection))) | 1562 | (let ((text (x-selection-value mac-services-selection))) |
| 1569 | (if (not buffer-read-only) | 1563 | (if (not buffer-read-only) |
| @@ -1584,6 +1578,7 @@ in `selection-converter-alist', which see." | |||
| 1584 | 'mac-services-mail-to) | 1578 | 'mac-services-mail-to) |
| 1585 | 1579 | ||
| 1586 | (defun mac-dispatch-apple-event (event) | 1580 | (defun mac-dispatch-apple-event (event) |
| 1581 | "Dispatch EVENT according to the keymap `mac-apple-event-map'." | ||
| 1587 | (interactive "e") | 1582 | (interactive "e") |
| 1588 | (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event))) | 1583 | (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event))) |
| 1589 | (service-message | 1584 | (service-message |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 2e79be9e4cc..3cdc40b9f32 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.00 | 8 | ;; Version: 4.01 |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -81,6 +81,13 @@ | |||
| 81 | ;; | 81 | ;; |
| 82 | ;; Changes: | 82 | ;; Changes: |
| 83 | ;; ------- | 83 | ;; ------- |
| 84 | ;; Version 4.01 | ||
| 85 | ;; - Tags can also be set remotely from agenda buffer. | ||
| 86 | ;; - Boolean logic for tag searches. | ||
| 87 | ;; - Additional agenda commands can be configured through the variable | ||
| 88 | ;; `org-agenda-custom-commands'. | ||
| 89 | ;; - Minor bug fixes. | ||
| 90 | ;; | ||
| 84 | ;; Version 4.00 | 91 | ;; Version 4.00 |
| 85 | ;; - Headlines can contain TAGS, and Org-mode can produced a list | 92 | ;; - Headlines can contain TAGS, and Org-mode can produced a list |
| 86 | ;; of matching headlines based on a TAG search expression. | 93 | ;; of matching headlines based on a TAG search expression. |
| @@ -199,7 +206,7 @@ | |||
| 199 | ;; - Cleanup. | 206 | ;; - Cleanup. |
| 200 | ;; | 207 | ;; |
| 201 | ;; Version 3.07 | 208 | ;; Version 3.07 |
| 202 | ;; - Some folding incinsistencies removed. | 209 | ;; - Some folding inconsistencies removed. |
| 203 | ;; - BBDB links to company-only entries. | 210 | ;; - BBDB links to company-only entries. |
| 204 | ;; - Bug fixes and global cleanup. | 211 | ;; - Bug fixes and global cleanup. |
| 205 | ;; | 212 | ;; |
| @@ -266,7 +273,7 @@ | |||
| 266 | 273 | ||
| 267 | ;;; Customization variables | 274 | ;;; Customization variables |
| 268 | 275 | ||
| 269 | (defvar org-version "4.00" | 276 | (defvar org-version "4.01" |
| 270 | "The version number of the file org.el.") | 277 | "The version number of the file org.el.") |
| 271 | (defun org-version () | 278 | (defun org-version () |
| 272 | (interactive) | 279 | (interactive) |
| @@ -594,6 +601,23 @@ Entries are added to this list with \\[org-agenda-file-to-front] and removed wit | |||
| 594 | :group 'org-agenda | 601 | :group 'org-agenda |
| 595 | :type '(repeat file)) | 602 | :type '(repeat file)) |
| 596 | 603 | ||
| 604 | (defcustom org-agenda-custom-commands | ||
| 605 | '(("w" todo "WAITING") | ||
| 606 | ("u" tags "+WORK+URGENT-BOSS")) | ||
| 607 | "Custom commands for the agenda. | ||
| 608 | These commands will be offered on the splash screen displayed by the | ||
| 609 | agenda dispatcher \\[org-agenda]. Each entry is a list of 3 items: | ||
| 610 | |||
| 611 | key The key (as a string) to be associated with the command. | ||
| 612 | type The command type, either `todo' for a todo list with a specific | ||
| 613 | todo keyword, or `tags' for a tags search. | ||
| 614 | match What to search for. Either a TODO keyword, or a tags match query." | ||
| 615 | :group 'org-agenda | ||
| 616 | :type '(repeat | ||
| 617 | (list (string :tag "Key") | ||
| 618 | (choice :tag "Type" (const tags) (const todo)) | ||
| 619 | (string :tag "Match")))) | ||
| 620 | |||
| 597 | (defcustom org-select-timeline-window t | 621 | (defcustom org-select-timeline-window t |
| 598 | "Non-nil means, after creating a timeline, move cursor into Timeline window. | 622 | "Non-nil means, after creating a timeline, move cursor into Timeline window. |
| 599 | When nil, cursor will remain in the current window." | 623 | When nil, cursor will remain in the current window." |
| @@ -981,7 +1005,7 @@ first line, so it is probably best to use this in combinations with | |||
| 981 | :tag "Org Tags" | 1005 | :tag "Org Tags" |
| 982 | :group 'org) | 1006 | :group 'org) |
| 983 | 1007 | ||
| 984 | (defcustom org-tags-column 40 | 1008 | (defcustom org-tags-column 48 |
| 985 | "The column to which tags should be indented in a headline. | 1009 | "The column to which tags should be indented in a headline. |
| 986 | If this number is positive, it specified the column. If it is negative, | 1010 | If this number is positive, it specified the column. If it is negative, |
| 987 | it means that the tags should be flushright to that column. For example, | 1011 | it means that the tags should be flushright to that column. For example, |
| @@ -989,9 +1013,19 @@ it means that the tags should be flushright to that column. For example, | |||
| 989 | :group 'org-tags | 1013 | :group 'org-tags |
| 990 | :type 'integer) | 1014 | :type 'integer) |
| 991 | 1015 | ||
| 1016 | (defcustom org-auto-align-tags t | ||
| 1017 | "Non-nil means, realign tags after pro/demotion of TODO state change. | ||
| 1018 | These operations change the length of a headline and therefore shift | ||
| 1019 | the tags around. With this options turned on, after each such operation | ||
| 1020 | the tags are again aligned to `org-tags-column'." | ||
| 1021 | :group 'org-tags | ||
| 1022 | :type 'boolean) | ||
| 1023 | |||
| 992 | (defcustom org-use-tag-inheritance t | 1024 | (defcustom org-use-tag-inheritance t |
| 993 | "Non-nil means, tags in levels apply also for sublevels. | 1025 | "Non-nil means, tags in levels apply also for sublevels. |
| 994 | When nil, only the tags directly give in a specific line apply there." | 1026 | When nil, only the tags directly give in a specific line apply there. |
| 1027 | If you turn off this option, you very likely want to turn on the | ||
| 1028 | companion option `org-tags-match-list-sublevels'." | ||
| 995 | :group 'org-tags | 1029 | :group 'org-tags |
| 996 | :type 'boolean) | 1030 | :type 'boolean) |
| 997 | 1031 | ||
| @@ -1000,7 +1034,9 @@ When nil, only the tags directly give in a specific line apply there." | |||
| 1000 | Because of tag inheritance (see variable `org-use-tag-inheritance'), | 1034 | Because of tag inheritance (see variable `org-use-tag-inheritance'), |
| 1001 | the sublevels of a headline matching a tag search often also match | 1035 | the sublevels of a headline matching a tag search often also match |
| 1002 | the same search. Listing all of them can create very long lists. | 1036 | the same search. Listing all of them can create very long lists. |
| 1003 | Setting this variable to nil causes subtrees to be skipped." | 1037 | Setting this variable to nil causes subtrees to be skipped. |
| 1038 | This option is off by default, because inheritance in on. If you turn | ||
| 1039 | inheritance off, you very likely want to turn this option on." | ||
| 1004 | :group 'org-tags | 1040 | :group 'org-tags |
| 1005 | :type 'boolean) | 1041 | :type 'boolean) |
| 1006 | 1042 | ||
| @@ -2721,6 +2757,8 @@ in the region." | |||
| 2721 | (up-head (make-string (1- level) ?*))) | 2757 | (up-head (make-string (1- level) ?*))) |
| 2722 | (if (= level 1) (error "Cannot promote to level 0. UNDO to recover")) | 2758 | (if (= level 1) (error "Cannot promote to level 0. UNDO to recover")) |
| 2723 | (replace-match up-head nil t) | 2759 | (replace-match up-head nil t) |
| 2760 | ;; Fixup tag positioning | ||
| 2761 | (and org-auto-align-tags (org-set-tags nil t)) | ||
| 2724 | (if org-adapt-indentation | 2762 | (if org-adapt-indentation |
| 2725 | (org-fixup-indentation "^ " "" "^ ?\\S-")))) | 2763 | (org-fixup-indentation "^ " "" "^ ?\\S-")))) |
| 2726 | 2764 | ||
| @@ -2732,6 +2770,8 @@ in the region." | |||
| 2732 | (let* ((level (save-match-data (funcall outline-level))) | 2770 | (let* ((level (save-match-data (funcall outline-level))) |
| 2733 | (down-head (make-string (1+ level) ?*))) | 2771 | (down-head (make-string (1+ level) ?*))) |
| 2734 | (replace-match down-head nil t) | 2772 | (replace-match down-head nil t) |
| 2773 | ;; Fixup tag positioning | ||
| 2774 | (and org-auto-align-tags (org-set-tags nil t)) | ||
| 2735 | (if org-adapt-indentation | 2775 | (if org-adapt-indentation |
| 2736 | (org-fixup-indentation "^ " " " "^\\S-")))) | 2776 | (org-fixup-indentation "^ " " " "^\\S-")))) |
| 2737 | 2777 | ||
| @@ -3467,6 +3507,8 @@ prefix arg, switch to that state." | |||
| 3467 | (org-log-done) | 3507 | (org-log-done) |
| 3468 | (if (not this) | 3508 | (if (not this) |
| 3469 | (org-log-done t)))) | 3509 | (org-log-done t)))) |
| 3510 | ;; Fixup tag positioning | ||
| 3511 | (and org-auto-align-tags (org-set-tags nil t)) | ||
| 3470 | (run-hooks 'org-after-todo-state-change-hook))) | 3512 | (run-hooks 'org-after-todo-state-change-hook))) |
| 3471 | ;; Fixup cursor location if close to the keyword | 3513 | ;; Fixup cursor location if close to the keyword |
| 3472 | (if (and (outline-on-heading-p) | 3514 | (if (and (outline-on-heading-p) |
| @@ -4226,6 +4268,7 @@ The following commands are available: | |||
| 4226 | (define-key org-agenda-mode-map "o" 'delete-other-windows) | 4268 | (define-key org-agenda-mode-map "o" 'delete-other-windows) |
| 4227 | (define-key org-agenda-mode-map "L" 'org-agenda-recenter) | 4269 | (define-key org-agenda-mode-map "L" 'org-agenda-recenter) |
| 4228 | (define-key org-agenda-mode-map "t" 'org-agenda-todo) | 4270 | (define-key org-agenda-mode-map "t" 'org-agenda-todo) |
| 4271 | (define-key org-agenda-mode-map ":" 'org-agenda-set-tags) | ||
| 4229 | (define-key org-agenda-mode-map "." 'org-agenda-goto-today) | 4272 | (define-key org-agenda-mode-map "." 'org-agenda-goto-today) |
| 4230 | (define-key org-agenda-mode-map "d" 'org-agenda-day-view) | 4273 | (define-key org-agenda-mode-map "d" 'org-agenda-day-view) |
| 4231 | (define-key org-agenda-mode-map "w" 'org-agenda-week-view) | 4274 | (define-key org-agenda-mode-map "w" 'org-agenda-week-view) |
| @@ -4293,6 +4336,7 @@ The following commands are available: | |||
| 4293 | :style toggle :selected org-agenda-follow-mode :active t] | 4336 | :style toggle :selected org-agenda-follow-mode :active t] |
| 4294 | "--" | 4337 | "--" |
| 4295 | ["Cycle TODO" org-agenda-todo t] | 4338 | ["Cycle TODO" org-agenda-todo t] |
| 4339 | ["Set Tags" org-agenda-set-tags t] | ||
| 4296 | ("Reschedule" | 4340 | ("Reschedule" |
| 4297 | ["Reschedule +1 day" org-agenda-date-later t] | 4341 | ["Reschedule +1 day" org-agenda-date-later t] |
| 4298 | ["Reschedule -1 day" org-agenda-date-earlier t] | 4342 | ["Reschedule -1 day" org-agenda-date-earlier t] |
| @@ -4338,7 +4382,7 @@ The following commands are available: | |||
| 4338 | (defun org-agenda (arg) | 4382 | (defun org-agenda (arg) |
| 4339 | "Dispatch agenda commands to collect entries to the agenda buffer. | 4383 | "Dispatch agenda commands to collect entries to the agenda buffer. |
| 4340 | Prompts for a character to select a command. Any prefix arg will be passed | 4384 | Prompts for a character to select a command. Any prefix arg will be passed |
| 4341 | on to the selected command. Possible selections are: | 4385 | on to the selected command. The default selections are: |
| 4342 | 4386 | ||
| 4343 | a Call `org-agenda' to display the agenda for the current day or week. | 4387 | a Call `org-agenda' to display the agenda for the current day or week. |
| 4344 | t Call `org-todo-list' to display the global todo list. | 4388 | t Call `org-todo-list' to display the global todo list. |
| @@ -4349,35 +4393,70 @@ m Call `org-tags-view' to display headlines with tags matching | |||
| 4349 | selections, like `+WORK+URGENT-WITHBOSS'. | 4393 | selections, like `+WORK+URGENT-WITHBOSS'. |
| 4350 | M like `m', but select only TODO entries, no ordinary headlines. | 4394 | M like `m', but select only TODO entries, no ordinary headlines. |
| 4351 | 4395 | ||
| 4396 | More commands can be added by configuring the variable | ||
| 4397 | `org-agenda-custom-commands'. | ||
| 4398 | |||
| 4352 | If the current buffer is in Org-mode and visiting a file, you can also | 4399 | If the current buffer is in Org-mode and visiting a file, you can also |
| 4353 | first press `1' to indicate that the agenda should be temporarily | 4400 | first press `1' to indicate that the agenda should be temporarily |
| 4354 | restricted to the current file." | 4401 | restricted to the current file." |
| 4355 | (interactive "P") | 4402 | (interactive "P") |
| 4356 | (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode))) | 4403 | (catch 'exit |
| 4357 | c) | 4404 | (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode))) |
| 4358 | (put 'org-agenda-files 'org-restrict nil) | 4405 | (custom org-agenda-custom-commands) |
| 4359 | (message"[a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo%s" | 4406 | c entry key type string) |
| 4360 | (if restrict-ok " [1]JustThisFile" "")) | 4407 | (put 'org-agenda-files 'org-restrict nil) |
| 4361 | (setq c (read-char-exclusive)) | 4408 | (save-window-excursion |
| 4362 | (message "") | 4409 | (delete-other-windows) |
| 4363 | (when (equal c ?1) | 4410 | (switch-to-buffer-other-window " *Agenda Commands*") |
| 4364 | (if restrict-ok | 4411 | (erase-buffer) |
| 4365 | (put 'org-agenda-files 'org-restrict (list (buffer-file-name))) | 4412 | (insert |
| 4366 | (error "Cannot restrict agenda to current buffer")) | 4413 | "Press key for an agenda command: |
| 4367 | (message "Single file: [a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo") | 4414 | -------------------------------- |
| 4368 | (setq c (read-char-exclusive)) | 4415 | a Agenda for current week or day |
| 4369 | (message "")) | 4416 | t List of all TODO entries T Entries with special TODO kwd |
| 4370 | (cond | 4417 | m Match a TAGS query M Like m, but only TODO entries. |
| 4371 | ((equal c ?a) (call-interactively 'org-agenda-list)) | 4418 | C Configure your own agenda commands") |
| 4372 | ((equal c ?t) (call-interactively 'org-todo-list)) | 4419 | (while (setq entry (pop custom)) |
| 4373 | ((equal c ?T) | 4420 | (setq key (car entry) type (nth 1 entry) string (nth 2 entry)) |
| 4374 | (setq current-prefix-arg (or arg '(4))) | 4421 | (insert (format "\n%-4s%-12s: %s" |
| 4375 | (call-interactively 'org-todo-list)) | 4422 | key |
| 4376 | ((equal c ?m) (call-interactively 'org-tags-view)) | 4423 | (if (eq type 'tags) "Tags query" "TODO keyword") |
| 4377 | ((equal c ?M) | 4424 | string))) |
| 4378 | (setq current-prefix-arg (or arg '(4))) | 4425 | (goto-char (point-min)) |
| 4379 | (call-interactively 'org-tags-view)) | 4426 | (fit-window-to-buffer) |
| 4380 | (t (error "Invalid key"))))) | 4427 | (message "Press key for agenda command%s" |
| 4428 | (if restrict-ok ", or [1] to restrict to current file" "")) | ||
| 4429 | (setq c (read-char-exclusive)) | ||
| 4430 | (message "") | ||
| 4431 | (when (equal c ?1) | ||
| 4432 | (if restrict-ok | ||
| 4433 | (put 'org-agenda-files 'org-restrict (list (buffer-file-name))) | ||
| 4434 | (error "Cannot restrict agenda to current buffer")) | ||
| 4435 | (message "Press key for agenda command%s" | ||
| 4436 | (if restrict-ok " (restricted to current file)" "")) | ||
| 4437 | (setq c (read-char-exclusive)) | ||
| 4438 | (message ""))) | ||
| 4439 | (require 'calendar) ; FIXME: can we avoid this for some commands? | ||
| 4440 | (cond | ||
| 4441 | ((equal c ?C) (customize-variable 'org-agenda-custom-commands)) | ||
| 4442 | ((equal c ?a) (call-interactively 'org-agenda-list)) | ||
| 4443 | ((equal c ?t) (call-interactively 'org-todo-list)) | ||
| 4444 | ((equal c ?T) | ||
| 4445 | (setq current-prefix-arg (or arg '(4))) | ||
| 4446 | (call-interactively 'org-todo-list)) | ||
| 4447 | ((equal c ?m) (call-interactively 'org-tags-view)) | ||
| 4448 | ((equal c ?M) | ||
| 4449 | (setq current-prefix-arg (or arg '(4))) | ||
| 4450 | (call-interactively 'org-tags-view)) | ||
| 4451 | ((setq entry (assoc (char-to-string c) org-agenda-custom-commands)) | ||
| 4452 | (setq type (nth 1 entry) string (nth 2 entry)) | ||
| 4453 | (cond | ||
| 4454 | ((eq type 'tags) | ||
| 4455 | (org-tags-view current-prefix-arg string)) | ||
| 4456 | ((eq type 'todo) | ||
| 4457 | (org-todo-list string)) | ||
| 4458 | (t (error "Invalid custom agenda command type %s" type)))) | ||
| 4459 | (t (error "Invalid key")))))) | ||
| 4381 | 4460 | ||
| 4382 | (defun org-fit-agenda-window () | 4461 | (defun org-fit-agenda-window () |
| 4383 | "Fit the window to the buffer size." | 4462 | "Fit the window to the buffer size." |
| @@ -4667,7 +4746,8 @@ for a keyword. A numeric prefix directly selects the Nth keyword in | |||
| 4667 | (kwds org-todo-keywords) | 4746 | (kwds org-todo-keywords) |
| 4668 | (completion-ignore-case t) | 4747 | (completion-ignore-case t) |
| 4669 | (org-select-this-todo-keyword | 4748 | (org-select-this-todo-keyword |
| 4670 | (and arg (integerp arg) (nth (1- arg) org-todo-keywords))) | 4749 | (if (stringp arg) arg |
| 4750 | (and arg (integerp arg) (nth (1- arg) org-todo-keywords)))) | ||
| 4671 | rtn rtnall files file pos) | 4751 | rtn rtnall files file pos) |
| 4672 | (when (equal arg '(4)) | 4752 | (when (equal arg '(4)) |
| 4673 | (setq org-select-this-todo-keyword | 4753 | (setq org-select-this-todo-keyword |
| @@ -6005,6 +6085,30 @@ the same tree node, and the headline of the tree node in the Org-mode file." | |||
| 6005 | (org-agenda-change-all-lines newhead hdmarker) | 6085 | (org-agenda-change-all-lines newhead hdmarker) |
| 6006 | (beginning-of-line 1))) | 6086 | (beginning-of-line 1))) |
| 6007 | 6087 | ||
| 6088 | (defun org-agenda-set-tags () | ||
| 6089 | "Set tags for the current headline." | ||
| 6090 | (interactive) | ||
| 6091 | (org-agenda-check-no-diary) | ||
| 6092 | (let* ((marker (or (get-text-property (point) 'org-marker) | ||
| 6093 | (org-agenda-error))) | ||
| 6094 | (hdmarker (get-text-property (point) 'org-hd-marker)) | ||
| 6095 | (buffer (marker-buffer hdmarker)) | ||
| 6096 | (pos (marker-position hdmarker)) | ||
| 6097 | (buffer-read-only nil) | ||
| 6098 | newhead) | ||
| 6099 | (with-current-buffer buffer | ||
| 6100 | (widen) | ||
| 6101 | (goto-char pos) | ||
| 6102 | (org-show-hidden-entry) | ||
| 6103 | (save-excursion | ||
| 6104 | (and (outline-next-heading) | ||
| 6105 | (org-flag-heading nil))) ; show the next heading | ||
| 6106 | (call-interactively 'org-set-tags) | ||
| 6107 | (end-of-line 1) | ||
| 6108 | (setq newhead (org-get-heading))) | ||
| 6109 | (org-agenda-change-all-lines newhead hdmarker) | ||
| 6110 | (beginning-of-line 1))) | ||
| 6111 | |||
| 6008 | (defun org-agenda-date-later (arg &optional what) | 6112 | (defun org-agenda-date-later (arg &optional what) |
| 6009 | "Change the date of this item to one day later." | 6113 | "Change the date of this item to one day later." |
| 6010 | (interactive "p") | 6114 | (interactive "p") |
| @@ -6269,21 +6373,34 @@ MATCH can contain positive and negative selection of tags, like | |||
| 6269 | (defun org-make-tags-matcher (match) | 6373 | (defun org-make-tags-matcher (match) |
| 6270 | "Create the TAGS matcher form for the tags-selecting string MATCH." | 6374 | "Create the TAGS matcher form for the tags-selecting string MATCH." |
| 6271 | (unless match | 6375 | (unless match |
| 6376 | ;; Get a new match request, with completion | ||
| 6272 | (setq org-last-tags-completion-table | 6377 | (setq org-last-tags-completion-table |
| 6273 | (or (org-get-buffer-tags) | 6378 | (or (org-get-buffer-tags) |
| 6274 | org-last-tags-completion-table)) | 6379 | org-last-tags-completion-table)) |
| 6275 | (setq match (completing-read | 6380 | (setq match (completing-read |
| 6276 | "Tags: " 'org-tags-completion-function nil nil nil | 6381 | "Tags: " 'org-tags-completion-function nil nil nil |
| 6277 | 'org-tags-history))) | 6382 | 'org-tags-history))) |
| 6278 | (let ((match0 match) minus tag mm matcher) | 6383 | ;; parse the string and create a lisp form |
| 6279 | (while (string-match "^\\([-+:]\\)?\\([A-Za-z_]+\\)" match) | 6384 | (let ((match0 match) minus tag mm matcher orterms term orlist) |
| 6280 | (setq minus (and (match-end 1) (equal (string-to-char match) ?-)) | 6385 | (setq orterms (org-split-string match "|")) |
| 6281 | tag (match-string 2 match) | 6386 | (while (setq term (pop orterms)) |
| 6282 | match (substring match (match-end 0)) | 6387 | (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_]+\\)" term) |
| 6283 | mm (list 'member (downcase tag) 'tags-list) | 6388 | (setq minus (and (match-end 1) |
| 6284 | mm (if minus (list 'not mm) mm)) | 6389 | (equal (match-string 1 term) "-")) |
| 6285 | (push mm matcher)) | 6390 | tag (match-string 2 term) |
| 6286 | (cons match0 (cons 'and matcher)))) | 6391 | term (substring term (match-end 0)) |
| 6392 | mm (list 'member (downcase tag) 'tags-list) | ||
| 6393 | mm (if minus (list 'not mm) mm)) | ||
| 6394 | (push mm matcher)) | ||
| 6395 | (push (if (> (length matcher) 1) (cons 'and matcher) (car matcher)) | ||
| 6396 | orlist) | ||
| 6397 | (setq matcher nil)) | ||
| 6398 | (setq matcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist))) | ||
| 6399 | ;; Return the string and lisp forms of the matcher | ||
| 6400 | (cons match0 matcher))) | ||
| 6401 | |||
| 6402 | ;;(org-make-tags-matcher "&hello&-you") | ||
| 6403 | |||
| 6287 | 6404 | ||
| 6288 | ;;;###autoload | 6405 | ;;;###autoload |
| 6289 | (defun org-tags-view (&optional todo-only match keep-modes) | 6406 | (defun org-tags-view (&optional todo-only match keep-modes) |
| @@ -6368,32 +6485,35 @@ With prefix ARG, realign all tags in headings in the current buffer." | |||
| 6368 | (if just-align | 6485 | (if just-align |
| 6369 | (setq tags current) | 6486 | (setq tags current) |
| 6370 | (setq org-last-tags-completion-table | 6487 | (setq org-last-tags-completion-table |
| 6371 | (or (org-get-buffer-tags);; FIXME: replace +- with :, so that we can use history stuff??? | 6488 | (or (org-get-buffer-tags) |
| 6372 | org-last-tags-completion-table)) | 6489 | org-last-tags-completion-table)) |
| 6373 | (setq tags | 6490 | (setq tags |
| 6374 | (let ((org-add-colon-after-tag-completion t)) | 6491 | (let ((org-add-colon-after-tag-completion t)) |
| 6375 | (completing-read "Tags: " 'org-tags-completion-function | 6492 | (completing-read "Tags: " 'org-tags-completion-function |
| 6376 | nil nil current 'org-tags-history))) | 6493 | nil nil current 'org-tags-history))) |
| 6377 | (while (string-match "[-+]" tags) | 6494 | (while (string-match "[-+&]+" tags) |
| 6378 | (setq tags (replace-match ":" t t tags))) | 6495 | (setq tags (replace-match ":" t t tags))) |
| 6379 | (unless (string-match ":$" tags) (setq tags (concat tags ":"))) | 6496 | (unless (string-match ":$" tags) (setq tags (concat tags ":"))) |
| 6380 | (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) | 6497 | (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) |
| 6381 | (beginning-of-line 1) | 6498 | (if (equal current "") |
| 6382 | (looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*")) | 6499 | (end-of-line 1) |
| 6383 | (setq hd (save-match-data (org-trim (match-string 1)))) | 6500 | (beginning-of-line 1) |
| 6384 | (delete-region (match-beginning 0) (match-end 0)) | 6501 | (looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*")) |
| 6385 | (insert hd " ") | 6502 | (setq hd (match-string 1)) |
| 6386 | (move-to-column (max (current-column) | 6503 | (delete-region (match-beginning 0) (match-end 0)) |
| 6387 | (if (> org-tags-column 0) | 6504 | (insert (org-trim hd) " ")) |
| 6388 | org-tags-column | 6505 | (unless (equal tags "") |
| 6389 | (- org-tags-column (length tags)))) | 6506 | (move-to-column (max (current-column) |
| 6390 | t) | 6507 | (if (> org-tags-column 0) |
| 6391 | (insert tags) | 6508 | org-tags-column |
| 6509 | (- (- org-tags-column) (length tags)))) | ||
| 6510 | t) | ||
| 6511 | (insert tags)) | ||
| 6392 | (move-to-column col)))) | 6512 | (move-to-column col)))) |
| 6393 | 6513 | ||
| 6394 | (defun org-tags-completion-function (string predicate &optional flag) | 6514 | (defun org-tags-completion-function (string predicate &optional flag) |
| 6395 | (let (s1 s2 rtn (ctable org-last-tags-completion-table)) | 6515 | (let (s1 s2 rtn (ctable org-last-tags-completion-table)) |
| 6396 | (if (string-match "^\\(.*[-+:]\\)\\([^-+:]*\\)$" string) | 6516 | (if (string-match "^\\(.*[-+:&|]\\)\\([^-+:&|]*\\)$" string) |
| 6397 | (setq s1 (match-string 1 string) | 6517 | (setq s1 (match-string 1 string) |
| 6398 | s2 (match-string 2 string)) | 6518 | s2 (match-string 2 string)) |
| 6399 | (setq s1 "" s2 string)) | 6519 | (setq s1 "" s2 string)) |
| @@ -11610,19 +11730,13 @@ See the individual commands for more information." | |||
| 11610 | ["Goto Calendar" org-goto-calendar t] | 11730 | ["Goto Calendar" org-goto-calendar t] |
| 11611 | ["Date from Calendar" org-date-from-calendar t]) | 11731 | ["Date from Calendar" org-date-from-calendar t]) |
| 11612 | "--" | 11732 | "--" |
| 11613 | ("Agenda/Summary Views" | 11733 | ["Agenda Command" org-agenda t] |
| 11614 | "Current File" | 11734 | ("File List for Agenda") |
| 11735 | ("Special views current file" | ||
| 11615 | ["TODO Tree" org-show-todo-tree t] | 11736 | ["TODO Tree" org-show-todo-tree t] |
| 11616 | ["Check Deadlines" org-check-deadlines t] | 11737 | ["Check Deadlines" org-check-deadlines t] |
| 11617 | ["Timeline" org-timeline t] | 11738 | ["Timeline" org-timeline t] |
| 11618 | ["Tags Tree" org-tags-sparse-tree t] | 11739 | ["Tags Tree" org-tags-sparse-tree t]) |
| 11619 | "--" | ||
| 11620 | "All Agenda Files" | ||
| 11621 | ["Command Dispatcher" org-agenda t] | ||
| 11622 | ["TODO list" org-todo-list t] | ||
| 11623 | ["Agenda" org-agenda-list t] | ||
| 11624 | ["Tags View" org-tags-view t]) | ||
| 11625 | ("File List for Agenda") | ||
| 11626 | "--" | 11740 | "--" |
| 11627 | ("Hyperlinks" | 11741 | ("Hyperlinks" |
| 11628 | ["Store Link (Global)" org-store-link t] | 11742 | ["Store Link (Global)" org-store-link t] |
| @@ -12011,5 +12125,3 @@ Show the heading too, if it is currently invisible." | |||
| 12011 | 12125 | ||
| 12012 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd | 12126 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd |
| 12013 | ;;; org.el ends here | 12127 | ;;; org.el ends here |
| 12014 | |||
| 12015 | |||
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index 5d528dec109..78741065100 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el | |||
| @@ -661,60 +661,69 @@ Picture mode is invoked by the command \\[picture-mode]." | |||
| 661 | ;;;###autoload | 661 | ;;;###autoload |
| 662 | (defun picture-mode () | 662 | (defun picture-mode () |
| 663 | "Switch to Picture mode, in which a quarter-plane screen model is used. | 663 | "Switch to Picture mode, in which a quarter-plane screen model is used. |
| 664 | \\<picture-mode-map> | ||
| 664 | Printing characters replace instead of inserting themselves with motion | 665 | Printing characters replace instead of inserting themselves with motion |
| 665 | afterwards settable by these commands: | 666 | afterwards settable by these commands: |
| 666 | C-c < Move left after insertion. | 667 | |
| 667 | C-c > Move right after insertion. | 668 | Move left after insertion: \\[picture-movement-left] |
| 668 | C-c ^ Move up after insertion. | 669 | Move right after insertion: \\[picture-movement-right] |
| 669 | C-c . Move down after insertion. | 670 | Move up after insertion: \\[picture-movement-up] |
| 670 | C-c ` Move northwest (nw) after insertion. | 671 | Move down after insertion: \\[picture-movement-down] |
| 671 | C-c ' Move northeast (ne) after insertion. | 672 | |
| 672 | C-c / Move southwest (sw) after insertion. | 673 | Move northwest (nw) after insertion: \\[picture-movement-nw] |
| 673 | C-c \\ Move southeast (se) after insertion. | 674 | Move northeast (ne) after insertion: \\[picture-movement-ne] |
| 674 | C-u C-c ` Move westnorthwest (wnw) after insertion. | 675 | Move southwest (sw) after insertion: \\[picture-movement-sw] |
| 675 | C-u C-c ' Move eastnortheast (ene) after insertion. | 676 | Move southeast (se) after insertion: \\[picture-movement-se] |
| 676 | C-u C-c / Move westsouthwest (wsw) after insertion. | 677 | |
| 677 | C-u C-c \\ Move eastsoutheast (ese) after insertion. | 678 | Move westnorthwest (wnw) after insertion: C-u \\[picture-movement-nw] |
| 679 | Move eastnortheast (ene) after insertion: C-u \\[picture-movement-ne] | ||
| 680 | Move westsouthwest (wsw) after insertion: C-u \\[picture-movement-sw] | ||
| 681 | Move eastsoutheast (ese) after insertion: C-u \\[picture-movement-se] | ||
| 682 | |||
| 678 | The current direction is displayed in the mode line. The initial | 683 | The current direction is displayed in the mode line. The initial |
| 679 | direction is right. Whitespace is inserted and tabs are changed to | 684 | direction is right. Whitespace is inserted and tabs are changed to |
| 680 | spaces when required by movement. You can move around in the buffer | 685 | spaces when required by movement. You can move around in the buffer |
| 681 | with these commands: | 686 | with these commands: |
| 682 | \\[picture-move-down] Move vertically to SAME column in previous line. | 687 | |
| 683 | \\[picture-move-up] Move vertically to SAME column in next line. | 688 | Move vertically to SAME column in previous line: \\[picture-move-down] |
| 684 | \\[picture-end-of-line] Move to column following last non-whitespace character. | 689 | Move vertically to SAME column in next line: \\[picture-move-up] |
| 685 | \\[picture-forward-column] Move right inserting spaces if required. | 690 | Move to column following last |
| 686 | \\[picture-backward-column] Move left changing tabs to spaces if required. | 691 | non-whitespace character: \\[picture-end-of-line] |
| 687 | C-c C-f Move in direction of current picture motion. | 692 | Move right, inserting spaces if required: \\[picture-forward-column] |
| 688 | C-c C-b Move in opposite direction of current picture motion. | 693 | Move left changing tabs to spaces if required: \\[picture-backward-column] |
| 689 | Return Move to beginning of next line. | 694 | Move in direction of current picture motion: \\[picture-motion] |
| 695 | Move opposite to current picture motion: \\[picture-motion-reverse] | ||
| 696 | Move to beginning of next line: \\[next-line] | ||
| 697 | |||
| 690 | You can edit tabular text with these commands: | 698 | You can edit tabular text with these commands: |
| 691 | M-Tab Move to column beneath (or at) next interesting character. | 699 | |
| 692 | `Indents' relative to a previous line. | 700 | Move to column beneath (or at) next interesting |
| 693 | Tab Move to next stop in tab stop list. | 701 | character (see variable `picture-tab-chars'): \\[picture-tab-search] |
| 694 | C-c Tab Set tab stops according to context of this line. | 702 | Move to next stop in tab stop list: \\[picture-tab] |
| 695 | With ARG resets tab stops to default (global) value. | 703 | Set tab stops according to context of this line: \\[picture-set-tab-stops] |
| 696 | See also documentation of variable picture-tab-chars | 704 | (With ARG, resets tab stops to default value.) |
| 697 | which defines \"interesting character\". You can manually | 705 | Change the tab stop list: \\[edit-tab-stops] |
| 698 | change the tab stop list with command \\[edit-tab-stops]. | 706 | |
| 699 | You can manipulate text with these commands: | 707 | You can manipulate text with these commands: |
| 700 | C-d Clear (replace) ARG columns after point without moving. | 708 | Clear ARG columns after point without moving: \\[picture-clear-column] |
| 701 | C-c C-d Delete char at point - the command normally assigned to C-d. | 709 | Delete char at point: \\[delete-char] |
| 702 | \\[picture-backward-clear-column] Clear (replace) ARG columns before point, moving back over them. | 710 | Clear ARG columns backward: \\[picture-backward-clear-column] |
| 703 | \\[picture-clear-line] Clear ARG lines, advancing over them. The cleared | 711 | Clear ARG lines, advancing over them: \\[picture-clear-line] |
| 704 | text is saved in the kill ring. | 712 | (the cleared text is saved in the kill ring) |
| 705 | \\[picture-open-line] Open blank line(s) beneath current line. | 713 | Open blank line(s) beneath current line: \\[picture-open-line] |
| 714 | |||
| 706 | You can manipulate rectangles with these commands: | 715 | You can manipulate rectangles with these commands: |
| 707 | C-c C-k Clear (or kill) a rectangle and save it. | 716 | Clear a rectangle and save it: \\[picture-clear-rectangle] |
| 708 | C-c C-w Like C-c C-k except rectangle is saved in named register. | 717 | Clear a rectangle, saving in a named register: \\[picture-clear-rectangle-to-register] |
| 709 | C-c C-y Overlay (or insert) currently saved rectangle at point. | 718 | Insert currently saved rectangle at point: \\[picture-yank-rectangle] |
| 710 | C-c C-x Like C-c C-y except rectangle is taken from named register. | 719 | Insert rectangle from named register: \\[picture-yank-rectangle-from-register] |
| 711 | C-c C-r Draw a rectangular box around mark and point. | 720 | Draw a rectangular box around mark and point: \\[picture-draw-rectangle] |
| 712 | \\[copy-rectangle-to-register] Copies a rectangle to a register. | 721 | Copies a rectangle to a register: \\[copy-rectangle-to-register] |
| 713 | \\[advertised-undo] Can undo effects of rectangle overlay commands | 722 | Undo effects of rectangle overlay commands: \\[advertised-undo] |
| 714 | if invoked soon enough. | 723 | |
| 715 | You can return to the previous mode with: | 724 | You can return to the previous mode with \\[picture-mode-exit], which |
| 716 | C-c C-c Which also strips trailing whitespace from every line. | 725 | also strips trailing whitespace from every line. Stripping is suppressed |
| 717 | Stripping is suppressed by supplying an argument. | 726 | by supplying an argument. |
| 718 | 727 | ||
| 719 | Entry to this mode calls the value of `picture-mode-hook' if non-nil. | 728 | Entry to this mode calls the value of `picture-mode-hook' if non-nil. |
| 720 | 729 | ||
diff --git a/lisp/tooltip.el b/lisp/tooltip.el index 8f609601822..e88bc6017ce 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el | |||
| @@ -29,7 +29,15 @@ | |||
| 29 | 29 | ||
| 30 | (defvar comint-prompt-regexp) | 30 | (defvar comint-prompt-regexp) |
| 31 | 31 | ||
| 32 | ;;; Customizable settings | 32 | (defgroup tooltip nil |
| 33 | "Customization group for the `tooltip' package." | ||
| 34 | :group 'help | ||
| 35 | :group 'gud | ||
| 36 | :group 'mouse | ||
| 37 | :group 'tools | ||
| 38 | :version "21.1" | ||
| 39 | :tag "Tool Tips") | ||
| 40 | |||
| 33 | ;;; Switching tooltips on/off | 41 | ;;; Switching tooltips on/off |
| 34 | 42 | ||
| 35 | ;; We don't set track-mouse globally because this is a big redisplay | 43 | ;; We don't set track-mouse globally because this is a big redisplay |
| @@ -60,14 +68,8 @@ With ARG, turn tooltip mode on if and only if ARG is positive." | |||
| 60 | (setq show-help-function | 68 | (setq show-help-function |
| 61 | (if tooltip-mode 'tooltip-show-help nil))) | 69 | (if tooltip-mode 'tooltip-show-help nil))) |
| 62 | 70 | ||
| 63 | (defgroup tooltip nil | 71 | |
| 64 | "Customization group for the `tooltip' package." | 72 | ;;; Customizable settings |
| 65 | :group 'help | ||
| 66 | :group 'gud | ||
| 67 | :group 'mouse | ||
| 68 | :group 'tools | ||
| 69 | :version "21.1" | ||
| 70 | :tag "Tool Tips") | ||
| 71 | 73 | ||
| 72 | (defcustom tooltip-delay 0.7 | 74 | (defcustom tooltip-delay 0.7 |
| 73 | "Seconds to wait before displaying a tooltip the first time." | 75 | "Seconds to wait before displaying a tooltip the first time." |
| @@ -92,9 +94,10 @@ Do so after `tooltip-short-delay'." | |||
| 92 | 94 | ||
| 93 | (defcustom tooltip-x-offset 5 | 95 | (defcustom tooltip-x-offset 5 |
| 94 | "X offset, in pixels, for the display of tooltips. | 96 | "X offset, in pixels, for the display of tooltips. |
| 95 | The offset is relative to the position of the mouse. It must | 97 | The offset is the distance between the X position of the mouse and |
| 96 | be chosen so that the tooltip window doesn't contain the mouse | 98 | the left border of the tooltip window. It must be chosen so that the |
| 97 | when it pops up. | 99 | tooltip window doesn't contain the mouse when it pops up, or it may |
| 100 | interfere with clicking where you wish. | ||
| 98 | 101 | ||
| 99 | If `tooltip-frame-parameters' includes the `left' parameter, | 102 | If `tooltip-frame-parameters' includes the `left' parameter, |
| 100 | the value of `tooltip-x-offset' is ignored." | 103 | the value of `tooltip-x-offset' is ignored." |
| @@ -103,9 +106,10 @@ the value of `tooltip-x-offset' is ignored." | |||
| 103 | 106 | ||
| 104 | (defcustom tooltip-y-offset +20 | 107 | (defcustom tooltip-y-offset +20 |
| 105 | "Y offset, in pixels, for the display of tooltips. | 108 | "Y offset, in pixels, for the display of tooltips. |
| 106 | The offset is relative to the position of the mouse. It must | 109 | The offset is the distance between the Y position of the mouse and |
| 107 | be chosen so that the tooltip window doesn't contain the mouse | 110 | the top border of the tooltip window. It must be chosen so that the |
| 108 | when it pops up. | 111 | tooltip window doesn't contain the mouse when it pops up, or it may |
| 112 | interfere with clicking where you wish. | ||
| 109 | 113 | ||
| 110 | If `tooltip-frame-parameters' includes the `top' parameter, | 114 | If `tooltip-frame-parameters' includes the `top' parameter, |
| 111 | the value of `tooltip-y-offset' is ignored." | 115 | the value of `tooltip-y-offset' is ignored." |