Lines Matching refs:f
112 BcStatus bc_file_flushErr(BcFile *restrict f, BcFlushType type) in bc_file_flushErr() argument
119 if (f->len) { in bc_file_flushErr()
128 if (f->buf[f->len - 1] != '\n' && in bc_file_flushErr()
135 for (i = f->len - 2; i < f->len && f->buf[i] != '\n'; --i); in bc_file_flushErr()
140 bc_vec_string(&vm.history.extras, f->len - i, f->buf + i); in bc_file_flushErr()
150 s = bc_file_output(f->fd, f->buf, f->len); in bc_file_flushErr()
151 f->len = 0; in bc_file_flushErr()
158 void bc_file_flush(BcFile *restrict f, BcFlushType type) { in bc_file_flush() argument
165 s = bc_file_flushErr(f, type); in bc_file_flush()
183 void bc_file_write(BcFile *restrict f, BcFlushType type, in bc_file_write() argument
191 if (n > f->cap - f->len) { in bc_file_write()
192 bc_file_flush(f, type); in bc_file_write()
193 assert(!f->len); in bc_file_write()
198 if (BC_UNLIKELY(n > f->cap - f->len)) bc_file_output(f->fd, buf, n); in bc_file_write()
200 memcpy(f->buf + f->len, buf, n); in bc_file_write()
201 f->len += n; in bc_file_write()
207 void bc_file_printf(BcFile *restrict f, const char *fmt, ...) in bc_file_printf() argument
215 bc_file_vprintf(f, fmt, args); in bc_file_printf()
221 void bc_file_vprintf(BcFile *restrict f, const char *fmt, va_list args) { in bc_file_vprintf() argument
243 bc_file_write(f, bc_flush_none, ptr, len); in bc_file_vprintf()
254 bc_file_putchar(f, bc_flush_none, uc); in bc_file_vprintf()
260 bc_file_puts(f, bc_flush_none, s); in bc_file_vprintf()
270 bc_file_putchar(f, bc_flush_none, '-'); in bc_file_vprintf()
275 if (!d) bc_file_putchar(f, bc_flush_none, '0'); in bc_file_vprintf()
278 bc_file_puts(f, bc_flush_none, buf); in bc_file_vprintf()
295 if (!ull) bc_file_putchar(f, bc_flush_none, '0'); in bc_file_vprintf()
298 bc_file_puts(f, bc_flush_none, buf); in bc_file_vprintf()
308 if (ptr[0]) bc_file_puts(f, bc_flush_none, ptr); in bc_file_vprintf()
311 void bc_file_puts(BcFile *restrict f, BcFlushType type, const char *str) { in bc_file_puts() argument
312 bc_file_write(f, type, str, strlen(str)); in bc_file_puts()
315 void bc_file_putchar(BcFile *restrict f, BcFlushType type, uchar c) { in bc_file_putchar() argument
321 if (f->len == f->cap) bc_file_flush(f, type); in bc_file_putchar()
323 assert(f->len < f->cap); in bc_file_putchar()
325 f->buf[f->len] = (char) c; in bc_file_putchar()
326 f->len += 1; in bc_file_putchar()
331 void bc_file_init(BcFile *f, int fd, char *buf, size_t cap) { in bc_file_init() argument
335 f->fd = fd; in bc_file_init()
336 f->buf = buf; in bc_file_init()
337 f->len = 0; in bc_file_init()
338 f->cap = cap; in bc_file_init()
341 void bc_file_free(BcFile *f) { in bc_file_free() argument
343 bc_file_flush(f, bc_flush_none); in bc_file_free()