tool_getparam: Added global config to getparameter()
authorSteve Holme <steve_holme@hotmail.com>
Sun, 23 Feb 2014 16:04:39 +0000 (16:04 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Tue, 25 Feb 2014 19:38:17 +0000 (19:38 +0000)
In preparation for parsing global options added the GlobalConfig
structure to the getparameter() function.

src/tool_getparam.c
src/tool_getparam.h
src/tool_operate.c
src/tool_parsecfg.c
src/tool_parsecfg.h

index c64169c..701f43d 100644 (file)
@@ -373,6 +373,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
                             char *nextarg, /* NULL if unset */
                             bool *usedarg, /* set to TRUE if the arg
                                               has been used */
+                            struct GlobalConfig *global,
                             struct OperationConfig *config)
 {
   char letter;
@@ -1433,7 +1434,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
       config->insecure_ok = toggle;
       break;
     case 'K': /* parse config file */
-      if(parseconfig(nextarg, config))
+      if(parseconfig(nextarg, global))
         warnf(config, "error trying read config from the '%s' file\n",
               nextarg);
       break;
@@ -1847,7 +1848,7 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
       else {
         nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL;
 
-        result = getparameter(flag, nextarg, &passarg, operation);
+        result = getparameter(flag, nextarg, &passarg, config, operation);
         if(!result && passarg)
           i++; /* we're supposed to skip this */
       }
@@ -1856,7 +1857,7 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
       bool used;
 
       /* Just add the URL please */
-      result = getparameter((char *)"--url", argv[i], &used, operation);
+      result = getparameter((char *)"--url", argv[i], &used, config, operation);
     }
   }
 
index a13ce6d..9ecd354 100644 (file)
@@ -44,10 +44,9 @@ typedef enum {
 struct GlobalConfig;
 struct OperationConfig;
 
-ParameterError getparameter(char *flag,
-                            char *nextarg,
-                            bool *usedarg,
-                            struct OperationConfig *config);
+ParameterError getparameter(char *flag, char *nextarg, bool *usedarg,
+                            struct GlobalConfig *global,
+                            struct OperationConfig *operation);
 
 #ifdef UNITTESTS
 void parse_cert_parameter(const char *cert_parameter,
index 6458c11..2fb9453 100644 (file)
@@ -1789,7 +1789,7 @@ CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[])
 
   /* Parse .curlrc if necessary */
   if((argc == 1) || (!curlx_strequal(argv[1], "-q"))) {
-    parseconfig(NULL, config->first); /* ignore possible failure */
+    parseconfig(NULL, config); /* ignore possible failure */
 
     /* If we had no arguments then make sure a url was specified in .curlrc */
     if((argc < 2) && (!config->first->url_list)) {
index 69bacbf..da10c87 100644 (file)
@@ -44,7 +44,7 @@ static const char *unslashquote(const char *line, char *param);
 static char *my_get_line(FILE *fp);
 
 /* return 0 on everything-is-fine, and non-zero otherwise */
-int parseconfig(const char *filename, struct OperationConfig *config)
+int parseconfig(const char *filename, struct GlobalConfig *global)
 {
   int res;
   FILE *file;
@@ -52,6 +52,7 @@ int parseconfig(const char *filename, struct OperationConfig *config)
   bool usedarg;
   char *home;
   int rc = 0;
+  struct OperationConfig *operation = global->first;
 
   if(!filename || !*filename) {
     /* NULL or no file name attempts to load .curlrc from the homedir! */
@@ -201,8 +202,8 @@ int parseconfig(const char *filename, struct OperationConfig *config)
         case '#': /* comment */
           break;
         default:
-          warnf(config, "%s:%d: warning: '%s' uses unquoted white space in the"
-                " line that may cause side-effects!\n",
+          warnf(operation, "%s:%d: warning: '%s' uses unquoted white space in"
+                " the line that may cause side-effects!\n",
                 filename, lineno, option);
         }
       }
@@ -218,7 +219,7 @@ int parseconfig(const char *filename, struct OperationConfig *config)
 #ifdef DEBUG_CONFIG
       fprintf(stderr, "PARAM: \"%s\"\n",(param ? param : "(null)"));
 #endif
-      res = getparameter(option, param, &usedarg, config);
+      res = getparameter(option, param, &usedarg, global, operation);
 
       if(param && *param && !usedarg)
         /* we passed in a parameter that wasn't used! */
@@ -234,7 +235,7 @@ int parseconfig(const char *filename, struct OperationConfig *config)
            res != PARAM_VERSION_INFO_REQUESTED &&
            res != PARAM_ENGINES_REQUESTED) {
           const char *reason = param2text(res);
-          warnf(config, "%s:%d: warning: '%s' %s\n",
+          warnf(operation, "%s:%d: warning: '%s' %s\n",
                 filename, lineno, option, reason);
         }
       }
index af9f50b..c3b19d5 100644 (file)
@@ -23,7 +23,7 @@
  ***************************************************************************/
 #include "tool_setup.h"
 
-int parseconfig(const char *filename, struct OperationConfig *config);
+int parseconfig(const char *filename, struct GlobalConfig *config);
 
 #endif /* HEADER_CURL_TOOL_PARSECFG_H */