%% options copyright owner = Dirk Krause copyright year = 2016-xxxx license = bsd %% header /** @file dk4svbufa.h Set file buffer. */ #ifndef DK4CONF_H_INCLUDED #include "dk4conf.h" #endif #ifndef STDIO_H_INCLUDED #include #define STDIO_H_INCLUDED 1 #endif #ifndef DK4SVBUF_H_INCLUDED #include "dk4svbuf.h" #endif #ifndef DK4APP_H_INCLUDED #include "dk4app.h" #endif #ifdef __cplusplus extern "C" { #endif /** Change buffering for FILE. @param fipo File to change buffering for. @param pbuf Address of buffer to use, may be NULL. @param btype Buffering type, one from: _IONBF, _IOLBF or _IOFBF (not buffered, line buffered, fully buffered). @param szbuf Size of buffer, may be 0. @param fn File to to change buffering for, may be NULL. @param app Application structure for diagnostics, may be NULL. @return 1 on success, 0 on error. */ int dk4setvbuf_app( FILE *fipo, dk4_file_buffering_t btype, char *pbuf, size_t szbuf, const char *fn, dk4_app_t *app ); #ifdef __cplusplus } #endif /* vim: set ai sw=4 ts=4 : */ %% module #include "dk4svbufa.h" $!trace-include int dk4setvbuf_app( FILE *fipo, dk4_file_buffering_t btype, char *pbuf, size_t szbuf, const char *fn, dk4_app_t *app ) { dk4_er_t er; int back = 0; int ll = DK4_LL_ERROR; if (NULL != fipo) { dk4error_init(&er); back = dk4setvbuf(fipo, btype, pbuf, szbuf, &er); if (DK4_E_NONE != er.ec) { if (0 != back) { ll = DK4_LL_WARNING; } switch (er.ec) { if (NULL != fn) { dk4app_log_base3(app, ll, 156, 157, fn); } else { dk4app_log_base1(app, ll, 155); } if (DK4_E_NOT_SUPPORTED == er.ec) { dk4app_log_base1(app, ll, 158); } } } } return back; } /* vim: set ai sw=4 ts=4 : */