Andy Dougherty:
# You'll probably also want the enhanced sprintf tests (or 
# something like
# them.)  Currently, the only one that fails for me is the 
# %5.3f test, which gives 0.500 in stdio, but 
# 0.500000000000000000000000000000000 from Parrot.

I finally tracked down this bug.  If you look, there are fifty-three
zeroes.  The format in question is %5.3g.

Get the picture?

What was happening was that gen_sprintf_call(), which reconstructs a
format string from the info structure so it can be passed to the native
snprintf, called uint_to_string() once to convert the width to a string,
then again to convert the precedence.  Unfortunately, the target given
to uint_to_string() wasn't being cleared by either it or
gen_sprintf_call(), so the sprintf format generated was %5.53g.  This is
cleared up in my local copy.

# Thanks again for all this work,

You're quite welcome.  :^)  And thanks for being a patient and helpful
tester and debugger.

Once I clear up the issue with the Sun compiler, I'll be committing
this.  Well, a slightly modified version.  Relax, it's nothing
drastic--I just ran it through check_source_standards.pl and
run_indent.pl.

--Brent Dax <[EMAIL PROTECTED]>
@roles=map {"Parrot $_"} qw(embedding regexen Configure)

Wire telegraph is a kind of a very, very long cat. You pull his tail in
New York and his head is meowing in Los Angeles. And radio operates
exactly the same way. The only difference is that there is no cat.
    --Albert Einstein (explaining radio)

Reply via email to