X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Finit.c;h=277d4a74b5c26c5f95129bd3ed5cd9313edea07f;hp=db67868cd9f4972a4b9d45c3107072a871460f3b;hb=2f6aa1d7417df1dfc58597777686fbd77179b9fd;hpb=b5c9573ad6396acf3e4e33d0ae0db65b413b0d66 diff --git a/src/init.c b/src/init.c index db67868c..277d4a74 100644 --- a/src/init.c +++ b/src/init.c @@ -1,6 +1,7 @@ /* Reading/parsing the initialization file. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, + Inc. This file is part of GNU Wget. @@ -32,9 +33,8 @@ as that of the covered work. */ #include #include -#ifdef HAVE_UNISTD_H -# include -#endif +#include +#include #include #include #include @@ -136,6 +136,7 @@ static const struct { { "certificatetype", &opt.cert_type, cmd_cert_type }, { "checkcertificate", &opt.check_cert, cmd_boolean }, #endif + { "chooseconfig", &opt.choose_config, cmd_file }, { "connecttimeout", &opt.connect_timeout, cmd_time }, { "contentdisposition", &opt.content_disposition, cmd_boolean }, { "continue", &opt.always_rest, cmd_boolean }, @@ -291,7 +292,7 @@ command_by_name (const char *cmdname) } /* Reset the variables to default values. */ -static void +void defaults (void) { char *tmp; @@ -431,7 +432,7 @@ wgetrc_env_file_name (void) char * wgetrc_user_file_name (void) { - char *home = home_dir (); + char *home; char *file = NULL; /* If that failed, try $HOME/.wgetrc (or equivalent). */ @@ -510,7 +511,7 @@ static bool setval_internal_tilde (int, const char *, const char *); /* Initialize variables from a wgetrc file. Returns zero (failure) if there were errors in the file. */ -static bool +bool run_wgetrc (const char *file) { FILE *fp; @@ -574,10 +575,7 @@ void initialize (void) { char *file, *env_sysrc; - int ok = true; - - /* Load the hard-coded defaults. */ - defaults (); + bool ok = true; /* Run a non-standard system rc file when the according environment variable has been set. For internal testing purposes only! */ @@ -589,6 +587,15 @@ initialize (void) else if (file_exists_p (SYSTEM_WGETRC)) ok &= run_wgetrc (SYSTEM_WGETRC); #endif + /* If there are any problems parsing the system wgetrc file, tell + the user and exit */ + if (! ok) + { + fprintf (stderr, _("\ +Parsing system wgetrc file failed, please check '%s'. \ +Or specify a different file using --config\n"), SYSTEM_WGETRC); + exit (2); + } /* Override it with your own, if one exists. */ file = wgetrc_file_name (); if (!file) @@ -1578,6 +1585,7 @@ cleanup (void) extern acc_t *netrc_list; free_netrc (netrc_list); } + xfree_null (opt.choose_config); xfree_null (opt.lfilename); xfree_null (opt.dir_prefix); xfree_null (opt.input_filename);