summaryrefslogtreecommitdiffabout
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2008-11-04 19:22:08 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-11-06 18:18:07 (UTC)
commitbdd4a56ad55720cde3b7b290b6b9fe4c57dc4f01 (patch) (unidiff)
tree80622b0e4c7a969453fa281b738c7cebc0412582
parenta918c068a695348e3f08f906b3e5845feb59d9a2 (diff)
downloadcgit-bdd4a56ad55720cde3b7b290b6b9fe4c57dc4f01.zip
cgit-bdd4a56ad55720cde3b7b290b6b9fe4c57dc4f01.tar.gz
cgit-bdd4a56ad55720cde3b7b290b6b9fe4c57dc4f01.tar.bz2
Fix some warnings to allow -Werror
The type used to declare the st_size field of a 'struct stat' can be a 32- or 64-bit sized type, which can vary from one platform to another, or even from one compilation to another. In particular, on linux, if you include the following define: #define _FILE_OFFSET_BITS 64 prior to including certain system header files, then the type used for the st_size field will be __off64_t, otherwise it will be an __off_t. Note that the above define is included at the top of git-compat-util.h. In cache.c, the "%zd" format specifier expects a "signed size_t", another type which can vary, when an __off64_t or a __off_t is provided. To supress the warning, use the PRIuMAX format specifier and cast the st_size field to uintmax_t. This should work an any platform for which git currently compiles. In ui-plain.c, the size parameter of sha1_object_info() and read_sha1_file() is defined to be "unsigned long *" not "size_t *". So, to supress the warning, simply declare size with the correct type. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c4
-rw-r--r--ui-plain.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/cache.c b/cache.c
index 57068a1..d7a8d5a 100644
--- a/cache.c
+++ b/cache.c
@@ -403,37 +403,37 @@ int cache_ls(const char *path)
403 strcpy(fullname, path); 403 strcpy(fullname, path);
404 name = fullname + strlen(path); 404 name = fullname + strlen(path);
405 if (*(name - 1) != '/') { 405 if (*(name - 1) != '/') {
406 *name++ = '/'; 406 *name++ = '/';
407 *name = '\0'; 407 *name = '\0';
408 } 408 }
409 slot.cache_name = fullname; 409 slot.cache_name = fullname;
410 while((ent = readdir(dir)) != NULL) { 410 while((ent = readdir(dir)) != NULL) {
411 if (strlen(ent->d_name) != 8) 411 if (strlen(ent->d_name) != 8)
412 continue; 412 continue;
413 strcpy(name, ent->d_name); 413 strcpy(name, ent->d_name);
414 if ((err = open_slot(&slot)) != 0) { 414 if ((err = open_slot(&slot)) != 0) {
415 cache_log("[cgit] unable to open path %s: %s (%d)\n", 415 cache_log("[cgit] unable to open path %s: %s (%d)\n",
416 fullname, strerror(err), err); 416 fullname, strerror(err), err);
417 continue; 417 continue;
418 } 418 }
419 printf("%s %s %10zd %s\n", 419 printf("%s %s %10"PRIuMAX" %s\n",
420 name, 420 name,
421 sprintftime("%Y-%m-%d %H:%M:%S", 421 sprintftime("%Y-%m-%d %H:%M:%S",
422 slot.cache_st.st_mtime), 422 slot.cache_st.st_mtime),
423 slot.cache_st.st_size, 423 (uintmax_t)slot.cache_st.st_size,
424 slot.buf); 424 slot.buf);
425 close_slot(&slot); 425 close_slot(&slot);
426 } 426 }
427 closedir(dir); 427 closedir(dir);
428 return 0; 428 return 0;
429} 429}
430 430
431/* Print a message to stdout */ 431/* Print a message to stdout */
432void cache_log(const char *format, ...) 432void cache_log(const char *format, ...)
433{ 433{
434 va_list args; 434 va_list args;
435 va_start(args, format); 435 va_start(args, format);
436 vfprintf(stderr, format, args); 436 vfprintf(stderr, format, args);
437 va_end(args); 437 va_end(args);
438} 438}
439 439
diff --git a/ui-plain.c b/ui-plain.c
index be559e0..5addd9e 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -5,33 +5,33 @@
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10#include "html.h" 10#include "html.h"
11#include "ui-shared.h" 11#include "ui-shared.h"
12 12
13char *curr_rev; 13char *curr_rev;
14char *match_path; 14char *match_path;
15int match; 15int match;
16 16
17static void print_object(const unsigned char *sha1, const char *path) 17static void print_object(const unsigned char *sha1, const char *path)
18{ 18{
19 enum object_type type; 19 enum object_type type;
20 char *buf; 20 char *buf;
21 size_t size; 21 unsigned long size;
22 22
23 type = sha1_object_info(sha1, &size); 23 type = sha1_object_info(sha1, &size);
24 if (type == OBJ_BAD) { 24 if (type == OBJ_BAD) {
25 html_status(404, "Not found", 0); 25 html_status(404, "Not found", 0);
26 return; 26 return;
27 } 27 }
28 28
29 buf = read_sha1_file(sha1, &type, &size); 29 buf = read_sha1_file(sha1, &type, &size);
30 if (!buf) { 30 if (!buf) {
31 html_status(404, "Not found", 0); 31 html_status(404, "Not found", 0);
32 return; 32 return;
33 } 33 }
34 ctx.page.mimetype = "text/plain"; 34 ctx.page.mimetype = "text/plain";
35 ctx.page.filename = fmt("%s", path); 35 ctx.page.filename = fmt("%s", path);
36 ctx.page.size = size; 36 ctx.page.size = size;
37 cgit_print_http_headers(&ctx); 37 cgit_print_http_headers(&ctx);