--- /n/sources/plan9/sys/include/stdio.h Thu Jul 21 20:19:15 2005 +++ /sys/include/stdio.h Fri Aug 26 00:00:00 2016 @@ -2,117 +2,123 @@ #pragma lib "libstdio.a" /* - * pANS astdio.h + * pANS stdio.h */ /* * According to X3J11, there is only one i/o buffer * and it must not be occupied by both input and output data. - * If rpwp>=(f)->rp || (f)->flags&LINEBUF && _IO_ctmp=='\n'\ - * ?_IO_putc(_IO_ctmp, f)\ - * :*(f)->wp++=_IO_ctmp) - * + * + * If rpwp>=(f)->rp || (f)->flags&LINEBUF && _IO_ctmp=='\n'?\ + * _IO_putc(_IO_ctmp, f): *(f)->wp++=_IO_ctmp) */ typedef struct{ int fd; /* UNIX file pointer */ char flags; /* bits for must free buffer on close, line-buffered */ char state; /* last operation was read, write, position, error, eof */ - char *buf; /* pointer to i/o buffer */ - char *rp; /* read pointer (or write end-of-buffer) */ - char *wp; /* write pointer (or read end-of-buffer) */ - char *lp; /* actual write pointer used when line-buffering */ + unsigned char *buf; /* pointer to i/o buffer */ + unsigned char *rp; /* read pointer (or write end-of-buffer) */ + unsigned char *wp; /* write pointer (or read end-of-buffer) */ + unsigned char *lp; /* actual write pointer used when line-buffering */ long bufl; /* actual length of buffer */ - char unbuf[1]; /* tiny buffer for unbuffered io (used for ungetc?) */ + unsigned char unbuf[1]; /* tiny buffer for unbuffered io (used for ungetc?) */ + int junk; }FILE; -typedef long fpos_t; + +typedef long long fpos_t; + #ifndef NULL #define NULL ((void*)0) #endif + /* * Third arg of setvbuf */ #define _IOFBF 1 /* block-buffered */ #define _IOLBF 2 /* line-buffered */ #define _IONBF 3 /* unbuffered */ -#define BUFSIZ 4096 /* size of setbuf buffer */ + +#define BUFSIZ 8192 /* size of setbuf buffer */ #define EOF (-1) /* returned on end of file */ -#define FOPEN_MAX 100 /* max files open */ +#define FOPEN_MAX 128 /* max files open */ #define FILENAME_MAX BUFSIZ /* silly filename length */ #define L_tmpnam 20 /* sizeof "/tmp/abcdefghij9999 */ -#ifndef SEEK_SET /* also defined in unistd.h */ #define SEEK_CUR 1 #define SEEK_END 2 #define SEEK_SET 0 -#endif #define TMP_MAX 64 /* very hard to set correctly */ + #define stderr (&_IO_stream[2]) #define stdin (&_IO_stream[0]) #define stdout (&_IO_stream[1]) -#define _IO_CHMASK 0377 /* mask for 8 bit characters */ -FILE *tmpfile(void); -char *tmpnam(char *); -int fclose(FILE *); -int fflush(FILE *); -FILE *fopen(const char *, const char *); -FILE *fdopen(const int, const char *); -FILE *freopen(const char *, const char *, FILE *); -void setbuf(FILE *, char *); -int setvbuf(FILE *, char *, int, long); -int fprintf(FILE *, const char *, ...); -int fscanf(FILE *, const char *, ...); -int printf(const char *, ...); -int scanf(const char *, ...); -int sprintf(char *, const char *, ...); -int snprintf(char *, int, const char *, ...); -int sscanf(const char *, const char *, ...); -int vfprintf(FILE *, const char *, va_list); -int vprintf(const char *, va_list); -int vsprintf(char *, const char *, va_list); -int vsnprintf(char *, int, const char *, va_list); -int vfscanf(FILE *, const char *, va_list); -int fgetc(FILE *); -char *fgets(char *, int, FILE *); -int fputc(int, FILE *); -int fputs(const char *, FILE *); -int getc(FILE *); -#define getc(f) ((f)->rp>=(f)->wp?_IO_getc(f):*(f)->rp++&_IO_CHMASK) -int _IO_getc(FILE *f); -int getchar(void); + +extern FILE _IO_stream[FOPEN_MAX]; + +int _IO_getc(FILE *f); +int _IO_putc(int, FILE *); +void clearerr(FILE *); +int fclose(FILE *); +FILE *fdopen(const int, const char *); +int feof(FILE *); +int ferror(FILE *); +int fflush(FILE *); +int fgetc(FILE *); +int fgetpos(FILE *, fpos_t *); +char *fgets(char *, int, FILE *); +int fileno(FILE *); +FILE *fopen(const char *, const char *); +int fprintf(FILE *, const char *, ...); +int fputc(int, FILE *); +int fputs(const char *, FILE *); +long fread(void *, long, long, FILE *); +FILE *freopen(const char *, const char *, FILE *); +int fscanf(FILE *, const char *, ...); +int fseek(FILE *, long, int); +int fseeko(FILE *, long long, int); +int fsetpos(FILE *, const fpos_t *); +long ftell(FILE *); +long long ftello(FILE *); +long fwrite(const void *, long, long, FILE *); +int getc(FILE *); +#define getc(f) ((f)->rp>=(f)->wp?_IO_getc(f):*(f)->rp++) +int getchar(void); #define getchar() getc(stdin) -char *gets(char *); -int putc(int, FILE *); -#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(f)->wp++=c)&_IO_CHMASK) -int _IO_putc(int, FILE *); -int putchar(int); +char *gets(char *); +void perror(const char *); +int printf(const char *, ...); +int putc(int, FILE *); +/* assignment to f->junk eliminates warnings about unused result of operation */ +#define putc(c, f) ((f)->junk = ((f)->wp>=(f)->rp? \ + _IO_putc(c, f): (*(f)->wp++ = (c)))) +int putchar(int); #define putchar(c) putc(c, stdout) -int puts(const char *); -int ungetc(int, FILE *); -long fread(void *, long, long, FILE *); -long fwrite(const void *, long, long, FILE *); -int fgetpos(FILE *, fpos_t *); -int fseek(FILE *, long, int); -int fseeko(FILE *, long long, int); -int fsetpos(FILE *, const fpos_t *); -long ftell(FILE *); -long long ftello(FILE *); -void rewind(FILE *); -void clearerr(FILE *); -int feof(FILE *); -int ferror(FILE *); -void perror(const char *); -extern FILE _IO_stream[FOPEN_MAX]; -FILE *sopenr(const char *); -FILE *sopenw(void); -char *sclose(FILE *); -int fileno(FILE *); +int puts(const char *); +void rewind(FILE *); +int scanf(const char *, ...); +char *sclose(FILE *); +void setbuf(FILE *, void *); +int setvbuf(FILE *, void *, int, long); +int snprintf(char *, int, const char *, ...); +FILE *sopenr(const char *); +FILE *sopenw(void); +int sprintf(char *, const char *, ...); +int sscanf(const char *, const char *, ...); +FILE *tmpfile(void); +char *tmpnam(char *); +int ungetc(int, FILE *); +int vfprintf(FILE *, const char *, va_list); +int vfscanf(FILE *, const char *, va_list); +int vprintf(const char *, va_list); +int vsnprintf(char *, int, const char *, va_list); +int vsprintf(char *, const char *, va_list); --- /n/sources/plan9/sys/include/ape/stdio.h Wed May 29 02:38:29 2013 +++ /sys/include/ape/stdio.h Sun Aug 28 00:00:00 2016 @@ -11,35 +11,37 @@ /* * According to X3J11, there is only one i/o buffer * and it must not be occupied by both input and output data. - * If rpwp>=(f)->rp || (f)->flags&LINEBUF && _IO_ctmp=='\n'\ - * ?_IO_putc(_IO_ctmp, f)\ - * :*(f)->wp++=_IO_ctmp) - * + * + * If rpwp>=(f)->rp || (f)->flags&LINEBUF && _IO_ctmp=='\n'?\ + * _IO_putc(_IO_ctmp, f): *(f)->wp++=_IO_ctmp) */ typedef struct{ int fd; /* UNIX file pointer */ char flags; /* bits for must free buffer on close, line-buffered */ char state; /* last operation was read, write, position, error, eof */ - char *buf; /* pointer to i/o buffer */ - char *rp; /* read pointer (or write end-of-buffer) */ - char *wp; /* write pointer (or read end-of-buffer) */ - char *lp; /* actual write pointer used when line-buffering */ + unsigned char *buf; /* pointer to i/o buffer */ + unsigned char *rp; /* read pointer (or write end-of-buffer) */ + unsigned char *wp; /* write pointer (or read end-of-buffer) */ + unsigned char *lp; /* actual write pointer used when line-buffering */ size_t bufl; /* actual length of buffer */ - char unbuf[1]; /* tiny buffer for unbuffered io (used for ungetc?) */ + unsigned char unbuf[1]; /* tiny buffer for unbuffered io (used for ungetc?) */ + int junk; }FILE; -typedef long long fpos_t; + +typedef off_t fpos_t; + #ifndef NULL #ifdef __cplusplus #define NULL 0 @@ -47,107 +49,115 @@ #define NULL ((void*)0) #endif #endif + /* * Third arg of setvbuf */ #define _IOFBF 1 /* block-buffered */ #define _IOLBF 2 /* line-buffered */ #define _IONBF 3 /* unbuffered */ -#define BUFSIZ 4096 /* size of setbuf buffer */ + +#define BUFSIZ 8192 /* size of setbuf buffer */ #define EOF (-1) /* returned on end of file */ -#define FOPEN_MAX 90 /* max files open */ +#define FOPEN_MAX 128 /* max files open */ #define FILENAME_MAX BUFSIZ /* silly filename length */ #define L_tmpnam 20 /* sizeof "/tmp/abcdefghij9999 */ #define L_cuserid 32 /* maximum size user name */ #define L_ctermid 32 /* size of name of controlling tty */ + +#ifndef SEEK_SET /* also defined in unistd.h */ #define SEEK_CUR 1 #define SEEK_END 2 #define SEEK_SET 0 +#endif #define TMP_MAX 64 /* very hard to set correctly */ + #define stderr (&_IO_stream[2]) #define stdin (&_IO_stream[0]) #define stdout (&_IO_stream[1]) -#define _IO_CHMASK 0377 /* mask for 8 bit characters */ + +extern FILE _IO_stream[FOPEN_MAX]; #ifdef __cplusplus extern "C" { #endif -extern int remove(const char *); -extern int rename(const char *, const char *); -extern FILE *tmpfile(void); -extern char *tmpnam(char *); -extern int fclose(FILE *); -extern int fflush(FILE *); -extern FILE *fopen(const char *, const char *); -extern FILE *freopen(const char *, const char *, FILE *); -extern void setbuf(FILE *, char *); -extern int setvbuf(FILE *, char *, int, size_t); -extern int fprintf(FILE *, const char *, ...); -extern int fscanf(FILE *, const char *, ...); -extern int printf(const char *, ...); -extern int scanf(const char *, ...); -extern int sprintf(char *, const char *, ...); - +int _IO_getc(FILE *f); +int _IO_putc(int, FILE *); +void clearerr(FILE *); +int fclose(FILE *); +FILE *fdopen(const int, const char *); +int feof(FILE *); +int ferror(FILE *); +int fflush(FILE *); +int fgetc(FILE *); +int fgetpos(FILE *, fpos_t *); +char *fgets(char *, int, FILE *); +int fileno(FILE *); +FILE *fopen(const char *, const char *); +int fprintf(FILE *, const char *, ...); +int fputc(int, FILE *); +int fputs(const char *, FILE *); +size_t fread(void *, size_t, size_t, FILE *); +FILE *freopen(const char *, const char *, FILE *); +int fscanf(FILE *, const char *, ...); +int fseek(FILE *, long, int); +int fseeko(FILE *, off_t, int); +int fsetpos(FILE *, const fpos_t *); +long ftell(FILE *); +off_t ftello(FILE *); +size_t fwrite(const void *, size_t, size_t, FILE *); +int getc(FILE *); +#define getc(f) ((f)->rp>=(f)->wp? _IO_getc(f): *(f)->rp++) +int getchar(void); +#define getchar() getc(stdin) +char *gets(char *); +void perror(const char *); +int printf(const char *, ...); +int putc(int, FILE *); +/* assignment to f->junk eliminates warnings about unused result of operation */ +#define putc(c, f) ((f)->junk = ((f)->wp>=(f)->rp? \ + _IO_putc(c, f): (*(f)->wp++ = (c)))) +int putchar(int); +#define putchar(c) putc(c, stdout) +int puts(const char *); +int remove(const char *); +int rename(const char *, const char *); +void rewind(FILE *); +int scanf(const char *, ...); +void setbuf(FILE *, char *); +int setvbuf(FILE *, char *, int, size_t); /* - * NB: C99 now *requires *snprintf to return the number of characters + * NB: C99 now requires *snprintf to return the number of characters * that would have been written, had there been room. */ -extern int snprintf(char *, size_t, const char *, ...); -extern int vsnprintf(char *, size_t, const char *, va_list); - -extern int sscanf(const char *, const char *, ...); -extern int vfprintf(FILE *, const char *, va_list); -extern int vprintf(const char *, va_list); -extern int vsprintf(char *, const char *, va_list); -extern int vfscanf(FILE *, const char *, va_list); -extern int fgetc(FILE *); -extern char *fgets(char *, int, FILE *); -extern int fputc(int, FILE *); -extern int fputs(const char *, FILE *); -extern int getc(FILE *); -#define getc(f) ((f)->rp>=(f)->wp?_IO_getc(f):*(f)->rp++&_IO_CHMASK) -extern int _IO_getc(FILE *f); -extern int getchar(void); -#define getchar() getc(stdin) -extern char *gets(char *); -extern int putc(int, FILE *); -#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(f)->wp++=c)&_IO_CHMASK) -extern int _IO_putc(int, FILE *); -extern int putchar(int); -#define putchar(c) putc(c, stdout) -extern int puts(const char *); -extern int ungetc(int, FILE *); -extern size_t fread(void *, size_t, size_t, FILE *); -extern size_t fwrite(const void *, size_t, size_t, FILE *); -extern int fgetpos(FILE *, fpos_t *); -extern int fseek(FILE *, long, int); -extern int fseeko(FILE *, off_t, int); -extern int fsetpos(FILE *, const fpos_t *); -extern long ftell(FILE *); -extern off_t ftello(FILE *); -extern void rewind(FILE *); -extern void clearerr(FILE *); -extern int feof(FILE *); -extern int ferror(FILE *); -extern void perror(const char *); -extern FILE _IO_stream[FOPEN_MAX]; +int snprintf(char *, size_t, const char *, ...); +int sprintf(char *, const char *, ...); +int sscanf(const char *, const char *, ...); +FILE *tmpfile(void); +char *tmpnam(char *); +int ungetc(int, FILE *); +int vfprintf(FILE *, const char *, va_list); +int vfscanf(FILE *, const char *, va_list); +int vprintf(const char *, va_list); +int vsnprintf(char *, size_t, const char *, va_list); +int vsprintf(char *, const char *, va_list); #ifdef _POSIX_SOURCE -extern int fileno(FILE *); -extern FILE* fdopen(int, const char*); -extern char *ctermid(char *); +int fileno(FILE *); +FILE* fdopen(int, const char*); +char *ctermid(char *); #endif #ifdef _REENTRANT_SOURCE -extern char *tmpnam_r(char *); -extern char *ctermid_r(char *); +char *tmpnam_r(char *); +char *ctermid_r(char *); #endif #ifdef _BSD_EXTENSION #pragma lib "/$M/lib/ape/libbsd.a" -extern FILE *popen(char *, char *); -extern int pclose(FILE *); +FILE *popen(char *, char *); +int pclose(FILE *); #endif #ifdef __cplusplus diff -Nru /n/sources/plan9/sys/src/libstdio/Stdio.h /sys/src/libstdio/Stdio.h --- /n/sources/plan9/sys/src/libstdio/Stdio.h Thu Feb 28 21:06:53 2002 +++ /sys/src/libstdio/Stdio.h Thu Jan 1 00:00:00 1970 @@ -1,109 +0,0 @@ -/* - * pANS stdio.h - */ -/* - * According to X3J11, there is only one i/o buffer - * and it must not be occupied by both input and output data. - * If rpwp>=(f)->rp || (f)->flags&LINEBUF && _IO_ctmp=='\n'\ - * ?_IO_putc(_IO_ctmp, f)\ - * :*(f)->wp++=_IO_ctmp) - * - */ -typedef struct{ - int fd; /* UNIX file pointer */ - char flags; /* bits for must free buffer on close, line-buffered */ - char state; /* last operation was read, write, position, error, eof */ - char *buf; /* pointer to i/o buffer */ - char *rp; /* read pointer (or write end-of-buffer) */ - char *wp; /* write pointer (or read end-of-buffer) */ - char *lp; /* actual write pointer used when line-buffering */ - long bufl; /* actual length of buffer */ - char unbuf[1]; /* tiny buffer for unbuffered io (used for ungetc?) */ -}FILE; -typedef long fpos_t; -#ifndef NULL -#define NULL 0 -#endif -/* - * Third arg of setvbuf - */ -#define _IOFBF 1 /* block-buffered */ -#define _IOLBF 2 /* line-buffered */ -#define _IONBF 3 /* unbuffered */ -#define BUFSIZ 4096 /* size of setbuf buffer */ -#define EOF (-1) /* returned on end of file */ -#define FOPEN_MAX 128 /* max files open */ -#define FILENAME_MAX BUFSIZ /* silly filename length */ -#define L_tmpnam 20 /* sizeof "/tmp/abcdefghij9999 */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 -#define TMP_MAX 64 /* very hard to set correctly */ -#define stderr (&_IO_stream[2]) -#define stdin (&_IO_stream[0]) -#define stdout (&_IO_stream[1]) -#define _IO_CHMASK 0377 /* mask for 8 bit characters */ -FILE *tmpfile(void); -char *tmpnam(char *); -int fclose(FILE *); -int fflush(FILE *); -FILE *fopen(const char *, const char *); -FILE *freopen(const char *, const char *, FILE *); -void setbuf(FILE *, char *); -int setvbuf(FILE *, char *, int, long); -int fprintf(FILE *, const char *, ...); -int fscanf(FILE *, const char *, ...); -int printf(const char *, ...); -int scanf(const char *, ...); -int sprintf(char *, const char *, ...); -int sscanf(const char *, const char *, ...); -int vfprintf(FILE *, const char *, va_list); -int vprintf(const char *, va_list); -int vsprintf(char *, const char *, va_list); -int vfscanf(FILE *, const char *, va_list); -int fgetc(FILE *); -char *fgets(char *, int, FILE *); -int fputc(int, FILE *); -int fputs(const char *, FILE *); -int getc(FILE *); -#define getc(f) ((f)->rp>=(f)->wp?_IO_getc(f):*(f)->rp++&_IO_CHMASK) -int _IO_getc(FILE *f); -int getchar(void); -#define getchar() getc(stdin) -char *gets(char *); -int putc(int, FILE *); -#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(f)->wp++=c)&_IO_CHMASK) -int _IO_putc(int, FILE *); -int putchar(int); -#define putchar(c) putc(c, stdout) -int puts(const char *); -int ungetc(int, FILE *); -long fread(void *, long, long, FILE *); -long fwrite(const void *, long, long, FILE *); -int fgetpos(FILE *, fpos_t *); -int fseek(FILE *, long int, int); -int fsetpos(FILE *, const fpos_t *); -long int ftell(FILE *); -void rewind(FILE *); -void clearerr(FILE *); -int feof(FILE *); -int ferror(FILE *); -void perror(const char *); -extern FILE _IO_stream[FOPEN_MAX]; -FILE *sopenr(const char *); -FILE *sopenw(void); -char *sclose(FILE *); -char *dtoa(double, int, int, int*, int*, char**); -void freedtoa(char*); diff -Nru /n/sources/plan9/sys/src/libstdio/_IO_getc.c /sys/src/libstdio/_IO_getc.c --- /n/sources/plan9/sys/src/libstdio/_IO_getc.c Sun Dec 12 01:22:33 1999 +++ /sys/src/libstdio/_IO_getc.c Tue Aug 23 00:00:00 2016 @@ -20,7 +20,7 @@ f->state=RD; f->rp=f->buf; f->wp=f->buf+cnt; - return (*f->rp++)&_IO_CHMASK; + return *f->rp++; } } } diff -Nru /n/sources/plan9/sys/src/libstdio/_IO_putc.c /sys/src/libstdio/_IO_putc.c --- /n/sources/plan9/sys/src/libstdio/_IO_putc.c Sun Dec 12 01:22:33 1999 +++ /sys/src/libstdio/_IO_putc.c Thu Aug 25 00:00:00 2016 @@ -56,7 +56,7 @@ else if(f->flags&LINEBUF){ if(f->lp==f->rp){ cnt=f->lp-f->buf; - if(f->flags&APPEND) seek(f->fd, 0L, 2); + if(f->flags&APPEND) seek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; @@ -66,7 +66,7 @@ *f->lp++=c; if(c=='\n'){ cnt=f->lp-f->buf; - if(f->flags&APPEND) seek(f->fd, 0L, 2); + if(f->flags&APPEND) seek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; @@ -76,7 +76,7 @@ } else if(f->buf==f->unbuf){ f->unbuf[0]=c; - if(f->flags&APPEND) seek(f->fd, 0L, 2); + if(f->flags&APPEND) seek(f->fd, 0, SEEK_END); if(write(f->fd, f->buf, 1)!=1){ f->state=ERR; return EOF; @@ -85,7 +85,7 @@ else{ if(f->wp==f->rp){ cnt=f->wp-f->buf; - if(f->flags&APPEND) seek(f->fd, 0L, 2); + if(f->flags&APPEND) seek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; diff -Nru /n/sources/plan9/sys/src/libstdio/dtoa.c /sys/src/libstdio/dtoa.c --- /n/sources/plan9/sys/src/libstdio/dtoa.c Fri May 31 21:45:07 2013 +++ /sys/src/libstdio/dtoa.c Thu Aug 25 00:00:00 2016 @@ -130,7 +130,7 @@ return rv; } -static void +static void Bfree(Bigint *v) { if (v) { @@ -184,7 +184,7 @@ int x, y; x = (nd + 8) / 9; - for (k = 0, y = 1; x > y; y <<= 1, k++) + for (k = 0, y = 1; x > y; y <<= 1, k++) ; b = Balloc(k); b->x[0] = y9; @@ -193,7 +193,7 @@ i = 9; if (9 < nd0) { s += 9; - do + do b = multadd(b, 10, *s++ - '0'); while (++i < nd0); s++; @@ -204,7 +204,7 @@ return b; } -static int +static int hi0bits(register unsigned int x) { register int k = 0; @@ -233,7 +233,7 @@ return k; } -static int +static int lo0bits(unsigned int *y) { register int k; @@ -345,7 +345,7 @@ *xc = z2; } } - for (xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) + for (xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ; c->wds = wc; return c; @@ -358,7 +358,7 @@ { Bigint * b1, *p5, *p51; int i; - static int p05[3] = { + static int p05[3] = { 5, 25, 125 }; if (i = k & 3) @@ -423,7 +423,7 @@ } while (x < xe); if (*x1 = z) ++n1; - } else + } else do *x1++ = *x++; while (x < xe); @@ -432,7 +432,7 @@ return b1; } -static int +static int cmp(Bigint *a, Bigint *b) { unsigned int * xa, *xa0, *xb, *xb0; @@ -508,7 +508,7 @@ return c; } -static double +static double ulp(double x) { ulong L; @@ -519,7 +519,7 @@ return ulongs2double((Ulongs){L, 0}); } -static double +static double b2d(Bigint *a, int *e) { unsigned *xa, *xa0, w, y, z; @@ -583,7 +583,7 @@ return b; } -static double +static double ratio(Bigint *a, Bigint *b) { double da, db; @@ -614,10 +614,10 @@ }; static const double -bigtens[] = { +bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 }; -static const double tinytens[] = { +static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128, 9007199254740992.e-256 }; @@ -631,7 +631,7 @@ #define NAN_WORD1 0 -static int +static int match(const char **sp, char *t) { int c, d; @@ -647,7 +647,7 @@ return 1; } -static void +static void gethex(double *rvp, const char **sp) { unsigned int c, x[2]; @@ -690,7 +690,7 @@ *rvp = ulongs2double((Ulongs){Exp_mask | x[0], x[1]}); } -static int +static int quorem(Bigint *b, Bigint *S) { int n; @@ -761,8 +761,8 @@ int j, k, *r; j = sizeof(unsigned int); - for (k = 0; - sizeof(Bigint) - sizeof(unsigned int) - sizeof(int) + j <= i; + for (k = 0; + sizeof(Bigint) - sizeof(unsigned int) - sizeof(int) + j <= i; j <<= 1) k++; r = (int * )Balloc(k); @@ -777,7 +777,7 @@ char *rv, *t; t = rv = rv_alloc(n); - while (*t = *s++) + while (*t = *s++) t++; if (rve) *rve = t; @@ -1114,7 +1114,7 @@ mhi = mlo = 0; if (leftright) { if (mode < 2) { - i = + i = 1 + P - bbits; } else { j = ilim - 1; diff -Nru /n/sources/plan9/sys/src/libstdio/fdopen.c /sys/src/libstdio/fdopen.c --- /n/sources/plan9/sys/src/libstdio/fdopen.c Sun Dec 12 01:22:33 1999 +++ /sys/src/libstdio/fdopen.c Thu Aug 25 00:00:00 2016 @@ -13,7 +13,7 @@ * a+ a+b ab+ open to read and write, positioned at eof, creating if non-existant. */ FILE *fdopen(const int fd, const char *mode){ - FILE *f; + FILE *f; qlock(&_stdiolk); for(f=_IO_stream;f!=&_IO_stream[FOPEN_MAX];f++) if(f->state==CLOSED) @@ -24,7 +24,7 @@ } f->fd=fd; if(mode[0]=='a') - seek(f->fd, 0L, 2); + seek(f->fd, 0, SEEK_END); if(f->fd==-1) return NULL; f->flags=0; f->state=OPEN; diff -Nru /n/sources/plan9/sys/src/libstdio/fflush.c /sys/src/libstdio/fflush.c --- /n/sources/plan9/sys/src/libstdio/fflush.c Sun Dec 12 01:22:33 1999 +++ /sys/src/libstdio/fflush.c Thu Aug 25 00:00:00 2016 @@ -6,10 +6,9 @@ * pANS stdio -- data (put here, since loader won't load a separate file) */ FILE _IO_stream[]={ -/* fd flags state buf rp wp lp bufl unbuf */ - 0, 0, OPEN, 0, 0, 0, 0, 0, 0, - 1, 0, OPEN, 0, 0, 0, 0, 0, 0, - 2, 0, OPEN, 0, 0, 0, 0, 0, 0, + { .fd 0, .state OPEN, }, + { .fd 1, .state OPEN, }, + { .fd 2, .state OPEN, }, }; int _fflush(FILE *f){ diff -Nru /n/sources/plan9/sys/src/libstdio/freopen.c /sys/src/libstdio/freopen.c --- /n/sources/plan9/sys/src/libstdio/freopen.c Sat Sep 28 00:10:23 2002 +++ /sys/src/libstdio/freopen.c Thu Aug 25 00:00:00 2016 @@ -40,7 +40,7 @@ f->fd=open(name, m); if(f->fd<0) f->fd=create(name, m, 0666); - seek(f->fd, 0LL, 2); + seek(f->fd, 0, SEEK_END); break; } diff -Nru /n/sources/plan9/sys/src/libstdio/ftell.c /sys/src/libstdio/ftell.c --- /n/sources/plan9/sys/src/libstdio/ftell.c Sun Dec 12 01:22:34 1999 +++ /sys/src/libstdio/ftell.c Thu Aug 25 00:00:00 2016 @@ -3,7 +3,7 @@ */ #include "iolib.h" long ftell(FILE *f){ - long seekp=seek(f->fd, 0L, 1); + long seekp=seek(f->fd, 0, SEEK_CUR); if(seekp<0) return -1; /* enter error state? */ switch(f->state){ default: diff -Nru /n/sources/plan9/sys/src/libstdio/ftello.c /sys/src/libstdio/ftello.c --- /n/sources/plan9/sys/src/libstdio/ftello.c Sun Jun 15 18:06:24 2003 +++ /sys/src/libstdio/ftello.c Thu Aug 25 00:00:00 2016 @@ -3,7 +3,7 @@ */ #include "iolib.h" long long ftello(FILE *f){ - long long seekp=seek(f->fd, 0L, 1); + long long seekp=seek(f->fd, 0, SEEK_CUR); if(seekp<0) return -1; /* enter error state? */ switch(f->state){ default: diff -Nru /n/sources/plan9/sys/src/libstdio/fwrite.c /sys/src/libstdio/fwrite.c --- /n/sources/plan9/sys/src/libstdio/fwrite.c Sun Dec 12 01:22:34 1999 +++ /sys/src/libstdio/fwrite.c Thu Aug 25 00:00:00 2016 @@ -23,7 +23,7 @@ d=f->wp-f->buf; if(d>0){ if(f->flags&APPEND) - seek(f->fd, 0L, 2); + seek(f->fd, 0, SEEK_END); if(write(f->fd, f->buf, d)!=d){ f->state=ERR; goto ret; @@ -31,7 +31,7 @@ f->wp=f->rp=f->buf; } if(f->flags&APPEND) - seek(f->fd, 0L, 2); + seek(f->fd, 0, SEEK_END); d=write(f->fd, s, n); if(d<=0){ f->state=ERR; diff -Nru /n/sources/plan9/sys/src/libstdio/iolib.h /sys/src/libstdio/iolib.h --- /n/sources/plan9/sys/src/libstdio/iolib.h Sun Dec 12 01:22:34 1999 +++ /sys/src/libstdio/iolib.h Thu Aug 25 00:00:00 2016 @@ -19,7 +19,7 @@ #include #include #undef END -#include "Stdio.h" +#include /* * Flag bits */ @@ -42,3 +42,7 @@ /* half hearted attempt to make multi threaded */ extern QLock _stdiolk; + +/* internal functions */ +char *dtoa(double, int, int, int*, int*, char**); +void freedtoa(char*); diff -Nru /n/sources/plan9/sys/src/libstdio/mkfile /sys/src/libstdio/mkfile --- /n/sources/plan9/sys/src/libstdio/mkfile Thu Jan 31 22:29:44 2013 +++ /sys/src/libstdio/mkfile Thu Aug 25 00:00:00 2016 @@ -62,8 +62,7 @@ ${LIB:/$objtype/%=/386/%}\ state=CLOSED; f->flags=0; - return f->buf; + return (char *)f->buf; } diff -Nru /n/sources/plan9/sys/src/libstdio/setbuf.c /sys/src/libstdio/setbuf.c --- /n/sources/plan9/sys/src/libstdio/setbuf.c Sun Dec 12 01:22:34 1999 +++ /sys/src/libstdio/setbuf.c Thu Aug 25 00:00:00 2016 @@ -2,7 +2,7 @@ * pANS stdio -- setbuf */ #include "iolib.h" -void setbuf(FILE *f, char *buf){ +void setbuf(FILE *f, void *buf){ if(f->state==OPEN){ if(buf) f->bufl=BUFSIZ; diff -Nru /n/sources/plan9/sys/src/libstdio/setvbuf.c /sys/src/libstdio/setvbuf.c --- /n/sources/plan9/sys/src/libstdio/setvbuf.c Sun Apr 17 12:47:51 2005 +++ /sys/src/libstdio/setvbuf.c Thu Aug 25 00:00:00 2016 @@ -2,7 +2,7 @@ * pANS stdio -- setvbuf */ #include "iolib.h" -int setvbuf(FILE *f, char *buf, int mode, long size){ +int setvbuf(FILE *f, void *buf, int mode, long size){ if(f->state!=OPEN){ f->state=ERR; return -1; diff -Nru /n/sources/plan9/sys/src/libstdio/sopenr.c /sys/src/libstdio/sopenr.c --- /n/sources/plan9/sys/src/libstdio/sopenr.c Sun Dec 12 01:22:34 1999 +++ /sys/src/libstdio/sopenr.c Tue Aug 23 00:00:00 2016 @@ -11,7 +11,7 @@ qunlock(&_stdiolk); return NULL; } - f->buf=f->rp=(char *)s; /* what an annoyance const is */ + f->buf=f->rp=(uchar *)s; /* what an annoyance const is */ f->bufl=strlen(s); f->wp=f->buf+f->bufl; f->state=RD; diff -Nru /n/sources/plan9/sys/src/libstdio/vfprintf.c /sys/src/libstdio/vfprintf.c --- /n/sources/plan9/sys/src/libstdio/vfprintf.c Mon Feb 17 17:15:46 2003 +++ /sys/src/libstdio/vfprintf.c Tue Aug 30 00:00:00 2016 @@ -146,12 +146,14 @@ QLock _stdiolk; int -vfprintf(FILE *f, const char *s, va_list args) +vfprintf(FILE *f, const char *as, va_list args) { int flags, width, precision; + uchar *s; qlock(&_stdiolk); + s = (uchar *)as; nprint = 0; while(*s){ if(*s != '%'){ @@ -161,7 +163,7 @@ } s++; flags = 0; - while(lflag[*s&_IO_CHMASK]) flags |= lflag[*s++&_IO_CHMASK]; + while(lflag[*s]) flags |= lflag[*s++]; if(*s == '*'){ width = va_arg(args, int); s++; @@ -187,7 +189,7 @@ } else precision = -1; - while(tflag[*s&_IO_CHMASK]) flags |= tflag[*s++&_IO_CHMASK]; + while(tflag[*s]) flags |= tflag[*s++]; if(ocvt[*s]) nprint += (*ocvt[*s++])(f, &args, flags, width, precision); else if(*s){ putc(*s++, f); @@ -210,9 +212,9 @@ static int ocvt_c(FILE *f, va_list *args, int flags, int width, int precision) { -#pragma ref precision int i; + USED(precision); if(!(flags&LEFT)) for(i=1; i0) nout += exponent; /* digits before decimal point */ else nout++; /* there's always at least one */ if(sign || flags&(SPACE|SIGN)) nout++; /* sign */ + eptr = nil; /* silence used and not set */ if(fmt != 'f'){ /* exponent */ eptr = ebuf; for(i=exponent<=0?1-exponent:exponent-1; i; i/=10) diff -Nru /n/sources/plan9/sys/src/libstdio/vfscanf.c /sys/src/libstdio/vfscanf.c --- /n/sources/plan9/sys/src/libstdio/vfscanf.c Wed Jul 14 20:25:03 2010 +++ /sys/src/libstdio/vfscanf.c Tue Aug 23 00:00:00 2016 @@ -103,8 +103,7 @@ return ncvt; } static int icvt_n(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref f -#pragma ref width + USED(f, width); if(store){ --ncvt; /* this assignment doesn't count! */ switch(type){ @@ -276,9 +275,10 @@ return 1; } static int icvt_s(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type + USED(type); int c, nn; register char *s; + s = nil; /* silence used and not set */ if(store) s=va_arg(*args, char *); do c=ngetc(f); @@ -304,9 +304,10 @@ return 1; } static int icvt_c(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type + USED(type); int c; register char *s; + s = nil; /* silence used and not set */ if(store) s=va_arg(*args, char *); if(width<0) width=1; for(;;){ @@ -336,7 +337,7 @@ return !ok; } static int icvt_sq(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type + USED(type); int c, nn; register char *s; register const char *pat; @@ -344,6 +345,7 @@ if(*fmtp=='^') fmtp++; if(*fmtp!='\0') fmtp++; while(*fmtp!='\0' && *fmtp!=']') fmtp++; + s = nil; /* silence used and not set */ if(store) s=va_arg(*args, char *); nn=0; for(;;){ diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/_IO_getc.c /sys/src/ape/lib/ap/stdio/_IO_getc.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/_IO_getc.c Mon Nov 25 15:18:50 2002 +++ /sys/src/ape/lib/ap/stdio/_IO_getc.c Thu Aug 25 00:00:00 2016 @@ -3,7 +3,7 @@ */ #include "iolib.h" int _IO_getc(FILE *f){ - int cnt, n; + int cnt; switch(f->state){ default: /* CLOSED, WR, ERR, EOF */ return EOF; @@ -12,11 +12,7 @@ case RDWR: case RD: if(f->flags&STRING) return EOF; - if(f->buf == f->unbuf) - n = 1; - else - n = f->bufl; - cnt=read(f->fd, f->buf, n); + cnt=read(f->fd, f->buf, f->buf==f->unbuf?1:f->bufl); switch(cnt){ case -1: f->state=ERR; return EOF; case 0: f->state=END; return EOF; @@ -24,7 +20,7 @@ f->state=RD; f->rp=f->buf; f->wp=f->buf+cnt; - return (*f->rp++)&_IO_CHMASK; + return *f->rp++; } } } diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/_IO_putc.c /sys/src/ape/lib/ap/stdio/_IO_putc.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/_IO_putc.c Thu Feb 28 18:46:21 2002 +++ /sys/src/ape/lib/ap/stdio/_IO_putc.c Thu Aug 25 00:00:00 2016 @@ -57,7 +57,7 @@ else if(f->flags&LINEBUF){ if(f->lp==f->rp){ cnt=f->lp-f->buf; - if(f->flags&APPEND) lseek(f->fd, 0L, SEEK_END); + if(f->flags&APPEND) lseek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; @@ -67,7 +67,7 @@ *f->lp++=c; if(c=='\n'){ cnt=f->lp-f->buf; - if(f->flags&APPEND) lseek(f->fd, 0L, SEEK_END); + if(f->flags&APPEND) lseek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; @@ -77,7 +77,7 @@ } else if(f->buf==f->unbuf){ f->unbuf[0]=c; - if(f->flags&APPEND) lseek(f->fd, 0L, SEEK_END); + if(f->flags&APPEND) lseek(f->fd, 0, SEEK_END); if(write(f->fd, f->buf, 1)!=1){ f->state=ERR; return EOF; @@ -86,7 +86,7 @@ else{ if(f->wp==f->rp){ cnt=f->wp-f->buf; - if(f->flags&APPEND) lseek(f->fd, 0L, SEEK_END); + if(f->flags&APPEND) lseek(f->fd, 0, SEEK_END); if(cnt!=0 && write(f->fd, f->buf, cnt)!=cnt){ f->state=ERR; return EOF; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/_dtoa.c /sys/src/ape/lib/ap/stdio/_dtoa.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/_dtoa.c Thu Feb 28 18:46:23 2002 +++ /sys/src/ape/lib/ap/stdio/_dtoa.c Wed Aug 24 00:00:00 2016 @@ -89,6 +89,7 @@ static int result_k; Dul d; + mlo = 0; d.d = darg; if (result) { result->k = result_k; @@ -230,6 +231,7 @@ try_quick = 0; } leftright = 1; + ilim = ilim1 = -1; switch(mode) { case 0: case 1: @@ -463,7 +465,7 @@ S = pow5mult(S, s5); /* Check for special case that d is a normalized power of 2. */ - + spec_case = 0; if (mode < 2) { if (!word1(d) && !(word0(d) & Bndry_mask) #ifndef Sudden_Underflow diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/_fconv.c /sys/src/ape/lib/ap/stdio/_fconv.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/_fconv.c Thu Feb 28 18:46:23 2002 +++ /sys/src/ape/lib/ap/stdio/_fconv.c Wed Aug 24 00:00:00 2016 @@ -510,6 +510,7 @@ else x[0] = y; i = b->wds = (x[1] = z) ? 2 : 1; + USED(i); } else { #ifdef DEBUG @@ -519,6 +520,7 @@ k = lo0bits(&z); x[0] = z; i = b->wds = 1; + USED(i); k += 32; } #else diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/fdopen.c /sys/src/ape/lib/ap/stdio/fdopen.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/fdopen.c Thu Feb 28 18:46:21 2002 +++ /sys/src/ape/lib/ap/stdio/fdopen.c Thu Aug 25 00:00:00 2016 @@ -21,7 +21,7 @@ return NULL; f->fd=fd; if(mode[0]=='a') - lseek(f->fd, 0L, 2); + lseek(f->fd, 0, SEEK_END); if(f->fd==-1) return NULL; f->flags=0; f->state=OPEN; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/freopen.c /sys/src/ape/lib/ap/stdio/freopen.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/freopen.c Fri Sep 27 14:03:11 2002 +++ /sys/src/ape/lib/ap/stdio/freopen.c Thu Aug 25 00:00:00 2016 @@ -50,7 +50,7 @@ f->fd=open(name, O_RDWR); } } - lseek(f->fd, 0L, 2); + lseek(f->fd, 0, SEEK_END); break; } diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftell.c /sys/src/ape/lib/ap/stdio/ftell.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftell.c Fri Apr 18 16:45:42 2003 +++ /sys/src/ape/lib/ap/stdio/ftell.c Thu Aug 25 00:00:00 2016 @@ -3,7 +3,7 @@ */ #include "iolib.h" long ftell(FILE *f){ - long seekp=lseek(f->fd, 0L, 1); + long seekp=lseek(f->fd, 0, SEEK_CUR); if(seekp<0) return -1; /* enter error state? */ switch(f->state){ default: diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftello.c /sys/src/ape/lib/ap/stdio/ftello.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftello.c Fri Apr 18 16:45:42 2003 +++ /sys/src/ape/lib/ap/stdio/ftello.c Thu Aug 25 00:00:00 2016 @@ -3,7 +3,7 @@ */ #include "iolib.h" off_t ftello(FILE *f){ - off_t seekp=lseek(f->fd, 0L, 1); + off_t seekp=lseek(f->fd, 0, SEEK_CUR); if(seekp<0) return -1; /* enter error state? */ switch(f->state){ default: diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftoa.c /sys/src/ape/lib/ap/stdio/ftoa.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/ftoa.c Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/ftoa.c Mon Aug 29 00:00:00 2016 @@ -27,7 +27,7 @@ e1=e/2; e2=e-e1; p=f*pow10(e2); - while((g=p*pow10(e1))<1.) e1++; + while(p*pow10(e1)<1.) e1++; while((g=p*pow10(e1))>=10.) --e1; e=e1+e2; f=g; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/fwrite.c /sys/src/ape/lib/ap/stdio/fwrite.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/fwrite.c Mon Nov 25 15:18:52 2002 +++ /sys/src/ape/lib/ap/stdio/fwrite.c Thu Aug 25 00:00:00 2016 @@ -24,7 +24,7 @@ d=f->wp-f->buf; if(d>0){ if(f->flags&APPEND) - lseek(f->fd, 0L, SEEK_END); + lseek(f->fd, 0, SEEK_END); if(write(f->fd, f->buf, d)!=d){ f->state=ERR; goto ret; @@ -32,7 +32,7 @@ f->wp=f->rp=f->buf; } if(f->flags&APPEND) - lseek(f->fd, 0L, SEEK_END); + lseek(f->fd, 0, SEEK_END); d=write(f->fd, s, n); if(d<=0){ f->state=ERR; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/iolib.h /sys/src/ape/lib/ap/stdio/iolib.h --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/iolib.h Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/iolib.h Tue Aug 30 00:00:00 2016 @@ -14,7 +14,12 @@ * fseek fsetpos ftell rewind clearerr * feof ferror perror */ +#ifndef _SUSV2_SOURCE +#define _SUSV2_SOURCE /* for *intptr_t types */ +#endif + #include +#include #include #include #include diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/mkfile /sys/src/ape/lib/ap/stdio/mkfile --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/mkfile Thu Jan 31 22:27:55 2013 +++ /sys/src/ape/lib/ap/stdio/mkfile Wed Aug 24 00:00:00 2016 @@ -65,5 +65,4 @@ -char *rdline(FILE *f, char **ep){ +char *rdline(FILE *f, char **aep){ int cnt; - char *nlp, *vp; + void *vp; + unsigned char *nlp; + unsigned char **ep; + + ep = (unsigned char **)aep; switch(f->state){ default: /* CLOSED, WR, ERR, EOF */ return NULL; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/rewind.c /sys/src/ape/lib/ap/stdio/rewind.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/rewind.c Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/rewind.c Thu Aug 25 00:00:00 2016 @@ -3,5 +3,5 @@ */ #include "iolib.h" void rewind(FILE *f){ - fseek(f, 0L, SEEK_SET); + fseek(f, 0, SEEK_SET); } diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/sclose.c /sys/src/ape/lib/ap/stdio/sclose.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/sclose.c Fri Dec 9 15:43:31 2005 +++ /sys/src/ape/lib/ap/stdio/sclose.c Thu Aug 25 00:00:00 2016 @@ -2,7 +2,6 @@ * pANS stdio -- sclose */ #include "iolib.h" -#include char *_IO_sclose(FILE *f){ switch(f->state){ @@ -33,5 +32,5 @@ } f->state=CLOSED; f->flags=0; - return f->buf; + return (char *)f->buf; } diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/setbuf.c /sys/src/ape/lib/ap/stdio/setbuf.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/setbuf.c Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/setbuf.c Tue Aug 23 00:00:00 2016 @@ -7,10 +7,10 @@ if(buf) f->bufl=BUFSIZ; else{ - buf=f->unbuf; + buf=(char *)f->unbuf; f->bufl=0; } - f->rp=f->wp=f->lp=f->buf=buf; + f->rp=f->wp=f->lp=f->buf=(unsigned char *)buf; f->state=RDWR; } /* else error, but there's no way to report it */ diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/setvbuf.c /sys/src/ape/lib/ap/stdio/setvbuf.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/setvbuf.c Thu Dec 8 14:33:02 2005 +++ /sys/src/ape/lib/ap/stdio/setvbuf.c Thu Aug 25 00:00:00 2016 @@ -2,7 +2,6 @@ * pANS stdio -- setvbuf */ #include "iolib.h" -#include int setvbuf(FILE *f, char *buf, int mode, size_t size){ if(f->state!=OPEN){ f->state=ERR; @@ -24,11 +23,11 @@ f->bufl=size; break; case _IONBF: - buf=f->unbuf; + buf=(char *)f->unbuf; f->bufl=0; break; } - f->rp=f->wp=f->lp=f->buf=buf; + f->rp=f->wp=f->lp=f->buf=(unsigned char *)buf; f->state=RDWR; return 0; } diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/sopenr.c /sys/src/ape/lib/ap/stdio/sopenr.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/sopenr.c Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/sopenr.c Tue Aug 23 00:00:00 2016 @@ -8,7 +8,7 @@ FILE *f; for(f=_IO_stream;f!=&_IO_stream[FOPEN_MAX];f++) if(f->state==CLOSED) break; if(f==&_IO_stream[FOPEN_MAX]) return NULL; - f->buf=f->rp=(char *)s; /* what an annoyance const is */ + f->buf=f->rp=(unsigned char *)s; /* what an annoyance const is */ f->bufl=strlen(s); f->wp=f->buf+f->bufl; f->state=RD; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/stdio.c /sys/src/ape/lib/ap/stdio/stdio.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/stdio.c Thu Feb 28 18:46:22 2002 +++ /sys/src/ape/lib/ap/stdio/stdio.c Thu Aug 25 00:00:00 2016 @@ -3,8 +3,7 @@ */ #include "iolib.h" FILE _IO_stream[]={ -/* fd flags state buf rp wp lp bufl unbuf */ - 0, 0, OPEN, 0, 0, 0, 0, 0, 0, - 1, 0, OPEN, 0, 0, 0, 0, 0, 0, - 2, 0, OPEN, 0, 0, 0, 0, 0, 0, + { .fd 0, .state OPEN, }, + { .fd 1, .state OPEN, }, + { .fd 2, .state OPEN, }, }; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/strtod.c /sys/src/ape/lib/ap/stdio/strtod.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/strtod.c Wed Feb 3 20:38:07 2010 +++ /sys/src/ape/lib/ap/stdio/strtod.c Wed Aug 24 00:00:00 2016 @@ -219,6 +219,8 @@ long L; unsigned long y, z; Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; + + bb = bd = bs = delta = 0; sign = nz0 = nz = 0; rv.d = 0.; for(s = s00;;s++) switch(*s) { diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/ungetc.c /sys/src/ape/lib/ap/stdio/ungetc.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/ungetc.c Mon Nov 25 15:18:53 2002 +++ /sys/src/ape/lib/ap/stdio/ungetc.c Thu Aug 25 00:00:00 2016 @@ -15,12 +15,7 @@ _IO_setvbuf(f); case RDWR: case END: - f->wp=f->buf; - if(f->bufl==0) - f->wp += 1; - else - f->wp += f->bufl; - f->rp = f->wp; + f->rp=f->wp=f->buf+(f->bufl==0?1:f->bufl); f->state=RD; case RD: if(f->rp==f->buf) return EOF; diff -Nru /n/sources/plan9/sys/src/ape/lib/ap/stdio/vfprintf.c /sys/src/ape/lib/ap/stdio/vfprintf.c --- /n/sources/plan9/sys/src/ape/lib/ap/stdio/vfprintf.c Wed Jun 16 17:19:44 2004 +++ /sys/src/ape/lib/ap/stdio/vfprintf.c Tue Aug 30 00:00:00 2016 @@ -4,7 +4,6 @@ #include "iolib.h" #include #include -#include #include /* * Leading flags @@ -149,11 +148,13 @@ static int nprint; int -vfprintf(FILE *f, const char *s, va_list args) +vfprintf(FILE *f, const char *as, va_list args) { int tfl, flags, width, precision; + unsigned char *s; nprint = 0; + s = (unsigned char *)as; while(*s){ if(*s != '%'){ putc(*s++, f); @@ -162,7 +163,7 @@ } s++; flags = 0; - while(lflag[*s&_IO_CHMASK]) flags |= lflag[*s++&_IO_CHMASK]; + while(lflag[*s]) flags |= lflag[*s++]; if(*s == '*'){ width = va_arg(args, int); s++; @@ -188,7 +189,7 @@ } else precision = -1; - while(tfl = tflag[*s&_IO_CHMASK]){ + while(tfl = tflag[*s]){ if(tfl == LONG && (flags & LONG)){ flags &= ~LONG; tfl = VLONG; @@ -208,9 +209,9 @@ static int ocvt_c(FILE *f, va_list *args, int flags, int width, int precision) { -#pragma ref precision int i; + USED(precision); if(!(flags&LEFT)) for(i=1; i #include -#include #include static int icvt_f(FILE *f, va_list *args, int store, int width, int type); static int icvt_x(FILE *f, va_list *args, int store, int width, int type); @@ -106,8 +105,7 @@ return ncvt; } static int icvt_n(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref f -#pragma ref width + USED(f, width); if(store){ --ncvt; /* this assignment doesn't count! */ switch(type){ @@ -279,9 +277,11 @@ return 1; } static int icvt_s(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type int c, nn; register char *s; + + USED(type); + s = 0; if(store) s=va_arg(*args, char *); do c=ngetc(f); @@ -307,9 +307,11 @@ return 1; } static int icvt_c(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type int c; register char *s; + + USED(type); + s = 0; if(store) s=va_arg(*args, char *); if(width<0) width=1; for(;;){ @@ -339,10 +341,11 @@ return !ok; } static int icvt_sq(FILE *f, va_list *args, int store, int width, int type){ -#pragma ref type int c, nn; register char *s; register const char *pat; + USED(type); + s = 0; pat=++fmtp; if(*fmtp=='^') fmtp++; if(*fmtp!='\0') fmtp++;