+//\r
+// This software is now distributed according to\r
+// the Lesser Gnu Public License. Please see\r
+// http://www.gnu.org/copyleft/lesser.txt for\r
+// the details.\r
+// -- Happy Computing!\r
+//\r
+package com.stevesoft.pat;\r
+\r
+/** This is the same as Skip, except it needs a minimum\r
+ of two characters in the initializing String.\r
+ @see com.stevesoft.pat.Skip\r
+ @see com.stevesoft.pat.SkipBMH\r
+ */\r
+public class Skip2 extends Skip {\r
+ int c1,mask1;\r
+ public Skip2(String s,boolean ign,int offset) {\r
+ super(s,ign,offset);\r
+ c1 = s.charAt(1);\r
+ m1 = 2==s.length();\r
+ if(ign) {\r
+ mask1=mkmask(c1);\r
+ } else\r
+ mask1 = 0;\r
+ }\r
+ public int find(StringLike s,int start,int end) {\r
+ if(start > end) return -1;\r
+ start += offset;\r
+ int vend = min(s.length()-2,end+offset);\r
+ for(int i=start;i<=vend;i++)\r
+ if(0 == (s.charAt(i)&mask) && 0 == (s.charAt(i+1)&mask1)) {\r
+ //if(m1||s.regionMatches(ign,i,src,0,src.length()) )\r
+ if(m1||CaseMgr.regionMatches(s,ign,i,src,0,src.length()) )\r
+ return i-offset;\r
+ }\r
+ return -1;\r
+ }\r
+}\r