From e224b002c08968ea2085c260a316f4357b81573e Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 12 Jan 2011 13:31:55 -0500
Subject: [PATCH] Missed some replacements in previous commit...

---
 program/js/common.js |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/program/js/common.js b/program/js/common.js
index 4e98347..b4554a0 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -3,7 +3,7 @@
  | Roundcube common js library                                           |
  |                                                                       |
  | This file is part of the Roundcube web development suite              |
- | Copyright (C) 2005-2007, Roundcube Dev, - Switzerland                 |
+ | Copyright (C) 2005-2007, The Roundcube Dev Team                       |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  +-----------------------------------------------------------------------+
@@ -484,21 +484,25 @@
 function rcube_check_email(input, inline)
 {
   if (input && window.RegExp) {
-    var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
-    var dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
-    var atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
-    var quoted_pair = '\\x5c[\\x00-\\x7f]';
-    var domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d';
-    var quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22';
-    var sub_domain = '('+atom+'|'+domain_literal+')';
-    var word = '('+atom+'|'+quoted_string+')';
-    var domain = sub_domain+'(\\x2e'+sub_domain+')*';
-    var local_part = word+'(\\x2e'+word+')*';
-    var addr_spec = local_part+'\\x40'+domain;
-    var delim = '[,;\s\n]';
-    var reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
+    var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]',
+      dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]',
+      atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+',
+      quoted_pair = '\\x5c[\\x00-\\x7f]',
+      quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22',
+      // Use simplified domain matching, because we need to allow Unicode characters here
+      // So, e-mail address should be validated also on server side after idn_to_ascii() use
+      //domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d',
+      //sub_domain = '('+atom+'|'+domain_literal+')',
+      domain = '([^@\\x2e]+\\x2e)+[a-z]{2,}',
+      word = '('+atom+'|'+quoted_string+')',
+      delim = '[,;\s\n]',
+      local_part = word+'(\\x2e'+word+')*',
+      addr_spec = local_part+'\\x40'+domain,
+      reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
+
     return reg1.test(input) ? true : false;
   }
+
   return false;
 };
 

--
Gitblit v1.9.1