summaryrefslogtreecommitdiff
path: root/core/include
diff options
context:
space:
mode:
authorWei Li <weili@chromium.org>2015-12-17 17:46:58 -0800
committerWei Li <weili@chromium.org>2015-12-17 17:46:58 -0800
commitcc70b7b55c9edcd0ff038f59080699060fbbede1 (patch)
tree15e4137ce96d2a74450a8a84d2c4c3b31741f2c4 /core/include
parent391783579c5a8aad346b56903b51e6551600550b (diff)
downloadpdfium-cc70b7b55c9edcd0ff038f59080699060fbbede1.tar.xz
Correctly extracting email addresses
An email address contains user name part and host name part. User name allows dash or underscore, but not leading/ending/double period. Host name doesn't allow leading/ending/double period either. BUG=489107 R=jun_fang@foxitsoftware.com, thestig@chromium.org Review URL: https://codereview.chromium.org/1530763005 .
Diffstat (limited to 'core/include')
-rw-r--r--core/include/fxcrt/fx_ext.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/include/fxcrt/fx_ext.h b/core/include/fxcrt/fx_ext.h
index e8d8bc7b5f..a4a92d2fb0 100644
--- a/core/include/fxcrt/fx_ext.h
+++ b/core/include/fxcrt/fx_ext.h
@@ -36,6 +36,15 @@ inline int32_t FXSYS_tolower(int32_t ch) {
inline int32_t FXSYS_toupper(int32_t ch) {
return ch < 'a' || ch > 'z' ? ch : (ch - 0x20);
}
+inline FX_BOOL FXSYS_iswalpha(wchar_t wch) {
+ return (wch >= L'A' && wch <= L'Z') || (wch >= L'a' && wch <= L'z');
+}
+inline FX_BOOL FXSYS_iswdigit(wchar_t wch) {
+ return wch >= L'0' && wch <= L'9';
+}
+inline FX_BOOL FXSYS_iswalnum(wchar_t wch) {
+ return FXSYS_iswalpha(wch) || FXSYS_iswdigit(wch);
+}
inline int FXSYS_toHexDigit(const FX_CHAR c) {
if (!std::isxdigit(c))