]> pd.if.org Git - pdclib.old/commitdiff
fclose.c: don't try to open testfile2 while already open; [win32] implement rename
authorOwen Shepherd <owen.shepherd@e43.eu>
Wed, 15 Aug 2012 14:23:40 +0000 (15:23 +0100)
committerOwen Shepherd <owen.shepherd@e43.eu>
Wed, 15 Aug 2012 14:23:40 +0000 (15:23 +0100)
functions/stdio/fclose.c
platform/win32/functions/_PDCLIB/_PDCLIB_open.c
platform/win32/functions/_PDCLIB/_PDCLIB_rename.c

index 113845b83211294ff9cfa23d332bdf7bb4ef038a..d20cb3e90a95a5c5d82b4967ff383fff9e95b7ca 100644 (file)
@@ -83,7 +83,7 @@ int main( void )
     TESTCASE( _PDCLIB_filelist == file2 );
     TESTCASE( fclose( file2 ) == 0 );
     TESTCASE( _PDCLIB_filelist == file1 );
-    TESTCASE( ( file2 = fopen( testfile1, "w" ) ) != NULL );
+    TESTCASE( ( file2 = fopen( testfile2, "w" ) ) != NULL );
     TESTCASE( _PDCLIB_filelist == file2 );
     TESTCASE( fclose( file1 ) == 0 );
     TESTCASE( _PDCLIB_filelist == file2 );
index bfdb8975c49bfb9726306749e7a1a1444670f390..a6ac387c8842dc1f476c376ac37d7f213554ade4 100644 (file)
@@ -59,6 +59,21 @@ HANDLE _PDCLIB_open( char const * const filename, unsigned int mode )
         NULL, creationDisposition, FILE_ATTRIBUTE_NORMAL, NULL);
 
     if(fd == INVALID_HANDLE_VALUE) {
+#if 0
+        DWORD dw = GetLastError();
+        char* msgBuf;
+        FormatMessage(
+            FORMAT_MESSAGE_ALLOCATE_BUFFER | 
+            FORMAT_MESSAGE_FROM_SYSTEM |
+            FORMAT_MESSAGE_IGNORE_INSERTS,
+            NULL,
+            dw,
+            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+            (LPSTR) &msgBuf,
+            0, NULL );
+
+        fprintf(stderr, "Error: %s\n", msgBuf);
+#endif
         _PDCLIB_w32errno();
         return NULL;
     }
index a65715dfc4f9dd591b43e0dd5e380024cdf92bfb..cac195858d4c0012a9da296355a1f47c3f360818 100644 (file)
 #ifndef REGTEST
 #include <_PDCLIB_glue.h>
 #include <errno.h>
+#include <windows.h>
 
+void _PDCLIB_w32errno( void );
 int _PDCLIB_rename( const char * old, const char * new )
 {
-    errno = ENOTSUP;
+
+    BOOL ok = MoveFile(old, new);
+    if(!ok) {
+        _PDCLIB_w32errno();
+    }
+    return !ok;
 }
 
 #endif