Lines Matching refs:f
123 bc_file_flushErr(BcFile* restrict f, BcFlushType type) in bc_file_flushErr() argument
132 if (fflush(f->f) == EOF) s = BC_STATUS_ERROR_FATAL; in bc_file_flushErr()
138 if (f->len) in bc_file_flushErr()
147 if (f->buf[f->len - 1] != '\n' && in bc_file_flushErr()
154 for (i = f->len - 2; i < f->len && f->buf[i] != '\n'; --i) in bc_file_flushErr()
162 bc_vec_string(&vm->history.extras, f->len - i, f->buf + i); in bc_file_flushErr()
173 s = bc_file_output(f->fd, f->buf, f->len); in bc_file_flushErr()
174 f->len = 0; in bc_file_flushErr()
184 bc_file_flush(BcFile* restrict f, BcFlushType type) in bc_file_flush() argument
191 s = bc_file_flushErr(f, type); in bc_file_flush()
204 else if (!f->errors_fatal) in bc_file_flush()
218 bc_file_write(BcFile* restrict f, BcFlushType type, const char* buf, size_t n) in bc_file_write() argument
225 if (n > f->cap - f->len) in bc_file_write()
227 bc_file_flush(f, type); in bc_file_write()
228 assert(!f->len); in bc_file_write()
233 if (BC_UNLIKELY(n > f->cap - f->len)) in bc_file_write()
235 BcStatus s = bc_file_output(f->fd, buf, n); in bc_file_write()
247 else if (!f->errors_fatal) in bc_file_write()
258 memcpy(f->buf + f->len, buf, n); in bc_file_write()
259 f->len += n; in bc_file_write()
268 bc_file_printf(BcFile* restrict f, const char* fmt, ...) in bc_file_printf() argument
276 bc_file_vprintf(f, fmt, args); in bc_file_printf()
283 bc_file_vprintf(BcFile* restrict f, const char* fmt, va_list args) in bc_file_vprintf() argument
296 r = vfprintf(f->f, fmt, args); in bc_file_vprintf()
305 if (!f->errors_fatal) in bc_file_vprintf()
338 bc_file_write(f, bc_flush_none, ptr, len); in bc_file_vprintf()
349 bc_file_putchar(f, bc_flush_none, uc); in bc_file_vprintf()
355 bc_file_puts(f, bc_flush_none, s); in bc_file_vprintf()
366 bc_file_putchar(f, bc_flush_none, '-'); in bc_file_vprintf()
371 if (!d) bc_file_putchar(f, bc_flush_none, '0'); in bc_file_vprintf()
375 bc_file_puts(f, bc_flush_none, buf); in bc_file_vprintf()
392 if (!ull) bc_file_putchar(f, bc_flush_none, '0'); in bc_file_vprintf()
396 bc_file_puts(f, bc_flush_none, buf); in bc_file_vprintf()
406 if (ptr[0]) bc_file_puts(f, bc_flush_none, ptr); in bc_file_vprintf()
413 bc_file_puts(BcFile* restrict f, BcFlushType type, const char* str) in bc_file_puts() argument
419 bc_file_printf(f, "%s", str); in bc_file_puts()
421 bc_file_write(f, type, str, strlen(str)); in bc_file_puts()
426 bc_file_putchar(BcFile* restrict f, BcFlushType type, uchar c) in bc_file_putchar() argument
434 if (BC_ERR(fputc(c, f->f) == EOF)) in bc_file_putchar()
437 if (f->f == stderr) exit(BC_STATUS_ERROR_FATAL); in bc_file_putchar()
444 if (f->len == f->cap) bc_file_flush(f, type); in bc_file_putchar()
446 assert(f->len < f->cap); in bc_file_putchar()
448 f->buf[f->len] = (char) c; in bc_file_putchar()
449 f->len += 1; in bc_file_putchar()
459 bc_file_init(BcFile* f, FILE* file, bool errors_fatal) in bc_file_init() argument
462 f->f = file; in bc_file_init()
463 f->errors_fatal = errors_fatal; in bc_file_init()
469 bc_file_init(BcFile* f, int fd, char* buf, size_t cap, bool errors_fatal) in bc_file_init() argument
473 f->fd = fd; in bc_file_init()
474 f->buf = buf; in bc_file_init()
475 f->len = 0; in bc_file_init()
476 f->cap = cap; in bc_file_init()
477 f->errors_fatal = errors_fatal; in bc_file_init()
483 bc_file_free(BcFile* f) in bc_file_free() argument
486 bc_file_flush(f, bc_flush_none); in bc_file_free()