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.

Reply via email to