X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2Fstdio%2Fremove.c;h=aca3eaf98f31e6d562ad4bf1fa699bc11981cc1e;hb=d865c4403fc91d1f1ac95ba76febcee9f429bb97;hp=0e66f4c65c6cb3124f51fcbc8105fe793174f405;hpb=393020b6e48719d27699dea6b29e53025bbd5123;p=pdclib diff --git a/platform/example/functions/stdio/remove.c b/platform/example/functions/stdio/remove.c index 0e66f4c..aca3eaf 100644 --- a/platform/example/functions/stdio/remove.c +++ b/platform/example/functions/stdio/remove.c @@ -1,5 +1,3 @@ -/* $Id$ */ - /* remove( const char * ) This file is part of the Public Domain C Library (PDCLib). @@ -13,20 +11,32 @@ #ifndef REGTEST +#include + #include "/usr/include/errno.h" +extern struct _PDCLIB_file_t * _PDCLIB_filelist; + extern int unlink( const char * pathname ); int remove( const char * pathname ) { int rc; + struct _PDCLIB_file_t * current = _PDCLIB_filelist; + while ( current != NULL ) + { + if ( ( current->filename != NULL ) && ( strcmp( current->filename, pathname ) == 0 ) ) + { + return EOF; + } + current = current->next; + } if ( ( rc = unlink( pathname ) ) == -1 ) { switch ( errno ) { - /* These are the values possible on a Linux machine. Adapt the - values and their mapping to PDCLib errno values at will. (This - is an example implementation, so we keep it very simple.) + /* See the comments on implementation-defined errno values in + <_PDCLIB_config.h>. */ case EACCES: case EFAULT: @@ -39,10 +49,11 @@ int remove( const char * pathname ) case ENOTDIR: case EPERM: case EROFS: - _PDCLIB_errno = _PDCLIB_EIO; + _PDCLIB_errno = _PDCLIB_ERROR; break; default: - _PDCLIB_errno = _PDCLIB_EUNKNOWN; + /* This should be something like EUNKNOWN. */ + _PDCLIB_errno = _PDCLIB_ERROR; break; } } @@ -52,7 +63,8 @@ int remove( const char * pathname ) #endif #ifdef TEST -#include <_PDCLIB_test.h> + +#include "_PDCLIB_test.h" int main( void ) { @@ -61,4 +73,3 @@ int main( void ) } #endif -