Add PDFCharIsLineEnding helper
authorDan Sinclair <dsinclair@chromium.org>
Wed, 28 Oct 2015 21:14:42 +0000 (17:14 -0400)
committerDan Sinclair <dsinclair@chromium.org>
Wed, 28 Oct 2015 21:14:42 +0000 (17:14 -0400)
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 .

core/include/fpdfapi/fpdf_parser.h
core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp

index d121bb4..32509eb 100644 (file)
@@ -61,6 +61,10 @@ inline bool PDFCharIsOther(uint8_t c) {
   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];
 
index 0e059f3..1fa27e3 100644 (file)
@@ -490,7 +490,7 @@ CPDF_StreamParser::SyntaxType CPDF_StreamParser::ParseNextElement() {
         return EndOfData;
 
       ch = m_pBuf[m_Pos++];
-      if (ch == '\r' || ch == '\n')
+      if (PDFCharIsLineEnding(ch))
         break;
     }
   }
@@ -714,7 +714,7 @@ void CPDF_StreamParser::GetNextWord(FX_BOOL& bIsNumber) {
       if (!PositionIsInBounds())
         return;
       ch = m_pBuf[m_Pos++];
-      if (ch == '\r' || ch == '\n')
+      if (PDFCharIsLineEnding(ch))
         break;
     }
   }
index 1815d40..255d0ce 100644 (file)
@@ -80,9 +80,9 @@ FX_DWORD _A85Decode(const uint8_t* src_buf,
   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_DWORD _HexDecode(const uint8_t* src_buf,
   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';
index e884288..4ce196e 100644 (file)
@@ -1780,7 +1780,7 @@ void CPDF_SyntaxParser::GetNextWord() {
     while (1) {
       if (!GetNextChar(ch))
         return;
-      if (ch == '\r' || ch == '\n')
+      if (PDFCharIsLineEnding(ch))
         break;
     }
   }
@@ -1999,7 +1999,7 @@ void CPDF_SyntaxParser::ToNextWord() {
     while (1) {
       if (!GetNextChar(ch))
         return;
-      if (ch == '\r' || ch == '\n')
+      if (PDFCharIsLineEnding(ch))
         break;
     }
   }
@@ -3767,7 +3767,7 @@ FX_BOOL CPDF_DataAvail::GetNextToken(CFX_ByteString& token) {
     while (1) {
       if (!GetNextChar(ch))
         return FALSE;
-      if (ch == '\r' || ch == '\n')
+      if (PDFCharIsLineEnding(ch))
         break;
     }
   }