Sybase's manual states, dbwillconvert() returns TRUE, when a conversion can/should happen. TRUE is defined -- both in Sybase's own code and in FreeTDS' headers as 1, but dbwillconvert() returns 255:
(gdb) p dbwillconvert(SYBCHAR, SYBCHAR)
$3 = 255
This breaks valid code, which compares the result of dbwillconvert() with TRUE -- and works properly with Sybase's own client libraries.
Fixed