comparison lisp/international/quail.el @ 19200:74ec766c0ada

(quail-update-leim-list-file): Use insert-file-contents instead of find-file-noselect and in the process avoid the RAWFILE feature.
author Richard M. Stallman <rms@gnu.org>
date Thu, 07 Aug 1997 02:49:18 +0000
parents 842869692447
children 70e5d1211d98
comparison
equal deleted inserted replaced
19199:da8774e1207b 19200:74ec766c0ada
1707 This is a sub-directory of LEIM directory.") 1707 This is a sub-directory of LEIM directory.")
1708 1708
1709 ;;;###autoload 1709 ;;;###autoload
1710 (defun quail-update-leim-list-file (dirname) 1710 (defun quail-update-leim-list-file (dirname)
1711 "Update entries for Quail packages in LEIM list file of directory DIRNAME. 1711 "Update entries for Quail packages in LEIM list file of directory DIRNAME.
1712 LEIM is a library of Emacs input method." 1712 LEIM is a directory containing Emacs input methods;
1713 normally, it should specify the `leim' subdirectory
1714 of the Emacs source tree."
1713 (interactive "FDirectory of LEIM: ") 1715 (interactive "FDirectory of LEIM: ")
1714 (setq dirname (file-name-as-directory (expand-file-name dirname))) 1716 (setq dirname (file-name-as-directory (expand-file-name dirname)))
1715 (let ((quail-dir (concat dirname quail-directory-name)) 1717 (let ((quail-dir (concat dirname quail-directory-name))
1716 (filename (concat dirname leim-list-file-name)) 1718 (filename (concat dirname leim-list-file-name))
1717 list-buf pkg-list pkg-buf pos) 1719 list-buf pkg-list pkg-buf pos)
1754 (delete-region pos (point)))))))) 1756 (delete-region pos (point))))))))
1755 1757
1756 ;; Insert entries for Quail. 1758 ;; Insert entries for Quail.
1757 (while pkg-list 1759 (while pkg-list
1758 (message "Checking %s ..." (car pkg-list)) 1760 (message "Checking %s ..." (car pkg-list))
1759 (setq pkg-buf (find-file-noselect (car pkg-list) t t)) 1761 (with-temp-buffer
1760 (save-excursion 1762 (insert-file-contents (car pkg-list))
1761 (set-buffer pkg-buf)
1762 (goto-char (point-min)) 1763 (goto-char (point-min))
1763 (while (search-forward "(quail-define-package" nil t) 1764 (while (search-forward "(quail-define-package" nil t)
1764 (goto-char (match-beginning 0)) 1765 (goto-char (match-beginning 0))
1765 (let ((form (read (current-buffer)))) 1766 (let ((form (read (current-buffer))))
1766 (save-excursion 1767 (save-excursion
1767 (set-buffer list-buf) 1768 (set-buffer list-buf)
1768 (insert (format "(register-input-method 1769 (insert (format "(register-input-method
1769 %S %S '%s 1770 %S %S '%s
1770 %S %S 1771 %S %S
1771 %S)\n" (nth 1 form) ; PACKAGE-NAME 1772 %S)\n"
1772 (nth 2 form) ; LANGUAGE 1773 (nth 1 form) ; PACKAGE-NAME
1773 'quail-use-package ; ACTIVATE-FUNC 1774 (nth 2 form) ; LANGUAGE
1774 (nth 3 form) ; PACKAGE-TITLE 1775 'quail-use-package ; ACTIVATE-FUNC
1775 (progn ; PACKAGE-DESCRIPTION (one line) 1776 (nth 3 form) ; PACKAGE-TITLE
1776 (string-match ".*" (nth 5 form)) 1777 (progn ; PACKAGE-DESCRIPTION (one line)
1777 (match-string 0 (nth 5 form))) 1778 (string-match ".*" (nth 5 form))
1778 (file-relative-name ; PACKAGE-FILENAME 1779 (match-string 0 (nth 5 form)))
1779 (file-name-sans-extension (car pkg-list)) dirname) 1780 (file-relative-name ; PACKAGE-FILENAME
1780 )))))) 1781 (file-name-sans-extension (car pkg-list))
1781 (kill-buffer pkg-buf) 1782 dirname)))))))
1782 (setq pkg-list (cdr pkg-list))) 1783 (setq pkg-list (cdr pkg-list)))
1783 (save-excursion 1784 (save-excursion
1784 (set-buffer list-buf) 1785 (set-buffer list-buf)
1785 (setq buffer-file-coding-system 'iso-2022-7bit) 1786 (setq buffer-file-coding-system 'iso-2022-7bit)
1786 (save-buffer 0)) 1787 (save-buffer 0))