;ELC ;;; Compiled by jjc@pineapple.bkk.thaiopensource.com on Mon Oct 4 11:58:41 2004 ;;; from file /home/jjc/elisp/nxml-mode.el ;;; in Emacs version 21.3.1 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`nxml-mode.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\203\n\302\303!\210\304\305!\210\304\306!\210\304\307!\210\304\310!\210\304\311!\210\304\312!\210\313\314\315\316\317\320\317\321&\210\313\322\315\323\317\314\317\324&\207" [featurep mucs error "nxml-mode is not compatible with Mule-UCS" require xmltok nxml-enc nxml-glyph nxml-util nxml-rap nxml-outln custom-declare-group nxml nil "New XML editing mode" :group languages wp nxml-highlighting-faces "Faces for XML syntax highlighting." font-lock-highlighting-faces] 8) #@62 *Non-nil means nxml-mode should perform syntax highlighting. (custom-declare-variable 'nxml-syntax-highlight-flag 't '(#$ . -1111) :group 'nxml :type 'boolean) #@206 *Non-nil means display glyph following character reference. The glyph is displayed in `nxml-glyph-face'. The hook `nxml-glyph-set-hook' can be used to customize for which characters glyphs are displayed. (custom-declare-variable 'nxml-char-ref-display-glyph-flag 't '(#$ . -1278) :group 'nxml :type 'boolean) #@34 Hook run by command `nxml-mode'. (custom-declare-variable 'nxml-mode-hook 'nil '(#$ . 1594) :group 'nxml :type 'hook) #@71 *Non-nil means sexp commands treat an element as a single expression. (custom-declare-variable 'nxml-sexp-element-flag 'nil '(#$ . -1718) :group 'nxml :type 'boolean) #@107 *Non-nil means typing a slash automatically completes the end-tag. This is used by `nxml-electric-slash'. (custom-declare-variable 'nxml-slash-auto-complete-flag 'nil '(#$ . -1892) :group 'nxml :type 'boolean) #@187 *Indentation for the children of an element relative to the start-tag. This only applies when the line or lines containing the start-tag contains nothing else other than that start-tag. (custom-declare-variable 'nxml-child-indent '2 '(#$ . -2109) :group 'nxml :type 'integer) #@255 *Indentation for the attributes of an element relative to the start-tag. This only applies when the first attribute of a tag starts a line. In other cases, the first attribute on one line is indented the same as the first attribute on the previous line. (custom-declare-variable 'nxml-attribute-indent '4 '(#$ . -2392) :group 'nxml :type 'integer) (byte-code "\301B\302\301!\204\f\303\301\207" [current-load-list nxml-fontify-chunk-size boundp 500] 2) #@337 *Non-nil means bind M-TAB in `nxml-mode-map' to `nxml-complete'. C-return will be bound to `nxml-complete' in any case. M-TAB gets swallowed by many window systems/managers, and `documentation' will show M-TAB rather than C-return as the binding `rng-complete' when both are bound. So it's better to bind M-TAB only when it will work. (custom-declare-variable 'nxml-bind-meta-tab-to-complete-flag '(not window-system) '(#$ . -2855) :group 'nxml :set (lambda (sym flag) (set-default sym flag) (when (and (boundp 'nxml-mode-map) nxml-mode-map) (define-key nxml-mode-map "\211" (and flag 'nxml-complete)))) :type 'boolean) #@219 *Non-nil means prefer UTF-16 to UTF-8 when saving a buffer. This is used only when a buffer does not contain an encoding declaration and when its current `buffer-file-coding-system' specifies neither UTF-16 nor UTF-8. (custom-declare-variable 'nxml-prefer-utf-16-to-utf-8-flag 'nil '(#$ . -3483) :group 'nxml :type 'boolean) #@275 *Non-nil means prefer little-endian to big-endian byte-order for UTF-16. This is used only for saving a buffer; when reading the byte-order is auto-detected. It may be relevant both when there is no encoding declaration and when the encoding declaration specifies `UTF-16'. (custom-declare-variable 'nxml-prefer-utf-16-little-to-big-endian-flag '(eq system-type 'windows-nt) '(#$ . -3815) :group 'nxml :type 'boolean) #@243 *Default value for `buffer-file-coding-system' for a buffer for a new file. Nil means use the default value of `buffer-file-coding-system' as normal. A buffer's `buffer-file-coding-system' affects what \[nxml-insert-xml-declaration] inserts. (custom-declare-variable 'nxml-default-buffer-file-coding-system 'nil '(#$ . -4240) :group 'nxml :type 'coding-system) #@140 *Non-nil means automatically insert an XML declaration in a new file. The XML declaration is inserted using `nxml-insert-xml-declaration'. (custom-declare-variable 'nxml-auto-insert-xml-declaration-flag 'nil '(#$ . -4608) :group 'nxml :type 'boolean) (byte-code "\301B\306\302B\307\303B\310\304B\311\305B\312\313B\314 \315\316\317\320\nDD\321\320 DDD\322\323\324%\210\315\325\326\320 DD\327\320\fDDD\330\323\324%\210\315\331\332\320 DD\333\320 DDD\334\323\324%\210\315\335\336\320 DD\337\320 DD\340BB\341\323\324%\210\315\342\343\344\323\324%\210\315\345\346\347\323\324%\210\315\350\351\352\323\324%\210\315\353\354\355\323\324%\210\315\356\357\360\323\324%\210\315\361\362\363\323\324%\210\315\364\365\366\323\324%\210\315\367\370\371\323\324%\210\315\372\373\374\323\324%\210\315\375\376\377\323\324%\210\315\201@\201A\201B\323\324%\210\315\201C\201D\201E\323\324%\210\315\201F\201G\201H\323\324%\210\315\201I\201J\201K\323\324%\210\315\201L\201M\201N\323\324%\210\315\201O\201P\201Q\323\324%\210\315\201R\201S\201T\323\324%\210\315\201U\201V\201W\323\324%\210\315\201X\201Y\201Z\323\324%\210\315\201[\201\\\201]\323\324%\210\315\201^\201_\201`\323\324%\210\315\201a\201b\201c\323\324%\210\315\201d\201e\201f\323\324%\210\315\201g\201h\201i\323\324%\210\315\201j\201k\201l\323\324%\210\315\201m\201n\201o\323\324%\210\315\201p\201q\201r\323\324%\210\315\201s\201t\201u\323\324%\210\315\201v\201w\201x\323\324%\210\315\201y\201z\201{\323\324%\210\315\201|\201}\201~\323\324%\210\315\201\201\200\201\201\323\324%\210\315\201\202\201\203\201\204\323\324%\210\315\201\205\201\206\201\207\323\324%\207" [current-load-list nxml-light-blue-color nxml-dark-blue-color nxml-green-color nxml-sky-blue-color nxml-dark-green-color "#9292C9" "#3A3A7B" "#257A25" "#ACACFC" "#00AD00" nxml-light-green-color "#70F170" custom-declare-face nxml-delimited-data-face ((class color) (background light)) :foreground ((class color) (background dark)) "Face used to highlight data enclosed between delimiters.\nBy default, this is inherited by `nxml-attribute-value-face'\nand `nxml-processing-instruction-content-face'." :group nxml-highlighting-faces nxml-name-face ((class color) (background light)) ((class color) (background dark)) "Face used to highlight various names.\nThis includes element and attribute names, processing\ninstruction targets and the CDATA keyword in a CDATA section.\nThis is not used directly, but only via inheritance by other faces." nxml-ref-face ((class color) (background light)) ((class color) (background dark)) "Face used to highlight character and entity references.\nThis is not used directly, but only via inheritance by other faces." nxml-delimiter-face ((class color) (background light)) ((class color) (background dark)) ((t (:bold t))) "Face used to highlight delimiters.\nThis is not used directly, but only via inheritance by other faces." nxml-text-face nil "Face used to highlight text." nxml-comment-content-face ((t (:italic t))) "Face used to highlight the content of comments." nxml-comment-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of comments, i.e ." nxml-processing-instruction-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of processing instructions, i.e ." nxml-processing-instruction-target-face ((t (:inherit nxml-name-face))) "Face used for the target of processing instructions." nxml-processing-instruction-content-face ((t (:inherit nxml-delimited-data-face))) "Face used for the content of processing instructions." nxml-cdata-section-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of CDATA sections, i.e ." nxml-cdata-section-CDATA-face ((t (:inherit nxml-name-face))) "Face used for the CDATA keyword in CDATA sections." nxml-cdata-section-content-face ((t (:inherit nxml-text-face))) "Face used for the content of CDATA sections." nxml-char-ref-number-face ((t (:inherit nxml-ref-face))) "Face used for the number in character references.\nThis includes ths `x' in hex references." nxml-char-ref-delimiter-face ((t (:inherit nxml-ref-face))) "Face used for the delimiters of character references, i.e &# and ;." nxml-entity-ref-name-face ((t (:inherit nxml-ref-face))) "Face used for the entity name in general entity references." nxml-entity-ref-delimiter-face ((t (:inherit nxml-ref-face))) "Face used for the delimiters of entity references, i.e & and ;." nxml-tag-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the angle brackets delimiting tags.\n`nxml-tag-slash-face' is used for slashes." nxml-tag-slash-face ((t (:inherit nxml-name-face))) "Face used for slashes in tags, both in end-tags and empty-elements." nxml-element-prefix-face ((t (:inherit nxml-name-face))) "Face used for the prefix of elements." nxml-element-colon-face ((t (:inherit nxml-name-face))) "Face used for the colon in element names." nxml-element-local-name-face ((t (:inherit nxml-name-face))) "Face used for the local name of elements." nxml-attribute-prefix-face ((t (:inherit nxml-name-face))) "Face used for the prefix of attributes." nxml-attribute-colon-face ((t (:inherit nxml-name-face))) "Face used for the colon in attribute names." nxml-attribute-local-name-face ((t (:inherit nxml-name-face))) "Face used for the local name of attributes." nxml-namespace-attribute-xmlns-face ((t (:inherit nxml-name-face))) "Face used for `xmlns' in namespace attributes." nxml-namespace-attribute-colon-face ((t (:inherit nxml-name-face))) "Face used for the colon in namespace attributes." nxml-namespace-attribute-prefix-face ((t (:inherit nxml-name-face))) "Face used for the prefix declared in namespace attributes." nxml-attribute-value-face ((t (:inherit nxml-delimited-data-face))) "Face used for the value of attributes." nxml-attribute-value-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of attribute values." nxml-namespace-attribute-value-face ((t (:inherit nxml-attribute-value-face))) "Face used for the value of namespace attributes." nxml-namespace-attribute-value-delimiter-face ((t (:inherit nxml-attribute-value-delimiter-face))) "Face used for the delimiters of namespace attribute values." nxml-prolog-literal-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of literals in the prolog." nxml-prolog-literal-content-face ((t (:inherit nxml-delimited-data-face))) "Face used for the content of literals in the prolog." nxml-prolog-keyword-face ((t (:inherit nxml-name-face))) "Face used for keywords in the prolog." nxml-markup-declaration-delimiter-face ((t (:inherit nxml-delimiter-face))) "Face used for the delimiters of markup declarations in the prolog.\nThe delimiters are ." nxml-hash-face ((t (:inherit nxml-name-face))) "Face used for # before a name in the prolog." nxml-glyph-face ((((type x)) (:family "misc-fixed" :background "light grey" :foreground "black" :weight normal :slant normal)) (t (:background "light grey" :foreground "black" :weight normal :slant normal))) "Face used for glyph for char references."] 6) #@47 *The version of nxml-mode that is being used. (defvar nxml-version nil (#$ . -11824)) #@111 List of regions in the prolog to be fontified. See the function `xmltok-forward-prolog' for more information. (defvar nxml-prolog-regions nil (#$ . 11917)) (make-variable-buffer-local 'nxml-prolog-regions) #@98 Position where fontification last ended. Nil if the buffer changed since the last fontification. (defvar nxml-last-fontify-end nil (#$ . 12129)) (make-variable-buffer-local 'nxml-last-fontify-end) #@161 Non-nil if currently operating in degraded mode. Degraded mode is enabled when an internal error is encountered in the fontification or after-change functions. (defvar nxml-degraded nil (#$ . 12333)) (make-variable-buffer-local 'nxml-degraded) #@62 Hook run by `nxml-complete'. This hook is run until success. (defvar nxml-completion-hook nil (#$ . 12583)) #@226 Hook to determine whether point is in mixed content. The hook is called without arguments. It should return nil if it is definitely not mixed; non-nil otherwise. The hook will be run until one of the functions returns nil. (defvar nxml-in-mixed-content-hook nil (#$ . 12698)) #@70 Maximum distance from point to scan when checking for mixed content. (defvar nxml-mixed-scan-distance 4000 (#$ . 12982)) #@71 Maximum distance from point to scan backwards when indenting end-tag. (defvar nxml-end-tag-indent-scan-distance 4000 (#$ . 13109)) #@275 Non-nil means display extra information for character references. The extra information consists of a tooltip with the character name and, if `nxml-char-ref-display-glyph-flag' is non-nil, a glyph corresponding to the referenced character following the character reference. (defvar nxml-char-ref-extra-display t (#$ . 13247)) (make-variable-buffer-local 'nxml-char-ref-extra-display) #@23 Keymap for nxml-mode. (defvar nxml-mode-map (byte-code "\303 \304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210\304\333\334#\210\304\335\336#\210\304\337\340#\210\304\341 #\210\304\342\343#\210\304\344\345#\210\304\346\347#\210\n\203y\304\350\347#\210)\207" [map nxml-outline-prefix-map nxml-bind-meta-tab-to-complete-flag make-sparse-keymap define-key "\225" nxml-backward-up-element "\204" nxml-down-element "\216" nxml-forward-element "\220" nxml-backward-element "\373" nxml-backward-paragraph "\375" nxml-forward-paragraph "\350" nxml-mark-paragraph "" nxml-finish-element " " nxml-split-element "" nxml-balanced-close-start-tag-block " " nxml-balanced-close-start-tag-inline "" nxml-insert-xml-declaration "" nxml-dynamic-markup-word "" nxml-insert-named-char "" [S-mouse-2] nxml-mouse-hide-direct-text-content "/" nxml-electric-slash [C-return] nxml-complete "\211"] 4) (#$ . 13637)) (defalias 'nxml-set-face #[(start end face) "\205 \nW\205\303 \n\300$\207" [face start end put-text-property] 5]) (put 'nxml-set-face 'byte-optimizer 'byte-compile-inline-expand) (defalias 'nxml-clear-face #[(start end) "\302 \303#\210\304 \"\207" [start end remove-text-properties (face nil) nxml-clear-char-ref-extra-display] 4]) (defalias 'nxml-set-fontified #[(start end) "\302 \303\304$\207" [start end put-text-property fontified t] 5]) (put 'nxml-set-fontified 'byte-optimizer 'byte-compile-inline-expand) (defalias 'nxml-clear-fontified #[(start end) "\302 \303#\207" [start end remove-text-properties (fontified nil)] 4]) (put 'nxml-clear-fontified 'byte-optimizer 'byte-compile-inline-expand) #@2570 Major mode for editing XML. Syntax highlighting is performed unless the variable `nxml-syntax-highlight-flag' is nil. \[nxml-finish-element] finishes the current element by inserting an end-tag. C-c C-i closes a start-tag with `>' and then inserts a balancing end-tag leaving point between the start-tag and end-tag. \[nxml-balanced-close-start-tag-block] is similar but for block rather than inline elements: the start-tag, point, and end-tag are all left on separate lines. If `nxml-slash-auto-complete-flag' is non-nil, then inserting a `\203\333\356 \210\357\360!\207" [major-mode mode-name adaptive-fill-mode forward-sexp-function indent-line-function fill-paragraph-function kill-all-local-variables nxml-mode "nXML" make-local-variable nil nxml-forward-balanced-item nxml-indent-line nxml-do-fill-paragraph comment-indent-function comment-start "" comment-end-skip "[ \n]*-->" comment-line-break-function nxml-newline-and-indent use-local-map nxml-clear-dependent-regions copy-marker buffer-modified-p t ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) remove-text-properties (fontified nil) (nxml-inside nil) nxml-scan-prolog add-hook fontification-functions nxml-fontify after-change-functions nxml-after-change write-contents-hooks nxml-prepare-to-save buffer-file-name file-exists-p local-variable-p buffer-file-coding-system nxml-insert-xml-declaration run-hooks nxml-mode-hook nxml-mode-map nxml-scan-end buffer-file-truename deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# nxml-syntax-highlight-flag end start inhibit-point-motion-hooks nxml-default-buffer-file-coding-system nxml-auto-insert-xml-declaration-flag] 7 (#$ . 15422) nil]) (defalias 'nxml-degrade #[(context err) "\306\307\310 !#\210\311 \210\312\313\212\214~\210\314 \312\211\211\315\211\211\316\216\317ed\"\210ed\320\321\312$\210*ed\322\323#\210.\n\324\211*\207" [context err nxml-degraded nxml-prolog-end buffer-file-truename buffer-file-name message "Internal nXML mode error in %s (%s), degrading" error-message-string ding t 1 buffer-modified-p nil ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) nxml-clear-face put-text-property fontified remove-text-properties (nxml-inside nil) "nXML/degraded" deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# end start mode-name] 7]) (defalias 'nxml-after-change #[(start end pre-change-length) "\303 TV\203\304\303 T\n?\205\305\306\307\217\207" [end start nxml-degraded buffer-size 1 err (byte-code "\212\214~\210\306 \307\216\310\311 \310\211\211\312\211\211 \313\216\314#. \207" [save-match-data-internal inhibit-point-motion-hooks buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list match-data ((set-match-data save-match-data-internal)) t buffer-modified-p nil ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) nxml-after-change1 inhibit-modification-hooks inhibit-read-only #1# start end pre-change-length] 7) ((error (byte-code "\301\302\"\207" [err nxml-degrade nxml-after-change] 3)))] 3]) (defalias 'nxml-after-change1 #[(start end pre-change-length) "\306 \n\\\307 \f\n#\211 \310\\X\203% W\203\"d\f Z\\^\311 \210)\f X\2037  b\210\312 \202r X\203e eV\203e S\313\314\")\203e Sb\210\315 \210\312 \316`\f\"\f]\202r b\210\312 \316 \f\"\f]\205\233 \fY\203\221 dW\203\211 T\202\221d\211b\210\312  \f\317 \f\320#*\207" [nxml-last-fontify-end start pre-change-length pre-change-end end nxml-prolog-end nil nxml-adjust-start-for-dependent-regions 2 nxml-scan-prolog line-beginning-position get-text-property nxml-inside nxml-move-outside-backwards nxml-scan-after-change remove-text-properties (fontified nil) nxml-scan-end pos nxml-syntax-highlight-flag] 5]) #@155 Insert an XML declaration at the beginning of buffer. The XML declaration will declare an encoding depending on the buffer's `buffer-file-coding-system'. (defalias 'nxml-insert-xml-declaration #[nil "\203\302!\203\303\304\"\203\202\305 eb\210\306\307\310 !\"c)\207" [buffer-file-coding-system coding-system coding-system-p coding-system-get mime-charset nxml-choose-utf-coding-system format "\n" nxml-coding-system-name] 4 (#$ . 21967) "*"]) (defalias 'nxml-prepare-to-save #[nil "\204\302\301!\203 \203\303 !\304=\204! \305=\204!\212\306 )\307\207" [enable-multibyte-characters buffer-file-coding-system local-variable-p coding-system-type 5 no-conversion nxml-select-coding-system nil] 2]) (defalias 'nxml-select-coding-system #[nil "\306ed\"eb\210\307 \211:\205\310 @ A\"\211\203-\n\227\311\230\203'\312 \2023\313\n!\2023 \2053\314 \211\204\f?\205@\315!\n\203L\316\317\n\"\202M\320 \204Z\321\322 \"\210\202~\323 \324\316\n\203f\325\202g\326\327 !\"\330R!\203y\331 \"\210\202~\332\333\334\"\210)\335 !>\204\302\336\232\204\302\337 \n\"\f?\205\232\315!\211\204\247\321\322 \"\210\202\301\323 \316\340\327 !\"P!\203\274\331 \"\210\202\301\332\333\334\"\210)\341#!\211$\203\330$\250\203\330\342 $\") ,\207" [suitable-coding-systems enc-pos enc-name coding-system buffer-read-only message find-coding-systems-region xmltok-get-declared-encoding-position buffer-substring-no-properties "utf-16" nxml-choose-utf-16-coding-system nxml-mime-charset-coding-system nxml-choose-utf-coding-system nxml-choose-suitable-coding-system format "Unknown encoding %s" "XML declaration is not well-formed" error "%s" y-or-n-p ". " "Save with %s" "Modify and save with encoding %s" nxml-coding-system-name " " nxml-fix-encoding-declaration signal quit nil coding-system-base (undecided) nxml-unsuitable-coding-system-message ". Save with %s " coding-system-eol-type coding-system-change-eol-conversion buffer-file-coding-system current-eol-type] 8]) (defalias 'nxml-unsuitable-coding-system-message #[(coding-system &optional enc-name) "\302!\203\303\207\304\305 \206\306!\"\207" [coding-system enc-name nxml-coding-system-unicode-p "Cannot translate some characters to Unicode" format "Cannot encode some characters with %s" nxml-coding-system-name] 4]) (byte-code "\301B\303\304!\205\303\305!\205\306\302B\307 B\301\207" [current-load-list nxml-utf-16-coding-systems nxml-utf-coding-systems coding-system-p utf-16-be utf-16-le (utf-16-be utf-16-le) utf-8] 2) (defalias 'nxml-coding-system-unicode-p #[(coding-system) "\302\303! \"\207" [coding-system nxml-utf-coding-systems nxml-coding-system-member coding-system-base] 3]) (defalias 'nxml-coding-system-name #[(coding-system) "\302!\303\304 \"\203\305\202\306\307\"\206!\207" [coding-system nxml-utf-16-coding-systems coding-system-base symbol-name nxml-coding-system-member utf-16 coding-system-get mime-charset] 4]) (defalias 'nxml-fix-encoding-declaration #[(enc-pos coding-system) "\305!\n:\203\n@\nA|\210\n@b\210 c\202C\n\250\203(\nb\210\306 \307\261\202Ceb\210\310 \311\261\210\n?\205C\312\313\f!)\205C`\314\225|)\207" [coding-system charset enc-pos case-fold-search xmltok-bad-xml-decl-regexp nxml-coding-system-name " encoding=\"" 34 "\n" t looking-at 0] 3]) (defalias 'nxml-choose-suitable-coding-system #[(suitable-coding-systems) "\304\211\n\203\305\n! >\203\n\2023 \2032 \2042 @\306\307\"\203+\202 A\211\204 *\207" [coding-system ret buffer-file-coding-system suitable-coding-systems nil coding-system-base coding-system-get mime-charset] 4]) (defalias 'nxml-choose-utf-coding-system #[nil "\305\300!\205 \205 \306!\307 \n\"@\2063 \2032\310\311!\2032\310\312!\2032\f\203.\311\2023\312\2023\313)\207" [buffer-file-coding-system cur nxml-utf-coding-systems nxml-prefer-utf-16-to-utf-8-flag nxml-prefer-utf-16-little-to-big-endian-flag local-variable-p coding-system-base nxml-coding-system-member coding-system-p utf-16-le utf-16-be utf-8] 3]) (defalias 'nxml-choose-utf-16-coding-system #[nil "\304\300!\205 \205 \305!\306 \n\"@\206+ \203$\307\310!\205+\310\202+\307\311!\205+\311)\207" [buffer-file-coding-system cur nxml-utf-16-coding-systems nxml-prefer-utf-16-little-to-big-endian-flag local-variable-p coding-system-base nxml-coding-system-member coding-system-p utf-16-le utf-16-be] 3]) (defalias 'nxml-coding-system-member #[(coding-system coding-systems) "\303 \203\204\304\n @\"\203 \202 A\211\204)\207" [ret coding-systems coding-system nil coding-system-equal] 4]) (defalias 'nxml-fontify #[(start) "\300\301\302\217\207" [err (byte-code "\212\214~\210\306 \307\216\310\311 \310\211\211\312\211\211\313\216\204)\204<d\314\315\310$*\202@\316!. \207" [save-match-data-internal inhibit-point-motion-hooks buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list match-data ((set-match-data save-match-data-internal)) t buffer-modified-p nil ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property fontified nxml-fontify1 inhibit-modification-hooks inhibit-read-only #1# nxml-degraded nxml-prolog-end start end] 7) ((error (byte-code "\301\302\"\207" [err nxml-degrade nxml-fontify] 3)))] 3]) (defalias 'nxml-fontify1 #[(start) " W\203\305 \210e \306\n\307\310$*\207b\210 =\2041\311f\312\232\204+\313\314 \310#\210\315 \210\316 \210`\317d\f\\^!\210` \306\n\307\310$+\207" [start nxml-prolog-end end nxml-last-fontify-end nxml-fontify-chunk-size nxml-fontify-prolog put-text-property fontified t nil 60 search-backward "<" nxml-ensure-scan-up-to-date nxml-move-outside-backwards nxml-do-fontify] 5]) (defalias 'nxml-fontify-buffer #[nil "\212\214~\210\306eb\210\307 \306\211\211\310\211\211\f \311\216\312 \210b\210\313 . \207" [inhibit-point-motion-hooks buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks t buffer-modified-p nil ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) nxml-fontify-prolog nxml-do-fontify inhibit-read-only #1# nxml-prolog-end] 7 nil nil]) #@158 Fontify the prolog. The buffer is assumed to be prepared for fontification. This does not set the fontified property, but it does clear faces appropriately. (defalias 'nxml-fontify-prolog #[nil "\304e\n\"\210 \205# @\305 \306H \307H \310H#\210) A\211\204 \311)\207" [nxml-prolog-regions regions nxml-prolog-end region nxml-clear-face nxml-apply-fontify-rule 0 1 2 nil] 6 (#$ . 28256)]) #@78 Fontify at least as far as bound. Leave point after last fontified position. (defalias 'nxml-do-fontify #[(&optional bound) "\204d\304\211`W\205 \305 \205 \306 `\"\210\307 \210\202\n*\207" [bound xmltok-errors xmltok-dependent-regions xmltok-start nil nxml-tokenize-forward nxml-clear-face nxml-apply-fontify-rule] 3 (#$ . 28654)]) (byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\311#\210\300\312\302\313#\210\300\314\302\315#\210\300\316\302\317#\210\300\320\302\321#\210\300\322\302\323#\210\300\324\302\325#\210\300\326\302\327#\210\300\330\302\331#\210\300\332\302\333#\210\300\334\302\335#\210\300\336\302\337#\210\300\340\302\341#\210\300\342\302\343#\210\300\344\302\345#\210\300\346\302\347#\210\300\350\302\351#\210\300\352\302\353#\210\300\354\302\355#\210\300\356\302\357#\210\300\360\302\361#\207" [put start-tag nxml-fontify-rule ([nil 1 nxml-tag-delimiter-face] [-1 nil nxml-tag-delimiter-face] (element-qname . 1) attributes) partial-start-tag ([nil 1 nxml-tag-delimiter-face] (element-qname . 1) attributes) end-tag ([nil 1 nxml-tag-delimiter-face] [1 2 nxml-tag-slash-face] [-1 nil nxml-tag-delimiter-face] (element-qname . 2)) partial-end-tag ([nil 1 nxml-tag-delimiter-face] [1 2 nxml-tag-slash-face] (element-qname . 2)) empty-element ([nil 1 nxml-tag-delimiter-face] [-2 -1 nxml-tag-slash-face] [-1 nil nxml-tag-delimiter-face] (element-qname . 1) attributes) partial-empty-element ([nil 1 nxml-tag-delimiter-face] [-1 nil nxml-tag-slash-face] (element-qname . 1) attributes) char-ref ([nil 2 nxml-char-ref-delimiter-face] [2 -1 nxml-char-ref-number-face] [-1 nil nxml-char-ref-delimiter-face] char-ref) entity-ref ([nil 1 nxml-entity-ref-delimiter-face] [1 -1 nxml-entity-ref-name-face] [-1 nil nxml-entity-ref-delimiter-face]) comment ([nil 4 nxml-comment-delimiter-face] [4 -3 nxml-comment-content-face] [-3 nil nxml-comment-delimiter-face]) processing-instruction ([nil 2 nxml-processing-instruction-delimiter-face] [-2 nil nxml-processing-instruction-delimiter-face] processing-instruction-content) cdata-section ([nil 3 nxml-cdata-section-delimiter-face] [3 8 nxml-cdata-section-CDATA-face] [8 9 nxml-cdata-section-delimiter-face] [9 -3 nxml-cdata-section-content-face] [-3 nil nxml-cdata-section-delimiter-face]) data ([nil nil nxml-text-face]) xml-declaration ([nil 2 nxml-processing-instruction-delimiter-face] [2 5 nxml-processing-instruction-target-face] [-2 nil nxml-processing-instruction-delimiter-face]) xml-declaration-attribute-name ([nil nil nxml-attribute-local-name-face]) xml-declaration-attribute-value ([nil 1 nxml-attribute-value-delimiter-face] [1 -1 nxml-attribute-value-face] [-1 nil nxml-attribute-value-delimiter-face]) processing-instruction-left ([nil 2 nxml-processing-instruction-delimiter-face] [2 nil nxml-processing-instruction-target-face]) processing-instruction-right ([nil -2 nxml-processing-instruction-content-face] [-2 nil nxml-processing-instruction-delimiter-face]) literal ([nil 1 nxml-prolog-literal-delimiter-face] [1 -1 nxml-prolog-literal-content-face] [-1 nil nxml-prolog-literal-delimiter-face]) keyword ([nil nil nxml-prolog-keyword-face]) markup-declaration-open ([0 2 nxml-markup-declaration-delimiter-face] [2 nil nxml-prolog-keyword-face]) markup-declaration-close ([nil nil nxml-markup-declaration-delimiter-face]) internal-subset-open ([nil nil nxml-markup-declaration-delimiter-face]) internal-subset-close ([nil 1 nxml-markup-declaration-delimiter-face] [-1 nil nxml-markup-declaration-delimiter-face]) hash-name ([nil 1 nxml-hash-face] [1 nil nxml-prolog-keyword-face])] 4) (defalias 'nxml-apply-fontify-rule #[(&optional type start end) "\206 \306N \204\f \204`\n\205&\n@\nA\307!\203\207\310H\211\2044 \202F\310W\203B \\\202F \\)\311H\211\204U \202g\310W\203c \\\202g \\)\312H\f\f\203\203 W\203\203\313 \314\f$\210+\202\":\203\255@\315=\203\255 \203\"\316 A\\! \317\320\321&\210\202\"\322=\203\272\323 \210\202\"\324=\203  \312\\ \325\f\f\203\336 W\203\336\313 \314\f$\210+\212 b\210\326\327w\210`) \312Z\330\f\f\203 W\203\313 \314\f$\210+\202\"\331=\203\332 \333 \"#\210\202\"\334\335\"\210)\202)\207" [type xmltok-type rule start xmltok-start end nxml-fontify-rule vectorp 0 1 2 put-text-property face element-qname nxml-fontify-qname nxml-element-prefix-face nxml-element-colon-face nxml-element-local-name-face attributes nxml-fontify-attributes processing-instruction-content nxml-processing-instruction-target-face " \n" nil nxml-processing-instruction-content-face char-ref nxml-char-ref-display-extra xmltok-char-number error "Invalid nxml-fontify-rule action %s" action offset xmltok-name-end xmltok-name-colon] 8]) (defalias 'nxml-fontify-attributes #[nil "\203\302@\303\"\210A\211\204 \205\"\302 @!\210 A\211\204\304\207" [xmltok-namespace-attributes xmltok-attributes nxml-fontify-attribute namespace nil] 4]) (defalias 'nxml-fontify-attribute #[(att &optional namespace-declaration) "\203!\306 \211\307H) \211\310H) \211\311H)\312\313\314\312&\210\202:\306 \211\307H) \211\310H) \211\311H)\315\316\317&\210 \211\320H) \211\321H) \211\322H)\203T\323\202U\324\203]\325\202^\326\211\205S \203\210 W\203\210\327 \330$\210+ \211T \203\247 W\203\247\327 \330$\210+\f\203\366\f@\211\307H\310H\311H\n\203\340 W\203\340\327 \330$\210+\331#\210,\fA\211\204\254 \n\205 W\205\327 \330$+-\207" [namespace-declaration att value-face delimiter-face refs end nxml-fontify-qname 0 1 2 nxml-namespace-attribute-xmlns-face nxml-namespace-attribute-colon-face nxml-namespace-attribute-prefix-face nxml-attribute-prefix-face nxml-attribute-colon-face nxml-attribute-local-name-face 3 4 6 nxml-namespace-attribute-value-delimiter-face nxml-attribute-value-delimiter-face nxml-namespace-attribute-value-face nxml-attribute-value-face put-text-property face nxml-apply-fontify-rule start ref ref-type ref-start ref-end] 9]) (defalias 'nxml-fontify-qname #[(start colon end prefix-face colon-face local-name-face &optional unprefixed-face) "\203O \n \203 \fW\203\306 \f\303 $\210+\211T  \2034 \fW\2034\306 \f\303 $\210+T\f \205M \fW\205M\306 \f\303 $+\207 \f\206X \205k \fW\205k\306 \f\303 $+\207" [colon start prefix-face face end colon-face put-text-property local-name-face unprefixed-face] 5]) #@366 Insert a slash. With a prefix ARG, do nothing other than insert the slash. Otherwise, if `nxml-slash-auto-complete-flag' is non-nil, insert the rest of the end-tag or empty-element if the slash is potentially part of an end-tag or the close of an empty-element. If the slash is part of an end-tag that is the first non-whitespace on the line, reindent the line. (defalias 'nxml-electric-slash #[(arg) "\306 \210`\211Sf\307=\205\310 \311\")?\212\312 \210`S)=\313\314\f!!\210\f?\205W \203M\n\203:\315\316\317\217\202W\320 `=\205W\321=\205W\322c\202W\n\205W \205W\323 +\207" [slash-pos pos end-tag-p at-indentation arg nxml-slash-auto-complete-flag nxml-ensure-scan-up-to-date 60 get-text-property nxml-inside back-to-indentation self-insert-command prefix-numeric-value err (byte-code "\304S\305\"\211\205,\306 \307\261\210\n\205,\212 b\210\310 \210` )=\205,\212\311\212 b\210i)!))\207" [slash-pos start-tag-end at-indentation xmltok-start nxml-scan-element-backward t xmltok-start-tag-qname ">" back-to-indentation indent-line-to] 4) ((nxml-scan-error)) nxml-token-before partial-empty-element ">" nxml-indent-line xmltok-type] 4 (#$ . 35166) "*P"]) #@300 Close the start-tag before point with `>' and insert a balancing end-tag. Point is left between the start-tag and the end-tag. If there is nothing but whitespace before the `<' that opens the start-tag, then put point on a blank line, and put the end-tag on another line aligned with the start-tag. (defalias 'nxml-balanced-close-start-tag-block #[nil "\300\301!\207" [nxml-balanced-close-start-tag block] 2 (#$ . 36350) "*"]) #@161 Close the start-tag before point with `>' and insert a balancing end-tag. Point is left between the start-tag and the end-tag. No extra whitespace is inserted. (defalias 'nxml-balanced-close-start-tag-inline #[nil "\300\301!\207" [nxml-balanced-close-start-tag inline] 2 (#$ . 36784) "*"]) (defalias 'nxml-balanced-close-start-tag #[(block-or-inline) "\306 `T\n\307=\204\n\310>\203 Y\204\311\312!\210\313\314 T\f`^\"\315\261\210 \316=\2033b\202` b\210\317 \210` U\203^ib\210\320c\210\321!\210b\210\320c\210\321\\!)\202`b*\207" [pos token-end xmltok-type xmltok-start xmltok-name-end block-or-inline nxml-token-before partial-start-tag (start-tag empty-element partial-empty-element) error "Not in a start-tag" ">" inline back-to-indentation "\n" indent-line-to indent nxml-child-indent] 5]) #@53 Finish the current element by inserting an end-tag. (defalias 'nxml-finish-element #[nil "\300\301!\207" [nxml-finish-element-1 nil] 2 (#$ . 37644) "*"]) #@64 Position where `nxml-split-element' split the current element. (defvar nxml-last-split-position nil (#$ . 37804)) #@220 Split the current element by inserting an end-tag and a start-tag. Point is left after the newly inserted start-tag. When repeated, split immediately before the previously inserted start-tag and leave point unchanged. (defalias 'nxml-split-element #[nil " =\203\n\203\212\nb\210\303\304!)\202\303\304!\211\207" [last-command this-command nxml-last-split-position nxml-finish-element-1 t] 2 (#$ . 37925) "*"]) #@195 Insert an end-tag for the current element and optionally a start-tag. The start-tag is inserted if STARTP is non-nil. Return the position of the inserted start-tag or nil if none was inserted. (defalias 'nxml-finish-element-1 #[(startp) "\306 \212`W\203 \307>\203\310\311\312 !\"\210\313\314\")\212 \315=\204(\310\316!\210 b\210\317 \210` )=\212\nb\210\320\321!)\212 b\210i)\322 \323\f\203f \203f`\212\317 \210`)X\204a\324c\210\325!\210\326\327\261\210\203\265\f\203~\324c\210\325!\210`\330\327\261\210\f\203\265 \203\265\324c\210\325\212 b\210\331y\210\317 \210i\\U\203\260\\\202\262)!\210.\207" [token-end xmltok-type start-tag-end xmltok-start starts-line ends-line nxml-token-before (cdata-section processing-instruction comment start-tag end-tag empty-element) error "Point is inside a %s" nxml-token-type-friendly-name nxml-scan-element-backward t start-tag "No matching start-tag" back-to-indentation looking-at "[ \n]*$" xmltok-start-tag-qname nil "\n" indent-line-to "" "<" 1 start-tag-indent qname inserted-start-tag-pos startp nxml-child-indent] 4 (#$ . 38350) "*"]) #@29 Indent current line as XML. (defalias 'nxml-indent-line #[nil "\303 d`Z\211\205(\304 \210`\305\306w\210\n`|\210) j\210dZ`V\205(dZb*\207" [from-end indent bol nxml-compute-indent beginning-of-line " " nil] 4 (#$ . 39496)]) #@50 Return the indent for the line containing point. (defalias 'nxml-compute-indent #[nil "\300 \206\301 \207" [nxml-compute-indent-from-matching-start-tag nxml-compute-indent-from-previous-line] 1 (#$ . 39732)]) #@322 Compute the indent for a line with an end-tag using the matching start-tag. When the line containing point ends with an end-tag and does not start in the middle of a token, return the indent of the line containing the matching start-tag, if there is one and it occurs at the beginning of its line. Otherwise return nil. (defalias 'nxml-compute-indent-from-matching-start-tag #[nil "\212\304 \210`\305\306\210)\307\306x\210\310 `U\205Q\n\311>\205Q U\2047\212b\210\312 \210 U)\2047\n\313=\205Q\314\315\316\217\205Q W\205Q b\210\307\306x\210n\205Q\317 *\207" [bol inhibit-field-text-motion xmltok-type xmltok-start back-to-indentation t nil " " nxml-token-before (end-tag partial-end-tag) nxml-token-after data err (byte-code "\301`\302`Z#\207" [nxml-end-tag-indent-scan-distance nxml-scan-element-backward nil] 5) ((nxml-scan-error)) current-indentation] 3 (#$ . 39950)]) #@73 Compute the indent for a line using the indentation of a previous line. (defalias 'nxml-compute-indent-from-previous-line #[nil "\212\306\210`\306\211\211\211\211\307 \210`\310\311\215.\207" [after-context before-context ref prev-bol bol eol nil back-to-indentation indent (byte-code "\306y\306U\203\f\307\310\311\"\210\312 \210\313\314!\204\204`\315 \210 `U\204*\n\316=\203``\fW\203\226\317 \210 X\203D\320!\202\217` X\203_\n\321=\203V` U\204_\320!\202\217\n\316=\203t\320!\320!\202\217\320!\322=\203\210b\210\307\310i\"\210\202\217\307\310\323 !\"\210\324\325w\210\202, b\210i\326=\203\247\327\202\250\311\330=\203\263\306\202\264\311\\_\\\207" [prev-bol xmltok-start xmltok-type ref eol bol -1 throw indent 0 back-to-indentation looking-at "[ ]*$" nxml-token-after data nxml-tokenize-forward nxml-merge-indent-context-type partial-start-tag mixed nxml-compute-indent-in-token " \n" nil start-tag 1 end-tag after-context before-context nxml-child-indent] 5)] 6 (#$ . 40844)]) #@215 Merge the indent context type CONTEXT with the token in `xmltok-type'. Return the merged indent context type. An indent context type is either nil or one of the symbols start-tag, end-tag, markup, comment, mixed. (defalias 'nxml-merge-indent-context-type #[(context) "\302>\203 \303>\203\304\207\305\207\306>\203 \307>\203\310\207\305\207\311=\2036 \312>\203. \207 \2034\305\207\311\207 \203<\305\207\313\207" [xmltok-type context (start-tag partial-start-tag) (nil start-tag comment) start-tag mixed (end-tag partial-end-tag) (nil end-tag comment) end-tag comment (start-tag end-tag comment) markup] 2 (#$ . 41894)]) #@202 Return the indent for a line that starts inside a token. POS is the position of the first non-whitespace character of the line. This expects the xmltok-* variables to be set up as by `xmltok-forward'. (defalias 'nxml-compute-indent-in-token #[(pos) "\303>\203\n\304 !\207\305=\203\306 \307\310#\207\311=\203\"\306 \312\313#\207\314=\203.\306 \315\316#\207 b\210\317y\320U\203D\n`W\203D\321 \210\202G\nb\210i\207" [xmltok-type pos xmltok-start (start-tag partial-start-tag empty-element partial-empty-element) nxml-compute-indent-in-start-tag comment nxml-compute-indent-in-delimited-token "" cdata-section "" processing-instruction "" -1 0 back-to-indentation] 4 (#$ . 42535)]) #@259 Return the indent for a line that starts inside a start-tag. Also for a line that starts inside an empty element. POS is the position of the first non-whitespace character of the line. This expects the xmltok-* variables to be set up as by `xmltok-forward'. (defalias 'nxml-compute-indent-in-start-tag #[(pos) "\306!\307\211\203)\n@\nAb\210\310y\210`\fW\203\"\fb\210\202%\311 \210*\202ob\210\310y\307U\2039\306`!\204,` X\203l b\210 \312 \211\f\203h\f@\211 \211 \307H)\211W\203gb\210\307*)\202o\311 \210i \\*\207" [pos off value-boundary value-end value-start xmltok-start nxml-attribute-value-boundary 0 -1 back-to-indentation xmltok-merge-attributes nxml-attribute-indent atts att start] 3 (#$ . 43264)]) #@255 Return a pair (START . END) if POS is inside an attribute value. Otherwise return nil. START and END are the positions of the start and end of the attribute value containing POS. This expects the xmltok-* variables to be set up as by `xmltok-forward'. (defalias 'nxml-attribute-value-boundary #[(pos) "\306 \307\211\211\211\211\203O\f@\211\211\310H) \211\311H)\n\2030 \nW\2030\307\211\202\f\n\203H \203H X\203H\n B\307\211\202\f\fA\211\204-\207" [value-boundary value-end value-start att atts pos xmltok-merge-attributes nil 3 4] 6 (#$ . 44006)]) #@302 Return the indent for a line that starts inside a token with delimiters. OPEN-DELIM and CLOSE-DELIM are strings giving the opening and closing delimiters. POS is the position of the first non-whitespace character of the line. This expects the xmltok-* variables to be set up as by `xmltok-forward'. (defalias 'nxml-compute-indent-in-delimited-token #[(pos open-delim close-delim) " G\\\211dX\205\305\n\" \230)\203 b\210\202Cb\210\306y\210` X\203@ \fG\\b\210\f\307\230\203C\310\311!\203C`Tb\210\202C\312 \210i\207" [pos close-delim end xmltok-start open-delim buffer-substring-no-properties -1 "