;ELC ;;; Compiled by jjc@pineapple.bkk.thaiopensource.com on Mon Oct 4 11:58:41 2004 ;;; from file /home/jjc/elisp/nxml-rap.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-rap.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require xmltok nxml-util] 2) #@54 Integer giving position following end of the prolog. (defvar nxml-prolog-end nil (#$ . 685)) (make-variable-buffer-local 'nxml-prolog-end) #@776 Marker giving position up to which we have scanned. nxml-scan-end must be >= nxml-prolog-end. Furthermore, nxml-scan-end must not an inside position in the following sense. A position is inside if the following character is a part of, but not the first character of, a CDATA section, comment or processing instruction. Furthermore all positions >= nxml-prolog-end and < nxml-scan-end that are inside positions must have a non-nil nxml-inside property whose value is a symbol specifying what it is inside. Any characters with a non-nil fontified property must have position < nxml-scan-end and the correct face. Dependent regions must also be established for any unclosed constructs starting before nxml-scan-end. There must be no nxml-inside properties after nxml-scan-end. (defvar nxml-scan-end nil (#$ . 831)) (make-variable-buffer-local 'nxml-scan-end) (defalias 'nxml-get-inside #[(pos) "\301\302\"\207" [pos get-text-property nxml-inside] 3]) (put 'nxml-get-inside 'byte-optimizer 'byte-compile-inline-expand) (defalias 'nxml-clear-inside #[(start end) "\302 \303#\207" [start end remove-text-properties (nxml-inside nil)] 4]) (put 'nxml-clear-inside 'byte-optimizer 'byte-compile-inline-expand) (defalias 'nxml-set-inside #[(start end type) "\303 \304\n$\207" [start end type put-text-property nxml-inside] 5]) (put 'nxml-set-inside 'byte-optimizer 'byte-compile-inline-expand) #@103 Return the end of the inside region containing POS. Return nil if the character at POS is not inside. (defalias 'nxml-inside-end #[(pos) "\301\302\")\205\303\302\"\206d\207" [pos get-text-property nxml-inside next-single-property-change] 3 (#$ . 2226)]) #@105 Return the start of the inside region containing POS. Return nil if the character at POS is not inside. (defalias 'nxml-inside-start #[(pos) "\301\302\")\205\303T\302\"\206e\207" [pos get-text-property nxml-inside previous-single-property-change] 3 (#$ . 2495)]) #@182 Restore `nxml-scan-end' invariants after a change. The change happened between START and END. Return position after which lexical state is unchanged. END must be > nxml-prolog-end. (defalias 'nxml-scan-after-change #[(start end) " Y\203 \207b\210\306 \210`\211\307\211\310 ^!\203Q\311>\203G\fT\312 \313#\210*T`\314 \315$\210+`` ^W\204`\316 !\211\205^\317)\204\f \312 \313#\210*\320 \"\210\321 \210+ V\203\201 \307\223\210 \207" [start nxml-scan-end xmltok-dependent-regions xmltok-errors inside-remove-start end nxml-move-outside-backwards nil xmltok-forward-special (comment cdata-section processing-instruction) remove-text-properties (nxml-inside nil) put-text-property nxml-inside nxml-inside-end t nxml-clear-dependent-regions nxml-mark-parse-dependent-regions xmltok-type xmltok-start type inside-end] 6 (#$ . 2773)]) (defalias 'nxml-scan-prolog #[nil "eb\210\306\211\211\307 `e\f\f\310\f \311#\210*\312e\f\"\210\313 \210+ \fW\2050 \f\306\223\207" [xmltok-dependent-regions xmltok-errors xmltok-dtd nxml-prolog-regions nxml-prolog-end end nil xmltok-forward-prolog remove-text-properties (nxml-inside nil) nxml-clear-dependent-regions nxml-mark-parse-dependent-regions start nxml-scan-end] 4]) (defalias 'nxml-adjust-start-for-dependent-regions #[(start end pre-change-length) "\306S\"\211\203H\n@\307 !\310 \311\"\312=\203@\f W\203@\310 \313\"\314 @\315\f\316 !\257 A\"\"\203?\f)*\nA\211\204\f *\207" [start adjusted-start overlays overlay ostart funargs overlays-in overlay-start overlay-get category nxml-dependent nxml-funargs apply append overlay-end end pre-change-length] 10]) (defalias 'nxml-mark-parse-dependent-regions #[nil "\205\301\302@\"\210A\211\204\303\207" [xmltok-dependent-regions apply nxml-mark-parse-dependent-region nil] 4]) (defalias 'nxml-mark-parse-dependent-region #[(fun start end &rest args) "\305 \306\307\211%\310\n\311\312#\210\310\n\313 \fB#)\207" [start end overlay fun args make-overlay nil t overlay-put category nxml-dependent nxml-funargs] 6]) (put 'nxml-dependent 'evaporate t) (defalias 'nxml-clear-dependent-regions #[(start end) "\305 \"\211\205,\n@\306 \304\"\211\307=\203#\310 !X\203#\311 !\210*\nA\211\204 \312)\207" [start end overlays overlay category overlays-in overlay-get nxml-dependent overlay-start delete-overlay nil] 4]) #@322 Return the position after the token containing the char after point. Sets up the variables `xmltok-type', `xmltok-start', `xmltok-name-end', `xmltok-name-colon', `xmltok-attributes', `xmltok-namespace-attributes' in the same was as does `xmltok-forward'. The prolog will be treated as a single token with type `prolog'. (defalias 'nxml-token-after #[nil "`\211 W\203\304e d^\202c\305 \210\306\307\")\203+\212\310 \210\311 \210`)\202c\212\312f\313=\204=\314\315e ]\316#\203C\310 \210\202Ve X\203M \202T\317e!\206Teb\210\320 \203a`X\204V`))\207" [pos nxml-prolog-end xmltok-type xmltok-start prolog nxml-ensure-scan-up-to-date get-text-property nxml-inside nxml-move-outside-backwards xmltok-forward nil 60 search-backward "<" t nxml-inside-end nxml-tokenize-forward] 5 (#$ . 5163)]) #@111 Return the position after the token containing the char before point. Sets variables like `nxml-token-after'. (defalias 'nxml-token-before #[nil "e`U\204\212`Sb\210\302 )\207`\303`\207" [xmltok-start xmltok-type nxml-token-after nil] 2 (#$ . 5973)]) (defalias 'nxml-tokenize-forward #[nil "\306\211\307 \203Q`\nV\203Q \310>\203E\311 \312\211\211\306\211\211\313\216T` \314\315$\210. \202L \203L\316 \210\n`\306\223\210 *\207" [xmltok-errors xmltok-dependent-regions nxml-scan-end xmltok-type buffer-file-truename buffer-file-name nil xmltok-forward (comment cdata-section processing-instruction) buffer-modified-p t ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-mark-parse-dependent-regions deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7]) #@122 Move point to first character of the containing special thing. Leave point unmoved if it is not inside anything special. (defalias 'nxml-move-outside-backwards #[nil "\302`!\211\205!Sb\210`\303 \304\")\205!\305\306``\303 \304\")#)\207" [start pos nxml-inside-start get-text-property nxml-inside error "Char before inside-start at %s had nxml-inside property %s"] 7 (#$ . 6905)]) (defalias 'nxml-ensure-scan-up-to-date #[nil "` W\205_\212 b\210\306\211\307!\203R\f\310>\203J\311 \312\211\211\306\211\211\313\216T`\f\314\315$\210. `W\204`\316 \"\210\317 \210 \306\223+)\207" [pos nxml-scan-end xmltok-dependent-regions xmltok-errors xmltok-type buffer-file-truename nil xmltok-forward-special (comment processing-instruction cdata-section) buffer-modified-p t ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-clear-dependent-regions nxml-mark-parse-dependent-regions buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7]) #@416 Scan forward from FROM over a single balanced element. Point must between tokens. Return the position of the end of the tag that ends the element. `xmltok-start' will contain the position of the start of the tag. If UP is non-nil, then scan past end-tag of element containing point. If no element is found, return nil. If a well-formedness error prevents scanning, signal an nxml-scan-error. Point is not moved. (defalias 'nxml-scan-element-forward #[(from &optional up) "\205\306\307\212 b\210\310 \204#\n:\203\261\311\n\211A@)\312\"\210\202\261 \313=\2034\314 \nBB\202\f \315=\203l\n\203\261\n:\204H`\202\261\n@\316 \230\204\\\311\317\\\320\n@#\202\256\n\211AA)\211\204\f`\202\261 \321>\203{\n\204\f`\202\261 \322=\203\237\n\203\261\n:\204\217`\202\261\n\211AA)\211\204\f`\202\261 \323=\203\255\311\324\"\202\256\306\204\f) *\207" [up found open-tags from x xmltok-type t nil nxml-tokenize-forward nxml-scan-error "Start-tag has no end-tag" start-tag xmltok-start-tag-qname end-tag xmltok-end-tag-qname 2 "Mismatched end-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" xmltok-start] 5 (#$ . 8035)]) #@478 Scan backward from FROM over a single balanced element. Point must between tokens. Return the position of the end of the tag that starts the element. `xmltok-start' will contain the position of the start of the tag. If UP is non-nil, then scan past start-tag of element containing point. If BOUND is non-nil, then don't scan back past BOUND. If no element is found, return nil. If a well-formedness error prevents scanning, signal an nxml-scan-error. Point is not moved. (defalias 'nxml-scan-element-backward #[(from &optional up bound) "\205\306\307\211\212\fb\210` W\204#\310\311\206\312 ]\306#\204; :\203\311\204\311\313 \211A@)\314\"\210\202\311\315 \210\212\316 \210`)\317=\203W\320  BB\202\321=\203\225 \203\311 :\204l\n\202\311 @\203\204 @\322 \230\204\204\313T\323 @#\202\306 \211AA)\211\204\n\202\311\324>\203\245 \204\n\202\311\325=\203\266\307 BB\202\326=\203\305\313\327\"\202\306\306\204) +\207" [up found token-end open-tags from nxml-prolog-end t nil search-backward "<" 0 nxml-scan-error "End-tag has no start-tag" nxml-move-outside-backwards nxml-tokenize-forward end-tag xmltok-end-tag-qname start-tag xmltok-start-tag-qname "Mismatched start-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" bound x xmltok-type xmltok-start] 5 (#$ . 9251)]) (defalias 'nxml-scan-error #[(&rest args) "\301\302\"\207" [args signal nxml-scan-error] 3]) (byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307!\207" [put nxml-scan-error error-conditions (error nxml-error nxml-scan-error) error-message "Scan over element that is not well-formed" provide nxml-rap] 4)