-ensure labels are less than 64 chars, add test for full DNS names
[oweals/gnunet.git] / src / include / gnunet_getopt_lib.h
index 8691fba2ff3e595f5b80cafed8be441ba3e7cab5..a22b3f3d3d0341936cc8ba14c33159f6bfbac179 100644 (file)
@@ -85,12 +85,11 @@ struct GNUNET_GETOPT_CommandLineProcessorContext
  * @param value argument, NULL if none was given
  * @return GNUNET_OK to continue processing other options, GNUNET_SYSERR to abort
  */
-typedef
-  int (*GNUNET_GETOPT_CommandLineOptionProcessor) (struct
-                                                   GNUNET_GETOPT_CommandLineProcessorContext
-                                                   * ctx, void *scls,
-                                                   const char *option,
-                                                   const char *value);
+typedef int (*GNUNET_GETOPT_CommandLineOptionProcessor) (struct
+                                                         GNUNET_GETOPT_CommandLineProcessorContext
+                                                         * ctx, void *scls,
+                                                         const char *option,
+                                                         const char *value);
 
 /**
  * @brief Definition of a command line option.
@@ -208,9 +207,10 @@ struct GNUNET_GETOPT_CommandLineOption
  * @return index into argv with first non-option
  *   argument, or GNUNET_SYSERR on error
  */
-int GNUNET_GETOPT_run (const char *binaryOptions,
-                       const struct GNUNET_GETOPT_CommandLineOption
-                       *allOptions, unsigned int argc, char *const *argv);
+int
+GNUNET_GETOPT_run (const char *binaryOptions,
+                   const struct GNUNET_GETOPT_CommandLineOption *allOptions,
+                   unsigned int argc, char *const *argv);
 
 
 /**
@@ -226,13 +226,31 @@ int GNUNET_GETOPT_run (const char *binaryOptions,
  * @param value actual value of the option as a string.
  * @return GNUNET_OK if parsing the value worked
  */
-int GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext
-                             *ctx, void *scls, const char *option,
-                             const char *value);
+int
+GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                         void *scls, const char *option, const char *value);
 
 
 /**
- * Set an option of type 'unsigned long long' from the command line.
+ * Set an option of type 'struct GNUNET_TIME_Relative' from the command line.
+ * 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 'struct GNUNET_TIME_Relative'.
+ *
+ * @param ctx command line processing context
+ * @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
+ */
+int
+GNUNET_GETOPT_set_relative_time (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                                void *scls, const char *option, const char *value);
+
+
+/**
+ * Set an option of type 'unsigned int' from the command line.
  * 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
@@ -244,13 +262,13 @@ int GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext
  * @param value actual value of the option as a string.
  * @return GNUNET_OK if parsing the value worked
  */
-int GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext
-                            *ctx, void *scls, const char *option,
-                            const char *value);
+int
+GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                        void *scls, const char *option, const char *value);
 
 
 /**
- * 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
@@ -261,11 +279,11 @@ int GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext
  * @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);
+int
+GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                       void *scls, const char *option, const char *value);
 
 
 /**
@@ -273,18 +291,18 @@ int GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext
  * 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)
- * @return GNUNET_OK 
+ * @return GNUNET_OK
  */
-int GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext
-                              *ctx, void *scls, const char *option,
-                              const char *value);
+int
+GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx,
+                          void *scls, const char *option, const char *value);
 
 /**
  * Set an option of type 'unsigned int' from the command line. Each
@@ -298,12 +316,11 @@ int GNUNET_GETOPT_set_string (struct GNUNET_GETOPT_CommandLineProcessorContext
  * @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,
+GNUNET_GETOPT_increment_value (struct GNUNET_GETOPT_CommandLineProcessorContext
+                               *ctx, void *scls, const char *option,
                                const char *value);
 
 
@@ -316,12 +333,12 @@ GNUNET_GETOPT_increment_value (struct
  * @param scls additional closure (points to about text)
  * @param option name of the option
  * @param value not used (NULL)
- * @return GNUNET_SYSERR (do not continue)
+ * @return GNUNET_NO (do not continue, not an error)
  */
-int GNUNET_GETOPT_format_help_ (struct
-                                GNUNET_GETOPT_CommandLineProcessorContext
-                                *ctx, void *scls, const char *option,
-                                const char *value);
+int
+GNUNET_GETOPT_format_help_ (struct GNUNET_GETOPT_CommandLineProcessorContext
+                            *ctx, void *scls, const char *option,
+                            const char *value);
 
 /**
  * Print out program version (implements --version).
@@ -330,12 +347,12 @@ int GNUNET_GETOPT_format_help_ (struct
  * @param scls additional closure (points to version string)
  * @param option name of the option
  * @param value not used (NULL)
- * @return GNUNET_SYSERR (do not continue)
+ * @return GNUNET_NO (do not continue, not an error)
  */
-int GNUNET_GETOPT_print_version_ (struct
-                                  GNUNET_GETOPT_CommandLineProcessorContext
-                                  *ctx, void *scls, const char *option,
-                                  const char *value);
+int
+GNUNET_GETOPT_print_version_ (struct GNUNET_GETOPT_CommandLineProcessorContext
+                              *ctx, void *scls, const char *option,
+                              const char *value);
 
 #if 0                           /* keep Emacsens' auto-indent happy */
 {