Mercurial > hg > xemacs-beta
comparison lisp/vm/vm-startup.el @ 100:4be1180a9e89 r20-1b2
Import from CVS: tag r20-1b2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:15:11 +0200 |
parents | 0d2f883870bc |
children | a145efe76779 |
comparison
equal
deleted
inserted
replaced
99:2d83cbd90d8d | 100:4be1180a9e89 |
---|---|
59 (let ((default-directory | 59 (let ((default-directory |
60 (or (and vm-folder-directory | 60 (or (and vm-folder-directory |
61 (expand-file-name vm-folder-directory)) | 61 (expand-file-name vm-folder-directory)) |
62 default-directory)) | 62 default-directory)) |
63 (inhibit-local-variables t) | 63 (inhibit-local-variables t) |
64 (enable-local-variables nil)) | 64 (enable-local-variables nil) |
65 ;; for XEmacs/Mule | |
66 (overriding-file-coding-system 'no-conversion)) | |
65 (vm-unsaved-message "Reading %s..." file) | 67 (vm-unsaved-message "Reading %s..." file) |
66 (prog1 (find-file-noselect file) | 68 (prog1 (find-file-noselect file) |
67 ;; update folder history | 69 ;; update folder history |
68 (let ((item (or folder vm-primary-inbox))) | 70 (let ((item (or folder vm-primary-inbox))) |
69 (if (not (equal item (car vm-folder-history))) | 71 (if (not (equal item (car vm-folder-history))) |
70 (setq vm-folder-history | 72 (setq vm-folder-history |
71 (cons item vm-folder-history)))) | 73 (cons item vm-folder-history)))) |
72 (vm-unsaved-message "Reading %s... done" file)))))))) | 74 (vm-unsaved-message "Reading %s... done" file)))))))) |
73 (set-buffer folder-buffer) | 75 (set-buffer folder-buffer) |
76 ;; for XEmacs/MULE | |
77 ;; | |
78 ;; If the file coding system is not a no-conversion variant, | |
79 ;; make it so by encoding all the text, then setting | |
80 ;; the file coding system and decoding it. | |
81 ;; This is only possible if a file is visited and vm-mode | |
82 ;; is run on it afterwards. | |
83 (defvar file-coding-system) | |
84 (if (and (fboundp 'get-coding-system) | |
85 (not (eq file-coding-system | |
86 (get-coding-system 'no-conversion-unix))) | |
87 (not (eq file-coding-system | |
88 (get-coding-system 'no-conversion-dos))) | |
89 (not (eq file-coding-system | |
90 (get-coding-system 'no-conversion-mac))) | |
91 (not (eq file-coding-system | |
92 (get-coding-system 'binary)))) | |
93 (progn | |
94 (encode-coding-region (point-min) (point-max) file-coding-system) | |
95 (set-file-coding-system 'no-conversion nil) | |
96 (decode-coding-region (point-min) (point-max) file-coding-system))) | |
74 (vm-check-for-killed-summary) | 97 (vm-check-for-killed-summary) |
75 (vm-check-for-killed-presentation) | 98 (vm-check-for-killed-presentation) |
76 ;; If the buffer's not modified then we know that there can be no | 99 ;; If the buffer's not modified then we know that there can be no |
77 ;; messages in the folder that are not on disk. | 100 ;; messages in the folder that are not on disk. |
78 (or (buffer-modified-p) (setq vm-messages-not-on-disk 0)) | 101 (or (buffer-modified-p) (setq vm-messages-not-on-disk 0)) |
198 (not vm-block-new-mail) | 221 (not vm-block-new-mail) |
199 (not vm-folder-read-only)) | 222 (not vm-folder-read-only)) |
200 (progn | 223 (progn |
201 (vm-unsaved-message "Checking for new mail for %s..." | 224 (vm-unsaved-message "Checking for new mail for %s..." |
202 (or buffer-file-name (buffer-name))) | 225 (or buffer-file-name (buffer-name))) |
203 (if (and (vm-get-spooled-mail) (vm-assimilate-new-messages t)) | 226 (if (and (vm-get-spooled-mail t) (vm-assimilate-new-messages t)) |
204 (progn | 227 (progn |
205 (setq totals-blurb (vm-emit-totals-blurb)) | 228 (setq totals-blurb (vm-emit-totals-blurb)) |
206 (if (vm-thoughtfully-select-message) | 229 (if (vm-thoughtfully-select-message) |
207 (vm-preview-current-message) | 230 (vm-preview-current-message) |
208 (vm-update-summary-and-mode-line)))) | 231 (vm-update-summary-and-mode-line)))) |
209 (message totals-blurb))) | 232 (message totals-blurb))) |
210 | 233 |
211 ;; Display copyright and copying info unless | 234 ;; Display copyright and copying info unless |
212 ;; user says no. | 235 ;; user says no. |
213 ;; Check this-command so we don't make the user wait if | 236 (if (and (interactive-p) (not vm-startup-message-displayed)) |
214 ;; they call vm non-interactively from some other program. | |
215 (if (and (not vm-startup-message-displayed) | |
216 (or (memq this-command '(vm vm-visit-folder)) | |
217 ;; for emacs -f vm | |
218 (null last-command))) | |
219 (progn | 237 (progn |
220 (vm-display-startup-message) | 238 (vm-display-startup-message) |
221 (if (not (input-pending-p)) | 239 (if (not (input-pending-p)) |
222 (message totals-blurb))))))) | 240 (message totals-blurb))))))) |
223 | 241 |
249 (put 'vm-mode 'mode-class 'special) | 267 (put 'vm-mode 'mode-class 'special) |
250 | 268 |
251 (defun vm-mode (&optional read-only) | 269 (defun vm-mode (&optional read-only) |
252 "Major mode for reading mail. | 270 "Major mode for reading mail. |
253 | 271 |
254 This is VM 6.13. | 272 This is VM 6.15. |
255 | 273 |
256 Commands: | 274 Commands: |
257 h - summarize folder contents | 275 h - summarize folder contents |
258 C-t - toggle threads display | 276 C-t - toggle threads display |
259 | 277 |
417 vm-frame-per-folder | 435 vm-frame-per-folder |
418 vm-frame-per-summary | 436 vm-frame-per-summary |
419 vm-highlighted-header-face | 437 vm-highlighted-header-face |
420 vm-highlighted-header-regexp | 438 vm-highlighted-header-regexp |
421 vm-honor-page-delimiters | 439 vm-honor-page-delimiters |
440 vm-image-directory | |
422 vm-in-reply-to-format | 441 vm-in-reply-to-format |
423 vm-included-text-attribution-format | 442 vm-included-text-attribution-format |
424 vm-included-text-discard-header-regexp | 443 vm-included-text-discard-header-regexp |
425 vm-included-text-headers | 444 vm-included-text-headers |
426 vm-included-text-prefix | 445 vm-included-text-prefix |
427 vm-invisible-header-regexp | 446 vm-invisible-header-regexp |
428 vm-jump-to-new-messages | 447 vm-jump-to-new-messages |
429 vm-jump-to-unread-messages | 448 vm-jump-to-unread-messages |
430 vm-keep-crash-boxes | 449 vm-keep-crash-boxes |
431 vm-keep-sent-messages | 450 vm-keep-sent-messages |
451 vm-mail-check-interval | |
432 vm-mail-header-from | 452 vm-mail-header-from |
433 vm-mail-mode-hook | 453 vm-mail-mode-hook |
434 vm-make-crash-box-name | 454 vm-make-crash-box-name |
435 vm-make-spool-file-name | 455 vm-make-spool-file-name |
436 vm-mime-8bit-composition-charset | 456 vm-mime-8bit-composition-charset |
442 vm-mime-base64-decoder-program | 462 vm-mime-base64-decoder-program |
443 vm-mime-base64-decoder-switches | 463 vm-mime-base64-decoder-switches |
444 vm-mime-base64-encoder-program | 464 vm-mime-base64-encoder-program |
445 vm-mime-base64-encoder-switches | 465 vm-mime-base64-encoder-switches |
446 vm-mime-button-face | 466 vm-mime-button-face |
467 vm-mime-charset-font-alist | |
468 vm-mime-default-face-charsets | |
447 vm-mime-digest-discard-header-regexp | 469 vm-mime-digest-discard-header-regexp |
448 vm-mime-digest-headers | 470 vm-mime-digest-headers |
449 vm-mime-display-function | 471 vm-mime-display-function |
450 vm-mime-external-content-types-alist | 472 vm-mime-external-content-types-alist |
451 vm-mime-internal-content-types | 473 vm-mime-internal-content-types |
457 vm-move-after-undeleting | 479 vm-move-after-undeleting |
458 vm-move-messages-physically | 480 vm-move-messages-physically |
459 vm-mutable-frames | 481 vm-mutable-frames |
460 vm-mutable-windows | 482 vm-mutable-windows |
461 vm-netscape-program | 483 vm-netscape-program |
484 vm-pop-bytes-per-session | |
485 vm-pop-max-message-size | |
462 vm-pop-md5-program | 486 vm-pop-md5-program |
487 vm-pop-messages-per-session | |
463 vm-popup-menu-on-mouse-3 | 488 vm-popup-menu-on-mouse-3 |
464 vm-preferences-file | 489 vm-preferences-file |
465 vm-preview-lines | 490 vm-preview-lines |
466 vm-preview-read-messages | 491 vm-preview-read-messages |
467 vm-primary-inbox | 492 vm-primary-inbox |
488 vm-select-unread-message-hook | 513 vm-select-unread-message-hook |
489 vm-send-digest-hook | 514 vm-send-digest-hook |
490 vm-send-using-mime | 515 vm-send-using-mime |
491 vm-skip-deleted-messages | 516 vm-skip-deleted-messages |
492 vm-skip-read-messages | 517 vm-skip-read-messages |
518 vm-spool-file-suffixes | |
493 vm-spool-files | 519 vm-spool-files |
494 vm-spool-file-suffixes | |
495 vm-startup-with-summary | 520 vm-startup-with-summary |
496 vm-strip-reply-headers | 521 vm-strip-reply-headers |
497 vm-summary-arrow | 522 vm-summary-arrow |
498 vm-summary-format | 523 vm-summary-format |
499 vm-summary-highlight-face | 524 vm-summary-highlight-face |
500 vm-summary-mode-hook | 525 vm-summary-mode-hook |
501 vm-summary-redo-hook | 526 vm-summary-redo-hook |
502 vm-summary-show-threads | 527 vm-summary-show-threads |
503 vm-summary-thread-indent-level | 528 vm-summary-thread-indent-level |
529 vm-tale-is-an-idiot | |
504 vm-temp-file-directory | 530 vm-temp-file-directory |
505 vm-tale-is-an-idiot | |
506 vm-trust-From_-with-Content-Length | 531 vm-trust-From_-with-Content-Length |
507 vm-undisplay-buffer-hook | 532 vm-undisplay-buffer-hook |
508 vm-unforwarded-header-regexp | 533 vm-unforwarded-header-regexp |
509 vm-url-browser | 534 vm-url-browser |
510 vm-url-search-limit | 535 vm-url-search-limit |
626 folders. | 651 folders. |
627 | 652 |
628 vm-virtual-mode is not a normal major mode. If you run it, it | 653 vm-virtual-mode is not a normal major mode. If you run it, it |
629 will not do anything. The entry point to vm-virtual-mode is | 654 will not do anything. The entry point to vm-virtual-mode is |
630 vm-visit-virtual-folder.") | 655 vm-visit-virtual-folder.") |
656 | |
657 (defvar scroll-in-place) | |
631 | 658 |
632 (defun vm-visit-virtual-folder (folder-name &optional read-only) | 659 (defun vm-visit-virtual-folder (folder-name &optional read-only) |
633 (interactive | 660 (interactive |
634 (let ((last-command last-command) | 661 (let ((last-command last-command) |
635 (this-command this-command)) | 662 (this-command this-command)) |
659 buffer-read-only t | 686 buffer-read-only t |
660 vm-folder-read-only read-only | 687 vm-folder-read-only read-only |
661 vm-label-obarray (make-vector 29 0) | 688 vm-label-obarray (make-vector 29 0) |
662 vm-virtual-folder-definition | 689 vm-virtual-folder-definition |
663 (assoc folder-name vm-virtual-folder-alist)) | 690 (assoc folder-name vm-virtual-folder-alist)) |
691 ;; scroll in place messes with scroll-up and this loses | |
692 (make-local-variable 'scroll-in-place) | |
693 (setq scroll-in-place nil) | |
664 (vm-build-virtual-message-list nil) | 694 (vm-build-virtual-message-list nil) |
665 (use-local-map vm-mode-map) | 695 (use-local-map vm-mode-map) |
666 (and (vm-menu-support-possible-p) | 696 (and (vm-menu-support-possible-p) |
667 (vm-menu-install-menus)) | 697 (vm-menu-install-menus)) |
668 (add-hook 'kill-buffer-hook 'vm-garbage-collect-folder) | 698 (add-hook 'kill-buffer-hook 'vm-garbage-collect-folder) |
848 'vm-frame-per-folder | 878 'vm-frame-per-folder |
849 'vm-frame-per-summary | 879 'vm-frame-per-summary |
850 'vm-highlight-url-face | 880 'vm-highlight-url-face |
851 'vm-highlighted-header-regexp | 881 'vm-highlighted-header-regexp |
852 'vm-honor-page-delimiters | 882 'vm-honor-page-delimiters |
883 'vm-image-directory | |
853 'vm-in-reply-to-format | 884 'vm-in-reply-to-format |
854 'vm-included-text-attribution-format | 885 'vm-included-text-attribution-format |
855 'vm-included-text-discard-header-regexp | 886 'vm-included-text-discard-header-regexp |
856 'vm-included-text-headers | 887 'vm-included-text-headers |
857 'vm-included-text-prefix | 888 'vm-included-text-prefix |
863 'vm-keep-sent-messages | 894 'vm-keep-sent-messages |
864 'vm-mail-header-from | 895 'vm-mail-header-from |
865 'vm-mail-hook | 896 'vm-mail-hook |
866 'vm-make-crash-box-name | 897 'vm-make-crash-box-name |
867 'vm-make-spool-file-name | 898 'vm-make-spool-file-name |
899 'vm-mail-check-interval | |
868 'vm-mail-mode-hook | 900 'vm-mail-mode-hook |
869 'vm-mime-8bit-composition-charset | 901 'vm-mime-8bit-composition-charset |
870 'vm-mime-8bit-text-transfer-encoding | 902 'vm-mime-8bit-text-transfer-encoding |
871 'vm-mime-alternative-select-method | 903 'vm-mime-alternative-select-method |
872 'vm-mime-attachment-auto-type-alist | 904 'vm-mime-attachment-auto-type-alist |
875 'vm-mime-base64-decoder-program | 907 'vm-mime-base64-decoder-program |
876 'vm-mime-base64-decoder-switches | 908 'vm-mime-base64-decoder-switches |
877 'vm-mime-base64-encoder-program | 909 'vm-mime-base64-encoder-program |
878 'vm-mime-base64-encoder-switches | 910 'vm-mime-base64-encoder-switches |
879 'vm-mime-button-face | 911 'vm-mime-button-face |
912 'vm-mime-charset-font-alist | |
913 'vm-mime-default-face-charsets | |
880 'vm-mime-digest-discard-header-regexp | 914 'vm-mime-digest-discard-header-regexp |
881 'vm-mime-digest-headers | 915 'vm-mime-digest-headers |
882 'vm-mime-display-function | 916 'vm-mime-display-function |
883 'vm-mime-external-content-types-alist | 917 'vm-mime-external-content-types-alist |
884 'vm-mime-internal-content-types | 918 'vm-mime-internal-content-types |
891 'vm-move-messages-physically | 925 'vm-move-messages-physically |
892 'vm-movemail-program | 926 'vm-movemail-program |
893 'vm-mutable-frames | 927 'vm-mutable-frames |
894 'vm-mutable-windows | 928 'vm-mutable-windows |
895 'vm-netscape-program | 929 'vm-netscape-program |
930 'vm-pop-bytes-per-session | |
931 'vm-pop-max-message-size | |
932 'vm-pop-messages-per-session | |
896 'vm-pop-md5-program | 933 'vm-pop-md5-program |
897 'vm-popup-menu-on-mouse-3 | 934 'vm-popup-menu-on-mouse-3 |
898 'vm-preferences-file | 935 'vm-preferences-file |
899 'vm-preview-lines | 936 'vm-preview-lines |
900 'vm-preview-read-messages | 937 'vm-preview-read-messages |
986 (and (= emacs-major-version 19) | 1023 (and (= emacs-major-version 19) |
987 (< emacs-minor-version 34)))) | 1024 (< emacs-minor-version 34)))) |
988 (error "VM %s must be run on Emacs 19.34 or a later version." | 1025 (error "VM %s must be run on Emacs 19.34 or a later version." |
989 vm-version)))) | 1026 vm-version)))) |
990 | 1027 |
1028 (defun vm-set-debug-flags () | |
1029 (or stack-trace-on-error | |
1030 debug-on-error | |
1031 (setq stack-trace-on-error | |
1032 '( | |
1033 wrong-type-argument | |
1034 wrong-number-of-arguments | |
1035 args-out-of-range | |
1036 void-function | |
1037 void-variable | |
1038 )))) | |
1039 | |
991 (defun vm-session-initialization () | 1040 (defun vm-session-initialization () |
992 (vm-check-emacs-version) | 1041 (vm-check-emacs-version) |
1042 (vm-set-debug-flags) | |
993 ;; If this is the first time VM has been run in this Emacs session, | 1043 ;; If this is the first time VM has been run in this Emacs session, |
994 ;; do some necessary preparations. | 1044 ;; do some necessary preparations. |
995 (if (or (not (boundp 'vm-session-beginning)) | 1045 (if (or (not (boundp 'vm-session-beginning)) |
996 vm-session-beginning) | 1046 vm-session-beginning) |
997 (progn | 1047 (progn |