summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2018-03-12 15:20:04 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-03-12 15:20:04 +0000
commit15c0fccfeff5bf389b494a828c89adb3207c73d6 (patch)
tree3b1f4691759b4e4e45d49a2d48f4548ad16a224c /core
parentc2df008640f56631735dd3ae89e118c9c56cd36d (diff)
downloadpdfium-15c0fccfeff5bf389b494a828c89adb3207c73d6.tar.xz
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 <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core')
-rw-r--r--core/fpdftext/cpdf_linkextract.cpp4
-rw-r--r--core/fpdftext/cpdf_textpage.cpp2
-rw-r--r--core/fxcrt/DEPS3
-rw-r--r--core/fxcrt/css/cfx_cssselector.cpp4
-rw-r--r--core/fxcrt/fx_extension.h5
5 files changed, 11 insertions, 7 deletions
diff --git a/core/fpdftext/cpdf_linkextract.cpp b/core/fpdftext/cpdf_linkextract.cpp
index f8144a171b..c3cf4fc1ef 100644
--- a/core/fpdftext/cpdf_linkextract.cpp
+++ b/core/fpdftext/cpdf_linkextract.cpp
@@ -246,7 +246,7 @@ bool CPDF_LinkExtract::CheckMailLink(WideString* str) {
size_t pPos = aPos.value(); // Used to track the position of '@' or '.'.
for (size_t i = aPos.value(); i > 0; i--) {
wchar_t ch = (*str)[i - 1];
- if (ch == L'_' || ch == L'-' || FXSYS_iswASCIIalnum(ch))
+ if (ch == L'_' || ch == L'-' || FXSYS_iswalnum(ch))
continue;
if (ch != L'.' || i == pPos || i == 1) {
@@ -282,7 +282,7 @@ bool CPDF_LinkExtract::CheckMailLink(WideString* str) {
pPos = 0; // Used to track the position of '.'.
for (size_t i = aPos.value() + 1; i < nLen; i++) {
wchar_t wch = (*str)[i];
- if (wch == L'-' || FXSYS_iswASCIIalnum(wch))
+ if (wch == L'-' || FXSYS_iswalnum(wch))
continue;
if (wch != L'.' || i == pPos + 1) {
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 5019eabaf5..7541dae6a7 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -1210,7 +1210,7 @@ bool CPDF_TextPage::IsHyphen(wchar_t curChar) const {
if ((iter + 1) != curText.rend()) {
iter++;
- if (FXSYS_iswASCIIalpha(*iter) && FXSYS_iswASCIIalnum(curChar))
+ if (FXSYS_iswASCIIalpha(*iter) && FXSYS_iswalnum(curChar))
return true;
}
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 <memory>
#include "core/fxcrt/fx_string.h"
+#include "third_party/icu/source/common/unicode/uchar.h"
#define FX_INVALID_OFFSET static_cast<uint32_t>(-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) {