aboutsummaryrefslogtreecommitdiffstats
path: root/doc/examples/show-group-options.c
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/show-group-options.c')
-rw-r--r--doc/examples/show-group-options.c55
1 files changed, 52 insertions, 3 deletions
diff --git a/doc/examples/show-group-options.c b/doc/examples/show-group-options.c
index aee962de..92c37549 100644
--- a/doc/examples/show-group-options.c
+++ b/doc/examples/show-group-options.c
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <ctype.h>
#include <locale.h>
#include <gpgme.h>
@@ -41,6 +42,55 @@
static void
+print_one_alias (const char *string)
+{
+ const char *value, *s;
+ size_t namelen;
+ int first = 1;
+ int any = 0;
+
+ while (isascii (*string) && isspace (*string))
+ string++;
+
+ value = strchr (string, '=');
+ if (value)
+ {
+ for (s=value-1; s > string ; s--)
+ if (!isascii (*s) || !isspace (*s))
+ break;
+ }
+ if (!value || s == value )
+ {
+ printf ("# error: invalid group definition!\n");
+ return;
+ }
+ value++;
+ namelen = (s + 1 - string);
+ printf ("%.*s: ", (int)namelen, string);
+
+ for (;;)
+ {
+ while (isascii (*value) && isspace (*value))
+ value++;
+ if (!*value)
+ break;
+ for (s = value; *s && !(isascii (*s) && isspace (*s)); s++)
+ ;
+ printf ("%s%*s%.*s",
+ first? "":",\n",
+ any? (int)namelen+2:0, "",
+ (int)(s-value), value);
+ first = 0;
+ any = 1;
+ value = s;
+ }
+ putchar ('\n');
+}
+
+
+
+
+static void
print_gpgconf_string (const char *cname, const char *name)
{
gpg_error_t err;
@@ -65,9 +115,8 @@ print_gpgconf_string (const char *cname, const char *name)
{
for (value = opt->value; value; value = value->next)
{
- if (opt->alt_type == GPGME_CONF_STRING)
- printf ("%s/%s -> `%s'\n",
- cname,name, value->value.string);
+ if (opt->type == GPGME_CONF_ALIAS_LIST)
+ print_one_alias (value->value.string);
}
break;
}