summaryrefslogtreecommitdiffstats
path: root/ktnef
diff options
context:
space:
mode:
authorFabio Rossi <rossi.f@inwind.it>2018-11-26 17:26:21 +0100
committerMichele Calgaro <michele.calgaro@yahoo.it>2018-11-29 00:41:19 +0900
commit6697c0bf7c3caae1886c891dd99129402ed97311 (patch)
tree16a3146a4cc7ea71cb0631702edfdb97a1c1870e /ktnef
parent9e0b54c3a969137ccf891a1e80485271639f4d36 (diff)
downloadtdepim-6697c0bf7c3caae1886c891dd99129402ed97311.tar.gz
tdepim-6697c0bf7c3caae1886c891dd99129402ed97311.zip
Add unicode string support to the ktnef parser library
Signed-off-by: Fabio Rossi <rossi.f@inwind.it> (cherry picked from commit 9fd3b6acfa7f8fc347f8678e969c7deeb3ab516b)
Diffstat (limited to 'ktnef')
-rw-r--r--ktnef/lib/ktnefparser.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/ktnef/lib/ktnefparser.cpp b/ktnef/lib/ktnefparser.cpp
index 3edd7b6ad..0b374afab 100644
--- a/ktnef/lib/ktnefparser.cpp
+++ b/ktnef/lib/ktnefparser.cpp
@@ -715,7 +715,17 @@ TQ_UINT16 readMAPIValue(TQDataStream& stream, MAPI_value& mapi)
}
break;
case MAPI_TYPE_USTRING:
- mapi.type = MAPI_TYPE_NONE;
+ // in case of a vector'ed value, the number of elements
+ // has already been read in the upper for-loop
+ if ( ISVECTOR( mapi ) )
+ d = 1;
+ else
+ stream >> d;
+ for (uint i=0;i<d;i++)
+ {
+ value.clear();
+ value.asString() = readMAPIString( stream, true );
+ }
break;
case MAPI_TYPE_OBJECT:
case MAPI_TYPE_BINARY:
@@ -741,6 +751,7 @@ TQ_UINT16 readMAPIValue(TQDataStream& stream, MAPI_value& mapi)
}
break;
default:
+ kdDebug().form( "unsupported type=%x\n", mapi.type );
mapi.type = MAPI_TYPE_NONE;
break;
}
@@ -844,6 +855,8 @@ bool KTNEFParser::readMAPIProperties( TQMap<int,KTNEFProperty*>& props, KTNEFAtt
kdDebug().form( "(tag=%04x) MAPI time%s: %s\n", mapi.tag, mapiname.ascii(), mapi.value.toString().ascii() );
break;
case MAPI_TYPE_USTRING:
+ kdDebug().form( "(tag=%04x) MAPI unicode string%s: size=%d \"%s\"\n", mapi.tag, mapiname.ascii(), mapi.value.toByteArray().size(), mapi.value.toString().ascii() );
+ break;
case MAPI_TYPE_STRING8:
kdDebug().form( "(tag=%04x) MAPI string%s: size=%d \"%s\"\n", mapi.tag, mapiname.ascii(), mapi.value.toByteArray().size(), mapi.value.toString().ascii() );
break;