#include "gnunet_common.h"
#include "gnunet_getopt_lib.h"
+#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+
/**
* Print out program version (implements --version).
*/
int
GNUNET_GETOPT_print_version_ (struct GNUNET_GETOPT_CommandLineProcessorContext
- *ctx, void *scls, const char *option,
- const char *value)
+ *ctx, void *scls, const char *option,
+ const char *value)
{
const char *version = scls;
*/
int
GNUNET_GETOPT_format_help_ (struct GNUNET_GETOPT_CommandLineProcessorContext
- *ctx, void *scls, const char *option,
- const char *value)
+ *ctx, void *scls, const char *option,
+ const char *value)
{
const char *about = scls;
size_t slen;
printf ("%s\n%s\n", ctx->binaryOptions, gettext (about));
printf (_
- ("Arguments mandatory for long options are also mandatory for short options.\n"));
+ ("Arguments mandatory for long options are also mandatory for short options.\n"));
i = 0;
opt = ctx->allOptions;
while (opt[i].description != NULL)
{
if (opt[i].shortName == '\0')
- printf (" ");
+ printf (" ");
else
- printf (" -%c, ", opt[i].shortName);
+ printf (" -%c, ", opt[i].shortName);
printf ("--%s", opt[i].name);
slen = 8 + strlen (opt[i].name);
if (opt[i].argumentHelp != NULL)
- {
- printf ("=%s", opt[i].argumentHelp);
- slen += 1 + strlen (opt[i].argumentHelp);
- }
+ {
+ printf ("=%s", opt[i].argumentHelp);
+ slen += 1 + strlen (opt[i].argumentHelp);
+ }
if (slen > BORDER)
- {
- printf ("\n%*s", BORDER, "");
- slen = BORDER;
- }
+ {
+ printf ("\n%*s", BORDER, "");
+ slen = BORDER;
+ }
if (slen < BORDER)
- {
- printf ("%*s", (int) (BORDER - slen), "");
- slen = BORDER;
- }
+ {
+ printf ("%*s", (int) (BORDER - slen), "");
+ slen = BORDER;
+ }
if (0 < strlen (opt[i].description))
trans = gettext (opt[i].description);
else
p = 0;
OUTER:
while (ml - p > 78 - slen)
- {
- for (j = p + 78 - slen; j > p; j--)
- {
- if (isspace ( (unsigned char) trans[j]))
- {
- scp = GNUNET_malloc (j - p + 1);
- memcpy (scp, &trans[p], j - p);
- scp[j - p] = '\0';
- printf ("%s\n%*s", scp, BORDER + 2, "");
- GNUNET_free (scp);
- p = j + 1;
- slen = BORDER + 2;
- goto OUTER;
- }
- }
- /* could not find space to break line */
- scp = GNUNET_malloc (78 - slen + 1);
- memcpy (scp, &trans[p], 78 - slen);
- scp[78 - slen] = '\0';
- printf ("%s\n%*s", scp, BORDER + 2, "");
- GNUNET_free (scp);
- slen = BORDER + 2;
- p = p + 78 - slen;
- }
+ {
+ for (j = p + 78 - slen; j > p; j--)
+ {
+ if (isspace ((unsigned char) trans[j]))
+ {
+ scp = GNUNET_malloc (j - p + 1);
+ memcpy (scp, &trans[p], j - p);
+ scp[j - p] = '\0';
+ printf ("%s\n%*s", scp, BORDER + 2, "");
+ GNUNET_free (scp);
+ p = j + 1;
+ slen = BORDER + 2;
+ goto OUTER;
+ }
+ }
+ /* could not find space to break line */
+ scp = GNUNET_malloc (78 - slen + 1);
+ memcpy (scp, &trans[p], 78 - slen);
+ scp[78 - slen] = '\0';
+ printf ("%s\n%*s", scp, BORDER + 2, "");
+ GNUNET_free (scp);
+ slen = BORDER + 2;
+ p = p + 78 - slen;
+ }
/* print rest */
if (p < ml)
- printf ("%s\n", &trans[p]);
+ printf ("%s\n", &trans[p]);
if (strlen (trans) == 0)
- printf ("\n");
+ printf ("\n");
i++;
}
printf ("Report bugs to gnunet-developers@gnu.org.\n"
- "GNUnet home page: http://www.gnu.org/software/gnunet/\n"
- "General help using GNU software: http://www.gnu.org/gethelp/\n");
+ "GNUnet home page: http://www.gnu.org/software/gnunet/\n"
+ "General help using GNU software: http://www.gnu.org/gethelp/\n");
return GNUNET_SYSERR;
}
* @param scls additional closure (will point to the 'int')
* @param option name of the option
* @param value not used (NULL)
- * @return GNUNET_OK
+ * @return GNUNET_OK
*/
int
GNUNET_GETOPT_increment_value (struct
- GNUNET_GETOPT_CommandLineProcessorContext *ctx,
- void *scls, const char *option,
- const char *value)
+ GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+ void *scls, const char *option,
+ const char *value)
{
int *val = scls;
+
(*val)++;
return GNUNET_OK;
}
/**
- * Set an option of type 'int' from the command line to 1 if the
+ * Set an option of type 'int' from the command line to 1 if the
* given option is present.
* A pointer to this function should be passed as part of the
* 'struct GNUNET_GETOPT_CommandLineOption' array to initialize options
* @param scls additional closure (will point to the 'int')
* @param option name of the option
* @param value not used (NULL)
- * @return GNUNET_OK
+ * @return GNUNET_OK
*/
int
GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
- void *scls, const char *option, const char *value)
+ void *scls, const char *option, const char *value)
{
int *val = scls;
+
*val = 1;
return GNUNET_OK;
}
* which will be allocated)
* @param option name of the option
* @param value actual value of the option (a string)
- * @return GNUNET_OK
+ * @return GNUNET_OK
*/
int
GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext
- *ctx, void *scls, const char *option,
- const char *value)
+ *ctx, void *scls, const char *option,
+ const char *value)
{
char **val = scls;
GNUNET_assert (value != NULL);
- if (NULL != *val)
- GNUNET_free (*val);
+ GNUNET_free_non_null (*val);
*val = GNUNET_strdup (value);
return GNUNET_OK;
}
*/
int
GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext
- *ctx, void *scls, const char *option,
- const char *value)
+ *ctx, void *scls, const char *option,
+ const char *value)
{
unsigned long long *val = scls;
+
if (1 != SSCANF (value, "%llu", val))
{
- fprintf (stderr,
- _("You must pass a number to the `%s' option.\n"), option);
+ fprintf (stderr, _("You must pass a number to the `%s' option.\n"),
+ option);
return GNUNET_SYSERR;
}
return GNUNET_OK;
*/
int
GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
- void *scls, const char *option, const char *value)
+ void *scls, const char *option, const char *value)
{
unsigned int *val = scls;
if (1 != SSCANF (value, "%u", val))
{
- fprintf (stderr,
- _("You must pass a number to the `%s' option.\n"), option);
+ fprintf (stderr, _("You must pass a number to the `%s' option.\n"),
+ option);
return GNUNET_SYSERR;
}
return GNUNET_OK;