Change 14402 by jhi@alpha on 2002/01/24 12:45:02
Subject: Very old debugger UTF-8 bug
From: [EMAIL PROTECTED] (Andreas J. Koenig)
Date: 24 Jan 2002 12:45:44 +0100
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
.... //depot/perl/lib/dumpvar.pl#15 edit
Differences ...
==== //depot/perl/lib/dumpvar.pl#15 (text) ====
Index: perl/lib/dumpvar.pl
--- perl/lib/dumpvar.pl.~1~ Thu Jan 24 06:00:05 2002
+++ perl/lib/dumpvar.pl Thu Jan 24 06:00:05 2002
@@ -44,6 +44,12 @@
$_;
}
+sub uniescape {
+ join("",
+ map { $_ > 255 ? sprintf("\\x{%04X}", $_) : chr($_) }
+ unpack("U*", $_[0]));
+}
+
sub stringify {
local($_,$noticks) = @_;
local($v) ;
@@ -67,6 +73,7 @@
} elsif ($unctrl eq 'unctrl') {
s/([\"\\])/\\$1/g ;
s/([\000-\037\177])/'^'.pack('c',ord($1)^64)/eg;
+ # uniescape?
s/([\200-\377])/'\\0x'.sprintf('%2X',ord($1))/eg
if $quoteHighBit;
} elsif ($unctrl eq 'quote') {
@@ -74,6 +81,7 @@
s/\033/\\e/g;
s/([\000-\037\177])/'\\c'.chr(ord($1)^64)/eg;
}
+ $_ = uniescape($_);
s/([\200-\377])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
($noticks || /^\d+(\.\d*)?\Z/)
? $_
End of Patch.