]> code.delx.au - gnu-emacs/blobdiff - lisp/nxml/nxml-uchnm.el
Merge from origin/emacs-24
[gnu-emacs] / lisp / nxml / nxml-uchnm.el
index 892a81e04acc58bd9bab1faa280fd2965d1f0be8..1d92ab38791ff06cb02f5fa4656d50068cb6d0bb 100644 (file)
@@ -1,16 +1,16 @@
 ;;; nxml-uchnm.el --- support for Unicode standard cha names in nxml-mode
 
-;; Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2015 Free Software Foundation, Inc.
 
 ;; Author: James Clark
-;; Keywords: XML
+;; Keywords: wp, hypermedia, languages, XML
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs 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 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,9 +18,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -28,9 +26,6 @@
 ;; Standard.  The use of the names can be controlled on a per-block
 ;; basis, so as both to reduce memory usage and loading time,
 ;; and to make completion work better.
-;; The main entry point is `nxml-enable-unicode-char-name-sets'.  Typically,
-;; this is added to `nxml-mode-hook' (rng-auto.el does this already).
-;; To customize the blocks for which names are used
 
 ;;; Code:
 
     )
   "List of Unicode blocks.
 For each block there is a list (NAME FIRST LAST), where
-NAME is a string giving the offical name of the block,
+NAME is a string giving the official name of the block,
 FIRST is the first code-point and LAST is the last code-point.
 Blocks containing only characters with algorithmic names or no names
 are omitted.")
 
 (defun nxml-unicode-block-char-name-set (name)
-  "Return a symbol for a block whose offical Unicode name is NAME.
+  "Return a symbol for a block whose official Unicode name is NAME.
 The symbol is generated by downcasing and replacing each space
 by a hyphen."
   (intern (replace-regexp-in-string " " "-" (downcase name))))
@@ -203,19 +198,19 @@ by a hyphen."
     mathematical-alphanumeric-symbols)
   "Default value for `nxml-enabled-unicode-blocks'.")
 
-(let ((dir (file-name-directory load-file-name)))
-  (mapc (lambda (block)
-          (let ((sym (nxml-unicode-block-char-name-set (car block))))
-            (nxml-autoload-char-name-set
-             sym
-             (expand-file-name
-              (format "char-name/unicode/%05X-%05X"
-                      (nth 1 block)
-                      (nth 2 block))
-              dir))))
-        nxml-unicode-blocks))
+(mapc (lambda (block)
+        (nxml-autoload-char-name-set
+         (nxml-unicode-block-char-name-set (car block))
+         (expand-file-name
+          (format "nxml/%05X-%05X"
+                  (nth 1 block)
+                  (nth 2 block))
+          data-directory)))
+      nxml-unicode-blocks)
 
-(defvar nxml-enable-unicode-char-name-sets-flag nil)
+;; Internal flag to control whether customize reloads the character tables.
+;; Should be set the first time the
+(defvar nxml-internal-unicode-char-name-sets-enabled nil)
 
 (defcustom nxml-enabled-unicode-blocks nxml-enabled-unicode-blocks-default
   "List of Unicode blocks for which Unicode character names are enabled.
@@ -224,8 +219,8 @@ of the block by downcasing and replacing each space by a hyphen."
   :group 'nxml
   :set (lambda (sym value)
         (set-default 'nxml-enabled-unicode-blocks value)
-        (when nxml-enable-unicode-char-name-sets-flag
-          (nxml-enable-unicode-char-name-sets-1)))
+        (when nxml-internal-unicode-char-name-sets-enabled
+          (nxml-enable-unicode-char-name-sets)))
   :type (cons 'set
              (mapcar (lambda (block)
                        `(const :tag ,(format "%s (%04X-%04X)"
@@ -242,11 +237,7 @@ of the block by downcasing and replacing each space by a hyphen."
 The Unicode blocks for which names are enabled is controlled by
 the variable `nxml-enabled-unicode-blocks'."
   (interactive)
-  (setq nxml-char-name-ignore-case t)
-  (setq nxml-enable-unicode-char-name-sets-flag t)
-  (nxml-enable-unicode-char-name-sets-1))
-
-(defun nxml-enable-unicode-char-name-sets-1 ()
+  (setq nxml-internal-unicode-char-name-sets-enabled t)
   (mapc (lambda (block)
           (nxml-disable-char-name-set
            (nxml-unicode-block-char-name-set (car block))))
@@ -257,5 +248,4 @@ the variable `nxml-enabled-unicode-blocks'."
 
 (provide 'nxml-uchnm)
 
-;; arch-tag: 440248c3-b604-467c-8b50-e83662c659a3
 ;;; nxml-uchnm.el ends here