Mercurial > hg > xemacs-beta
comparison lisp/vm/vm-startup.el @ 98:0d2f883870bc r20-1b1
Import from CVS: tag r20-1b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:13:56 +0200 |
parents | c0c698873ce1 |
children | 4be1180a9e89 |
comparison
equal
deleted
inserted
replaced
97:498bf5da1c90 | 98:0d2f883870bc |
---|---|
1 ;;; Entry points for VM | 1 ;;; Entry points for VM |
2 ;;; Copyright (C) 1994, 1995 Kyle E. Jones | 2 ;;; Copyright (C) 1994-1997 Kyle E. Jones |
3 ;;; | 3 ;;; |
4 ;;; This program is free software; you can redistribute it and/or modify | 4 ;;; This program is free software; you can redistribute it and/or modify |
5 ;;; it under the terms of the GNU General Public License as published by | 5 ;;; it under the terms of the GNU General Public License as published by |
6 ;;; the Free Software Foundation; either version 1, or (at your option) | 6 ;;; the Free Software Foundation; either version 1, or (at your option) |
7 ;;; any later version. | 7 ;;; any later version. |
70 (setq vm-folder-history | 70 (setq vm-folder-history |
71 (cons item vm-folder-history)))) | 71 (cons item vm-folder-history)))) |
72 (vm-unsaved-message "Reading %s... done" file)))))))) | 72 (vm-unsaved-message "Reading %s... done" file)))))))) |
73 (set-buffer folder-buffer) | 73 (set-buffer folder-buffer) |
74 (vm-check-for-killed-summary) | 74 (vm-check-for-killed-summary) |
75 (vm-check-for-killed-presentation) | |
75 ;; If the buffer's not modified then we know that there can be no | 76 ;; If the buffer's not modified then we know that there can be no |
76 ;; messages in the folder that are not on disk. | 77 ;; messages in the folder that are not on disk. |
77 (or (buffer-modified-p) (setq vm-messages-not-on-disk 0)) | 78 (or (buffer-modified-p) (setq vm-messages-not-on-disk 0)) |
78 (setq first-time (not (eq major-mode 'vm-mode)) | 79 (setq first-time (not (eq major-mode 'vm-mode)) |
79 preserve-auto-save-file (and buffer-file-name | 80 preserve-auto-save-file (and buffer-file-name |
83 buffer-file-name))) | 84 buffer-file-name))) |
84 ;; Force the folder to be read only if the auto | 85 ;; Force the folder to be read only if the auto |
85 ;; save file contains information the user might not | 86 ;; save file contains information the user might not |
86 ;; want overwritten, i.e. recover-file might be | 87 ;; want overwritten, i.e. recover-file might be |
87 ;; desired. What we want to avoid is an auto-save. | 88 ;; desired. What we want to avoid is an auto-save. |
88 ;; Making the folder read only will keep it | 89 ;; Making the folder read only will keep |
89 ;; subsequent actions from modifying the buffer in a | 90 ;; subsequent actions from modifying the buffer in a |
90 ;; way that triggers an auto save. | 91 ;; way that triggers an auto save. |
91 ;; | 92 ;; |
92 ;; Also force the folder read-only if it was read only and | 93 ;; Also force the folder read-only if it was read only and |
93 ;; not already in vm-mode, since there's probably a good | 94 ;; not already in vm-mode, since there's probably a good |
118 (vm-start-itimers-if-needed))) | 119 (vm-start-itimers-if-needed))) |
119 | 120 |
120 ;; make a new frame if the user wants one. reuse an | 121 ;; make a new frame if the user wants one. reuse an |
121 ;; existing frame that is showing this folder. | 122 ;; existing frame that is showing this folder. |
122 (if (and full-startup | 123 (if (and full-startup |
123 vm-frame-per-folder | |
124 (vm-multiple-frames-possible-p) | |
125 ;; this so that "emacs -f vm" doesn't create a frame. | 124 ;; this so that "emacs -f vm" doesn't create a frame. |
126 this-command) | 125 this-command) |
127 (let ((w (or (vm-get-buffer-window (current-buffer)) | 126 (apply 'vm-goto-new-folder-frame-maybe |
128 ;; summary == folder for the purpose | 127 (if folder '(folder) '(primary-folder folder)))) |
129 ;; of frame reuse. | 128 |
130 (and vm-summary-buffer | 129 ;; raise frame if requested and apply startup window |
131 (vm-get-buffer-window vm-summary-buffer))))) | 130 ;; configuration. |
132 (if (null w) | 131 (if full-startup |
133 (progn | 132 (progn |
134 (if folder | 133 (if vm-raise-frame-at-startup |
135 (vm-goto-new-frame 'folder) | 134 (vm-raise-frame)) |
136 (vm-goto-new-frame 'primary-folder 'folder)) | 135 (vm-display nil nil (list this-command) |
137 (vm-set-hooks-for-frame-deletion)) | 136 (list (or this-command 'vm) 'startup)))) |
138 (save-excursion | 137 |
139 (select-window w) | |
140 (and vm-warp-mouse-to-new-frame | |
141 (vm-warp-mouse-to-frame-maybe (vm-window-frame w))))))) | |
142 | |
143 ;; say this NOW, before the non-previewers read a message, | 138 ;; say this NOW, before the non-previewers read a message, |
144 ;; alter the new message count and confuse themselves. | 139 ;; alter the new message count and confuse themselves. |
145 (if full-startup | 140 (if full-startup |
146 ;; save blurb so we can repeat it later as necessary. | 141 ;; save blurb so we can repeat it later as necessary. |
147 (setq totals-blurb (vm-emit-totals-blurb))) | 142 (setq totals-blurb (vm-emit-totals-blurb))) |
148 | 143 |
149 (vm-thoughtfully-select-message) | 144 (vm-thoughtfully-select-message) |
150 (if vm-message-list | 145 (if vm-message-list |
151 (vm-preview-current-message) | 146 (vm-preview-current-message) |
152 (vm-update-summary-and-mode-line)) | 147 (vm-update-summary-and-mode-line)) |
153 (if full-startup | |
154 (vm-display (current-buffer) t nil nil)) | |
155 ;; need to do this after any frame creation because the | 148 ;; need to do this after any frame creation because the |
156 ;; toolbar sets frame-specific height and width specifiers. | 149 ;; toolbar sets frame-specific height and width specifiers. |
157 (and (vm-toolbar-support-possible-p) vm-use-toolbar | 150 (and (vm-toolbar-support-possible-p) vm-use-toolbar |
158 (progn | 151 (progn |
159 (vm-toolbar-install-toolbar) | 152 (vm-toolbar-install-toolbar) |
161 | 154 |
162 (and vm-use-menus (vm-menu-support-possible-p) | 155 (and vm-use-menus (vm-menu-support-possible-p) |
163 (vm-menu-install-visited-folders-menu)) | 156 (vm-menu-install-visited-folders-menu)) |
164 | 157 |
165 (if full-startup | 158 (if full-startup |
166 (save-excursion | 159 (progn |
167 (vm-display (current-buffer) t nil nil) | 160 (if (and (vm-should-generate-summary) |
168 (if (and (vm-should-generate-summary) | |
169 ;; don't generate a summary if recover-file is | 161 ;; don't generate a summary if recover-file is |
170 ;; likely to happen, since recover-file does | 162 ;; likely to happen, since recover-file does |
171 ;; nothing useful in a summary buffer. | 163 ;; nothing useful in a summary buffer. |
172 (not preserve-auto-save-file)) | 164 (not preserve-auto-save-file)) |
173 (vm-summarize t)) | 165 (vm-summarize t nil)) |
174 ;; People were confused that (vm) behaved differently | 166 ;; raise the summary frame if the user wants frames |
175 ;; than M-x vm. We used to list all the various VM | 167 ;; raised and if there is a summary frame. |
176 ;; startup commands here, but now we just accept any | 168 (if (and vm-summary-buffer |
177 ;; command and treat it as if it were VM. It's | 169 vm-frame-per-summary |
178 ;; probably just as well, since any command that | 170 vm-raise-frame-at-startup) |
179 ;; calls VM probably does want the window | 171 (vm-raise-frame)) |
180 ;; configuration to be setup. | 172 ;; if vm-mutable-windows is nil, the startup |
181 (vm-display nil nil (list this-command) | 173 ;; configuration can't be applied, so do |
182 (list (or this-command 'vm) 'startup)))) | 174 ;; something to get a VM buffer on the screen |
175 (if vm-mutable-windows | |
176 (vm-display nil nil (list this-command) | |
177 (list (or this-command 'vm) 'startup)) | |
178 (save-excursion | |
179 (switch-to-buffer (or vm-summary-buffer | |
180 vm-presentation-buffer | |
181 (current-buffer))))))) | |
183 | 182 |
184 (run-hooks 'vm-visit-folder-hook) | 183 (run-hooks 'vm-visit-folder-hook) |
185 | 184 |
186 (if full-startup | 185 (if full-startup |
187 (message totals-blurb)) | 186 (message totals-blurb)) |
211 | 210 |
212 ;; Display copyright and copying info unless | 211 ;; Display copyright and copying info unless |
213 ;; user says no. | 212 ;; user says no. |
214 ;; Check this-command so we don't make the user wait if | 213 ;; Check this-command so we don't make the user wait if |
215 ;; they call vm non-interactively from some other program. | 214 ;; they call vm non-interactively from some other program. |
216 (if (and (not vm-inhibit-startup-message) | 215 (if (and (not vm-startup-message-displayed) |
217 (not vm-startup-message-displayed) | |
218 (or (memq this-command '(vm vm-visit-folder)) | 216 (or (memq this-command '(vm vm-visit-folder)) |
219 ;; for emacs -f vm | 217 ;; for emacs -f vm |
220 (null last-command))) | 218 (null last-command))) |
221 (progn | 219 (progn |
222 (vm-display-startup-message) | 220 (vm-display-startup-message) |
251 (put 'vm-mode 'mode-class 'special) | 249 (put 'vm-mode 'mode-class 'special) |
252 | 250 |
253 (defun vm-mode (&optional read-only) | 251 (defun vm-mode (&optional read-only) |
254 "Major mode for reading mail. | 252 "Major mode for reading mail. |
255 | 253 |
256 This is VM 5.96 (beta). | 254 This is VM 6.13. |
257 | 255 |
258 Commands: | 256 Commands: |
259 h - summarize folder contents | 257 h - summarize folder contents |
260 C-t - toggle threads display | 258 C-t - toggle threads display |
261 | 259 |
291 B - resend the current message to another user. | 289 B - resend the current message to another user. |
292 c - continue composing the most recent message you were composing | 290 c - continue composing the most recent message you were composing |
293 | 291 |
294 @ - digestify and mail entire folder contents (the folder is not modified) | 292 @ - digestify and mail entire folder contents (the folder is not modified) |
295 * - burst a digest into individual messages, and append and assimilate these | 293 * - burst a digest into individual messages, and append and assimilate these |
296 message into the current folder. | 294 messages into the current folder. |
297 | 295 |
298 G - sort messages by various keys | 296 G - sort messages by various keys |
299 | 297 |
300 g - get any new mail that has arrived in the system mailbox | 298 g - get any new mail that has arrived in the system mailbox |
301 (new mail is appended to the disk and buffer copies of the | 299 (new mail is appended to the disk and buffer copies of the |
320 | 318 |
321 M M - mark the current message | 319 M M - mark the current message |
322 M U - unmark the current message | 320 M U - unmark the current message |
323 M m - mark all messages | 321 M m - mark all messages |
324 M u - unmark all messages | 322 M u - unmark all messages |
325 M C - mark messages matches by a virtual folder selector | 323 M C - mark messages matched by a virtual folder selector |
326 M c - unmark messages matches by a virtual folder selector | 324 M c - unmark messages matched by a virtual folder selector |
327 M T - mark thread tree rooted at the current message | 325 M T - mark thread tree rooted at the current message |
328 M t - unmark thread tree rooted at the current message | 326 M t - unmark thread tree rooted at the current message |
329 M S - mark messages with the same subject as the current message | 327 M S - mark messages with the same subject as the current message |
330 M s - unmark messages with the same subject as the current message | 328 M s - unmark messages with the same subject as the current message |
331 M A - mark messages with the same author as the current message | 329 M A - mark messages with the same author as the current message |
332 M a - unmark messages with the same author as the current message | 330 M a - unmark messages with the same author as the current message |
331 M R - mark messages within the point/mark region in the summary | |
332 M r - unmark messages within the point/mark region in the summary | |
333 | 333 |
334 M ? - partial help for mark commands | 334 M ? - partial help for mark commands |
335 | 335 |
336 W S - save the current window configuration to a name | 336 W S - save the current window configuration to a name |
337 W D - delete a window configuration | 337 W D - delete a window configuration |
374 | 374 |
375 Variables: | 375 Variables: |
376 vm-arrived-message-hook | 376 vm-arrived-message-hook |
377 vm-arrived-messages-hook | 377 vm-arrived-messages-hook |
378 vm-auto-center-summary | 378 vm-auto-center-summary |
379 vm-auto-decode-mime-messages | |
380 vm-auto-displayed-mime-content-types | |
379 vm-auto-folder-alist | 381 vm-auto-folder-alist |
380 vm-auto-folder-case-fold-search | 382 vm-auto-folder-case-fold-search |
381 vm-auto-get-new-mail | 383 vm-auto-get-new-mail |
382 vm-auto-next-message | 384 vm-auto-next-message |
383 vm-berkeley-mail-compatibility | 385 vm-berkeley-mail-compatibility |
386 vm-burst-digest-messages-inherit-labels | |
384 vm-check-folder-types | 387 vm-check-folder-types |
385 vm-convert-folder-types | |
386 vm-circular-folders | 388 vm-circular-folders |
387 vm-confirm-new-folders | 389 vm-confirm-new-folders |
388 vm-confirm-quit | 390 vm-confirm-quit |
391 vm-convert-folder-types | |
389 vm-crash-box | 392 vm-crash-box |
393 vm-crash-box-suffix | |
390 vm-default-folder-type | 394 vm-default-folder-type |
391 vm-delete-after-archiving | 395 vm-delete-after-archiving |
392 vm-delete-after-bursting | 396 vm-delete-after-bursting |
393 vm-delete-after-saving | 397 vm-delete-after-saving |
394 vm-delete-empty-folders | 398 vm-delete-empty-folders |
395 vm-digest-burst-type | 399 vm-digest-burst-type |
396 vm-digest-center-preamble | 400 vm-digest-center-preamble |
397 vm-digest-preamble-format | 401 vm-digest-preamble-format |
398 vm-digest-send-type | 402 vm-digest-send-type |
399 vm-display-buffer-hook | 403 vm-display-buffer-hook |
404 vm-display-using-mime | |
400 vm-edit-message-hook | 405 vm-edit-message-hook |
401 vm-folder-directory | 406 vm-folder-directory |
402 vm-folder-read-only | 407 vm-folder-read-only |
403 vm-follow-summary-cursor | 408 vm-follow-summary-cursor |
404 vm-forward-message-hook | 409 vm-forward-message-hook |
405 vm-forwarded-headers | 410 vm-forwarded-headers |
406 vm-forwarding-digest-type | 411 vm-forwarding-digest-type |
407 vm-forwarding-subject-format | 412 vm-forwarding-subject-format |
408 vm-frame-parameter-alist | 413 vm-frame-parameter-alist |
414 vm-frame-per-completion | |
409 vm-frame-per-composition | 415 vm-frame-per-composition |
416 vm-frame-per-edit | |
410 vm-frame-per-folder | 417 vm-frame-per-folder |
418 vm-frame-per-summary | |
411 vm-highlighted-header-face | 419 vm-highlighted-header-face |
412 vm-highlighted-header-regexp | 420 vm-highlighted-header-regexp |
413 vm-honor-page-delimiters | 421 vm-honor-page-delimiters |
414 vm-in-reply-to-format | 422 vm-in-reply-to-format |
415 vm-included-text-attribution-format | 423 vm-included-text-attribution-format |
416 vm-included-text-discard-header-regexp | 424 vm-included-text-discard-header-regexp |
417 vm-included-text-headers | 425 vm-included-text-headers |
418 vm-included-text-prefix | 426 vm-included-text-prefix |
419 vm-inhibit-startup-message | |
420 vm-invisible-header-regexp | 427 vm-invisible-header-regexp |
421 vm-jump-to-new-messages | 428 vm-jump-to-new-messages |
422 vm-jump-to-unread-messages | 429 vm-jump-to-unread-messages |
430 vm-keep-crash-boxes | |
423 vm-keep-sent-messages | 431 vm-keep-sent-messages |
424 vm-keep-crash-boxes | |
425 vm-mail-header-from | 432 vm-mail-header-from |
426 vm-mail-mode-hook | 433 vm-mail-mode-hook |
434 vm-make-crash-box-name | |
435 vm-make-spool-file-name | |
436 vm-mime-8bit-composition-charset | |
437 vm-mime-8bit-text-transfer-encoding | |
438 vm-mime-alternative-select-method | |
439 vm-mime-attachment-auto-type-alist | |
440 vm-mime-attachment-save-directory | |
441 vm-mime-avoid-folding-content-type | |
442 vm-mime-base64-decoder-program | |
443 vm-mime-base64-decoder-switches | |
444 vm-mime-base64-encoder-program | |
445 vm-mime-base64-encoder-switches | |
446 vm-mime-button-face | |
447 vm-mime-digest-discard-header-regexp | |
448 vm-mime-digest-headers | |
449 vm-mime-display-function | |
450 vm-mime-external-content-types-alist | |
451 vm-mime-internal-content-types | |
452 vm-mime-max-message-size | |
427 vm-mode-hook | 453 vm-mode-hook |
428 vm-mosaic-program | 454 vm-mosaic-program |
429 vm-move-after-deleting | 455 vm-move-after-deleting |
456 vm-move-after-killing | |
430 vm-move-after-undeleting | 457 vm-move-after-undeleting |
431 vm-move-messages-physically | 458 vm-move-messages-physically |
459 vm-mutable-frames | |
432 vm-mutable-windows | 460 vm-mutable-windows |
433 vm-mutable-frames | |
434 vm-netscape-program | 461 vm-netscape-program |
435 vm-options-file | |
436 vm-pop-md5-program | 462 vm-pop-md5-program |
463 vm-popup-menu-on-mouse-3 | |
464 vm-preferences-file | |
437 vm-preview-lines | 465 vm-preview-lines |
438 vm-preview-read-messages | 466 vm-preview-read-messages |
439 vm-primary-inbox | 467 vm-primary-inbox |
440 vm-quit-hook | 468 vm-quit-hook |
441 vm-recognize-pop-maildrops | 469 vm-recognize-pop-maildrops |
442 vm-reply-hook | 470 vm-reply-hook |
471 vm-reply-ignored-addresses | |
443 vm-reply-ignored-reply-tos | 472 vm-reply-ignored-reply-tos |
444 vm-reply-ignored-addresses | |
445 vm-reply-subject-prefix | 473 vm-reply-subject-prefix |
446 vm-resend-bounced-discard-header-regexp | 474 vm-resend-bounced-discard-header-regexp |
447 vm-resend-bounced-headers | 475 vm-resend-bounced-headers |
448 vm-resend-bounced-message-hook | 476 vm-resend-bounced-message-hook |
449 vm-resend-discard-header-regexp | 477 vm-resend-discard-header-regexp |
457 vm-search-using-regexps | 485 vm-search-using-regexps |
458 vm-select-message-hook | 486 vm-select-message-hook |
459 vm-select-new-message-hook | 487 vm-select-new-message-hook |
460 vm-select-unread-message-hook | 488 vm-select-unread-message-hook |
461 vm-send-digest-hook | 489 vm-send-digest-hook |
490 vm-send-using-mime | |
462 vm-skip-deleted-messages | 491 vm-skip-deleted-messages |
463 vm-skip-read-messages | 492 vm-skip-read-messages |
464 vm-spool-files | 493 vm-spool-files |
494 vm-spool-file-suffixes | |
465 vm-startup-with-summary | 495 vm-startup-with-summary |
466 vm-strip-reply-headers | 496 vm-strip-reply-headers |
467 vm-summary-arrow | 497 vm-summary-arrow |
468 vm-summary-format | 498 vm-summary-format |
469 vm-summary-highlight-face | 499 vm-summary-highlight-face |
470 vm-summary-mode-hook | 500 vm-summary-mode-hook |
471 vm-summary-redo-hook | 501 vm-summary-redo-hook |
472 vm-summary-show-threads | 502 vm-summary-show-threads |
473 vm-summary-subject-no-newlines | |
474 vm-summary-thread-indent-level | 503 vm-summary-thread-indent-level |
504 vm-temp-file-directory | |
505 vm-tale-is-an-idiot | |
475 vm-trust-From_-with-Content-Length | 506 vm-trust-From_-with-Content-Length |
476 vm-undisplay-buffer-hook | 507 vm-undisplay-buffer-hook |
477 vm-unforwarded-header-regexp | 508 vm-unforwarded-header-regexp |
478 vm-url-browser | 509 vm-url-browser |
479 vm-url-search-limit | 510 vm-url-search-limit |
480 vm-use-menus | 511 vm-use-menus |
512 vm-use-toolbar | |
481 vm-virtual-folder-alist | 513 vm-virtual-folder-alist |
482 vm-virtual-mirror | 514 vm-virtual-mirror |
483 vm-visible-headers | 515 vm-visible-headers |
484 vm-visit-folder-hook | 516 vm-visit-folder-hook |
485 vm-visit-when-saving | 517 vm-visit-when-saving |
631 (assoc folder-name vm-virtual-folder-alist)) | 663 (assoc folder-name vm-virtual-folder-alist)) |
632 (vm-build-virtual-message-list nil) | 664 (vm-build-virtual-message-list nil) |
633 (use-local-map vm-mode-map) | 665 (use-local-map vm-mode-map) |
634 (and (vm-menu-support-possible-p) | 666 (and (vm-menu-support-possible-p) |
635 (vm-menu-install-menus)) | 667 (vm-menu-install-menus)) |
668 (add-hook 'kill-buffer-hook 'vm-garbage-collect-folder) | |
669 (add-hook 'kill-buffer-hook 'vm-garbage-collect-message) | |
636 ;; save this for last in case the user interrupts. | 670 ;; save this for last in case the user interrupts. |
637 ;; an interrupt anywhere before this point will cause | 671 ;; an interrupt anywhere before this point will cause |
638 ;; everything to be redone next revisit. | 672 ;; everything to be redone next revisit. |
639 (setq major-mode 'vm-virtual-mode) | 673 (setq major-mode 'vm-virtual-mode) |
640 (run-hooks 'vm-virtual-mode-hook) | 674 (run-hooks 'vm-virtual-mode-hook) |
641 ;; must come after the setting of major-mode | 675 ;; must come after the setting of major-mode |
642 (setq mode-popup-menu (and vm-use-menus | 676 (setq mode-popup-menu (and vm-use-menus vm-popup-menu-on-mouse-3 |
643 (vm-menu-support-possible-p) | 677 (vm-menu-support-possible-p) |
644 (vm-menu-mode-menu))) | 678 (vm-menu-mode-menu))) |
645 (setq blurb (vm-emit-totals-blurb)) | 679 (setq blurb (vm-emit-totals-blurb)) |
646 (if vm-summary-show-threads | 680 (if vm-summary-show-threads |
647 (vm-sort-messages "thread")) | 681 (vm-sort-messages "thread")) |
649 (vm-preview-current-message) | 683 (vm-preview-current-message) |
650 (vm-update-summary-and-mode-line)) | 684 (vm-update-summary-and-mode-line)) |
651 (message blurb))) | 685 (message blurb))) |
652 ;; make a new frame if the user wants one. reuse an | 686 ;; make a new frame if the user wants one. reuse an |
653 ;; existing frame that is showing this folder. | 687 ;; existing frame that is showing this folder. |
654 (if (and vm-frame-per-folder (vm-multiple-frames-possible-p)) | 688 (vm-goto-new-folder-frame-maybe 'folder) |
655 (let ((w (or (vm-get-buffer-window (current-buffer)) | 689 (if vm-raise-frame-at-startup |
656 ;; summary == folder for the purpose | 690 (vm-raise-frame)) |
657 ;; of frame reuse. | 691 (vm-display nil nil (list this-command) (list this-command 'startup)) |
658 (and vm-summary-buffer | |
659 (vm-get-buffer-window (current-buffer)))))) | |
660 (if (null w) | |
661 (vm-goto-new-frame 'folder) | |
662 (save-excursion | |
663 (select-window w) | |
664 (and vm-warp-mouse-to-new-frame | |
665 (vm-warp-mouse-to-frame-maybe (vm-window-frame w))))) | |
666 (vm-set-hooks-for-frame-deletion))) | |
667 (vm-display (current-buffer) t nil nil) | |
668 (and (vm-toolbar-support-possible-p) vm-use-toolbar | 692 (and (vm-toolbar-support-possible-p) vm-use-toolbar |
669 (vm-toolbar-install-toolbar)) | 693 (vm-toolbar-install-toolbar)) |
670 (if first-time | 694 (if first-time |
671 (if (vm-should-generate-summary) | 695 (progn |
672 (progn (vm-summarize t) | 696 (if (vm-should-generate-summary) |
673 (message blurb)))) | 697 (progn (vm-summarize t nil) |
674 (vm-display nil nil '(vm-visit-virtual-folder | 698 (message blurb))) |
675 vm-visit-virtual-folder-other-frame | 699 ;; raise the summary frame if the user wants frames |
676 vm-visit-virtual-folder-other-window | 700 ;; raised and if there is a summary frame. |
677 vm-create-virtual-folder | 701 (if (and vm-summary-buffer |
678 vm-apply-virtual-folder) | 702 vm-frame-per-summary |
679 (list this-command 'startup)) | 703 vm-raise-frame-at-startup) |
704 (vm-raise-frame)) | |
705 ;; if vm-mutable-windows is nil, the startup | |
706 ;; configuration can't be applied, so do | |
707 ;; something to get a VM buffer on the screen | |
708 (if vm-mutable-windows | |
709 (vm-display nil nil (list this-command) | |
710 (list (or this-command 'vm) 'startup)) | |
711 (save-excursion | |
712 (switch-to-buffer (or vm-summary-buffer | |
713 vm-presentation-buffer | |
714 (current-buffer))))))) | |
715 | |
680 ;; check interactive-p so as not to bog the user down if they | 716 ;; check interactive-p so as not to bog the user down if they |
681 ;; run this function from within another function. | 717 ;; run this function from within another function. |
682 (and (interactive-p) (not vm-inhibit-startup-message) | 718 (and (interactive-p) |
683 (not vm-startup-message-displayed) | 719 (not vm-startup-message-displayed) |
684 (vm-display-startup-message) | 720 (vm-display-startup-message) |
685 (message blurb)))) | 721 (message blurb)))) |
686 | 722 |
687 (defun vm-visit-virtual-folder-other-frame (folder-name &optional read-only) | 723 (defun vm-visit-virtual-folder-other-frame (folder-name &optional read-only) |
766 (concat "VM " vm-version) | 802 (concat "VM " vm-version) |
767 (list | 803 (list |
768 'vm-arrived-message-hook | 804 'vm-arrived-message-hook |
769 'vm-arrived-messages-hook | 805 'vm-arrived-messages-hook |
770 'vm-auto-center-summary | 806 'vm-auto-center-summary |
807 'vm-auto-decode-mime-messages | |
808 'vm-auto-displayed-mime-content-types | |
771 ;; don't send this by default, might be personal stuff in here. | 809 ;; don't send this by default, might be personal stuff in here. |
772 ;; 'vm-auto-folder-alist | 810 ;; 'vm-auto-folder-alist |
773 'vm-auto-folder-case-fold-search | 811 'vm-auto-folder-case-fold-search |
774 'vm-auto-get-new-mail | 812 'vm-auto-get-new-mail |
775 'vm-auto-next-message | 813 'vm-auto-next-message |
778 'vm-circular-folders | 816 'vm-circular-folders |
779 'vm-confirm-new-folders | 817 'vm-confirm-new-folders |
780 'vm-confirm-quit | 818 'vm-confirm-quit |
781 'vm-convert-folder-types | 819 'vm-convert-folder-types |
782 'vm-crash-box | 820 'vm-crash-box |
821 'vm-crash-box-suffix | |
783 'vm-default-folder-type | 822 'vm-default-folder-type |
784 'vm-delete-after-archiving | 823 'vm-delete-after-archiving |
785 'vm-delete-after-bursting | 824 'vm-delete-after-bursting |
786 'vm-delete-after-saving | 825 'vm-delete-after-saving |
787 'vm-delete-empty-folders | 826 'vm-delete-empty-folders |
789 'vm-digest-identifier-header-format | 828 'vm-digest-identifier-header-format |
790 'vm-digest-center-preamble | 829 'vm-digest-center-preamble |
791 'vm-digest-preamble-format | 830 'vm-digest-preamble-format |
792 'vm-digest-send-type | 831 'vm-digest-send-type |
793 'vm-display-buffer-hook | 832 'vm-display-buffer-hook |
833 'vm-display-using-mime | |
794 'vm-edit-message-hook | 834 'vm-edit-message-hook |
795 'vm-edit-message-mode | 835 'vm-edit-message-mode |
796 'vm-flush-interval | 836 'vm-flush-interval |
797 'vm-folder-directory | 837 'vm-folder-directory |
798 'vm-folder-read-only | 838 'vm-folder-read-only |
800 'vm-forward-message-hook | 840 'vm-forward-message-hook |
801 'vm-forwarded-headers | 841 'vm-forwarded-headers |
802 'vm-forwarding-digest-type | 842 'vm-forwarding-digest-type |
803 'vm-forwarding-subject-format | 843 'vm-forwarding-subject-format |
804 'vm-frame-parameter-alist | 844 'vm-frame-parameter-alist |
845 'vm-frame-per-completion | |
805 'vm-frame-per-composition | 846 'vm-frame-per-composition |
847 'vm-frame-per-edit | |
806 'vm-frame-per-folder | 848 'vm-frame-per-folder |
849 'vm-frame-per-summary | |
807 'vm-highlight-url-face | 850 'vm-highlight-url-face |
808 'vm-highlighted-header-regexp | 851 'vm-highlighted-header-regexp |
809 'vm-honor-page-delimiters | 852 'vm-honor-page-delimiters |
810 'vm-in-reply-to-format | 853 'vm-in-reply-to-format |
811 'vm-included-text-attribution-format | 854 'vm-included-text-attribution-format |
812 'vm-included-text-discard-header-regexp | 855 'vm-included-text-discard-header-regexp |
813 'vm-included-text-headers | 856 'vm-included-text-headers |
814 'vm-included-text-prefix | 857 'vm-included-text-prefix |
815 'vm-inhibit-startup-message | |
816 'vm-init-file | 858 'vm-init-file |
817 'vm-invisible-header-regexp | 859 'vm-invisible-header-regexp |
818 'vm-jump-to-new-messages | 860 'vm-jump-to-new-messages |
819 'vm-jump-to-unread-messages | 861 'vm-jump-to-unread-messages |
820 'vm-keep-crash-boxes | 862 'vm-keep-crash-boxes |
821 'vm-keep-sent-messages | 863 'vm-keep-sent-messages |
822 'vm-mail-header-from | 864 'vm-mail-header-from |
823 'vm-mail-hook | 865 'vm-mail-hook |
866 'vm-make-crash-box-name | |
867 'vm-make-spool-file-name | |
824 'vm-mail-mode-hook | 868 'vm-mail-mode-hook |
869 'vm-mime-8bit-composition-charset | |
870 'vm-mime-8bit-text-transfer-encoding | |
871 'vm-mime-alternative-select-method | |
872 'vm-mime-attachment-auto-type-alist | |
873 'vm-mime-attachment-save-directory | |
874 'vm-mime-avoid-folding-content-type | |
875 'vm-mime-base64-decoder-program | |
876 'vm-mime-base64-decoder-switches | |
877 'vm-mime-base64-encoder-program | |
878 'vm-mime-base64-encoder-switches | |
879 'vm-mime-button-face | |
880 'vm-mime-digest-discard-header-regexp | |
881 'vm-mime-digest-headers | |
882 'vm-mime-display-function | |
883 'vm-mime-external-content-types-alist | |
884 'vm-mime-internal-content-types | |
885 'vm-mime-max-message-size | |
825 'vm-mode-hook | 886 'vm-mode-hook |
826 'vm-mode-hooks | 887 'vm-mode-hooks |
827 'vm-mosaic-program | 888 'vm-mosaic-program |
828 'vm-move-after-deleting | 889 'vm-move-after-deleting |
829 'vm-move-after-undeleting | 890 'vm-move-after-undeleting |
830 'vm-move-messages-physically | 891 'vm-move-messages-physically |
831 'vm-movemail-program | 892 'vm-movemail-program |
832 'vm-mutable-frames | 893 'vm-mutable-frames |
833 'vm-mutable-windows | 894 'vm-mutable-windows |
834 'vm-netscape-program | 895 'vm-netscape-program |
835 'vm-options-file | |
836 'vm-pop-md5-program | 896 'vm-pop-md5-program |
897 'vm-popup-menu-on-mouse-3 | |
898 'vm-preferences-file | |
837 'vm-preview-lines | 899 'vm-preview-lines |
838 'vm-preview-read-messages | 900 'vm-preview-read-messages |
839 'vm-primary-inbox | 901 'vm-primary-inbox |
840 'vm-quit-hook | 902 'vm-quit-hook |
841 'vm-recognize-pop-maildrops | 903 'vm-recognize-pop-maildrops |
857 'vm-search-using-regexps | 919 'vm-search-using-regexps |
858 'vm-select-message-hook | 920 'vm-select-message-hook |
859 'vm-select-new-message-hook | 921 'vm-select-new-message-hook |
860 'vm-select-unread-message-hook | 922 'vm-select-unread-message-hook |
861 'vm-send-digest-hook | 923 'vm-send-digest-hook |
924 'vm-send-using-mime | |
862 'vm-skip-deleted-messages | 925 'vm-skip-deleted-messages |
863 'vm-skip-read-messages | 926 'vm-skip-read-messages |
864 ;; don't send vm-spool-files by default, might contain passwords | 927 ;; don't send vm-spool-files by default, might contain passwords |
865 ;; 'vm-spool-files | 928 ;; 'vm-spool-files |
929 'vm-spool-file-suffixes | |
866 'vm-startup-with-summary | 930 'vm-startup-with-summary |
867 'vm-strip-reply-headers | 931 'vm-strip-reply-headers |
868 'vm-summary-format | 932 'vm-summary-format |
869 'vm-summary-highlight-face | 933 'vm-summary-highlight-face |
870 'vm-summary-mode-hook | 934 'vm-summary-mode-hook |
871 'vm-summary-mode-hooks | 935 'vm-summary-mode-hooks |
872 'vm-summary-redo-hook | 936 'vm-summary-redo-hook |
873 'vm-summary-show-threads | 937 'vm-summary-show-threads |
874 'vm-summary-subject-no-newlines | |
875 'vm-summary-thread-indent-level | 938 'vm-summary-thread-indent-level |
876 'vm-summary-uninteresting-senders | 939 'vm-summary-uninteresting-senders |
877 'vm-summary-uninteresting-senders-arrow | 940 'vm-summary-uninteresting-senders-arrow |
878 'vm-tale-is-an-idiot | 941 'vm-tale-is-an-idiot |
942 'vm-temp-file-directory | |
879 'vm-trust-From_-with-Content-Length | 943 'vm-trust-From_-with-Content-Length |
880 'vm-undisplay-buffer-hook | 944 'vm-undisplay-buffer-hook |
881 'vm-unforwarded-header-regexp | 945 'vm-unforwarded-header-regexp |
882 'vm-url-browser | 946 'vm-url-browser |
883 'vm-url-search-limit | 947 'vm-url-search-limit |
884 'vm-use-menus | 948 'vm-use-menus |
949 'vm-use-toolbar | |
885 'vm-virtual-folder-alist | 950 'vm-virtual-folder-alist |
886 'vm-virtual-mirror | 951 'vm-virtual-mirror |
887 'vm-visible-headers | 952 'vm-visible-headers |
888 'vm-visit-folder-hook | 953 'vm-visit-folder-hook |
889 'vm-visit-when-saving | 954 'vm-visit-when-saving |
907 (if (or (not vm-init-file-loaded) interactive) | 972 (if (or (not vm-init-file-loaded) interactive) |
908 (load vm-init-file (not interactive) (not interactive) t)) | 973 (load vm-init-file (not interactive) (not interactive) t)) |
909 (setq vm-init-file-loaded t) | 974 (setq vm-init-file-loaded t) |
910 (vm-display nil nil '(vm-load-init-file) '(vm-load-init-file))) | 975 (vm-display nil nil '(vm-load-init-file) '(vm-load-init-file))) |
911 | 976 |
977 (defun vm-check-emacs-version () | |
978 (cond ((and (vm-xemacs-p) | |
979 (or (< emacs-major-version 19) | |
980 (and (= emacs-major-version 19) | |
981 (< emacs-minor-version 14)))) | |
982 (error "VM %s must be run on XEmacs 19.14 or a later version." | |
983 vm-version)) | |
984 ((and (vm-fsfemacs-19-p) | |
985 (or (< emacs-major-version 19) | |
986 (and (= emacs-major-version 19) | |
987 (< emacs-minor-version 34)))) | |
988 (error "VM %s must be run on Emacs 19.34 or a later version." | |
989 vm-version)))) | |
990 | |
912 (defun vm-session-initialization () | 991 (defun vm-session-initialization () |
992 (vm-check-emacs-version) | |
913 ;; If this is the first time VM has been run in this Emacs session, | 993 ;; If this is the first time VM has been run in this Emacs session, |
914 ;; do some necessary preparations. | 994 ;; do some necessary preparations. |
915 (if (or (not (boundp 'vm-session-beginning)) | 995 (if (or (not (boundp 'vm-session-beginning)) |
916 vm-session-beginning) | 996 vm-session-beginning) |
917 (progn | 997 (progn |