Home | History | Annotate | Download | only in stdio

Lines Matching refs:fp

53  * Expand the ungetc buffer `in place'.  That is, adjust fp->_p when
59 __submore(FILE *fp)
64 _DIAGASSERT(fp != NULL);
66 if (_UB(fp)._base == fp->_ubuf) {
72 _UB(fp)._base = p;
73 _UB(fp)._size = BUFSIZ;
74 p += BUFSIZ - sizeof(fp->_ubuf);
75 for (i = sizeof(fp->_ubuf); --i >= 0;)
76 p[i] = fp->_ubuf[i];
77 fp->_p = p;
80 i = _UB(fp)._size;
81 p = realloc(_UB(fp)._base, (size_t)(i << 1));
86 fp->_p = p + i;
87 _UB(fp)._base = p;
88 _UB(fp)._size = i << 1;
93 ungetc(int c, FILE *fp)
96 _DIAGASSERT(fp != NULL);
102 FLOCKFILE(fp);
103 _SET_ORIENTATION(fp, -1);
104 if ((fp->_flags & __SRD) == 0) {
109 if ((fp->_flags & __SRW) == 0) {
110 FUNLOCKFILE(fp);
113 if (fp->_flags & __SWR) {
114 if (__sflush(fp)) {
115 FUNLOCKFILE(fp);
118 fp->_flags &= ~__SWR;
119 fp->_w = 0;
120 fp->_lbfsize = 0;
122 fp->_flags |= __SRD;
130 if (HASUB(fp)) {
131 if (fp->_r >= _UB(fp)._size && __submore(fp)) {
132 FUNLOCKFILE(fp);
135 *--fp->_p = c;
136 fp->_r++;
137 FUNLOCKFILE(fp);
140 fp->_flags &= ~__SEOF;
147 if (fp->_bf._base != NULL && fp->_p > fp->_bf._base &&
148 fp->_p[-1] == c) {
149 fp->_p--;
150 fp->_r++;
151 FUNLOCKFILE(fp);
159 fp->_ur = fp->_r;
160 fp->_up = fp->_p;
161 _UB(fp)._base = fp->_ubuf;
162 _UB(fp)._size = sizeof(fp->_ubuf);
163 fp->_ubuf[sizeof(fp->_ubuf) - 1] = c;
164 fp->_p = &fp->_ubuf[sizeof(fp->_ubuf) - 1];
165 fp->_r = 1;
166 FUNLOCKFILE(fp);