diff options
author | Nicolas Williams <nico@cryptonector.com> | 2014-12-23 21:52:03 -0600 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2014-12-23 23:22:57 -0600 |
commit | ae312bd7feeb33e81d8a5f9784d5e0e392655f8c (patch) | |
tree | 4a5ae25274c17a483de28906d00ed5b0ea6671a6 | |
parent | 9017b83d4ea3da298617eec42ad7dd907fbc1309 (diff) |
Use __attribute__ __printf__ with GCC
-rw-r--r-- | execute.c | 4 | ||||
-rw-r--r-- | jv.h | 11 | ||||
-rw-r--r-- | main.c | 2 |
3 files changed, 12 insertions, 5 deletions
@@ -802,11 +802,11 @@ jv jq_format_error(jv msg) { if (jv_get_kind(msg) != JV_KIND_INVALID) { if (jv_get_kind(msg) == JV_KIND_STRING) - return jv_string_fmt("jq: error: %s", msg); + return jv_string_fmt("jq: error: %s", jv_string_value(msg)); msg = jv_dump_string(msg, JV_PRINT_INVALID); if (jv_get_kind(msg) == JV_KIND_STRING) - return jv_string_fmt("jq: error: %s", msg); + return jv_string_fmt("jq: error: %s", jv_string_value(msg)); return jq_format_error(jv_null()); // ENOMEM } @@ -91,6 +91,13 @@ jv jv_array_indexes(jv, jv); #define JV_ARRAY(...) \ JV_ARRAY_IDX(__VA_ARGS__, JV_ARRAY_7, JV_ARRAY_6, JV_ARRAY_5, JV_ARRAY_4, JV_ARRAY_3, JV_ARRAY_2, JV_ARRAY_1)(__VA_ARGS__) +#ifdef __GNUC__ +#define JV_PRINTF_LIKE(fmt_arg_num, args_num) \ + __attribute__ ((__format__( __printf__, fmt_arg_num, args_num))) +#define JV_VPRINTF_LIKE(fmt_arg_num) \ + __attribute__ ((__format__( __printf__, fmt_arg_num, 0))) +#endif + jv jv_string(const char*); jv jv_string_sized(const char*, int); @@ -102,8 +109,8 @@ const char* jv_string_value(jv); jv jv_string_indexes(jv j, jv k); jv jv_string_slice(jv j, int start, int end); jv jv_string_concat(jv, jv); -jv jv_string_vfmt(const char*, va_list); -jv jv_string_fmt(const char*, ...); +jv jv_string_vfmt(const char*, va_list) JV_VPRINTF_LIKE(1); +jv jv_string_fmt(const char*, ...) JV_PRINTF_LIKE(1, 2); jv jv_string_append_codepoint(jv a, uint32_t c); jv jv_string_append_buf(jv a, const char* buf, int len); jv jv_string_append_str(jv a, const char* str); @@ -398,7 +398,7 @@ int main(int argc, char* argv[]) { if (strchr(JQ_VERSION, '-') == NULL) jq_set_attr(jq, jv_string("VERSION_DIR"), jv_string(JQ_VERSION)); else - jq_set_attr(jq, jv_string("VERSION_DIR"), jv_string_fmt("%.*s-master", strchr(JQ_VERSION, '-') - JQ_VERSION, JQ_VERSION)); + jq_set_attr(jq, jv_string("VERSION_DIR"), jv_string_fmt("%.*s-master", (int)(strchr(JQ_VERSION, '-') - JQ_VERSION), JQ_VERSION)); #if (!defined(WIN32) && defined(HAVE_ISATTY)) || defined(HAVE__ISATTY) |