summaryrefslogtreecommitdiff
path: root/lisp/format-spec.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-05-20 00:45:58 -0700
committerGlenn Morris <rgm@gnu.org>2013-05-20 00:45:58 -0700
commit33c0f65b6f763969923c4c03c7d97724fc56545c (patch)
tree21e9c90951117e2a5d24af8deda4760470828470 /lisp/format-spec.el
parentd6635ba23031c9ceb430d5bec5dbb8ee4c75ad12 (diff)
downloademacs-33c0f65b6f763969923c4c03c7d97724fc56545c.tar.gz
* lisp/format-spec.el (format-spec): Allow spec chars with nil values.
Fixes: debbugs:14420
Diffstat (limited to 'lisp/format-spec.el')
-rw-r--r--lisp/format-spec.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/lisp/format-spec.el b/lisp/format-spec.el
index 1280966d737..6bb0fe9178a 100644
--- a/lisp/format-spec.el
+++ b/lisp/format-spec.el
@@ -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.