> > of course it is, and help is always very very very very welcome :-)
> > 
> > I still haven't updated the public CVS with the version (refactoring of 
> > generated code) I'm working on, would you like to act on that one?  I 
> > can update the CVS by tomorrow.
> 
> It's OK for me.

well in the meanwhile to go further on this topic I attached the first draft 
about the new _dump function (Actually this patch includes my other request on 
garceful config file parsing ;)
? option_dump.diff
Index: c_source.h_skel
===================================================================
RCS file: /sources/gengetopt/gengetopt/src/skels/c_source.h_skel,v
retrieving revision 1.6
diff -u -d -r1.6 c_source.h_skel
--- c_source.h_skel	3 Aug 2007 15:58:23 -0000	1.6
+++ c_source.h_skel	16 Oct 2007 08:56:02 -0000
@@ -184,6 +184,25 @@
   clear_given (args_info);
 }
 
+
+int
[EMAIL PROTECTED]@_dump(FILE *outfile, struct @args_info@ *args_info)
+{
+  int i = 0;
+
+  if (!outfile)
+    {
+	  /* FIXME: error message (do we really need it?  */
+      fprintf (stderr, "%s: cannot dump options to stream\n", @package_var_name@);
+      return EXIT_FAILURE;
+    }
+
+  @file_save_loop:method@
+
+  i = EXIT_SUCCESS;
+  return i;
+}
+
 int
 @[EMAIL PROTECTED](const char *filename, struct @args_info@ *args_info)
 {
@@ -198,10 +217,9 @@
       return EXIT_FAILURE;
     }
 
-  @file_save_loop:method@
+  i = @[EMAIL PROTECTED](outfile, @args_info@);
   fclose (outfile);
 
-  i = EXIT_SUCCESS;
   return i;
 }
 
@@ -702,9 +720,11 @@
             }
         }
       else
-        { /* read up the remaining part up to a delimiter */
-          next_token = strcspn (farg, " \t\r\n#\'\"");
-          str_index += next_token;
+        { /* read up the remaining part up to end of line or comment sign */
+          char *ch = (str_index + (next_token = strcspn (farg, "\r\n#")));
+          /* remove trailing whitespaces */
+          for ( --ch; (*ch >= '\t' && *ch <= '\r') || *ch == ' '; --ch )
+            --next_token;
         }
 
       /* truncate farg at the delimiter and store it for further check */
Index: header.h_skel
===================================================================
RCS file: /sources/gengetopt/gengetopt/src/skels/header.h_skel,v
retrieving revision 1.4
diff -u -d -r1.4 header.h_skel
--- header.h_skel	3 Aug 2007 15:58:25 -0000	1.4
+++ header.h_skel	16 Oct 2007 08:56:02 -0000
@@ -93,6 +93,15 @@
   struct @[EMAIL PROTECTED] *params);
 
 /**
+ * Save the contents of the option struct into an already open FILE stream.
+ * @@param outfile the stream where to dump options
+ * @@param args_info the option struct to dump
+ * @@return 0 if everything went fine, NON 0 if an error took place
+ */
+int @[EMAIL PROTECTED](FILE *outfile,
+  struct @args_info@ *args_info);
+  
+/**
  * Save the contents of the option struct into a (text) file.
  * This file can be read by the config file parser (if generated by gengetopt)
  * @@param filename the file where to save
_______________________________________________
Help-gengetopt mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gengetopt

Reply via email to