Make shared hash keys to be \0-terminated:
authorJarkko Hietaniemi <jhi@iki.fi>
Thu, 28 Feb 2002 05:43:45 +0000 (05:43 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 28 Feb 2002 05:43:45 +0000 (05:43 +0000)
commite05949c7fbf3ae0363947bc70c1c662248b91b93
treea4673734f9526bd3b579333443c956499954741f
parent4379a6f8153cde10f045a82b5434d852f701ae7a
Make shared hash keys to be \0-terminated:
one possible resolution for
"UTF-8, weird \w behaviour after HASH-KEY-ification"
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-01/msg01327.html
The hash keys were shared (the SvLEN(sv) = 0 was the giveaway).
The hash keys weren't \0-terminated.  This meant that the EOL ($)
in regmatch() got the nextchr beyond the last character.  Since
the keys were UTF-8, the nextchr was \1, not the usual
string-terminating \0.  Wham, no match.

I think another possible resolution could be to stop the nextchr
computation in regmatch() from peeking beyond the last character
of the string:

    nextchr = locinput < PL_regeol ? UCHARAT(locinput) : 0;

p4raw-id: //depot/perl@14908
hv.c
hv.h