*str += strlen(*str)+1;
}
}
- sz += strlen(s)+1;
+ sz += (int)strlen(s)+1;
/* user */
snprint(tmp, sizeof tmp, "%d", (int)st->st_uid);
s = tmp;
- sz += strlen(s)+1;
+ sz += (int)strlen(s)+1;
if(d){
if(*str+strlen(s)+1 > estr)
d->uid = "oops";
/* group */
snprint(tmp, sizeof tmp, "%d", (int)st->st_gid);
s = tmp;
- sz += strlen(s)+1;
+ sz += (int)strlen(s)+1;
if(d){
if(*str + strlen(s)+1 > estr)
d->gid = "oops";
d->qid.vers = st->st_gen;
#endif
if(d->qid.vers == 0)
- d->qid.vers = st->st_mtime + st->st_ctime;
+ d->qid.vers = (ulong)(st->st_mtime + st->st_ctime);
d->mode = st->st_mode&0777;
- d->atime = st->st_atime;
- d->mtime = st->st_mtime;
+ d->atime = (ulong)st->st_atime;
+ d->mtime = (ulong)st->st_mtime;
d->length = st->st_size;
if(S_ISDIR(st->st_mode)){
int
atoi(char *s)
{
- return strtol(s, 0, 0);
+ return (int)strtol(s, 0, 0);
}
long
free(w);
return nil;
}
- u = ru.ru_utime.tv_sec*1000+((ru.ru_utime.tv_usec+500)/1000);
- s = ru.ru_stime.tv_sec*1000+((ru.ru_stime.tv_usec+500)/1000);
+ u = (ulong)(ru.ru_utime.tv_sec*1000+((ru.ru_utime.tv_usec+500)/1000));
+ s = (ulong)(ru.ru_stime.tv_sec*1000+((ru.ru_stime.tv_usec+500)/1000));
w->pid = pid;
w->time[0] = u;
w->time[1] = s;
snprint(tmp, sizeof tmp, "/dev/fd/%d", fd);
nstr = _p9dir(&st, &st, tmp, nil, nil, nil);
- d = malloc(sizeof(Dir)+nstr);
+ d = malloc(sizeof(Dir)+(size_t)nstr);
if(d == nil)
return nil;
- memset(d, 0, sizeof(Dir)+nstr);
+ memset(d, 0, sizeof(Dir)+(size_t)nstr);
str = (char*)&d[1];
_p9dir(&st, &st, tmp, d, &str, str+nstr);
return d;
ret = 0;
#ifndef _WIN32
if(~dir->mode != 0){
- if(fchmod(fd, dir->mode) < 0)
+ if(fchmod(fd, (mode_t)dir->mode) < 0)
ret = -1;
}
#endif
if(~dir->mtime != 0){
- tv[0].tv_sec = dir->mtime;
+ tv[0].tv_sec = (time_t)dir->mtime;
tv[0].tv_usec = 0;
- tv[1].tv_sec = dir->mtime;
+ tv[1].tv_sec = (time_t)dir->mtime;
tv[1].tv_usec = 0;
if(futimes(fd, tv) < 0)
ret = -1;
#endif
nstr = _p9dir(&lst, &st, file, nil, nil, nil);
- d = malloc(sizeof(Dir)+nstr);
+ d = malloc(sizeof(Dir)+(size_t)nstr);
if(d == nil)
return nil;
- memset(d, 0, sizeof(Dir)+nstr);
+ memset(d, 0, sizeof(Dir)+(size_t)nstr);
str = (char*)&d[1];
_p9dir(&lst, &st, file, d, &str, str+nstr);
return d;
if(~dir->mtime == 0)
return 0;
- ub.actime = dir->mtime;
- ub.modtime = dir->mtime;
+ ub.actime = (time_t)dir->mtime;
+ ub.modtime = (time_t)dir->mtime;
return utime(file, &ub);
}
;
va_end(arg);
- argv = malloc((i+1)*sizeof(char*));
+ argv = malloc((size_t)(i+1)*sizeof(char*));
if(argv == nil)
return -1;
h = fnv(name, namelen) & (nelem(fhash)-1);
for(f=fhash[h]; f; f=f->next) {
- if(f->namelen == namelen && memcmp(f->name, name, namelen) == 0) {
+ if(f->namelen == namelen && memcmp(f->name, name, (size_t)namelen) == 0) {
if(creat)
sysfatal("multiple definitions of flag -%s", name);
return f;
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->iscount = 1;
f->set = count;
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set = atollwhex;
f->arg = p;
{
char *t;
- *(int32*)p = strtol(s, &t, 0);
+ *(int32*)p = (int32)strtol(s, &t, 0);
if(*s == '\0' || *t != '\0')
sysfatal("invalid numeric argument -%s=%s", curflag->name, s);
}
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set = atolwhex;
f->arg = p;
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set = string;
f->arg = p;
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set = fn0;
f->arg = fn;
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set = fn1;
f->arg = fn;
{
Flag *f;
- f = lookflag(name, strlen(name), 1);
+ f = lookflag(name, (int)strlen(name), 1);
f->desc = desc;
f->set2 = fn2;
f->arg = fn;
name = p+1;
q = strchr(name, '=');
if(q != nil)
- namelen = q++ - name;
+ namelen = (int)(q++ - name);
else
- namelen = strlen(name);
+ namelen = (int)strlen(name);
f = lookflag(name, namelen, 0);
if(f == nil) {
if(strcmp(p, "-h") == 0 || strcmp(p, "-help") == 0 || strcmp(p, "-?") == 0)
dofmt(Fmt *f, char *fmt)
{
Rune rune, *rt, *rs;
- int r;
+ Rune r;
char *t, *s;
int n, nfmt;
if(f->runes){
rt = (Rune*)f->to;
rs = (Rune*)f->stop;
- while((r = *(uchar*)fmt) && r != '%'){
+ while((r = (Rune)*(uchar*)fmt) && r != '%'){
if(r < Runeself)
fmt++;
else{
FMTRCHAR(f, rt, rs, r);
}
fmt++;
- f->nfmt += rt - (Rune *)f->to;
+ f->nfmt += (int)(rt - (Rune *)f->to);
f->to = rt;
if(!r)
return f->nfmt - nfmt;
}else{
t = (char*)f->to;
s = (char*)f->stop;
- while((r = *(uchar*)fmt) && r != '%'){
+ while((r = (Rune)*(uchar*)fmt) && r != '%'){
if(r < Runeself){
FMTCHAR(f, t, s, r);
fmt++;
}
}
fmt++;
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
if(!r)
return f->nfmt - nfmt;
__fmtflush(Fmt *f, void *t, int len)
{
if(f->runes)
- f->nfmt += (Rune*)t - (Rune*)f->to;
+ f->nfmt += (int)((Rune*)t - (Rune*)f->to);
else
- f->nfmt += (char*)t - (char *)f->to;
+ f->nfmt += (int)((char*)t - (char *)f->to);
f->to = t;
if(f->flush == 0 || (*f->flush)(f) == 0 || (char*)f->to + len > (char*)f->stop){
f->stop = f->to;
s = (char*)f->stop;
for(i = 0; i < n; i++)
FMTCHAR(f, t, s, ' ');
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
return 0;
}
s = (Rune*)f->stop;
for(i = 0; i < n; i++)
FMTRCHAR(f, t, s, ' ');
- f->nfmt += t - (Rune *)f->to;
+ f->nfmt += (int)(t - (Rune *)f->to);
f->to = t;
return 0;
}
r = *(uchar*)m;
if(r < Runeself)
m++;
- else if((me - m) >= UTFmax || fullrune(m, me-m))
+ else if((me - m) >= UTFmax || fullrune(m, (int)(me-m)))
m += chartorune(&r, m);
else
break;
FMTRCHAR(f, rt, rs, r);
}
- f->nfmt += rt - (Rune *)f->to;
+ f->nfmt += (int)(rt - (Rune *)f->to);
f->to = rt;
if(fl & FmtLeft && __rfmtpad(f, w - n) < 0)
return -1;
r = *(uchar*)m;
if(r < Runeself)
m++;
- else if((me - m) >= UTFmax || fullrune(m, me-m))
+ else if((me - m) >= UTFmax || fullrune(m, (int)(me-m)))
m += chartorune(&r, m);
else
break;
FMTRUNE(f, t, s, r);
}
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
if(fl & FmtLeft && __fmtpad(f, w - n) < 0)
return -1;
rs = (Rune*)f->stop;
for(me = m + n; m < me; m++)
FMTRCHAR(f, rt, rs, *m);
- f->nfmt += rt - (Rune *)f->to;
+ f->nfmt += (int)(rt - (Rune *)f->to);
f->to = rt;
if(fl & FmtLeft && __rfmtpad(f, w - n) < 0)
return -1;
r = *m;
FMTRUNE(f, t, s, r);
}
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
if(fl & FmtLeft && __fmtpad(f, w - n) < 0)
return -1;
{
char x[1];
- x[0] = va_arg(f->args, int);
+ x[0] = (char)va_arg(f->args, int);
f->prec = 1;
return __fmtcpy(f, (const char*)x, 1, 1);
}
{
Rune x[1];
- x[0] = va_arg(f->args, int);
+ x[0] = (Rune)va_arg(f->args, int);
return __fmtrcpy(f, (const void*)x, 1);
}
#endif
return __fmtcpy(f, s, j, i);
}
- return __fmtcpy(f, s, utflen(s), strlen(s));
+ return __fmtcpy(f, s, utflen(s), (int)strlen(s));
}
/* fmt out a null terminated utf string */
}else{
for(e = s; *e; e++)
;
- n = e - s;
+ n = (int)(e - s);
}
return __fmtrcpy(f, s, n);
}
char buf[140], *p, *conv;
/* 140: for 64 bits of binary + 3-byte sep every 4 digits */
uvlong vu;
- ulong u;
- int neg, base, i, n, fl, w, isv;
+ ulong fl, u;
+ int neg, base, i, n, w, isv;
int ndig, len, excess, bytelen;
char *grouping;
char *thousands;
if(fl & FmtUnsigned)
vu = va_arg(f->args, uvlong);
else
- vu = va_arg(f->args, vlong);
+ vu = (uvlong)va_arg(f->args, vlong);
}else if(fl & FmtLong){
if(fl & FmtUnsigned)
u = va_arg(f->args, ulong);
else
- u = va_arg(f->args, long);
+ u = (ulong)va_arg(f->args, long);
}else if(fl & FmtByte){
if(fl & FmtUnsigned)
u = (uchar)va_arg(f->args, int);
else
- u = (char)va_arg(f->args, int);
+ u = (uchar)(char)va_arg(f->args, int);
}else if(fl & FmtShort){
if(fl & FmtUnsigned)
u = (ushort)va_arg(f->args, int);
else
- u = (short)va_arg(f->args, int);
+ u = (ushort)(short)va_arg(f->args, int);
}else{
if(fl & FmtUnsigned)
u = va_arg(f->args, uint);
else
- u = va_arg(f->args, int);
+ u = (uint)va_arg(f->args, int);
}
conv = "0123456789abcdef";
grouping = "\4"; /* for hex, octal etc. (undefined by spec but nice) */
}
if(!(fl & FmtUnsigned)){
if(isv && (vlong)vu < 0){
- vu = -(vlong)vu;
+ vu = (uvlong)-(vlong)vu;
neg = 1;
}else if(!isv && (long)u < 0){
- u = -(long)u;
+ u = (ulong)-(long)u;
neg = 1;
}
}
excess = 0; /* number of bytes > number runes */
ndig = 0;
len = utflen(thousands);
- bytelen = strlen(thousands);
+ bytelen = (int)strlen(thousands);
if(isv){
while(vu){
- i = vu % base;
- vu /= base;
+ i = (int)(vu % (uvlong)base);
+ vu /= (uvlong)base;
if((fl & FmtComma) && n % 4 == 3){
*p-- = ',';
n++;
n += len;
excess += bytelen - len;
p -= bytelen;
- memmove(p+1, thousands, bytelen);
+ memmove(p+1, thousands, (size_t)bytelen);
}
*p-- = conv[i];
n++;
}
}else{
while(u){
- i = u % base;
- u /= base;
+ i = (int)(u % (ulong)base);
+ u /= (ulong)base;
if((fl & FmtComma) && n % 4 == 3){
*p-- = ',';
n++;
n += len;
excess += bytelen - len;
p -= bytelen;
- memmove(p+1, thousands, bytelen);
+ memmove(p+1, thousands, (size_t)bytelen);
}
*p-- = conv[i];
n++;
* Zero values don't get 0x.
*/
if(f->r == 'x' || f->r == 'X')
- fl &= ~FmtSharp;
+ fl &= ~(ulong)FmtSharp;
}
for(w = f->prec; n < w && p > buf+3; n++){
if((fl & FmtApost) && __needsep(&ndig, &grouping)){
n += len;
excess += bytelen - len;
p -= bytelen;
- memmove(p+1, thousands, bytelen);
+ memmove(p+1, thousands, (size_t)bytelen);
}
*p-- = '0';
}
n += 2;
else if(base == 8){
if(p[1] == '0')
- fl &= ~FmtSharp;
+ fl &= ~(ulong)FmtSharp;
else
n++;
}
n += len;
excess += bytelen - len;
p -= bytelen;
- memmove(p+1, thousands, bytelen);
+ memmove(p+1, thousands, (size_t)bytelen);
}
*p-- = '0';
}
- f->flags &= ~FmtWidth;
+ f->flags &= ~(ulong)FmtWidth;
}
if(fl & FmtSharp){
if(base == 16)
- *p-- = f->r;
+ *p-- = (char)f->r;
if(base == 16 || base == 8)
*p-- = '0';
}
*p-- = '+';
else if(fl & FmtSpace)
*p-- = ' ';
- f->flags &= ~FmtPrec;
+ f->flags &= ~(ulong)FmtPrec;
return __fmtcpy(f, p + 1, n, n + excess);
}
}else if(fl & FmtLong){
*(long*)p = f->nfmt;
}else if(fl & FmtByte){
- *(char*)p = f->nfmt;
+ *(char*)p = (char)f->nfmt;
}else if(fl & FmtShort){
- *(short*)p = f->nfmt;
+ *(short*)p = (short)f->nfmt;
}else{
*(int*)p = f->nfmt;
}
dorfmt(Fmt *f, const Rune *fmt)
{
Rune *rt, *rs;
- int r;
+ Rune r;
char *t, *s;
int nfmt;
while((r = *fmt++) && r != '%'){
FMTRCHAR(f, rt, rs, r);
}
- f->nfmt += rt - (Rune *)f->to;
+ f->nfmt += (int)(rt - (Rune *)f->to);
f->to = rt;
if(!r)
return f->nfmt - nfmt;
while((r = *fmt++) && r != '%'){
FMTRUNE(f, t, f->stop, r);
}
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
if(!r)
return f->nfmt - nfmt;
for(b = a+n-1; b >= a; b--) {
c = *b + 1;
if(c <= '9') {
- *b = c;
+ *b = (char)c;
return 0;
}
*b = '0';
*b = '9';
return 1;
}
- *b = c;
+ *b = (char)c;
return 0;
}
*b = '9';
*p++ = '+';
i = 0;
while(e) {
- se[i++] = e % 10 + '0';
+ se[i++] = (char)(e % 10 + '0');
e /= 10;
}
while(i < 2)
static void
xdtoa(double f, char *s, int *exp, int *neg, int *ns)
{
- int c, d, e2, e, ee, i, ndigit, oerrno;
+ int d, e2, e, ee, i, ndigit, oerrno;
+ char c;
char tmp[NSIGNIF+10];
double g;
*/
for(i=0; i<NSIGNIF; i++) {
d = (int)g;
- s[i] = d+'0';
+ s[i] = (char)(d+'0');
g = (g-d) * 10;
}
s[i] = 0;
{
char buf[NSIGNIF+10], *dot, *digits, *p, *s, suf[10], *t;
double f;
- int c, chr, dotwid, e, exp, fl, ndigits, neg, newndigits;
+ int c, chr, dotwid, e, exp, ndigits, neg, newndigits;
int pad, point, prec, realchr, sign, sufwid, ucase, wid, z1, z2;
+ ulong fl;
Rune r, *rs, *rt;
if(fmt->flags&FmtLong)
- f = va_arg(fmt->args, long double);
+ f = (double)va_arg(fmt->args, long double);
else
f = va_arg(fmt->args, double);
prec = FDEFLT;
if(fl & FmtPrec)
prec = fmt->prec;
- chr = fmt->r;
+ chr = (int)fmt->r;
ucase = 0;
switch(chr) {
case 'A':
s = special[0+ucase];
special:
fmt->flags = fl & (FmtWidth|FmtLeft);
- return __fmtcpy(fmt, s, strlen(s), strlen(s));
+ return __fmtcpy(fmt, s, (int)strlen(s), (int)strlen(s));
}
if(__isInf(f, 1)) {
s = special[2+ucase];
z2 = 0;
}
xfmtexp(suf, e, ucase);
- sufwid = strlen(suf);
+ sufwid = (int)strlen(suf);
break;
casef:
}
}
}
- fmt->nfmt += rt - (Rune*)fmt->to;
+ fmt->nfmt += (int)(rt - (Rune*)fmt->to);
fmt->to = rt;
if(sufwid && __fmtcpy(fmt, suf, sufwid, sufwid) < 0)
return -1;
for(p=dot; *p; p++)
FMTCHAR(fmt, t, s, *p);
}
- fmt->nfmt += t - (char*)fmt->to;
+ fmt->nfmt += (int)(t - (char*)fmt->to);
fmt->to = t;
if(sufwid && __fmtcpy(fmt, suf, sufwid, sufwid) < 0)
return -1;
case '5': case '6': case '7': case '8': case '9':
i = 0;
while(r >= '0' && r <= '9'){
- i = i * 10 + r - '0';
+ i = i * 10 + (int)r - '0';
if(isrunes){
r = *(Rune*)fmt;
fmt = (Rune*)fmt + 1;
}else{
- r = *(char*)fmt;
+ r = (Rune)*(char*)fmt;
fmt = (char*)fmt + 1;
}
}
* ignore the precision.
*/
if(f->flags & FmtPrec){
- f->flags &= ~FmtPrec;
+ f->flags &= ~(ulong)FmtPrec;
f->prec = 0;
continue;
}
}
goto numflag;
}
- n = (*fmtfmt(r))(f);
+ n = (*fmtfmt((int)r))(f);
if(n < 0)
return nil;
if(n == 0)
else\
return -1;\
}\
- *t++ = c;\
+ *t++ = (char)c;\
}while(0)
#define FMTRCHAR(f, t, s, c)\
else\
return -1;\
}\
- *t++ = c;\
+ *t++ = (Rune)c;\
}while(0)
#define FMTRUNE(f, t, s, r)\
return -1;\
}\
if(r < Runeself)\
- *t++ = r;\
+ *t++ = (char)r;\
else{\
_rune = r;\
t += runetochar(t, &_rune);\
{
int n;
- n = (char*)f->to - (char*)f->start;
- if(n && write((uintptr)f->farg, f->start, n) != n)
+ n = (int)((char*)f->to - (char*)f->start);
+ if(n && (int)write((int)(uintptr)f->farg, f->start, (size_t)n) != n)
return 0;
f->to = f->start;
return 1;
break;
}
- if((c <= L' ') || (c == L'\'') || (fmtdoquote!=nil && fmtdoquote(c))){
+ if((c <= L' ') || (c == L'\'') || (fmtdoquote!=nil && fmtdoquote((int)c))){
if(!q->quoted){
if(runesout){
if(1+q->nrunesout+1+1 > nout) /* no room for quotes */
r = *(uchar*)m;
if(r < Runeself)
m++;
- else if((me - m) >= UTFmax || fullrune(m, me-m))
+ else if((me - m) >= UTFmax || fullrune(m, (int)(me-m)))
m += chartorune(&r, m);
else
break;
if(f->runes){
FMTRCHAR(f, rt, rs, '\'');
USED(rs);
- f->nfmt += rt - (Rune *)f->to;
+ f->nfmt += (int)(rt - (Rune *)f->to);
f->to = rt;
if(fl & FmtLeft && __rfmtpad(f, w - q->nrunesout) < 0)
return -1;
}else{
FMTRUNE(f, t, s, '\'');
USED(s);
- f->nfmt += t - (char *)f->to;
+ f->nfmt += (int)(t - (char *)f->to);
f->to = t;
if(fl & FmtLeft && __fmtpad(f, w - q->nbytesout) < 0)
return -1;
if(f->flush)
outlen = 0x7FFFFFFF; /* if we can flush, no output limit */
else if(f->runes)
- outlen = (Rune*)f->stop - (Rune*)f->to;
+ outlen = (int)((Rune*)f->stop - (Rune*)f->to);
else
- outlen = (char*)f->stop - (char*)f->to;
+ outlen = (int)((char*)f->stop - (char*)f->to);
__quotesetup(s, r, nin, outlen, &q, f->flags&FmtSharp, f->runes);
/*print("bytes in %d bytes out %d runes in %d runesout %d\n", q.nbytesin, q.nbytesout, q.nrunesin, q.nrunesout); */
n = 1;
}else{
t = (char*)f->to;
- FMTRUNE(f, t, f->stop, r);
- n = t - (char*)f->to;
+ FMTRUNE(f, t, f->stop, (Rune)r);
+ n = (int)(t - (char*)f->to);
f->to = t;
}
f->nfmt += n;
* optimizes the test away. casting to uintptr works around this bug.
*/
if((uintptr)buf+len < (uintptr)buf)
- len = -(uintptr)buf-1;
+ len = (uint)-(uintptr)buf-1;
va_start(args, fmt);
- n = vsnprint(buf, len, fmt, args);
+ n = (int)vsnprint(buf, (int)len, fmt, args);
va_end(args);
return n;
}
continue;
}
if(na < Ndig-50)
- a[na++] = c;
+ a[na++] = (char)c;
continue;
}
switch(c) {
mid[0] = 0;
mid[1] = 1;
for(i=0; (c=a[i]) != '\0'; i++) {
- mid[0] = mid[0]*10 + (c-'0');
+ mid[0] = mid[0]*10 + (ulong)(c-'0');
mid[1] = mid[1]*10;
if(i >= 8)
break;
/* only hard part is if even/odd roundings wants to go up */
c = mid[Prec-1] & (Sigbit-1);
if(c == Sigbit/2 && (mid[Prec-1]&Sigbit) == 0)
- mid[Prec-1] -= c;
+ mid[Prec-1] -= (ulong)c;
break; /* exactly mid */
}
/* normal rounding applies */
c = mid[Prec-1] & (Sigbit-1);
- mid[Prec-1] -= c;
+ mid[Prec-1] -= (ulong)c;
if(c >= Sigbit/2) {
mid[Prec-1] += Sigbit;
frnorm(mid);
out:
d = 0;
for(i=0; i<Prec; i++)
- d = d*One + mid[i];
+ d = d*One + (double)mid[i];
if(flag & Fsign)
d = -d;
d = ldexp(d, bp - Prec*Nbits);
static void
frnorm(ulong *f)
{
- int i, c;
+ int i;
+ ulong c;
c = 0;
for(i=Prec-1; i>0; i--) {
for(i=0; i<Prec; i++)
tf[i] = tf[i]*10;
frnorm(tf);
- d = (tf[0] >> Nbits) + '0';
+ d = (int)(tf[0] >> Nbits) + '0';
tf[0] &= One-1;
/* compare next digit */
for(;;) {
c = n>>b;
n -= c<<b;
- *p++ = c + '0';
+ *p++ = (char)(c + '0');
c = *a++;
if(c == 0)
break;
n = n*10;
c = n>>b;
n -= c<<b;
- *p++ = c + '0';
+ *p++ = (char)(c + '0');
(*na)++;
}
*p = 0;
d = (int)(nelem(tab1))-1;
t = tab1 + d;
b = t->bp;
- if(memcmp(a, t->cmp, t->siz) > 0)
+ if(memcmp(a, t->cmp, (size_t)t->siz) > 0)
d--;
*dp -= d;
*bp += b;
n = c/10;
c -= n*10;
p--;
- *p = c + '0';
+ *p = (char)(c + '0');
}
while(n) {
c = n;
n = c/10;
c -= n*10;
p--;
- *p = c + '0';
+ *p = (char)(c + '0');
}
}
d = (int)(nelem(tab2))-1;
t = tab2 + d;
b = t->bp;
- if(memcmp(a, t->cmp, t->siz) < 0)
+ if(memcmp(a, t->cmp, (size_t)t->siz) < 0)
d--;
p = a + *na;
*bp -= b;
if(f->start == nil)
return 0;
- n = (uintptr)f->farg;
+ n = (int)(uintptr)f->farg;
n *= 2;
s = (char*)f->start;
- f->start = realloc(s, n);
+ f->start = realloc(s, (size_t)n);
if(f->start == nil){
f->farg = nil;
f->to = nil;
memset(f, 0, sizeof *f);
f->runes = 0;
n = 32;
- f->start = malloc(n);
+ f->start = malloc((size_t)n);
if(f->start == nil)
return -1;
f->to = f->start;
dofmt(&f, fmt);
VA_END(f.args);
*(char*)f.to = '\0';
- return (char*)f.to - buf;
+ return (int)((char*)f.to - buf);
}
return s;
}
- return getcwd(s, ns);
+ return getcwd(s, (size_t)ns);
}
a = av;
t = 0;
while(t < n){
- m = read(f, a+t, n-t);
+ m = read(f, a+t, (size_t)(n-t));
if(m <= 0){
if(t == 0)
return m;
close(p[0]);
return -1;
}
- n = readn(p[0], buf, sizeof buf-1);
+ n = (int)readn(p[0], buf, sizeof buf-1);
close(p[0]);
if(!WIFEXITED(status) || WEXITSTATUS(status)!=0 || n <= 0){
if(!WIFEXITED(status))
werrstr("%s", buf+2);
return -1;
}
- pid = strtol(buf, &q, 0);
+ pid = (int)strtol(buf, &q, 0);
}else{
/*
* Child - fork a new child whose wait message can't
{
if(to >= e)
return to;
- to = memccpy(to, from, '\0', e - to);
+ to = memccpy(to, from, '\0', (size_t)(e - to));
if(to == nil){
to = e - 1;
*to = '\0';
quoting = 0;
t = s; /* s is output string, t is input string */
- while(*t!='\0' && (quoting || utfrune(sep, *t)==nil)){
+ while(*t!='\0' && (quoting || utfrune(sep, (Rune)*t)==nil)){
if(*t != '\''){
*s++ = *t++;
continue;
/* move to end of next token */
quoting = 0;
- while(*t!='\0' && (quoting || utfrune(sep, *t)==nil)){
+ while(*t!='\0' && (quoting || utfrune(sep, (Rune)*t)==nil)){
if(*t != '\''){
t++;
continue;
int nargs;
for(nargs=0; nargs<maxargs; nargs++){
- while(*s!='\0' && utfrune(sep, *s)!=nil)
+ while(*s!='\0' && utfrune(sep, (Rune)*s)!=nil)
*s++ = '\0';
if(*s == '\0')
break;
int nargs;
for(nargs=0; nargs<maxargs; nargs++){
- while(*s!='\0' && utfrune(qsep, *s)!=nil)
+ while(*s!='\0' && utfrune(qsep, (Rune)*s)!=nil)
s++;
if(*s == '\0')
break;
*/
c = *(uchar*)str;
if(c < Tx) {
- *rune = c;
+ *rune = (Rune)c;
return 1;
}
l = ((c << Bitx) | c1) & Rune2;
if(l <= Rune1)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 2;
}
goto bad;
if (SurrogateMin <= l && l <= SurrogateMax)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 3;
}
l = ((((((c << Bitx) | c1) << Bitx) | c2) << Bitx) | c3) & Rune4;
if (l <= Rune3 || l > Runemax)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 4;
}
*/
c = *(uchar*)str;
if(c < Tx) {
- *rune = c;
+ *rune = (Rune)c;
return 1;
}
l = ((c << Bitx) | c1) & Rune2;
if(l <= Rune1)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 2;
}
goto bad;
if (SurrogateMin <= l && l <= SurrogateMax)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 3;
}
l = ((((((c << Bitx) | c1) << Bitx) | c2) << Bitx) | c3) & Rune4;
if (l <= Rune3 || l > Runemax)
goto bad;
- *rune = l;
+ *rune = (Rune)l;
return 4;
}
*/
c = *rune;
if(c <= Rune1) {
- str[0] = c;
+ str[0] = (char)c;
return 1;
}
* 0080-07FF => T2 Tx
*/
if(c <= Rune2) {
- str[0] = T2 | (c >> 1*Bitx);
- str[1] = Tx | (c & Maskx);
+ str[0] = (char)(T2 | (c >> 1*Bitx));
+ str[1] = (char)(Tx | (c & Maskx));
return 2;
}
* 0800-FFFF => T3 Tx Tx
*/
if (c <= Rune3) {
- str[0] = T3 | (c >> 2*Bitx);
- str[1] = Tx | ((c >> 1*Bitx) & Maskx);
- str[2] = Tx | (c & Maskx);
+ str[0] = (char)(T3 | (c >> 2*Bitx));
+ str[1] = (char)(Tx | ((c >> 1*Bitx) & Maskx));
+ str[2] = (char)(Tx | (c & Maskx));
return 3;
}
* four character sequence (21-bit value)
* 10000-1FFFFF => T4 Tx Tx Tx
*/
- str[0] = T4 | (c >> 3*Bitx);
- str[1] = Tx | ((c >> 2*Bitx) & Maskx);
- str[2] = Tx | ((c >> 1*Bitx) & Maskx);
- str[3] = Tx | (c & Maskx);
+ str[0] = (char)(T4 | (c >> 3*Bitx));
+ str[1] = (char)(Tx | ((c >> 2*Bitx) & Maskx));
+ str[2] = (char)(Tx | ((c >> 1*Bitx) & Maskx));
+ str[3] = (char)(Tx | (c & Maskx));
return 4;
}
nb = 0;
while(nrune--) {
- c = *r++;
+ c = (int)*r++;
if (c <= Rune1)
nb++;
else if (c <= Rune2)
if(to >= e)
return to;
- end = memccpy(to, from, '\0', e - to);
+ end = memccpy(to, from, '\0', (size_t)(e - to));
if(end == nil){
end = e-1;
while(end>to && (*--end&0xC0)==0x80)
utflen(const char *s)
{
int c;
- long n;
+ int n;
Rune rune;
n = 0;
utfnlen(const char *s, long m)
{
int c;
- long n;
+ int n;
Rune rune;
const char *es;
s++;
continue;
}
- if(!fullrune(s, es-s))
+ if(!fullrune(s, (int)(es-s)))
break;
s += chartorune(&rune, s);
}
const char *s1;
if(c < Runesync) /* not part of utf sequence */
- return strrchr(s, c);
+ return strrchr(s, (char)c);
s1 = 0;
for(;;) {
int n;
if(c < Runesync) /* not part of utf sequence */
- return strchr(s, c);
+ return strchr(s, (char)c);
for(;;) {
c1 = *(uchar*)s;
utfutf(const char *s1, const char *s2)
{
const char *p;
- long f, n1, n2;
+ long f, n1;
+ size_t n2;
Rune r;
n1 = chartorune(&r, s2);
return strstr(s1, s2);
n2 = strlen(s2);
- for(p=s1; (p=utfrune(p, f)) != 0; p+=n1)
+ for(p=s1; (p=utfrune(p, r)) != 0; p+=n1)
if(strncmp(p, s2, n2) == 0)
return p;
return 0;