Replace FPDFTEXT_CHAR_* #defines with enum CPDF_TextPage::CharType.
Also rename variables that store FPDFTEXT_CHAR_*, which are named
"m_Flag" to "m_CharType".
Change-Id: I9bd412a316233378cc8421289a72e71f843597ac
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65453
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdftext/cpdf_linkextract.cpp b/core/fpdftext/cpdf_linkextract.cpp
index 84bb415..b3be585 100644
--- a/core/fpdftext/cpdf_linkextract.cpp
+++ b/core/fpdftext/cpdf_linkextract.cpp
@@ -120,11 +120,12 @@
const WideString page_text = m_pTextPage->GetAllPageText();
while (pos < nTotalChar) {
const CPDF_TextPage::CharInfo& char_info = m_pTextPage->GetCharInfo(pos);
- if (char_info.m_Flag != FPDFTEXT_CHAR_GENERATED &&
+ if (char_info.m_CharType != CPDF_TextPage::CharType::kGenerated &&
char_info.m_Unicode != TEXT_SPACE_CHAR && pos != nTotalChar - 1) {
- bAfterHyphen = (char_info.m_Flag == FPDFTEXT_CHAR_HYPHEN ||
- (char_info.m_Flag == FPDFTEXT_CHAR_NORMAL &&
- char_info.m_Unicode == TEXT_HYPHEN_CHAR));
+ bAfterHyphen =
+ (char_info.m_CharType == CPDF_TextPage::CharType::kHyphen ||
+ (char_info.m_CharType == CPDF_TextPage::CharType::kNormal &&
+ char_info.m_Unicode == TEXT_HYPHEN_CHAR));
++pos;
continue;
}
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 39807b2..37de028 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -122,7 +122,7 @@
case 0x97:
case 0x98:
case 0xfffe:
- return char_info.m_Flag != FPDFTEXT_CHAR_HYPHEN;
+ return char_info.m_CharType != CPDF_TextPage::CharType::kHyphen;
default:
return false;
}
@@ -257,7 +257,7 @@
for (int i = 0; i < nCount; ++i) {
const CharInfo& charinfo = m_CharList[i];
- if (charinfo.m_Flag == FPDFTEXT_CHAR_GENERATED ||
+ if (charinfo.m_CharType == CPDF_TextPage::CharType::kGenerated ||
(charinfo.m_Unicode != 0 && !IsControlChar(charinfo)) ||
(charinfo.m_Unicode == 0 && charinfo.m_CharCode != 0)) {
if (m_CharIndices.size() % 2) {
@@ -327,7 +327,7 @@
bool bFlagNewRect = true;
while (nCount--) {
const CharInfo& info_curchar = m_CharList[curPos++];
- if (info_curchar.m_Flag == FPDFTEXT_CHAR_GENERATED)
+ if (info_curchar.m_CharType == CPDF_TextPage::CharType::kGenerated)
continue;
if (info_curchar.m_CharBox.Width() < kSizeEpsilon ||
info_curchar.m_CharBox.Height() < kSizeEpsilon) {
@@ -640,7 +640,7 @@
Unicode_GetNormalization(wChar, pDst.get());
for (size_t nIndex = 0; nIndex < nCount; ++nIndex) {
info2.m_Unicode = pDst.get()[nIndex];
- info2.m_Flag = FPDFTEXT_CHAR_PIECE;
+ info2.m_CharType = CPDF_TextPage::CharType::kPiece;
m_TextBuf.AppendChar(info2.m_Unicode);
m_CharList.push_back(info2);
}
@@ -669,7 +669,7 @@
Unicode_GetNormalization(wChar, pDst.get());
for (size_t nIndex = 0; nIndex < nCount; ++nIndex) {
info2.m_Unicode = pDst.get()[nIndex];
- info2.m_Flag = FPDFTEXT_CHAR_PIECE;
+ info2.m_CharType = CPDF_TextPage::CharType::kPiece;
m_TextBuf.AppendChar(info2.m_Unicode);
m_CharList.push_back(info2);
}
@@ -874,7 +874,7 @@
charinfo.m_Index = m_TextBuf.GetLength();
charinfo.m_Unicode = wChar;
charinfo.m_CharCode = pFont->CharCodeFromUnicode(wChar);
- charinfo.m_Flag = FPDFTEXT_CHAR_PIECE;
+ charinfo.m_CharType = CPDF_TextPage::CharType::kPiece;
charinfo.m_pTextObj = pTextObj;
charinfo.m_CharBox = pTextObj->GetRect();
charinfo.m_Matrix = matrix;
@@ -970,7 +970,7 @@
CharInfo* charinfo = &m_TempCharList.back();
m_TempTextBuf.Delete(m_TempTextBuf.GetLength() - 1, 1);
charinfo->m_Unicode = 0x2;
- charinfo->m_Flag = FPDFTEXT_CHAR_HYPHEN;
+ charinfo->m_CharType = CPDF_TextPage::CharType::kHyphen;
m_TempTextBuf.AppendChar(0xfffe);
break;
}
@@ -1035,7 +1035,7 @@
}
if (threshold && (spacing && spacing >= threshold)) {
charinfo.m_Unicode = TEXT_SPACE_CHAR;
- charinfo.m_Flag = FPDFTEXT_CHAR_GENERATED;
+ charinfo.m_CharType = CPDF_TextPage::CharType::kGenerated;
charinfo.m_pTextObj = pTextObj;
charinfo.m_Index = m_TextBuf.GetLength();
m_TempTextBuf.AppendChar(TEXT_SPACE_CHAR);
@@ -1059,8 +1059,8 @@
}
charinfo.m_Index = -1;
charinfo.m_CharCode = item.m_CharCode;
- charinfo.m_Flag =
- bNoUnicode ? FPDFTEXT_CHAR_UNUNICODE : FPDFTEXT_CHAR_NORMAL;
+ charinfo.m_CharType = bNoUnicode ? CPDF_TextPage::CharType::kNotUnicode
+ : CPDF_TextPage::CharType::kNormal;
charinfo.m_pTextObj = pTextObj;
charinfo.m_Origin = matrix.Transform(item.m_Origin);
@@ -1180,7 +1180,8 @@
}
const CharInfo* pPrevCharInfo = GetPrevCharInfo();
- return pPrevCharInfo && pPrevCharInfo->m_Flag == FPDFTEXT_CHAR_PIECE &&
+ return pPrevCharInfo &&
+ pPrevCharInfo->m_CharType == CPDF_TextPage::CharType::kPiece &&
IsHyphenCode(pPrevCharInfo->m_Unicode);
}
@@ -1394,7 +1395,7 @@
info.m_Index = m_TextBuf.GetLength();
info.m_CharCode = CPDF_Font::kInvalidCharCode;
info.m_Unicode = unicode;
- info.m_Flag = FPDFTEXT_CHAR_GENERATED;
+ info.m_CharType = CPDF_TextPage::CharType::kGenerated;
int preWidth = 0;
if (pPrevCharInfo->m_pTextObj &&
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h
index ad12976..3ea1380 100644
--- a/core/fpdftext/cpdf_textpage.h
+++ b/core/fpdftext/cpdf_textpage.h
@@ -23,12 +23,6 @@
class CPDF_Page;
class CPDF_TextObject;
-#define FPDFTEXT_CHAR_NORMAL 0
-#define FPDFTEXT_CHAR_GENERATED 1
-#define FPDFTEXT_CHAR_UNUNICODE 2
-#define FPDFTEXT_CHAR_HYPHEN 3
-#define FPDFTEXT_CHAR_PIECE 4
-
#define TEXT_SPACE_CHAR L' '
#define TEXT_LINEFEED_CHAR L'\n'
#define TEXT_RETURN_CHAR L'\r'
@@ -47,6 +41,14 @@
class CPDF_TextPage {
public:
+ enum class CharType : uint8_t {
+ kNormal,
+ kGenerated,
+ kNotUnicode,
+ kHyphen,
+ kPiece,
+ };
+
class CharInfo {
public:
CharInfo();
@@ -56,7 +58,7 @@
int m_Index = 0;
uint32_t m_CharCode = 0;
wchar_t m_Unicode = 0;
- int32_t m_Flag = 0;
+ CharType m_CharType = CharType::kNormal;
CFX_PointF m_Origin;
CFX_FloatRect m_CharBox;
UnownedPtr<CPDF_TextObject> m_pTextObj;