From: Michael M Slusarz Date: Mon, 22 Jun 2009 04:09:17 +0000 (-0600) Subject: Bug #8330: Merge from CVS HEAD X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f40e45f403a288f7642af22c015ed40e2e345c4c;p=horde.git Bug #8330: Merge from CVS HEAD --- diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES index ac6d0b5af..4b7c78611 100644 --- a/imp/docs/CHANGES +++ b/imp/docs/CHANGES @@ -86,6 +86,8 @@ v5.0-git v4.3.5-cvs ---------- +[mms] Fix spellcheck in text-mode for certain words in non-English locales + (Bug #8330). [mms] Fix some javascript if using IE 8 (uses IE 7 compatibility mode) (Bug #8345). [jan] Allow to lock default_encrypt preference. diff --git a/imp/js/src/SpellChecker.js b/imp/js/src/SpellChecker.js index 2271428fa..8213989a4 100644 --- a/imp/js/src/SpellChecker.js +++ b/imp/js/src/SpellChecker.js @@ -158,7 +158,7 @@ var SpellChecker = Class.create({ onComplete: function(request) { - var bad, content, d, re, re_text, + var bad, content, d, i = 0, input = $(this.target), result = request.responseJSON; @@ -181,20 +181,18 @@ var SpellChecker = Class.create({ bad = result.bad || []; content = this.targetValue(); - if (this.htmlAreaParent) { - content = content.replace(/\r?\n/g, ''); - } else { - content = content.replace(/\r?\n/g, '~~~').escapeHTML(); - } + content = this.htmlAreaParent + ? content.replace(/\r?\n/g, '') + : content.replace(/\r?\n/g, '~~~').escapeHTML(); $A(bad).each(function(node) { - re = new RegExp("(?:^|\\b)" + RegExp.escape(node) + "(?:\\b|$)", 'g'); - re_text = '' + node + ''; - content = content.replace(re, re_text); - // Go through and see if we matched anything inside a tag. - if (this.htmlAreaParent) { - content = content.replace(new RegExp("(<[^>]*)" + RegExp.escape(re_text) + "([^>]*>)", 'g'), '\$1' + node + '\$2'); - } + var re_text = '' + node + ''; + content = content.replace(new RegExp("(?:^|\\b)" + RegExp.escape(node) + "(?:\\b|$)", 'g'), re_text); + + // Go through and see if we matched anything inside a tag (i.e. + // class/spellcheckIncorrect is often matched if using a + // non-English lang). + content = content.replace(new RegExp("(<[^>]*)" + RegExp.escape(re_text) + "([^>]*>)", 'g'), '\$1' + node + '\$2'); }, this); if (!this.reviewDiv) {