diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2002-07-09 00:17:49 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-07-09 00:17:49 +0000 |
commit | b13872386a1592fb39e4c9e14ec614f70a5c8533 (patch) | |
tree | 81efd9e23a56c0f102313e6c860b5a98c8a9d4b6 | |
parent | 4afb7519d86e52b18cb15a8ff307f1cc0cfb8e0f (diff) | |
download | perl-b13872386a1592fb39e4c9e14ec614f70a5c8533.tar.gz |
MIME::QuotedPrint is for bytes only; from Gisle.
p4raw-id: //depot/perl@17429
-rw-r--r-- | ext/MIME/Base64/QuotedPrint.pm | 5 | ||||
-rw-r--r-- | ext/MIME/Base64/t/quoted-print.t | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ext/MIME/Base64/QuotedPrint.pm b/ext/MIME/Base64/QuotedPrint.pm index 0b93f2062f..ad0d7e1313 100644 --- a/ext/MIME/Base64/QuotedPrint.pm +++ b/ext/MIME/Base64/QuotedPrint.pm @@ -72,11 +72,16 @@ require Exporter; @ISA = qw(Exporter); @EXPORT = qw(encode_qp decode_qp); +use Carp qw(croak); + $VERSION = sprintf("%d.%02d", q$Revision: 2.3 $ =~ /(\d+)\.(\d+)/); sub encode_qp ($) { my $res = shift; + croak("The Quoted-Printable encoding is only defined for bytes") + if $res =~ /[^\0-\xFF]/; + # Do not mention ranges such as $res =~ s/([^ \t\n!-<>-~])/sprintf("=%02X", ord($1))/eg; # since that will not even compile on an EBCDIC machine (where ord('!') > ord('<')). if (ord('A') == 193) { # EBCDIC style machine diff --git a/ext/MIME/Base64/t/quoted-print.t b/ext/MIME/Base64/t/quoted-print.t index 1a7f9e4550..97e525ec66 100644 --- a/ext/MIME/Base64/t/quoted-print.t +++ b/ext/MIME/Base64/t/quoted-print.t @@ -71,7 +71,7 @@ y. -- H. L. Mencken"], # line width ); -$notests = @tests + 2; +$notests = @tests + 3; print "1..$notests\n"; $testno = 0; @@ -111,3 +111,5 @@ print "not " unless decode_qp("foo \r\n\r\nfoo =\r\n\r\nfoo=20\r\n\r\n") eq "foo\r\n\r\nfoo \r\nfoo \r\n\r\n"; $testno++; print "ok $testno\n"; +print "not " if eval { encode_qp("XXX \x{100}") } || $@ !~ /^The Quoted-Printable encoding is only defined for bytes/; +$testno++; print "ok $testno\n"; |