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