diff options
author | Arun Isaac | 2018-09-12 17:56:13 +0530 |
---|---|---|
committer | Arun Isaac | 2018-09-12 17:57:51 +0530 |
commit | 81c3ae5e6d80efd3c87f42552876697c498005d2 (patch) | |
tree | a109d1533340d5e248523fb6c1dd74f517a960aa | |
parent | 2784c121d5a3c9d8e7831c883edac3b6857bc198 (diff) | |
download | guile-email-81c3ae5e6d80efd3c87f42552876697c498005d2.tar.gz guile-email-81c3ae5e6d80efd3c87f42552876697c498005d2.tar.lz guile-email-81c3ae5e6d80efd3c87f42552876697c498005d2.zip |
quoted-printable: Add q-encoding-encode.
* email/quoted-printable.scm (q-encoding-encode): New function.
* tests/quoted-printable.scm (q-encoding wikipedia example): Rename to
...
(q-encoding wikipedia example: decoding): ... this.
(q-encoding wikipedia example: encoding): New test.
-rw-r--r-- | email/quoted-printable.scm | 9 | ||||
-rwxr-xr-x | tests/quoted-printable.scm | 18 |
2 files changed, 21 insertions, 6 deletions
diff --git a/email/quoted-printable.scm b/email/quoted-printable.scm index b6f4c54..11abaff 100644 --- a/email/quoted-printable.scm +++ b/email/quoted-printable.scm @@ -24,7 +24,8 @@ #:use-module (srfi srfi-26) #:export (quoted-printable-decode quoted-printable-encode - q-encoding-decode)) + q-encoding-decode + q-encoding-encode)) ;; TODO: Error out on invalid quoted-printable input (define quoted-printable-decode @@ -89,3 +90,9 @@ (lambda (c) (if (char=? c #\_) #\Space c)) str))) + +(define (q-encoding-encode bv) + (string-map + (lambda (c) + (if (char=? c #\Space) #\_ c)) + (quoted-printable-encode bv))) diff --git a/tests/quoted-printable.scm b/tests/quoted-printable.scm index a0f0369..608a937 100755 --- a/tests/quoted-printable.scm +++ b/tests/quoted-printable.scm @@ -49,10 +49,18 @@ abriquent pour te la vendre une =C3=A2me vulgaire.") (string->bytevector decoded-text charset)) #\newline)))) -(test-equal "q-encoding wikipedia example" - (bytevector->string - (q-encoding-decode "=A1Hola,_se=F1or!") - "ISO-8859-1") - "¡Hola, señor!") +(let ((encoded-text "=A1Hola,_se=F1or!") + (decoded-text "¡Hola, señor!") + (charset "ISO-8859-1")) + (test-equal "q-encoding wikipedia example: decoding" + (q-encoding-encode + (string->bytevector decoded-text charset)) + encoded-text) + + (test-equal "q-encoding wikipedia example: encoding" + (bytevector->string + (q-encoding-decode encoded-text) + charset) + decoded-text)) (test-end "quoted-printable") |