diff options
23 files changed, 108 insertions, 81 deletions
@@ -201,7 +201,7 @@ static_library("fdrm") { "core/fdrm/crypto/fx_crypt.cpp", "core/fdrm/crypto/fx_crypt_aes.cpp", "core/fdrm/crypto/fx_crypt_sha.cpp", - "core/include/fdrm/fx_crypt.h", + "core/fdrm/crypto/include/fx_crypt.h", ] configs += [ ":pdfium_config" ] } @@ -390,11 +390,13 @@ static_library("fpdfapi") { static_library("fpdftext") { sources = [ "core/fpdftext/fpdf_text_int.cpp", + "core/fpdftext/include/ipdf_linkextract.h", + "core/fpdftext/include/ipdf_textpage.h", + "core/fpdftext/include/ipdf_textpagefind.h", "core/fpdftext/text_int.h", "core/fpdftext/unicodenormalization.cpp", "core/fpdftext/unicodenormalizationdata.cpp", "core/fpdftext/unicodenormalizationdata.h", - "core/include/fpdftext/fpdf_text.h", ] configs += [ ":pdfium_config" ] } diff --git a/core/fdrm/crypto/fx_crypt.cpp b/core/fdrm/crypto/fx_crypt.cpp index c1016cdcd9..d5cbdb5a82 100644 --- a/core/fdrm/crypto/fx_crypt.cpp +++ b/core/fdrm/crypto/fx_crypt.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/fdrm/crypto/fx_crypt_aes.cpp b/core/fdrm/crypto/fx_crypt_aes.cpp index d27783f820..b56d8fe33c 100644 --- a/core/fdrm/crypto/fx_crypt_aes.cpp +++ b/core/fdrm/crypto/fx_crypt_aes.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/fdrm/crypto/fx_crypt_sha.cpp b/core/fdrm/crypto/fx_crypt_sha.cpp index c7d171098b..5f1558943d 100644 --- a/core/fdrm/crypto/fx_crypt_sha.cpp +++ b/core/fdrm/crypto/fx_crypt_sha.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/include/fdrm/fx_crypt.h b/core/fdrm/crypto/include/fx_crypt.h index 259dc85477..fdba0e7164 100644 --- a/core/include/fdrm/fx_crypt.h +++ b/core/fdrm/crypto/include/fx_crypt.h @@ -4,8 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef CORE_INCLUDE_FDRM_FX_CRYPT_H_ -#define CORE_INCLUDE_FDRM_FX_CRYPT_H_ +#ifndef CORE_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ +#define CORE_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ #include "core/include/fxcrt/fx_system.h" @@ -68,4 +68,4 @@ void CRYPT_SetPubKeyDecryptor(FX_BOOL (*func)(const uint8_t* pData, }; #endif -#endif // CORE_INCLUDE_FDRM_FX_CRYPT_H_ +#endif // CORE_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ diff --git a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp index 1a31364b1c..76ecdccae3 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp @@ -6,8 +6,8 @@ #include "core/fpdfapi/fpdf_page/pageint.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/fpdfapi/fpdf_font/font_int.h" -#include "core/include/fdrm/fx_crypt.h" #include "core/include/fpdfapi/cpdf_array.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_document.h" diff --git a/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp index b73238997c..0be414a135 100644 --- a/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp +++ b/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp @@ -8,7 +8,7 @@ #include <time.h> -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/include/fpdfapi/cpdf_parser.h" #include "core/include/fpdfapi/cpdf_simple_parser.h" #include "core/include/fpdfapi/ipdf_security_handler.h" diff --git a/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp index e5eb4c8469..6da4cb1ff6 100644 --- a/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp +++ b/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp @@ -8,8 +8,8 @@ #include <time.h> +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.h" -#include "core/include/fdrm/fx_crypt.h" #include "core/include/fpdfapi/cpdf_array.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_object.h" diff --git a/core/fpdftext/fpdf_text_int.cpp b/core/fpdftext/fpdf_text_int.cpp index d16ccb8dde..1bd544c444 100644 --- a/core/fpdftext/fpdf_text_int.cpp +++ b/core/fpdftext/fpdf_text_int.cpp @@ -13,18 +13,28 @@ #include <utility> #include <vector> +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_string.h" #include "core/include/fpdfapi/fpdf_module.h" #include "core/include/fpdfapi/fpdf_page.h" #include "core/include/fpdfapi/fpdf_pageobj.h" #include "core/include/fpdfapi/fpdf_resource.h" -#include "core/include/fpdftext/fpdf_text.h" #include "core/include/fxcrt/fx_bidi.h" #include "core/include/fxcrt/fx_ext.h" #include "core/include/fxcrt/fx_ucd.h" #include "third_party/base/stl_util.h" +#define FPDFTEXT_RLTB 1 +#define FPDFTEXT_LEFT -1 +#define FPDFTEXT_RIGHT 1 + +#define FPDFTEXT_MATCHCASE 0x00000001 +#define FPDFTEXT_MATCHWHOLEWORD 0x00000002 +#define FPDFTEXT_CONSECUTIVE 0x00000004 + namespace { FX_BOOL _IsIgnoreSpaceCharacter(FX_WCHAR curChar) { @@ -1899,7 +1909,8 @@ CPDF_TextPageFind::CPDF_TextPageFind(const IPDF_TextPage* pTextPage) FPDF_CHAR_INFO info; pTextPage->GetCharInfo(i, &info); int indexSize = pdfium::CollectionSize<int>(m_CharIndex); - if (info.m_Flag == CHAR_NORMAL || info.m_Flag == CHAR_GENERATED) { + if (info.m_Flag == FPDFTEXT_CHAR_NORMAL || + info.m_Flag == FPDFTEXT_CHAR_GENERATED) { if (indexSize % 2) { m_CharIndex.push_back(1); } else { @@ -2325,8 +2336,8 @@ void CPDF_LinkExtract::ParseLink() { while (pos < TotalChar) { FPDF_CHAR_INFO pageChar; m_pTextPage->GetCharInfo(pos, &pageChar); - if (pageChar.m_Flag == CHAR_GENERATED || pageChar.m_Unicode == 0x20 || - pos == TotalChar - 1) { + if (pageChar.m_Flag == FPDFTEXT_CHAR_GENERATED || + pageChar.m_Unicode == 0x20 || pos == TotalChar - 1) { int nCount = pos - start; if (pos == TotalChar - 1) { nCount++; diff --git a/core/fpdftext/include/ipdf_linkextract.h b/core/fpdftext/include/ipdf_linkextract.h new file mode 100644 index 0000000000..2d7fe02127 --- /dev/null +++ b/core/fpdftext/include/ipdf_linkextract.h @@ -0,0 +1,26 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef CORE_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ + +#include "core/include/fxcrt/fx_coordinates.h" +#include "core/include/fxcrt/fx_system.h" +#include "core/fpdftext/include/ipdf_textpage.h" + +class IPDF_LinkExtract { + public: + static IPDF_LinkExtract* CreateLinkExtract(); + virtual ~IPDF_LinkExtract() {} + + virtual FX_BOOL ExtractLinks(const IPDF_TextPage* pTextPage) = 0; + virtual int CountLinks() const = 0; + virtual CFX_WideString GetURL(int index) const = 0; + virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; + virtual void GetRects(int index, CFX_RectArray& rects) const = 0; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ diff --git a/core/include/fpdftext/fpdf_text.h b/core/fpdftext/include/ipdf_textpage.h index a3457fcf06..1698e9ab28 100644 --- a/core/include/fpdftext/fpdf_text.h +++ b/core/fpdftext/include/ipdf_textpage.h @@ -1,27 +1,17 @@ -// Copyright 2014 PDFium Authors. All rights reserved. +// Copyright 2016 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef CORE_INCLUDE_FPDFTEXT_FPDF_TEXT_H_ -#define CORE_INCLUDE_FPDFTEXT_FPDF_TEXT_H_ +#ifndef CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ +#include "core/include/fpdfapi/fpdf_page.h" +#include "core/include/fpdfapi/fpdf_pageobj.h" #include "core/include/fxcrt/fx_coordinates.h" #include "core/include/fxcrt/fx_system.h" -class CPDF_Page; -class CPDF_TextObject; -class IPDF_LinkExtract; -class IPDF_ReflowedPage; -class IPDF_TextPage; -class IPDF_TextPageFind; - -#define CHAR_ERROR -1 -#define CHAR_NORMAL 0 -#define CHAR_GENERATED 1 -#define CHAR_UNUNICODE 2 - struct FPDF_CHAR_INFO { FX_WCHAR m_Unicode; FX_WCHAR m_Charcode; @@ -34,20 +24,9 @@ struct FPDF_CHAR_INFO { CFX_Matrix m_Matrix; }; -using CFX_RectArray = CFX_ArrayTemplate<CFX_FloatRect>; - -#define FPDFTEXT_LRTB 0 -#define FPDFTEXT_RLTB 1 -#define FPDFTEXT_TBRL 2 -#define FPDFTEXT_LEFT -1 -#define FPDFTEXT_RIGHT 1 -#define FPDFTEXT_UP -2 -#define FPDFTEXT_DOWN 2 - class IPDF_TextPage { public: static IPDF_TextPage* CreateTextPage(const CPDF_Page* pPage, int flags = 0); - static IPDF_TextPage* CreateReflowTextPage(IPDF_ReflowedPage* pRefPage); virtual ~IPDF_TextPage() {} virtual void ParseTextPage() = 0; @@ -87,35 +66,4 @@ class IPDF_TextPage { virtual CFX_WideString GetPageText(int start = 0, int nCount = -1) const = 0; }; -#define FPDFTEXT_MATCHCASE 0x00000001 -#define FPDFTEXT_MATCHWHOLEWORD 0x00000002 -#define FPDFTEXT_CONSECUTIVE 0x00000004 - -class IPDF_TextPageFind { - public: - static IPDF_TextPageFind* CreatePageFind(const IPDF_TextPage* pTextPage); - virtual ~IPDF_TextPageFind() {} - - virtual FX_BOOL FindFirst(const CFX_WideString& findwhat, - int flags, - int startPos = 0) = 0; - virtual FX_BOOL FindNext() = 0; - virtual FX_BOOL FindPrev() = 0; - virtual void GetRectArray(CFX_RectArray& rects) const = 0; - virtual int GetCurOrder() const = 0; - virtual int GetMatchedCount() const = 0; -}; - -class IPDF_LinkExtract { - public: - static IPDF_LinkExtract* CreateLinkExtract(); - virtual ~IPDF_LinkExtract() {} - - virtual FX_BOOL ExtractLinks(const IPDF_TextPage* pTextPage) = 0; - virtual int CountLinks() const = 0; - virtual CFX_WideString GetURL(int index) const = 0; - virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; - virtual void GetRects(int index, CFX_RectArray& rects) const = 0; -}; - -#endif // CORE_INCLUDE_FPDFTEXT_FPDF_TEXT_H_ +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ diff --git a/core/fpdftext/include/ipdf_textpagefind.h b/core/fpdftext/include/ipdf_textpagefind.h new file mode 100644 index 0000000000..88774b6061 --- /dev/null +++ b/core/fpdftext/include/ipdf_textpagefind.h @@ -0,0 +1,29 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ + +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/include/fxcrt/fx_coordinates.h" +#include "core/include/fxcrt/fx_string.h" + +class IPDF_TextPageFind { + public: + static IPDF_TextPageFind* CreatePageFind(const IPDF_TextPage* pTextPage); + virtual ~IPDF_TextPageFind() {} + + virtual FX_BOOL FindFirst(const CFX_WideString& findwhat, + int flags, + int startPos = 0) = 0; + virtual FX_BOOL FindNext() = 0; + virtual FX_BOOL FindPrev() = 0; + virtual void GetRectArray(CFX_RectArray& rects) const = 0; + virtual int GetCurOrder() const = 0; + virtual int GetMatchedCount() const = 0; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ diff --git a/core/fpdftext/text_int.h b/core/fpdftext/text_int.h index bc110c719b..42e254ee63 100644 --- a/core/fpdftext/text_int.h +++ b/core/fpdftext/text_int.h @@ -10,8 +10,10 @@ #include <deque> #include <vector> +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfapi/fpdf_page.h" -#include "core/include/fpdftext/fpdf_text.h" #include "core/include/fxcrt/fx_basic.h" class CFX_BidiChar; diff --git a/core/include/fxcrt/fx_coordinates.h b/core/include/fxcrt/fx_coordinates.h index 53b4c1a12e..0422da1eaa 100644 --- a/core/include/fxcrt/fx_coordinates.h +++ b/core/include/fxcrt/fx_coordinates.h @@ -310,6 +310,7 @@ class CFX_FloatRect { FX_FLOAT right; FX_FLOAT top; }; +using CFX_RectArray = CFX_ArrayTemplate<CFX_FloatRect>; // LTWH rectangles (y-axis runs downwards). template <class baseType> diff --git a/fpdfsdk/DEPS b/fpdfsdk/DEPS index 488a3963c1..ed111888c8 100644 --- a/fpdfsdk/DEPS +++ b/fpdfsdk/DEPS @@ -1,5 +1,6 @@ include_rules = [ '+core/include', + '+core/fpdftext/include', '+javascript/IJavaScript.h', '+public', '+v8', diff --git a/fpdfsdk/fpdf_searchex.cpp b/fpdfsdk/fpdf_searchex.cpp index 96c5e53309..ab2baf529c 100644 --- a/fpdfsdk/fpdf_searchex.cpp +++ b/fpdfsdk/fpdf_searchex.cpp @@ -6,7 +6,7 @@ #include "public/fpdf_searchex.h" -#include "core/include/fpdftext/fpdf_text.h" +#include "core/fpdftext/include/ipdf_textpage.h" DLLEXPORT int STDCALL FPDFText_GetCharIndexFromTextIndex(FPDF_TEXTPAGE text_page, int nTextIndex) { diff --git a/fpdfsdk/fpdftext.cpp b/fpdfsdk/fpdftext.cpp index 80d56920bc..3e64d8e2c4 100644 --- a/fpdfsdk/fpdftext.cpp +++ b/fpdfsdk/fpdftext.cpp @@ -6,8 +6,10 @@ #include "public/fpdf_text.h" +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfdoc/fpdf_doc.h" -#include "core/include/fpdftext/fpdf_text.h" #include "fpdfsdk/include/fsdk_define.h" #ifdef PDF_ENABLE_XFA diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index 6543000d4f..0073377893 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -12,7 +12,6 @@ #include <vector> #include "core/include/fpdfapi/cpdf_document.h" -#include "core/include/fpdftext/fpdf_text.h" #include "fpdfsdk/include/fsdk_actionhandler.h" #include "fpdfsdk/include/fsdk_annothandler.h" #include "fpdfsdk/include/fsdk_baseannot.h" diff --git a/fpdfsdk/javascript/DEPS b/fpdfsdk/javascript/DEPS index 4b3f3dd3d0..a1f0ec3a5e 100644 --- a/fpdfsdk/javascript/DEPS +++ b/fpdfsdk/javascript/DEPS @@ -1,3 +1,4 @@ include_rules = [ + '+core/fdrm/crypto/include', '+xfa/fxjse' ] diff --git a/fpdfsdk/javascript/JS_GlobalData.cpp b/fpdfsdk/javascript/JS_GlobalData.cpp index 1408dbe33d..ba547fe79e 100644 --- a/fpdfsdk/javascript/JS_GlobalData.cpp +++ b/fpdfsdk/javascript/JS_GlobalData.cpp @@ -6,7 +6,7 @@ #include "fpdfsdk/javascript/JS_GlobalData.h" -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "fpdfsdk/include/javascript/IJavaScript.h" #define JS_MAXGLOBALDATA (1024 * 4 - 8) diff --git a/pdfium.gyp b/pdfium.gyp index a7cb00d689..9d986b29eb 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -212,7 +212,7 @@ 'target_name': 'fdrm', 'type': 'static_library', 'sources': [ - 'core/include/fdrm/fx_crypt.h', + 'core/fdrm/crypto/include/fx_crypt.h', 'core/fdrm/crypto/fx_crypt.cpp', 'core/fdrm/crypto/fx_crypt_aes.cpp', 'core/fdrm/crypto/fx_crypt_sha.cpp', @@ -403,7 +403,9 @@ 'target_name': 'fpdftext', 'type': 'static_library', 'sources': [ - 'core/include/fpdftext/fpdf_text.h', + 'core/fpdftext/include/ipdf_linkextract.h', + 'core/fpdftext/include/ipdf_textpage.h', + 'core/fpdftext/include/ipdf_textpagefind.h', 'core/fpdftext/fpdf_text_int.cpp', 'core/fpdftext/text_int.h', 'core/fpdftext/unicodenormalization.cpp', diff --git a/xfa/fxfa/app/DEPS b/xfa/fxfa/app/DEPS new file mode 100644 index 0000000000..a0d113f3cf --- /dev/null +++ b/xfa/fxfa/app/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + '+core/fdrm/crypto/include', +] diff --git a/xfa/fxfa/app/xfa_checksum.cpp b/xfa/fxfa/app/xfa_checksum.cpp index 1639c0d2f6..b9a7b50be7 100644 --- a/xfa/fxfa/app/xfa_checksum.cpp +++ b/xfa/fxfa/app/xfa_checksum.cpp @@ -6,7 +6,7 @@ #include "xfa/fxfa/app/xfa_checksum.h" -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "xfa/fgas/crt/fgas_algorithm.h" CXFA_SAXReaderHandler::CXFA_SAXReaderHandler(CXFA_ChecksumContext* pContext) |