author | Lars Hjemli <hjemli@gmail.com> | 2010-09-19 17:00:05 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2010-09-19 17:00:05 (UTC) |
commit | a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806 (patch) (side-by-side diff) | |
tree | de8271ebfabd244437cd68021c8af86391afb9bd | |
parent | 536c7a1eb201b44b9266babe087cb6f2b75e4a7f (diff) | |
parent | d187b98557d91b874836f286b955ba76ab26fb02 (diff) | |
download | cgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.zip cgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.tar.gz cgit-a9d6e6e695da6c6ed7f4bb32630ab2f3d9314806.tar.bz2 |
Merge branch 'ml/bugfix'
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | cache.h | 1 | ||||
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | html.c | 18 | ||||
-rw-r--r-- | html.h | 3 | ||||
-rw-r--r-- | ui-blob.c | 4 | ||||
-rw-r--r-- | ui-diff.c | 2 | ||||
-rw-r--r-- | ui-log.c | 3 | ||||
-rw-r--r-- | ui-repolist.c | 6 | ||||
-rw-r--r-- | ui-stats.c | 18 | ||||
-rw-r--r-- | ui-tree.c | 6 |
12 files changed, 42 insertions, 30 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 @@ -32,2 +32,3 @@ extern int cache_ls(const char *path); /* Print a message to stdout */ +__attribute__((format (printf,1,2))) extern void cache_log(const char *format, ...); @@ -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)); @@ -297,2 +297,3 @@ extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); +__attribute__((format (printf,1,2))) extern char *fmt(const char *format,...); @@ -97,3 +97,3 @@ void html_txt(const char *txt) if (c=='<' || c=='>' || c=='&') { - write(htmlfd, txt, t - txt); + html_raw(txt, t - txt); if (c=='>') @@ -118,3 +118,3 @@ void html_ntxt(int len, const char *txt) if (c=='<' || c=='>' || c=='&') { - write(htmlfd, txt, t - txt); + html_raw(txt, t - txt); if (c=='>') @@ -130,3 +130,3 @@ void html_ntxt(int len, const char *txt) if (t!=txt) - write(htmlfd, txt, t - txt); + html_raw(txt, t - txt); if (len<0) @@ -141,3 +141,3 @@ void html_attr(const char *txt) if (c=='<' || c=='>' || c=='\'' || c=='\"') { - write(htmlfd, txt, t - txt); + html_raw(txt, t - txt); if (c=='>') @@ -165,4 +165,4 @@ void html_url_path(const char *txt) if (e && c!='+' && c!='&' && c!='+') { - write(htmlfd, txt, t - txt); - write(htmlfd, e, 3); + html_raw(txt, t - txt); + html_raw(e, 3); txt = t+1; @@ -182,4 +182,4 @@ void html_url_arg(const char *txt) if (e) { - write(htmlfd, txt, t - txt); - write(htmlfd, e, 3); + html_raw(txt, t - txt); + html_raw(e, 3); txt = t+1; @@ -251,3 +251,3 @@ int html_include(const char *filename) while((len = fread(buf, 1, 4096, f)) > 0) - write(htmlfd, buf, len); + html_raw(buf, len); fclose(f); @@ -7,3 +7,6 @@ extern void html_raw(const char *txt, size_t size); extern void html(const char *txt); + +__attribute__((format (printf,1,2))) extern void htmlf(const char *format,...); + extern void html_status(int code, const char *msg, int more_headers); @@ -54,3 +54,3 @@ int cgit_print_file(char *path, const char *head) buf[size] = '\0'; - write(htmlfd, buf, size); + html_raw(buf, size); return 0; @@ -110,3 +110,3 @@ void cgit_print_blob(const char *hex, char *path, const char *head) cgit_print_http_headers(&ctx); - write(htmlfd, buf, size); + html_raw(buf, size); } @@ -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) { diff --git a/ui-repolist.c b/ui-repolist.c index 0a0b6ca..2c98668 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -8,8 +8,2 @@ -/* This is needed for strcasestr to be defined by <string.h> */ -#define _GNU_SOURCE 1 -#include <string.h> - -#include <time.h> - #include "cgit.h" @@ -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; @@ -48,3 +48,3 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) cgit_open_filter(ctx.repo->source_filter); - write(STDOUT_FILENO, buf, size); + html_raw(buf, size); cgit_close_filter(ctx.repo->source_filter); @@ -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); |