Patch from Inaba Hiroto:
authorJarkko Hietaniemi <jhi@iki.fi>
Sun, 28 Jan 2001 19:28:40 +0000 (19:28 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Sun, 28 Jan 2001 19:28:40 +0000 (19:28 +0000)
commitf9a6324217cffea75ff769ddd313748c0613a128
tree9fb5b4ade5877ba969d093cfe37ec605de62d8dc
parent9ee2bb1a7c54b1866ff07ab9c157254810ee5205
Patch from Inaba Hiroto:
- canonical UTF-8 hash keys: if a key string for a hash is
  UTF8-on, try downgrade the string and use it if
  unicode::distinct is not in effect.
  For the task, I added a function bytes_from_utf8() to utf8.c.
  It might resemble utf8_to_bytes() but it is not convenient
  to the task.
  Made a test for it and added to t/op/each.t
- Changed do_print in doio.c to apply sv_utf8_(downgrade|upgrade) to
  the mortal copy of the argument SV.
  And changed t/io/utf8.t test 18 which expects print() to
  upgrade its argument.
- re-implement sv_eq with bytes_from_utf8()
- some bug fixes
  - tr/// does not handle UTF8 range (\x{}-\x{})
  - \ before raw UTF8 character produced
    "Malformed UTF-8 character" warning.
  - "\x{100}\N{CENT SIGN}" is Malformed.
    Added tests for these 3.
  - and one silly bug (by me) with qu operator.

p4raw-id: //depot/perl@8583
17 files changed:
doio.c
embed.h
embed.pl
global.sym
hv.c
objXSUB.h
perlapi.c
pod/perlapi.pod
proto.h
sv.c
t/io/utf8.t
t/lib/charnames.t
t/op/each.t
t/op/tr.t
t/pragma/utf8.t
toke.c
utf8.c