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); > > >