diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-01 01:10:47 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-01 01:10:47 -0800 |
commit | bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9 (patch) | |
tree | dc5dde303bce1fbe4f04300c3691cc1ee5874f43 /lisp/nxml | |
parent | 772ca5db3eccdc0439d7bd18f98b7fdd38eb6397 (diff) | |
parent | 2e2a8068031b79a6cc5502b8d4c9d849ebb1dae0 (diff) | |
download | emacs-bcf244ef9be0fe61f4b9a48d3412b2c8a9f1edb9.tar.gz |
Merge from origin/emacs-25
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
Diffstat (limited to 'lisp/nxml')
-rw-r--r-- | lisp/nxml/nxml-enc.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-glyph.el | 423 | ||||
-rw-r--r-- | lisp/nxml/nxml-maint.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-mode.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-ns.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-outln.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-parse.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-rap.el | 2 | ||||
-rw-r--r-- | lisp/nxml/nxml-uchnm.el | 251 | ||||
-rw-r--r-- | lisp/nxml/nxml-util.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-cmpct.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-dt.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-loc.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-maint.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-match.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-nxml.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-parse.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-pttrn.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-uri.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-util.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-valid.el | 2 | ||||
-rw-r--r-- | lisp/nxml/rng-xsd.el | 2 | ||||
-rw-r--r-- | lisp/nxml/xmltok.el | 2 | ||||
-rw-r--r-- | lisp/nxml/xsd-regexp.el | 2 |
24 files changed, 696 insertions, 22 deletions
diff --git a/lisp/nxml/nxml-enc.el b/lisp/nxml/nxml-enc.el index 6406f57ff63..b359076ef4d 100644 --- a/lisp/nxml/nxml-enc.el +++ b/lisp/nxml/nxml-enc.el @@ -1,6 +1,6 @@ ;;; nxml-enc.el --- XML encoding auto-detection -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-glyph.el b/lisp/nxml/nxml-glyph.el new file mode 100644 index 00000000000..a0e9b6f3557 --- /dev/null +++ b/lisp/nxml/nxml-glyph.el @@ -0,0 +1,423 @@ +;;; nxml-glyph.el --- glyph-handling for nxml-mode + +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. + +;; Author: James Clark +;; Keywords: wp, hypermedia, languages, XML + +;; This file is part of GNU Emacs. + +;; 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 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 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; The entry point to this file is `nxml-glyph-display-string'. +;; The current implementation is heuristic due to a lack of +;; Emacs primitives necessary to implement it properly. The user +;; can tweak the heuristics using `nxml-glyph-set-functions'. + +;;; Code: + +(defconst nxml-ascii-glyph-set + [(#x0020 . #x007E)]) + +(defconst nxml-latin1-glyph-set + [(#x0020 . #x007E) + (#x00A0 . #x00FF)]) + +;; These were generated by using nxml-insert-target-repertoire-glyph-set +;; on the TARGET[123] files in +;; http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz + +(defconst nxml-misc-fixed-1-glyph-set + [(#x0020 . #x007E) + (#x00A0 . #x00FF) + (#x0100 . #x017F) + #x018F #x0192 + (#x0218 . #x021B) + #x0259 + (#x02C6 . #x02C7) + (#x02D8 . #x02DD) + (#x0374 . #x0375) + #x037A #x037E + (#x0384 . #x038A) + #x038C + (#x038E . #x03A1) + (#x03A3 . #x03CE) + (#x0401 . #x040C) + (#x040E . #x044F) + (#x0451 . #x045C) + (#x045E . #x045F) + (#x0490 . #x0491) + (#x05D0 . #x05EA) + (#x1E02 . #x1E03) + (#x1E0A . #x1E0B) + (#x1E1E . #x1E1F) + (#x1E40 . #x1E41) + (#x1E56 . #x1E57) + (#x1E60 . #x1E61) + (#x1E6A . #x1E6B) + (#x1E80 . #x1E85) + (#x1EF2 . #x1EF3) + (#x2010 . #x2022) + #x2026 #x2030 + (#x2039 . #x203A) + #x20AC #x2116 #x2122 #x2126 + (#x215B . #x215E) + (#x2190 . #x2193) + #x2260 + (#x2264 . #x2265) + (#x23BA . #x23BD) + (#x2409 . #x240D) + #x2424 #x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524 #x252C #x2534 #x253C #x2592 #x25C6 #x266A #xFFFD] + "Glyph set for TARGET1 glyph repertoire of misc-fixed-* font. +This repertoire is supported for the bold and oblique fonts.") + +(defconst nxml-misc-fixed-2-glyph-set + [(#x0020 . #x007E) + (#x00A0 . #x00FF) + (#x0100 . #x017F) + #x018F #x0192 + (#x01FA . #x01FF) + (#x0218 . #x021B) + #x0259 + (#x02C6 . #x02C7) + #x02C9 + (#x02D8 . #x02DD) + (#x0300 . #x0311) + (#x0374 . #x0375) + #x037A #x037E + (#x0384 . #x038A) + #x038C + (#x038E . #x03A1) + (#x03A3 . #x03CE) + #x03D1 + (#x03D5 . #x03D6) + #x03F1 + (#x0401 . #x040C) + (#x040E . #x044F) + (#x0451 . #x045C) + (#x045E . #x045F) + (#x0490 . #x0491) + (#x05D0 . #x05EA) + (#x1E02 . #x1E03) + (#x1E0A . #x1E0B) + (#x1E1E . #x1E1F) + (#x1E40 . #x1E41) + (#x1E56 . #x1E57) + (#x1E60 . #x1E61) + (#x1E6A . #x1E6B) + (#x1E80 . #x1E85) + (#x1EF2 . #x1EF3) + (#x2010 . #x2022) + #x2026 #x2030 + (#x2032 . #x2034) + (#x2039 . #x203A) + #x203C #x203E #x2044 + (#x2070 . #x2071) + (#x2074 . #x208E) + (#x20A3 . #x20A4) + #x20A7 #x20AC + (#x20D0 . #x20D7) + #x2102 #x2105 #x2113 + (#x2115 . #x2116) + #x211A #x211D #x2122 #x2124 #x2126 #x212E + (#x215B . #x215E) + (#x2190 . #x2195) + (#x21A4 . #x21A8) + (#x21D0 . #x21D5) + (#x2200 . #x2209) + (#x220B . #x220C) + #x220F + (#x2211 . #x2213) + #x2215 + (#x2218 . #x221A) + (#x221D . #x221F) + #x2221 + (#x2224 . #x222B) + #x222E #x223C #x2243 #x2245 + (#x2248 . #x2249) + #x2259 + (#x225F . #x2262) + (#x2264 . #x2265) + (#x226A . #x226B) + (#x2282 . #x228B) + #x2295 #x2297 + (#x22A4 . #x22A7) + (#x22C2 . #x22C3) + #x22C5 #x2300 #x2302 + (#x2308 . #x230B) + #x2310 + (#x2320 . #x2321) + (#x2329 . #x232A) + (#x23BA . #x23BD) + (#x2409 . #x240D) + #x2424 #x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524 #x252C #x2534 #x253C + (#x254C . #x2573) + (#x2580 . #x25A1) + (#x25AA . #x25AC) + (#x25B2 . #x25B3) + #x25BA #x25BC #x25C4 #x25C6 + (#x25CA . #x25CB) + #x25CF + (#x25D8 . #x25D9) + #x25E6 + (#x263A . #x263C) + #x2640 #x2642 #x2660 #x2663 + (#x2665 . #x2666) + (#x266A . #x266B) + (#xFB01 . #xFB02) + #xFFFD] + "Glyph set for TARGET2 glyph repertoire of the misc-fixed-* fonts. +This repertoire is supported for the following fonts: +5x7.bdf 5x8.bdf 6x9.bdf 6x10.bdf 6x12.bdf 7x13.bdf 7x14.bdf clR6x12.bdf") + +(defconst nxml-misc-fixed-3-glyph-set + [(#x0020 . #x007E) + (#x00A0 . #x00FF) + (#x0100 . #x01FF) + (#x0200 . #x0220) + (#x0222 . #x0233) + (#x0250 . #x02AD) + (#x02B0 . #x02EE) + (#x0300 . #x034F) + (#x0360 . #x036F) + (#x0374 . #x0375) + #x037A #x037E + (#x0384 . #x038A) + #x038C + (#x038E . #x03A1) + (#x03A3 . #x03CE) + (#x03D0 . #x03F6) + (#x0400 . #x0486) + (#x0488 . #x04CE) + (#x04D0 . #x04F5) + (#x04F8 . #x04F9) + (#x0500 . #x050F) + (#x0531 . #x0556) + (#x0559 . #x055F) + (#x0561 . #x0587) + (#x0589 . #x058A) + (#x05B0 . #x05B9) + (#x05BB . #x05C4) + (#x05D0 . #x05EA) + (#x05F0 . #x05F4) + (#x10D0 . #x10F8) + #x10FB + (#x1E00 . #x1E9B) + (#x1EA0 . #x1EF9) + (#x1F00 . #x1F15) + (#x1F18 . #x1F1D) + (#x1F20 . #x1F45) + (#x1F48 . #x1F4D) + (#x1F50 . #x1F57) + #x1F59 #x1F5B #x1F5D + (#x1F5F . #x1F7D) + (#x1F80 . #x1FB4) + (#x1FB6 . #x1FC4) + (#x1FC6 . #x1FD3) + (#x1FD6 . #x1FDB) + (#x1FDD . #x1FEF) + (#x1FF2 . #x1FF4) + (#x1FF6 . #x1FFE) + (#x2000 . #x200A) + (#x2010 . #x2027) + (#x202F . #x2052) + #x2057 + (#x205F . #x2063) + (#x2070 . #x2071) + (#x2074 . #x208E) + (#x20A0 . #x20B1) + (#x20D0 . #x20EA) + (#x2100 . #x213A) + (#x213D . #x214B) + (#x2153 . #x2183) + (#x2190 . #x21FF) + (#x2200 . #x22FF) + (#x2300 . #x23CE) + (#x2400 . #x2426) + (#x2440 . #x244A) + (#x2500 . #x25FF) + (#x2600 . #x2613) + (#x2616 . #x2617) + (#x2619 . #x267D) + (#x2680 . #x2689) + (#x27E6 . #x27EB) + (#x27F5 . #x27FF) + (#x2A00 . #x2A06) + #x2A1D #x2A3F #x303F + (#xFB00 . #xFB06) + (#xFB13 . #xFB17) + (#xFB1D . #xFB36) + (#xFB38 . #xFB3C) + #xFB3E + (#xFB40 . #xFB41) + (#xFB43 . #xFB44) + (#xFB46 . #xFB4F) + (#xFE20 . #xFE23) + (#xFF61 . #xFF9F) + #xFFFD] + "Glyph set for TARGET3 glyph repertoire of the misc-fixed-* fonts. +This repertoire is supported for the following fonts: +6x13.bdf 8x13.bdf 9x15.bdf 9x18.bdf 10x20.bdf") + +(defconst nxml-wgl4-glyph-set + [(#x0020 . #x007E) + (#x00A0 . #x017F) + #x0192 + (#x01FA . #x01FF) + (#x02C6 . #x02C7) + #x02C9 + (#x02D8 . #x02DB) + #x02DD + (#x0384 . #x038A) + #x038C + (#x038E . #x03A1) + (#x03A3 . #x03CE) + (#x0401 . #x040C) + (#x040E . #x044F) + (#x0451 . #x045C) + (#x045E . #x045F) + (#x0490 . #x0491) + (#x1E80 . #x1E85) + (#x1EF2 . #x1EF3) + (#x2013 . #x2015) + (#x2017 . #x201E) + (#x2020 . #x2022) + #x2026 #x2030 + (#x2032 . #x2033) + (#x2039 . #x203A) + #x203C #x203E #x2044 #x207F + (#x20A3 . #x20A4) + #x20A7 #x20AC #x2105 #x2113 #x2116 #x2122 #x2126 #x212E + (#x215B . #x215E) + (#x2190 . #x2195) + #x21A8 #x2202 #x2206 #x220F + (#x2211 . #x2212) + #x2215 + (#x2219 . #x221A) + (#x221E . #x221F) + #x2229 #x222B #x2248 + (#x2260 . #x2261) + (#x2264 . #x2265) + #x2302 #x2310 + (#x2320 . #x2321) + #x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524 + #x252C #x2534 #x253C + (#x2550 . #x256C) + #x2580 #x2584 #x2588 #x258C + (#x2590 . #x2593) + (#x25A0 . #x25A1) + (#x25AA . #x25AC) + #x25B2 #x25BA #x25BC #x25C4 + (#x25CA . #x25CB) + #x25CF + (#x25D8 . #x25D9) + #x25E6 + (#x263A . #x263C) + #x2640 #x2642 #x2660 #x2663 + (#x2665 . #x2666) + (#x266A . #x266B) + (#xFB01 . #xFB02)] + "Glyph set corresponding to Windows Glyph List 4.") + +(defvar nxml-glyph-set-functions nil + "Abnormal hook for determining the set of glyphs in a face. +Each function in this hook is called in turn, unless one of them +returns non-nil. Each function is called with a single argument +FACE. If it can determine the set of glyphs representable by +FACE, it must set the variable `nxml-glyph-set' and return +non-nil. Otherwise, it must return nil. + +The constants `nxml-ascii-glyph-set', `nxml-latin1-glyph-set', +`nxml-misc-fixed-1-glyph-set', `nxml-misc-fixed-2-glyph-set', +`nxml-misc-fixed-3-glyph-set' and `nxml-wgl4-glyph-set' are +predefined for use by `nxml-glyph-set-functions'.") + +(define-obsolete-variable-alias 'nxml-glyph-set-hook + 'nxml-glyph-set-functions "24.3") + +(defvar nxml-glyph-set nil + "Used by `nxml-glyph-set-functions' to return set of glyphs in a FACE. +This should dynamically bound by any function that runs +`nxml-glyph-set-functions'. The value must be either nil representing an +empty set or a vector. Each member of the vector is either a single +integer or a cons (FIRST . LAST) representing the range of integers +from FIRST to LAST. An integer represents a glyph with that Unicode +code-point. The vector must be ordered.") + +(defun nxml-x-set-glyph-set (face) + (setq nxml-glyph-set + (if (equal (face-attribute face :family) "misc-fixed") + nxml-misc-fixed-3-glyph-set + nxml-wgl4-glyph-set))) + +(defun nxml-w32-set-glyph-set (face) + (setq nxml-glyph-set nxml-wgl4-glyph-set)) + +(defun nxml-window-system-set-glyph-set (face) + (setq nxml-glyph-set nxml-latin1-glyph-set)) + +(defun nxml-terminal-set-glyph-set (face) + (setq nxml-glyph-set nxml-ascii-glyph-set)) + +(add-hook 'nxml-glyph-set-functions + (or (cdr (assq window-system + '((x . nxml-x-set-glyph-set) + (w32 . nxml-w32-set-glyph-set) + (nil . nxml-terminal-set-glyph-set)))) + 'nxml-window-system-set-glyph-set) + t) + +;;;###autoload +(defun nxml-glyph-display-string (n face) + "Return a string that can display a glyph for Unicode code-point N. +FACE gives the face that will be used for displaying the string. +Return nil if the face cannot display a glyph for N." + (let ((nxml-glyph-set nil)) + (run-hook-with-args-until-success 'nxml-glyph-set-functions face) + (and nxml-glyph-set + (nxml-glyph-set-contains-p n nxml-glyph-set) + (let ((ch (decode-char 'ucs n))) + (and ch (string ch)))))) + +(defun nxml-glyph-set-contains-p (n v) + (let ((start 0) + (end (length v)) + found mid mid-val mid-start-val mid-end-val) + (while (> end start) + (setq mid (+ start + (/ (- end start) 2))) + (setq mid-val (aref v mid)) + (if (consp mid-val) + (setq mid-start-val (car mid-val) + mid-end-val (cdr mid-val)) + (setq mid-start-val mid-val + mid-end-val mid-val)) + (cond ((and (<= mid-start-val n) + (<= n mid-end-val)) + (setq found t) + (setq start end)) + ((< n mid-start-val) + (setq end mid)) + (t + (setq start + (if (eq start mid) + end + mid))))) + found)) + +(provide 'nxml-glyph) + +;;; nxml-glyph.el ends here diff --git a/lisp/nxml/nxml-maint.el b/lisp/nxml/nxml-maint.el index 5d24d9b3138..55abca18e05 100644 --- a/lisp/nxml/nxml-maint.el +++ b/lisp/nxml/nxml-maint.el @@ -1,6 +1,6 @@ ;;; nxml-maint.el --- commands for maintainers of nxml-*.el -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index 8c249d54073..7f9ece7914a 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el @@ -1,6 +1,6 @@ ;;; nxml-mode.el --- a new XML mode -*- lexical-binding:t -*- -;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-ns.el b/lisp/nxml/nxml-ns.el index 81506a4642a..a9388d98824 100644 --- a/lisp/nxml/nxml-ns.el +++ b/lisp/nxml/nxml-ns.el @@ -1,6 +1,6 @@ ;;; nxml-ns.el --- XML namespace processing -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-outln.el b/lisp/nxml/nxml-outln.el index 289816a1bba..2c414e489da 100644 --- a/lisp/nxml/nxml-outln.el +++ b/lisp/nxml/nxml-outln.el @@ -1,6 +1,6 @@ ;;; nxml-outln.el --- outline support for nXML mode -*- lexical-binding:t -*- -;; Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-parse.el b/lisp/nxml/nxml-parse.el index edf012921a9..bce8cc9ee0b 100644 --- a/lisp/nxml/nxml-parse.el +++ b/lisp/nxml/nxml-parse.el @@ -1,6 +1,6 @@ ;;; nxml-parse.el --- XML parser, sharing infrastructure with nxml-mode -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-rap.el b/lisp/nxml/nxml-rap.el index e66289d042a..0132a2b9234 100644 --- a/lisp/nxml/nxml-rap.el +++ b/lisp/nxml/nxml-rap.el @@ -1,6 +1,6 @@ ;;; nxml-rap.el --- low-level support for random access parsing for nXML mode -*- lexical-binding:t -*- -;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/nxml-uchnm.el b/lisp/nxml/nxml-uchnm.el new file mode 100644 index 00000000000..06e03688e0f --- /dev/null +++ b/lisp/nxml/nxml-uchnm.el @@ -0,0 +1,251 @@ +;;; nxml-uchnm.el --- support for Unicode standard cha names in nxml-mode + +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. + +;; Author: James Clark +;; Keywords: wp, hypermedia, languages, XML + +;; This file is part of GNU Emacs. + +;; 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 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 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This enables the use of the character names defined in the Unicode +;; 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. + +;;; Code: + +(require 'nxml-mode) + +(defconst nxml-unicode-blocks + '(("Basic Latin" #x0000 #x007F) + ("Latin-1 Supplement" #x0080 #x00FF) + ("Latin Extended-A" #x0100 #x017F) + ("Latin Extended-B" #x0180 #x024F) + ("IPA Extensions" #x0250 #x02AF) + ("Spacing Modifier Letters" #x02B0 #x02FF) + ("Combining Diacritical Marks" #x0300 #x036F) + ("Greek and Coptic" #x0370 #x03FF) + ("Cyrillic" #x0400 #x04FF) + ("Cyrillic Supplementary" #x0500 #x052F) + ("Armenian" #x0530 #x058F) + ("Hebrew" #x0590 #x05FF) + ("Arabic" #x0600 #x06FF) + ("Syriac" #x0700 #x074F) + ("Thaana" #x0780 #x07BF) + ("Devanagari" #x0900 #x097F) + ("Bengali" #x0980 #x09FF) + ("Gurmukhi" #x0A00 #x0A7F) + ("Gujarati" #x0A80 #x0AFF) + ("Oriya" #x0B00 #x0B7F) + ("Tamil" #x0B80 #x0BFF) + ("Telugu" #x0C00 #x0C7F) + ("Kannada" #x0C80 #x0CFF) + ("Malayalam" #x0D00 #x0D7F) + ("Sinhala" #x0D80 #x0DFF) + ("Thai" #x0E00 #x0E7F) + ("Lao" #x0E80 #x0EFF) + ("Tibetan" #x0F00 #x0FFF) + ("Myanmar" #x1000 #x109F) + ("Georgian" #x10A0 #x10FF) + ("Hangul Jamo" #x1100 #x11FF) + ("Ethiopic" #x1200 #x137F) + ("Cherokee" #x13A0 #x13FF) + ("Unified Canadian Aboriginal Syllabics" #x1400 #x167F) + ("Ogham" #x1680 #x169F) + ("Runic" #x16A0 #x16FF) + ("Tagalog" #x1700 #x171F) + ("Hanunoo" #x1720 #x173F) + ("Buhid" #x1740 #x175F) + ("Tagbanwa" #x1760 #x177F) + ("Khmer" #x1780 #x17FF) + ("Mongolian" #x1800 #x18AF) + ("Latin Extended Additional" #x1E00 #x1EFF) + ("Greek Extended" #x1F00 #x1FFF) + ("General Punctuation" #x2000 #x206F) + ("Superscripts and Subscripts" #x2070 #x209F) + ("Currency Symbols" #x20A0 #x20CF) + ("Combining Diacritical Marks for Symbols" #x20D0 #x20FF) + ("Letterlike Symbols" #x2100 #x214F) + ("Number Forms" #x2150 #x218F) + ("Arrows" #x2190 #x21FF) + ("Mathematical Operators" #x2200 #x22FF) + ("Miscellaneous Technical" #x2300 #x23FF) + ("Control Pictures" #x2400 #x243F) + ("Optical Character Recognition" #x2440 #x245F) + ("Enclosed Alphanumerics" #x2460 #x24FF) + ("Box Drawing" #x2500 #x257F) + ("Block Elements" #x2580 #x259F) + ("Geometric Shapes" #x25A0 #x25FF) + ("Miscellaneous Symbols" #x2600 #x26FF) + ("Dingbats" #x2700 #x27BF) + ("Miscellaneous Mathematical Symbols-A" #x27C0 #x27EF) + ("Supplemental Arrows-A" #x27F0 #x27FF) + ("Braille Patterns" #x2800 #x28FF) + ("Supplemental Arrows-B" #x2900 #x297F) + ("Miscellaneous Mathematical Symbols-B" #x2980 #x29FF) + ("Supplemental Mathematical Operators" #x2A00 #x2AFF) + ("CJK Radicals Supplement" #x2E80 #x2EFF) + ("Kangxi Radicals" #x2F00 #x2FDF) + ("Ideographic Description Characters" #x2FF0 #x2FFF) + ("CJK Symbols and Punctuation" #x3000 #x303F) + ("Hiragana" #x3040 #x309F) + ("Katakana" #x30A0 #x30FF) + ("Bopomofo" #x3100 #x312F) + ("Hangul Compatibility Jamo" #x3130 #x318F) + ("Kanbun" #x3190 #x319F) + ("Bopomofo Extended" #x31A0 #x31BF) + ("Katakana Phonetic Extensions" #x31F0 #x31FF) + ("Enclosed CJK Letters and Months" #x3200 #x32FF) + ("CJK Compatibility" #x3300 #x33FF) + ("CJK Unified Ideographs Extension A" #x3400 #x4DBF) + ;;("CJK Unified Ideographs" #x4E00 #x9FFF) + ("Yi Syllables" #xA000 #xA48F) + ("Yi Radicals" #xA490 #xA4CF) + ;;("Hangul Syllables" #xAC00 #xD7AF) + ;;("High Surrogates" #xD800 #xDB7F) + ;;("High Private Use Surrogates" #xDB80 #xDBFF) + ;;("Low Surrogates" #xDC00 #xDFFF) + ;;("Private Use Area" #xE000 #xF8FF) + ;;("CJK Compatibility Ideographs" #xF900 #xFAFF) + ("Alphabetic Presentation Forms" #xFB00 #xFB4F) + ("Arabic Presentation Forms-A" #xFB50 #xFDFF) + ("Variation Selectors" #xFE00 #xFE0F) + ("Combining Half Marks" #xFE20 #xFE2F) + ("CJK Compatibility Forms" #xFE30 #xFE4F) + ("Small Form Variants" #xFE50 #xFE6F) + ("Arabic Presentation Forms-B" #xFE70 #xFEFF) + ("Halfwidth and Fullwidth Forms" #xFF00 #xFFEF) + ("Specials" #xFFF0 #xFFFF) + ("Old Italic" #x10300 #x1032F) + ("Gothic" #x10330 #x1034F) + ("Deseret" #x10400 #x1044F) + ("Byzantine Musical Symbols" #x1D000 #x1D0FF) + ("Musical Symbols" #x1D100 #x1D1FF) + ("Mathematical Alphanumeric Symbols" #x1D400 #x1D7FF) + ;;("CJK Unified Ideographs Extension B" #x20000 #x2A6DF) + ;;("CJK Compatibility Ideographs Supplement" #x2F800 #x2FA1F) + ("Tags" #xE0000 #xE007F) + ;;("Supplementary Private Use Area-A" #xF0000 #xFFFFF) + ;;("Supplementary Private Use Area-B" #x100000 #x10FFFF) + ) + "List of Unicode blocks. +For each block there is a list (NAME FIRST LAST), where +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 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)))) + +;; This is intended to be a superset of the coverage +;; of existing standard entity sets. +(defvar nxml-enabled-unicode-blocks-default + '(basic-latin + latin-1-supplement + latin-extended-a + latin-extended-b + ipa-extensions + spacing-modifier-letters + combining-diacritical-marks + greek-and-coptic + cyrillic + general-punctuation + superscripts-and-subscripts + currency-symbols + combining-diacritical-marks-for-symbols + letterlike-symbols + number-forms + arrows + mathematical-operators + miscellaneous-technical + control-pictures + optical-character-recognition + enclosed-alphanumerics + box-drawing + block-elements + geometric-shapes + miscellaneous-symbols + dingbats + miscellaneous-mathematical-symbols-a + supplemental-arrows-a + supplemental-arrows-b + miscellaneous-mathematical-symbols-b + supplemental-mathematical-operators + cjk-symbols-and-punctuation + alphabetic-presentation-forms + variation-selectors + small-form-variants + specials + mathematical-alphanumeric-symbols) + "Default value for `nxml-enabled-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) + +;; 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. +Each block is identified by a symbol derived from the name +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-internal-unicode-char-name-sets-enabled + (nxml-enable-unicode-char-name-sets))) + :type (cons 'set + (mapcar (lambda (block) + `(const :tag ,(format "%s (%04X-%04X)" + (nth 0 block) + (nth 1 block) + (nth 2 block)) + ,(nxml-unicode-block-char-name-set + (nth 0 block)))) + nxml-unicode-blocks))) + +;;;###autoload +(defun nxml-enable-unicode-char-name-sets () + "Enable the use of Unicode standard names for characters. +The Unicode blocks for which names are enabled is controlled by +the variable `nxml-enabled-unicode-blocks'." + (interactive) + (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)))) + nxml-unicode-blocks) + (mapc (lambda (nameset) + (nxml-enable-char-name-set nameset)) + nxml-enabled-unicode-blocks)) + +(provide 'nxml-uchnm) + +;;; nxml-uchnm.el ends here diff --git a/lisp/nxml/nxml-util.el b/lisp/nxml/nxml-util.el index 282d4952bf7..9f085458d88 100644 --- a/lisp/nxml/nxml-util.el +++ b/lisp/nxml/nxml-util.el @@ -1,6 +1,6 @@ ;;; nxml-util.el --- utility functions for nxml-*.el -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/rng-cmpct.el b/lisp/nxml/rng-cmpct.el index ed88dfa98e9..a09c77c51ae 100644 --- a/lisp/nxml/rng-cmpct.el +++ b/lisp/nxml/rng-cmpct.el @@ -1,6 +1,6 @@ ;;; rng-cmpct.el --- parsing of RELAX NG Compact Syntax schemas -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-dt.el b/lisp/nxml/rng-dt.el index a3cb8bc6aa5..6e60609445e 100644 --- a/lisp/nxml/rng-dt.el +++ b/lisp/nxml/rng-dt.el @@ -1,6 +1,6 @@ ;;; rng-dt.el --- datatype library interface for RELAX NG -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-loc.el b/lisp/nxml/rng-loc.el index 376e9169d37..359a7178684 100644 --- a/lisp/nxml/rng-loc.el +++ b/lisp/nxml/rng-loc.el @@ -1,6 +1,6 @@ ;;; rng-loc.el --- Locate the schema to use for validation -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-maint.el b/lisp/nxml/rng-maint.el index 32a041e0c17..8378b1d6491 100644 --- a/lisp/nxml/rng-maint.el +++ b/lisp/nxml/rng-maint.el @@ -1,6 +1,6 @@ ;;; rng-maint.el --- commands for RELAX NG maintainers -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-match.el b/lisp/nxml/rng-match.el index d2b629e8d83..e3401741fbf 100644 --- a/lisp/nxml/rng-match.el +++ b/lisp/nxml/rng-match.el @@ -1,6 +1,6 @@ ;;; rng-match.el --- matching of RELAX NG patterns against XML events -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-nxml.el b/lisp/nxml/rng-nxml.el index 954a1eb9599..caa3d63e390 100644 --- a/lisp/nxml/rng-nxml.el +++ b/lisp/nxml/rng-nxml.el @@ -1,6 +1,6 @@ ;;; rng-nxml.el --- make nxml-mode take advantage of rng-validate-mode -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-parse.el b/lisp/nxml/rng-parse.el index 3ae4b5cc9c4..f3afbdd07de 100644 --- a/lisp/nxml/rng-parse.el +++ b/lisp/nxml/rng-parse.el @@ -1,6 +1,6 @@ ;;; rng-parse.el --- parse an XML file and validate it against a schema -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-pttrn.el b/lisp/nxml/rng-pttrn.el index e847f5e02a8..29b55816a79 100644 --- a/lisp/nxml/rng-pttrn.el +++ b/lisp/nxml/rng-pttrn.el @@ -1,6 +1,6 @@ ;;; rng-pttrn.el --- RELAX NG patterns -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-uri.el b/lisp/nxml/rng-uri.el index 8fc0a01e293..6b3190a1b09 100644 --- a/lisp/nxml/rng-uri.el +++ b/lisp/nxml/rng-uri.el @@ -1,6 +1,6 @@ ;;; rng-uri.el --- URI parsing and manipulation -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/rng-util.el b/lisp/nxml/rng-util.el index c5d4b6567ed..a804771e33a 100644 --- a/lisp/nxml/rng-util.el +++ b/lisp/nxml/rng-util.el @@ -1,6 +1,6 @@ ;;; rng-util.el --- utility functions for RELAX NG library -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el index 239b1d11db1..6837424857c 100644 --- a/lisp/nxml/rng-valid.el +++ b/lisp/nxml/rng-valid.el @@ -1,6 +1,6 @@ ;;; rng-valid.el --- real-time validation of XML using RELAX NG -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/rng-xsd.el b/lisp/nxml/rng-xsd.el index c0989ae1073..51a05f8cad5 100644 --- a/lisp/nxml/rng-xsd.el +++ b/lisp/nxml/rng-xsd.el @@ -1,6 +1,6 @@ ;;; rng-xsd.el --- W3C XML Schema datatypes library for RELAX NG -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, RelaxNG diff --git a/lisp/nxml/xmltok.el b/lisp/nxml/xmltok.el index f12905a86d0..69dc541bc51 100644 --- a/lisp/nxml/xmltok.el +++ b/lisp/nxml/xmltok.el @@ -1,6 +1,6 @@ ;;; xmltok.el --- XML tokenization -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML diff --git a/lisp/nxml/xsd-regexp.el b/lisp/nxml/xsd-regexp.el index a3f476d00be..6acb1ff9d41 100644 --- a/lisp/nxml/xsd-regexp.el +++ b/lisp/nxml/xsd-regexp.el @@ -1,6 +1,6 @@ ;;; xsd-regexp.el --- translate W3C XML Schema regexps to Emacs regexps -*- lexical-binding:t -*- -;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: wp, hypermedia, languages, XML, regexp |