tool: Added support to .curlrc for URL specific options
authorSteve Holme <steve_holme@hotmail.com>
Sun, 23 Feb 2014 18:01:36 +0000 (18:01 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Wed, 26 Feb 2014 22:05:37 +0000 (22:05 +0000)
In addition to adding support for URL specific options via the command
line with --next it is now possible to specify "next" in .curlrc.

src/tool_parsecfg.c

index da10c87..9adbe82 100644 (file)
@@ -225,7 +225,29 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
         /* we passed in a parameter that wasn't used! */
         res = PARAM_GOT_EXTRA_PARAMETER;
 
-      if(res != PARAM_OK) {
+      if(res == PARAM_NEXT_OPERATION) {
+        if(operation->url_list && operation->url_list->url) {
+          /* Allocate the next config */
+          operation->next = malloc(sizeof(struct OperationConfig));
+          if(operation->next) {
+            /* Initialise the newly created config */
+            config_init(operation->next);
+
+            /* Copy the easy handle */
+            operation->next->easy = global->easy;
+
+            /* Update the last operation pointer */
+            global->last = operation->next;
+
+            /* Move onto the new config */
+            operation->next->prev = operation;
+            operation = operation->next;
+          }
+          else
+            res = PARAM_NO_MEM;
+        }
+      }
+      else if(res != PARAM_OK) {
         /* the help request isn't really an error */
         if(!strcmp(filename, "-")) {
           filename = (char *)"<stdin>";