|
From: | Lorenzo Bettini |
Subject: | Re: [help-gengetopt] Re: Gengetopt 2.21 enhancement suggestions |
Date: | Wed, 17 Oct 2007 12:41:25 +0200 |
User-agent: | Mozilla-Thunderbird 2.0.0.4 (X11/20070828) |
J. David Bryan wrote:
Hi Lorenzo, On 15 Oct 2007 at 14:49, Lorenzo Bettini wrote:OK, but, in case, how can someone understand if there's actually an error...The attached "gengetopt-2.21-enh-2.diff" suggests an implementation.By checking the return value from the parser. :-)...and print the corresponding error message?If we are setting "print_errors" to 0, then we don't want the error message from "getopt_long" but instead want to take some other action. That action would be indicated by checking optarg, optind, optopt, etc. after the parser returns an error value.by the way, the print_errors field should default to '1' to be backward compliantI believe the patch has "print_errors" default to 1 everywhere except in "cmdline_parser_params_init", where it is set to 0 because the manual says it should be ("...returns a dynamically allocated structure with all fields initialized to 0").
Actually setting print_errors to 0 in the _init function causes previous code not to work anymore in some cases, and this is quite dangerous (e.g., some tests in the testsuite do not print error messages anymore); thus I set print_errors to 1 also in the _init function and changed the documentation accordingly.
After all, the aim of this structure is to make code using the generated parser "resistant" to future enhancements to that structure, so I think this is the safest solution :-)
cheers Lorenzo -- Lorenzo Bettini, PhD in Computer Science, DSI, Univ. di Firenze ICQ# lbetto, 16080134 (GNU/Linux User # 158233) HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com http://www.myspace.com/supertrouperabba BLOGS: http://tronprog.blogspot.com http://longlivemusic.blogspot.com http://www.gnu.org/software/src-highlite http://www.gnu.org/software/gengetopt http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net
[Prev in Thread] | Current Thread | [Next in Thread] |