author | zecke <zecke> | 2004-09-14 22:50:22 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-09-14 22:50:22 (UTC) |
commit | d46a01de16c8ad65b00c76beda547970f7972b62 (patch) (unidiff) | |
tree | 3ce4b630f5cd45c230c0a4f4ff92993a9c4f4f6c /library/backend/vobject.cpp | |
parent | 271a3753d1b71a85e5463b357abbfe46fce51732 (diff) | |
download | opie-d46a01de16c8ad65b00c76beda547970f7972b62.zip opie-d46a01de16c8ad65b00c76beda547970f7972b62.tar.gz opie-d46a01de16c8ad65b00c76beda547970f7972b62.tar.bz2 |
Be able to properly import vCard from Cell Phones
-rw-r--r-- | library/backend/vobject.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/library/backend/vobject.cpp b/library/backend/vobject.cpp index 9263c3a..592d116 100644 --- a/library/backend/vobject.cpp +++ b/library/backend/vobject.cpp | |||
@@ -1103,7 +1103,7 @@ static void writeEncString(OFile *fp, const char *s, bool nosemi) | |||
1103 | } | 1103 | } |
1104 | } | 1104 | } |
1105 | 1105 | ||
1106 | static bool includesUnprintable(VObject *o) | 1106 | static bool includesUnprintable(VObject *o, bool nosemi) |
1107 | { | 1107 | { |
1108 | if (o) { | 1108 | if (o) { |
1109 | if (VALUE_TYPE(o) == VCVT_STRINGZ) { | 1109 | if (VALUE_TYPE(o) == VCVT_STRINGZ) { |
@@ -1111,7 +1111,8 @@ static bool includesUnprintable(VObject *o) | |||
1111 | if (p) { | 1111 | if (p) { |
1112 | while (*p) { | 1112 | while (*p) { |
1113 | if (*p==' ' && (!p[1] || p[1]=='\n') // RFC 1521: spaces at ends need quoting | 1113 | if (*p==' ' && (!p[1] || p[1]=='\n') // RFC 1521: spaces at ends need quoting |
1114 | || qpReplaceChar(*p) ) | 1114 | || qpReplaceChar(*p) |
1115 | || *p==';' && nosemi ) | ||
1115 | return TRUE; | 1116 | return TRUE; |
1116 | p++; | 1117 | p++; |
1117 | } | 1118 | } |
@@ -1161,7 +1162,7 @@ static void writeAttrValue(OFile *fp, VObject *o) | |||
1161 | struct PreDefProp *pi; | 1162 | struct PreDefProp *pi; |
1162 | pi = lookupPropInfo(NAME_OF(o)); | 1163 | pi = lookupPropInfo(NAME_OF(o)); |
1163 | if (pi && ((pi->flags & PD_INTERNAL) != 0)) return; | 1164 | if (pi && ((pi->flags & PD_INTERNAL) != 0)) return; |
1164 | if ( includesUnprintable(o) ) | 1165 | if ( includesUnprintable(o,TRUE) ) |
1165 | appendsOFileEncCs(fp); | 1166 | appendsOFileEncCs(fp); |
1166 | appendcOFile(fp,';'); | 1167 | appendcOFile(fp,';'); |
1167 | appendsOFile(fp,NAME_OF(o)); | 1168 | appendsOFile(fp,NAME_OF(o)); |
@@ -1229,7 +1230,7 @@ static void writeProp(OFile *fp, VObject *o) | |||
1229 | bool printable = TRUE; | 1230 | bool printable = TRUE; |
1230 | while (*fields && printable) { | 1231 | while (*fields && printable) { |
1231 | VObject *t = isAPropertyOf(o,*fields); | 1232 | VObject *t = isAPropertyOf(o,*fields); |
1232 | if (includesUnprintable(t)) | 1233 | if (includesUnprintable(t,TRUE)) |
1233 | printable = FALSE; | 1234 | printable = FALSE; |
1234 | fields++; | 1235 | fields++; |
1235 | } | 1236 | } |
@@ -1254,7 +1255,7 @@ static void writeProp(OFile *fp, VObject *o) | |||
1254 | 1255 | ||
1255 | 1256 | ||
1256 | if (VALUE_TYPE(o)) { | 1257 | if (VALUE_TYPE(o)) { |
1257 | if ( includesUnprintable(o) ) | 1258 | if ( includesUnprintable(o,FALSE) ) |
1258 | appendsOFileEncCs(fp); | 1259 | appendsOFileEncCs(fp); |
1259 | unsigned long size = 0; | 1260 | unsigned long size = 0; |
1260 | VObject *p = isAPropertyOf(o,VCDataSizeProp); | 1261 | VObject *p = isAPropertyOf(o,VCDataSizeProp); |