Lines Matching refs:fp
44 * Expand the ungetc buffer `in place'. That is, adjust fp->_p when
50 __submore(fp)
51 FILE *fp;
56 if (fp->_ub._base == fp->_ubuf) {
62 fp->_ub._base = p;
63 fp->_ub._size = BUFSIZ;
64 p += BUFSIZ - sizeof(fp->_ubuf);
65 for (i = sizeof(fp->_ubuf); --i >= 0;)
66 p[i] = fp->_ubuf[i];
67 fp->_p = p;
70 i = fp->_ub._size;
71 p = realloc(fp->_ub._base, i << 1);
76 fp->_p = p + i;
77 fp->_ub._base = p;
78 fp->_ub._size = i << 1;
83 ungetc(c, fp)
85 register FILE *fp;
91 if ((fp->_flags & __SRD) == 0) {
96 if ((fp->_flags & __SRW) == 0)
98 if (fp->_flags & __SWR) {
99 if (__sflush(fp))
101 fp->_flags &= ~__SWR;
102 fp->_w = 0;
103 fp->_lbfsize = 0;
105 fp->_flags |= __SRD;
113 if (HASUB(fp)) {
114 if (fp->_r >= fp->_ub._size && __submore(fp))
116 *--fp->_p = c;
117 fp->_r++;
120 fp->_flags &= ~__SEOF;
127 if (fp->_bf._base != NULL && fp->_p > fp->_bf._base &&
128 fp->_p[-1] == c) {
129 fp->_p--;
130 fp->_r++;
138 fp->_ur = fp->_r;
139 fp->_up = fp->_p;
140 fp->_ub._base = fp->_ubuf;
141 fp->_ub._size = sizeof(fp->_ubuf);
142 fp->_ubuf[sizeof(fp->_ubuf) - 1] = c;
143 fp->_p = &fp->_ubuf[sizeof(fp->_ubuf) - 1];
144 fp->_r = 1;