From 15c0fccfeff5bf389b494a828c89adb3207c73d6 Mon Sep 17 00:00:00 2001 From: Ryan Harrison Date: Mon, 12 Mar 2018 15:20:04 +0000 Subject: Remove all usages of FXSYS_iswASCIIalnum Instances are either replaced with FXSYS_iswalnum, which calls out to the ICU library to do the proper Unicode operations, or have been converted to a isascii && isalnum pair, if ASCII alnum is actually what was wanted. BUG=pdfium:1035 Change-Id: I959ec8739a4d020e61562180393ab8113a81577c Reviewed-on: https://pdfium-review.googlesource.com/28430 Reviewed-by: dsinclair Commit-Queue: Ryan Harrison --- core/fxcrt/DEPS | 3 +++ core/fxcrt/css/cfx_cssselector.cpp | 4 ++-- core/fxcrt/fx_extension.h | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 core/fxcrt/DEPS (limited to 'core/fxcrt') diff --git a/core/fxcrt/DEPS b/core/fxcrt/DEPS new file mode 100644 index 0000000000..2be03524b6 --- /dev/null +++ b/core/fxcrt/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + '+third_party/icu', +] diff --git a/core/fxcrt/css/cfx_cssselector.cpp b/core/fxcrt/css/cfx_cssselector.cpp index 76cb846890..8a22b12287 100644 --- a/core/fxcrt/css/cfx_cssselector.cpp +++ b/core/fxcrt/css/cfx_cssselector.cpp @@ -16,9 +16,9 @@ namespace { int32_t GetCSSNameLen(const wchar_t* psz, const wchar_t* pEnd) { const wchar_t* pStart = psz; while (psz < pEnd) { - wchar_t wch = *psz; - if (!FXSYS_iswASCIIalnum(wch) && wch != '_' && wch != '-') + if (!isascii(*psz) || (!isalnum(*psz) && *psz != '_' && *psz != '-')) { break; + } ++psz; } return psz - pStart; diff --git a/core/fxcrt/fx_extension.h b/core/fxcrt/fx_extension.h index 491d4b29b7..bd0ac8b303 100644 --- a/core/fxcrt/fx_extension.h +++ b/core/fxcrt/fx_extension.h @@ -12,6 +12,7 @@ #include #include "core/fxcrt/fx_string.h" +#include "third_party/icu/source/common/unicode/uchar.h" #define FX_INVALID_OFFSET static_cast(-1) @@ -45,8 +46,8 @@ inline bool FXSYS_iswASCIIalpha(wchar_t wch) { return FXSYS_isASCIIupper(wch) || FXSYS_isASCIIlower(wch); } -inline bool FXSYS_iswASCIIalnum(wchar_t wch) { - return FXSYS_iswASCIIalpha(wch) || std::iswdigit(wch); +inline bool FXSYS_iswalnum(wchar_t c) { + return u_isalnum(c); } inline bool FXSYS_iswASCIIspace(wchar_t c) { -- cgit v1.2.3