X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2FLexer.cc;h=d037469113d31506e230ccea6cba54354c636277;hb=refs%2Ftags%2FGPDF_FOR_GNOME_1_4;hp=4ca8cfe9f51e323d3fa41fd16bf6a7fddbcb0f8f;hpb=7aac8dc8533347e21311b15186e0af82f1b22fd6;p=evince.git diff --git a/pdf/xpdf/Lexer.cc b/pdf/xpdf/Lexer.cc index 4ca8cfe9..d0374691 100644 --- a/pdf/xpdf/Lexer.cc +++ b/pdf/xpdf/Lexer.cc @@ -2,7 +2,7 @@ // // Lexer.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -44,22 +45,22 @@ static char specialChars[256] = { // Lexer //------------------------------------------------------------------------ -Lexer::Lexer(Stream *str) { +Lexer::Lexer(XRef *xref, Stream *str) { Object obj; curStr.initStream(str); - streams = new Array(); + streams = new Array(xref); streams->add(curStr.copy(&obj)); strPtr = 0; freeArray = gTrue; curStr.streamReset(); } -Lexer::Lexer(Object *obj) { +Lexer::Lexer(XRef *xref, Object *obj) { Object obj2; if (obj->isStream()) { - streams = new Array(); + streams = new Array(xref); freeArray = gTrue; streams->add(obj->copy(&obj2)); } else { @@ -204,11 +205,15 @@ Object *Lexer::getObj(Object *obj) { case '(': ++numParen; + c2 = c; break; case ')': - if (--numParen == 0) + if (--numParen == 0) { done = gTrue; + } else { + c2 = c; + } break; case '\\':