From 78606af0550f34a41d262e0a01381f48b7dfe197 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 9 Oct 2018 19:26:39 +0000 Subject: Clean up CJS_Document. Move code into an anonymous namespace when possible. Remove dead code. Change-Id: I7e523f110f281476e7654a56fb3a28a3d21d9c29 Reviewed-on: https://pdfium-review.googlesource.com/c/43596 Commit-Queue: Lei Zhang Reviewed-by: Tom Sepez --- fxjs/cjs_document.cpp | 149 +++++++++++++++++++++++++------------------------- fxjs/cjs_document.h | 4 -- 2 files changed, 73 insertions(+), 80 deletions(-) diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp index 35bb240671..4d74768b1b 100644 --- a/fxjs/cjs_document.cpp +++ b/fxjs/cjs_document.cpp @@ -27,6 +27,79 @@ #include "fxjs/cjs_printparamsobj.h" #include "fxjs/js_resources.h" +namespace { + +#define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) + +int CountWords(CPDF_TextObject* pTextObj) { + if (!pTextObj) + return 0; + + CPDF_Font* pFont = pTextObj->GetFont(); + if (!pFont) + return 0; + + bool bIsLatin = false; + int nWords = 0; + for (size_t i = 0, sz = pTextObj->CountChars(); i < sz; ++i) { + uint32_t charcode = CPDF_Font::kInvalidCharCode; + float kerning; + + pTextObj->GetCharInfo(i, &charcode, &kerning); + WideString swUnicode = pFont->UnicodeFromCharCode(charcode); + + uint16_t unicode = 0; + if (swUnicode.GetLength() > 0) + unicode = swUnicode[0]; + + if (ISLATINWORD(unicode) && bIsLatin) + continue; + + bIsLatin = ISLATINWORD(unicode); + if (unicode != 0x20) + nWords++; + } + + return nWords; +} + +WideString GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex) { + WideString swRet; + + CPDF_Font* pFont = pTextObj->GetFont(); + if (!pFont) + return L""; + + int nWords = 0; + bool bIsLatin = false; + + for (size_t i = 0, sz = pTextObj->CountChars(); i < sz; ++i) { + uint32_t charcode = CPDF_Font::kInvalidCharCode; + float kerning; + + pTextObj->GetCharInfo(i, &charcode, &kerning); + WideString swUnicode = pFont->UnicodeFromCharCode(charcode); + + uint16_t unicode = 0; + if (swUnicode.GetLength() > 0) + unicode = swUnicode[0]; + + if (ISLATINWORD(unicode) && bIsLatin) { + } else { + bIsLatin = ISLATINWORD(unicode); + if (unicode != 0x20) + nWords++; + } + + if (nWords - 1 == nWordIndex) + swRet += unicode; + } + + return swRet; +} + +} // namespace + const JSPropertySpec CJS_Document::PropertySpecs[] = { {"ADBE", get_ADBE_static, set_ADBE_static}, {"author", get_author_static, set_author_static}, @@ -1090,12 +1163,6 @@ CJS_Result CJS_Document::getLinks( return CJS_Result::Success(); } -bool CJS_Document::IsEnclosedInRect(CFX_FloatRect rect, - CFX_FloatRect LinkRect) { - return (rect.left <= LinkRect.left && rect.top <= LinkRect.top && - rect.right >= LinkRect.right && rect.bottom >= LinkRect.bottom); -} - CJS_Result CJS_Document::addIcon( CJS_Runtime* pRuntime, const std::vector>& params) { @@ -1310,76 +1377,6 @@ CJS_Result CJS_Document::getPrintParams( return CJS_Result::Failure(JSMessage::kNotSupportedError); } -#define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) - -int CJS_Document::CountWords(CPDF_TextObject* pTextObj) { - if (!pTextObj) - return 0; - - CPDF_Font* pFont = pTextObj->GetFont(); - if (!pFont) - return 0; - - bool bIsLatin = false; - int nWords = 0; - for (size_t i = 0, sz = pTextObj->CountChars(); i < sz; ++i) { - uint32_t charcode = CPDF_Font::kInvalidCharCode; - float kerning; - - pTextObj->GetCharInfo(i, &charcode, &kerning); - WideString swUnicode = pFont->UnicodeFromCharCode(charcode); - - uint16_t unicode = 0; - if (swUnicode.GetLength() > 0) - unicode = swUnicode[0]; - - if (ISLATINWORD(unicode) && bIsLatin) - continue; - - bIsLatin = ISLATINWORD(unicode); - if (unicode != 0x20) - nWords++; - } - - return nWords; -} - -WideString CJS_Document::GetObjWordStr(CPDF_TextObject* pTextObj, - int nWordIndex) { - WideString swRet; - - CPDF_Font* pFont = pTextObj->GetFont(); - if (!pFont) - return L""; - - int nWords = 0; - bool bIsLatin = false; - - for (size_t i = 0, sz = pTextObj->CountChars(); i < sz; ++i) { - uint32_t charcode = CPDF_Font::kInvalidCharCode; - float kerning; - - pTextObj->GetCharInfo(i, &charcode, &kerning); - WideString swUnicode = pFont->UnicodeFromCharCode(charcode); - - uint16_t unicode = 0; - if (swUnicode.GetLength() > 0) - unicode = swUnicode[0]; - - if (ISLATINWORD(unicode) && bIsLatin) { - } else { - bIsLatin = ISLATINWORD(unicode); - if (unicode != 0x20) - nWords++; - } - - if (nWords - 1 == nWordIndex) - swRet += unicode; - } - - return swRet; -} - CJS_Result CJS_Document::get_zoom(CJS_Runtime* pRuntime) { return CJS_Result::Success(); } diff --git a/fxjs/cjs_document.h b/fxjs/cjs_document.h index 0f25703f34..c74855ebb0 100644 --- a/fxjs/cjs_document.h +++ b/fxjs/cjs_document.h @@ -298,10 +298,6 @@ class CJS_Document final : public CJS_Object, public Observable { CJS_Result removeIcon(CJS_Runtime* pRuntime, const std::vector>& params); - bool IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect); - int CountWords(CPDF_TextObject* pTextObj); - WideString GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex); - CJS_Result getPropertyInternal(CJS_Runtime* pRuntime, const ByteString& propName); CJS_Result setPropertyInternal(CJS_Runtime* pRuntime, -- cgit v1.2.3