Lines Matching full:ck
54 struct fmemopen_cookie *ck; in fmemopen() local
84 ck = malloc(sizeof(struct fmemopen_cookie)); in fmemopen()
85 if (ck == NULL) { in fmemopen()
89 ck->off = 0; in fmemopen()
90 ck->size = size; in fmemopen()
93 ck->own = ((ck->buf = buf) == NULL); in fmemopen()
94 if (ck->own) { in fmemopen()
95 ck->buf = malloc(size); in fmemopen()
96 if (ck->buf == NULL) { in fmemopen()
97 free(ck); in fmemopen()
106 if (ck->own || mode[0] == 'w') { in fmemopen()
107 ck->buf[0] = '\0'; in fmemopen()
111 ck->bin = strchr(mode, 'b') != NULL; in fmemopen()
128 ck->off = ck->len = strnlen(ck->buf, ck->size); in fmemopen()
131 ck->len = size; in fmemopen()
134 ck->len = 0; in fmemopen()
139 f = funopen(ck, in fmemopen()
145 if (ck->own) in fmemopen()
146 free(ck->buf); in fmemopen()
147 free(ck); in fmemopen()
166 struct fmemopen_cookie *ck = cookie; in fmemopen_read() local
168 if (nbytes > ck->len - ck->off) in fmemopen_read()
169 nbytes = ck->len - ck->off; in fmemopen_read()
174 memcpy(buf, ck->buf + ck->off, nbytes); in fmemopen_read()
176 ck->off += nbytes; in fmemopen_read()
184 struct fmemopen_cookie *ck = cookie; in fmemopen_write() local
186 if (nbytes > ck->size - ck->off) in fmemopen_write()
187 nbytes = ck->size - ck->off; in fmemopen_write()
192 memcpy(ck->buf + ck->off, buf, nbytes); in fmemopen_write()
194 ck->off += nbytes; in fmemopen_write()
196 if (ck->off > ck->len) in fmemopen_write()
197 ck->len = ck->off; in fmemopen_write()
205 if (!ck->bin && ck->off < ck->size && ck->buf[ck->off - 1] != '\0') in fmemopen_write()
206 ck->buf[ck->off] = '\0'; in fmemopen_write()
214 struct fmemopen_cookie *ck = cookie; in fmemopen_seek() local
219 if (offset > ck->size) { in fmemopen_seek()
223 ck->off = offset; in fmemopen_seek()
227 if (ck->off + offset > ck->size) { in fmemopen_seek()
231 ck->off += offset; in fmemopen_seek()
235 if (offset > 0 || -offset > ck->len) { in fmemopen_seek()
239 ck->off = ck->len + offset; in fmemopen_seek()
247 return (ck->off); in fmemopen_seek()
253 struct fmemopen_cookie *ck = cookie; in fmemopen_close() local
255 if (ck->own) in fmemopen_close()
256 free(ck->buf); in fmemopen_close()
258 free(ck); in fmemopen_close()