-fix compiler warning
[oweals/gnunet.git] / src / util / getopt_helpers.c
index 1e3b05cb560996ef67e450fd60ab7588c6ef1955..e744c2fada27889570a2b5ae03570e80a3e33d1b 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet
 /*
      This file is part of GNUnet
-     (C) 2006, 2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2006, 2011 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
 */
 
 /**
@@ -23,9 +23,7 @@
  * @brief implements command line that sets option
  * @author Christian Grothoff
  */
  * @brief implements command line that sets option
  * @author Christian Grothoff
  */
-
 #include "platform.h"
 #include "platform.h"
-#include "gnunet_common.h"
 #include "gnunet_util_lib.h"
 
 #define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
 #include "gnunet_util_lib.h"
 
 #define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
  * @param scls additional closure (points to version string)
  * @param option name of the option
  * @param value not used (NULL)
  * @param scls additional closure (points to version string)
  * @param option name of the option
  * @param value not used (NULL)
- * @return GNUNET_NO (do not continue, not an error)
+ * @return #GNUNET_NO (do not continue, not an error)
  */
 int
  */
 int
-GNUNET_GETOPT_print_version_ (struct GNUNET_GETOPT_CommandLineProcessorContext
-                              *ctx, void *scls, const char *option,
+GNUNET_GETOPT_print_version_ (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                             void *scls,
+                             const char *option,
                               const char *value)
 {
   const char *version = scls;
 
                               const char *value)
 {
   const char *version = scls;
 
-  printf ("%s v%s\n", ctx->binaryName, version);
+  printf ("%s v%s\n",
+         ctx->binaryName,
+         version);
   return GNUNET_NO;
 }
 
 
   return GNUNET_NO;
 }
 
 
-
+/**
+ * At what offset does the help text start?
+ */
 #define BORDER 29
 
 /**
 #define BORDER 29
 
 /**
@@ -62,11 +65,12 @@ GNUNET_GETOPT_print_version_ (struct GNUNET_GETOPT_CommandLineProcessorContext
  * @param scls additional closure (points to about text)
  * @param option name of the option
  * @param value not used (NULL)
  * @param scls additional closure (points to about text)
  * @param option name of the option
  * @param value not used (NULL)
- * @return GNUNET_NO (do not continue, not an error)
+ * @return #GNUNET_NO (do not continue, not an error)
  */
 int
  */
 int
-GNUNET_GETOPT_format_help_ (struct GNUNET_GETOPT_CommandLineProcessorContext
-                            *ctx, void *scls, const char *option,
+GNUNET_GETOPT_format_help_ (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                           void *scls,
+                           const char *option,
                             const char *value)
 {
   const char *about = scls;
                             const char *value)
 {
   const char *about = scls;
@@ -168,7 +172,7 @@ OUTER:
  * @param scls additional closure (will point to the 'int')
  * @param option name of the option
  * @param value not used (NULL)
  * @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
  */
 int
 GNUNET_GETOPT_increment_value (struct GNUNET_GETOPT_CommandLineProcessorContext
@@ -194,7 +198,7 @@ GNUNET_GETOPT_increment_value (struct GNUNET_GETOPT_CommandLineProcessorContext
  * @param scls additional closure (will point to the 'int')
  * @param option name of the option
  * @param value not used (NULL)
  * @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,
  */
 int
 GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
@@ -212,14 +216,14 @@ GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  * A pointer to this function should be passed as part of the
  * 'struct GNUNET_GETOPT_CommandLineOption' array to initialize options
  * of this type.  It should be followed by a pointer to a value of
  * A pointer to this function should be passed as part of the
  * 'struct GNUNET_GETOPT_CommandLineOption' array to initialize options
  * of this type.  It should be followed by a pointer to a value of
- * type 'char *'.
+ * type 'char *', which will be allocated with the requested string.
  *
  * @param ctx command line processing context
  * @param scls additional closure (will point to the 'char *',
  *             which will be allocated)
  * @param option name of the option
  * @param value actual value of the option (a string)
  *
  * @param ctx command line processing context
  * @param scls additional closure (will point to the 'char *',
  *             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,
  */
 int
 GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
@@ -234,6 +238,18 @@ GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
 }
 
 
 }
 
 
+int
+GNUNET_GETOPT_set_filename (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                            void *scls, const char *option, const char *value)
+{
+  char **val = scls;
+
+  GNUNET_assert (value != NULL);
+  GNUNET_free_non_null (*val);
+  *val = GNUNET_STRINGS_filename_expand (value);
+  return GNUNET_OK;
+}
+
 /**
  * Set an option of type 'unsigned long long' from the command line.
  * A pointer to this function should be passed as part of the
 /**
  * Set an option of type 'unsigned long long' from the command line.
  * A pointer to this function should be passed as part of the
@@ -245,7 +261,7 @@ GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  * @param scls additional closure (will point to the 'unsigned long long')
  * @param option name of the option
  * @param value actual value of the option as a string.
  * @param scls additional closure (will point to the 'unsigned long long')
  * @param option name of the option
  * @param value actual value of the option as a string.
- * @return GNUNET_OK if parsing the value worked
+ * @return #GNUNET_OK if parsing the value worked
  */
 int
 GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  */
 int
 GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
@@ -273,7 +289,7 @@ GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  * @param scls additional closure (will point to the 'struct GNUNET_TIME_Relative')
  * @param option name of the option
  * @param value actual value of the option as a string.
  * @param scls additional closure (will point to the 'struct GNUNET_TIME_Relative')
  * @param option name of the option
  * @param value actual value of the option as a string.
- * @return GNUNET_OK if parsing the value worked
+ * @return #GNUNET_OK if parsing the value worked
  */
 int
 GNUNET_GETOPT_set_relative_time (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  */
 int
 GNUNET_GETOPT_set_relative_time (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
@@ -303,7 +319,7 @@ GNUNET_GETOPT_set_relative_time (struct GNUNET_GETOPT_CommandLineProcessorContex
  * @param scls additional closure (will point to the 'unsigned int')
  * @param option name of the option
  * @param value actual value of the option as a string.
  * @param scls additional closure (will point to the 'unsigned int')
  * @param option name of the option
  * @param value actual value of the option as a string.
- * @return GNUNET_OK if parsing the value worked
+ * @return #GNUNET_OK if parsing the value worked
  */
 int
 GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
  */
 int
 GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,