-rw-r--r-- | library/backend/vcc.y | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/library/backend/vcc.y b/library/backend/vcc.y index 4c79368..bec2955 100644 --- a/library/backend/vcc.y +++ b/library/backend/vcc.y @@ -443,3 +443,3 @@ static void enterAttr(const char *s1, const char *s2) {
- const char *p1, *p2;
+ const char *p1, *p2=0;
p1 = lookupProp_(s1);
@@ -815,3 +815,3 @@ static void finiLex() { */
-static char * lexGetDataFromBase64()
+static int lexGetDataFromBase64()
{
@@ -828,2 +828,3 @@ static char * lexGetDataFromBase64() c = lexGetc();
+ lexSkipWhite();
if (c == '\n') {
@@ -850,4 +851,2 @@ static char * lexGetDataFromBase64() pad++;
- } else if ((c == ' ') || (c == '\t')) {
- continue;
} else { /* error condition */
@@ -860,5 +859,8 @@ static char * lexGetDataFromBase64() while (c != EOF) {
- if (c == '\n' && lexLookahead() == '\n') {
- ++mime_lineNum;
- break;
+ if (c == '\n') {
+ lexSkipWhite();
+ if(lexLookahead() == '\n') {
+ ++mime_lineNum;
+ break;
+ }
}
@@ -867,3 +869,3 @@ static char * lexGetDataFromBase64() }
- return NULL;
+ return c != EOF;
}
@@ -913,3 +915,3 @@ static char * lexGetDataFromBase64() }
- return 0;
+ return bytesLen;
}
@@ -944,3 +946,3 @@ static char* lexGetQuotedPrintable() - while (c != EOF && c != ';') {
+ while (c != EOF && (c != ';' || !fieldedProp)) {
if (c == '\n') {
@@ -1034,7 +1036,4 @@ static int yylex() { /* get each char and convert to bin on the fly... */
- p = lexGetDataFromBase64();
-#if 0 - yylval.str = p;
- return STRING;
-#endif + yylval.str = NULL;
+ return lexGetDataFromBase64() ? STRING : 0;
}
|