2007-01-04 [colin] 2.6.1cvs105
authorColin Leroy <colin@colino.net>
Thu, 4 Jan 2007 20:48:45 +0000 (20:48 +0000)
committerColin Leroy <colin@colino.net>
Thu, 4 Jan 2007 20:48:45 +0000 (20:48 +0000)
* src/common/quoted-printable.c
Fix bug 1089, 'NUL characters in Subject
line are misinterpreted'. Not a pain to
fix in fact.

ChangeLog
PATCHSETS
configure.ac
src/common/quoted-printable.c

index 463248313263323a1c8b495b18efca9418e35429..38a270b5cada963ef58c3b52d67384f65f080551 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-01-04 [colin]     2.6.1cvs105
+
+       * src/common/quoted-printable.c
+               Fix bug 1089, 'NUL characters in Subject 
+               line are misinterpreted'. Not a pain to
+               fix in fact.
+
 2007-01-04 [wwp]       2.6.1cvs104
 
        * src/image_viewer.c
index eb0f9f85a2f53229d793c485586e49a6f1ca952c..3d22b5037944844ec1b195fd166c3e41614d6701 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.12.2.19 -r 1.12.2.20 src/html.c;  cvs diff -u -r 1.3.2.7 -r 1.3.2.8 src/html.h;  ) > 2.6.1cvs102.patchset
 ( cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/image_viewer.c;  cvs diff -u -r 1.94.2.114 -r 1.94.2.115 src/messageview.c;  ) > 2.6.1cvs103.patchset
 ( cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/image_viewer.c;  ) > 2.6.1cvs104.patchset
+( cvs diff -u -r 1.3.2.9 -r 1.3.2.10 src/common/quoted-printable.c;  ) > 2.6.1cvs105.patchset
index ac74f731b37a25e54b1dd4158c83482eb0818bd4..46a052d26836a9315bf74fd8ac73991706523dcc 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=6
 MICRO_VERSION=1
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=104
+EXTRA_VERSION=105
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 8cce7fd1d3e4c7f72a067ba8bc153e8ba03f5e75..2cebddad359e313b10fb974bb3904efe54f456e4 100644 (file)
@@ -90,6 +90,8 @@ gint qp_decode_line(gchar *str)
 
        while (*inp != '\0') {
                if (*inp == '=') {
+                       if (inp[1] && inp[2] && inp[1] == '0' && inp[2] == '0')
+                               inp += 3;
                        if (inp[1] && inp[2] &&
                            get_hex_value((guchar *)outp, inp[1], inp[2])
                            == TRUE) {
@@ -119,6 +121,8 @@ gint qp_decode_const(gchar *out, gint avail, const gchar *str)
 
        while (*inp != '\0' && avail > 0) {
                if (*inp == '=') {
+                       if (inp[1] && inp[2] && inp[1] == '0' && inp[2] == '0')
+                               inp += 3;
                        if (inp[1] && inp[2] &&
                            get_hex_value((guchar *)outp, inp[1], inp[2])
                            == TRUE) {
@@ -152,6 +156,8 @@ gint qp_decode_q_encoding(guchar *out, const gchar *in, gint inlen)
 
        while (inp - in < inlen && *inp != '\0') {
                if (*inp == '=' && inp + 3 - in <= inlen) {
+                       if (inp[1] == '0' && inp[2] == '0')
+                               inp += 3;
                        if (get_hex_value(outp, inp[1], inp[2]) == TRUE) {
                                inp += 3;
                        } else {