summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/format-spec.el9
2 files changed, 9 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8cc4a8876de..8fcd7424401 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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
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.