Revision: 9728
http://languagetool.svn.sourceforge.net/languagetool/?rev=9728&view=rev
Author: milek_pl
Date: 2013-03-19 18:42:56 +0000 (Tue, 19 Mar 2013)
Log Message:
-----------
fix sf bug #3608410
Modified Paths:
--------------
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/WhitespaceRule.java
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/WhitespaceRuleTest.java
Modified:
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/WhitespaceRule.java
===================================================================
---
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/WhitespaceRule.java
2013-03-19 10:31:30 UTC (rev 9727)
+++
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/WhitespaceRule.java
2013-03-19 18:42:56 UTC (rev 9728)
@@ -26,6 +26,7 @@
import org.languagetool.AnalyzedSentence;
import org.languagetool.AnalyzedTokenReadings;
import org.languagetool.Language;
+import org.languagetool.tools.StringTools;
/**
* Check if there is duplicated whitespace in a sentence.
@@ -65,9 +66,11 @@
while (i < tokens.length) {
final boolean tokenIsTab = tokens[i].getToken().equals("\t");
final boolean prevTokenIsLinebreak = tokens[i -1].isLinebreak();
- if (tokens[i].isWhitespace() && prevWhite && !tokenIsTab &&
!prevTokenIsLinebreak) {
+ if ((tokens[i].isWhitespace() ||
+ StringTools.isNonBreakingWhitespace(tokens[i].getToken())) &&
prevWhite && !tokenIsTab && !prevTokenIsLinebreak) {
final int pos = tokens[i -1].getStartPos();
- while (i < tokens.length && tokens[i].isWhitespace()) {
+ while (i < tokens.length && (tokens[i].isWhitespace() ||
+ StringTools.isNonBreakingWhitespace(tokens[i].getToken()))) {
prevLen += tokens[i].getToken().length();
i++;
}
@@ -77,7 +80,7 @@
ruleMatches.add(ruleMatch);
}
if (i < tokens.length) {
- prevWhite = tokens[i].isWhitespace();
+ prevWhite = tokens[i].isWhitespace() ||
StringTools.isNonBreakingWhitespace(tokens[i].getToken());
prevLen = tokens[i].getToken().length();
prevPos = tokens[i].getStartPos();
i++;
Modified:
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/WhitespaceRuleTest.java
===================================================================
---
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/WhitespaceRuleTest.java
2013-03-19 10:31:30 UTC (rev 9727)
+++
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/WhitespaceRuleTest.java
2013-03-19 18:42:56 UTC (rev 9728)
@@ -52,6 +52,7 @@
assertEquals(1, matches.length);
assertEquals(4, matches[0].getFromPos());
assertEquals(6, matches[0].getToPos());
+
matches = rule.match(langTool.getAnalyzedSentence("This is a test
sentence."));
assertEquals(1, matches.length);
assertEquals(14, matches[0].getFromPos());
@@ -66,6 +67,11 @@
assertEquals(20, matches[2].getToPos());
matches = rule.match(langTool.getAnalyzedSentence("\t\t\t \t\t\t\t "));
assertEquals(1, matches.length);
+ //with non-breakable spaces
+ matches = rule.match(langTool.getAnalyzedSentence("This \u00A0is a test
sentence."));
+ assertEquals(1, matches.length);
+ assertEquals(4, matches[0].getFromPos());
+ assertEquals(6, matches[0].getToPos());
}
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits