diff options
-rw-r--r-- | pp.c | 4 | ||||
-rwxr-xr-x | t/op/pack.t | 10 |
2 files changed, 9 insertions, 5 deletions
@@ -2913,13 +2913,13 @@ static const char uuemap[] = static char uudmap[256]; /* Initialised on first use */ #if 'I' == 73 && 'J' == 74 /* On an ASCII/ISO kind of system */ -#define ISUUCHAR(ch) ((ch) > ' ' && (ch) < 'a') +#define ISUUCHAR(ch) ((ch) >= ' ' && (ch) < 'a') #else /* Some other sort of character set - use memchr() so we don't match the null byte. */ -#define ISUUCHAR(ch) (memchr(uuemap, (ch), sizeof(uuemap)-1)) +#define ISUUCHAR(ch) (memchr(uuemap, (ch), sizeof(uuemap)-1) || (ch) == ' ') #endif PP(pp_unpack) diff --git a/t/op/pack.t b/t/op/pack.t index 02efb66717..c821ed6c04 100755 --- a/t/op/pack.t +++ b/t/op/pack.t @@ -161,16 +161,20 @@ foreach my $t (@templates) { # 57..58: uuencode/decode $in = join "", map { chr } 0..255; + +# just to be anal, we do some random tr/`/ / $uu = <<'EOUU'; -M``$"`P0%!@<("0H+#`T.#Q`1$A,4%187&!D:&QP='A\@(2(C)"4F)R@I*BLL +M` $"`P0%!@<("0H+# T.#Q`1$A,4%187&!D:&QP='A\@(2(C)"4F)R@I*BLL M+2XO,#$R,S0U-C<X.3H[/#T^/T!!0D-$149'2$E*2TQ-3D]045)35%565UA9 M6EM<75Y?8&%B8V1E9F=H:6IK;&UN;W!Q<G-T=79W>'EZ>WQ]?G^`@8*#A(6& MAXB)BHN,C8Z/D)&2DY25EI>8F9J;G)V>GZ"AHJ.DI::GJ*FJJZRMKJ^PL;*S MM+6VM[BYNKN\O;Z_P,'"P\3%QL?(R<K+S,W.S]#1TM/4U=;7V-G:V]S=WM_@ -?X>+CY.7FY^CIZNOL[>[O\/'R\_3U]O?X^?K[_/W^_P`` +?X>+CY.7FY^CIZNOL[>[O\/'R\_3U]O?X^?K[_/W^_P ` EOUU -print "not " unless pack('u', $in) eq $uu; +$_ = $uu; +tr/ /`/; +print "not " unless pack('u', $in) eq $_; print "ok ", $test++, "\n"; print "not " unless unpack('u', $uu) eq $in; |