format-spec.el (format-spec): Allow spec chars with nil (Bug#14420)
authorGlenn Morris <rgm@gnu.org>
Mon, 20 May 2013 22:37:05 +0000 (22:37 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 20 May 2013 22:37:05 +0000 (22:37 +0000)
lisp/ChangeLog
lisp/format-spec.el

index 499da76..4212f43 100644 (file)
@@ -3,6 +3,10 @@
        * gnus-spec.el (gnus-parse-complex-format): Use unicode escape for left
        double angle quotation mark.
 
+2013-05-20  Glenn Morris  <rgm@gnu.org>
+
+       * format-spec.el (format-spec): Allow spec chars with nil.  (Bug#14420)
+
 2013-05-19  Adam Sjøgren  <asjo@koldfront.dk>
 
        * message.el (message-insert-formatted-citation-line): handle finding
index 1280966..6bb0fe9 100644 (file)
@@ -44,14 +44,15 @@ the text that it generates."
        ((looking-at "\\([-0-9.]*\\)\\([a-zA-Z]\\)")
        (let* ((num (match-string 1))
               (spec (string-to-char (match-string 2)))
-              (val (cdr (assq spec specification))))
+              (val (assq spec specification)))
          (unless val
            (error "Invalid format character: `%%%c'" spec))
+         (setq val (cdr val))
          ;; Pad result to desired length.
-          (let ((text (format (concat "%" num "s") val)))
+         (let ((text (format (concat "%" num "s") val)))
            ;; Insert first, to preserve text properties.
-            (insert-and-inherit text)
-            ;; Delete the specifier body.
+           (insert-and-inherit text)
+           ;; Delete the specifier body.
             (delete-region (+ (match-beginning 0) (length text))
                            (+ (match-end 0) (length text)))
             ;; Delete the percent sign.