*** dist/README.dist Tue Dec 12 00:11:08 2000 --- README Fri Nov 15 10:11:04 2002 *************** *** 43,45 **** ! * VM:: A mail reader. --- 43,45 ---- ! * VM:: (vm) A mail reader. *** dist/Makefile.dist Thu May 16 14:16:58 2002 --- Makefile Tue Jul 2 19:07:09 2002 *************** *** 144,145 **** --- 144,146 ---- # under Windows. We remove the CRs. + # Solaris 8's tr -d '\r' removes r's so we use '\015' instead. vm-autoload.elc: $(SOURCES) *************** *** 147,149 **** @echo "(provide 'vm-autoload)" > vm-autoload.el ! @$(EMACS) $(BATCHFLAGS) -l ./make-autoloads -f print-autoloads $(SOURCES) | tr -d '\r' >> vm-autoload.el @echo compiling vm-autoload.el... --- 148,150 ---- @echo "(provide 'vm-autoload)" > vm-autoload.el ! @$(EMACS) $(BATCHFLAGS) -l ./make-autoloads -f print-autoloads $(SOURCES) | tr -d '\015' >> vm-autoload.el @echo compiling vm-autoload.el... *** dist/vm-crypto.el.dist Tue Jan 22 14:28:28 2002 --- vm-crypto.el Thu Sep 5 18:26:55 2002 *************** *** 46,48 **** (goto-char (point-min)) ! (if (search-forward " -\n" nil t) (replace-match "")) --- 46,48 ---- (goto-char (point-min)) ! (if (re-search-forward " [ *]?-\n" nil t) (replace-match "")) *** dist/vm-delete.el.dist Fri Apr 19 13:45:09 2002 --- vm-delete.el Thu Oct 31 15:00:26 2002 *************** *** 173,175 **** (table (make-vector 61 0)) ! hash (del-count 0)) --- 173,175 ---- (table (make-vector 61 0)) ! hash m (del-count 0)) *************** *** 183,186 **** nil ! (setq hash (vm-md5-region (vm-text-of (car mlist)) ! (vm-text-end-of (car mlist)))) (if (intern-soft hash table) --- 183,187 ---- nil ! (setq m (vm-real-message-of (car mlist))) ! (set-buffer (vm-buffer-of m)) ! (setq hash (vm-md5-region (vm-text-of m) (vm-text-end-of m))) (if (intern-soft hash table) *** dist/vm-edit.el.dist Fri Apr 19 13:45:09 2002 --- vm-edit.el Wed Aug 14 15:12:50 2002 *************** *** 150,152 **** (vm-unthread-message m t)) ! (fillarray (vm-cache-of m) nil) (vm-set-vheaders-of m nil) --- 150,157 ---- (vm-unthread-message m t)) ! ;; It was a mistake to store the POP UIDL data here but ! ;; it's too late to change it now. So keep the data from ! ;; getting wiped. ! (let ((uidl (vm-pop-uidl-of m))) ! (fillarray (vm-cache-of m) nil) ! (vm-set-pop-uidl-of m uidl)) (vm-set-vheaders-of m nil) *** dist/vm-folder.el.dist Thu Jun 6 08:25:29 2002 --- vm-folder.el Thu Jan 16 13:39:47 2003 *************** *** 1807,1809 **** (set-marker (vm-headers-of m) opoint))))) ! (vm-set-modflag-of m nil)) (set-buffer-modified-p old-buffer-modified-p)))))) --- 1807,1809 ---- (set-marker (vm-headers-of m) opoint))))) ! (vm-set-modflag-of m (not for-other-folder))) (set-buffer-modified-p old-buffer-modified-p)))))) *************** *** 2921,2923 **** (if timer ! (timer-set-time timer (current-time) vm-mail-check-interval) (set-itimer-restart current-itimer vm-mail-check-interval)) --- 2921,2923 ---- (if timer ! (timer-set-time timer (timer-relative-time (current-time) vm-mail-check-interval) vm-mail-check-interval) (set-itimer-restart current-itimer vm-mail-check-interval)) *************** *** 2964,2966 **** (if timer ! (timer-set-time timer (current-time) vm-auto-get-new-mail) (set-itimer-restart current-itimer vm-auto-get-new-mail)) --- 2964,2966 ---- (if timer ! (timer-set-time timer (timer-relative-time (current-time) vm-auto-get-new-mail) vm-auto-get-new-mail) (set-itimer-restart current-itimer vm-auto-get-new-mail)) *************** *** 3009,3011 **** (if timer ! (timer-set-time timer (current-time) vm-flush-interval) (set-itimer-restart current-itimer vm-flush-interval))) --- 3009,3011 ---- (if timer ! (timer-set-time timer (timer-relative-time (current-time) vm-flush-interval) vm-flush-interval) (set-itimer-restart current-itimer vm-flush-interval))) *************** *** 3244,3246 **** (vm-select-folder-buffer-if-possible) ! (apply 'revert-buffer args)) --- 3244,3246 ---- (vm-select-folder-buffer-if-possible) ! (call-interactively 'revert-buffer)) *************** *** 3249,3251 **** (vm-select-folder-buffer-if-possible) ! (apply 'recover-file args)) --- 3249,3251 ---- (vm-select-folder-buffer-if-possible) ! (call-interactively 'recover-file)) *************** *** 3440,3444 **** (setq name ! (expand-file-name (format "Z-%02d-%02d-%05d" (nth 4 time) (nth 3 time) (% (vm-abs (random)) 100000)) --- 3440,3447 ---- (setq name ! (expand-file-name (format "Z-%02d-%02d-%02d%02d%02d-%05d" (nth 4 time) (nth 3 time) + (nth 2 time) + (nth 1 time) + (nth 0 time) (% (vm-abs (random)) 100000)) *************** *** 3447,3451 **** (setq name ! (expand-file-name (format "Z-%02d-%02d-%05d" (nth 4 time) (nth 3 time) (% (vm-abs (random)) 100000)) --- 3450,3457 ---- (setq name ! (expand-file-name (format "Z-%02d-%02d-%02d%02d%02d-%05d" (nth 4 time) (nth 3 time) + (nth 2 time) + (nth 1 time) + (nth 0 time) (% (vm-abs (random)) 100000)) *************** *** 3962,3964 **** (let ((lines vm-startup-message-lines)) ! (message "VM %s, Copyright %s 2001 Kyle E. Jones; type ? for help" vm-version (if vm-xemacs-p "\251" "(C)")) --- 3968,3970 ---- (let ((lines vm-startup-message-lines)) ! (message "VM %s, Copyright %s 2003 Kyle E. Jones; type ? for help" vm-version (if vm-xemacs-p "\251" "(C)")) *** dist/vm-imap.el.dist Fri Apr 19 13:45:09 2002 --- vm-imap.el Mon Aug 26 14:25:26 2002 *************** *** 414,416 **** (vm-imapdrop-sans-password-and-mailbox source)) ! (cond ((equal "imap-ssl" (car source-list)) (setq use-ssl t --- 414,417 ---- (vm-imapdrop-sans-password-and-mailbox source)) ! (cond ((equal auth "preauth") t) ! ((equal "imap-ssl" (car source-list)) (setq use-ssl t *************** *** 441,443 **** source)) ! (if (equal pass "*") (progn --- 442,445 ---- source)) ! (if (and (equal pass "*") ! (not (equal auth "preauth"))) (progn *************** *** 589,592 **** (vm-imap-send-command process "LOGOUT") ! ;; we don't care about the response ! ;;(vm-imap-read-ok-response process) (if (and (not vm-imap-keep-trace-buffer) (not keep-buffer)) --- 591,595 ---- (vm-imap-send-command process "LOGOUT") ! ;; we don't care about the response. ! ;; try reading it anyway and see who complains. ! (vm-imap-read-ok-response process) (if (and (not vm-imap-keep-trace-buffer) (not keep-buffer)) *************** *** 737,739 **** (need-ok t)) ! (vm-imap-send-command process (format "FETCH %d:%d (UID)" first last)) (while need-ok --- 740,742 ---- (need-ok t)) ! (vm-imap-send-command process (format "FETCH %s:%s (UID)" first last)) (while need-ok *************** *** 758,759 **** --- 761,801 ---- ;; returning nil means the uid fetch failed so return + ;; something other than nil if there aren't any messages. + (if (null list) + (cons nil nil) + list ))) + + (defun vm-imap-get-flags-list (process first last) + (let ((list nil) + (imap-buffer (current-buffer)) + tok msg-num flag flags response p + (need-ok t)) + (vm-imap-send-command process (format "FETCH %s:%s (FLAGS)" first last)) + (while need-ok + (setq response (vm-imap-read-response process)) + (if (vm-imap-response-matches response 'VM 'NO) + (error "server said NO to FLAGS FETCH")) + (if (vm-imap-response-matches response 'VM 'BAD) + (vm-imap-protocol-error "server said BAD to FLAGS FETCH")) + (cond ((vm-imap-response-matches response '* 'atom 'FETCH 'list) + (setq p (cdr (nth 3 response))) + (if (not (vm-imap-response-matches p 'FLAGS 'list)) + (vm-imap-protocol-error + "expected (FLAGS list) in FETCH response")) + (setq tok (nth 1 response)) + (goto-char (nth 1 tok)) + (setq msg-num (read imap-buffer)) + (setq p (cdr (nth 1 p)) + flags nil) + (while p + (setq tok (car p)) + (if (not (vm-imap-response-matches tok 'atom)) + (vm-imap-protocol-error + "expected atom in FLAGS list in FETCH response")) + (setq flag (buffer-substring (nth 1 tok) (nth 2 tok)) + flags (cons flag flags) + p (cdr p))) + (setq list (cons (cons msg-num flags) list))) + ((vm-imap-response-matches response 'VM 'OK) + (setq need-ok nil)))) + ;; returning nil means the fetch failed so return ;; something other than nil if there aren't any messages. *** dist/vm-mime.el.dist Thu May 16 14:16:58 2002 --- vm-mime.el Thu Feb 13 20:55:06 2003 *************** *** 53,54 **** --- 53,55 ---- (defun vm-mm-layout-display-error (e) (aref e 14)) + (defun vm-mm-layout-is-converted (e) (aref e 15)) *************** *** 68,69 **** --- 69,71 ---- (defun vm-set-mm-layout-display-error (e c) (aset e 14 c)) + (defun vm-set-mm-layout-is-converted (e c) (asef e 15 c)) *************** *** 814,817 **** (let ((case-fold-search t) version type qtype encoding id description ! disposition qdisposition boundary boundary-regexp start ! multipart-list c-t c-t-e done p returnval) (save-excursion --- 816,819 ---- (let ((case-fold-search t) version type qtype encoding id description ! disposition qdisposition boundary boundary-regexp start end ! multipart-list pos-list c-t c-t-e done p returnval) (save-excursion *************** *** 909,911 **** (vm-mime-make-message-symbol m) ! nil ))) ((null type) --- 911,913 ---- (vm-mime-make-message-symbol m) ! nil nil ))) ((null type) *************** *** 924,926 **** (vm-mime-make-message-symbol m) ! nil )) ((null (string-match "[^/ ]+/[^/ ]+" (car type))) --- 926,928 ---- (vm-mime-make-message-symbol m) ! nil nil )) ((null (string-match "[^/ ]+/[^/ ]+" (car type))) *************** *** 969,975 **** (narrow-to-region (point) (point-max)) ! (vm-mime-parse-entity-safe m c-t ! c-t-e t))) (vm-mime-make-cache-symbol) (vm-mime-make-message-symbol m) ! nil ))) (t --- 971,976 ---- (narrow-to-region (point) (point-max)) ! (vm-mime-parse-entity-safe m c-t c-t-e t))) (vm-mime-make-cache-symbol) (vm-mime-make-message-symbol m) ! nil nil ))) (t *************** *** 988,990 **** (vm-mime-make-message-symbol m) ! nil )))) (setq p (cdr type) --- 989,991 ---- (vm-mime-make-message-symbol m) ! nil nil )))) (setq p (cdr type) *************** *** 1011,1028 **** done nil) ! (while (and (not done) (re-search-forward boundary-regexp nil t)) ! (cond ((null start) ! (setq start (match-end 0))) ! (t ! (and (match-beginning 1) ! (setq done t)) ! (save-excursion ! (save-restriction ! (narrow-to-region start (1- (match-beginning 0))) ! (setq start (match-end 0)) ! (setq multipart-list ! (cons (vm-mime-parse-entity-safe m c-t c-t-e ! t) ! multipart-list))))))) ! (if (not done) ! (vm-mime-error "final %s boundary missing" boundary)) (goto-char (point-min)) --- 1012,1037 ---- done nil) ! (while (and (not done) (re-search-forward boundary-regexp nil 0)) ! (if (null start) ! (setq start (match-end 0)) ! (and (match-beginning 1) ! (setq done t)) ! (setq pos-list (cons start ! (cons (1- (match-beginning 0)) pos-list)) ! start (match-end 0)))) ! (if (and (not done) ! (not vm-mime-ignore-missing-multipart-boundary)) ! (vm-mime-error "final %s boundary missing" boundary) ! (if (and start (not done)) ! (setq pos-list (cons start (cons (point) pos-list))))) ! (setq pos-list (nreverse pos-list)) ! (while pos-list ! (setq start (car pos-list) ! end (car (cdr pos-list)) ! pos-list (cdr (cdr pos-list))) ! (save-excursion ! (save-restriction ! (narrow-to-region start end) ! (setq multipart-list ! (cons (vm-mime-parse-entity-safe m c-t c-t-e t) ! multipart-list))))) (goto-char (point-min)) *************** *** 1039,1043 **** (vm-mime-make-message-symbol m) ! nil ))))))) ! (defun vm-mime-parse-entity-safe (&optional m c-t c-t-e passing-message-only) (or c-t (setq c-t '("text/plain" "charset=us-ascii"))) --- 1048,1052 ---- (vm-mime-make-message-symbol m) ! nil nil ))))))) ! (defun vm-mime-parse-entity-safe (&optional m c-t c-t-e p-m-only) (or c-t (setq c-t '("text/plain" "charset=us-ascii"))) *************** *** 1046,1048 **** (condition-case error-data ! (vm-mime-parse-entity m c-t c-t-e passing-message-only) (vm-mime-error --- 1055,1057 ---- (condition-case error-data ! (vm-mime-parse-entity m c-t c-t-e p-m-only) (vm-mime-error *************** *** 1051,1056 **** ;;; (sleep-for 2) ! (let ((header (if (and m (not passing-message-only)) (vm-headers-of m) (vm-marker (point-min)))) ! (text (if (and m (not passing-message-only)) (vm-text-of m) --- 1060,1065 ---- ;;; (sleep-for 2) ! (let ((header (if (and m (not p-m-only)) (vm-headers-of m) (vm-marker (point-min)))) ! (text (if (and m (not p-m-only)) (vm-text-of m) *************** *** 1060,1062 **** (vm-marker (point))))) ! (text-end (if (and m (not passing-message-only)) (vm-text-end-of m) --- 1069,1071 ---- (vm-marker (point))))) ! (text-end (if (and m (not p-m-only)) (vm-text-end-of m) *************** *** 1078,1080 **** (vm-mime-make-message-symbol m) ! nil))))) --- 1087,1089 ---- (vm-mime-make-message-symbol m) ! nil nil))))) *************** *** 1420,1422 **** (vm-mime-make-message-symbol (vm-mm-layout-message layout)) ! nil))))) --- 1429,1431 ---- (vm-mime-make-message-symbol (vm-mm-layout-message layout)) ! nil t ))))) *************** *** 1468,1470 **** (vm-mime-make-message-symbol (vm-mm-layout-message layout)) ! nil)) (vm-mime-set-parameter layout "charset" (nth 1 ooo)) --- 1477,1479 ---- (vm-mime-make-message-symbol (vm-mm-layout-message layout)) ! nil t )) (vm-mime-set-parameter layout "charset" (nth 1 ooo)) *************** *** 1624,1626 **** (if (eq vm-mime-decoded 'decoded) ! (let ((vm-preview-read-messages nil) (vm-auto-decode-mime-messages t) --- 1633,1635 ---- (if (eq vm-mime-decoded 'decoded) ! (let ((vm-preview-lines nil) (vm-auto-decode-mime-messages t) *************** *** 1634,1636 **** (setq vm-mime-decoded 'buttons)) ! (let ((vm-preview-read-messages nil) (vm-auto-decode-mime-messages nil)) --- 1643,1645 ---- (setq vm-mime-decoded 'buttons)) ! (let ((vm-preview-lines nil) (vm-auto-decode-mime-messages nil)) *************** *** 1742,1744 **** extent 'vm-mime-disposable nil))) ! ((and (vm-mime-can-convert type) (setq new-layout --- 1751,1754 ---- extent 'vm-mime-disposable nil))) ! ((and (not (vm-mm-layout-is-converted layout)) ! (vm-mime-can-convert type) (setq new-layout *************** *** 2115,2117 **** (car (vm-mm-layout-parts layout))))))) ! (vm-decode-mime-layout best-layout))) --- 2125,2127 ---- (car (vm-mm-layout-parts layout))))))) ! (and best-layout (vm-decode-mime-layout best-layout)))) *************** *** 3451,3454 **** (dir vm-mime-attachment-save-directory) ! (done nil) ! file) (if file --- 3461,3463 ---- (dir vm-mime-attachment-save-directory) ! (done nil)) (if file *************** *** 3530,3532 **** (vm-mode t) ! (setq file (call-interactively 'vm-save-message)) (vm-quit-no-change) --- 3539,3543 ---- (vm-mode t) ! (let ((vm-check-folder-types t) ! (vm-convert-folder-types t)) ! (setq file (call-interactively 'vm-save-message))) (vm-quit-no-change) *************** *** 4185,4187 **** ! (let (e layout (work-buffer nil) buf) (setq e (vm-find-layout-extent-at-point) --- 4196,4198 ---- ! (let (e layout (work-buffer nil) buf start) (setq e (vm-find-layout-extent-at-point) *************** *** 4196,4198 **** --- 4207,4214 ---- (insert "\n") + (setq start (point)) (vm-mime-insert-mime-body layout) + (vm-mime-transfer-decode-region layout start (point-max)) + (goto-char (point-min)) + (vm-reorder-message-headers nil nil "Content-Transfer-Encoding:") + (insert "Content-Transfer-Encoding: binary") (set-buffer composition) *** dist/vm-minibuf.el.dist Tue Jan 22 14:28:29 2002 --- vm-minibuf.el Fri Aug 9 13:20:39 2002 *************** *** 384,386 **** (read-file-name prompt dir default must-match initial history) ! (wrong-number-of-arguments (if history --- 384,386 ---- (read-file-name prompt dir default must-match initial history) ! ((wrong-number-of-arguments void-function) (if history *** dist/vm-mouse.el.dist Tue Dec 12 00:11:09 2000 --- vm-mouse.el Fri Sep 20 16:09:56 2002 *************** *** 183,188 **** ! (defun vm-mouse-send-url (url &optional browser) (if (string-match "^mailto:" url) (vm-mail-to-mailto-url url) ! (let ((browser (or browser vm-url-browser))) (cond ((symbolp browser) --- 183,189 ---- ! (defun vm-mouse-send-url (url &optional browser switches) (if (string-match "^mailto:" url) (vm-mail-to-mailto-url url) ! (let ((browser (or browser vm-url-browser)) ! (switches (or switches vm-url-browser-switches))) (cond ((symbolp browser) *************** *** 191,193 **** (message "Sending URL to %s..." browser) ! (vm-run-background-command browser url) (message "Sending URL to %s... done" browser)))))) --- 192,195 ---- (message "Sending URL to %s..." browser) ! (apply 'vm-run-background-command browser ! (append switches (list url))) (message "Sending URL to %s... done" browser)))))) *** dist/vm-reply.el.dist Mon Jun 3 23:51:12 2002 --- vm-reply.el Mon Aug 26 10:44:42 2002 *************** *** 162,164 **** ! (defun vm-mail-yank-default (message) (save-excursion --- 162,164 ---- ! (defun vm-mail-yank-default (&optional message) (save-excursion *************** *** 169,171 **** (delete-char 1)) ! (if vm-included-text-attribution-format (let ((vm-summary-uninteresting-senders nil)) --- 169,171 ---- (delete-char 1)) ! (if (and message vm-included-text-attribution-format) (let ((vm-summary-uninteresting-senders nil)) *************** *** 494,495 **** --- 494,497 ---- + (defvar select-safe-coding-system-function) + (defun vm-mail-send () *************** *** 546,548 **** (sendmail-coding-system (vm-binary-coding-system)) ! (vm-dont-ask-coding-system-question t)) (save-excursion --- 548,551 ---- (sendmail-coding-system (vm-binary-coding-system)) ! (vm-dont-ask-coding-system-question t) ! (select-safe-coding-system-function nil)) (save-excursion *** dist/vm-save.el.dist Mon Jun 3 23:51:12 2002 --- vm-save.el Sat Oct 5 19:24:24 2002 *************** *** 372,374 **** (setq vm-last-save-folder unexpanded-folder)) ! (if vm-delete-after-saving (vm-delete-message count)) --- 372,374 ---- (setq vm-last-save-folder unexpanded-folder)) ! (if (and vm-delete-after-saving (not vm-folder-read-only)) (vm-delete-message count)) *** dist/vm-startup.el.dist Thu Jun 6 08:25:29 2002 --- vm-startup.el Fri Feb 14 15:56:48 2003 *************** *** 354,356 **** ! This is VM 7.07. --- 354,356 ---- ! This is VM 7.08. *************** *** 617,620 **** vm-mime-external-content-types-alist - vm-mime-ignore-mime-version vm-mime-ignore-composite-type-opaque-transfer-encoding vm-mime-internal-content-type-exceptions --- 617,621 ---- vm-mime-external-content-types-alist vm-mime-ignore-composite-type-opaque-transfer-encoding + vm-mime-ignore-mime-version + vm-mime-ignore-missing-multiparty-boundary vm-mime-internal-content-type-exceptions *************** *** 629,630 **** --- 630,632 ---- vm-mime-use-image-strips + vm-mime-use-w3-for-text/html vm-mime-uuencode-decoder-program *************** *** 710,711 **** --- 712,714 ---- vm-url-browser + vm-url-browser-switches vm-url-retrieval-methods *************** *** 954,956 **** ;;;###autoload ! (defun vm-visit-virtual-folder (folder-name &optional read-only) (interactive --- 957,959 ---- ;;;###autoload ! (defun vm-visit-virtual-folder (folder-name &optional read-only bookmark) (interactive *************** *** 1010,1014 **** (vm-sort-messages "thread")) ! (if (vm-thoughtfully-select-message) ! (vm-preview-current-message) ! (vm-update-summary-and-mode-line)) (message blurb))) --- 1013,1028 ---- (vm-sort-messages "thread")) ! (if bookmark ! (let ((mp vm-message-list)) ! (while mp ! (if (eq bookmark (vm-real-message-of (car mp))) ! (progn ! (vm-record-and-change-message-pointer ! vm-message-pointer mp) ! (vm-preview-current-message) ! (setq mp nil)) ! (setq mp (cdr mp)))))) ! (if (null vm-message-pointer) ! (if (vm-thoughtfully-select-message) ! (vm-preview-current-message) ! (vm-update-summary-and-mode-line))) (message blurb))) *************** *** 1246,1248 **** (if yank-action ! (apply (car yank-action) (cdr yank-action))) (make-local-variable 'mail-send-actions) --- 1260,1269 ---- (if yank-action ! (save-excursion ! (mail-text) ! (apply (car yank-action) (cdr yank-action)) ! (push-mark (point)) ! (mail-text) ! (cond (mail-citation-hook (run-hooks 'mail-citation-hook)) ! (mail-yank-hooks (run-hooks 'mail-yank-hooks)) ! (t (vm-mail-yank-default))))) (make-local-variable 'mail-send-actions) *************** *** 1385,1388 **** 'vm-mime-external-content-types-alist - 'vm-mime-ignore-mime-version 'vm-mime-ignore-composite-type-opaque-transfer-encoding 'vm-mime-internal-content-type-exceptions --- 1406,1410 ---- 'vm-mime-external-content-types-alist 'vm-mime-ignore-composite-type-opaque-transfer-encoding + 'vm-mime-ignore-mime-version + 'vm-mime-ignore-missing-multiparty-boundary 'vm-mime-internal-content-type-exceptions *************** *** 1397,1398 **** --- 1419,1421 ---- 'vm-mime-use-image-strips + 'vm-mime-use-w3-for-text/html 'vm-mime-uuencode-decoder-program *************** *** 1486,1487 **** --- 1509,1511 ---- 'vm-url-browser + 'vm-url-browser-switches 'vm-url-retrieval-methods *** dist/vm-summary.el.dist Thu May 16 14:16:58 2002 --- vm-summary.el Tue Dec 3 10:15:03 2002 *************** *** 1062,1065 **** (i nil)) ! (while (setq i (string-match "\n" subject i)) ! (aset subject i ?\ )) subject )))) --- 1062,1065 ---- (i nil)) ! (while (string-match "\n[ \t]*" subject) ! (setq subject (replace-match " " nil t subject))) subject )))) *** dist/vm-vars.el.dist Thu May 16 14:16:58 2002 --- vm-vars.el Fri Sep 20 16:11:57 2002 *************** *** 23,25 **** ! (defvar vm-faked-defcustom nil) --- 23,25 ---- ! (defconst vm-faked-defcustom nil) *************** *** 390,392 **** ! (defcustom vm-recognize-pop-maildrops "^\\(pop:\\|pop-ssl:\\|pop-ssh:\\)?[^:]+:[^:]+:[^:]+:[^:]+:[^:]+" "*Value if non-nil should be a regular expression that matches --- 390,392 ---- ! (defcustom vm-recognize-pop-maildrops "^\\(pop:\\|pop-ssl:\\|pop-ssh:\\)?[^:]+:[^:]+:[^:]+:[^:]+:.+" "*Value if non-nil should be a regular expression that matches *************** *** 480,482 **** ! (defcustom vm-recognize-imap-maildrops "^\\(imap\\|imap-ssl\\|imap-ssh\\):[^:]+:[^:]+:[^:]+:[^:]+:[^:]+:[^:]+" "*Value if non-nil should be a regular expression that matches --- 480,482 ---- ! (defcustom vm-recognize-imap-maildrops "^\\(imap\\|imap-ssl\\|imap-ssh\\):[^:]+:[^:]+:[^:]+:[^:]+:[^:]+:.+" "*Value if non-nil should be a regular expression that matches *************** *** 750,757 **** (defcustom vm-mime-ignore-composite-type-opaque-transfer-encoding t ! "*Non-nil means VM should ignore type declaration of base64 and ! quoted-printable for objecto ftype message/* or multipart/*. The ! MIME spec requries that these ype use either 7bit, 8bit, or binary ! transfer encodings but some mailers declare quoted-printable and ! base64 even when they are not used. Set this variable if you want ! VM to ignore this problem and try to display the object anyway." :type 'boolean) --- 750,766 ---- (defcustom vm-mime-ignore-composite-type-opaque-transfer-encoding t ! "*Non-nil means VM should ignore transfer encoding declarations ! of base64 and quoted-printable for object of type message/* or ! multipart/*. The MIME spec requires that these composite types ! use either 7bit, 8bit, or binary transfer encodings but some ! mailers declare quoted-printable and base64 even when they are ! not used. Set this variable non-nil if you want VM to be lax and ! ignore this problem and try to display the object anyway." ! :type 'boolean) ! ! (defcustom vm-mime-ignore-missing-multipart-boundary t ! "*Non-nil means VM should treat a missing MIME boundary marker ! as if the marker were at the end of the current enclosing MIME ! object or, if there is no enclosing object, at the end of the ! message. A nil value means VM will complain about missing ! boundaries and refuse to parse such MIME messages." :type 'boolean) *************** *** 1058,1061 **** chosen." ! :type '(choice (choice (const 'best-internal) ! (const 'best)) (cons (const favorite) (repeat string)) --- 1067,1070 ---- chosen." ! :type '(choice (choice (const best-internal) ! (const best)) (cons (const favorite) (repeat string)) *************** *** 3014,3016 **** name of an external browser to run. The URL will be passed to ! the program as its first argument. --- 3023,3026 ---- name of an external browser to run. The URL will be passed to ! the program as its first argument after the program switches ! specified by `vm-url-browser-switches', if any. *************** *** 3038,3039 **** --- 3048,3055 ---- + (defcustom vm-url-browser-switches nil + "*List of command line flags passed to the command named by + `vm-url-browser'. VM uses `vm-url-browser' to display URLs + in messages when you click on them." + :type '(repeat string)) + (defcustom vm-highlight-url-face 'bold-italic *************** *** 3446,3448 **** (defcustom vm-imap-session-preauth-hook nil ! "*List of hook functions to call to generate an authenticated IMAP session process. This hook is only run if the --- 3462,3464 ---- (defcustom vm-imap-session-preauth-hook nil ! "*List of hook functions to call to generate an preauthenticated IMAP session process. This hook is only run if the *************** *** 3454,3457 **** are connected to an authenticated IMAP session, and to return ! this process. If the hook cannot accomplish this, it should ! return nil. If all the hooks return nil, VM will signal an error." :type 'hook) --- 3470,3479 ---- are connected to an authenticated IMAP session, and to return ! this process. If the hook cannot accomplish this, ! it should return nil. If all the hooks return nil, VM will ! signal an error. ! ! At the time the hook is run, the current buffer will be the ! buffer any created process should be associated with. (The BUFFER ! argument to start-process or open-network-stream should be ! (current-bfufer).)" :type 'hook) *************** *** 3641,3642 **** --- 3663,3665 ---- (and vm-fsfemacs-p (fboundp 'image-type-available-p) + (stringp 'vm-uncompface-program) (eq 0 (string-match "#define" *************** *** 3881,3882 **** --- 3904,3908 ---- "List of folders visited this Emacs session.") + + ;; for sixth arg of read-file-name in early version of Emacs 21. + (defun vm-folder-history (&rest ignored) t) *** dist/vm-version.el.dist Thu Jun 6 08:25:30 2002 --- vm-version.el Fri Feb 14 15:56:48 2003 *************** *** 4,6 **** ! (defconst vm-version "7.07" "Version number of VM.") --- 4,6 ---- ! (defconst vm-version "7.08" "Version number of VM.") *** dist/vm-virtual.el.dist Mon Jun 3 23:51:12 2002 --- vm-virtual.el Fri Sep 6 14:59:41 2002 *************** *** 250,252 **** ! (defun vm-create-virtual-folder (selector &optional arg read-only name) "Create a new virtual folder from messages in the current folder. --- 250,253 ---- ! (defun vm-create-virtual-folder (selector &optional arg read-only name ! bookmark) "Create a new virtual folder from messages in the current folder. *************** *** 280,282 **** (if arg (list selector arg) (list selector))))))) ! (vm-visit-virtual-folder name read-only)) ;; have to do this again here because the known virtual --- 281,283 ---- (if arg (list selector arg) (list selector))))))) ! (vm-visit-virtual-folder name read-only bookmark)) ;; have to do this again here because the known virtual *************** *** 332,334 **** (let* ((subject (vm-so-sortable-subject (car vm-message-pointer))) ! (displayed-subject subject)) (if (equal subject "") --- 333,338 ---- (let* ((subject (vm-so-sortable-subject (car vm-message-pointer))) ! (displayed-subject subject) ! (bookmark (if (vm-virtual-message-p (car vm-message-pointer)) ! (vm-real-message-of (car vm-message-pointer)) ! (car vm-message-pointer)))) (if (equal subject "") *************** *** 339,341 **** 'sortable-subject subject nil ! (format "%s %s %s" (buffer-name) 'subject displayed-subject)))) --- 343,345 ---- 'sortable-subject subject nil ! (format "%s %s %s" (buffer-name) 'subject displayed-subject) bookmark))) *************** *** 348,350 **** (let* ((author (vm-su-from (car vm-message-pointer))) ! (displayed-author author)) (if (equal author "") --- 352,357 ---- (let* ((author (vm-su-from (car vm-message-pointer))) ! (displayed-author author) ! (bookmark (if (vm-virtual-message-p (car vm-message-pointer)) ! (vm-real-message-of (car vm-message-pointer)) ! (car vm-message-pointer)))) (if (equal author "") *************** *** 355,357 **** 'author author nil ! (format "%s %s %s" (buffer-name) 'author displayed-author)))) --- 362,364 ---- 'author author nil ! (format "%s %s %s" (buffer-name) 'author displayed-author) bookmark))) *************** *** 412,420 **** (defun vm-vs-or (m &rest selectors) ! (let ((result nil) selector arglist) (while selectors (setq selector (car (car selectors)) arglist (cdr (car selectors)) ! result (apply (cdr (assq selector ! vm-virtual-selector-function-alist)) ! m arglist) selectors (if result nil (cdr selectors)))) --- 419,427 ---- (defun vm-vs-or (m &rest selectors) ! (let ((result nil) selector arglist function) (while selectors (setq selector (car (car selectors)) + function (cdr (assq selector vm-virtual-selector-function-alist))) + (setq arglist (cdr (car selectors)) arglist (cdr (car selectors)) ! result (apply function m arglist) selectors (if result nil (cdr selectors)))) *************** *** 423,431 **** (defun vm-vs-and (m &rest selectors) ! (let ((result t) selector arglist) (while selectors (setq selector (car (car selectors)) ! arglist (cdr (car selectors)) ! result (apply (cdr (assq selector ! vm-virtual-selector-function-alist)) ! m arglist) selectors (if (null result) nil (cdr selectors)))) --- 430,439 ---- (defun vm-vs-and (m &rest selectors) ! (let ((result t) selector arglist function) (while selectors (setq selector (car (car selectors)) ! function (cdr (assq selector vm-virtual-selector-function-alist))) ! (if (null function) ! (error "Invalid selector")) ! (setq arglist (cdr (car selectors)) ! result (apply function m arglist) selectors (if (null result) nil (cdr selectors))))