#define OUTCHAR(x) \
do { \
- if(!stream(x, userp)) \
+ if(!stream((unsigned char)x, userp)) \
done++; \
else \
return done; /* return on failure */ \
struct va_input *iptr;
bool loopit = TRUE;
fmt++;
- outlen = fmt - start - 1;
+ outlen = (size_t)(fmt - start - 1);
if(*fmt == '%') {
/* this means a %% that should be output only as %. Create an output
segment. */
continue; /* while */
}
- flags = width = precision = 0;
+ flags = 0;
+ width = precision = 0;
if(use_dollar != DOLLAR_NOPE) {
param = dollarstring(fmt, &fmt);
break;
case '-':
flags |= FLAGS_LEFT;
- flags &= ~FLAGS_PAD_NIL;
+ flags &= ~(unsigned int)FLAGS_PAD_NIL;
break;
case '#':
flags |= FLAGS_ALT;
optr = &out[ocount++];
if(ocount > MAX_SEGMENTS)
return PFMT_MANYSEGS;
- optr->input = param;
+ optr->input = (unsigned int)param;
optr->flags = flags;
optr->width = width;
optr->precision = precision;
}
/* is there a trailing piece */
- outlen = fmt - start;
+ outlen = (size_t)(fmt - start);
if(outlen) {
optr = &out[ocount++];
if(ocount > MAX_SEGMENTS)
mp_intmax_t signed_num; /* Used to convert negative in positive. */
char *w;
size_t outlen = optr->outlen;
- int flags = optr->flags;
+ unsigned int flags = optr->flags;
if(outlen) {
char *str = optr->start;
else
width = -width;
flags |= FLAGS_LEFT;
- flags &= ~FLAGS_PAD_NIL;
+ flags &= ~(unsigned int)FLAGS_PAD_NIL;
}
}
else
str = nilstr;
len = sizeof(nilstr) - 1;
/* Disable quotes around (nil) */
- flags &= (~FLAGS_ALT);
+ flags &= ~(unsigned int)FLAGS_ALT;
}
else {
str = "";
if(flags & FLAGS_ALT)
OUTCHAR('"');
- if(!(flags&FLAGS_LEFT))
+ if(!(flags & FLAGS_LEFT))
while(width-- > 0)
OUTCHAR(' ');
for(; len && *str; len--)
OUTCHAR(*str++);
- if(flags&FLAGS_LEFT)
+ if(flags & FLAGS_LEFT)
while(width-- > 0)
OUTCHAR(' ');
*fptr = 0;
if(width >= 0) {
+ size_t dlen;
if(width >= (int)sizeof(work))
width = sizeof(work)-1;
/* RECURSIVE USAGE */
- len = curl_msnprintf(fptr, left, "%d", width);
- fptr += len;
- left -= len;
+ dlen = (size_t)curl_msnprintf(fptr, left, "%d", width);
+ fptr += dlen;
+ left -= dlen;
}
if(prec >= 0) {
/* for each digit in the integer part, we can have one less
size_t maxprec = sizeof(work) - 2;
double val = iptr->val.dnum;
if(width > 0 && prec <= width)
- maxprec -= width;
+ maxprec -= (size_t)width;
while(val >= 10.0) {
val /= 10;
maxprec--;
struct nsprintf *infop = f;
if(infop->length < infop->max) {
/* only do this if we haven't reached max length yet */
- *infop->buffer++ = outc; /* store */
+ *infop->buffer++ = (char)outc; /* store */
infop->length++; /* we are now one byte larger */
return 0; /* fputc() returns like this on success */
}
static int storebuffer(unsigned char outc, void *f)
{
char **buffer = f;
- **buffer = outc;
+ **buffer = (char)outc;
(*buffer)++;
return 0;
}