Re: config parser patch for more graceful parsing

Lorenzo Bettini <[email protected]>
Newsgroups gmane.comp.gnu.gengetopt.general
Message-ID <[email protected]>
Papp Gyozo (VBuster) wrote:
> From: Lorenzo Bettini
>>> I hope this patch could be in the next package.
>>>
>>> --- gengetopt-2.18.orig/src/skels/c_source.h_skel	Fri Jul 14 20:07:31 2006
>>> +++ gengetopt-2.18/src/skels/c_source.h_skel	Tue Nov 21 19:36:40 2006
>>> @@ -653,8 +653,11 @@
>>>              }
>>>          }
>>>        else
>>> -        { /* read up the remaining part up to a delimiter */
>>> -          next_token = strcspn (farg, " \t\r\n#\'\"");
>>> +        { /* 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;
>>>            str_index += next_token;
>>>          }
>> I'm really sorry about that, it must have escaped me.
> 
> Oh never mind that. You can realize now that I could wait for it for a long time ;)
> 
>> I noticed that the strcspn does not include ' nor " is that correct?
> 
> Yes, but be careful! First it goes to the end of the line and then steps back on (thus removes) trailing whitespaces. If you simply use strcspn() w/o ' and " parser can't cope with the strings mentioned above:
> 
>> key  = MC JMS  
> 
> This way key_arg will be "MC JMS"
> 
> The another benefit of this patch is values containing more than one "word" does not have to be quoted at all.

OK, now everything's clear! :-)

thanks
	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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.