Revision: 9476
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=9476&view=rev
Author:   dnaber
Date:     2013-02-23 22:10:09 +0000 (Sat, 23 Feb 2013)
Log Message:
-----------
fix false alarm of unpaired bracket rule on smileys :-) and ;-) (Sourceforge 
bug #3604367)

Modified Paths:
--------------
    trunk/languagetool/languagetool-core/CHANGES.txt
    
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/GenericUnpairedBracketsRule.java
    
trunk/languagetool/languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/CatalanUnpairedBracketsRule.java
    
trunk/languagetool/languagetool-language-modules/de/src/test/java/org/languagetool/rules/de/GenericUnpairedBracketsRuleTest.java
    
trunk/languagetool/languagetool-language-modules/en/src/main/java/org/languagetool/rules/en/EnglishUnpairedBracketsRule.java
    
trunk/languagetool/languagetool-language-modules/en/src/test/java/org/languagetool/rules/en/EnglishUnpairedBracketsRuleTest.java

Modified: trunk/languagetool/languagetool-core/CHANGES.txt
===================================================================
--- trunk/languagetool/languagetool-core/CHANGES.txt    2013-02-23 21:23:29 UTC 
(rev 9475)
+++ trunk/languagetool/languagetool-core/CHANGES.txt    2013-02-23 22:10:09 UTC 
(rev 9476)
@@ -68,6 +68,8 @@
  -bugfix: suggestions for compounds parts were missing sometimes
 
  -bugfix: Portuguese translation was not used
+ 
+ -bugfix: fix false alarm of unpaired bracket rule on smileys :-) and ;-) 
(Sourceforge bug #3604367)
 
  -stand-alone GUI: the very first check for languages with a lot of rules
   (e.g. German, French) should now be faster
@@ -85,6 +87,7 @@
  -Command line:
    -In verbose mode, the subId of disambiguator matched rules is displayed.
 
+
 2.0 (2012-12-30)
 
  -Breton:

Modified: 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/GenericUnpairedBracketsRule.java
===================================================================
--- 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/GenericUnpairedBracketsRule.java
  2013-02-23 21:23:29 UTC (rev 9475)
+++ 
trunk/languagetool/languagetool-core/src/main/java/org/languagetool/rules/GenericUnpairedBracketsRule.java
  2013-02-23 22:10:09 UTC (rev 9476)
@@ -19,11 +19,7 @@
 
 package org.languagetool.rules;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.ResourceBundle;
+import java.util.*;
 import java.util.regex.Pattern;
 
 import org.languagetool.AnalyzedSentence;
@@ -100,7 +96,8 @@
   
   /**
    * Generic method to specify an exception. For unspecified
-   * language, it simply returns true, which means no exception.
+   * language, it simply returns true (which means no exception) unless
+   * there's a common smiley like :-) or ;-).
    * @param token String token
    * @param tokens Sentence tokens
    * @param i Current token index
@@ -111,6 +108,14 @@
       final AnalyzedTokenReadings[] tokens, final int i, final int j,
       final boolean precSpace,
       final boolean follSpace) {
+    // Smiley ":-)"
+    if (i >= 2 && tokens[i-2].getToken().equals(":") && 
tokens[i-1].getToken().equals("-") && tokens[i].getToken().equals(")")) {
+      return false;
+    }
+    // Smiley ";-)"
+    if (i >= 2 && tokens[i-2].getToken().equals(";") && 
tokens[i-1].getToken().equals("-") && tokens[i].getToken().equals(")")) {
+      return false;
+    }
     return true;
   }
 

Modified: 
trunk/languagetool/languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/CatalanUnpairedBracketsRule.java
===================================================================
--- 
trunk/languagetool/languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/CatalanUnpairedBracketsRule.java
        2013-02-23 21:23:29 UTC (rev 9475)
+++ 
trunk/languagetool/languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/CatalanUnpairedBracketsRule.java
        2013-02-23 22:10:09 UTC (rev 9476)
@@ -57,6 +57,11 @@
                        return true;
                }
 
+    final boolean superException = !super.isNoException(tokenStr, tokens, i, 
j, precSpace, follSpace);
+    if (superException) {
+      return false;
+    }
+    
                if (i == 1 && tokenStr.equals("»"))
                        return false;
 

Modified: 
trunk/languagetool/languagetool-language-modules/de/src/test/java/org/languagetool/rules/de/GenericUnpairedBracketsRuleTest.java
===================================================================
--- 
trunk/languagetool/languagetool-language-modules/de/src/test/java/org/languagetool/rules/de/GenericUnpairedBracketsRuleTest.java
    2013-02-23 21:23:29 UTC (rev 9475)
+++ 
trunk/languagetool/languagetool-language-modules/de/src/test/java/org/languagetool/rules/de/GenericUnpairedBracketsRuleTest.java
    2013-02-23 22:10:09 UTC (rev 9476)
@@ -40,6 +40,8 @@
     assertMatches("(Das sind die «Sätze», die sie testen sollen).", 0);
     assertMatches("(Das sind die »Sätze«, die sie testen sollen).", 0);
     assertMatches("(Das sind die Sätze (noch mehr Klammern [schon wieder!]), 
die sie testen sollen).", 0);
+    assertMatches("Das ist ein Satz mit Smiley :-)", 0);
+    assertMatches("Das ist auch ein Satz mit Smiley ;-)", 0);
     // incorrect sentences:
     assertMatches("Die „Sätze zum Testen.", 1);
     assertMatches("Die «Sätze zum Testen.", 1);

Modified: 
trunk/languagetool/languagetool-language-modules/en/src/main/java/org/languagetool/rules/en/EnglishUnpairedBracketsRule.java
===================================================================
--- 
trunk/languagetool/languagetool-language-modules/en/src/main/java/org/languagetool/rules/en/EnglishUnpairedBracketsRule.java
        2013-02-23 21:23:29 UTC (rev 9475)
+++ 
trunk/languagetool/languagetool-language-modules/en/src/main/java/org/languagetool/rules/en/EnglishUnpairedBracketsRule.java
        2013-02-23 22:10:09 UTC (rev 9476)
@@ -59,6 +59,11 @@
       return true;
     }
     
+    final boolean superException = !super.isNoException(tokenStr, tokens, i, 
j, precSpace, follSpace);
+    if (superException) {
+      return false;
+    }
+    
     if (!precSpace && follSpace) {
       // exception for English inches, e.g., 20"
       final AnalyzedTokenReadings prevToken = tokens[i - 1];

Modified: 
trunk/languagetool/languagetool-language-modules/en/src/test/java/org/languagetool/rules/en/EnglishUnpairedBracketsRuleTest.java
===================================================================
--- 
trunk/languagetool/languagetool-language-modules/en/src/test/java/org/languagetool/rules/en/EnglishUnpairedBracketsRuleTest.java
    2013-02-23 21:23:29 UTC (rev 9475)
+++ 
trunk/languagetool/languagetool-language-modules/en/src/test/java/org/languagetool/rules/en/EnglishUnpairedBracketsRuleTest.java
    2013-02-23 22:10:09 UTC (rev 9476)
@@ -45,6 +45,8 @@
     // correct sentences:
     assertCorrect("(This is a test sentence).");
     assertCorrect("This is a word 'test'.");
+    assertCorrect("This is a sentence with a smiley :-)");
+    assertCorrect("This is a sentence with a smiley ;-) and so on...");
     assertCorrect("This is the joint presidents' declaration.");
     assertCorrect("The screen is 20\" wide.");
     assertCorrect("This is a [test] sentence...");
@@ -71,6 +73,9 @@
     assertIncorrect("!'");
     assertIncorrect("What?'");
 
+    // this is currently considered incorrect... although people often use 
smileys this way:
+    assertIncorrect("Some text (and some funny remark :-) with more text to 
follow");
+
     RuleMatch[] matches;
     matches = rule.match(langTool.getAnalyzedSentence("(This is a test” 
sentence."));
     assertEquals(2, matches.length);

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_feb
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits

Reply via email to