Done, it is filed as bug #37264:

https://savannah.gnu.org/bugs/index.php?37264

/Simon

Lorenzo Bettini <[email protected]> writes:

> 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
>>

_______________________________________________
Help-gengetopt mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-gengetopt

Reply via email to