From: John Darrington Date: Wed, 27 Jan 2016 19:18:20 +0000 (+0100) Subject: Use win32 functions for accessing filename X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=b3d6572c6e4ee401bb25ce0ea485c316925e6dc8 Use win32 functions for accessing filename --- diff --git a/src/ui/gui/main.c b/src/ui/gui/main.c index 9bd278d339..59ee43a7e7 100644 --- a/src/ui/gui/main.c +++ b/src/ui/gui/main.c @@ -300,7 +300,7 @@ main (int argc, char *argv[]) ((struct init_source *) ss)->argc = &argc; ((struct init_source *) ss)->argv = &argv; ((struct init_source *) ss)->loop = loop; - ((struct init_source *) ss)->file = optind < argc ? argv[optind] : NULL; + ((struct init_source *) ss)->filename_arg = optind < argc ? optind : -1; g_source_unref (ss); diff --git a/src/ui/gui/psppire.c b/src/ui/gui/psppire.c index 9ed7d15bec..1b0031b23f 100644 --- a/src/ui/gui/psppire.c +++ b/src/ui/gui/psppire.c @@ -126,12 +126,23 @@ initialize (const struct init_source *is) break; case 14: { - if (is->file) + if (is->filename_arg != -1) { +#ifndef G_OS_WIN32 + const char *file = (*is->argv)[is->filename_arg]; const gchar *local_encoding = NULL; g_get_charset (&local_encoding); - - struct file_handle *fh = fh_create_file (NULL, is->file, local_encoding, fh_default_properties ()); +#else + char **as = g_win32_get_command_line (); + const char *file = as[is->filename_arg]; + const gchar *local_encoding = "UTF-8"; +#endif + + struct file_handle *fh = fh_create_file (NULL, + file, + local_encoding, + fh_default_properties ()); + const char *filename = fh_get_file_name (fh); int retval = any_reader_detect (fh, NULL); diff --git a/src/ui/gui/psppire.h b/src/ui/gui/psppire.h index e0b3bcb133..32a412be35 100644 --- a/src/ui/gui/psppire.h +++ b/src/ui/gui/psppire.h @@ -29,7 +29,7 @@ struct init_source GSource parent; int state; GMainLoop *loop; - gchar *file; + int filename_arg; int *argc; char ***argv; };