;;; 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
;; 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:
;; 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))))
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.
: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)"
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))))
(provide 'nxml-uchnm)
-;; arch-tag: 440248c3-b604-467c-8b50-e83662c659a3
;;; nxml-uchnm.el ends here