Updating Data::Escape seems like a better option to me.
On Aug 12, 2005, at 3:12 PM, Patrick R. Michaud wrote:
On Fri, Aug 12, 2005 at 11:37:53AM -0700, Will Coleda wrote:
# New Ticket Created by Will Coleda
# Please include the string: [perl #36882]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=36882 >
Trying to glob empty strings causes a bus error. I would expect this
to be a match. works fine with a glob of "*" and a string of "".
The problem seems to be in Data::Escape, when passed an empty string
to be escaped it returns null instead of an empty string -- this
then causes the substr op to fail:
$ cat t.pir
.sub "main" @MAIN
load_bytecode "Data/Escape.pbc"
$P0 = find_global "Data::Escape", "String"
$S1 = "" # empty string
($S2) = $P0($S1, "'") # $S2 is escaped empty string
$S3 = "hello, world\n"
substr $S3, 5, 2, $S2 # replace ", " with escaped
empty string
print $S3
.end
$ parrot t.pir
Segmentation fault
I think that Data::Escape should return an empty string when
passed an empty string as an argument, but perhaps there's a reason
it's returning null?
I can either fix PGE to handle nulls returned by Data::Escape,
or I can fix Data::Escape to return an empty string instead of a
null. Let me know.
Pm