X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fformat-spec.el;h=39ea2710b89ab51e5f877232d4e40e0b938db4e8;hb=HEAD;hp=951f9aecb81601c64e0956fc29cbce6e595eb156;hpb=9b139a13c0650a18872ebd64849560a97554afa8;p=gnus diff --git a/lisp/format-spec.el b/lisp/format-spec.el index 951f9aecb..39ea2710b 100644 --- a/lisp/format-spec.el +++ b/lisp/format-spec.el @@ -1,17 +1,16 @@ ;;; format-spec.el --- functions for formatting arbitrary formatting strings -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 Free Software Foundation, Inc. +;; Copyright (C) 1999-2016 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: tools ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +18,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -46,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. @@ -72,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