tool: Reworked argument parsing to use --next/-:
Follow up to commit 1a9b58fcb2 to replace the : command line option
with --next and -:.
This commit is contained in:
@@ -1814,9 +1814,21 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
|
|||||||
for(i = 1, stillflags = TRUE; i < argc && !result; i++) {
|
for(i = 1, stillflags = TRUE; i < argc && !result; i++) {
|
||||||
orig_opt = argv[i];
|
orig_opt = argv[i];
|
||||||
|
|
||||||
if(curlx_strequal(":", argv[i]) &&
|
if(stillflags && ('-' == argv[i][0])) {
|
||||||
(operation->url_list && operation->url_list->url)) {
|
char *nextarg;
|
||||||
|
bool passarg;
|
||||||
|
char *flag = argv[i];
|
||||||
|
|
||||||
|
if(curlx_strequal("--", argv[i]))
|
||||||
|
/* This indicates the end of the flags and thus enables the
|
||||||
|
following (URL) argument to start with -. */
|
||||||
|
stillflags = FALSE;
|
||||||
|
else {
|
||||||
|
nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL;
|
||||||
|
|
||||||
|
result = getparameter(flag, nextarg, &passarg, config, operation);
|
||||||
|
if(result == PARAM_NEXT_OPERATION) {
|
||||||
|
if(operation->url_list && operation->url_list->url) {
|
||||||
/* Allocate the next config */
|
/* Allocate the next config */
|
||||||
operation->next = malloc(sizeof(struct OperationConfig));
|
operation->next = malloc(sizeof(struct OperationConfig));
|
||||||
if(operation->next) {
|
if(operation->next) {
|
||||||
@@ -1832,27 +1844,15 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
|
|||||||
/* Move onto the new config */
|
/* Move onto the new config */
|
||||||
operation->next->prev = operation;
|
operation->next->prev = operation;
|
||||||
operation = operation->next;
|
operation = operation->next;
|
||||||
|
|
||||||
/* Reset the flag indicator */
|
|
||||||
stillflags = TRUE;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result = PARAM_NO_MEM;
|
result = PARAM_NO_MEM;
|
||||||
}
|
}
|
||||||
else if(stillflags && ('-' == argv[i][0])) {
|
|
||||||
char *nextarg;
|
|
||||||
bool passarg;
|
|
||||||
char *flag = argv[i];
|
|
||||||
|
|
||||||
if(curlx_strequal("--", argv[i]))
|
/* Reset result to continue */
|
||||||
/* This indicates the end of the flags and thus enables the
|
result = PARAM_OK;
|
||||||
following (URL) argument to start with -. */
|
}
|
||||||
stillflags = FALSE;
|
else if(!result && passarg)
|
||||||
else {
|
|
||||||
nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL;
|
|
||||||
|
|
||||||
result = getparameter(flag, nextarg, &passarg, config, operation);
|
|
||||||
if(!result && passarg)
|
|
||||||
i++; /* we're supposed to skip this */
|
i++; /* we're supposed to skip this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ imap
|
|||||||
IMAP STORE - delete message (CUSTOMREQUEST)
|
IMAP STORE - delete message (CUSTOMREQUEST)
|
||||||
</name>
|
</name>
|
||||||
<command>
|
<command>
|
||||||
imap://%HOSTIP:%IMAPPORT/815 -X 'STORE 123 +Flags \Deleted' -u user:secret : imap://%HOSTIP:%IMAPPORT/815 -X CLOSE
|
imap://%HOSTIP:%IMAPPORT/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://%HOSTIP:%IMAPPORT/815 -X CLOSE
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ imap
|
|||||||
IMAP STORE - delete message with confirmation (CUSTOMREQUEST)
|
IMAP STORE - delete message with confirmation (CUSTOMREQUEST)
|
||||||
</name>
|
</name>
|
||||||
<command>
|
<command>
|
||||||
imap://%HOSTIP:%IMAPPORT/816 -X 'STORE 123 +Flags \Deleted' -u user:secret : imap://%HOSTIP:%IMAPPORT/816 -X EXPUNGE
|
imap://%HOSTIP:%IMAPPORT/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://%HOSTIP:%IMAPPORT/816 -X EXPUNGE
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user