All but one test are passing again in tcl. The failing test boils down to this PIR:

.sub '' :main
  load_bytecode 'PGE.pbc'
  load_bytecode 'PGE/Glob.pbc'

  $P1 = find_global 'PGE', 'glob'

  $S1 = unicode:"\u03b1"
  $S1 = downcase $S1

  $S2 = unicode:"\u0391"
  $S2 = downcase $S2

  $P2 = $P1($S1) # create a glob rule..
  $P3 = $P2($S2) # does it match?

  $I0 = $P3."__get_bool"()

  print $I0
  print "\n"
.end

Which should be comparing the capital and lower case Greek Alpha case insensitively. The downcase is having the desired effect, generating two identical strings. However, when we use PGE to compare them, we end up with a malformed string error.

A few notes:

1) using ascii:"A" and ascii:"a", this prints 1.

2) using unicode:"A" and ascii:"a", this prints 1.

3) If I 'escape' both the pattern and the string, this still prints 0.

4) If I escape the pattern 2x (once for unicode, once for backslashes), and the string once, this prints 1! Yay!*

5) However, if I turn on #4, then I get four test failures in tcl's [string] tests. You can simulate this here by combining #1 and #4, which bus errors on my os x box.

So, are all these ways of preparing arguments to Glob incorrect? (and if so, what's the right way?), or does this behavior point to a bug?

Regards.

*Wait for it....


Reply via email to