X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2F_PDCLIB%2Ffillbuffer.c;h=c961f48dfdeb92c607e3ed3f29549de8be9526eb;hb=e0a1864c7e4dbd4d482379b1bb6fd56b5ac68617;hp=ecfb96859bcc668b63bfe866d6aca7b4017e5ba8;hpb=393020b6e48719d27699dea6b29e53025bbd5123;p=pdclib diff --git a/platform/example/functions/_PDCLIB/fillbuffer.c b/platform/example/functions/_PDCLIB/fillbuffer.c index ecfb968..c961f48 100644 --- a/platform/example/functions/_PDCLIB/fillbuffer.c +++ b/platform/example/functions/_PDCLIB/fillbuffer.c @@ -6,55 +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->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; }