(if (equal val ,ignore-value)
"" val))))
-(defun gnus-correct-pad-form (el pad-width)
- "Return a form that pads EL to PAD-WIDTH accounting for multi-column
-characters correctly. This is because `format' may pad to columns or to
-characters when given a pad value."
- (let ((pad (abs pad-width))
- (side (< 0 pad-width)))
- (if (symbolp el)
- `(let ((need (- ,pad (gnus-correct-length ,el))))
- (if (> need 0)
- (concat ,(when side '(make-string need ?\ ))
- ,el
- ,(when (not side) '(make-string need ?\ )))
- ,el))
- `(let* ((val (eval ,el))
- (need (- ,pad (gnus-correct-length ,el))))
- (if (> need 0)
- (concat ,(when side '(make-string need ?\ ))
- ,el
- ,(when (not side) '(make-string need ?\ )))
- ,el)))))
-
(defun gnus-parse-format (format spec-alist &optional insert)
;; This function parses the FORMAT string with the help of the
;; SPEC-ALIST and returns a list that can be eval'ed to return the
(setq elem '("*" ?s))))
(setq elem-type (cadr elem))
;; Insert the new format elements.
- (when (and pad-width
- (not (and (featurep 'xemacs)
- gnus-use-correct-string-widths)))
+ (when pad-width
(insert (number-to-string pad-width)))
;; Create the form to be evaled.
- (if (or max-width cut-width ignore-value
- (and (featurep 'xemacs)
- gnus-use-correct-string-widths))
+ (if (or max-width cut-width ignore-value)
(progn
(insert ?s)
(let ((el (car elem)))
(setq el (gnus-tilde-cut-form el cut-width)))
(when max-width
(setq el (gnus-tilde-max-form el max-width)))
- (when pad-width
- (setq el (gnus-correct-pad-form el pad-width)))
(push el flist)))
(insert elem-type)
(push (car elem) flist))))