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