*** dist/README.dist Mon Feb 3 00:46:48 1997 --- README Fri Jan 15 01:09:53 1999 *************** *** 6,11 **** - Note that version 18 of Emacs is no longer supported. VM may - or may not work under v18. The old v18 support code has been left - in place for those hardy souls who want to attempt it anyway. - 1) Do one of these: --- 6,7 ---- *************** *** 14,16 **** `make all' to make everything. ! Ignore the compiler warnings. --- 10,12 ---- `make all' to make everything. ! Ignore the byte compiler warnings. *************** *** 22,24 **** Copy the files in pixmaps directory into the directory you ! just created. VM will look for the pixmap there by default. --- 18,20 ---- Copy the files in pixmaps directory into the directory you ! just created. VM will look for the pixmaps there by default. *************** *** 29,34 **** ! 4) If you built the Info document, copy the file vm.info file into ! the Emacs' info directory under the name "vm". Edit the "dir" ! file in that directory and add a menu entry for VM, if it's ! not in there already. --- 25,32 ---- ! 4) If you built the Info document, copy the file vm.info* files ! into the Emacs' info. You may need to edit the "dir" file in ! that directory and add a menu entry for VM. It should look ! like this: ! ! * VM:: A mail reader. *************** *** 48,51 **** use the online documentation to teach yourself how to use VM. - (Note: the Info document is currently only completely accurate for - version 4 of VM.) --- 46,47 ---- *************** *** 55,57 **** ! The latest version of VM can usually be found at ftp.uu.net in ! the networking/mail/vm directory. --- 51,53 ---- ! VM's home page on the World Wide Web is at http://www.wonderworks.com/vm . ! You can get the latest version of VM from there. *** dist/Makefile.dist Tue Dec 15 09:10:19 1998 --- Makefile Fri Jan 15 01:02:07 1999 *************** *** 1,9 **** ! # what Emacs version to build VM for. ! # Allowed values are 18 and 19. ! # Version 18 of Emacs is UNSUPPORTED. ! # In fact all versions of Emacs prior to 19.34 for Emacs and ! # prior to 19.14 for XEmacs are unsupported. For v20 XEmacs ! # EMACS_VERSION should remain 19. ! # ! EMACS_VERSION = 19 --- 1,3 ---- ! # All versions of Emacs prior to 19.34 for Emacs and ! # prior to 19.14 for XEmacs are unsupported. *************** *** 88,90 **** install: all ! cp vm.info $(INFODIR)/vm cp *.elc $(LISPDIR) --- 82,84 ---- install: all ! cp vm.info vm.info-* $(INFODIR) cp *.elc $(LISPDIR) *************** *** 181,189 **** @$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile vm-save.el - - vm-search.el: Makefile vm-search$(EMACS_VERSION).el - @echo making vm-search.el... - @{ test -f vm-search.el && \ - cmp -s vm-search.el vm-search$(EMACS_VERSION).el && \ - touch vm-search.el ; } || \ - { rm -f vm-search.el; cp vm-search$(EMACS_VERSION).el vm-search.el ; } --- 175,176 ---- *** dist/vm-folder.el.dist Tue Dec 15 09:10:20 1998 --- vm-folder.el Sat Jan 2 19:41:56 1999 *************** *** 3772,3774 **** (let ((lines vm-startup-message-lines)) ! (message "VM %s, Copyright (C) 1998 Kyle E. Jones; type ? for help" vm-version) --- 3772,3774 ---- (let ((lines vm-startup-message-lines)) ! (message "VM %s, Copyright (C) 1999 Kyle E. Jones; type ? for help" vm-version) *** dist/vm-imap.el.dist Tue Dec 15 09:10:20 1998 --- vm-imap.el Sat Jan 16 16:36:03 1999 *************** *** 425,430 **** host))) - ;; Tell XEmacs/MULE not to mess with the text. - (and vm-xemacs-mule-p - (set-buffer-file-coding-system 'binary t)) - ;; clear the trace buffer of old output (save-excursion --- 425,426 ---- *************** *** 432,442 **** (buffer-disable-undo process-buffer) ! (erase-buffer)) ! ;; open the connection to the server ! (setq process (open-network-stream "IMAP" process-buffer host port)) ! (and (null process) (throw 'end-of-session nil)) ! (process-kill-without-query process) ! (save-excursion ! (set-buffer process-buffer) (make-local-variable 'vm-imap-read-point) ! (setq vm-imap-read-point (point-min)) (if (null (setq greeting (vm-imap-read-greeting process))) --- 428,444 ---- (buffer-disable-undo process-buffer) ! ;; clear the trace buffer of old output ! (erase-buffer) ! ;; Tell XEmacs/MULE not to mess with the text. ! (and vm-xemacs-mule-p ! (set-buffer-file-coding-system 'binary t)) ! (insert "starting IMAP session " (current-time-string) "\n") ! (insert (format "connecting to %s:%s\n" host port)) ! ;; open the connection to the server ! (setq process (open-network-stream "IMAP" process-buffer ! host port)) ! (and (null process) (throw 'end-of-session nil)) ! (insert "connected\n") ! (process-kill-without-query process) (make-local-variable 'vm-imap-read-point) ! (setq vm-imap-read-point (point)) (if (null (setq greeting (vm-imap-read-greeting process))) *************** *** 753,754 **** --- 755,766 ---- (insert-before-markers (vm-trailing-message-separator)) + ;; Some IMAP servers don't understand Sun's stupid + ;; From_-with-Content-Length style folder and assume the last + ;; newline in the message is a separator. And so the server + ;; strips it, leaving us with a message that does not end + ;; with a newline. Add the newline if needed. + ;; + ;; HP Openmail seems to have this problem. + (if (and (not (eq ?\n (char-before (point)))) + (memq vm-folder-type '(From_-with-Content-Length BellFrom_))) + (insert-before-markers "\n")) ;; Set file type to binary for DOS/Windows. I don't know if *** dist/vm-menu.el.dist Sat Jun 27 22:08:56 1998 --- vm-menu.el Sat Jan 2 19:57:19 1999 *************** *** 225,226 **** --- 225,227 ---- ["Add Label" vm-add-message-labels vm-message-list] + ["Add Existing Label" vm-add-existing-message-labels vm-message-list] ["Remove Label" vm-delete-message-labels vm-message-list] *************** *** 243,245 **** ["By Recipients (backward)" (vm-sort-messages "reversed-recipients") vm-message-list] ! ["By Lines (backwards)" (vm-sort-messages "reversed-line-count") vm-message-list] ["By Bytes (backward)" (vm-sort-messages "reversed-byte-count") vm-message-list] --- 244,246 ---- ["By Recipients (backward)" (vm-sort-messages "reversed-recipients") vm-message-list] ! ["By Lines (backward)" (vm-sort-messages "reversed-line-count") vm-message-list] ["By Bytes (backward)" (vm-sort-messages "reversed-byte-count") vm-message-list] *** dist/vm-mime.el.dist Tue Dec 15 09:10:22 1998 --- vm-mime.el Mon Jan 11 12:13:18 1999 *************** *** 1388,1390 **** (let ((inhibit-read-only t)) ! (remove-text-properties start end 'read-only)) (goto-char end) --- 1388,1390 ---- (let ((inhibit-read-only t)) ! (remove-text-properties start end '(read-only nil))) (goto-char end) *************** *** 3041,3043 **** (insert ";\n\t" (mapconcat 'identity (cdr disposition) ! ";\n\t"))) (insert "\n")))) --- 3041,3043 ---- (insert ";\n\t" (mapconcat 'identity (cdr disposition) ! ";\n\t") "\n")) (insert "\n")))) *************** *** 3381,3383 **** (insert ";\n\t" (mapconcat 'identity (cdr disposition) ! ";\n\t"))) (insert "\n")))) --- 3381,3383 ---- (insert ";\n\t" (mapconcat 'identity (cdr disposition) ! ";\n\t") "\n")) (insert "\n")))) *** dist/vm-pop.el.dist Tue Dec 15 09:10:23 1998 --- vm-pop.el Sat Jan 16 16:24:12 1999 *************** *** 385,390 **** host))) - ;; Tell XEmacs/MULE not to mess with the text. - (and vm-xemacs-mule-p - (set-buffer-file-coding-system 'binary t)) - ;; clear the trace buffer of old output (save-excursion --- 385,386 ---- *************** *** 392,402 **** (buffer-disable-undo process-buffer) ! (erase-buffer)) ! ;; open the connection to the server ! (setq process (open-network-stream "POP" process-buffer host port)) ! (and (null process) (throw 'done nil)) ! (process-kill-without-query process) ! (save-excursion ! (set-buffer process-buffer) (make-local-variable 'vm-pop-read-point) ! (setq vm-pop-read-point (point-min)) (if (null (setq greeting (vm-pop-read-response process t))) --- 388,403 ---- (buffer-disable-undo process-buffer) ! ;; clear the trace buffer of old output ! (erase-buffer) ! ;; Tell XEmacs/MULE not to mess with the text. ! (and vm-xemacs-mule-p ! (set-buffer-file-coding-system 'binary t)) ! (insert "starting POP session " (current-time-string) "\n") ! (insert (format "connecting to %s:%s\n" host port)) ! ;; open the connection to the server ! (setq process (open-network-stream "POP" process-buffer host port)) ! (and (null process) (throw 'done nil)) ! (insert "connected\n") ! (process-kill-without-query process) (make-local-variable 'vm-pop-read-point) ! (setq vm-pop-read-point (point)) (if (null (setq greeting (vm-pop-read-response process t))) *** dist/vm-reply.el.dist Tue Dec 15 09:10:23 1998 --- vm-reply.el Tue Dec 29 00:45:17 1998 *************** *** 415,417 **** (system-name)) ! ((and (stringp 'mail-host-address) (string-match "\\." mail-host-address)) --- 415,417 ---- (system-name)) ! ((and (stringp mail-host-address) (string-match "\\." mail-host-address)) *** dist/vm-search.el.dist Sun Jan 17 17:21:12 1999 --- vm-search.el Wed Jun 18 20:15:38 1997 *************** *** 0 **** --- 1,122 ---- + ;;; Incremental search through a mail folder (for Lucid and FSF Emacs 19) + ;;; Copyright (C) 1994 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-search) + + (defun vm-isearch-forward (&optional arg) + "Incrementally search forward through the current folder's messages. + Usage is identical to the standard Emacs incremental search. + When the search terminates the message containing point will be selected. + + If the variable vm-search-using-regexps is non-nil, regular expressions + are understood; nil means the search will be for the input string taken + literally. Specifying a prefix ARG interactively toggles the value of + vm-search-using-regexps for this search." + (interactive "P") + (let ((vm-search-using-regexps + (if arg (not vm-search-using-regexps) vm-search-using-regexps))) + (vm-isearch t))) + + (defun vm-isearch-backward (&optional arg) + "Incrementally search backward through the current folder's messages. + Usage is identical to the standard Emacs incremental search. + When the search terminates the message containing point will be selected. + + If the variable vm-search-using-regexps is non-nil, regular expressions + are understood; nil means the search will be for the input string taken + literally. Specifying a prefix ARG interactively toggles the value of + vm-search-using-regexps for this search." + (interactive "P") + (let ((vm-search-using-regexps + (if arg (not vm-search-using-regexps) vm-search-using-regexps))) + (vm-isearch nil))) + + (defun vm-isearch (forward) + (vm-follow-summary-cursor) + (vm-select-folder-buffer) + (vm-check-for-killed-summary) + (vm-error-if-folder-empty) + (vm-error-if-virtual-folder) + (vm-display (current-buffer) t '(vm-isearch-forward vm-isearch-backward) + (list this-command 'searching-message)) + (let ((clip-head (point-min)) + (clip-tail (point-max)) + (old-vm-message-pointer vm-message-pointer)) + (unwind-protect + (progn (select-window (vm-get-visible-buffer-window (current-buffer))) + (widen) + (add-hook 'pre-command-hook 'vm-isearch-widen) + ;; order is significant, we want to narrow after + ;; the update + (add-hook 'post-command-hook 'vm-isearch-narrow) + (add-hook 'post-command-hook 'vm-isearch-update) + (isearch-mode forward vm-search-using-regexps nil t) + (vm-isearch-update) + (if (not (eq vm-message-pointer old-vm-message-pointer)) + (progn + (vm-record-and-change-message-pointer + old-vm-message-pointer vm-message-pointer) + (vm-update-summary-and-mode-line) + ;; vm-show-current-message only adjusts (point-max), + ;; it doesn't change (point-min). + (widen) + (narrow-to-region + (if (< (point) (vm-vheaders-of (car vm-message-pointer))) + (vm-start-of (car vm-message-pointer)) + (vm-vheaders-of (car vm-message-pointer))) + (vm-text-end-of (car vm-message-pointer))) + (save-excursion (vm-energize-urls)) + (vm-display nil nil + '(vm-isearch-forward vm-isearch-backward) + '(reading-message)) + ;; turn the unwinds into a noop + (setq old-vm-message-pointer vm-message-pointer) + (setq clip-head (point-min)) + (setq clip-tail (point-max))))) + (remove-hook 'pre-command-hook 'vm-isearch-widen) + (remove-hook 'post-command-hook 'vm-isearch-update) + (remove-hook 'post-command-hook 'vm-isearch-narrow) + (narrow-to-region clip-head clip-tail) + (setq vm-message-pointer old-vm-message-pointer)))) + + (defun vm-isearch-widen () + (if (eq major-mode 'vm-mode) + (widen))) + + (defun vm-isearch-narrow () + (if (eq major-mode 'vm-mode) + (narrow-to-region + (if (< (point) (vm-vheaders-of (car vm-message-pointer))) + (vm-start-of (car vm-message-pointer)) + (vm-vheaders-of (car vm-message-pointer))) + (vm-text-end-of (car vm-message-pointer))))) + + (defun vm-isearch-update () + (if (eq major-mode 'vm-mode) + (if (and (>= (point) (vm-start-of (car vm-message-pointer))) + (<= (point) (vm-end-of (car vm-message-pointer)))) + nil + (let ((mp vm-message-list) + (point (point))) + (while mp + (if (and (>= point (vm-start-of (car mp))) + (<= point (vm-end-of (car mp)))) + (setq vm-message-pointer mp mp nil) + (setq mp (cdr mp)))) + (setq vm-need-summary-pointer-update t) + (intern (buffer-name) vm-buffers-needing-display-update) + (vm-update-summary-and-mode-line))))) *** dist/vm-startup.el.dist Tue Dec 15 09:10:25 1998 --- vm-startup.el Sun Jan 17 17:29:05 1999 *************** *** 296,298 **** ! This is VM 6.63. --- 296,298 ---- ! This is VM 6.64. *************** *** 911,914 **** (require 'vm-vars) ! ;; make sure the user doesn't try to use vm-mail here. ! (let ((reporter-mailer '(mail))) (delete-other-windows) --- 911,917 ---- (require 'vm-vars) ! ;; Use VM to send the bug report. Could be trouble if vm-mail ! ;; is what the user wants to complain about. But most of the ! ;; time we'll be fine and users like to use MIME to attach ! ;; stuff to the reports. ! (let ((reporter-mailer '(vm-mail))) (delete-other-windows) *** dist/vm-summary.el.dist Tue Dec 15 09:10:25 1998 --- vm-summary.el Tue Jan 5 10:51:13 1999 *************** *** 585,587 **** ;; (substring string 0 (1- i))))) ! ((<= (length string) width) string) --- 585,587 ---- ;; (substring string 0 (1- i))))) ! ((<= (length string) (vm-abs width)) string) *** dist/vm-vars.el.dist Tue Dec 15 09:10:27 1998 --- vm-vars.el Fri Jan 15 01:19:32 1999 *************** *** 227,233 **** ! If VM is retrieving mail automatically because `vm-auto-get-new-mail' is ! set to a numeric value then you will not be prompted about large messages. ! This is to avoid prompting you while you're typing in another buffer. ! In this case the large message will be skipped with a warning ! message. --- 227,234 ---- ! If VM is retrieving mail automatically because `vm-auto-get-new-mail' ! is set to a numeric value then you will not be prompted about large ! messages. This is to avoid prompting you while you're typing in ! another buffer. In this case the large message will be skipped with a ! warning message. You will be able to retrieved any skipped messages ! later by running 'vm-get-new-mail' interactively. *************** *** 288,294 **** ! If VM is retrieving mail automatically because `vm-auto-get-new-mail' is ! set to a numeric value then you will not be prompted about large messages. ! This is to avoid prompting you while you're typing in another buffer. ! In this case the large message will be skipped with a warning ! message. --- 289,296 ---- ! If VM is retrieving mail automatically because `vm-auto-get-new-mail' ! is set to a numeric value then you will not be prompted about large ! messages. This is to avoid prompting you while you're typing in ! another buffer. In this case the large message will be skipped with a ! warning message. You will be able to retrieved any skipped messages ! later by running vm-get-new-mail interactively. *************** *** 824,827 **** ! Note that under FSF Emacs any fonts you use must be the same height ! as your default font. XEmacs does not have this limitation.") --- 826,830 ---- ! Note that under FSF Emacs 20.3 and any earlier version, any fonts ! you use must be the same height as your default font. XEmacs ! does not have this limitation.") *************** *** 2109,2111 **** menu or a toolbar button. That command must then prompt you for ! information, and there must be a limited set of proper responses. --- 2112,2114 ---- menu or a toolbar button. That command must then prompt you for ! information, and there must be a limited set of valid responses. *************** *** 2136,2138 **** ! ``completion'' specifies parameters for frames that display list of choices generated by a mouse-initiated completing read. --- 2139,2141 ---- ! ``completion'' specifies parameters for frames that display lists of choices generated by a mouse-initiated completing read. *************** *** 2234,2238 **** If the value of `vm-use-menus' is a list, it should be a list of ! symbols. The symbols and the order that they are listed ! determine what menus will be in the menubar and how they are ! ordered. Valid symbols values are: --- 2237,2241 ---- If the value of `vm-use-menus' is a list, it should be a list of ! symbols. The symbols and the order in which they are listed ! determine which menus will be in the menubar and how they are ! ordered. Valid symbol values are: *** dist/vm-version.el.dist Tue Dec 15 09:10:27 1998 --- vm-version.el Sun Jan 17 17:29:05 1999 *************** *** 4,6 **** ! (defconst vm-version "6.63" "Version number of VM.") --- 4,6 ---- ! (defconst vm-version "6.64" "Version number of VM.")