* wl-summary.el (wl-summary-line-list-info): Revised format of the
authorhmurata <hmurata>
Fri, 10 May 2002 14:39:17 +0000 (14:39 +0000)
committerhmurata <hmurata>
Fri, 10 May 2002 14:39:17 +0000 (14:39 +0000)
return value.

* wl-util.el (wl-set-string-width): Added optional argument
`padding' (All other related portions are changed).
(wl-line-parse-format): If the first letter of column number is
`0', zero-padding the result (ex: "%05l").

wl/ChangeLog
wl/wl-summary.el
wl/wl-util.el

index a454a7a..ab6dae6 100644 (file)
@@ -1,5 +1,13 @@
 2002-05-10  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
 
+       * wl-summary.el (wl-summary-line-list-info): Revised format of the
+       return value.
+
+       * wl-util.el (wl-set-string-width): Added optional argument
+       `padding' (All other related portions are changed).
+       (wl-line-parse-format): If the first letter of column number is
+       `0', zero-padding the result (ex: "%05l").
+
        * wl-summary.el (wl-summary-line-list-count): Fixed parenthesis.
 
 2002-05-10  Yuuichi Teranishi  <teranisi@gohome.org>
index 4340f82..c3ff1dd 100644 (file)
@@ -4149,11 +4149,9 @@ If ARG, exit virtual folder."
          (if (not ml-count) (setq ml-count (match-string 2 subject-string)))))
     (condition-case nil
        (if (and ml-name ml-count)
-           (if (string= folder wl-default-folder)
-               (format "(%s %05d)"
-                       (car (split-string ml-name " "))
-                       (string-to-int ml-count))
-             (format "#%05d" (string-to-int ml-count)))
+           (format "(%s %05d)"
+                   (car (split-string ml-name " "))
+                   (string-to-int ml-count))
          "")
       (error ""))))
 
@@ -4184,7 +4182,7 @@ If ARG, exit virtual folder."
 (defun wl-summary-line-attached ()
   (let ((content-type (elmo-msgdb-overview-entity-get-extra-field
                       wl-message-entity "content-type")))
-    (if (and content-type 
+    (if (and content-type
             (string-match "multipart/mixed" content-type))
        "@"
       "")))
index 244152a..770ba7c 100644 (file)
@@ -173,10 +173,12 @@ If HACK-ADDRESSES is t, then the strings are considered to be mail addresses,
 ;;(defalias 'wl-set-hash-val 'elmo-set-hash-val)
 ;;(make-obsolete 'wl-set-hash-val 'elmo-set-hash-val)
 
-(defsubst wl-set-string-width (width string)
+(defsubst wl-set-string-width (width string &optional padding)
   "Make a new string which have specified WIDTH and content of STRING.
-If WIDTH is negative number, padding spaces are added to the head and
-otherwise, padding spaces are added to the tail of the string."
+If WIDTH is negative number, padding chars are added to the head and
+otherwise, padding chars are added to the tail of the string.
+The optional 3rd arg PADDING, if non-nil, specifies a padding character
+to add the result instead of white space."
   (static-cond
    ((and (fboundp 'string-width) (fboundp 'truncate-string-to-width)
         (not (featurep 'xemacs)))
@@ -184,40 +186,28 @@ otherwise, padding spaces are added to the tail of the string."
        (setq string (truncate-string-to-width string (abs width))))
     (if (= (string-width string) (abs width))
        string
-      (if (< width 0)
-         (concat (format (format "%%%ds"
-                                 (- (abs width) (string-width string)))
-                         " ")
-                 string)
-       (concat string
-               (format (format "%%%ds"
-                               (- (abs width) (string-width string)))
-                       " ")))))
+      (let ((paddings (make-string (- (abs width) (string-width string))
+                                  (or padding ?\ ))))
+       (if (< width 0)
+           (concat paddings string)
+         (concat string paddings)))))
    (t
     (elmo-set-work-buf
      (elmo-set-buffer-multibyte default-enable-multibyte-characters)
      (insert string)
-     (if (> (current-column) (abs width))
-        (if (> (move-to-column (abs width)) (abs width))
-            (progn
-              (condition-case nil ; ignore error
-                  (backward-char 1)
-                (error))
-              (if (< width 0)
-                  (concat " " (buffer-substring (point-min) (point)))
-                (concat (buffer-substring (point-min) (point)) " ")))
-          (buffer-substring (point-min) (point)))
-       (if (= (current-column) (abs width))
-          string
+     (when (> (current-column) (abs width))
+       (when (> (move-to-column (abs width)) (abs width))
+        (condition-case nil ; ignore error
+            (backward-char 1)
+          (error)))
+       (setq string (buffer-substring (point-min) (point))))
+     (if (= (current-column) (abs width))
+        string
+       (let ((paddings (make-string (- (abs width) (current-column))
+                                   (or padding ?\ ))))
         (if (< width 0)
-            (concat (format (format "%%%ds"
-                                    (- (abs width) (current-column)))
-                            " ")
-                    string)
-          (concat string
-                  (format (format "%%%ds"
-                                  (- (abs width) (current-column)))
-                          " ")))))))))
+            (concat paddings string)
+          (concat string paddings))))))))
 
 (defun wl-mode-line-buffer-identification (&optional id)
   (let ((priorities '(biff plug title)))
@@ -942,12 +932,12 @@ is enclosed by at least one regexp grouping construct."
              (cond
               ((looking-at "%")
                (goto-char (match-end 0)))
-              ((looking-at "\\(-?[0-9]*\\)\\([^0-9]\\)")
+              ((looking-at "\\(-?\\(0?\\)[0-9]*\\)\\([^0-9]\\)")
                (cond
-                ((string= (match-string 2) "(")
+                ((string= (match-string 3) "(")
                  (if (zerop (length (match-string 1)))
                      (error "No number specification for %%( line format"))
-                 (push (list 
+                 (push (list
                         (match-beginning 0) ; start
                         (match-end 0)       ; start-content
                         (string-to-number
@@ -955,7 +945,7 @@ is enclosed by at least one regexp grouping construct."
                         specs) ; specs
                        stack)
                  (setq specs nil))
-                ((string= (match-string 2) ")")
+                ((string= (match-string 3) ")")
                  (let ((entry (pop stack))
                        form)
                    (unless entry
@@ -975,14 +965,16 @@ is enclosed by at least one regexp grouping construct."
                                        specs)))))))
                 (t
                  (setq spec
-                       (if (setq spec (assq (string-to-char (match-string 2))
+                       (if (setq spec (assq (string-to-char (match-string 3))
                                             spec-alist))
                            (nth 1 spec)
-                         (match-string 2)))
+                         (match-string 3)))
                  (unless (string= "" (match-string 1))
                    (setq spec (list 'wl-set-string-width
                                     (string-to-number (match-string 1))
-                                    spec)))
+                                    spec
+                                    (unless (string= "" (match-string 2))
+                                      (string-to-char (match-string 2))))))
                  (replace-match "s" 'fixed)
                  (setq specs (append specs
                                      (list