diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-11-24 23:58:54 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-11-24 23:58:54 +0000 |
commit | 80e14dce527cc0b276a3a1082e95c20ed38c389d (patch) | |
tree | d920dc793d9352c5c0029e36ea13b306a30d78b0 /amiga | |
parent | 4ad94124a693528f2ac47a9b4b2e12880586aedf (diff) | |
download | netsurf-80e14dce527cc0b276a3a1082e95c20ed38c389d.tar.gz netsurf-80e14dce527cc0b276a3a1082e95c20ed38c389d.tar.bz2 |
Move ReadArgs commandline processing earlier whilst leaving core commandline processing where it was previously
Diffstat (limited to 'amiga')
-rw-r--r-- | amiga/gui.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/amiga/gui.c b/amiga/gui.c index a47ac98ac..c9bca6f19 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -793,7 +793,7 @@ static void ami_openscreenfirst(void) ami_theme_throbber_setup(); } -static void ami_gui_commandline(int *argc, char **argv) +static struct RDArgs *ami_gui_commandline(int *argc, char **argv, int *nargc, char **nargv) { int new_argc = 1; struct RDArgs *args; @@ -806,7 +806,7 @@ static void ami_gui_commandline(int *argc, char **argv) A_FORCE }; - if(*argc == 0) return; // argc==0 is started from wb + if(*argc == 0) return NULL; // argc==0 is started from wb if((args = ReadArgs(template, rarray, NULL))) { if(rarray[A_URL]) { @@ -840,22 +840,21 @@ static void ami_gui_commandline(int *argc, char **argv) const char *new_argv = malloc(sizeof(char *) * new_argc); const char **new_argvp = &new_argv; - *new_argvp = messages_get("NetSurf"); p = (char **)rarray[A_NSOPTS]; do { - new_argvp++; *new_argvp = *p; + new_argvp++; p++; } while(*p != NULL); - nsoption_commandline(&new_argc, (char **)&new_argv, NULL); + *nargc = new_argc; + *nargv = new_argv; } - - FreeArgs(args); } else { LOG("ReadArgs failed to parse command line"); } + return args; } static void ami_gui_read_tooltypes(struct WBArg *wbarg) @@ -5471,7 +5470,11 @@ int main(int argc, char** argv) return RETURN_FAIL; } + int nargc; + char *nargv; + ami_gui_read_all_tooltypes(argc, argv); + struct RDArgs *args = ami_gui_commandline(&argc, argv, &nargc, &nargv); if(current_user == NULL) { user = GetVar("user", temp, 1024, GVF_GLOBAL_ONLY); @@ -5567,7 +5570,10 @@ int main(int argc, char** argv) return RETURN_FAIL; } nsoption_read(current_user_options, NULL); - ami_gui_commandline(&argc, argv); /* calls nsoption_commandline */ + if(args != NULL) { + nsoption_commandline(&nargc, &nargv, NULL); + FreeArgs(args); + } if (ami_locate_resource(messages, "Messages") == false) { ami_misc_fatal_error("Cannot open Messages file"); |