Chromium Code Reviews| Index: core/fpdftext/fpdf_text_int.cpp |
| diff --git a/core/fpdftext/fpdf_text_int.cpp b/core/fpdftext/fpdf_text_int.cpp |
| index b3558ff2a847f886c9f0002df26f0259608995f6..cdaf9085a9b86eb963a1c3b8632d03cff56cf382 100644 |
| --- a/core/fpdftext/fpdf_text_int.cpp |
| +++ b/core/fpdftext/fpdf_text_int.cpp |
| @@ -28,10 +28,6 @@ |
| #include "core/fxcrt/include/fx_ucd.h" |
| #include "third_party/base/stl_util.h" |
| -#define FPDFTEXT_RLTB 1 |
| -#define FPDFTEXT_LEFT -1 |
| -#define FPDFTEXT_RIGHT 1 |
|
dsinclair
2016/05/02 20:59:55
RLTB and RIGHT were both the same value so I remov
Tom Sepez
2016/05/02 21:45:39
Acknowledged.
|
| - |
| #define FPDFTEXT_MATCHCASE 0x00000001 |
| #define FPDFTEXT_MATCHWHOLEWORD 0x00000002 |
| #define FPDFTEXT_CONSECUTIVE 0x00000004 |
| @@ -42,9 +38,15 @@ |
| #define FPDFTEXT_CHAR_UNUNICODE 2 |
| #define FPDFTEXT_CHAR_HYPHEN 3 |
| #define FPDFTEXT_CHAR_PIECE 4 |
| -#define FPDFTEXT_MC_PASS 0 |
| -#define FPDFTEXT_MC_DONE 1 |
| -#define FPDFTEXT_MC_DELAY 2 |
| + |
| +#define TEXT_BLANK_CHAR L' ' |
| +#define TEXT_LINEFEED_CHAR L'\n' |
| +#define TEXT_RETURN_CHAR L'\r' |
| +#define TEXT_EMPTY L"" |
| +#define TEXT_BLANK L" " |
| +#define TEXT_RETURN_LINEFEED L"\r\n" |
| +#define TEXT_LINEFEED L"\n" |
| +#define TEXT_CHARRATIO_GAPDELTA 0.070 |
| namespace { |
| @@ -143,16 +145,7 @@ FX_STRSIZE Unicode_GetNormalization(FX_WCHAR wch, FX_WCHAR* pDst) { |
| } // namespace |
| -#define TEXT_BLANK_CHAR L' ' |
| -#define TEXT_LINEFEED_CHAR L'\n' |
| -#define TEXT_RETURN_CHAR L'\r' |
| -#define TEXT_EMPTY L"" |
| -#define TEXT_BLANK L" " |
| -#define TEXT_RETURN_LINEFEED L"\r\n" |
| -#define TEXT_LINEFEED L"\n" |
| -#define TEXT_CHARRATIO_GAPDELTA 0.070 |
| - |
| -CPDF_TextPage::CPDF_TextPage(const CPDF_Page* pPage, int flags) |
| +CPDF_TextPage::CPDF_TextPage(const CPDF_Page* pPage, FPDFText_Direction flags) |
| : m_pPage(pPage), |
| m_parserflag(flags), |
| m_pPreTextObj(nullptr), |
| @@ -727,13 +720,10 @@ int CPDF_TextPage::CountBoundedSegments(FX_FLOAT left, |
| return m_Segments.GetSize(); |
| } |
| -int CPDF_TextPage::GetWordBreak(int index, int direction) const { |
| +int CPDF_TextPage::GetWordBreak(int index, FPDFText_Direction direction) const { |
| if (!m_bIsParsed) |
| return -1; |
| - if (direction != FPDFTEXT_LEFT && direction != FPDFTEXT_RIGHT) |
|
Tom Sepez
2016/05/02 21:45:39
given values of -1 and 1, is it possible that they
dsinclair
2016/05/03 13:58:16
Turns out, GetWordBreak is never called. Removed.
|
| - return -1; |
| - |
| if (index < 0 || index >= pdfium::CollectionSize<int>(m_CharList)) |
| return -1; |
| @@ -745,12 +735,12 @@ int CPDF_TextPage::GetWordBreak(int index, int direction) const { |
| return index; |
| } |
| int breakPos = index; |
| - if (direction == FPDFTEXT_LEFT) { |
| + if (direction == FPDFText_Direction::Left) { |
| while (--breakPos > 0) { |
| if (!IsLetter(m_CharList[breakPos].m_Unicode)) |
| break; |
| } |
| - } else if (direction == FPDFTEXT_RIGHT) { |
| + } else if (direction == FPDFText_Direction::Right) { |
| while (++breakPos < pdfium::CollectionSize<int>(m_CharList)) { |
| if (!IsLetter(m_CharList[breakPos].m_Unicode)) |
| break; |
| @@ -996,7 +986,7 @@ void CPDF_TextPage::CloseTempLine() { |
| bPrevSpace = TRUE; |
| } |
| CFX_BidiString bidi(str); |
| - if (m_parserflag == FPDFTEXT_RLTB) |
| + if (m_parserflag == FPDFText_Direction::Right) |
| bidi.SetOverallDirectionRight(); |
| CFX_BidiChar::Direction eCurrentDirection = bidi.OverallDirection(); |
| for (const auto& segment : bidi) { |
| @@ -1098,16 +1088,17 @@ void CPDF_TextPage::ProcessTextObject( |
| } |
| } |
| -int32_t CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { |
| +FPDFText_MarkedContent CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { |
| CPDF_TextObject* pTextObj = Obj.m_pTextObj; |
| CPDF_ContentMarkData* pMarkData = |
| (CPDF_ContentMarkData*)pTextObj->m_ContentMark.GetObject(); |
| if (!pMarkData) |
| - return FPDFTEXT_MC_PASS; |
| + return FPDFText_MarkedContent::Pass; |
| int nContentMark = pMarkData->CountItems(); |
| if (nContentMark < 1) |
| - return FPDFTEXT_MC_PASS; |
| + return FPDFText_MarkedContent::Pass; |
| + |
| CFX_WideString actText; |
| FX_BOOL bExist = FALSE; |
| CPDF_Dictionary* pDict = NULL; |
| @@ -1125,19 +1116,19 @@ int32_t CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { |
| } |
| } |
| if (!bExist) |
| - return FPDFTEXT_MC_PASS; |
| + return FPDFText_MarkedContent::Pass; |
| if (m_pPreTextObj) { |
| CPDF_ContentMarkData* pPreMarkData = |
| (CPDF_ContentMarkData*)m_pPreTextObj->m_ContentMark.GetObject(); |
| if (pPreMarkData && pPreMarkData->CountItems() == n && |
| pDict == pPreMarkData->GetItem(n - 1).GetParam()) { |
| - return FPDFTEXT_MC_DONE; |
| + return FPDFText_MarkedContent::Done; |
| } |
| } |
| FX_STRSIZE nItems = actText.GetLength(); |
| if (nItems < 1) |
| - return FPDFTEXT_MC_PASS; |
| + return FPDFText_MarkedContent::Pass; |
| CPDF_Font* pFont = pTextObj->GetFont(); |
| bExist = FALSE; |
| @@ -1149,7 +1140,7 @@ int32_t CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { |
| } |
| } |
| if (!bExist) |
| - return FPDFTEXT_MC_PASS; |
| + return FPDFText_MarkedContent::Pass; |
| bExist = FALSE; |
| for (FX_STRSIZE i = 0; i < nItems; i++) { |
| @@ -1160,9 +1151,9 @@ int32_t CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { |
| } |
| } |
| if (!bExist) |
| - return FPDFTEXT_MC_DONE; |
| + return FPDFText_MarkedContent::Done; |
| - return FPDFTEXT_MC_DELAY; |
| + return FPDFText_MarkedContent::Delay; |
| } |
| void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj) { |
| @@ -1285,8 +1276,8 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { |
| CFX_Matrix matrix; |
| pTextObj->GetTextMatrix(&matrix); |
| matrix.Concat(formMatrix); |
| - int32_t bPreMKC = PreMarkedContent(Obj); |
| - if (FPDFTEXT_MC_DONE == bPreMKC) { |
| + FPDFText_MarkedContent bPreMKC = PreMarkedContent(Obj); |
|
Tom Sepez
2016/05/02 21:45:39
prolly shoujld be ePreMKC since its an enum not a
dsinclair
2016/05/03 13:58:16
Sigh, hungarian notation, so verbose.
Tom Sepez
2016/05/04 20:31:13
Actually, it points out a problem that when the ty
|
| + if (bPreMKC == FPDFText_MarkedContent::Done) { |
| m_pPreTextObj = pTextObj; |
| m_perMatrix.Copy(formMatrix); |
| return; |
| @@ -1362,7 +1353,7 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { |
| CFX_FloatRect(Obj.m_pTextObj->m_Left, Obj.m_pTextObj->m_Bottom, |
| Obj.m_pTextObj->m_Right, Obj.m_pTextObj->m_Top); |
| } |
| - if (FPDFTEXT_MC_DELAY == bPreMKC) { |
| + if (bPreMKC == FPDFText_MarkedContent::Delay) { |
| ProcessMarkedContent(Obj); |
| m_pPreTextObj = pTextObj; |
| m_perMatrix.Copy(formMatrix); |