Deleted Added
full compact
42c42
< "$FreeBSD: head/lib/libc/stdio/findfp.c 72472 2001-02-14 05:00:20Z peter $";
---
> "$FreeBSD: head/lib/libc/stdio/findfp.c 72529 2001-02-16 06:11:22Z imp $";
62,65c62,66
< #define std(handle, flags, file) \
< FILE handle = {0,0,0,flags,file,{0},0,&handle,__sclose,__sread,__sseek,__swrite}
< /* p r w flags file _bf z cookie close read seek write */
<
---
> #define std(flags, file) \
> {0,0,0,flags,file,{0},0,__sF+file,__sclose,__sread,__sseek,__swrite, \
> {0}, __sFX + file}
> /* p r w flags file _bf z cookie close read seek write */
> /* _ub _extra */
70,72c71
< std(__stdin, __SRD, STDIN_FILENO);
< std(__stdout, __SWR, STDOUT_FILENO);
< std(__stderr, __SWR|__SNBF, STDERR_FILENO);
---
> static struct __sFILEX __sFX[3];
74,76c73,79
< static struct glue sglue2 = { &uglue, 1, &__stderr };
< static struct glue sglue1 = { &sglue2, 1, &__stdout };
< struct glue __sglue = { &sglue1, 1, &__stdin };
---
> FILE __sF[3] = {
> std(__SRD, STDIN_FILENO),
> std(__SWR, STDOUT_FILENO),
> std(__SWR|__SNBF, STDERR_FILENO)
> };
>
> struct glue __sglue = { &uglue, 3, __sF };
96d98
< FILE *p;
97a100,102
> static struct __sFILEX emptyx;
> FILE *p;
> struct __sFILEX *fx;
99c104,105
< g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE));
---
> g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE) +
> n * sizeof(struct __sFILEX));
102a109
> fx = (struct __sFILEX *)&p[n];
106,107c113,118
< while (--n >= 0)
< *p++ = empty;
---
> while (--n >= 0) {
> *p = empty;
> p->_extra = fx;
> *p->_extra = emptyx;
> p++, fx++;
> }