On Sat, Jun 16, 2007 at 07:23:09PM +0200, Michael Geng wrote: > On Thu, Jun 07, 2007 at 02:44:38PM +0200, Jim Meyering wrote: > > However, before I even consider it seriously, it'll need > > some improvements: > > > > - it must detect any and all write failures[*] > > I just added a new release of genparse > (http://sourceforge.net/project/showfiles.php?group_id=4341&package_id=4354&release_id=516584) > which now also checks file write and close operations, not only > file open operations as it was before. > > > - packaging so that I can run ./configure && make && make check, and > > if I don't happen to have cppunit infrastructure, gcj or something > > similar, it should tell me about it directly, rather than causing > > harder-to-diagnose build failures. > > I went through all these tools and updated configure.ac (and related files) > such that you get a warning if something is missing but you can still > compile genparse. For example if you don't have gcj installed then it > automatically removes the java example from the list of build targets. > It now checks for cunit, cppunit, junit, gcj, doxygen, texi2html, texi2pdf > and man2html. > > > - one of the generated .c files I looked at calls strdup but doesn't > > check for a NULL return value or (less important) attempt to avoid > > the leak when the corresponding --backup=S option appears twice or > > more. > > I'm working on that and I'll let you know when this is finished.
I again released a new version of genparse (0.6.5) which doesn't allocate any memory on the heap any more because I think this is a better concept. So it doesn't generate any calls to strdup() or malloc() any more. As a consequence the parser function changed from struct arg_t *Cmdline(int argc, char *argv[]) to void Cmdline(struct arg_t *my_args, int argc, char *argv[]). See the Genparse examples page (http://genparse.sourceforge.net/examples.html) which is also updated. > > > - not exactly essential, but highly recommended: it should work > > with the latest autoconf and automake > > I'm using autoconf version 2.59 and automake 1.9.5. Aditionally I renamed > configure.in to configure.ac which appears to be the standard today and > removed acconfig.h because it appears to be deprecated. This might have > produced some warnings before. > > > [*] with genparse-0.6.3, I get this: > > > > $ strace -o log -e write ./genparse -o /full/tmp/foo ../examples/ls.gp \ > > && echo exit status 0 > > creating /full/tmp/foo.h...done > > creating /full/tmp/foo.c...done > > exit status 0 > > $ tail -2 log > > write(3, "/*******************************"..., 80) = -1 ENOSPC (No space > > left on device) > > write(1, "creating /full/tmp/foo.c...done\n", 32) = 32 > > > > The two files it claims to have created are both empty, > > and genparse exited successfully. > > This means genparse is not detecting write or close failures. > > > > Note that in the example above, /full/tmp is a full file system that still > > has free inodes, so open can create new files, but writes always fail. > > I could verify this behavior and I hope it's fixed now. Now it tells you > that it can't write to the file and returns with a non zero exit status. > > Thanks again for your input, > Michael > > > _______________________________________________ > Bug-coreutils mailing list > Bug-coreutils@gnu.org > http://lists.gnu.org/mailman/listinfo/bug-coreutils _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils