Mercurial > hg > xemacs-beta
comparison lisp/gnus/message.el @ 2:ac2d302a0011 r19-15b2
Import from CVS: tag r19-15b2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:46:35 +0200 |
parents | 376386a54a3c |
children | 0293115a14e9 |
comparison
equal
deleted
inserted
replaced
1:c0c6a60d29db | 2:ac2d302a0011 |
---|---|
38 (require 'easymenu) | 38 (require 'easymenu) |
39 (if (string-match "XEmacs\\|Lucid" emacs-version) | 39 (if (string-match "XEmacs\\|Lucid" emacs-version) |
40 (require 'mail-abbrevs) | 40 (require 'mail-abbrevs) |
41 (require 'mailabbrev)) | 41 (require 'mailabbrev)) |
42 | 42 |
43 ;;;###autoload | |
44 (defvar message-directory "~/Mail/" | 43 (defvar message-directory "~/Mail/" |
45 "*Directory from which all other mail file variables are derived.") | 44 "*Directory from which all other mail file variables are derived.") |
46 | 45 |
47 (defvar message-max-buffers 10 | 46 (defvar message-max-buffers 10 |
48 "*How many buffers to keep before starting to kill them off.") | 47 "*How many buffers to keep before starting to kill them off.") |
162 | 161 |
163 ;;;###autoload | 162 ;;;###autoload |
164 (defvar message-user-organization-file "/usr/lib/news/organization" | 163 (defvar message-user-organization-file "/usr/lib/news/organization" |
165 "*Local news organization file.") | 164 "*Local news organization file.") |
166 | 165 |
167 ;;;###autoload | 166 (defvar message-autosave-directory "~/" |
168 (defvar message-autosave-directory | 167 ; (concat (file-name-as-directory message-directory) "drafts/") |
169 (concat (file-name-as-directory message-directory) "drafts/") | |
170 "*Directory where message autosaves buffers. | 168 "*Directory where message autosaves buffers. |
171 If nil, message won't autosave.") | 169 If nil, message won't autosave.") |
172 | 170 |
173 (defvar message-forward-start-separator | 171 (defvar message-forward-start-separator |
174 "------- Start of forwarded message -------\n" | 172 "------- Start of forwarded message -------\n" |
376 (let ((table (copy-syntax-table text-mode-syntax-table))) | 374 (let ((table (copy-syntax-table text-mode-syntax-table))) |
377 (modify-syntax-entry ?% ". " table) | 375 (modify-syntax-entry ?% ". " table) |
378 table) | 376 table) |
379 "Syntax table used while in Message mode.") | 377 "Syntax table used while in Message mode.") |
380 | 378 |
379 (defvar message-mode-abbrev-table text-mode-abbrev-table | |
380 "Abbrev table used in Message mode buffers. | |
381 Defaults to `text-mode-abbrev-table'.") | |
382 | |
381 (defvar message-font-lock-keywords | 383 (defvar message-font-lock-keywords |
382 (let* ((cite-prefix "A-Za-z") (cite-suffix (concat cite-prefix "0-9_.@-"))) | 384 (let* ((cite-prefix "A-Za-z") (cite-suffix (concat cite-prefix "0-9_.@-"))) |
383 (list '("^To:" . font-lock-function-name-face) | 385 (list '("^To:" . font-lock-function-name-face) |
384 '("^[GBF]?[Cc][Cc]:\\|^Reply-To:" . font-lock-keyword-face) | 386 '("^[GBF]?[Cc][Cc]:\\|^Reply-To:" . font-lock-keyword-face) |
385 '("^\\(Subject:\\)[ \t]*\\(.+\\)?" | 387 '("^\\(Subject:\\)[ \t]*\\(.+\\)?" |
515 (defun message-tokenize-header (header &optional separator) | 517 (defun message-tokenize-header (header &optional separator) |
516 "Split HEADER into a list of header elements. | 518 "Split HEADER into a list of header elements. |
517 \",\" is used as the separator." | 519 \",\" is used as the separator." |
518 (let ((regexp (format "[%s]+" (or separator ","))) | 520 (let ((regexp (format "[%s]+" (or separator ","))) |
519 (beg 1) | 521 (beg 1) |
522 (first t) | |
520 quoted elems) | 523 quoted elems) |
521 (save-excursion | 524 (save-excursion |
522 (message-set-work-buffer) | 525 (message-set-work-buffer) |
523 (insert header) | 526 (insert header) |
524 (goto-char (point-min)) | 527 (goto-char (point-min)) |
525 (while (not (eobp)) | 528 (while (not (eobp)) |
526 (forward-char 1) | 529 (if first |
530 (setq first nil) | |
531 (forward-char 1)) | |
527 (cond ((and (> (point) beg) | 532 (cond ((and (> (point) beg) |
528 (or (eobp) | 533 (or (eobp) |
529 (and (looking-at regexp) | 534 (and (looking-at regexp) |
530 (not quoted)))) | 535 (not quoted)))) |
531 (push (buffer-substring beg (point)) elems) | 536 (push (buffer-substring beg (point)) elems) |
787 (make-local-variable 'message-exit-actions) | 792 (make-local-variable 'message-exit-actions) |
788 (make-local-variable 'message-kill-actions) | 793 (make-local-variable 'message-kill-actions) |
789 (make-local-variable 'message-postpone-actions) | 794 (make-local-variable 'message-postpone-actions) |
790 (set-syntax-table message-mode-syntax-table) | 795 (set-syntax-table message-mode-syntax-table) |
791 (use-local-map message-mode-map) | 796 (use-local-map message-mode-map) |
792 (setq local-abbrev-table text-mode-abbrev-table) | 797 (setq local-abbrev-table message-mode-abbrev-table) |
793 (setq major-mode 'message-mode) | 798 (setq major-mode 'message-mode) |
794 (setq mode-name "Message") | 799 (setq mode-name "Message") |
795 (setq buffer-offer-save t) | 800 (setq buffer-offer-save t) |
796 (make-local-variable 'font-lock-defaults) | 801 (make-local-variable 'font-lock-defaults) |
797 (setq font-lock-defaults '(message-font-lock-keywords t)) | 802 (setq font-lock-defaults '(message-font-lock-keywords t)) |
822 (make-local-variable 'message-post-method) | 827 (make-local-variable 'message-post-method) |
823 (make-local-variable 'message-sent-message-via) | 828 (make-local-variable 'message-sent-message-via) |
824 (setq message-sent-message-via nil) | 829 (setq message-sent-message-via nil) |
825 (make-local-variable 'message-checksum) | 830 (make-local-variable 'message-checksum) |
826 (setq message-checksum nil) | 831 (setq message-checksum nil) |
827 (when (fboundp 'mail-hist-define-keys) | 832 ;;(when (fboundp 'mail-hist-define-keys) |
828 (mail-hist-define-keys)) | 833 ;; (mail-hist-define-keys)) |
829 (when (string-match "XEmacs\\|Lucid" emacs-version) | 834 (when (string-match "XEmacs\\|Lucid" emacs-version) |
830 (message-setup-toolbar)) | 835 (message-setup-toolbar)) |
831 (easy-menu-add message-mode-menu message-mode-map) | 836 (easy-menu-add message-mode-menu message-mode-map) |
832 ;; Allow mail alias things. | 837 ;; Allow mail alias things. |
833 (if (fboundp 'mail-abbrevs-setup) | 838 (if (fboundp 'mail-abbrevs-setup) |
961 ((and (eq t signature) | 966 ((and (eq t signature) |
962 message-signature-file | 967 message-signature-file |
963 (file-exists-p message-signature-file)) | 968 (file-exists-p message-signature-file)) |
964 signature)))) | 969 signature)))) |
965 (when signature | 970 (when signature |
966 ; ;; Remove blank lines at the end of the message. | 971 ;; Insert the signature. |
967 (goto-char (point-max)) | 972 (goto-char (point-max)) |
968 ; (skip-chars-backward " \t\n") | |
969 ; (delete-region (point) (point-max)) | |
970 ;; Insert the signature. | |
971 (unless (bolp) | 973 (unless (bolp) |
972 (insert "\n")) | 974 (insert "\n")) |
973 (insert "\n-- \n") | 975 (insert "\n-- \n") |
974 (if (eq signature t) | 976 (if (eq signature t) |
975 (insert-file-contents message-signature-file) | 977 (insert-file-contents message-signature-file) |
1048 mail-to)) | 1050 mail-to)) |
1049 (name-default (concat "*message* " mail-trimmed-to)) | 1051 (name-default (concat "*message* " mail-trimmed-to)) |
1050 (name (if enter-string | 1052 (name (if enter-string |
1051 (read-string "New buffer name: " name-default) | 1053 (read-string "New buffer name: " name-default) |
1052 name-default))) | 1054 name-default))) |
1053 (rename-buffer name t))))) | 1055 (rename-buffer name t) |
1056 (setq buffer-auto-save-file-name | |
1057 (format "%s%s" | |
1058 (file-name-as-directory message-autosave-directory) | |
1059 (file-name-nondirectory buffer-auto-save-file-name))))))) | |
1054 | 1060 |
1055 (defun message-fill-yanked-message (&optional justifyp) | 1061 (defun message-fill-yanked-message (&optional justifyp) |
1056 "Fill the paragraphs of a message yanked into this one. | 1062 "Fill the paragraphs of a message yanked into this one. |
1057 Numeric argument means justify as well." | 1063 Numeric argument means justify as well." |
1058 (interactive "P") | 1064 (interactive "P") |
1092 (defun message-yank-original (&optional arg) | 1098 (defun message-yank-original (&optional arg) |
1093 "Insert the message being replied to, if any. | 1099 "Insert the message being replied to, if any. |
1094 Puts point before the text and mark after. | 1100 Puts point before the text and mark after. |
1095 Normally indents each nonblank line ARG spaces (default 3). However, | 1101 Normally indents each nonblank line ARG spaces (default 3). However, |
1096 if `message-yank-prefix' is non-nil, insert that prefix on each line. | 1102 if `message-yank-prefix' is non-nil, insert that prefix on each line. |
1103 | |
1104 This function uses `message-cite-function' to do the actual citing. | |
1097 | 1105 |
1098 Just \\[universal-argument] as argument means don't indent, insert no | 1106 Just \\[universal-argument] as argument means don't indent, insert no |
1099 prefix, and don't delete any headers." | 1107 prefix, and don't delete any headers." |
1100 (interactive "P") | 1108 (interactive "P") |
1101 (let ((modified (buffer-modified-p))) | 1109 (let ((modified (buffer-modified-p))) |
1253 (and (or (not (memq 'mail message-sent-message-via)) | 1261 (and (or (not (memq 'mail message-sent-message-via)) |
1254 (y-or-n-p | 1262 (y-or-n-p |
1255 "Already sent message via mail; resend? ")) | 1263 "Already sent message via mail; resend? ")) |
1256 (message-send-mail arg)))) | 1264 (message-send-mail arg)))) |
1257 (message-do-fcc) | 1265 (message-do-fcc) |
1258 (when (fboundp 'mail-hist-put-headers-into-history) | 1266 ;;(when (fboundp 'mail-hist-put-headers-into-history) |
1259 (mail-hist-put-headers-into-history)) | 1267 ;; (mail-hist-put-headers-into-history)) |
1260 (run-hooks 'message-sent-hook) | 1268 (run-hooks 'message-sent-hook) |
1261 (message "Sending...done") | 1269 (message "Sending...done") |
1262 ;; If buffer has no file, mark it as unmodified and delete autosave. | 1270 ;; If buffer has no file, mark it as unmodified and delete autosave. |
1263 (unless buffer-file-name | 1271 (unless buffer-file-name |
1264 (set-buffer-modified-p nil) | 1272 (set-buffer-modified-p nil) |
1314 (run-hooks 'message-header-hook)) | 1322 (run-hooks 'message-header-hook)) |
1315 (unwind-protect | 1323 (unwind-protect |
1316 (save-excursion | 1324 (save-excursion |
1317 (set-buffer tembuf) | 1325 (set-buffer tembuf) |
1318 (erase-buffer) | 1326 (erase-buffer) |
1319 (insert-buffer-substring mailbuf) | 1327 ;; Avoid copying text props. |
1328 (insert (format | |
1329 "%s" (save-excursion | |
1330 (set-buffer mailbuf) | |
1331 (buffer-string)))) | |
1320 ;; Remove some headers. | 1332 ;; Remove some headers. |
1321 (save-restriction | 1333 (save-restriction |
1322 (message-narrow-to-headers) | 1334 (message-narrow-to-headers) |
1323 ;; Remove some headers. | 1335 ;; Remove some headers. |
1324 (message-remove-header message-ignored-mail-headers t)) | 1336 (message-remove-header message-ignored-mail-headers t)) |
1411 (case-fold-search nil) | 1423 (case-fold-search nil) |
1412 (method (if (message-functionp message-post-method) | 1424 (method (if (message-functionp message-post-method) |
1413 (funcall message-post-method arg) | 1425 (funcall message-post-method arg) |
1414 message-post-method)) | 1426 message-post-method)) |
1415 (messbuf (current-buffer)) | 1427 (messbuf (current-buffer)) |
1428 (message-syntax-checks | |
1429 (if arg | |
1430 (cons '(existing-newsgroups . disabled) | |
1431 message-syntax-checks) | |
1432 message-syntax-checks)) | |
1416 result) | 1433 result) |
1417 (save-restriction | 1434 (save-restriction |
1418 (message-narrow-to-headers) | 1435 (message-narrow-to-headers) |
1419 ;; Insert some headers. | 1436 ;; Insert some headers. |
1420 (message-generate-headers message-required-news-headers) | 1437 (message-generate-headers message-required-news-headers) |
1425 (unwind-protect | 1442 (unwind-protect |
1426 (save-excursion | 1443 (save-excursion |
1427 (set-buffer tembuf) | 1444 (set-buffer tembuf) |
1428 (buffer-disable-undo (current-buffer)) | 1445 (buffer-disable-undo (current-buffer)) |
1429 (erase-buffer) | 1446 (erase-buffer) |
1430 (insert-buffer-substring messbuf) | 1447 ;; Avoid copying text props. |
1448 (insert (format | |
1449 "%s" (save-excursion | |
1450 (set-buffer messbuf) | |
1451 (buffer-string)))) | |
1431 ;; Remove some headers. | 1452 ;; Remove some headers. |
1432 (save-restriction | 1453 (save-restriction |
1433 (message-narrow-to-headers) | 1454 (message-narrow-to-headers) |
1434 ;; Remove some headers. | 1455 ;; Remove some headers. |
1435 (message-remove-header message-ignored-news-headers t)) | 1456 (message-remove-header message-ignored-news-headers t)) |
1524 (insert "Followup-To: " to "\n")) | 1545 (insert "Followup-To: " to "\n")) |
1525 t)) | 1546 t)) |
1526 ;; Check "Shoot me". | 1547 ;; Check "Shoot me". |
1527 (or (message-check-element 'shoot) | 1548 (or (message-check-element 'shoot) |
1528 (save-excursion | 1549 (save-excursion |
1529 (if (search-forward | 1550 (if (re-search-forward |
1530 ".i-have-a-misconfigured-system-so-shoot-me" nil t) | 1551 "Message-ID.*.i-have-a-misconfigured-system-so-shoot-me" |
1552 nil t) | |
1531 (y-or-n-p | 1553 (y-or-n-p |
1532 "You appear to have a misconfigured system. Really post? ") | 1554 "You appear to have a misconfigured system. Really post? ") |
1533 t))) | 1555 t))) |
1534 ;; Check for Approved. | 1556 ;; Check for Approved. |
1535 (or (message-check-element 'approved) | 1557 (or (message-check-element 'approved) |
1661 (goto-char (point-min)) | 1683 (goto-char (point-min)) |
1662 (re-search-forward | 1684 (re-search-forward |
1663 (concat "^" (regexp-quote mail-header-separator) "$")) | 1685 (concat "^" (regexp-quote mail-header-separator) "$")) |
1664 (forward-line 1) | 1686 (forward-line 1) |
1665 (let ((b (point))) | 1687 (let ((b (point))) |
1666 (or (re-search-forward message-signature-separator nil t) | 1688 (goto-char (point-max)) |
1667 (goto-char (point-max))) | 1689 (re-search-backward message-signature-separator nil t) |
1668 (beginning-of-line) | 1690 (beginning-of-line) |
1669 (or (re-search-backward "[^ \n\t]" b t) | 1691 (or (re-search-backward "[^ \n\t]" b t) |
1670 (y-or-n-p "Empty article. Really post? "))))) | 1692 (y-or-n-p "Empty article. Really post? "))))) |
1671 ;; Check for control characters. | 1693 ;; Check for control characters. |
1672 (or (message-check-element 'control-chars) | 1694 (or (message-check-element 'control-chars) |
1692 ;; Check the length of the signature. | 1714 ;; Check the length of the signature. |
1693 (or | 1715 (or |
1694 (message-check-element 'signature) | 1716 (message-check-element 'signature) |
1695 (progn | 1717 (progn |
1696 (goto-char (point-max)) | 1718 (goto-char (point-max)) |
1697 (if (or (not (re-search-backward "^-- $" nil t)) | 1719 (if (or (not (re-search-backward message-signature-separator nil t)) |
1698 (search-forward message-forward-end-separator nil t)) | 1720 (search-forward message-forward-end-separator nil t)) |
1699 t | 1721 t |
1700 (if (> (count-lines (point) (point-max)) 5) | 1722 (if (> (count-lines (point) (point-max)) 5) |
1701 (y-or-n-p | 1723 (y-or-n-p |
1702 (format | 1724 (format |
1757 (make-directory (file-name-directory file) t)) | 1779 (make-directory (file-name-directory file) t)) |
1758 (if (and message-fcc-handler-function | 1780 (if (and message-fcc-handler-function |
1759 (not (eq message-fcc-handler-function 'rmail-output))) | 1781 (not (eq message-fcc-handler-function 'rmail-output))) |
1760 (funcall message-fcc-handler-function file) | 1782 (funcall message-fcc-handler-function file) |
1761 (if (and (file-readable-p file) (mail-file-babyl-p file)) | 1783 (if (and (file-readable-p file) (mail-file-babyl-p file)) |
1762 (rmail-output file 1) | 1784 (rmail-output file 1 nil t) |
1763 (let ((mail-use-rfc822 t)) | 1785 (let ((mail-use-rfc822 t)) |
1764 (rmail-output file 1 t t)))))) | 1786 (rmail-output file 1 t t)))))) |
1765 (kill-buffer (current-buffer))))) | 1787 (kill-buffer (current-buffer))))) |
1766 | 1788 |
1767 (defun message-cleanup-headers () | 1789 (defun message-cleanup-headers () |
2283 (defun message-do-send-housekeeping () | 2305 (defun message-do-send-housekeeping () |
2284 "Kill old message buffers." | 2306 "Kill old message buffers." |
2285 ;; We might have sent this buffer already. Delete it from the | 2307 ;; We might have sent this buffer already. Delete it from the |
2286 ;; list of buffers. | 2308 ;; list of buffers. |
2287 (setq message-buffer-list (delq (current-buffer) message-buffer-list)) | 2309 (setq message-buffer-list (delq (current-buffer) message-buffer-list)) |
2288 (when (and message-max-buffers | 2310 (while (and message-max-buffers |
2289 (>= (length message-buffer-list) message-max-buffers)) | 2311 (>= (length message-buffer-list) message-max-buffers)) |
2290 ;; Kill the oldest buffer -- unless it has been changed. | 2312 ;; Kill the oldest buffer -- unless it has been changed. |
2291 (let ((buffer (pop message-buffer-list))) | 2313 (let ((buffer (pop message-buffer-list))) |
2292 (when (and (buffer-name buffer) | 2314 (when (and (buffer-name buffer) |
2293 (not (buffer-modified-p buffer))) | 2315 (not (buffer-modified-p buffer))) |
2294 (kill-buffer buffer)))) | 2316 (kill-buffer buffer)))) |
2405 "Start editing a reply to the article in the current buffer." | 2427 "Start editing a reply to the article in the current buffer." |
2406 (interactive) | 2428 (interactive) |
2407 (let ((cur (current-buffer)) | 2429 (let ((cur (current-buffer)) |
2408 from subject date reply-to to cc | 2430 from subject date reply-to to cc |
2409 references message-id follow-to | 2431 references message-id follow-to |
2432 (inhibit-point-motion-hooks t) | |
2410 mct never-mct gnus-warning) | 2433 mct never-mct gnus-warning) |
2411 (save-restriction | 2434 (save-restriction |
2412 (narrow-to-region | 2435 (narrow-to-region |
2413 (goto-char (point-min)) | 2436 (goto-char (point-min)) |
2414 (if (search-forward "\n\n" nil t) | 2437 (if (search-forward "\n\n" nil t) |
2459 (let (ccalist) | 2482 (let (ccalist) |
2460 (save-excursion | 2483 (save-excursion |
2461 (message-set-work-buffer) | 2484 (message-set-work-buffer) |
2462 (unless never-mct | 2485 (unless never-mct |
2463 (insert (or reply-to from ""))) | 2486 (insert (or reply-to from ""))) |
2464 (insert | 2487 (insert (if (bolp) "" ", ") (or to "")) |
2465 (if (bolp) "" ", ") (or to "") | 2488 (insert (if mct (concat (if (bolp) "" ", ") mct) "")) |
2466 (if mct (concat (if (bolp) "" ", ") mct) "") | 2489 (insert (if cc (concat (if (bolp) "" ", ") cc) "")) |
2467 (if cc (concat (if (bolp) "" ", ") cc) "")) | |
2468 ;; Remove addresses that match `rmail-dont-reply-to-names'. | 2490 ;; Remove addresses that match `rmail-dont-reply-to-names'. |
2469 (insert (prog1 (rmail-dont-reply-to (buffer-string)) | 2491 (insert (prog1 (rmail-dont-reply-to (buffer-string)) |
2470 (erase-buffer))) | 2492 (erase-buffer))) |
2471 (goto-char (point-min)) | 2493 (goto-char (point-min)) |
2472 (setq ccalist | 2494 (setq ccalist |
2473 (mapcar | 2495 (mapcar |
2474 (lambda (addr) | 2496 (lambda (addr) |
2475 (cons (mail-strip-quoted-names addr) addr)) | 2497 (cons (mail-strip-quoted-names addr) addr)) |
2476 (nreverse (mail-parse-comma-list)))) | 2498 (message-tokenize-header (buffer-string)))) |
2477 (let ((s ccalist)) | 2499 (let ((s ccalist)) |
2478 (while s | 2500 (while s |
2479 (setq ccalist (delq (assoc (car (pop s)) s) ccalist))))) | 2501 (setq ccalist (delq (assoc (car (pop s)) s) ccalist))))) |
2480 (setq follow-to (list (cons 'To (cdr (pop ccalist))))) | 2502 (setq follow-to (list (cons 'To (cdr (pop ccalist))))) |
2481 (when ccalist | 2503 (when ccalist |
2482 (push (cons 'Cc | 2504 (push (cons 'Cc |
2483 (mapconcat (lambda (addr) (cdr addr)) ccalist ", ")) | 2505 (mapconcat (lambda (addr) (cdr addr)) ccalist ", ")) |
2484 follow-to))))) | 2506 follow-to))))) |
2485 (widen)) | 2507 (widen)) |
2486 | 2508 |
2487 (message-pop-to-buffer (message-buffer-name "reply" from)) | 2509 (message-pop-to-buffer (message-buffer-name |
2510 (if wide "wide reply" "reply") from | |
2511 (if wide to-address nil))) | |
2488 | 2512 |
2489 (setq message-reply-headers | 2513 (setq message-reply-headers |
2490 (vector 0 subject from date message-id references 0 0 "")) | 2514 (vector 0 subject from date message-id references 0 0 "")) |
2491 | 2515 |
2492 (message-setup | 2516 (message-setup |
2507 (defun message-followup () | 2531 (defun message-followup () |
2508 (interactive) | 2532 (interactive) |
2509 (let ((cur (current-buffer)) | 2533 (let ((cur (current-buffer)) |
2510 from subject date reply-to mct | 2534 from subject date reply-to mct |
2511 references message-id follow-to | 2535 references message-id follow-to |
2536 (inhibit-point-motion-hooks t) | |
2512 followup-to distribution newsgroups gnus-warning) | 2537 followup-to distribution newsgroups gnus-warning) |
2513 (save-restriction | 2538 (save-restriction |
2514 (narrow-to-region | 2539 (narrow-to-region |
2515 (goto-char (point-min)) | 2540 (goto-char (point-min)) |
2516 (if (search-forward "\n\n" nil t) | 2541 (if (search-forward "\n\n" nil t) |
2900 (goto-char (min start end)) | 2925 (goto-char (min start end)) |
2901 (while (re-search-forward "\b" end1 t) | 2926 (while (re-search-forward "\b" end1 t) |
2902 (if (eq (following-char) (char-after (- (point) 2))) | 2927 (if (eq (following-char) (char-after (- (point) 2))) |
2903 (delete-char -2)))))) | 2928 (delete-char -2)))))) |
2904 | 2929 |
2905 (fset 'message-exchange-point-and-mark 'exchange-point-and-mark) | 2930 (defalias 'message-exchange-point-and-mark 'exchange-point-and-mark) |
2906 | 2931 |
2907 ;; Support for toolbar | 2932 ;; Support for toolbar |
2908 (when (string-match "XEmacs\\|Lucid" emacs-version) | 2933 (when (string-match "XEmacs\\|Lucid" emacs-version) |
2909 (require 'messagexmas)) | 2934 (require 'messagexmas)) |
2910 | 2935 |
2957 (pop-to-buffer cur))))))) | 2982 (pop-to-buffer cur))))))) |
2958 | 2983 |
2959 ;;; Help stuff. | 2984 ;;; Help stuff. |
2960 | 2985 |
2961 (defmacro message-y-or-n-p (question show &rest text) | 2986 (defmacro message-y-or-n-p (question show &rest text) |
2962 "Ask QUESTION, displaying the rest of the arguments in a temporary buffer." | 2987 "Ask QUESTION, displaying the rest of the arguments in a temp. buffer if SHOW" |
2963 `(message-talkative-question 'y-or-n-p ,question ,show ,@text)) | 2988 `(message-talkative-question 'y-or-n-p ,question ,show ,@text)) |
2964 | 2989 |
2965 (defun message-talkative-question (ask question show &rest text) | 2990 (defun message-talkative-question (ask question show &rest text) |
2966 "Call FUNCTION with argument QUESTION, displaying the rest of the arguments in a temporary buffer if SHOW. | 2991 "Call FUNCTION with argument QUESTION, displaying the rest of the arguments in a temporary buffer if SHOW. |
2967 The following arguments may contain lists of values." | 2992 The following arguments may contain lists of values." |