Add PDFCharIsLineEnding helper
This CL adds a helper to check if a given character is a \n or \r.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1418073006 .
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
index d121bb4..32509eb 100644
--- a/core/include/fpdfapi/fpdf_parser.h
+++ b/core/include/fpdfapi/fpdf_parser.h
@@ -61,6 +61,10 @@
return PDF_CharType[c] == 'R';
}
+inline bool PDFCharIsLineEnding(uint8_t c) {
+ return c == '\r' || c == '\n';
+}
+
// Indexed by 8-bit char code, contains unicode code points.
extern const FX_WORD PDFDocEncoding[256];
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
index 0e059f3..1fa27e3 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
@@ -490,7 +490,7 @@
return EndOfData;
ch = m_pBuf[m_Pos++];
- if (ch == '\r' || ch == '\n')
+ if (PDFCharIsLineEnding(ch))
break;
}
}
@@ -714,7 +714,7 @@
if (!PositionIsInBounds())
return;
ch = m_pBuf[m_Pos++];
- if (ch == '\r' || ch == '\n')
+ if (PDFCharIsLineEnding(ch))
break;
}
}
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
index 1815d40..255d0ce 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
@@ -80,9 +80,9 @@
pos = dest_size = 0;
while (pos < src_size) {
uint8_t ch = src_buf[pos++];
- if (ch == '\n' || ch == '\r' || ch == ' ' || ch == '\t') {
+ if (PDFCharIsLineEnding(ch) || ch == ' ' || ch == '\t')
continue;
- }
+
if (ch == 'z') {
FXSYS_memset(dest_buf + dest_size, 0, 4);
state = 0;
@@ -131,9 +131,9 @@
FX_BOOL bFirstDigit = TRUE;
for (i = 0; i < src_size; i++) {
uint8_t ch = src_buf[i];
- if (ch == ' ' || ch == '\n' || ch == '\t' || ch == '\r') {
+ if (PDFCharIsLineEnding(ch) || ch == ' ' || ch == '\t')
continue;
- }
+
int digit;
if (ch <= '9' && ch >= '0') {
digit = ch - '0';
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
index e884288..4ce196e 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
@@ -1780,7 +1780,7 @@
while (1) {
if (!GetNextChar(ch))
return;
- if (ch == '\r' || ch == '\n')
+ if (PDFCharIsLineEnding(ch))
break;
}
}
@@ -1999,7 +1999,7 @@
while (1) {
if (!GetNextChar(ch))
return;
- if (ch == '\r' || ch == '\n')
+ if (PDFCharIsLineEnding(ch))
break;
}
}
@@ -3767,7 +3767,7 @@
while (1) {
if (!GetNextChar(ch))
return FALSE;
- if (ch == '\r' || ch == '\n')
+ if (PDFCharIsLineEnding(ch))
break;
}
}