From a4c8f641fd63d2de34c774409ca9183785b80186 Mon Sep 17 00:00:00 2001 From: hmurata Date: Fri, 10 May 2002 14:39:17 +0000 Subject: [PATCH] * 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/ChangeLog | 8 +++++++ wl/wl-summary.el | 10 ++++---- wl/wl-util.el | 70 ++++++++++++++++++++++++------------------------------ 3 files changed, 43 insertions(+), 45 deletions(-) diff --git a/wl/ChangeLog b/wl/ChangeLog index a454a7a..ab6dae6 100644 --- a/wl/ChangeLog +++ b/wl/ChangeLog @@ -1,5 +1,13 @@ 2002-05-10 Hiroya Murata + * 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 diff --git a/wl/wl-summary.el b/wl/wl-summary.el index 4340f82..c3ff1dd 100644 --- a/wl/wl-summary.el +++ b/wl/wl-summary.el @@ -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)) "@" ""))) diff --git a/wl/wl-util.el b/wl/wl-util.el index 244152a..770ba7c 100644 --- a/wl/wl-util.el +++ b/wl/wl-util.el @@ -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 -- 1.7.10.4