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:
parent
ef5fa47ee8
commit
8d837279bc
3 changed files with 83 additions and 31 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue