summaryrefslogtreecommitdiffstats
path: root/parsers/DetectHTMLTag.java
diff options
context:
space:
mode:
Diffstat (limited to 'parsers/DetectHTMLTag.java')
-rw-r--r--parsers/DetectHTMLTag.java39
1 files changed, 36 insertions, 3 deletions
diff --git a/parsers/DetectHTMLTag.java b/parsers/DetectHTMLTag.java
index 562b793..4572927 100644
--- a/parsers/DetectHTMLTag.java
+++ b/parsers/DetectHTMLTag.java
@@ -22,16 +22,20 @@ package scruf.parsers;
import java.util.*;
import java.util.regex.*;
+import scruf.status.*;
public class DetectHTMLTag {
private List<String> closingHtmlTags = new ArrayList<String>();
private Pattern htmlTagPattern = Pattern.compile("^\\<((\\w+?).*?)\\>.*?(\\<\\/\\2\\>)",
Pattern.DOTALL);
+ private String lastHtmlBlock = null;
private boolean insideHtmlBlock = false;
+ private boolean htmlInScruffy = false;
public boolean isHtmlTag(String text) {
Matcher htmlTagMatcher = htmlTagPattern.matcher(text);
if(htmlTagMatcher.find()) {
+ lastHtmlBlock = htmlTagMatcher.group();
closingHtmlTags.add(htmlTagMatcher.group(3));
insideHtmlBlock = true;
return true;
@@ -43,16 +47,45 @@ public class DetectHTMLTag {
private boolean isClosingHtmlTag(String text) {
for(String closingTag: closingHtmlTags) {
if(text.startsWith(closingTag)) {
+ lastHtmlBlock = closingTag;
closingHtmlTags.remove(closingTag);
+ if(closingHtmlTags.isEmpty())
+ insideHtmlBlock = false;
return true;
}
}
- if(closingHtmlTags.isEmpty())
- insideHtmlBlock = false;
return false;
}
+ public boolean isHtmlInScruffy(String text) {
+ Integer blankLineCounter;
+
+ if(isHtmlTag(text)) {
+ Pattern qText = Pattern.compile("\\Q"+lastHtmlBlock+"\\E");
+ htmlInScruffy = qText.matcher(PresentFile.fileContent).find();
+
+ Pattern pBlankLine = Pattern.compile("\\n\\n");
+ Matcher mBlankLine = pBlankLine.matcher(lastHtmlBlock);
+ blankLineCounter = 0;
+
+ while(mBlankLine.find())
+ ++blankLineCounter;
+
+ if(blankLineCounter == 0) {
+ closingHtmlTags.clear();
+ resetEverything();
+ }
+ }
+ return insideHtmlBlock && htmlInScruffy;
+ }
+
public boolean insideHtmlBlock() {
return insideHtmlBlock;
}
-}
+
+ public void resetEverything() {
+ insideHtmlBlock = false;
+ htmlInScruffy = false;
+ lastHtmlBlock = null;
+ }
+} \ No newline at end of file