diff options
Diffstat (limited to 'libkmime')
-rw-r--r-- | libkmime/kmime_util.cpp | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/libkmime/kmime_util.cpp b/libkmime/kmime_util.cpp index 03a14e9af..3b19a53b1 100644 --- a/libkmime/kmime_util.cpp +++ b/libkmime/kmime_util.cpp @@ -436,49 +436,26 @@ TQCString LFtoCRLF(const TQCString &s) void removeQuots(TQCString &str) { - bool inQuote=false; - - for (int i=0; i < (int)str.length(); i++) { - if (str[i] == '"') { - str.remove(i,1); - i--; - inQuote = !inQuote; - } else { - if (inQuote && (str[i] == '\\')) - str.remove(i,1); - } - } + str.replace(TQRegExp("\\\""), "\""); + str.replace(TQRegExp("\\\\"), "\\"); } void removeQuots(TQString &str) { - bool inQuote=false; - - for (int i=0; i < (int)str.length(); i++) { - if (str[i] == '"') { - str.remove(i,1); - i--; - inQuote = !inQuote; - } else { - if (inQuote && (str[i] == '\\')) - str.remove(i,1); - } - } + str.replace(TQRegExp("\\\""), "\""); + str.replace(TQRegExp("\\\\"), "\\"); } void addQuotes(TQCString &str, bool forceQuotes) { bool needsQuotes=false; - for (unsigned int i=0; i < str.length(); i++) { - if (strchr("()<>@,.;:[]=\\\"",str[i])!=0) - needsQuotes = true; - if (str[i]=='\\' || str[i]=='\"') { - str.insert(i, '\\'); - i++; - } - } + if ( TQString( str ) .contains( TQRegExp( TQString( "\"|\\\\|=|\\]|\\[|:|;|,|\\.|,|@|<|>|\\)|\\(" ) ) ) ) + needsQuotes = true; + + str.replace(TQRegExp("\\"), "\\\\"); + str.replace(TQRegExp("\""), "\\\""); if (needsQuotes || forceQuotes) { str.insert(0,'\"'); |