diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2012-05-30 03:48:12 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-05-30 03:48:12 +0200 |
commit | b0c92b30a60f3290a9b8c393915bf623102d0fd6 (patch) | |
tree | 161757f3c48b8b7442e2f893bd7ee2472cb29b25 /libkmime | |
parent | 8b23df61fced661f5a847a94dd6f9ee8e560ad14 (diff) | |
download | tdepim-b0c92b30a60f3290a9b8c393915bf623102d0fd6.tar.gz tdepim-b0c92b30a60f3290a9b8c393915bf623102d0fd6.zip |
Fix long response time on large IMAP folders
This closes Bug 1009
Thanks to Francois Andriot for the patch!
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,'\"'); |