summaryrefslogtreecommitdiffstats
path: root/redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch')
-rw-r--r--redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch b/redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch
new file mode 100644
index 000000000..debb6ebd5
--- /dev/null
+++ b/redhat/kdepim/kdepim-3.5.13-fix_kio_imap4_addquotes.patch
@@ -0,0 +1,61 @@
+--- kdepim/libkmime/kmime_util.cpp.addquotes 2012-05-28 22:58:31.257167175 +0200
++++ kdepim/libkmime/kmime_util.cpp 2012-05-29 20:02:19.679233274 +0200
+@@ -436,49 +436,26 @@
+
+ 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,'\"');