diff options
author | Lei Zhang <thestig@chromium.org> | 2020-01-23 22:54:08 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2020-01-23 22:54:08 +0000 |
commit | d1fbe93b84c05c0fcce02a4bf9ccc2536731bebb (patch) | |
tree | 6f7ac5b080bbfc39930da74f427536d8584f1c34 /core | |
parent | ad898f75dcc248946f66860fa92e73ce82e05b6e (diff) | |
download | pdfium-d1fbe93b84c05c0fcce02a4bf9ccc2536731bebb.tar.gz |
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>
Diffstat (limited to 'core')
-rw-r--r-- | core/fpdftext/cpdf_linkextract.cpp | 9 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpage.cpp | 25 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpage.h | 16 |
3 files changed, 27 insertions, 23 deletions
diff --git a/core/fpdftext/cpdf_linkextract.cpp b/core/fpdftext/cpdf_linkextract.cpp index 84bb415ae..b3be58542 100644 --- a/core/fpdftext/cpdf_linkextract.cpp +++ b/core/fpdftext/cpdf_linkextract.cpp @@ -120,11 +120,12 @@ void CPDF_LinkExtract::ExtractLinks() { 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 39807b248..37de02841 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp @@ -122,7 +122,7 @@ bool IsControlChar(const CPDF_TextPage::CharInfo& char_info) { 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 @@ void CPDF_TextPage::Init() { 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 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start, 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 @@ void CPDF_TextPage::AddCharInfoByLRDirection(wchar_t wChar, 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 @@ void CPDF_TextPage::AddCharInfoByRLDirection(wchar_t wChar, 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 @@ void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj) { 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 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { 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 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { } 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 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { } 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 @@ bool CPDF_TextPage::IsHyphen(wchar_t curChar) const { } 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 @@ Optional<CPDF_TextPage::CharInfo> CPDF_TextPage::GenerateCharInfo( 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 ad1297668..3ea138051 100644 --- a/core/fpdftext/cpdf_textpage.h +++ b/core/fpdftext/cpdf_textpage.h @@ -23,12 +23,6 @@ class CPDF_FormObject; 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 @@ struct PDFTEXT_Obj { class CPDF_TextPage { public: + enum class CharType : uint8_t { + kNormal, + kGenerated, + kNotUnicode, + kHyphen, + kPiece, + }; + class CharInfo { public: CharInfo(); @@ -56,7 +58,7 @@ class CPDF_TextPage { 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; |