*** empty log message ***
[gnus] / lisp / gnus-util.el
index 5763b96..856b7a2 100644 (file)
 (require 'message)
 
 (eval-and-compile
-  (autoload 'nnmail-date-to-time "nnmail"))
+  (autoload 'nnmail-date-to-time "nnmail")
+  (autoload 'rmail-insert-rmail-file-header "rmail")
+  (autoload 'rmail-count-new-messages "rmail")
+  (autoload 'rmail-show-message "rmail"))
 
 (defun gnus-boundp (variable)
   "Return non-nil if VARIABLE is bound and non-nil."
@@ -880,17 +883,24 @@ ARG is passed to the first function."
            (unless (eobp)
              (setq elem (buffer-substring
                          (point) (progn (forward-sexp 1) (point))))
-             (if (member elem tokens)
-                 (progn
-                   ;; Tokens that don't have a following value are ignored.
-                   (when (and pair (cdr pair))
-                     (push pair alist))
-                   (setq pair (list elem)))
+             (cond
+              ((equal elem "macdef")
+               ;; We skip past the macro definition.
+               (widen)
+               (while (and (zerop (forward-line 1))
+                           (looking-at "$")))
+               (narrow-to-region (point) (point)))
+              ((member elem tokens)
+               ;; Tokens that don't have a following value are ignored.
+               (when (and pair (cdr pair))
+                 (push pair alist))
+               (setq pair (list elem)))
+              (t
                ;; Values that haven't got a preceding token are ignored.
                (when pair
                  (setcdr pair elem)
                  (push pair alist)
-                 (setq pair nil)))))
+                 (setq pair nil))))))
          (push alist result)
          (setq alist nil
                pair nil)