-rw-r--r-- | library/backend/vcc.y | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/library/backend/vcc.y b/library/backend/vcc.y index 6781312..94a8fea 100644 --- a/library/backend/vcc.y +++ b/library/backend/vcc.y @@ -123,5 +123,5 @@ DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. //#include <qpe/vobject_p.h>
//#else
-#include <qtopia/private/vobject_p.h> +#include "vobject_p.h"
//#endif
@@ -724,14 +724,20 @@ static char* lexGet1Value() { c = lexLookahead();
lexClearToken();
- while (c != EOF && c != ';') {
+ while (c != EOF && (c != ';' || !fieldedProp)) {
if (c == '\\' ) {
int a;
lexSkipLookahead();
a = lexLookahead();
- if ( a != ';' ) {
- lexAppendc('\\');
- } else {
+ if ( a == ';' ) {
lexAppendc( ';' );
lexSkipLookahead();
+ } else if ( a == '\n' ) {
+ lexAppendc( '\n' );
+ lexSkipLookahead();
+ } else if ( a == '\\' ) {
+ lexAppendc( '\\' );
+ lexSkipLookahead();
+ } else {
+ lexAppendc('\\');
}
} else if (c == '\n') {
@@ -962,4 +968,5 @@ static char* lexGetQuotedPrintable() // what we do so long as we keep going.
// should probably spit an error here
+ lexSkipLookahead();
c = lexLookahead();
continue;
@@ -979,4 +986,5 @@ static char* lexGetQuotedPrintable() // what we do so long as we keep going.
// should probably spit an error here
+ lexSkipLookahead();
c = lexLookahead();
continue;
@@ -1001,5 +1009,5 @@ static int yylex() { if (lexmode == L_VALUES) {
int c = lexGetc();
- if (c == ';') {
+ if (c == ';' && fieldedProp) {
DBG_(("db: SEMICOLON\n"));
lexPushLookaheadc(c);
@@ -1055,4 +1063,5 @@ static int yylex() { /* consume all line separator(s) adjacent to each other */
/* ignoring linesep immediately after colon. */
+ /* I don't see this in the spec, and it breaks null values -- WA
c = lexLookahead();
while (strchr("\n",c)) {
@@ -1061,4 +1070,5 @@ static int yylex() { ++mime_lineNum;
}
+ */
DBG_(("db: COLON\n"));
return COLON;
|