author | Mark Lodato <lodatom@gmail.com> | 2010-09-04 15:30:18 (UTC) |
---|---|---|
committer | Mark Lodato <lodatom@gmail.com> | 2010-09-04 15:35:38 (UTC) |
commit | e4ddc8f72b5a7d8c55a6c2042c7b7f945ba4b1a2 (patch) (side-by-side diff) | |
tree | 2ade0bb45e15ad5466ca4d3433201477f0c9214e | |
parent | a4c58d92bfee0cf2e35ab1c5e828a6d790108a69 (diff) | |
download | cgit-e4ddc8f72b5a7d8c55a6c2042c7b7f945ba4b1a2.zip cgit-e4ddc8f72b5a7d8c55a6c2042c7b7f945ba4b1a2.tar.gz cgit-e4ddc8f72b5a7d8c55a6c2042c7b7f945ba4b1a2.tar.bz2 |
fix errors in printf-style format strings
There were many places where the arguments to a printf-like function did
not match the format string. Mostly, these were a missing 'l' flag, but
there were three exceptions:
- In ui-stats.c, a size_t argument must be printed. C99 has the "%zu"
flag for this purpose, but not all compilers support this. Therefore,
we mimic what git does - use a NO_C99_FORMAT Makefile variable.
- In ui-stats.c, cgit_print_error() was called with a pointer instead of
a character.
- In ui-log.c, the "columns" argument was never used.
Signed-off-by: Mark Lodato <lodatom@gmail.com>
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | ui-diff.c | 2 | ||||
-rw-r--r-- | ui-log.c | 3 | ||||
-rw-r--r-- | ui-stats.c | 18 | ||||
-rw-r--r-- | ui-tree.c | 4 |
6 files changed, 25 insertions, 12 deletions
@@ -18,2 +18,7 @@ INSTALL = install # +# Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.) +# do not support the 'size specifiers' introduced by C99, namely ll, hh, +# j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t). +# some C compilers supported these specifiers prior to C99 as an extension. +# @@ -129,2 +134,5 @@ ifdef NO_STRCASESTR endif +ifdef NO_C99_FORMAT + CFLAGS += -DNO_C99_FORMAT +endif ifdef NO_OPENSSL @@ -612,3 +612,3 @@ static void process_cached_repolist(const char *path) hash += hash_str(ctx.cfg.project_list); - cached_rc = xstrdup(fmt("%s/rc-%8x", ctx.cfg.cache_root, hash)); + cached_rc = xstrdup(fmt("%s/rc-%8lx", ctx.cfg.cache_root, hash)); @@ -94,3 +94,3 @@ static void print_fileinfo(struct fileinfo *info) if (info->binary) { - htmlf("bin</td><td class='graph'>%d -> %d bytes", + htmlf("bin</td><td class='graph'>%ld -> %ld bytes", info->old_size, info->new_size); @@ -230,4 +230,3 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern if (pager) { - htmlf("</table><div class='pager'>", - columns); + html("</table><div class='pager'>"); if (ofs > 0) { @@ -7,2 +7,8 @@ +#ifdef NO_C99_FORMAT +#define SZ_FMT "%u" +#else +#define SZ_FMT "%zu" +#endif + #define MONTHS 6 @@ -285,6 +291,6 @@ void print_combined_authorrow(struct string_list *authors, int from, int to, } - htmlf("<td class='%s'>%d</td>", centerclass, subtotal); + htmlf("<td class='%s'>%ld</td>", centerclass, subtotal); total += subtotal; } - htmlf("<td class='%s'>%d</td></tr>", rightclass, total); + htmlf("<td class='%s'>%ld</td></tr>", rightclass, total); } @@ -337,3 +343,3 @@ void print_authors(struct string_list *authors, int top, else { - htmlf("<td>%d</td>", date->util); + htmlf("<td>"SZ_FMT"</td>", (size_t)date->util); total += (size_t)date->util; @@ -341,3 +347,3 @@ void print_authors(struct string_list *authors, int top, } - htmlf("<td class='sum'>%d</td></tr>", total); + htmlf("<td class='sum'>%ld</td></tr>", total); } @@ -346,3 +352,3 @@ void print_authors(struct string_list *authors, int top, print_combined_authorrow(authors, top, authors->nr - 1, - "Others (%d)", "left", "", "sum", period); + "Others (%ld)", "left", "", "sum", period); @@ -369,3 +375,3 @@ void cgit_show_stats(struct cgit_context *ctx) if (!i) { - cgit_print_error(fmt("Unknown statistics type: %c", code)); + cgit_print_error(fmt("Unknown statistics type: %c", code[0])); return; @@ -69,3 +69,3 @@ static void print_binary_buffer(char *buf, unsigned long size) for (ofs = 0; ofs < size; ofs += ROWLEN, buf += ROWLEN) { - htmlf("<tr><td class='right'>%04x</td><td class='hex'>", ofs); + htmlf("<tr><td class='right'>%04lx</td><td class='hex'>", ofs); for (idx = 0; idx < ROWLEN && ofs + idx < size; idx++) @@ -110,3 +110,3 @@ static void print_object(const unsigned char *sha1, char *path, const char *base if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) { - htmlf("<div class='error'>blob size (%dKB) exceeds display size limit (%dKB).</div>", + htmlf("<div class='error'>blob size (%ldKB) exceeds display size limit (%dKB).</div>", size / 1024, ctx.cfg.max_blob_size); |