1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

common: First take on handling Unicode command line args.

* common/w32-misc.c: New.
* common/t-w32-cmdline.c: New.
* common/init.c: Include w32help.h.
(prepare_w32_commandline): New.
(_init_common_subsystems) [W32]: Call prepare_w32_commandline.

* common/Makefile.am (common_sources) [W32]: Add w32-misc.c
(module_tests): Add t-w32-cmdline
(t_w32_cmdline_LDADD): New.
--

The rules for the command line parser are not cleary specified - if at
all.  See the comment in t-w32-cmdline.c.

We can't use the mingw version because that would require to change
all argv handling to be wchar_t and that only for Windows.  That would
be too ugly.  Parsing the command line into argv by us is much easier
and we can do that only if needed - i.e. if globing is required (we
are prepared for this) or a non-ASCII character has been encountered.
This way we keep things stable and only fix the currently not working
Unicode problem.

GnuPG-bug-id: 4398
This commit is contained in:
Werner Koch 2021-03-04 10:16:48 +01:00
parent be2da24456
commit deb6c94362
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
5 changed files with 459 additions and 6 deletions

View file

@ -30,6 +30,13 @@
#ifndef GNUPG_COMMON_W32HELP_H
#define GNUPG_COMMON_W32HELP_H
/*-- w32-misc.c --*/
/* This module is also part of the Unix tests. */
char **w32_parse_commandline (char *cmdline, int globing, int *r_argc);
#ifdef HAVE_W32_SYSTEM
/*-- w32-reg.c --*/