summaryrefslogtreecommitdiff
path: root/core/src/fpdftext
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2015-08-17 18:00:48 -0700
committerLei Zhang <thestig@chromium.org>2015-08-17 18:00:48 -0700
commit2ae87d2e8ddff79d0e96aad3db97e090db21fb99 (patch)
tree9bbae4e8d6b554a4b4b12fe0cfc5a8a5b54e43b7 /core/src/fpdftext
parent1d9dbd53b205b2b4d9e75a7eeb95e80837917ea3 (diff)
downloadpdfium-2ae87d2e8ddff79d0e96aad3db97e090db21fb99.tar.xz
Clean up IFX_BidiChar
- Replace IFX_BidiChar with just CFX_BidiChar - Document implementation - Change out parameters to pointers - Remove dead code - Add an enum for bidi directions - Move several externs to a header - Add unit tests R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1197643002 .
Diffstat (limited to 'core/src/fpdftext')
-rw-r--r--core/src/fpdftext/fpdf_text.cpp16
-rw-r--r--core/src/fpdftext/fpdf_text_int.cpp36
-rw-r--r--core/src/fpdftext/text_int.h2
3 files changed, 27 insertions, 27 deletions
diff --git a/core/src/fpdftext/fpdf_text.cpp b/core/src/fpdftext/fpdf_text.cpp
index e7ca6c136f..af944d965e 100644
--- a/core/src/fpdftext/fpdf_text.cpp
+++ b/core/src/fpdftext/fpdf_text.cpp
@@ -9,7 +9,7 @@
#include "../../include/fpdfapi/fpdf_pageobj.h"
#include "../../include/fpdfapi/fpdf_resource.h"
#include "../../include/fpdftext/fpdf_text.h"
-#include "../../include/fxcrt/fx_arb.h"
+#include "../../include/fxcrt/fx_bidi.h"
#include "../../include/fxcrt/fx_ucd.h"
#include "text_int.h"
#include "txtproc.h"
@@ -321,35 +321,35 @@ void NormalizeString(CFX_WideString& str) {
return;
}
CFX_WideString sBuffer;
- nonstd::unique_ptr<IFX_BidiChar> pBidiChar(IFX_BidiChar::Create());
+ nonstd::unique_ptr<CFX_BidiChar> pBidiChar(new CFX_BidiChar);
CFX_WordArray order;
FX_BOOL bR2L = FALSE;
int32_t start = 0, count = 0, i = 0;
int nR2L = 0, nL2R = 0;
for (i = 0; i < str.GetLength(); i++) {
if (pBidiChar->AppendChar(str.GetAt(i))) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
order.Add(start);
order.Add(count);
order.Add(ret);
if (!bR2L) {
- if (ret == 2) {
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
}
}
if (pBidiChar->EndChar()) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
order.Add(start);
order.Add(count);
order.Add(ret);
if (!bR2L) {
- if (ret == 2) {
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
diff --git a/core/src/fpdftext/fpdf_text_int.cpp b/core/src/fpdftext/fpdf_text_int.cpp
index ce673447a4..462f1369dd 100644
--- a/core/src/fpdftext/fpdf_text_int.cpp
+++ b/core/src/fpdftext/fpdf_text_int.cpp
@@ -13,7 +13,7 @@
#include "../../include/fpdfapi/fpdf_pageobj.h"
#include "../../include/fpdfapi/fpdf_resource.h"
#include "../../include/fpdftext/fpdf_text.h"
-#include "../../include/fxcrt/fx_arb.h"
+#include "../../include/fxcrt/fx_bidi.h"
#include "../../include/fxcrt/fx_ucd.h"
#include "text_int.h"
@@ -1020,10 +1020,10 @@ int CPDF_TextPage::GetCharWidth(FX_DWORD charCode, CPDF_Font* pFont) const {
}
return w;
}
-void CPDF_TextPage::OnPiece(IFX_BidiChar* pBidi, CFX_WideString& str) {
+void CPDF_TextPage::OnPiece(CFX_BidiChar* pBidi, CFX_WideString& str) {
int32_t start, count;
- int32_t ret = pBidi->GetBidiInfo(start, count);
- if (ret == 2) {
+ CFX_BidiChar::Direction ret = pBidi->GetBidiInfo(&start, &count);
+ if (ret == CFX_BidiChar::RIGHT) {
for (int i = start + count - 1; i >= start; i--) {
m_TextBuf.AppendChar(str.GetAt(i));
m_charList.Add(*(PAGECHAR_INFO*)m_TempCharList.GetAt(i));
@@ -1104,7 +1104,7 @@ void CPDF_TextPage::CloseTempLine() {
if (count1 <= 0) {
return;
}
- nonstd::unique_ptr<IFX_BidiChar> pBidiChar(IFX_BidiChar::Create());
+ nonstd::unique_ptr<CFX_BidiChar> pBidiChar(new CFX_BidiChar);
CFX_WideString str = m_TempTextBuf.GetWideString();
CFX_WordArray order;
FX_BOOL bR2L = FALSE;
@@ -1126,28 +1126,28 @@ void CPDF_TextPage::CloseTempLine() {
bPrevSpace = FALSE;
}
if (pBidiChar->AppendChar(str.GetAt(i))) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
order.Add(start);
order.Add(count);
order.Add(ret);
if (!bR2L) {
- if (ret == 2) {
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
}
}
if (pBidiChar->EndChar()) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
order.Add(start);
order.Add(count);
order.Add(ret);
if (!bR2L) {
- if (ret == 2) {
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
@@ -1762,7 +1762,7 @@ void CPDF_TextPage::SwapTempTextBuf(int32_t iCharListStartAppend,
FX_BOOL CPDF_TextPage::IsRightToLeft(const CPDF_TextObject* pTextObj,
const CPDF_Font* pFont,
int nItems) const {
- nonstd::unique_ptr<IFX_BidiChar> pBidiChar(IFX_BidiChar::Create());
+ nonstd::unique_ptr<CFX_BidiChar> pBidiChar(new CFX_BidiChar);
int32_t nR2L = 0;
int32_t nL2R = 0;
int32_t start = 0, count = 0;
@@ -1781,19 +1781,19 @@ FX_BOOL CPDF_TextPage::IsRightToLeft(const CPDF_TextObject* pTextObj,
continue;
}
if (pBidiChar->AppendChar(wChar)) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
- if (ret == 2) {
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
}
if (pBidiChar->EndChar()) {
- int32_t ret = pBidiChar->GetBidiInfo(start, count);
- if (ret == 2) {
+ CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
+ if (ret == CFX_BidiChar::RIGHT) {
nR2L++;
- } else if (ret == 1) {
+ } else if (ret == CFX_BidiChar::LEFT) {
nL2R++;
}
}
diff --git a/core/src/fpdftext/text_int.h b/core/src/fpdftext/text_int.h
index 091ee241d4..3f1023ac8a 100644
--- a/core/src/fpdftext/text_int.h
+++ b/core/src/fpdftext/text_int.h
@@ -111,7 +111,7 @@ class CPDF_TextPage : public IPDF_TextPage {
CPDF_TextObject* pTextObj2);
int GetCharWidth(FX_DWORD charCode, CPDF_Font* pFont) const;
void CloseTempLine();
- void OnPiece(IFX_BidiChar* pBidi, CFX_WideString& str);
+ void OnPiece(CFX_BidiChar* pBidi, CFX_WideString& str);
int32_t PreMarkedContent(PDFTEXT_Obj pObj);
void ProcessMarkedContent(PDFTEXT_Obj pObj);
void CheckMarkedContentObject(int32_t& start, int32_t& nCount) const;