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

Reply via email to