* lisp/format-spec.el (format-spec): Allow spec chars with nil values.
authorGlenn Morris <rgm@gnu.org>
Mon, 20 May 2013 07:45:58 +0000 (00:45 -0700)
committerGlenn Morris <rgm@gnu.org>
Mon, 20 May 2013 07:45:58 +0000 (00:45 -0700)
Fixes: debbugs:14420

lisp/ChangeLog
lisp/format-spec.el

index 8cc4a88..8fcd742 100644 (file)
@@ -1,3 +1,7 @@
+2013-05-20  Glenn Morris  <rgm@gnu.org>
+
+       * format-spec.el (format-spec): Allow spec chars with nil.  (Bug#14420)
+
 2013-05-19  Dmitry Gutov  <dgutov@yandex.ru>
 
        * progmodes/ruby-mode.el (ruby-expression-expansion-re): Allow to
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.