X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2F_PDCLIB%2Ffillbuffer.c;h=c961f48dfdeb92c607e3ed3f29549de8be9526eb;hb=77e0f19332a2b4e64d48ecb48557ea7aefa2cc61;hp=8da93ad345fb8a1ff0963eb28cb95d06f81ff1b4;hpb=d6cfb7e99a6b183b62b606947673cdca47c2fb91;p=pdclib.old diff --git a/platform/example/functions/_PDCLIB/fillbuffer.c b/platform/example/functions/_PDCLIB/fillbuffer.c index 8da93ad..c961f48 100644 --- a/platform/example/functions/_PDCLIB/fillbuffer.c +++ b/platform/example/functions/_PDCLIB/fillbuffer.c @@ -6,56 +6,18 @@ Permission is granted to use, modify, and / or redistribute at will. */ -/* This is an example implementation of _PDCLIB_fillbuffer() fit for - use with POSIX kernels. +/* This is a stub version of _PDCLIB_fillbuffer */ #include #ifndef REGTEST #include <_PDCLIB_glue.h> - -#include - -typedef long ssize_t; -extern ssize_t read( int fd, void * buf, size_t count ); +#include int _PDCLIB_fillbuffer( struct _PDCLIB_file_t * stream ) { - /* No need to handle buffers > INT_MAX, as PDCLib doesn't allow them */ - ssize_t rc = read( stream->handle, stream->buffer, stream->bufsize ); - if ( rc > 0 ) - { - /* Reading successful. */ - if ( ! ( stream->status & _PDCLIB_FBIN ) ) - { - /* TODO: Text stream conversion here */ - } - stream->pos.offset += rc; - stream->bufend = rc; - stream->bufidx = 0; - return 0; - } - if ( rc < 0 ) - { - /* Reading error */ - switch ( errno ) - { - case EBADF: - case EFAULT: - case EINTR: - case EINVAL: - case EIO: - _PDCLIB_errno = _PDCLIB_EIO; - break; - default: - _PDCLIB_errno = _PDCLIB_EUNKNOWN; - break; - } - stream->status |= _PDCLIB_ERRORFLAG; - return EOF; - } - /* End-of-File */ + errno = ENOTSUP; stream->status |= _PDCLIB_EOFFLAG; return EOF; }