X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/ce7034f0b1dd4c347e9230f82cd9af11d2210059..a9ec328054b628447830161535f4915f715f49cd:/src/message.c diff --git a/src/message.c b/src/message.c index 87a5cf5..5512989 100644 --- a/src/message.c +++ b/src/message.c @@ -1,6 +1,6 @@ /* ** Splint - annotation-assisted static program checker -** Copyright (C) 1994-2002 University of Virginia, +** Copyright (C) 1994-2003 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -40,9 +40,16 @@ typedef enum XPERCENT, XCTYPE, XPLURAL, XREPREFIX, XFILELOC, XPOINTER } ccode; -/* char *s, anytype v */ +/*@function void GETPRINTF (char *p_s, anytype p_v) modifies strbuf@*/ + /*@notfunction@*/ -# define GETPRINTF(s,v) (sprintf (strbuf, s, v), mstring_copy (strbuf)) +# ifndef WIN32 + /* ISO requires this, but not all implementations (e.g., Microsoft's) provide it */ +# define GETPRINTF(s,v) (snprintf (strbuf, 64, s, v), mstring_copy (strbuf)) +# else + /* MS provides _snprintf instead */ +# define GETPRINTF(s,v) (_snprintf (strbuf, 64, s, v), mstring_copy (strbuf)) +# endif /* ** returns control code indicated by *c, and @@ -239,8 +246,10 @@ message (/*@temp@*/ char *fmt, ...) ret = mstring_concatFree (ret, GETPRINTF ("%.2lf", va_arg (pvar, double))); break; case XBOOL: - ret = mstring_concatFree1 (ret, cstring_toCharsSafe - (bool_unparse (va_arg (pvar, bool)))); + ret = mstring_concatFree1 + (ret, cstring_toCharsSafe + (bool_unparse (bool_fromInt ((va_arg (pvar, int)))))); + /* va_arg should not use bool type */ break; case XUENTRY: ret = mstring_concatFree (ret, cstring_toCharsSafe