emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/mail/rmail.el [rmail-mbox-branch]


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/mail/rmail.el [rmail-mbox-branch]
Date: Mon, 27 Sep 2004 19:12:15 -0400

Index: emacs/lisp/mail/rmail.el
diff -c emacs/lisp/mail/rmail.el:1.368.2.6 emacs/lisp/mail/rmail.el:1.368.2.7
*** emacs/lisp/mail/rmail.el:1.368.2.6  Mon Sep 20 16:33:36 2004
--- emacs/lisp/mail/rmail.el    Mon Sep 27 23:05:55 2004
***************
*** 364,384 ****
  (defvar rmail-total-messages nil)
  (put 'rmail-total-messages 'permanent-local t)
  
- ;;; mbox: deprecated. -pmr
- (defvar rmail-message-vector nil)
- (put 'rmail-message-vector 'permanent-local t)
- 
- ;;; mbox: deprecated. -pmr
- (defvar rmail-deleted-vector nil)
- (put 'rmail-deleted-vector 'permanent-local t)
- 
- ;; mbox: deprecated. -pmr
- (defvar rmail-msgref-vector nil
-   "In an Rmail buffer, a vector whose Nth element is a list (N).
- When expunging renumbers messages, these lists are modified
- by substituting the new message number into the existing list.")
- (put 'rmail-msgref-vector 'permanent-local t)
- 
  (defvar rmail-overlay-list nil)
  (put 'rmail-overlay-list 'permanent-local t)
  
--- 364,369 ----
***************
*** 386,393 ****
  
  (defvar rmail-summary-buffer nil)
  (put 'rmail-summary-buffer 'permanent-local t)
- (defvar rmail-summary-vector nil)
- (put 'rmail-summary-vector 'permanent-local t)
  
  (defvar rmail-view-buffer nil
    "Buffer which holds RMAIL message for MIME displaying.")
--- 371,376 ----
***************
*** 677,684 ****
          (find-file file-name)
          (if (and (verify-visited-file-modtime existed)
                   (eq major-mode 'rmail-mode))
!             (progn (rmail-forget-messages)
!                    (rmail-set-message-counters))))
        (switch-to-buffer
         (let ((enable-local-variables nil))
         (find-file-noselect file-name))))
--- 660,666 ----
          (find-file file-name)
          (if (and (verify-visited-file-modtime existed)
                   (eq major-mode 'rmail-mode))
!             nil))
        (switch-to-buffer
         (let ((enable-local-variables nil))
         (find-file-noselect file-name))))
***************
*** 694,700 ****
        (goto-char (point-min))
        ;; If file starts like a Babyl file, reject it.
        (if (looking-at "BABYL OPTIONS:")
!         (error "This is a BABYL file; use M-x unrmail to convert it")))
        (goto-char (point-max)))
      ;; As we have read a file by raw-text, the buffer is set to
      ;; unibyte.  We must make it multibyte if necessary.
--- 676,682 ----
        (goto-char (point-min))
        ;; If file starts like a Babyl file, reject it.
        (if (looking-at "BABYL OPTIONS:")
!         (error "This is a BABYL file; use M-x unrmail to convert it"))
        (goto-char (point-max)))
      ;; As we have read a file by raw-text, the buffer is set to
      ;; unibyte.  We must make it multibyte if necessary.
***************
*** 738,745 ****
  ;     list))
  
  (defun rmail-initialize-messages ()
!   "Initialize message state and process the messages in the buffer to
!   update message state."
    (setq rmail-total-messages 0
          rmail-current-message 1)
    (rmail-desc-clear-descriptors)
--- 720,726 ----
  ;     list))
  
  (defun rmail-initialize-messages ()
!   "Initialize message state based on messages in the buffer."
    (setq rmail-total-messages 0
          rmail-current-message 1)
    (rmail-desc-clear-descriptors)
***************
*** 1033,1039 ****
        (rmail-require-mime-maybe)
        (goto-char (point-max))
        (set-buffer-multibyte t)))
-     (rmail-set-message-counters)
      (rmail-show-message rmail-total-messages)
      (when finding-rmail-file
        (when rmail-display-summary
--- 1014,1019 ----
***************
*** 1066,1084 ****
  (defun rmail-perm-variables ()
    (make-local-variable 'rmail-last-label)
    (make-local-variable 'rmail-last-regexp)
-   (make-local-variable 'rmail-deleted-vector)
    (make-local-variable 'rmail-buffer)
    (setq rmail-buffer (current-buffer))
    (make-local-variable 'rmail-view-buffer)
    (setq rmail-view-buffer rmail-buffer)
    (make-local-variable 'rmail-summary-buffer)
-   (make-local-variable 'rmail-summary-vector)
    (make-local-variable 'rmail-current-message)
    (make-local-variable 'rmail-total-messages)
    (make-local-variable 'rmail-overlay-list)
    (setq rmail-overlay-list nil)
-   (make-local-variable 'rmail-message-vector)
-   (make-local-variable 'rmail-msgref-vector)
    (make-local-variable 'rmail-inbox-list)
    (setq rmail-inbox-list (rmail-parse-file-inboxes))
    ;; Provide default set of inboxes for primary mail file ~/RMAIL.
--- 1046,1060 ----
***************
*** 1225,1230 ****
--- 1201,1207 ----
          (bury-buffer rmail-summary-buffer)))
      (quit-window)))
  
+ ;;;??? Fails to add descriptor for new message.
  ;;; mbox: ready
  (defun rmail-duplicate-message ()
    "Create a duplicated copy of the current message.
***************
*** 1238,1244 ****
                                  (rmail-desc-get-end rmail-current-message))))
      (goto-char (rmail-desc-get-end rmail-current-message))
      (insert string)
-     (rmail-forget-messages)
      (rmail-show-message number)
      (message "Message duplicated")))
  
--- 1215,1220 ----
***************
*** 2060,2190 ****
      new-message-counter))
  
  ;;; mbox: deprecated
- (defun rmail-forget-messages ()
-   (unwind-protect
-       (if (vectorp rmail-message-vector)
-         (let* ((i 0)
-                (v rmail-message-vector)
-                (n (length v)))
-           (while (< i n)
-             (move-marker (aref v i)  nil)
-             (setq i (1+ i)))))
-     (setq rmail-message-vector nil)
-     (setq rmail-msgref-vector nil)
-     (setq rmail-deleted-vector nil)))
- 
- ;;; mbox: deprecated
  (defun rmail-maybe-set-message-counters ()
!   (if (not (and rmail-deleted-vector
!               rmail-message-vector
!               rmail-current-message
!               rmail-total-messages))
!       (rmail-set-message-counters)))
! 
! (defun rmail-count-new-messages (&optional nomsg)
!   (let* ((case-fold-search nil)
!        (total-messages 0)
!        (messages-head nil)
!        (deleted-head nil))
!     (or nomsg (message "Counting new messages..."))
!     (goto-char (point-max))
!     ;; Put at the end of messages-head
!     ;; the entry for message N+1, which marks
!     ;; the end of message N.  (N = number of messages).
!     (search-backward "\n\^_")
!     (forward-char 1)
!     (setq messages-head (list (point-marker)))
!     (rmail-set-message-counters-counter (point-min))
!     (setq rmail-current-message (1+ rmail-total-messages))
!     (setq rmail-total-messages
!         (+ rmail-total-messages total-messages))
!     (setq rmail-message-vector
!         (vconcat rmail-message-vector (cdr messages-head)))
!     (aset rmail-message-vector
!         rmail-current-message (car messages-head))
!     (setq rmail-deleted-vector
!         (concat rmail-deleted-vector deleted-head))
!     (setq rmail-summary-vector
!         (vconcat rmail-summary-vector (make-vector total-messages nil)))
!     (setq rmail-msgref-vector
!         (vconcat rmail-msgref-vector (make-vector total-messages nil)))
!     ;; Fill in the new elements of rmail-msgref-vector.
!     (let ((i (1+ (- rmail-total-messages total-messages))))
!       (while (<= i rmail-total-messages)
!       (aset rmail-msgref-vector i (list i))
!       (setq i (1+ i))))
!     (goto-char (point-min))
!     (or nomsg (message "Counting new messages...done (%d)" total-messages))))
! 
! ;;; DEPRECATED
! (defun rmail-set-message-counters ()
!   (rmail-forget-messages)
!   (save-excursion
!     (save-restriction
!       (widen)
!       (let* ((point-save (point))
!            (total-messages 0)
!            (messages-after-point)
!            (case-fold-search nil)
!            (messages-head nil)
!            (deleted-head nil))
!       (message "Counting messages...")
!       (goto-char (point-max))
!       ;; Put at the end of messages-head
!       ;; the entry for message N+1, which marks
!       ;; the end of message N.  (N = number of messages).
!       (search-backward "\n\^_" nil t)
!       (if (/= (point) (point-max)) (forward-char 1))
!       (setq messages-head (list (point-marker)))
!       (rmail-set-message-counters-counter (min (point) point-save))
!       (setq messages-after-point total-messages)
!       (rmail-set-message-counters-counter)
!       (setq rmail-total-messages total-messages)
!       (setq rmail-current-message
!             (min total-messages
!                  (max 1 (- total-messages messages-after-point))))
!       (setq rmail-message-vector
!             (apply 'vector (cons (point-min-marker) messages-head))
!             rmail-deleted-vector (concat "0" deleted-head)
!             rmail-summary-vector (make-vector rmail-total-messages nil)
!             rmail-msgref-vector (make-vector (1+ rmail-total-messages) nil))
!       (let ((i 0))
!         (while (<= i rmail-total-messages)
!           (aset rmail-msgref-vector i (list i))
!           (setq i (1+ i))))
!       (message "Counting messages...done")))))
! 
! ;;; DEPRECATED        
! (defun rmail-set-message-counters-counter (&optional stop)
!   (let ((start (point))
!       next)
!     (while (search-backward "\n\^_\^L" stop t)
!       ;; Detect messages that have been added with DOS line endings and
!       ;; convert the line endings for such messages.
!       (setq next (point))
!       (if (looking-at "\n\^_\^L\r\n")
!         (let ((buffer-read-only nil)
!               (buffer-undo t))
!           (message "Counting messages...(converting line endings)")
!           (save-excursion
!             (goto-char start)
!             (while (search-backward "\r\n" next t)
!               (delete-char 1)))))
!       (setq start next)
!       (forward-char 1)
!       (setq messages-head (cons (point-marker) messages-head))
!       (save-excursion
!       (setq deleted-head
!             (cons (if (search-backward ", deleted,"
!                                        (prog1 (point)
!                                          (forward-line 2))
!                                        t)
!                       ?D ?\ )
!                   deleted-head)))
!       (if (zerop (% (setq total-messages (1+ total-messages)) 20))
!         (message "Counting messages...%d" total-messages)))))
  
- ;;; DEPRECATED
  (defun rmail-beginning-of-message ()
    "Show current message starting from the beginning."
    (interactive)
--- 2036,2044 ----
      new-message-counter))
  
  ;;; mbox: deprecated
  (defun rmail-maybe-set-message-counters ()
!   )
  
  (defun rmail-beginning-of-message ()
    "Show current message starting from the beginning."
    (interactive)
***************
*** 2739,2751 ****
  
  ;;;; *** Rmail Message Deletion Commands ***
  
- ;;; mbox: ready
- (defun rmail-message-deleted-p (n)
-   (rmail-desc-deleted-p n))
- 
- (defun rmail-set-message-deleted-p (n state)
-   (aset rmail-deleted-vector n (if state ?D ?\ )))
- 
  (defun rmail-delete-message ()
    "Delete this message and stay on it."
    (interactive)
--- 2593,2598 ----
***************
*** 2795,2825 ****
    (interactive)
    (rmail-delete-forward t))
  
- ;;; mbox: deprecated
- ;; Compute the message number a given message would have after expunging.
- ;; The present number of the message is OLDNUM.
- ;; DELETEDVEC should be rmail-deleted-vector.
- ;; The value is nil for a message that would be deleted.
- (defun rmail-msg-number-after-expunge (deletedvec oldnum)
-   (if (or (null oldnum) (= (aref deletedvec oldnum) ?D))
-       nil
-     (let ((i 0)
-         (newnum 0))
-       (while (< i oldnum)
-       (if (/= (aref deletedvec i) ?D)
-           (setq newnum (1+ newnum)))
-       (setq i (1+ i)))
-       newnum)))
- 
  (defun rmail-expunge-confirmed ()
!   "Return t if deleted message should be expunged. If necessary, ask the user.
  See also user-option `rmail-confirm-expunge'."
    (set-buffer rmail-buffer)
!   (or (not (stringp rmail-deleted-vector))
!       (not (string-match "D" rmail-deleted-vector))
!       (null rmail-confirm-expunge)
!       (funcall rmail-confirm-expunge
!              "Erase deleted messages from Rmail file? ")))
  
  ;;; mbox: ready
  (defun rmail-only-expunge ()
--- 2642,2659 ----
    (interactive)
    (rmail-delete-forward t))
  
  (defun rmail-expunge-confirmed ()
!   "Return t if deleted message should be expunged.  If necessary, ask the 
user.
  See also user-option `rmail-confirm-expunge'."
    (set-buffer rmail-buffer)
!   (let ((some-deleted))
!     (dotimes (i rmail-total-messages)
!       (if (rmail-desc-deleted-p (1+ i))
!         (setq some-deleted t)))
!     (or (not some-deleted)
!       (null rmail-confirm-expunge)
!       (funcall rmail-confirm-expunge
!                "Erase deleted messages from Rmail file? "))))
  
  ;;; mbox: ready
  (defun rmail-only-expunge ()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]