diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/dk4svbufa.ctr |
Initial commit
Diffstat (limited to 'support/dktools/dk4svbufa.ctr')
-rw-r--r-- | support/dktools/dk4svbufa.ctr | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/support/dktools/dk4svbufa.ctr b/support/dktools/dk4svbufa.ctr new file mode 100644 index 0000000000..955b8a9613 --- /dev/null +++ b/support/dktools/dk4svbufa.ctr @@ -0,0 +1,107 @@ +%% 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 <stdio.h> +#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 : */ |