* Stdlib.cs: Fix perror(3) so that it works as expected. (Since errno is
authorJonathan Pryor <jpryor@novell.com>
Thu, 25 Oct 2007 14:03:38 +0000 (14:03 -0000)
committerJonathan Pryor <jpryor@novell.com>
Thu, 25 Oct 2007 14:03:38 +0000 (14:03 -0000)
  cleared during P/Invoke, previously Stdlib.perror("") would always print
  "Success", which isn't very helpful.)

svn path=/trunk/mcs/; revision=88162

mcs/class/Mono.Posix/Mono.Unix.Native/ChangeLog
mcs/class/Mono.Posix/Mono.Unix.Native/Stdlib.cs

index 3d8ce5a97ef31e9de88e82003f67c44c11e5b369..dcb11db31eaa6a91de67c50d01d694afc8a28e55 100644 (file)
@@ -1,3 +1,9 @@
+2007-10-25  Jonathan Pryor  <jonpryor@vt.edu>
+
+       * Stdlib.cs: Fix perror(3) so that it works as expected.  (Since errno is
+         cleared during P/Invoke, previously Stdlib.perror("") would always print
+         "Success", which isn't very helpful.)
+
 2007-06-28  Jonathan Pryor  <jonpryor@vt.edu>
 
        * NativeConvert.generated.cs: Flush (add TryCopy() methods for Utimbuf).
index 0f2bedcf661d82569f96c87449bd6ea2c2d85240..ca951e946375280963b894e26d918ea983e0e3ba 100644 (file)
@@ -926,7 +926,12 @@ namespace Mono.Unix.Native {
 
                [DllImport (MPH, CallingConvention=CallingConvention.Cdecl, 
                                SetLastError=true, EntryPoint="Mono_Posix_Stdlib_perror")]
-               public static extern int perror (string s);
+               private static extern int perror (string s, int err);
+
+               public static int perror (string s)
+               {
+                       return perror (s, Marshal.GetLastWin32Error ());
+               }
 
                //
                // <stdlib.h>