mirror of
https://github.com/rkd77/elinks.git
synced 2025-02-02 15:09:23 -05:00
On AMD64 apparently, off_t is long but ELinks detected SIZEOF_OFF_T == 8 and defined OFF_T_FORMAT as "lld", which expects long long and so causes GCC to warn about a mismatching format specifier. Because --enable-debug adds -Werror to $CFLAGS, this warning breaks the build. When both SIZEOF_LONG and SIZEOF_LONG_LONG are 8, ELinks cannot know which type it should use. To fix this, do not attempt to find a format specifier for off_t itself. Instead cast all printed off_t values to a new typedef off_print_T that is large enough, and replace OFF_T_FORMAT with OFF_PRINT_FORMAT which is suitable for off_print_T altough not necessarily for off_t. ELinks already had a similar scheme with time_print_T and TIME_PRINT_FORMAT.