From: Marcin MiÅk. <mil...@us...> - 2008-07-23 13:39:45
|
Update of /cvsroot/languagetool/JLanguageTool/src/java/de/danielnaber/languagetool/rules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31191/src/java/de/danielnaber/languagetool/rules Modified Files: CommaWhitespaceRule.java Log Message: fix comma whitespace rule for OOo footnotes and other fields Index: CommaWhitespaceRule.java =================================================================== RCS file: /cvsroot/languagetool/JLanguageTool/src/java/de/danielnaber/languagetool/rules/CommaWhitespaceRule.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- CommaWhitespaceRule.java 21 Mar 2008 00:18:53 -0000 1.30 +++ CommaWhitespaceRule.java 23 Jul 2008 13:39:42 -0000 1.31 @@ -26,7 +26,7 @@ import de.danielnaber.languagetool.AnalyzedTokenReadings; /** - * A rule that matches commas and closing parenthesis preceeded by whitespace + * A rule that matches commas and closing parenthesis preceded by whitespace * and opening parenthesis followed by whitespace. * * @author Daniel Naber @@ -54,29 +54,32 @@ List<RuleMatch> ruleMatches = new ArrayList<RuleMatch>(); final AnalyzedTokenReadings[] tokens = text.getTokens(); String prevToken = ""; + boolean prevWhite = false; int pos = 0; + int prevLen = 0; for (int i = 0; i < tokens.length; i++) { final String token = tokens[i].getToken(); - pos += token.length(); + final boolean isWhite = tokens[i].isWhitespace(); + pos += token.length(); String msg = null; int fixLen = 0; String suggestionText = null; - if (token.trim().equals("") && prevToken.trim().equals("(")) { + if (isWhite && prevToken.trim().equals("(")) { msg = messages.getString("no_space_after"); suggestionText = "("; fixLen = 1; - } else if (token.trim().equals(")") && prevToken.trim().equals("")) { + } else if (token.trim().equals(")") && prevWhite) { msg = messages.getString("no_space_before"); suggestionText = ")"; fixLen = 1; - } else if (prevToken.trim().equals(",") && !token.trim().equals("") && + } else if (prevToken.trim().equals(",") && !isWhite && !token.equals("'") && !token.equals(""")&& !token.equals("â") && !token.equals("â") && !token.equals("\"") && !token.equals("â") && !token.matches(".*\\d.*") && !token.equals("-")) { msg = messages.getString("missing_space_after_comma"); suggestionText = ", "; - } else if (token.trim().equals(",") && prevToken.trim().equals("")) { + } else if (token.trim().equals(",") && prevWhite) { msg = messages.getString("space_after_comma"); suggestionText = ","; fixLen = 1; @@ -85,7 +88,7 @@ final int fromPos = tokens[i - 1].getStartPos(); final int toPos = tokens[i - 1].getStartPos() - + fixLen + prevToken.length(); + + fixLen + prevLen; final RuleMatch ruleMatch = new RuleMatch(this, fromPos, toPos, msg); if (suggestionText != null) @@ -93,6 +96,8 @@ ruleMatches.add(ruleMatch); } prevToken = token; + prevWhite = isWhite; + prevLen = token.length(); } return toRuleMatchArray(ruleMatches); |