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