Good enuff, thanks! Applied.
--Josh
At 20:36 on 03/29/2002 EST, Michel J Lambert <[EMAIL PROTECTED]> wrote:
> > I've applied portions of this patch. I omitted the parts which use the
> > "byte" type, which isn't going to work on all platforms.
>
> I've changed these to use 'char'. Hopefully that will be more portable.
>
> Mike Lambert
>
> Index: misc.c
> ===================================================================
> RCS file: /cvs/public/parrot/misc.c,v
> retrieving revision 1.19
> diff -u -r1.19 misc.c
> --- misc.c 17 Mar 2002 06:44:41 -0000 1.19
> +++ misc.c 30 Mar 2002 01:15:30 -0000
> @@ -89,38 +89,40 @@
> void int_to_str(char *, char *, HUGEINTVAL, INTVAL );
> */
>
> -void gen_sprintf_call(char *, char *, SpfInfo, int);
> +void gen_sprintf_call(char *, char *, SpfInfo, char);
>
> static void
> -uint_to_str(char *buf1, char *buf2, UHUGEINTVAL num, INTVAL base)
> +uint_to_str(char *buf1, char *buf2, UHUGEINTVAL num, char base)
> {
> - int i = 0, cur;
> + int i = 0, cur2;
> + char cur;
>
> do {
> - cur = num % base;
> + cur = (char)(num % base);
>
> if (cur < 10) {
> - buf2[i] = '0' + cur;
> + buf2[i] = (char)('0' + cur);
> }
> else {
> - buf2[i] = 'a' + cur;
> + buf2[i] = (char)('a' + cur);
> }
>
> i++;
> } while (num /= base);
>
> - cur = i;
> + cur2 = i;
>
> - for (i = 0; i <= cur; i++) {
> - buf1[i] = buf2[cur - i];
> + for (i = 0; i <= cur2; i++) {
> + buf1[i] = buf2[cur2 - i];
> }
> }
>
> static void
> -int_to_str(char *buf1, char *buf2, HUGEINTVAL num, INTVAL base)
> +int_to_str(char *buf1, char *buf2, HUGEINTVAL num, char base)
> {
> BOOLVAL neg;
> - int i = 0, cur;
> + int i = 0, cur2;
> + char cur;
>
> if (num < 0) {
> neg = 1;
> @@ -131,13 +133,13 @@
> }
>
> do {
> - cur = num % base;
> + cur = (char)(num % base);
>
> if (cur < 10) {
> - buf2[i] = '0' + cur;
> + buf2[i] = (char)('0' + cur);
> }
> else {
> - buf2[i] = 'a' + cur;
> + buf2[i] = (char)('a' + cur);
> }
>
> i++;
> @@ -147,10 +149,10 @@
> buf2[i++] = '-';
> }
>
> - cur = i;
> + cur2 = i;
>
> - for (i = 0; i < cur; i++) {
> - buf1[i] = buf2[cur - i - 1];
> + for (i = 0; i < cur2; i++) {
> + buf1[i] = buf2[cur2 - i - 1];
> }
>
> buf1[i] = 0;
> @@ -186,7 +188,7 @@
> }
>
> void
> -gen_sprintf_call(char *buf, char *buf2, SpfInfo info, int thingy)
> +gen_sprintf_call(char *buf, char *buf2, SpfInfo info, char thingy)
> {
> int i = 0;
> buf[i++] = '%';
> @@ -251,7 +253,7 @@
>
> for (i++; i < (INTVAL)string_length(pat)
> && info.phase != PHASE_DONE; i++) {
> - char ch = string_ord(pat, i);
> + INTVAL ch = string_ord(pat, i);
>
> switch (info.phase) {
> /*@fallthrough@ */ case PHASE_FLAGS:
> @@ -411,7 +413,7 @@
>
> case 'f':
> dbl = va_arg(*args, double);
> - gen_sprintf_call(t1, t2, &info, (char)'f');
> + gen_sprintf_call(t1, t2, &info, 'f');
> sprintf(t2, t1, dbl);
> targ = string_concat(interpreter, targ,
> cstr2pstr(t2), 0);
> Index: string.c
> ===================================================================
> RCS file: /cvs/public/parrot/string.c,v
> retrieving revision 1.64
> diff -u -r1.64 string.c
> --- string.c 24 Mar 2002 06:57:28 -0000 1.64
> +++ string.c 30 Mar 2002 01:15:32 -0000
> @@ -434,8 +434,6 @@
> * end of our piece */
> UINTVAL true_offset;
> UINTVAL true_length;
> - UINTVAL new_length;
> - UINTVAL new_size;
> INTVAL diff;
>
> true_offset = (UINTVAL)offset;
> @@ -791,7 +789,7 @@
> * would approach 128 characters in the buffer.
> */
> do {
> - *--ptr = '0' + i % 10;
> + *--ptr = (char)('0' + i % 10);
> }
> while(i /= 10);
>
>
>