Index: trunk/src/libcschem/csch_printf.c =================================================================== --- trunk/src/libcschem/csch_printf.c (revision 6361) +++ trunk/src/libcschem/csch_printf.c (revision 6362) @@ -28,15 +28,26 @@ #include #include +#include #include "csch_printf.h" -int csch_printf_app_format(gds_t *string, gds_t *spec, const char **fmt, rnd_unit_allow_t mask, rnd_unit_suffix_t suffix, va_list args) +rnd_aft_ret_t RND_AFT_csch_coord = RND_AFT_error; + +rnd_aft_ret_t csch_printf_app_format(gds_t *string, gds_t *spec, const char **fmt, rnd_unit_allow_t mask, rnd_unit_suffix_t suffix, va_list args) { - int res = 0; csch_coord_t c; rnd_coord_t rc; + if (RND_AFT_csch_coord == RND_AFT_error) { + if (sizeof(int)== sizeof(csch_coord_t)) + RND_AFT_csch_coord = RND_AFT_INT; + else if (sizeof(long) == sizeof(csch_coord_t)) + RND_AFT_csch_coord = RND_AFT_LONG; + else + rnd_message(RND_MSG_ERROR, "Can't find matching integer type for sizeof(csch_coord_t)\n"); + } + switch(**fmt) { case 'r': rc = va_arg(args, rnd_coord_t); @@ -58,9 +69,9 @@ gds_append_str(spec, "ld"); if (rnd_append_printf(string, spec->array, (long)c) < 0) - res = -1; + return RND_AFT_error; - return res; + return RND_AFT_csch_coord; } - return -1; + return RND_AFT_error; } Index: trunk/src/libcschem/csch_printf.h =================================================================== --- trunk/src/libcschem/csch_printf.h (revision 6361) +++ trunk/src/libcschem/csch_printf.h (revision 6362) @@ -7,4 +7,4 @@ %$$rc prints csch_coord_t; same as %$rc but no space between num and unit %rr prints rnd_coord_t; same as %rc but scales down the value by 2^10 first */ -int csch_printf_app_format(gds_t *string, gds_t *spec, const char **fmt, rnd_unit_allow_t mask, rnd_unit_suffix_t suffix, va_list args); +rnd_aft_ret_t csch_printf_app_format(gds_t *string, gds_t *spec, const char **fmt, rnd_unit_allow_t mask, rnd_unit_suffix_t suffix, va_list args);