2001-10-17 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
authorShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 17 Oct 2001 16:03:56 +0000 (16:03 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 17 Oct 2001 16:03:56 +0000 (16:03 +0000)
* gnus-spec.el (gnus-parse-simple-format): Support extended spec
%&foo;.

lisp/ChangeLog
lisp/gnus-spec.el

index d9c8d9b..67ba307 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-17 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-spec.el (gnus-parse-simple-format): Support extended spec
+       %&foo;.
+
 2001-10-17 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * nnml.el (nnml-request-expire-articles): Make sure it is back to
index a15490e..a2d33e7 100644 (file)
@@ -448,7 +448,7 @@ characters when given a pad value."
   (let ((max-width 0)
        spec flist fstring elem result dontinsert user-defined
        type value pad-width spec-beg cut-width ignore-value
-       tilde-form tilde elem-type)
+       tilde-form tilde elem-type extended-spec)
     (save-excursion
       (gnus-set-work-buffer)
       (insert format)
@@ -460,7 +460,8 @@ characters when given a pad value."
              max-width nil
              cut-width nil
              ignore-value nil
-             tilde-form nil)
+             tilde-form nil
+             extended-spec nil)
        (setq spec-beg (1- (point)))
 
        ;; Parse this spec fully.
@@ -501,10 +502,15 @@ characters when given a pad value."
              t)
             (t
              nil)))
-       ;; User-defined spec -- find the spec name.
-       (when (eq (setq spec (char-after)) ?u)
+       (cond 
+        ;; User-defined spec -- find the spec name.
+        ((eq (setq spec (char-after)) ?u)
          (forward-char 1)
          (setq user-defined (char-after)))
+        ;; extended spec
+        ((and (eq spec ?&) (looking-at "&\\([^;]+\\);"))
+         (setq extended-spec (intern (match-string 1)))
+         (goto-char (match-end 1))))
        (forward-char 1)
        (delete-region spec-beg (point))
 
@@ -527,7 +533,7 @@ characters when given a pad value."
                         'gnus-tmp-header)
                   ?s)))
           ;; Find the specification from `spec-alist'.
-          ((setq elem (cdr (assq spec spec-alist))))
+          ((setq elem (cdr (assq (or extended-spec spec) spec-alist))))
           (t
            (setq elem '("*" ?s))))
          (setq elem-type (cadr elem))
@@ -564,7 +570,7 @@ characters when given a pad value."
     (setq
      result
      (cond
-      ;; Emptyness.
+      ;; Emptiness.
       ((string= fstring "")
        nil)
       ;; Not a format string.