Martin:
> In variables.c at line 6243 we have 
> eof_encountered_limit = (*temp && all_digits (temp)) ? atoi (temp) : 10;
>
> Presumably in your build of Bash, as in mine, `int` is 
> 32-bit, so the maximum value convertible by atoi would 
> be 2147483647.  Larger values are returned modulo 
> 4294967296 (with 2's complement sign handling).
> atoi("9223372036854775807") returns -1.
>
> (This does not limit the range that printf can handle; 
> it will normally cope with at least 64-bit (the size of
> `intmax_t` and/or `long int`).

Thank you very much! 
I checked `man printf`, and it says "widths are handled" and doesn’t accept the 
'%l' format specifier. 
So it does seem like the default is equivalent to C’s '%ull' rather than C’s 
'%u' (unsigned int). 

So, what’s the correct way to get INT_MAX? 
I’m not planning to use it in IGNOREEOF (I’ve already set `IGNOREEOF=127` in my 
`.bash_login`, which big enough), I’m just curious…

Reply via email to