diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
commit | 0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch) | |
tree | 416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/dk4svbuf.ctr | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4svbuf.ctr')
-rw-r--r-- | support/dktools/dk4svbuf.ctr | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/support/dktools/dk4svbuf.ctr b/support/dktools/dk4svbuf.ctr deleted file mode 100644 index 7abd3768fd..0000000000 --- a/support/dktools/dk4svbuf.ctr +++ /dev/null @@ -1,162 +0,0 @@ -%% options - -copyright owner = Dirk Krause -copyright year = 2016-xxxx -SPDX-License-Identifier: BSD-3-Clause - -%% header - -/** @file dk4svbuf.h File buffering. -*/ - -#ifndef DK4CONF_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4conf.h" -#else -#include <dktools-4/dk4conf.h> -#endif -#endif - -#ifndef STDIO_H_INCLUDED -#include <stdio.h> -#define STDIO_H_INCLUDED 1 -#endif - -#ifndef DK4ERROR_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4error.h" -#else -#include <dktools-4/dk4error.h> -#endif -#endif - -/** How to buffer a file. -*/ -typedef enum { - DK4_FILE_NO_BUFFERING = 0 , /**< Do not use buffers. */ - DK4_FILE_LINE_BUFFERING , /**< Buffer lines. */ - DK4_FILE_FULL_BUFFERING /**< Full buffering. */ -} dk4_file_buffering_t; - -#ifdef __cplusplus -extern "C" { -#endif - -/** Set up buffering for a file. - @param fipo File to modify. - @param tp Buffering type. - @param pbuf Start address of buffer to use, may be NULL. - @param szbuf Size of buffer, may be 0. - @param erp Error report, may be NULL. - @return 1 on success, 0 on error. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - if fipo is NULL, - - DK4_E_NOT_SUPPORTED<br> - if neither the setbuffer function nor the setvbuf() function - is available on the system. - - DK4_E_SYSTEM<br> - if setvbuf() indicated an error. -*/ -int -dk4setvbuf( - FILE *fipo, - dk4_file_buffering_t tp, - char *pbuf, - size_t szbuf, - dk4_er_t *erp -); - -#ifdef __cplusplus -} -#endif - -/* vim: set ai sw=4 ts=4 : */ -%% module - - -#include "dk4conf.h" -#include "dk4svbuf.h" - -#if DK4_HAVE_ERRNO_H -#ifndef ERRNO_H_INCLUDED -#include <errno.h> -#define ERRNO_H_INCLUDED 1 -#endif -#endif - -#if DK4_HAVE_ASSERT_H -#ifndef ASSERT_H_INCLUDED -#include <assert.h> -#define ASSERT_H_INCLUDED 1 -#endif -#endif - -$!trace-include - - - -/** Buffering type constants. -*/ -static int buffering_types[] = { - _IONBF, _IOLBF, _IOFBF -}; - - -int -dk4setvbuf( - FILE *fipo, - dk4_file_buffering_t tp, - char *pbuf, - size_t szbuf, - dk4_er_t *erp -) -{ - int back = 0; -#if DK4_HAVE_SETVBUF - int svbres = 0; -#endif - int btp; - -#if DK4_USE_ASSERT - assert(NULL != fipo); -#endif - if (NULL != fipo) { - btp = ( - ((0 <= (int)tp) && (3 > (int)tp)) - ? (buffering_types[(int)tp]) - : (buffering_types[2]) - ); -#if DK4_HAVE_SETVBUF - errno = 0; - svbres = setvbuf( - fipo, - ((0 < szbuf) ? (pbuf) : (NULL)), - (((NULL != pbuf) && (0 < szbuf)) ? (btp) : (buffering_types[0])), - szbuf - ); - if (0 == svbres) { - back = 1; - } - else { - dk4error_set_idetails(erp, DK4_E_SYSTEM, errno); - } -#else -#if DK4_HAVE_SETBUFFER - setbuffer(fipo, pbuf, szbuf); - back = 1; -#else - back = 1; - dk4error_set_simple_error_code(erp, DK4_E_NOT_SUPPORTED); -#endif -#endif - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - -/* vim: set ai sw=4 ts=4 : */ - |