X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2Fstdio%2F_PDCLIB_fillbuffer.c;fp=platform%2Fwin32%2Ffunctions%2F_PDCLIB%2F_PDCLIB_fillbuffer.c;h=dfdfe262510d858043e23bfb3a30505271bbb2f0;hp=c6a2b6b520f436a6f5a1433d1f5483e3eec1ebeb;hb=c5d49235e09fbd58416f10dec2799e61cf3431c8;hpb=4c7c56442f6b3e08c17594dd4e8095fca3aec9cf diff --git a/platform/win32/functions/_PDCLIB/_PDCLIB_fillbuffer.c b/functions/stdio/_PDCLIB_fillbuffer.c similarity index 62% rename from platform/win32/functions/_PDCLIB/_PDCLIB_fillbuffer.c rename to functions/stdio/_PDCLIB_fillbuffer.c index c6a2b6b..dfdfe26 100644 --- a/platform/win32/functions/_PDCLIB/_PDCLIB_fillbuffer.c +++ b/functions/stdio/_PDCLIB_fillbuffer.c @@ -1,54 +1,45 @@ -/* $Id$ */ - -/* _PDCLIB_fillbuffer( struct _PDCLIB_file_t * stream ) - - This file is part of the Public Domain C Library (PDCLib). - Permission is granted to use, modify, and / or redistribute at will. -*/ - -/* This is a stub version of _PDCLIB_fillbuffer -*/ - -#include - -#ifndef REGTEST -#include <_PDCLIB_glue.h> -#include -#include - -void _PDCLIB_w32errno(void); -int _PDCLIB_fillbuffer( struct _PDCLIB_file_t * stream ) -{ - DWORD nBytesRead; - BOOL ok = ReadFile( stream->handle, stream->buffer, stream->bufsize, - &nBytesRead, NULL ); - - if( ok ) { - if( nBytesRead == 0 ) { - stream->status |= _PDCLIB_EOFFLAG; - return EOF; - } - stream->pos.offset += nBytesRead; - stream->bufend = nBytesRead; - stream->bufidx = 0; - return 0; - } else { - _PDCLIB_w32errno(); - stream->status |= _PDCLIB_ERRORFLAG; - return EOF; - } -} - -#endif - -#ifdef TEST -#include <_PDCLIB_test.h> - -int main( void ) -{ - /* Testing covered by ftell.c */ - return TEST_RESULTS; -} - -#endif - +/* _PDCLIB_fillbuffer( struct _PDCLIB_file_t * stream ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#include + +#ifndef REGTEST +#include <_PDCLIB_glue.h> + +int _PDCLIB_fillbuffer( struct _PDCLIB_file_t * stream ) +{ + size_t bytesRead; + bool ok = stream->ops->read( stream->handle, stream->buffer, stream->bufsize, + &bytesRead); + + if( ok ) { + if( bytesRead == 0 ) { + stream->status |= _PDCLIB_EOFFLAG; + return EOF; + } + stream->pos.offset += bytesRead; + stream->bufend = bytesRead; + stream->bufidx = 0; + return 0; + } else { + stream->status |= _PDCLIB_ERRORFLAG; + return EOF; + } +} + +#endif + +#ifdef TEST +#include <_PDCLIB_test.h> + +int main( void ) +{ + /* Testing covered by ftell.c */ + return TEST_RESULTS; +} + +#endif +