;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2003
+;; National Institute of Advanced Industrial Science and Technology (AIST)
+;; Registration Number H13PRO009
;; Keywords: Quail, TIT, cxterm
;; dictionary. The extra docstring in this alist is to add more
;; information.
;; The command describe-input-method shows the automatically generated
-;; docstring, then an extra docstrings while replacing the form \<VAR>
+;; docstring, then an extra docstring while replacing the form \<VAR>
;; by the value of variable VAR. For instance, the form
;; \<quail-translation-docstring> is replaced by a description about
;; how to select a translation from a list of candidates.
("chinese-ccdospy" "\e$AKuF4\e(B"
"Pinyin base input method for Chinese charset GB2312 \(`chinese-gb2312').
-Pinyin is the standared roman transliteration method for Chinese.
+Pinyin is the standard Roman transliteration method for Chinese.
For the detail of Pinyin system, see the documentation of the input
method `chinese-py'.
difference is that you type a single key for these Pinyin spelling.
Pinyin: zh en eng ang ch an ao ai ong sh ing yu(\e$A(9\e(B)
keyseq: a f g h i j k l s u y v
-For expample:
+For example:
Chinese: \e$A0!\e(B \e$A9{\e(B \e$AVP\e(B \e$AND\e(B \e$A9b\e(B \e$ASq\e(B \e$AH+\e(B
Pinyin: a guo zhong wen guang yu quan
Keyseq: a1 guo4 as1 wf4 guh1 yu..6 qvj6
first radical:
a b c d e f g h i j k l m n o p q r s t u v w x y z
- \e$APD\e(B \e$AZ"\e(B \e$AJ,\e(B \e$AX<\e(B \e$A;p\e(B \e$A?Z\e(B \e$A^P\e(B \e$Ac_\e(B \e$AZ%\e(B \e$A\3\e(B \e$AXi\e(B \e$AD>\e(B \e$Alj\e(B \e$Ab;\e(B \e$ATB\e(B \e$Afy\e(B \e$AJ/\e(B \e$AMu\e(B \e$A0K\e(B \e$AX/\e(B \e$AHU\e(B \e$AeA\e(B \e$Aak\e(B \e$AVq\e(B \e$AR;\e(B \e$AHK\e(B
+ \e$APD\e(B \e$AZ"\e(B \e$AJ,\e(B \e$AX<\e(B \e$A;p\e(B \e$A?Z\e(B \e$A^P\e(B \e$Ac_\e(B \e$AZ%\e(B \e$A\3\e(B \e$AXi\e(B \e$AD>\e(B \e$Alj\e(B \e$Ab;\e(B \e$ATB\e(B \e$Afy\e(B \e$AJ/\e(B \e$AMu\e(B \e$A0K\e(B \e$AX/\e(B \e$AHU\e(B \e$AeA\e(B \e$Aak\e(B \e$AVq\e(B \e$AR;\e(B \e$AHK\e(B
last radical:
a b c d e f g h i j k l m n o p q r s t u v w x y z
- \e$ASV\e(B \e$AI=\e(B \e$AMA\e(B \e$A56\e(B \e$AZb\e(B \e$A?Z\e(B \e$ARB\e(B \e$Aqb\e(B \e$A4s\e(B \e$A6!\e(B \e$A[L\e(B \e$Ala\e(B \e$AJ.\e(B \e$A4u\e(B \e$AXg\e(B \e$ACE\e(B \e$A=q\e(B \e$AX-\e(B \e$AE.\e(B \e$ARR\e(B \e$A`m\e(B \e$AP!\e(B \e$A3'\e(B \e$A3f\e(B \e$A_.\e(B \e$A27\e(B
+ \e$ASV\e(B \e$AI=\e(B \e$AMA\e(B \e$A56\e(B \e$AZb\e(B \e$A?Z\e(B \e$ARB\e(B \e$Aqb\e(B \e$A4s\e(B \e$A6!\e(B \e$A[L\e(B \e$Ala\e(B \e$AJ.\e(B \e$A4u\e(B \e$AXg\e(B \e$ACE\e(B \e$A=q\e(B \e$AX-\e(B \e$AE.\e(B \e$ARR\e(B \e$A`m\e(B \e$AP!\e(B \e$A3'\e(B \e$A3f\e(B \e$A_.\e(B \e$A27\e(B
\\<quail-translation-docstring>")
("chinese-tonepy" "\e$A5wF4\e(B"
"Pinyin base input method for Chinese charset GB2312 (`chinese-gb2312').
-Pinyin is the standared roman transliteration method for Chinese.
+Pinyin is the standard roman transliteration method for Chinese.
For the details of Pinyin system, see the documentation of the input
method `chinese-py'.
;; Return a value of the key in the current line.
(defsubst tit-read-key-value ()
- (if (looking-at "[^ \t\n]+")
+ (if (looking-at "[^ \t\r\n]+")
(car (read-from-string (concat "\"" (match-string 0) "\"")))))
;; Return an appropriate quail-package filename from FILENAME (TIT
dirname))
;; This value is nil if we are processing phrase dictionary.
-(defconst tit-dictionary t)
+(defvar tit-dictionary t)
(defvar tit-encode nil)
(defvar tit-default-encode "GB")
(tit-keyprompt nil))
(princ ";; Quail package `")
- (princ package) (princ "' -*- coding:iso-2022-7bit; -*-\n")
+ (princ package)
+ (princ (format "' -*- coding:%s; -*-\n" coding-system-for-write))
(princ ";; Generated by the command `titdic-convert'\n;;\tDate: ")
(princ (current-time-string))
(princ "\n;;\tOriginal TIT dictionary file: ")
(princ (buffer-substring pos (point)))
(princ "\n")
(forward-line 1)))
-
+
(princ "\n;;; End of the header of original TIT dictionary.\n\n")
(princ ";;; Code:\n\n(require 'quail)\n\n")
Optional argument DIRNAME if specified is the directory name under which
the generated Quail package is saved."
(interactive "FTIT dictionary file: ")
- (let ((coding-system-for-write 'iso-2022-7bit))
+ (let ((coding-system-for-write nil))
(with-temp-file (tit-make-quail-package-file-name filename dirname)
- (set-buffer-file-coding-system 'iso-2022-7bit)
(let ((standard-output (current-buffer)))
(with-temp-buffer
(set-buffer-multibyte nil)
(let ((coding-system-for-read 'no-conversion))
(insert-file-contents (expand-file-name filename)))
-
+
;; Decode the buffer contents from the encoding specified by a
;; value of the key "ENCODE:".
(if (not (search-forward "\nBEGIN" nil t))
(setq coding-system (nth 1 slot))
(message "Decoding with coding system %s..." coding-system)
(goto-char (point-min))
- (decode-coding-region (point-min) (point-max) coding-system))
+ (decode-coding-region (point-min) (point-max) coding-system)
+ (setq coding-system-for-write coding-system)
+ (remove-text-properties (point-min) (point-max) '(charset nil)))
(set-buffer-multibyte t)
;; Set point the starting position of the body part.
(tit-process-header filename)
(widen)
- ;; Process the body part.
+ ;; Process the body part
(tit-process-body))))))
;;;###autoload
;; Alist of input method names and the corresponding information.
;; Each element has this form:
;; (INPUT-METHOD-NAME ;; Name of the input method.
-;; INPUT-METHOD-TITLE ;; Title string of the input method
+;; INPUT-METHOD-TITLE ;; Title string of the input method
;; DICFILE ;; Name of the source dictionary file.
;; CODING ;; Coding system of the dictionary file.
;; QUAILFILE ;; Name of the Quail package file.
(defvar quail-misc-package-ext-info
'(("chinese-b5-tsangchi" "\e$(06A\e(BB"
- "cangjie-table.b5" big5 "tsang-b5.el"
+ "cangjie-table.b5" big5 "tsang-b5.el"
tsang-b5-converter
"\
;; # Copyright 2001 Christian Wittern <wittern@iis.sinica.edu.tw>
;; # this notice is preserved.")
("chinese-b5-quick" "\e$(0X|\e(BB"
- "cangjie-table.b5" big5 "quick-b5.el"
+ "cangjie-table.b5" big5 "quick-b5.el"
quick-b5-converter
"\
;; # Copyright 2001 Christian Wittern <wittern@iis.sinica.edu.tw>
;;
;;
;; Copyright (C) 1999, Rui He, herui@cs.duke.edu
-;;
-;;
+;;
+;;
;; CCE(Console Chinese Environment) 0.32
-;;
-;; CCE 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 1, or (at your option) any later version.
-;;
-;; CCE is distributed in the hope that it will be useful, but WITHOUT ANY
-;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-;; details.
-;;
+;;
+;; CCE 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 1, or (at your option) any later version.
+;;
+;; CCE is distributed in the hope that it will be useful, but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+;; details.
+;;
;; You should have received a copy of the GNU General Public License along with
-;; CCE; see the file COPYING. If not, write to the Free Software Foundation,
+;; CCE; see the file COPYING. If not, write to the Free Software Foundation,
;; 675 Mass Ave, Cambridge, MA 02139, USA.")
("chinese-ziranma" "\e$AWTH;\e(B"
;;
;;
;; Copyright (C) 1999, Rui He, herui@cs.duke.edu
-;;
-;;
+;;
+;;
;; CCE(Console Chinese Environment) 0.32
-;;
-;; CCE 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 1, or (at your option) any later version.
-;;
-;; CCE is distributed in the hope that it will be useful, but WITHOUT ANY
-;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-;; details.
-;;
+;;
+;; CCE 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 1, or (at your option) any later version.
+;;
+;; CCE is distributed in the hope that it will be useful, but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+;; details.
+;;
;; You should have received a copy of the GNU General Public License along with
-;; CCE; see the file COPYING. If not, write to the Free Software Foundation,
+;; CCE; see the file COPYING. If not, write to the Free Software Foundation,
;; 675 Mass Ave, Cambridge, MA 02139, USA.")
- ("chinese-b5-quick" "\e$(0X|\e(BB"
- "cangjie-table.b5" big5 "quick-b5.el"
- quick-b5-converter
- "\
-;; # Copyright 2001 Christian Wittern <wittern@iis.sinica.edu.tw>
-;; #
-;; # Permission to copy and distribute both modified and
-;; # unmodified versions is granted without royalty provided
-;; # this notice is preserved.")
-
("chinese-ctlau" "\e$AAuTA\e(B"
"CTLau.html" cn-gb-2312 "CTLau.el"
ctlau-gb-converter
;; It contains the following copyright notice:
;;
;; # Copyright (C) 1988-2001 Fung Fung Lee (lee@umunhum.stanford.edu)
-;; #
+;; #
;; # This program 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 2
;; # of the License, or any later version.
-;; #
+;; #
;; # This program is distributed in the hope that it will be useful,
;; # but WITHOUT ANY WARRANTY; without even the implied warranty of
;; # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; # GNU General Public License for more details.
-;; #
+;; #
;; # You should have received a copy of the GNU General Public License
;; # along with this program; if not, write to the Free Software Foundation,
;; # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.")
;; It contains the following copyright notice:
;;
;; # Copyright (C) 1988-2001 Fung Fung Lee (lee@umunhum.stanford.edu)
-;; #
+;; #
;; # This program 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 2
;; # of the License, or any later version.
-;; #
+;; #
;; # This program is distributed in the hope that it will be useful,
;; # but WITHOUT ANY WARRANTY; without even the implied warranty of
;; # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; # GNU General Public License for more details.
-;; #
+;; #
;; # You should have received a copy of the GNU General Public License
;; # along with this program; if not, write to the Free Software Foundation,
;; # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.")
[Q \e$(0'D\e(B] [W \e$(0(q\e(B] [E \e$(0'V\e(B] [R \e$(0&H\e(B] [T \e$(0'>\e(B] [Y \e$(0&4\e(B] [U \e$(0&U\e(B] [I \e$(0'B\e(B] [O \e$(0&*\e(B] [P \e$(0'A\e(B]
[A \e$(0'K\e(B] [S \e$(0&T\e(B] [D \e$(0'N\e(B] [F \e$(0'W\e(B] [G \e$(0&I\e(B] [H \e$(0*M\e(B] [J \e$(0&3\e(B] [L \e$(0&d\e(B]
-
+
[Z ] [X \e$(0[E\e(B] [C \e$(01[\e(B] [V \e$(0&M\e(B] [B \e$(0'M\e(B] [N \e$(0&_\e(B] [M \e$(0&"\e(B]
\\\\<quail-translation-docstring>\"\n"
[Q \e$(GEC\e(B] [W \e$(GFp\e(B] [E \e$(GEU\e(B] [R \e$(GDG\e(B] [T \e$(GE=\e(B] [Y \e$(GD3\e(B] [U \e$(GDT\e(B] [I \e$(GEA\e(B] [O \e$(GD)\e(B] [P \e$(GE@\e(B]
[A \e$(GEJ\e(B] [S \e$(GDS\e(B] [D \e$(GEM\e(B] [F \e$(GEV\e(B] [G \e$(GDH\e(B] [H \e$(GHL\e(B] [J \e$(GD2\e(B] [L \e$(GDc\e(B]
-
- [Z ] [X \e$(GyE\e(B] [C \e$(GOZ\e(B] [V \e$(GDL\e(B] [B \e$(GEL\e(B] [N \e$(GD^\e(B] [M \e$(GD!\e(B]
+
+ [Z ] [X \e$(GyE\e(B] [C \e$(GOZ\e(B] [V \e$(GDL\e(B] [B \e$(GEL\e(B] [N \e$(GD^\e(B] [M \e$(GD!\e(B]
\\\\<quail-translation-docstring>\"\n"
fulltitle fulltitle)))
(insert "(quail-define-rules\n")
(save-excursion
(set-buffer dicbuf)
+ ;; Handle double CR line ends, which result when checking out of
+ ;; CVS on MS-Windows.
+ (goto-char (point-min))
+ (while (re-search-forward "\r\r$" nil t)
+ (replace-match ""))
(goto-char (point-min))
(search-forward "A440")
(beginning-of-line)
Pinyin base input method for Chinese charset GB2312 (`chinese-gb2312').
-Pinyin is the standared roman transliteration method for Chinese.
+Pinyin is the standard roman transliteration method for Chinese.
Pinyin uses a sequence of Latin alphabetic characters for each Chinese
character. The sequence is made by the combination of the initials
\(the beginning sounds) and finals (the ending sounds).
the Cantonese romanization of the respective radical (\e$(0?f5}\e(B)."))
(defun miscdic-convert (filename &optional dirname)
- "Convert a dictionary file FILENAME into a Quail package.
+ "Convert a dictionary file FILENAME into a Quail package.
Optional argument DIRNAME if specified is the directory name under which
the generated Quail package is saved."
(interactive "FInput method dictionary file: ")
(or (file-readable-p filename)
(error "%s does not exist" filename))
(let ((tail quail-misc-package-ext-info)
- (default-buffer-file-coding-system 'iso-2022-7bit)
- (coding-system-for-write 'iso-2022-7bit)
+ coding-system-for-write
slot
name title dicfile coding quailfile converter copyright
dicbuf)
(while tail
- (when (or (string-match (nth 2 (car tail)) filename)
- ;; MS-DOS filesystem truncates file names to 8+3
- ;; limits, so "cangjie-table.cns" becomes
- ;; "cangjie-.cns", and the above string-match fails.
- ;; Give DOS users a chance...
- (and (fboundp 'msdos-long-file-names)
- (not (msdos-long-file-names))
- (string-match (dos-8+3-filename (nth 2 (car tail)))
- filename)))
- (setq slot (car tail)
- name (car slot)
+ (setq slot (car tail)
+ dicfile (nth 2 slot)
+ quailfile (nth 4 slot))
+ (when (and (or (string-match dicfile filename)
+ ;; MS-DOS filesystem truncates file names to 8+3
+ ;; limits, so "cangjie-table.cns" becomes
+ ;; "cangjie-.cns", and the above string-match
+ ;; fails. Give DOS users a chance...
+ (and (fboundp 'msdos-long-file-names)
+ (not (msdos-long-file-names))
+ (string-match (dos-8+3-filename dicfile) filename)))
+ (if (file-newer-than-file-p
+ filename (expand-file-name quailfile dirname))
+ t
+ (message "%s is up to date" quailfile)
+ nil))
+ (setq name (car slot)
title (nth 1 slot)
- dicfile (nth 2 slot)
coding (nth 3 slot)
- quailfile (nth 4 slot)
converter (nth 5 slot)
copyright (nth 6 slot))
(message "Converting %s to %s..." dicfile quailfile)
+ (setq coding-system-for-write coding)
(with-temp-file (expand-file-name quailfile dirname)
- (set-buffer-file-coding-system 'iso-2022-7bit)
- (insert ";; Quail package `" name "' -*- coding:iso-2022-7bit; -*-\n")
+ (insert (format ";; Quail package `%s' -*- coding:%s; -*-\n"
+ name coding))
(insert ";; Generated by the command `miscdic-convert'\n")
(insert ";; Date: " (current-time-string) "\n")
(insert ";; Source dictionary file: " dicfile "\n")
(insert ";;; Code:\n\n")
(insert "(require 'quail)\n")
(insert "(quail-define-package \"" name "\" \""
- (if (eq coding 'big5) "Chinese-BIG5" "Chinese-CNS")
+ (if (eq coding 'big5) "Chinese-BIG5"
+ (if (eq coding 'iso-2022-cn-ext) "Chinese-CNS"
+ "Chinese-GB"))
"\" \"" title "\" t\n")
(let* ((coding-system-for-read coding)
(dicbuf (find-file-noselect filename)))
(if (string= (car command-line-args-left) "-dir")
(progn
(setq command-line-args-left (cdr command-line-args-left))
- (setq dir (car command-line-args-left))))
+ (setq dir (car command-line-args-left))
+ (setq command-line-args-left (cdr command-line-args-left))))
(setq filename (car command-line-args-left)
command-line-args-left (cdr command-line-args-left))
(if (file-directory-p filename)
(dolist (file (directory-files filename t nil t))
- (miscdic-convert file dir))
+ (or (file-directory-p file)
+ (miscdic-convert file dir)))
(miscdic-convert filename dir))))
(kill-emacs 0))
;; coding: iso-2022-7bit
;; End:
+;;; arch-tag: 8ad478b2-a985-4da2-b47f-d8ee5d7c24a3
;;; titdic-cnv.el ends here