From e5733c5fe8b0e66155eb7016d20f7b2e290b7df8 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 20 May 2013 22:37:05 +0000 Subject: [PATCH] format-spec.el (format-spec): Allow spec chars with nil (Bug#14420) --- lisp/ChangeLog | 4 ++++ lisp/format-spec.el | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 499da7676..4212f438e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 + + * format-spec.el (format-spec): Allow spec chars with nil. (Bug#14420) + 2013-05-19 Adam Sjøgren * message.el (message-insert-formatted-citation-line): handle finding diff --git a/lisp/format-spec.el b/lisp/format-spec.el index 1280966d7..6bb0fe917 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. -- 2.25.1