Father Chrysostomos via RT wrote: > On Fri Apr 30 01:52:00 2010, srezic@iconmobile.com wrote: > >> The patch basically misuses the existing esc_q_utf8 function which >> already does limited "..." escaping, and adds additional escaping for >> characters < 0x20. >> >> Regards, >> Slaven >> >> > > Thank you for the patch. It looks nice, but there’s one problem: > > $ ./perl -Ilib -MData::Dumper -le '++$Data::Dumper::Useqq; print Dumper > join "", map chr, 0..255' > Malformed UTF-8 character (overflow at 0xc41461c8, byte 0xc9, after > start byte 0xbf) in subroutine entry at lib/Data/Dumper.pm line 190. > Malformed UTF-8 character (overflow at 0xc41461c8, byte 0xc9, after > start byte 0xbf) in subroutine entry at lib/Data/Dumper.pm line 190. > $VAR1 = > "\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 > !\"#\$%&'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\1B\x{83}\x{c4}\x{105}\x{146}\x{187}\x{1c8}\x{209}\x{24a}\x{28b}\x{2cc}\x{30d}\x{34e}\x{38f}\x{3d0}\x{411}\x{452}\x{493}\x{4d4}\x{515}\x{556}\x{597}\x{5d8}\x{619}\x{65a}\x{69b}\x{6dc}\x{71d}\x{75e}\x{79f}\x{7e0}\x{862}\x{18a3}\x{28e4}\x{3925}\x{4966}\x{59a7}\x{69e8}\x{7a29}\x{8a6a}\x{9aab}\x{aaec}\x{bb2d}\x{cb6e}\x{dbaf}\x{ebf0}\x{fc31}\x{31cb3}\x{72cf4}\x{b3d35}\x{f4d76}\x{135db7}\x{176df8}\x{1b7e39}\x{1f8e7a}\x{e7aefc}\x{1ebbf3d}\x{2efcf7e}\x{3f3dfbf}\x{3dfbf001}\x{7efc0042}\x{c00420c4}\0\1\x{83}\x{105}\x{187}\x{209}\x{28b}\x{30d}\x{38f}\x{411}\x{493}\x{515}\x{597}\x{619}\x{69b}\x{71d}\x{79f}\x{862}\x{3925}\x{69e8}\x{9aab}\x{cb6e}\x{fc31}\x{b3d35}\x{1b7e39}\x{2efcf7e}\0"; > > This is the output I get with the pure-Perl version: > > $ perl -MData::Dumper -le '++$Data::Dumper::Useqq; print Dumper join "", > map chr, 0..255' > $VAR1 = > "\0\1\2\3\4\5\6\a\b\t\n\13\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\e\34\35\36\37 > !\"#\$%&'()*+,-./0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"; > > > This suggests that there are some tests missing. So please accept first the attached patch which just add tests for all of 0..255. I'll look into the problems later. Regards, SlavenThread Next