--- gettext-0.14.6/gettext-tools/src/x-php.c.orig 2005-05-20 23:03:45.000000000 +0200 +++ gettext-0.14.6/gettext-tools/src/x-php.c 2008-04-23 13:10:35.000000000 +0200 @@ -856,8 +856,34 @@ for (;;) { c = phase1_getc (); + /* closing " - check for string concatanation using "." */ if (c == EOF || c == '\'') - break; + { + /* read chars - skip spaces and dots, break on other char */ + for(;;) + { + c = phase1_getc (); + switch(c) + { + case ' ': + case '\t': + case '.': + case '\n': + case '\r': + continue; + default: + break; + } + break; + } + /* if the other char which caused break is a qoute again + continue reading of the text */ + if (c == '\'') + continue; + /* put other char back and break from reading string */ + phase1_ungetc (c); + break; + } if (c == '\\') { c = phase1_getc (); @@ -891,8 +917,34 @@ for (;;) { c = phase1_getc (); + /* closing " - check for string concatanation using "." */ if (c == EOF || c == '"') - break; + { + /* read chars - skip spaces and dots, break on other char */ + for(;;) + { + c = phase1_getc (); + switch(c) + { + case ' ': + case '\t': + case '.': + case '\n': + case '\r': + continue; + default: + break; + } + break; + } + /* if the other char which caused break is a double-qoute again + continue reading of the text */ + if (c == '"') + continue; + /* put other char back and break from reading string */ + phase1_ungetc (c); + break; + } if (c == '$') { c = phase1_getc ();