*** dist/Makefile.dist Mon Jul 13 08:05:07 1998 --- Makefile Mon Nov 9 17:38:59 1998 *************** *** 34,36 **** # incorrectly. also preload a file that sets byte compiler options. ! PRELOADS = -l $(BYTEOPTS) -l ./vm-message.el -l ./vm-misc.el -l ./vm-vars.el -l ./vm-version.el --- 34,36 ---- # incorrectly. also preload a file that sets byte compiler options. ! PRELOADS = -l $(BYTEOPTS) -l ./vm-message.el -l ./vm-macro.el -l ./vm-vars.el -l ./vm-version.el *************** *** 44,46 **** # certain compiler optimizations. ! CORE = vm-message.el vm-misc.el vm-byteopts.el --- 44,46 ---- # certain compiler optimizations. ! CORE = vm-message.el vm-macro.el vm-byteopts.el *************** *** 48,50 **** vm-delete.elc vm-digest.elc vm-easymenu.elc vm-edit.elc vm-folder.elc \ ! vm-imap.elc vm-license.elc vm-mark.elc vm-menu.elc vm-message.elc \ vm-mime.elc vm-minibuf.elc vm-misc.elc vm-mouse.elc \ --- 48,51 ---- vm-delete.elc vm-digest.elc vm-easymenu.elc vm-edit.elc vm-folder.elc \ ! vm-imap.elc vm-license.elc vm-macro.elc vm-mark.elc vm-menu.elc \ ! vm-message.elc \ vm-mime.elc vm-minibuf.elc vm-misc.elc vm-mouse.elc \ *************** *** 58,60 **** vm-delete.el vm-digest.el vm-easymenu.el vm-edit.el vm-folder.el \ ! vm-imap.el vm-license.el vm-mark.el vm-menu.el vm-message.el \ vm-mime.el vm-minibuf.el vm-misc.el vm-mouse.el \ --- 59,61 ---- vm-delete.el vm-digest.el vm-easymenu.el vm-edit.el vm-folder.el \ ! vm-imap.el vm-license.el vm-macro.el vm-mark.el vm-menu.el vm-message.el \ vm-mime.el vm-minibuf.el vm-misc.el vm-mouse.el \ *************** *** 128,129 **** --- 129,134 ---- @$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile vm-license.el + + vm-macro.elc: vm-macro.el $(CORE) + @echo compiling vm-macro.el... + @$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile vm-macro.el *** dist/vm-folder.el.dist Mon Aug 17 15:58:55 1998 --- vm-folder.el Mon Nov 2 16:25:27 1998 *************** *** 749,751 **** ((eq vm-folder-type 'From_) ! (let ((reg1 "^From .* [1-9][0-9][0-9][0-9]$") (case-fold-search nil)) --- 749,751 ---- ((eq vm-folder-type 'From_) ! (let ((reg1 "^From .*[0-9]$") (case-fold-search nil)) *************** *** 760,762 **** ((eq vm-folder-type 'BellFrom_) ! (let ((reg1 "^From .* [1-9][0-9][0-9][0-9]$") (case-fold-search nil)) --- 760,762 ---- ((eq vm-folder-type 'BellFrom_) ! (let ((reg1 "^From .*[0-9]$") (case-fold-search nil)) *************** *** 1560,1561 **** --- 1560,1589 ---- + (defun vm-gobble-imap-retrieved () + (let ((case-fold-search t) + ob lim oldpoint) + (save-excursion + (vm-save-restriction + (widen) + (goto-char (point-min)) + (vm-skip-past-folder-header) + (vm-skip-past-leading-message-separator) + (search-forward "\n\n" nil t) + (setq lim (point)) + (goto-char (point-min)) + (vm-skip-past-folder-header) + (vm-skip-past-leading-message-separator) + (if (re-search-forward vm-imap-retrieved-header-regexp lim t) + (condition-case () + (progn + (setq oldpoint (point) + ob (read (current-buffer))) + (if (not (listp ob)) + (error "Bad imap-retrieved header at %d in buffer %s" + oldpoint (buffer-name))) + (setq vm-imap-retrieved-messages ob)) + (error + (message "Bad imap-retrieved header at %d in buffer %s, ignoring" + oldpoint (buffer-name))))))) + t )) + (defun vm-gobble-visible-header-variables () *************** *** 2301,2303 **** validity-check vis invis folder-type ! bookmark summary labels retrieved order v m (m-list nil) tail) --- 2329,2331 ---- validity-check vis invis folder-type ! bookmark summary labels pop-retrieved imap-retrieved order v m (m-list nil) tail) *************** *** 2384,2386 **** ;; pop retrieved messages ! (setq retrieved (read work-buffer)) --- 2412,2417 ---- ;; pop retrieved messages ! (setq pop-retrieved (read work-buffer)) ! ! ;; imap retrieved messages ! (setq imap-retrieved (read work-buffer)) *************** *** 2388,2390 **** vm-folder-type folder-type ! vm-pop-retrieved-messages retrieved) --- 2419,2422 ---- vm-folder-type folder-type ! vm-pop-retrieved-messages pop-retrieved ! vm-imap-retrieved-messages imap-retrieved) *************** *** 2590,2592 **** (condition-case data ! (let ((coding-system-for-write 'binary)) (write-region (point-min) (point-max) index-file)) --- 2622,2625 ---- (condition-case data ! (let ((coding-system-for-write 'binary) ! (selective-display nil)) (write-region (point-min) (point-max) index-file)) *************** *** 3278,3280 **** nil ! (write-region opoint-max (point-max) buffer-file-name t t) (vm-increment vm-modification-counter) --- 3311,3315 ---- nil ! (let ((coding-system-for-write 'binary) ! (selective-display nil)) ! (write-region opoint-max (point-max) buffer-file-name t t)) (vm-increment vm-modification-counter) *************** *** 3796,3797 **** --- 3831,3835 ---- require-final-newline nil + ;; don't let CR's in folders be mashed into LF's because of a + ;; stupid user setting. + selective-display nil vm-thread-obarray nil *** dist/vm-imap.el.dist Tue Jul 21 10:07:08 1998 --- vm-imap.el Mon Oct 26 20:02:57 1998 *************** *** 21,26 **** (progn - (define-error 'vm-imap-store-failed "IMAP STORE failed") (define-error 'vm-imap-protocol-error "IMAP protocl error")) - (put 'vm-imap-store-failed 'error-conditions '(vm-imap-store-failed error)) - (put 'vm-imap-store-failed 'error-message "IMAP STORE failed") (put 'vm-imap-protocol-error 'error-conditions --- 21,23 ---- *************** *** 478,480 **** ;;(vm-imap-read-ok-response process) ! (kill-buffer (process-buffer process)) (if (fboundp 'add-async-timeout) --- 475,478 ---- ;;(vm-imap-read-ok-response process) ! (if (not vm-imap-keep-trace-buffer) ! (kill-buffer (process-buffer process))) (if (fboundp 'add-async-timeout) *************** *** 760,762 **** ;; newline convention is used. ! (let ((buffer-file-type t)) (write-region start end crash t 0)) --- 758,761 ---- ;; newline convention is used. ! (let ((buffer-file-type t) ! (selective-display nil)) (write-region start end crash t 0)) *************** *** 1018,1019 **** --- 1017,1019 ---- (defun vm-imap-protocol-error (&rest args) + (set (make-local-variable 'vm-imap-keep-trace-buffer) t) (signal 'vm-imap-protocol-error (list (apply 'format args)))) *** dist/vm-macro.el.dist Mon Dec 14 09:27:39 1998 --- vm-macro.el Mon Nov 9 17:08:34 1998 *************** *** 0 **** --- 1,89 ---- + ;;; Random VM macros + ;;; Copyright (C) 1989-1997 Kyle E. Jones + ;;; + ;;; This program is free software; you can redistribute it and/or modify + ;;; it under the terms of the GNU General Public License as published by + ;;; the Free Software Foundation; either version 1, or (at your option) + ;;; any later version. + ;;; + ;;; This program is distributed in the hope that it will be useful, + ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;;; GNU General Public License for more details. + ;;; + ;;; You should have received a copy of the GNU General Public License + ;;; along with this program; if not, write to the Free Software + ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + (provide 'vm-macro) + + (defmacro vm-assert (expression) + (list 'or expression + (list 'progn + (list 'setq 'debug-on-error t) + (list 'error "assertion failed: %S" + (list 'quote expression))))) + + (defmacro vm-marker (pos &optional buffer) + (list 'set-marker '(make-marker) pos buffer)) + + (defmacro vm-increment (variable) + (list 'setq variable (list '1+ variable))) + + (defmacro vm-decrement (variable) + (list 'setq variable (list '1- variable))) + + (defmacro vm-select-folder-buffer () + '(and vm-mail-buffer + (or (buffer-name vm-mail-buffer) + (error "Folder buffer has been killed.")) + (set-buffer vm-mail-buffer))) + + (defmacro vm-error-if-folder-read-only () + '(while vm-folder-read-only + (signal 'folder-read-only (list (current-buffer))))) + + (defmacro vm-error-if-virtual-folder () + '(and (eq major-mode 'vm-virtual-mode) + (error "%s cannot be applied to virtual folders." this-command))) + + (defmacro vm-build-threads-if-unbuilt () + '(if (null vm-thread-obarray) + (vm-build-threads nil))) + + ;; save-restriction flubs restoring the clipping region if you + ;; (widen) and modify text outside the old region. + ;; This should do it right. + (defmacro vm-save-restriction (&rest forms) + (let ((vm-sr-clip (make-symbol "vm-sr-clip")) + (vm-sr-min (make-symbol "vm-sr-min")) + (vm-sr-max (make-symbol "vm-sr-max"))) + (list 'let (list (list vm-sr-clip '(> (buffer-size) + (- (point-max) (point-min)))) + ;; this shouldn't be necessary but the + ;; byte-compiler turns these into interned symbols + ;; which utterly defeats the purpose of the + ;; make-symbol calls above. Soooo, until the compiler + ;; is fixed, these must be made into (let ...) + ;; temporaries so that nested calls to this macros + ;; won't misbehave. + vm-sr-min vm-sr-max) + (list 'and vm-sr-clip + (list 'setq vm-sr-min '(set-marker (make-marker) (point-min))) + (list 'setq vm-sr-max '(set-marker (make-marker) (point-max)))) + (list 'unwind-protect (cons 'progn forms) + '(widen) + (list 'and vm-sr-clip + (list 'progn + (list 'narrow-to-region vm-sr-min vm-sr-max) + (list 'set-marker vm-sr-min nil) + (list 'set-marker vm-sr-max nil))))))) + + (defmacro vm-save-buffer-excursion (&rest forms) + (list 'let '((vm-sbe-buffer (current-buffer))) + (list 'unwind-protect + (cons 'progn forms) + '(and (not (eq vm-sbe-buffer (current-buffer))) + (buffer-name vm-sbe-buffer) + (set-buffer vm-sbe-buffer))))) + *** dist/vm-mime.el.dist Wed Sep 9 07:50:23 1998 --- vm-mime.el Thu Nov 5 19:27:29 1998 *************** *** 314,316 **** (?8 . 8) (?9 . 9) (?A . 10) (?B . 11) ! (?C . 12) (?D . 13) (?E . 14) (?F . 15))) inputpos stop-point copy-point) --- 314,321 ---- (?8 . 8) (?9 . 9) (?A . 10) (?B . 11) ! (?C . 12) (?D . 13) (?E . 14) (?F . 15) ! ;; some mailer uses lower-case hex ! ;; digits despite this being forbidden ! ;; by the MIME spec. ! (?a . 10) (?b . 11) (?c . 12) (?d . 13) ! (?e . 14) (?f . 15))) inputpos stop-point copy-point) *************** *** 340,342 **** (forward-char) ! (cond ((looking-at "[0-9A-F][0-9A-F]") (vm-insert-char (+ (* (cdr (assq (char-after (point)) --- 345,350 ---- (forward-char) ! ;; a-f because some mailers use lower case hex ! ;; digits despite them being forbidden by the ! ;; MIME spec. ! (cond ((looking-at "[0-9A-Fa-f][0-9A-Fa-f]") (vm-insert-char (+ (* (cdr (assq (char-after (point)) *************** *** 915,916 **** --- 923,931 ---- vm-mime-decoded nil) + ;; W3 or some other external mode might set some local colors + ;; in this buffer; remove them before displaying a different + ;; message here. + (if (fboundp 'remove-specifier) + (progn + (remove-specifier (face-foreground 'default) b) + (remove-specifier (face-background 'default) b))) (save-excursion *************** *** 927,930 **** (let ((buffer-read-only nil) - ;; disable read-only text properties - (inhibit-read-only t) (modified (buffer-modified-p))) --- 942,943 ---- *************** *** 1084,1085 **** --- 1097,1101 ---- (set-buffer (generate-new-buffer " *mime object*")) + ;; call-process-region calls write-region. + ;; don't let it do CR -> LF translation. + (setq selective-display nil) (setq vm-message-garbage-alist *************** *** 1360,1362 **** ;; processed text is. Best way to do this is to ! ;; avoid markers and save-exurcsion, and just use ;; buffer size changes as an indicator. --- 1376,1378 ---- ;; processed text is. Best way to do this is to ! ;; avoid markers and save-excursion, and just use ;; buffer size changes as an indicator. *************** *** 1370,1371 **** --- 1386,1390 ---- (setq end (+ end (- (buffer-size) buffer-size))) + ;; remove read-only text properties + (let ((inhibit-read-only t)) + (remove-text-properties start end 'read-only)) (goto-char end) *************** *** 1447,1448 **** --- 1466,1468 ---- (let ((buffer-file-type buffer-file-type) + (selective-display nil) buffer-file-coding-system) *************** *** 1703,1704 **** --- 1723,1727 ---- + (defun vm-mime-display-internal-message/delivery-status (layout) + (vm-mime-display-internal-text/plain layout t)) + (defun vm-mime-display-internal-message/partial (layout) *************** *** 1837,1838 **** --- 1860,1862 ---- (let ((start (point)) end tempfile g e + (selective-display nil) (buffer-read-only nil)) *************** *** 1906,1907 **** --- 1930,1932 ---- (let ((start (point)) end tempfile + (selective-display nil) (buffer-read-only nil)) *************** *** 2100,2101 **** --- 2125,2127 ---- (set-buffer work-buffer) + (setq selective-display nil) ;; Tell DOS/Windows NT whether the file is binary *************** *** 2131,2132 **** --- 2157,2161 ---- (setq work-buffer (generate-new-buffer " *vm-work*")) + ;; call-process-region calls write-region. + ;; don't let it do CR -> LF translation. + (setq selective-display nil) (buffer-disable-undo work-buffer) *************** *** 2459,2460 **** --- 2488,2491 ---- (error "Command must be used in a VM Mail mode buffer.")) + (if (vm-mail-mode-get-header-contents "MIME-Version") + (error "Can't attach MIME object to already encoded MIME buffer.")) (let (start end e tag-string disposition) *************** *** 3157,3159 **** ;; important. ! (buffer-file-coding-system 'binary)) (insert-file-contents object)) --- 3188,3193 ---- ;; important. ! (buffer-file-coding-system 'binary) ! ;; For NTEmacs 19: need to do this to make ! ;; sure CRs aren't eaten. ! (file-name-buffer-file-type-alist '(("." . t)))) (insert-file-contents object)) *************** *** 3433,3437 **** (defun vm-mime-composite-type-p (type) ! (or (and (vm-mime-types-match "message" type) ! (not (vm-mime-types-match "message/partial" type)) ! (not (vm-mime-types-match "message/external-body" type))) (vm-mime-types-match "multipart" type))) --- 3467,3470 ---- (defun vm-mime-composite-type-p (type) ! (or (vm-mime-types-match "message/rfc822" type) ! (vm-mime-types-match "message/news" type) (vm-mime-types-match "multipart" type))) *** dist/vm-misc.el.dist Tue Jul 21 10:07:09 1998 --- vm-misc.el Mon Nov 9 17:08:30 1998 *************** *** 190,191 **** --- 190,192 ---- (set-buffer temp-buffer) + (setq selective-display nil) (insert string) *************** *** 200,216 **** - (defmacro vm-marker (pos &optional buffer) - (list 'set-marker '(make-marker) pos buffer)) - - (defmacro vm-increment (variable) - (list 'setq variable (list '1+ variable))) - - (defmacro vm-decrement (variable) - (list 'setq variable (list '1- variable))) - - (defmacro vm-select-folder-buffer () - '(and vm-mail-buffer - (or (buffer-name vm-mail-buffer) - (error "Folder buffer has been killed.")) - (set-buffer vm-mail-buffer))) - (defun vm-check-for-killed-summary () --- 201,202 ---- *************** *** 235,240 **** - (defmacro vm-error-if-folder-read-only () - '(while vm-folder-read-only - (signal 'folder-read-only (list (current-buffer))))) - (put 'folder-read-only 'error-conditions '(folder-read-only error)) --- 221,222 ---- *************** *** 242,289 **** - (defmacro vm-error-if-virtual-folder () - '(and (eq major-mode 'vm-virtual-mode) - (error "%s cannot be applied to virtual folders." this-command))) - - (defmacro vm-build-threads-if-unbuilt () - '(if (null vm-thread-obarray) - (vm-build-threads nil))) - (defun vm-abs (n) (if (< n 0) (- n) n)) - ;; save-restriction flubs restoring the clipping region if you - ;; (widen) and modify text outside the old region. - ;; This should do it right. - (defmacro vm-save-restriction (&rest forms) - (let ((vm-sr-clip (make-symbol "vm-sr-clip")) - (vm-sr-min (make-symbol "vm-sr-min")) - (vm-sr-max (make-symbol "vm-sr-max"))) - (list 'let (list (list vm-sr-clip '(> (buffer-size) - (- (point-max) (point-min)))) - ;; this shouldn't be necessary but the - ;; byte-compiler turns these into interned symbols - ;; which utterly defeats the purpose of the - ;; make-symbol calls above. Soooo, until the compiler - ;; is fixed, these must be made into (let ...) - ;; temporaries so that nested calls to this macros - ;; won't misbehave. - vm-sr-min vm-sr-max) - (list 'and vm-sr-clip - (list 'setq vm-sr-min '(set-marker (make-marker) (point-min))) - (list 'setq vm-sr-max '(set-marker (make-marker) (point-max)))) - (list 'unwind-protect (cons 'progn forms) - '(widen) - (list 'and vm-sr-clip - (list 'progn - (list 'narrow-to-region vm-sr-min vm-sr-max) - (list 'set-marker vm-sr-min nil) - (list 'set-marker vm-sr-max nil))))))) - - (defmacro vm-save-buffer-excursion (&rest forms) - (list 'let '((vm-sbe-buffer (current-buffer))) - (list 'unwind-protect - (cons 'progn forms) - '(and (not (eq vm-sbe-buffer (current-buffer))) - (buffer-name vm-sbe-buffer) - (set-buffer vm-sbe-buffer))))) - (defun vm-last (list) (while (cdr-safe list) (setq list (cdr list))) list) --- 224,227 ---- *************** *** 754,762 **** list)) - - (defmacro vm-assert (expression) - (list 'or expression - (list 'progn - (list 'setq 'debug-on-error t) - (list 'error "assertion failed: %S" - (list 'quote expression))))) --- 692,693 ---- *** dist/vm-mouse.el.dist Wed Sep 9 07:50:24 1998 --- vm-mouse.el Tue Oct 27 23:11:50 1998 *************** *** 209,211 **** (append (list (concat "openURL(" url ! (if new-window ", new-window" "") ")")) --- 209,211 ---- (append (list (concat "openURL(" url ! (if new-window ",new-window" "") ")")) *************** *** 230,231 **** --- 230,232 ---- (set-buffer (get-buffer-create work-buffer)) + (setq selective-display nil) (erase-buffer) *************** *** 283,284 **** --- 284,288 ---- (binary-process-input t) + ;; call-process-region calls write-region. + ;; don't let it do CR -> LF translation. + (selective-display nil) status errstring) *** dist/vm-pop.el.dist Mon Jul 13 08:05:12 1998 --- vm-pop.el Tue Sep 22 16:25:01 1998 *************** *** 699,701 **** ;; newline convention is used. ! (let ((buffer-file-type t)) (write-region start end crash t 0)) --- 699,702 ---- ;; newline convention is used. ! (let ((buffer-file-type t) ! (selective-display nil)) (write-region start end crash t 0)) *************** *** 728,729 **** --- 729,733 ---- (set-buffer buffer) + ;; call-process-region calls write-region. + ;; don't let it do CR -> LF translation. + (setq selective-display nil) (insert string) *** dist/vm-reply.el.dist Fri Jul 24 10:11:48 1998 --- vm-reply.el Mon Oct 26 22:10:33 1998 *************** *** 454,456 **** (insert (format "%sDate: " (if resent "Resent-" "")) ! (format-time-string "%a, " time) ;; %e generated " 2". Go from string to int --- 454,459 ---- (insert (format "%sDate: " (if resent "Resent-" "")) ! (capitalize ! (car (nth (string-to-int (format-time-string "%w" time)) ! vm-weekday-alist))) ! ", " ;; %e generated " 2". Go from string to int *************** *** 460,462 **** (format-time-string "%e" time))) ! (format-time-string " %b %Y %H:%M:%S" time) (format " %s%02d%02d" --- 463,470 ---- (format-time-string "%e" time))) ! " " ! (capitalize ! (car (nth ! (1- (string-to-int (format-time-string "%m" time))) ! vm-month-alist))) ! (format-time-string " %Y %H:%M:%S" time) (format " %s%02d%02d" *** dist/vm-save.el.dist Thu Jun 4 00:37:19 1998 --- vm-save.el Tue Sep 22 16:00:22 1998 *************** *** 493,495 **** (t (narrow-to-region (point) (vm-text-end-of m)))) ! (let ((pop-up-windows (and pop-up-windows (eq vm-mutable-windows t)))) (call-process-region (point-min) (point-max) --- 493,498 ---- (t (narrow-to-region (point) (vm-text-end-of m)))) ! (let ((pop-up-windows (and pop-up-windows (eq vm-mutable-windows t))) ! ;; call-process-region calls write-region. ! ;; don't let it do CR -> LF translation. ! (selective-display nil)) (call-process-region (point-min) (point-max) *************** *** 559,561 **** (let ((pop-up-windows (and pop-up-windows ! (eq vm-mutable-windows t)))) (if need-tempfile --- 562,567 ---- (let ((pop-up-windows (and pop-up-windows ! (eq vm-mutable-windows t))) ! ;; call-process-region calls write-region. ! ;; don't let it do CR -> LF translation. ! (selective-display nil)) (if need-tempfile *************** *** 574,576 **** (let ((pop-up-windows (and pop-up-windows ! (eq vm-mutable-windows t)))) (if need-tempfile --- 580,585 ---- (let ((pop-up-windows (and pop-up-windows ! (eq vm-mutable-windows t))) ! ;; call-process-region calls write-region. ! ;; don't let it do CR -> LF translation. ! (selective-display nil)) (if need-tempfile *** dist/vm-startup.el.dist Wed Sep 9 07:50:27 1998 --- vm-startup.el Mon Dec 14 00:12:51 1998 *************** *** 151,152 **** --- 151,153 ---- (vm-gobble-pop-retrieved) + (vm-gobble-imap-retrieved) (vm-gobble-summary) *************** *** 295,297 **** ! This is VM 6.62. --- 296,298 ---- ! This is VM 6.63. *************** *** 1113,1118 **** (goto-char (point-min)) ! (mail-position-on-field "Subject") ! (beginning-of-line) ! (delete-region (point) (progn (forward-line) (point))) ! (insert "Subject: VM " vm-version " induces a brain tumor in the user.\n It is the tumor that creates the hallucinations.\n")))) --- 1114,1119 ---- (goto-char (point-min)) ! (mail-position-on-field "Subject")))) ! ;; (beginning-of-line) ! ;; (delete-region (point) (progn (forward-line) (point))) ! ;; (insert "Subject: VM " vm-version " induces a brain tumor in the user.\n It is the tumor that creates the hallucinations.\n")))) *************** *** 1142,1144 **** ((and vm-fsfemacs-p (= emacs-major-version 20)) ! (error "VM has not been ported to v20 Emacs. Running VM in this environment is not advised.")))) --- 1143,1145 ---- ((and vm-fsfemacs-p (= emacs-major-version 20)) ! (error "VM has not been ported to v20 Emacs. Running VM in this environment may trash your folders.")))) *** dist/vm-summary.el.dist Fri Jul 24 10:11:50 1998 --- vm-summary.el Thu Nov 12 12:24:46 1998 *************** *** 748,751 **** (if (match-beginning 2) ! (vm-set-weekday-of m (substring date (match-beginning 2) ! (match-end 2))) (vm-set-weekday-of m "")) --- 748,751 ---- (if (match-beginning 2) ! (vm-su-do-weekday m (substring date (match-beginning 2) ! (match-end 2))) (vm-set-weekday-of m "")) *************** *** 763,765 **** date) ! (vm-set-weekday-of m (substring date (match-beginning 1) (match-end 1))) (vm-su-do-month m (substring date (match-beginning 2) (match-end 2))) --- 763,766 ---- date) ! (vm-su-do-weekday m (substring date (match-beginning 1) ! (match-end 1))) (vm-su-do-month m (substring date (match-beginning 2) (match-end 2))) *************** *** 774,776 **** (setq vector (vm-parse-date date)) ! (vm-set-weekday-of m (elt vector 0)) (vm-set-monthday-of m (elt vector 1)) --- 775,777 ---- (setq vector (vm-parse-date date)) ! (vm-su-do-weekday m (elt vector 0)) (vm-set-monthday-of m (elt vector 1)) *************** *** 800,801 **** --- 801,808 ---- + (defun vm-su-do-weekday (m weekday-abbrev) + (let ((val (assoc (downcase weekday-abbrev) vm-weekday-alist))) + (if val + (vm-set-weekday-of m (nth 1 val)) + (vm-set-weekday-of m "")))) + (defun vm-run-user-summary-function (function message) *************** *** 1048 **** --- 1055,1078 ---- (vm-label-string-of m))) + + (defun vm-substring (string from &optional to) + (let ((work-buffer nil)) + (unwind-protect + (save-excursion + (setq work-buffer (vm-make-work-buffer)) + (set-buffer work-buffer) + (insert string) + (if (null to) + (setq to (length string)) + (if (< to 0) + (setq to (+ (length string) to)))) + ;; string indices start at 0, buffers start at 1. + (setq from (1+ from) + to (1+ to)) + (if (> from (point-min)) + (delete-region (point-min) from)) + (if (< to (point-max)) + (delete-region to (point-max))) + (buffer-string)) + (and work-buffer (kill-buffer work-buffer))))) + + *** dist/vm-vars.el.dist Fri Jul 24 10:11:51 1998 --- vm-vars.el Tue Nov 3 15:14:41 1998 *************** *** 783,787 **** (defvar vm-mime-default-face-charsets '("us-ascii" "iso-8859-1") ! "*List of character sets that can be dispalyed using the `default' face. ! For other characters sets VM will have to create a new face and assign ! a font to it that can be used to display that character set.") --- 783,798 ---- (defvar vm-mime-default-face-charsets '("us-ascii" "iso-8859-1") ! "*List of character sets that can be displayed using the `default' face. ! The default face is what you normally see when you edit text in Emacs. ! The font assigned to the default face can typically display one or two ! character sets. For U.S. and Western European users, ``us-ascii'' and ! one of the ISO-8859 character sets usually can be displayed. Whatever ! character sets that your default face can display should be listed as ! the value of `vm-mime-default-face-charsets'. Example: ! ! (setq vm-mime-default-face-charsets '(\"us-ascii\" \"iso-8859-1\")) ! ! Case is not significant in character set names. ! ! To tell VM how to display other character sets, see ! `vm-mime-charset-font-alist'.") *************** *** 876,878 **** T - for message/partial objects, the total number of expected ! parts. \"?\" is displayed if the object doens't specify the total number of parts expected. --- 887,889 ---- T - for message/partial objects, the total number of expected ! parts. \"?\" is displayed if the object doesn't specify the total number of parts expected. *************** *** 3365,3366 **** --- 3376,3378 ---- (make-variable-buffer-local 'vm-imap-retrieved-messages) + (defvar vm-imap-keep-trace-buffer nil) (defvar vm-reply-list nil) *************** *** 3401,3402 **** --- 3413,3422 ---- ("dec" "December" "12"))) + (defconst vm-weekday-alist + '(("sun" "Sunday" "0") + ("mon" "Monday" "1") + ("tue" "Tuesday" "2") + ("wed" "Wednesday" "3") + ("thu" "Thursday" "4") + ("fri" "Friday" "5") + ("sat" "Saturday" "6"))) (make-variable-buffer-local 'vm-pop-retrieved-messages) *** dist/vm-version.el.dist Wed Sep 9 07:50:30 1998 --- vm-version.el Mon Dec 14 00:12:51 1998 *************** *** 4,6 **** ! (defconst vm-version "6.62" "Version number of VM.") --- 4,6 ---- ! (defconst vm-version "6.63" "Version number of VM.") *** dist/vm-window.el.dist Wed Apr 8 10:38:44 1998 --- vm-window.el Tue Sep 22 16:34:28 1998 *************** *** 122,124 **** (progn ! (insert-file-contents file) (read (current-buffer))) --- 122,125 ---- (progn ! (let ((coding-system-for-read 'no-conversion)) ! (insert-file-contents file)) (read (current-buffer))) *************** *** 129,133 **** (save-excursion ! (let ((work-buffer nil) ! (coding-system-for-read 'no-conversion) ! (coding-system-for-write 'no-conversion)) (unwind-protect --- 130,132 ---- (save-excursion ! (let ((work-buffer nil)) (unwind-protect *************** *** 140,142 **** (print vm-window-configurations (current-buffer)) ! (write-region (point-min) (point-max) file nil 0)) (and work-buffer (kill-buffer work-buffer)))))) --- 139,143 ---- (print vm-window-configurations (current-buffer)) ! (let ((coding-system-for-write 'no-conversion) ! (selective-display nil)) ! (write-region (point-min) (point-max) file nil 0))) (and work-buffer (kill-buffer work-buffer))))))