emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master e0150de 2/5: Preparatory refactoring in unidata-gen


From: Glenn Morris
Subject: [Emacs-diffs] master e0150de 2/5: Preparatory refactoring in unidata-gen.el
Date: Tue, 25 Apr 2017 02:07:04 -0400 (EDT)

branch: master
commit e0150de010af2d9770380217f90bdc09592c968e
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Preparatory refactoring in unidata-gen.el
    
    * admin/unidata/unidata-gen.el (unidata-gen-file):
    New function, split from unidata-gen-files.
    (unidata-gen-files): Use unidata-gen-file.
---
 admin/unidata/unidata-gen.el | 81 ++++++++++++++++++++++++--------------------
 1 file changed, 44 insertions(+), 37 deletions(-)

diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index 42489b1..68eae5d 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -1388,6 +1388,44 @@ Property value is a symbol `o' (Open), `c' (Close), or 
`n' (None)."
                                  char val1 char val2)))
              (sit-for 0))))))))
 
+;; Must call from unidata-gen-files.
+(defun unidata-gen-file (file)
+  "Generate lisp file FILE from Unicode data."
+  (let* ((basename (file-name-nondirectory file))
+        (elt (assoc basename unidata-file-alist)))
+    (or elt (user-error "Unknown output file: %s" basename))
+    (or noninteractive (message "Generating %s..." file))
+    (with-temp-file file
+      (insert ";; Copyright (C) 1991-2014 Unicode, Inc.
+;; This file was generated from the Unicode data files at
+;; http://www.unicode.org/Public/UNIDATA/.
+;; See lisp/international/README for the copyright and permission notice.\n")
+      (dolist (proplist (cdr elt))
+       (let ((prop (unidata-prop-prop proplist))
+             (index (unidata-prop-index proplist))
+             (generator (unidata-prop-generator proplist))
+             (docstring (unidata-prop-docstring proplist))
+             (describer (unidata-prop-describer proplist))
+             (default-value (unidata-prop-default proplist))
+             (val-list (unidata-prop-val-list proplist))
+             table)
+         (setq table (funcall generator prop index default-value val-list))
+         (when describer
+           (unless (subrp (symbol-function describer))
+             (unidata--ensure-compiled describer)
+             (setq describer (symbol-function describer)))
+           (set-char-table-extra-slot table 3 describer))
+         (insert (format "(define-char-code-property '%S\n  %S\n  %S)\n"
+                         prop table docstring))))
+      (insert ";; Local Variables:\n"
+             ";; coding: utf-8\n"
+             ";; version-control: never\n"
+             ";; no-byte-compile: t\n"
+             ";; no-update-autoloads: t\n"
+             ";; End:\n\n"
+             (format ";; %s ends here\n" basename)))
+    (or noninteractive (message "Generating %s...done" file))))
+
 ;; The entry function.  It generates files described in the header
 ;; comment of this file.
 
@@ -1409,45 +1447,14 @@ Property value is a symbol `o' (Open), `c' (Close), or 
`n' (None)."
       (insert ";; Automatically generated by unidata-gen.el.\n")
       (dolist (elt unidata-file-alist)
        (let* ((file (expand-file-name (car elt) dest-dir))
-              (basename (file-name-nondirectory file))
-              (cbuff (current-buffer)))
-         (or noninteractive (message "Generating %s..." file))
+              (basename (file-name-nondirectory file)))
+         (unidata-gen-file file)
          ;; Filename in this comment line is extracted by sed in Makefile.
          (insert (format ";; FILE: %s\n" basename))
-         (with-temp-buffer
-           (insert ";; Copyright (C) 1991-2014 Unicode, Inc.
-;; This file was generated from the Unicode data files at
-;; http://www.unicode.org/Public/UNIDATA/.
-;; See lisp/international/README for the copyright and permission notice.\n")
-           (dolist (proplist (cdr elt))
-             (let ((prop (unidata-prop-prop proplist))
-                   (index (unidata-prop-index proplist))
-                   (generator (unidata-prop-generator proplist))
-                   (docstring (unidata-prop-docstring proplist))
-                   (describer (unidata-prop-describer proplist))
-                   (default-value (unidata-prop-default proplist))
-                   (val-list (unidata-prop-val-list proplist))
-                   table)
-               (with-current-buffer cbuff
-                 (insert (format "(define-char-code-property '%S %S\n  %S)\n"
-                                 prop basename docstring)))
-               (setq table (funcall generator prop index default-value 
val-list))
-               (when describer
-                 (unless (subrp (symbol-function describer))
-                   (unidata--ensure-compiled describer)
-                   (setq describer (symbol-function describer)))
-                 (set-char-table-extra-slot table 3 describer))
-               (insert (format "(define-char-code-property '%S\n  %S\n  %S)\n"
-                               prop table docstring))))
-           (insert ";; Local Variables:\n"
-                   ";; coding: utf-8\n"
-                   ";; version-control: never\n"
-                   ";; no-byte-compile: t\n"
-                   ";; no-update-autoloads: t\n"
-                   ";; End:\n\n"
-                   (format ";; %s ends here\n" basename))
-           (write-file file nil))
-         (or noninteractive (message "Generating %s...done" file))))
+         (dolist (proplist (cdr elt))
+           (insert (format "(define-char-code-property '%S %S\n  %S)\n"
+                           (unidata-prop-prop proplist) basename
+                           (unidata-prop-docstring proplist))))))
       (message "Writing %s..." charprop-file)
       (insert ";; Local Variables:\n"
              ";; coding: utf-8\n"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]