]> Pileus Git - ~andy/gtk/blobdiff - gdk-pixbuf/make-inline-pixbuf.c
Updated Arabic translation
[~andy/gtk] / gdk-pixbuf / make-inline-pixbuf.c
index fea4ea388ae27c7d973042104831b87c76b6666c..f100820f7f35c6420bc74850d9ad39b74c47125f 100644 (file)
@@ -20,9 +20,9 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <config.h>
+#include "config.h"
 #include "gdk-pixbuf-private.h"
-#include <glib/gprintf.h>
+#include <glib/gstdio.h>
 #include <errno.h>
 #include <string.h>
 #include <stdlib.h>
@@ -168,15 +168,20 @@ main (int argc, char **argv)
         usage ();
     }
 
-  outfile = fopen (argv[i], "w");
+#ifdef G_OS_WIN32
+  outfilename = g_locale_to_utf8 (argv[i], -1, NULL, NULL, NULL)
+#else
+  outfilename = argv[i];
+#endif
+
+  outfile = g_fopen (outfilename, "w");
   if (outfile == NULL)
     {
       g_fprintf (stderr, "Failed to open output file `%s': %s\n",
-               argv[i], strerror (errno));
+                argv[i], strerror (errno));
       exit (1);
     }
 
-  outfilename = argv[i];
   ++i;
 
   fputs ("/* This file was automatically generated by the make-inline-pixbuf program.\n"
@@ -189,19 +194,26 @@ main (int argc, char **argv)
   
   while (i < argc)
     {
-      GdkPixbuf *pixbuf;
+      GdkPixbuf *pixbuf = NULL;
       GError *error;
-
+      gchar *infilename;
+      
       g_assert ((i + 1) < argc);
 
       error = NULL;
-      pixbuf = gdk_pixbuf_new_from_file (argv[i+1], &error);
+#ifdef G_OS_WIN32
+      infilename = g_locale_to_utf8 (argv[i+1], -1, NULL, NULL, &error);
+#else
+      infilename = argv[i+1];
+#endif
+      if (infilename)
+       pixbuf = gdk_pixbuf_new_from_file (infilename, &error);
 
       if (pixbuf == NULL)
         {
           g_fprintf (stderr, "%s\n", error->message);
           fclose (outfile);
-          remove (outfilename);
+          g_remove (outfilename);
           exit (1);
         }