mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
common,w32: Implement globing of command line args.
* common/w32-misc.c [W32]: Include windows.h (struct add_arg_s): New. (add_arg): New. (glob_arg): New. (parse_cmdstring): Add arg argvflags and set it. (w32_parse_commandline): Add arg r_itemsalloced. Add globing. * common/init.c (prepare_w32_commandline): Mark glob created items as leaked. * common/t-w32-cmdline.c : Include windows.h (test_all): Add simple glob test for Unix. (main): Add manual test mode for Windows. -- GnuPG-bug-id: 4398
This commit is contained in:
parent
20c6007686
commit
089c943967
4 changed files with 325 additions and 18 deletions
|
@ -318,7 +318,7 @@ prepare_w32_commandline (int *r_argc, char ***r_argv)
|
|||
int argc;
|
||||
char **argv;
|
||||
const char *s;
|
||||
int globing;
|
||||
int i, globing, itemsalloced;
|
||||
|
||||
s = gpgrt_strusage (95);
|
||||
globing = (s && *s == '1');
|
||||
|
@ -349,13 +349,18 @@ prepare_w32_commandline (int *r_argc, char ***r_argv)
|
|||
}
|
||||
gpgrt_annotate_leaked_object (cmdline);
|
||||
|
||||
argv = w32_parse_commandline (cmdline, globing, &argc);
|
||||
argv = w32_parse_commandline (cmdline, globing, &argc, &itemsalloced);
|
||||
if (!argv)
|
||||
{
|
||||
log_error ("parsing command line failed: %s\n", "internal error");
|
||||
return; /* Ooops. */
|
||||
}
|
||||
gpgrt_annotate_leaked_object (argv);
|
||||
if (itemsalloced)
|
||||
{
|
||||
for (i=0; i < argc; i++)
|
||||
gpgrt_annotate_leaked_object (argv[i]);
|
||||
}
|
||||
*r_argv = argv;
|
||||
*r_argc = argc;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue