mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
Make gpgconf --list-components also print the name of the executable program.
This commit is contained in:
parent
8464627bf4
commit
273433d70d
@ -421,7 +421,7 @@ tabulator sheet per component.
|
||||
The command argument @code{--list-components} lists all available
|
||||
components, one per line. The format of each line is:
|
||||
|
||||
@code{@var{name}:@var{description}}
|
||||
@code{@var{name}:@var{description}:@var{pgmname}:}
|
||||
|
||||
@table @var
|
||||
@item name
|
||||
@ -435,16 +435,21 @@ The @emph{string} in this field contains a human-readable description
|
||||
of the component. It can be displayed to the user of the GUI for
|
||||
informational purposes. It is @emph{percent-escaped} and
|
||||
@emph{localized}.
|
||||
|
||||
@item pgmname
|
||||
The @emph{string} in this field contains the absolute name of the
|
||||
program's file. It can be used to unambiguously invoke that program.
|
||||
It is @emph{percent-escaped}.
|
||||
@end table
|
||||
|
||||
Example:
|
||||
@example
|
||||
$ gpgconf --list-components
|
||||
gpg:GPG for OpenPGP
|
||||
gpg-agent:GPG Agent
|
||||
scdaemon:Smartcard Daemon
|
||||
gpgsm:GPG for S/MIME
|
||||
dirmngr:Directory Manager
|
||||
gpg:GPG for OpenPGP:/usr/local/bin/gpg2:
|
||||
gpg-agent:GPG Agent:/usr/local/bin/gpg-agent:
|
||||
scdaemon:Smartcard Daemon:/usr/local/bin/scdaemon:
|
||||
gpgsm:GPG for S/MIME:/usr/local/bin/gpgsm:
|
||||
dirmngr:Directory Manager:/usr/local/bin/dirmngr:
|
||||
@end example
|
||||
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2007-08-31 Werner Koch <wk@g10code.com>
|
||||
|
||||
* gpgconf-comp.c (gc_component_list_components): List the programs
|
||||
names.
|
||||
|
||||
2007-08-29 Werner Koch <wk@g10code.com>
|
||||
|
||||
* gpgconf.c: New command --check-programs.
|
||||
|
@ -1142,16 +1142,43 @@ percent_deescape (const char *src)
|
||||
void
|
||||
gc_component_list_components (FILE *out)
|
||||
{
|
||||
gc_component_t idx;
|
||||
gc_component_t component;
|
||||
gc_option_t *option;
|
||||
gc_backend_t backend;
|
||||
int backend_seen[GC_BACKEND_NR];
|
||||
const char *desc;
|
||||
const char *pgmname;
|
||||
|
||||
for (idx = 0; idx < GC_COMPONENT_NR; idx++)
|
||||
for (component = 0; component < GC_COMPONENT_NR; component++)
|
||||
{
|
||||
if (gc_component[idx].options)
|
||||
option = gc_component[component].options;
|
||||
if (option)
|
||||
{
|
||||
const char *desc = gc_component[idx].desc;
|
||||
desc = my_dgettext (gc_component[idx].desc_domain, desc);
|
||||
fprintf (out, "%s:%s\n",
|
||||
gc_component[idx].name, my_percent_escape (desc));
|
||||
for (backend = 0; backend < GC_BACKEND_NR; backend++)
|
||||
backend_seen[backend] = 0;
|
||||
|
||||
pgmname = "";
|
||||
for (; option && option->name; option++)
|
||||
{
|
||||
if ((option->flags & GC_OPT_FLAG_GROUP))
|
||||
continue;
|
||||
backend = option->backend;
|
||||
if (backend_seen[backend])
|
||||
continue;
|
||||
backend_seen[backend] = 1;
|
||||
assert (backend != GC_BACKEND_ANY);
|
||||
if (gc_backend[backend].program
|
||||
&& !gc_backend[backend].module_name)
|
||||
continue;
|
||||
pgmname = gnupg_module_name (gc_backend[backend].module_name);
|
||||
break;
|
||||
}
|
||||
|
||||
desc = gc_component[component].desc;
|
||||
desc = my_dgettext (gc_component[component].desc_domain, desc);
|
||||
fprintf (out, "%s:%s:",
|
||||
gc_component[component].name, my_percent_escape (desc));
|
||||
fprintf (out, "%s:\n", my_percent_escape (pgmname));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user