Mercurial > emacs
changeset 44362:2480de7648c8
(sgml-lexical-context)
(sgml-parse-tag-backward): Extend support for CDATA to include
conditional sections.
author | Mike Williams <mdub@bigfoot.com> |
---|---|
date | Wed, 03 Apr 2002 12:12:59 +0000 |
parents | bb4d8a7cff31 |
children | 0627d2ffb2c1 |
files | lisp/textmodes/sgml-mode.el |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/textmodes/sgml-mode.el Wed Apr 03 09:37:48 2002 +0000 +++ b/lisp/textmodes/sgml-mode.el Wed Apr 03 12:12:59 2002 +0000 @@ -864,7 +864,7 @@ (defun sgml-lexical-context (&optional limit) "Return the lexical context at point as (TYPE . START). START is the location of the start of the lexical element. -TYPE is one of `string', `comment', `tag', or `text'. +TYPE is one of `string', `comment', `tag', `cdata', or `text'. If non-nil LIMIT is a nearby position before point outside of any tag." ;; As usual, it's difficult to get a reliable answer without parsing the @@ -883,11 +883,11 @@ ;; When entering this loop we're inside text. (setq text-start (point)) (skip-chars-forward "^<" pos) - (setq cdata-start (if (looking-at "<!\\[CDATA\\[") (point))) + (setq cdata-start (if (looking-at "<!\\[[A-Z]+\\[") (point))) ;; We skipped text and reached a tag. Parse it. ;; FIXME: Handle net-enabling start-tags (if cdata-start - (search-forward "]]>" pos 'limit) + (search-forward "]]>" pos 'move) (setq state (parse-partial-sexp (point) pos 0)))) (cond (cdata-start (cons 'cdata cdata-start)) @@ -980,8 +980,8 @@ (setq tag-type 'comment tag-start (search-backward "<!--" nil t))) ((sgml-looking-back-at "]]") ; cdata - (setq tag-type 'cdata - tag-start (search-backward "<![CDATA[" nil t))) + (setq tag-type 'cdata + tag-start (re-search-backward "<!\\[[A-Z]+\\[" nil t))) (t (setq tag-start (with-syntax-table sgml-tag-syntax-table