New function that returns the message string for a Win32 error code.
authorTor Lillqvist <tml@iki.fi>
Mon, 8 Nov 1999 09:49:10 +0000 (09:49 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 8 Nov 1999 09:49:10 +0000 (09:49 +0000)
2000-03-04  Tor Lillqvist  <tml@iki.fi>

* gwin32.c (g_win32_error_message): New function that returns the
message string for a Win32 error code.

* glib.h: Declare it.

* glib.def: Export it, plus g_node_copy.

* gmodule-win32.c: Call g_win32_error_message() to get the error
message strings.

* libgplugin_a.c
* libgplugin_b.c
* gmodule.c: Remove LibMain functions that were needed by LCC,
which is not a supported compiler.

* testgmodule.c (main): Test for G_MODULE_IMPL ==
G_MODULE_IMPL_WIN32, not G_OS_WIN32.

* gmoduleconf.h.win32: Remove LCC stuff from here, too.

glib/gwin32.c
gwin32.c

index 82f10d4..8aeb5ed 100644 (file)
@@ -793,3 +793,26 @@ g_win32_getlocale (void)
 
   return g_strdup (bfr);
 }
+
+gchar *
+g_win32_error_message (gint error)
+{
+  gchar *msg;
+  gchar *retval;
+  int nbytes;
+
+  nbytes = FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
+                         |FORMAT_MESSAGE_IGNORE_INSERTS
+                         |FORMAT_MESSAGE_FROM_SYSTEM,
+                         NULL, error, 0,
+                         (LPTSTR) &msg, 0, NULL);
+  if (nbytes > 2 && error[nbytes-1] == '\n' && error[nbytes-2] == '\r')
+    error[nbytes-2] = '\0';
+  
+  retval = g_strdup (msg);
+
+  if (msg != NULL)
+    LocalFree (msg);
+
+  return retval;
+}
index 82f10d4..8aeb5ed 100644 (file)
--- a/gwin32.c
+++ b/gwin32.c
@@ -793,3 +793,26 @@ g_win32_getlocale (void)
 
   return g_strdup (bfr);
 }
+
+gchar *
+g_win32_error_message (gint error)
+{
+  gchar *msg;
+  gchar *retval;
+  int nbytes;
+
+  nbytes = FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
+                         |FORMAT_MESSAGE_IGNORE_INSERTS
+                         |FORMAT_MESSAGE_FROM_SYSTEM,
+                         NULL, error, 0,
+                         (LPTSTR) &msg, 0, NULL);
+  if (nbytes > 2 && error[nbytes-1] == '\n' && error[nbytes-2] == '\r')
+    error[nbytes-2] = '\0';
+  
+  retval = g_strdup (msg);
+
+  if (msg != NULL)
+    LocalFree (msg);
+
+  return retval;
+}