Fix #1622108 - IllegalArgumentException on using CDATA
authortoshihiro <toshihiro>
Thu, 5 Apr 2007 07:50:15 +0000 (07:50 +0000)
committertoshihiro <toshihiro>
Thu, 5 Apr 2007 07:50:15 +0000 (07:50 +0000)
net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/text/XMLCDATAScanner.java

index 958049e..4ae4325 100644 (file)
@@ -8,7 +8,7 @@
  * Contributors:
  *     Igor Malinin - initial contribution
  *
- * $Id: XMLCDATAScanner.java,v 1.2 2005-05-06 00:55:41 stefanbjarni Exp $
+ * $Id: XMLCDATAScanner.java,v 1.3 2007-04-05 07:50:15 toshihiro Exp $
  */
 
 package net.sourceforge.phpeclipse.xml.ui.internal.text;
@@ -67,12 +67,21 @@ public class XMLCDATAScanner implements ITokenScanner {
                offset += length;
 
                if (position == begin) {
-                       position += 3; // <![
-
+//#1622108
+//                     position += 3; // <![
+//                     try {
+//                             if (document.get(position, 6).equals("CDATA[")) {
+//                                     position += 6;
+//                             }
+//                     } catch (BadLocationException e) {
+//                     }
                        try {
-                               if (document.get(position, 6).equals("CDATA[")) {
-                                       position += 6;
-                               }
+                               if (document.get(position, 3).equals("<![")) {
+                                       position += 3;
+                                       if (document.get(position, 6).equals("CDATA[")) {
+                                               position += 6;
+                                       }
+                               } // else: xml cdata part is divided by php script block
                        } catch (BadLocationException e) {
                        }