Mercurial > hg > xemacs-beta
comparison lisp/vm/vm-folder.el @ 108:360340f9fd5f r20-1b6
Import from CVS: tag r20-1b6
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:18:39 +0200 |
parents | a145efe76779 |
children | 8619ce7e4c50 |
comparison
equal
deleted
inserted
replaced
107:523141596bda | 108:360340f9fd5f |
---|---|
506 (set-buffer b) | 506 (set-buffer b) |
507 (setq temp-buffer (generate-new-buffer "*vm-work*")) | 507 (setq temp-buffer (generate-new-buffer "*vm-work*")) |
508 (set-buffer temp-buffer) | 508 (set-buffer temp-buffer) |
509 (if (file-readable-p file) | 509 (if (file-readable-p file) |
510 (condition-case nil | 510 (condition-case nil |
511 (let ((overriding-file-coding-system 'binary)) | 511 (let ((coding-system-for-read 'binary)) |
512 (insert-file-contents file nil 0 4096)) | 512 (insert-file-contents file nil 0 4096)) |
513 (wrong-number-of-arguments | 513 (wrong-number-of-arguments |
514 (call-process "sed" file temp-buffer nil | 514 (call-process "sed" file temp-buffer nil |
515 "-n" "1,/^$/p"))))))) | 515 "-n" "1,/^$/p"))))))) |
516 (save-excursion | 516 (save-excursion |
1033 folder-buffer | 1033 folder-buffer |
1034 (vm-headers-of message) | 1034 (vm-headers-of message) |
1035 (vm-text-of message)) | 1035 (vm-text-of message)) |
1036 (goto-char (point-min)))) | 1036 (goto-char (point-min)))) |
1037 (setq old-header-start (point)) | 1037 (setq old-header-start (point)) |
1038 (while (and (not (= (following-char) ?\n)) | 1038 ;; as we loop through the headers, skip >From |
1039 (vm-match-header)) | 1039 ;; lines. these can occur anywhere in the |
1040 ;; header section if the message has been | |
1041 ;; manhandled by some dumb delivery agents | |
1042 ;; (SCO and Solaris are the usual suspects.) | |
1043 ;; it's a tough ol' world. | |
1044 (while (progn (while (looking-at ">From ") | |
1045 (forward-line)) | |
1046 (and (not (= (following-char) ?\n)) | |
1047 (vm-match-header))) | |
1040 (setq end-of-header (vm-matched-header-end) | 1048 (setq end-of-header (vm-matched-header-end) |
1041 list (vm-match-ordered-header header-alist)) | 1049 list (vm-match-ordered-header header-alist)) |
1042 ;; don't display/keep this header if | 1050 ;; don't display/keep this header if |
1043 ;; keep-list not matched | 1051 ;; keep-list not matched |
1044 ;; and discard-regexp is nil | 1052 ;; and discard-regexp is nil |
2194 (setq inhibit-quit nil) | 2202 (setq inhibit-quit nil) |
2195 (if (integerp vm-mail-check-interval) | 2203 (if (integerp vm-mail-check-interval) |
2196 (if timer | 2204 (if timer |
2197 (timer-set-time timer (current-time) vm-mail-check-interval) | 2205 (timer-set-time timer (current-time) vm-mail-check-interval) |
2198 (set-itimer-restart current-itimer vm-mail-check-interval)) | 2206 (set-itimer-restart current-itimer vm-mail-check-interval)) |
2199 ;; user has changed the variable value to a something that | 2207 ;; user has changed the variable value to something that |
2200 ;; isn't a number, make the timer go away. | 2208 ;; isn't a number, make the timer go away. |
2201 (if timer | 2209 (if timer |
2202 (cancel-timer timer) | 2210 (cancel-timer timer) |
2203 (set-itimer-restart current-itimer nil))) | 2211 (set-itimer-restart current-itimer nil))) |
2204 (let ((b-list (buffer-list)) | 2212 (let ((b-list (buffer-list)) |
2207 (while (and (not (input-pending-p)) b-list) | 2215 (while (and (not (input-pending-p)) b-list) |
2208 (save-excursion | 2216 (save-excursion |
2209 (set-buffer (car b-list)) | 2217 (set-buffer (car b-list)) |
2210 (if (and (eq major-mode 'vm-mode) | 2218 (if (and (eq major-mode 'vm-mode) |
2211 (setq found-one t) | 2219 (setq found-one t) |
2212 (not vm-block-new-mail)) | 2220 ;; to avoid reentrance into the pop code |
2221 (not vm-block-new-mail) | |
2222 ;; Don't bother checking if we already know from | |
2223 ;; a previous check that there's mail waiting | |
2224 ;; and the user hasn't retrieved it yet. Not | |
2225 ;; completely accurate, but saves network | |
2226 ;; connection build and tear down which is slow | |
2227 ;; for some users. | |
2228 (not vm-spooled-mail-waiting)) | |
2213 (progn | 2229 (progn |
2214 (setq oldval vm-spooled-mail-waiting) | 2230 (setq oldval vm-spooled-mail-waiting) |
2215 (vm-check-for-spooled-mail nil) | 2231 (vm-check-for-spooled-mail nil) |
2216 (if (not (eq oldval vm-spooled-mail-waiting)) | 2232 (if (not (eq oldval vm-spooled-mail-waiting)) |
2217 (progn | 2233 (progn |
2233 (setq inhibit-quit nil) | 2249 (setq inhibit-quit nil) |
2234 (if (integerp vm-auto-get-new-mail) | 2250 (if (integerp vm-auto-get-new-mail) |
2235 (if timer | 2251 (if timer |
2236 (timer-set-time timer (current-time) vm-auto-get-new-mail) | 2252 (timer-set-time timer (current-time) vm-auto-get-new-mail) |
2237 (set-itimer-restart current-itimer vm-auto-get-new-mail)) | 2253 (set-itimer-restart current-itimer vm-auto-get-new-mail)) |
2238 ;; user has changed the variable value to a something that | 2254 ;; user has changed the variable value to something that |
2239 ;; isn't a number, make the timer go away. | 2255 ;; isn't a number, make the timer go away. |
2240 (if timer | 2256 (if timer |
2241 (cancel-timer timer) | 2257 (cancel-timer timer) |
2242 (set-itimer-restart current-itimer nil))) | 2258 (set-itimer-restart current-itimer nil))) |
2243 (let ((b-list (buffer-list)) | 2259 (let ((b-list (buffer-list)) |
2536 ;; crash box could contain a letter bomb... | 2552 ;; crash box could contain a letter bomb... |
2537 ;; force user notification of file variables for v18 Emacses | 2553 ;; force user notification of file variables for v18 Emacses |
2538 ;; enable-local-variables == nil disables them for newer Emacses | 2554 ;; enable-local-variables == nil disables them for newer Emacses |
2539 (let ((inhibit-local-variables t) | 2555 (let ((inhibit-local-variables t) |
2540 (enable-local-variables nil) | 2556 (enable-local-variables nil) |
2541 (overriding-file-coding-system 'no-conversion)) | 2557 (coding-system-for-read 'no-conversion)) |
2542 (find-file-noselect crash-box))) | 2558 (find-file-noselect crash-box))) |
2543 (save-excursion | 2559 (save-excursion |
2544 (set-buffer crash-buf) | 2560 (set-buffer crash-buf) |
2545 (setq crash-folder-type (vm-get-folder-type)) | 2561 (setq crash-folder-type (vm-get-folder-type)) |
2546 (if (and crash-folder-type vm-check-folder-types) | 2562 (if (and crash-folder-type vm-check-folder-types) |
2596 (vm-increment vm-modification-counter) | 2612 (vm-increment vm-modification-counter) |
2597 (set-buffer-modified-p old-buffer-modified-p) | 2613 (set-buffer-modified-p old-buffer-modified-p) |
2598 (kill-buffer crash-buf) | 2614 (kill-buffer crash-buf) |
2599 (if (not (stringp vm-keep-crash-boxes)) | 2615 (if (not (stringp vm-keep-crash-boxes)) |
2600 (vm-error-free-call 'delete-file crash-box) | 2616 (vm-error-free-call 'delete-file crash-box) |
2601 (let (name) | 2617 (let ((time (decode-time (current-time))) |
2602 (setq name (expand-file-name (format "Z%d" (vm-abs (random))) | 2618 name) |
2603 vm-keep-crash-boxes)) | 2619 (setq name |
2620 (expand-file-name (format "Z-%02d-%02d-%05d" | |
2621 (nth 4 time) | |
2622 (nth 3 time) | |
2623 (% (vm-abs (random)) 100000)) | |
2624 vm-keep-crash-boxes)) | |
2604 (while (file-exists-p name) | 2625 (while (file-exists-p name) |
2605 (setq name (expand-file-name (format "Z%d" (vm-abs (random))) | 2626 (setq name |
2606 vm-keep-crash-boxes))) | 2627 (expand-file-name (format "Z-%02d-%02d-%05d" |
2628 (nth 4 time) | |
2629 (nth 3 time) | |
2630 (% (vm-abs (random)) 100000)) | |
2631 vm-keep-crash-boxes))) | |
2607 (rename-file crash-box name)))) | 2632 (rename-file crash-box name)))) |
2608 got-mail )))) | 2633 got-mail )))) |
2609 | 2634 |
2610 (defun vm-compute-spool-files () | 2635 (defun vm-compute-spool-files () |
2611 (let ((fallback-triples nil) | 2636 (let ((fallback-triples nil) |
2756 (sleep-for 2) | 2781 (sleep-for 2) |
2757 ;; we don't know if mail was | 2782 ;; we don't know if mail was |
2758 ;; put into the crash box or | 2783 ;; put into the crash box or |
2759 ;; not, so return t just to be | 2784 ;; not, so return t just to be |
2760 ;; safe. | 2785 ;; safe. |
2786 t ) | |
2787 (quit (message "quitting from %s..." | |
2788 (if popdrop | |
2789 'vm-pop-move-mail | |
2790 'vm-spool-move-mail)) | |
2791 (sleep-for 1) | |
2792 ;; we don't know if mail was | |
2793 ;; put into the crash box or | |
2794 ;; not, so return t just to be | |
2795 ;; safe. | |
2761 t )) | 2796 t )) |
2762 (funcall retrieval-function maildrop crash)) | 2797 (funcall retrieval-function maildrop crash)) |
2763 (if (vm-gobble-crash-box crash) | 2798 (if (vm-gobble-crash-box crash) |
2764 (progn | 2799 (progn |
2765 (setq got-mail t) | 2800 (setq got-mail t) |
2837 folder)) | 2872 folder)) |
2838 (save-excursion | 2873 (save-excursion |
2839 (vm-save-restriction | 2874 (vm-save-restriction |
2840 (widen) | 2875 (widen) |
2841 (goto-char (point-max)) | 2876 (goto-char (point-max)) |
2842 (let ((overriding-file-coding-system 'binary)) | 2877 (let ((coding-system-for-read 'binary)) |
2843 (insert-file-contents folder)))) | 2878 (insert-file-contents folder)))) |
2844 (setq mcount (length vm-message-list)) | 2879 (setq mcount (length vm-message-list)) |
2845 (if (vm-assimilate-new-messages) | 2880 (if (vm-assimilate-new-messages) |
2846 (progn | 2881 (progn |
2847 ;; say this NOW, before the non-previewers read | 2882 ;; say this NOW, before the non-previewers read |