help-gengetopt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [help-gengetopt] config parser patch for more graceful parsing


From: Lorenzo Bettini
Subject: Re: [help-gengetopt] config parser patch for more graceful parsing
Date: Wed, 03 Oct 2007 14:28:53 +0200
User-agent: Thunderbird 2.0.0.4 (Windows/20070604)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]