Re: longlong not working

Lorenzo Bettini <[email protected]> Mon, 03 Sep 2012 15:21:56 +0200
Newsgroups gmane.comp.gnu.gengetopt.general
Message-ID <[email protected]>
Simon

could you please file a bug report here?

http://savannah.gnu.org/bugs/?group=gengetopt

thanks in advance
	Lorenzo

On 09/03/2012 03:06 PM, Simon Josefsson wrote:
> Hi.  In OATH Toolkit I started to use the 'longlong' feature recently,
> to be able to specify 64-bit integers.  However I noticed that it
> doesn't really work well.  There are two reasons for this:
>
> 1) The generated code use the HAVE_LONG_LONG pre-processor symbol to
> check whether 'long long' is available.  I didn't have that symbol
> defined, I did have HAVE_LONG_LONG_INT defined via gnulib.  This issue
> could be resolved with improved documentation, stating that you need to
> make sure HAVE_LONG_LONG is defined when building.
>
> 2) The generated code uses 'strtol' to convert values.  This function
> does not handle larger values.  The code looks like this:
>
> #ifdef HAVE_LONG_LONG
>      if (val) *((long long int*)field) = (long long int) strtol (val,
> &stop_char, 0);
> #else
>      if (val) *((long *)field) = (long)strtol (val, &stop_char, 0);
> #endif
>
> Changing 'strtol' to 'strtoll' works.  I'm guessing platforms with 'long
> long' have 'strtoll' as well, but I can't guarantee it.
>
> /Simon
>
> _______________________________________________
> Help-gengetopt mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/help-gengetopt
>


-- 
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
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