>From ff273b1cd36f9357d531dbb490008d13a2043bd9 Mon Sep 17 00:00:00 2001 Date: Thu, 5 May 2011 17:10:02 +0800 Subject: [PATCH] Add unicode footnote style --- lisp/mail/footnote.el | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 82928642..fdeeb483 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -1,4 +1,4 @@ -;;; footnote.el --- footnote support for message mode -*- coding: iso-latin-1;-*- +;;; footnote.el --- footnote support for message mode -*- coding: utf-8;-*- ;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. @@ -279,7 +279,7 @@ (defun Footnote-roman-common (n footnote-roman-list) ;; Latin-1 -(defconst footnote-latin-string "ケイウコェァカ" +(defconst footnote-latin-string "ツケツイツウツコツェツァツカ" "String of Latin-1 footnoting characters.") ;; Note not [...]+, because this style cycles. @@ -292,6 +292,23 @@ (defun Footnote-latin (n) (string (aref footnote-latin-string (mod (1- n) (length footnote-latin-string))))) +;; Unicode + +(defconst footnote-unicode-string "竅ーツケツイツウ竅エ竅オ竅カ竅キ竅ク竅ケ" + "String of unicode footnoting characters.") + +(defconst footnote-unicode-regexp (concat "[" footnote-unicode-string "]+") + "Regexp for unicode footnoting characters.") + +(defun Footnote-unicode (n) + (let (modulus result done) + (while (not done) + (setq modulus (mod n 10) + n (truncate n 10)) + (and (zerop n) (setq done t)) + (push (aref footnote-unicode-string modulus) result)) + (apply #'string result))) + ;;; list of all footnote styles (defvar footnote-style-alist `((numeric Footnote-numeric ,footnote-numeric-regexp) @@ -299,7 +316,8 @@ (defvar footnote-style-alist (english-upper Footnote-english-upper ,footnote-english-upper-regexp) (roman-lower Footnote-roman-lower ,footnote-roman-lower-regexp) (roman-upper Footnote-roman-upper ,footnote-roman-upper-regexp) - (latin Footnote-latin ,footnote-latin-regexp)) + (latin Footnote-latin ,footnote-latin-regexp) + (unicode Footnote-unicode ,footnote-unicode-regexp)) "Styles of footnote tags available. By default only boring Arabic numbers, English letters and Roman Numerals are available. @@ -313,7 +331,8 @@ (defcustom footnote-style 'numeric english-upper == A, B, C, ... roman-lower == i, ii, iii, iv, v, ... roman-upper == I, II, III, IV, V, ... -latin == ケ イ ウ コ ェ ァ カ +latin == ツケ ツイ ツウ ツコ ツェ ツァ ツカ +unicode == ツケ, ツイ, ツウ, ... See also variables `footnote-start-tag' and `footnote-end-tag'. Customizing this variable has no effect on buffers already -- 1.7.5-rc2