summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2018-09-14 20:53:04 +0530
committerArun Isaac2018-09-15 02:21:09 +0530
commitae688fd185c90ceba7a5bc28c1704e42c69f5306 (patch)
treea1e772b44b89f416b97ee54c672adcac68321cf7
parentca56664e91fd055e73a0fc1791410c1878db41c3 (diff)
downloadguile-email-ae688fd185c90ceba7a5bc28c1704e42c69f5306.tar.gz
guile-email-ae688fd185c90ceba7a5bc28c1704e42c69f5306.tar.lz
guile-email-ae688fd185c90ceba7a5bc28c1704e42c69f5306.zip
quoted-printable: Encode #\= with its ASCII code.
* email/quoted-printable.scm (quoted-printable-encode): Encode #\=
with its ASCII code.
* test/quoted-printable.scm (quoted-printable-encoding of =): Add test
to check for this bug.
-rw-r--r--email/quoted-printable.scm6
-rwxr-xr-xtests/quoted-printable.scm6
2 files changed, 10 insertions, 2 deletions
diff --git a/email/quoted-printable.scm b/email/quoted-printable.scm
index 753d7ae..d119f6a 100644
--- a/email/quoted-printable.scm
+++ b/email/quoted-printable.scm
@@ -80,8 +80,10 @@
             in out
             (put-into-output
              (if (char-set-contains?
-                  (ucs-range->char-set (char->integer #\space)
-                                       (char->integer #\delete))
+                  (char-set-delete
+                   (ucs-range->char-set (char->integer #\space)
+                                        (char->integer #\delete))
+                   #\=)
                   c)
                  (string c)
                  (format #f "=~:@(~2,'0x~)" x))))))))))
diff --git a/tests/quoted-printable.scm b/tests/quoted-printable.scm
index 608a937..f3dd5eb 100755
--- a/tests/quoted-printable.scm
+++ b/tests/quoted-printable.scm
@@ -49,6 +49,12 @@ abriquent pour te la vendre une =C3=A2me vulgaire.")
                           (string->bytevector decoded-text charset))
                          #\newline))))
 
+(test-equal "quoted-printable encoding of ="
+  (quoted-printable-encode
+   (string->bytevector "=" "UTF-8"))
+  (string-append "=" (string-upcase (number->string
+                                     (char->integer #\=) 16))))
+
 (let ((encoded-text "=A1Hola,_se=F1or!")
       (decoded-text "¡Hola, señor!")
       (charset "ISO-8859-1"))