Melvin Smith:
# Just committed the set Sx, iy op.
#
# Patch at end.
....
# diff -u -r1.60 string.c
# --- string.c  21 Mar 2002 09:56:41 -0000      1.60
# +++ string.c  22 Mar 2002 04:09:34 -0000
# @@ -774,6 +774,35 @@
#       return f;
#   }
#
# +STRING *
# +string_from_int(struct Parrot_Interp * interpreter, INTVAL i) {
# +    const char * digits = "0123456789";
# +    char buf[128];
# +    char *ptr = &buf[127];
# +    int neg = 0;
# +
# +    if(i < 0) {
# +        neg = 1;
# +        i = abs(i);
# +    }
# +
# +    /* Dangerous looking but no 32/64/128/.... bit int
# +     * would approach 128 characters in the buffer.
# +     */
# +    do {
# +        *--ptr = digits[i % 10];
# +        i /= 10;
# +    }
# +    while(i);
# +
# +    if(neg)
# +        *--ptr = '-';
# +
# +    return string_make(interpreter, ptr, (UINTVAL)(127 -
# (ptr - buf)),
# +                            NULL, 0, NULL);
# +}
# +
# +

Just do "$1=Parrot_sprintf_c(interpreter, "%Vd", $2);".  I've already
implemented this logic there; there's no sense having it in the core
twice.

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

#define private public
    --Spotted in a C++ program just before a #include

Reply via email to