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

common: Improve helpfile.c to provide a generic template API.

* common/util.h (GET_TEMPLATE_CURRENT_LOCALE): New.
(GET_TEMPLATE_SUBST_ENVVARS): New.
(GET_TEMPLATE_CRLF): New.
* common/helpfile.c (findkey_fname): Add arg flags and terminate line
with CRLF if requested.
(findkey_locale): Replace arg only_current_locale by flags and add arg
domain.
(gnupg_get_help_string): Factor all code out to ...
(gnupg_get_template): new.  Add arg domain.  Handle SUBST flags.  Do
not trim tralins spaces with the CRLF flag.

* common/t-helpfile.c (main): Require domain name and add two options.
This commit is contained in:
Werner Koch 2025-05-28 15:19:19 +02:00
parent ef5fa47ee8
commit 8d837279bc
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
3 changed files with 83 additions and 31 deletions

View file

@ -39,6 +39,7 @@ int
main (int argc, char **argv)
{
char *result;
unsigned int flags = 0;
if (argc)
{ argc--; argv++; }
@ -48,17 +49,35 @@ main (int argc, char **argv)
verbose = 1;
argc--; argv++;
}
if (argc && !strcmp (argv[0], "--env"))
{
flags |= GET_TEMPLATE_SUBST_ENVVARS;
argc--; argv++;
}
if (argc && !strcmp (argv[0], "--crlf"))
{
flags |= GET_TEMPLATE_CRLF;
argc--; argv++;
}
if (argc != 2)
{
fprintf (stderr, "Usage: t-helpfile [--env] [--crlf] domain key\n");
exit (2);
}
result = gnupg_get_help_string (argc? argv[0]:NULL, 0);
result = gnupg_get_template (argv[0], argv[1], flags);
if (!result)
{
fprintf (stderr,
"Error: nothing found for '%s'\n", argc?argv[0]:"(null)");
"Error: nothing found for '%s' in domain '%s'\n",
argv[1], argv[0]);
errcount++;
}
else
{
printf ("key '%s' result='%s'\n", argc?argv[0]:"(null)", result);
printf ("domain '%s' key '%s' result='%s'\n",
argv[0], argv[1], result);
xfree (result);
}