Revision: 9333
http://languagetool.svn.sourceforge.net/languagetool/?rev=9333&view=rev
Author: dnaber
Date: 2013-02-08 19:21:29 +0000 (Fri, 08 Feb 2013)
Log Message:
-----------
bugfix for sourceforge bug #3603841: don't complain about missing whitespace if
there is a non-breaking whitespace
Modified Paths:
--------------
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/CommaWhitespaceRule.java
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tools/StringTools.java
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/CommaWhitespaceRuleTest.java
Modified:
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/CommaWhitespaceRule.java
===================================================================
---
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/CommaWhitespaceRule.java
2013-02-08 10:04:32 UTC (rev 9332)
+++
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/CommaWhitespaceRule.java
2013-02-08 19:21:29 UTC (rev 9333)
@@ -24,6 +24,7 @@
import org.languagetool.AnalyzedSentence;
import org.languagetool.AnalyzedTokenReadings;
+import org.languagetool.tools.StringTools;
/**
* A rule that matches commas and closing parenthesis preceded by whitespace
and
@@ -60,22 +61,22 @@
int prevLen = 0;
for (int i = 0; i < tokens.length; i++) {
final String token = tokens[i].getToken();
- final boolean isWhite = tokens[i].isWhitespace()
- || tokens[i].isFieldCode();
+ final boolean isWhitespace = tokens[i].isWhitespace() ||
StringTools.isNonBreakingWhitespace(token)
+ || tokens[i].isFieldCode();
String msg = null;
int fixLen = 0;
String suggestionText = null;
- if (isWhite && isLeftBracket(prevToken)) {
+ if (isWhitespace && isLeftBracket(prevToken)) {
msg = messages.getString("no_space_after");
suggestionText = prevToken;
fixLen = 1;
- } else if (!isWhite && prevToken.equals(",")
+ } else if (!isWhitespace && prevToken.equals(",")
&& isNotQuoteOrHyphen(token)
&& containsNoNumber(prevPrevToken)
&& containsNoNumber(token)
- && !",".equals(prevPrevToken)) {
+ && !",".equals(prevPrevToken)) {
msg = messages.getString("missing_space_after_comma");
- suggestionText = ", ";
+ suggestionText = ", ";
} else if (prevWhite) {
if (isRightBracket(token)) {
msg = messages.getString("no_space_before");
@@ -111,7 +112,7 @@
}
prevPrevToken = prevToken;
prevToken = token;
- prevWhite = isWhite && !tokens[i].isFieldCode(); //OOo code before
comma/dot
+ prevWhite = isWhitespace && !tokens[i].isFieldCode(); //OOo code before
comma/dot
prevLen = tokens[i].getToken().length();
}
Modified:
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tools/StringTools.java
===================================================================
---
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tools/StringTools.java
2013-02-08 10:04:32 UTC (rev 9332)
+++
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/tools/StringTools.java
2013-02-08 19:21:29 UTC (rev 9333)
@@ -572,12 +572,11 @@
/**
* Checks if a string contains only whitespace, including all Unicode
- * whitespace. This differs a bit from the definition of whitespace in Java 7
- * because of the way we want to interpret Khmer.
+ * whitespace, but not the non-breaking space. This differs a bit from the
+ * definition of whitespace in Java 7 because of the way we want to
interpret Khmer.
*
- * @param str
- * String to check
- * @return true if the string is whitespace-only.
+ * @param str String to check
+ * @return true if the string is whitespace-only
*/
public static boolean isWhitespace(final String str) {
if ("\u0002".equals(str) // unbreakable field, e.g. a footnote number in
OOo
@@ -597,6 +596,14 @@
}
return false;
}
+
+ /**
+ * Checks if a string is the non-breaking whitespace (<code>\u00A0</code>).
+ * @since 2.1
+ */
+ public static boolean isNonBreakingWhitespace(final String str) {
+ return "\u00A0".equals(str);
+ }
/**
*
Modified:
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/CommaWhitespaceRuleTest.java
===================================================================
---
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/CommaWhitespaceRuleTest.java
2013-02-08 10:04:32 UTC (rev 9332)
+++
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/CommaWhitespaceRuleTest.java
2013-02-08 19:21:29 UTC (rev 9333)
@@ -48,6 +48,7 @@
assertMatches("This is $1,000,000.", 0);
assertMatches("This is 1,5.", 0);
assertMatches("This is a ,,test''.", 0);
+ assertMatches("This is,\u00A0really,\u00A0non-breaking whitespace.", 0);
//test OpenOffice field codes:
assertMatches("In his book,\u0002 Einstein proved this to be true.", 0);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits