]> pd.if.org Git - pdclib/blobdiff - platform/example/functions/stdio/remove.c
Comment cleanups.
[pdclib] / platform / example / functions / stdio / remove.c
index 0e66f4c65c6cb3124f51fcbc8105fe793174f405..d3854ea6871e63c8f8c3fcb1e0507743c17201fc 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /* remove( const char * )
 
    This file is part of the Public Domain C Library (PDCLib).
 
 #ifndef REGTEST
 
+#include <string.h>
+
 #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;
         }
     }