1 ;;; update-cdb.el --- Update and/or setup character attribute database
3 ;; Copyright (C) 2002 MORIOKA Tomohiko.
5 ;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
6 ;; Keywords: Character, Database, UTF-2000, Unicode, UCS-4, MULE.
8 ;; This file is part of XEmacs UTF-2000.
10 ;; XEmacs UTF-2000 is free software; you can redistribute it and/or
11 ;; modify it under the terms of the GNU General Public License as
12 ;; published by the Free Software Foundation; either version 2, or (at
13 ;; your option) any later version.
15 ;; XEmacs UTF-2000 is distributed in the hope that it will be useful,
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 ;; General Public License for more details.
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with XEmacs UTF-2000; see the file COPYING. If not, write to
22 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 ;; Boston, MA 02111-1307, USA.
27 (defun delete-file-with-children (filename)
28 (if (file-directory-p filename)
30 (directory-files filename 'full "^[^.]" 'so-sort)))
33 (delete-file-with-children file)))
34 (remove-directory filename))
35 (delete-file filename)))
39 (defvar system-char-database-directory
40 (expand-file-name "char-db"
44 (defun file-name-char-attribute-name (filename)
47 (len (length filename))
50 (if (eq (setq chr (aref filename i)) ?%)
51 (setq dest (concat dest
52 (substring filename base i)
56 (substring filename (1+ i) (+ i 3)) 16))))
60 (concat dest (substring filename base len))))
63 ((or load-ignore-elc-files
64 (not (file-exists-p system-char-database-directory)))
65 (if (file-exists-p system-char-database-directory)
66 (delete-file-with-children system-char-database-directory))
68 (load "dumped-chars.el")
69 (dolist (file system-char-db-source-file-list)
72 (dolist (attribute (char-attribute-list))
73 (save-char-attribute-table attribute))
75 (dolist (ccs (charset-list))
76 (save-charset-mapping-table ccs))
79 (mapcar (lambda (file)
80 (mount-char-attribute-table
81 (intern (file-name-char-attribute-name file))))
83 (expand-file-name "system-char-id"
84 system-char-database-directory)
88 (load "dumped-chars.el")
89 (dolist (file system-char-db-source-file-list)
95 ;;; update-cdb.el ends here