X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fformat-spec.el;h=bf096bf7f5eb4340afa81be11bf643cb88eb3743;hb=c14337e1a2a4def64360a74f2669160805f49323;hp=789eb363740f672485fa0fc220e6a9c68b5f5adf;hpb=8b5af94e55ef83ee46b42d32d92fa1ce95dcacf5;p=gnus diff --git a/lisp/format-spec.el b/lisp/format-spec.el index 789eb3637..bf096bf7f 100644 --- a/lisp/format-spec.el +++ b/lisp/format-spec.el @@ -1,7 +1,6 @@ ;;; format-spec.el --- functions for formatting arbitrary formatting strings -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 1999-2015 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: tools @@ -44,15 +43,18 @@ the text that it generates." ;; Valid format spec. ((looking-at "\\([-0-9.]*\\)\\([a-zA-Z]\\)") (let* ((num (match-string 1)) - (spec (string-to-char (match-string 2))) - (val (cdr (assq spec specification)))) + (spec (if (featurep 'xemacs) + (char-to-int (string-to-char (match-string 2))) + (string-to-char (match-string 2)))) + (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. @@ -70,11 +72,16 @@ starting with a character." (while pairs (unless (cdr pairs) (error "Invalid list of pairs")) - (push (cons (car pairs) (cadr pairs)) alist) + (push (cons (if (featurep 'xemacs) + (if (characterp (car pairs)) + (char-to-int (car pairs)) + (car pairs)) + (car pairs)) + (cadr pairs)) + alist) (setq pairs (cddr pairs))) (nreverse alist))) (provide 'format-spec) -;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53 ;;; format-spec.el ends here