Bug 634153 - Back out the changes in bug 355178 because of known regressions and possible risk of not-yet-known regressions; r=sicking a=johnath
authorEhsan Akhgari <ehsan@mozilla.com>
Tue, 15 Feb 2011 17:04:44 -0500
changeset 62624 891ce563da542064318742e0a0ac92d08470e43d
parent 62623 5fa15207f617884dbb6150b0518231468600e55c
child 62625 1f5f55c02e511cecf6f221abd66c100c5386ffaa
push id1
push userroot
push dateTue, 10 Dec 2013 15:46:25 +0000
reviewerssicking, johnath
bugs634153, 355178
milestone2.0b12pre
Bug 634153 - Back out the changes in bug 355178 because of known regressions and possible risk of not-yet-known regressions; r=sicking a=johnath
extensions/spellcheck/locales/en-US/hunspell/dictionary-sources/upstream-hunspell.diff
extensions/spellcheck/locales/en-US/hunspell/en-US.dic
extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
extensions/spellcheck/src/mozSpellChecker.cpp
layout/reftests/editor/reftest.list
layout/reftests/editor/spellcheck-dotafterquote-valid-ref.html
layout/reftests/editor/spellcheck-dotafterquote-valid.html
layout/reftests/text/wordwrap-02.html
--- a/extensions/spellcheck/locales/en-US/hunspell/dictionary-sources/upstream-hunspell.diff
+++ b/extensions/spellcheck/locales/en-US/hunspell/dictionary-sources/upstream-hunspell.diff
@@ -9458,108 +9458,106 @@ 41415a47226
 41914c47725
 < schnaps's
 ---
 > schnaps/M
 41949c47760
 < schrod's
 ---
 > schrod/SM
-41998a42010
-> scot-free
-42883,42885c48695
+42883,42885c48694
 < shit's
 < shit/S!
 < shite/S!
 ---
 > shit/MS!
-42887,42888c48697,48698
+42887,42888c48696,48697
 < shithead/S!
 < shitload/!
 ---
 > shithead/MS!
 > shitload/MS!
-42891c48701
+42891c48700
 < shitty/RT!
 ---
 > shitty/TR!
-42976a48787
+42976a48786
 > should've
-43008c48819
+43008c48818
 < showtime
 ---
 > showtime/MS
-43724,43726c49535
+43724,43726c49534
 < smoulder's
 < smouldered
 < smoulders
 ---
 > smoulder/GSMD
-44062c49871
+44062c49870
 < sonofabitch
 ---
 > sonofabitch/!
-44371a50181
+44371a50180
 > spick/S!
-44383c50193
+44383c50192
 < spik/S
 ---
 > spik/S!
-46106a51917
+46106a51916
 > syllabi
-46160c51971
+46160c51970
 < synch/GMD
 ---
 > synch/GMDS
-46167d51977
+46167d51976
 < synchs
-46203,46204c52013,52014
+46203,46204c52012,52013
 < sysadmin/S
 < sysop/S
 ---
 > sysadmin/MS
 > sysop/MS
-46752a52563
+46752a52562
 > terabit/MS
-46753a52565,52566
+46753a52564,52565
 > terahertz/M
 > terapixel/MS
-46817a52631
+46817a52630
 > testcase/MS
-46831a52646
+46831a52645
 > testsuite/MS
-46925a52741
+46925a52740
 > theremin/MS
-47755a53572
+47755a53571
 > transfect/DSMG
-47774a53592,53593
+47774a53591,53592
 > transgenderism
 > transgene/MS
-47951c53770
+47951c53769
 < triage/M
 ---
 > triage/MG
-48869a54689
+48869a54688
 > unlikeable
-49211c55031
+49211c55030
 < vagina/M
 ---
 > vagina/MS
-49368,49369c55188
+49368,49369c55187
 < velour's
 < velours's
 ---
 > velour/MS
-49478a55298
+49478a55297
 > vertices
-50148a55969
+50148a55968
 > weaponize/DSG
-50260,50261d56080
+50260,50261d56079
 < werwolf/M
 < werwolves
-50728c56547
+50728c56546
 < women
 ---
 > women/M
-50794c56613
+50794c56612
 < wop/S!
 ---
 > wop/MS!
--- a/extensions/spellcheck/locales/en-US/hunspell/en-US.dic
+++ b/extensions/spellcheck/locales/en-US/hunspell/en-US.dic
@@ -1,9 +1,9 @@
-57435
+57434
 0/nm
 0th/pt
 1/n1
 1st/p
 1th/tc
 2/nm
 2nd/p
 2th/tc
@@ -48136,17 +48136,16 @@ scorecard/MS
 scorekeeper/MS
 scoreless
 scoreline/S
 scorer/M
 scorn/MDRSZG
 scorner/M
 scornful/Y
 scorpion/MS
-scot-free
 scotch/MDSG
 scotchs
 scoundrel/MS
 scour/DRSZG
 scourer/M
 scourge/DSMG
 scout/MDRSZG
 scouting/M
--- a/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
+++ b/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
@@ -894,46 +894,22 @@ WordSplitState::ClassifyCharacter(PRInt3
       return CHAR_CLASS_SEPARATOR;
     if (ClassifyCharacter(aIndex + 1, false) != CHAR_CLASS_WORD)
       return CHAR_CLASS_SEPARATOR;
 
     // char on either side is a word, this counts as a word
     return CHAR_CLASS_WORD;
   }
 
-  // The dot character, if appearing at the end of a word, should
-  // be considered part of that word.  Example: "etc.", or
-  // abbreviations
-  if (aIndex > 0 &&
-      mDOMWordText[aIndex] == '.' &&
-      mDOMWordText[aIndex - 1] != '.' &&
-      ClassifyCharacter(aIndex - 1, false) != CHAR_CLASS_WORD) {
-    return CHAR_CLASS_WORD;
-  }
-
   // all other punctuation
   if (charCategory == nsIUGenCategory::kSeparator ||
       charCategory == nsIUGenCategory::kOther ||
       charCategory == nsIUGenCategory::kPunctuation ||
-      charCategory == nsIUGenCategory::kSymbol) {
-    // Don't break on hyphens, as hunspell handles them on its own.
-    if (aIndex > 0 &&
-        mDOMWordText[aIndex] == '-' &&
-        mDOMWordText[aIndex - 1] != '-' &&
-        ClassifyCharacter(aIndex - 1, false) == CHAR_CLASS_WORD) {
-      // A hyphen is only meaningful as a separator inside a word
-      // if the previous and next characters are a word character.
-      if (aIndex == PRInt32(mDOMWordText.Length()) - 1)
-        return CHAR_CLASS_SEPARATOR;
-      if (mDOMWordText[aIndex + 1] != '.' &&
-          ClassifyCharacter(aIndex + 1, false) == CHAR_CLASS_WORD)
-        return CHAR_CLASS_WORD;
-    }
+      charCategory == nsIUGenCategory::kSymbol)
     return CHAR_CLASS_SEPARATOR;
-  }
 
   // any other character counts as a word
   return CHAR_CLASS_WORD;
 }
 
 
 // WordSplitState::Advance
 
--- a/extensions/spellcheck/src/mozSpellChecker.cpp
+++ b/extensions/spellcheck/src/mozSpellChecker.cpp
@@ -36,19 +36,17 @@
 
 #include "mozSpellChecker.h"
 #include "nsIServiceManager.h"
 #include "mozISpellI18NManager.h"
 #include "nsIStringEnumerator.h"
 #include "nsICategoryManager.h"
 #include "nsISupportsPrimitives.h"
 
-// The number 130 more or less comes out of thin air.
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=355178#c78 for a pseudo-rationale.
-#define UNREASONABLE_WORD_LENGTH 130
+#define UNREASONABLE_WORD_LENGTH 64
 
 #define DEFAULT_SPELL_CHECKER "@mozilla.org/spellchecker/engine;1"
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(mozSpellChecker)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(mozSpellChecker)
 
 NS_INTERFACE_MAP_BEGIN(mozSpellChecker)
   NS_INTERFACE_MAP_ENTRY(nsISpellChecker)
--- a/layout/reftests/editor/reftest.list
+++ b/layout/reftests/editor/reftest.list
@@ -42,17 +42,18 @@ needs-focus == passwd-4.html passwd-ref.
 != spellcheck-textarea-property-dynamic-override-inherit.html spellcheck-textarea-ref.html
 == caret_on_focus.html caret_on_focus-ref.html
 needs-focus != caret_on_textarea_lastline.html caret_on_textarea_lastline-ref.html
 needs-focus == input-text-onfocus-reframe.html input-text-onfocus-reframe-ref.html
 needs-focus == input-text-notheme-onfocus-reframe.html input-text-notheme-onfocus-reframe-ref.html
 needs-focus == caret_after_reframe.html caret_after_reframe-ref.html
 == nobogusnode-1.html nobogusnode-ref.html
 == nobogusnode-2.html nobogusnode-ref.html
-== spellcheck-hyphen-valid.html spellcheck-hyphen-valid-ref.html
+fails == spellcheck-hyphen-valid.html spellcheck-hyphen-valid-ref.html
 != spellcheck-hyphen-invalid.html spellcheck-hyphen-invalid-ref.html
 == spellcheck-slash-valid.html spellcheck-slash-valid-ref.html
 == spellcheck-period-valid.html spellcheck-period-valid-ref.html
 == spellcheck-space-valid.html spellcheck-space-valid-ref.html
 == spellcheck-comma-valid.html spellcheck-comma-valid-ref.html
 == spellcheck-hyphen-multiple-valid.html spellcheck-hyphen-multiple-valid-ref.html
 != spellcheck-hyphen-multiple-invalid.html spellcheck-hyphen-multiple-invalid-ref.html
+== spellcheck-dotafterquote-valid.html spellcheck-dotafterquote-valid-ref.html
 == unneeded_scroll.html unneeded_scroll-ref.html
new file mode 100644
--- /dev/null
+++ b/layout/reftests/editor/spellcheck-dotafterquote-valid-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+  <body>
+    <textarea autofocus spellcheck="false">'Apple'.</textarea>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/editor/spellcheck-dotafterquote-valid.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+  <body>
+    <textarea autofocus>'Apple'.</textarea>
+  </body>
+</html>
--- a/layout/reftests/text/wordwrap-02.html
+++ b/layout/reftests/text/wordwrap-02.html
@@ -12,12 +12,11 @@ textarea {
   font-family: dvm;
   line-height: 1.5em;
   overflow: scroll;
 }
   </style>
   <title>Test Wordwrap</title>
  </head>
  <body>
-  <!-- spellcheck="false" added as a workaround to our maximum length of words for the spell checker -->
-  <textarea spellcheck="false" rows="10" cols="20" dir="rtl">ذهعقروبلجيكا،الموسوعةكل,تمبوابةاقتصاديةهذه.ضمنهاالروسوحرمانبلعدد,يكنجسيمةلإعادةلم.يكنوالحلفاءبالقنابلهو,بحثخسائرالدفاعبالهجومعن.فرنسيةمارشالبينيتودحرثم,وصلبشريةالرايخبالحربتم.</textarea>
+  <textarea rows="10" cols="20" dir="rtl">ذهعقروبلجيكا،الموسوعةكل,تمبوابةاقتصاديةهذه.ضمنهاالروسوحرمانبلعدد,يكنجسيمةلإعادةلم.يكنوالحلفاءبالقنابلهو,بحثخسائرالدفاعبالهجومعن.فرنسيةمارشالبينيتودحرثم,وصلبشريةالرايخبالحربتم.</textarea>
  </body>
 </html>