summaryrefslogtreecommitdiffabout
authorLars Hjemli <larsh@hatman.(none)>2008-07-21 08:10:48 (UTC)
committer Lars Hjemli <larsh@hatman.(none)>2008-07-21 08:10:48 (UTC)
commit566f92b27618f67f59cc3642e17d9cb9c12634fa (patch) (unidiff)
tree3945996da0cce9a348a803d91c87df4e303c178b
parentd2eb4fddb0fb7cd1751debcff6fe1219b9c619c8 (diff)
downloadcgit-566f92b27618f67f59cc3642e17d9cb9c12634fa.zip
cgit-566f92b27618f67f59cc3642e17d9cb9c12634fa.tar.gz
cgit-566f92b27618f67f59cc3642e17d9cb9c12634fa.tar.bz2
Adjust to new calling convention for read_tree_recursive()
In GIT-1.6.0, read_tree_recursive takes an extra void pointer for callback data. We might want to use this to avoid some global variables, but for now lets just make sure that we can still compile. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-blob.c5
-rw-r--r--ui-tree.c12
2 files changed, 10 insertions, 7 deletions
diff --git a/ui-blob.c b/ui-blob.c
index 73a8c1d..3cda03d 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -8,17 +8,18 @@
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
13static char *match_path; 13static char *match_path;
14static unsigned char *matched_sha1; 14static unsigned char *matched_sha1;
15 15
16static int walk_tree(const unsigned char *sha1, const char *base,int baselen, const char *pathname, unsigned mode, int stage) { 16static int walk_tree(const unsigned char *sha1, const char *base,int baselen,
17 const char *pathname, unsigned mode, int stage, void *cbdata) {
17 if(strncmp(base,match_path,baselen) 18 if(strncmp(base,match_path,baselen)
18 || strcmp(match_path+baselen,pathname) ) 19 || strcmp(match_path+baselen,pathname) )
19 return READ_TREE_RECURSIVE; 20 return READ_TREE_RECURSIVE;
20 memmove(matched_sha1,sha1,20); 21 memmove(matched_sha1,sha1,20);
21 return 0; 22 return 0;
22} 23}
23 24
24void cgit_print_blob(const char *hex, char *path, const char *head) 25void cgit_print_blob(const char *hex, char *path, const char *head)
@@ -44,17 +45,17 @@ void cgit_print_blob(const char *hex, char *path, const char *head)
44 } 45 }
45 46
46 type = sha1_object_info(sha1, &size); 47 type = sha1_object_info(sha1, &size);
47 48
48 if((!hex) && type == OBJ_COMMIT && path) { 49 if((!hex) && type == OBJ_COMMIT && path) {
49 commit = lookup_commit_reference(sha1); 50 commit = lookup_commit_reference(sha1);
50 match_path = path; 51 match_path = path;
51 matched_sha1 = sha1; 52 matched_sha1 = sha1;
52 read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree); 53 read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree, NULL);
53 type = sha1_object_info(sha1,&size); 54 type = sha1_object_info(sha1,&size);
54 } 55 }
55 56
56 if (type == OBJ_BAD) { 57 if (type == OBJ_BAD) {
57 cgit_print_error(fmt("Bad object name: %s", hex)); 58 cgit_print_error(fmt("Bad object name: %s", hex));
58 return; 59 return;
59 } 60 }
60 61
diff --git a/ui-tree.c b/ui-tree.c
index 5a2dd3f..9a837e2 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -57,17 +57,18 @@ static void print_object(const unsigned char *sha1, char *path)
57 htmlf(linefmt, ++lineno); 57 htmlf(linefmt, ++lineno);
58 html_txt(buf + start); 58 html_txt(buf + start);
59 html("</td></tr>\n"); 59 html("</td></tr>\n");
60 html("</table>\n"); 60 html("</table>\n");
61} 61}
62 62
63 63
64static int ls_item(const unsigned char *sha1, const char *base, int baselen, 64static int ls_item(const unsigned char *sha1, const char *base, int baselen,
65 const char *pathname, unsigned int mode, int stage) 65 const char *pathname, unsigned int mode, int stage,
66 void *cbdata)
66{ 67{
67 char *name; 68 char *name;
68 char *fullpath; 69 char *fullpath;
69 enum object_type type; 70 enum object_type type;
70 unsigned long size = 0; 71 unsigned long size = 0;
71 72
72 name = xstrdup(pathname); 73 name = xstrdup(pathname);
73 fullpath = fmt("%s%s%s", ctx.qry.path ? ctx.qry.path : "", 74 fullpath = fmt("%s%s%s", ctx.qry.path ? ctx.qry.path : "",
@@ -138,23 +139,24 @@ static void ls_tree(const unsigned char *sha1, char *path)
138 tree = parse_tree_indirect(sha1); 139 tree = parse_tree_indirect(sha1);
139 if (!tree) { 140 if (!tree) {
140 cgit_print_error(fmt("Not a tree object: %s", 141 cgit_print_error(fmt("Not a tree object: %s",
141 sha1_to_hex(sha1))); 142 sha1_to_hex(sha1)));
142 return; 143 return;
143 } 144 }
144 145
145 ls_head(); 146 ls_head();
146 read_tree_recursive(tree, "", 0, 1, NULL, ls_item); 147 read_tree_recursive(tree, "", 0, 1, NULL, ls_item, NULL);
147 ls_tail(); 148 ls_tail();
148} 149}
149 150
150 151
151static int walk_tree(const unsigned char *sha1, const char *base, int baselen, 152static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
152 const char *pathname, unsigned mode, int stage) 153 const char *pathname, unsigned mode, int stage,
154 void *cbdata)
153{ 155{
154 static int state; 156 static int state;
155 static char buffer[PATH_MAX]; 157 static char buffer[PATH_MAX];
156 char *url; 158 char *url;
157 159
158 if (state == 0) { 160 if (state == 0) {
159 memcpy(buffer, base, baselen); 161 memcpy(buffer, base, baselen);
160 strcpy(buffer+baselen, pathname); 162 strcpy(buffer+baselen, pathname);
@@ -171,17 +173,17 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
171 state = 1; 173 state = 1;
172 ls_head(); 174 ls_head();
173 return READ_TREE_RECURSIVE; 175 return READ_TREE_RECURSIVE;
174 } else { 176 } else {
175 print_object(sha1, buffer); 177 print_object(sha1, buffer);
176 return 0; 178 return 0;
177 } 179 }
178 } 180 }
179 ls_item(sha1, base, baselen, pathname, mode, stage); 181 ls_item(sha1, base, baselen, pathname, mode, stage, NULL);
180 return 0; 182 return 0;
181} 183}
182 184
183 185
184/* 186/*
185 * Show a tree or a blob 187 * Show a tree or a blob
186 * rev: the commit pointing at the root tree object 188 * rev: the commit pointing at the root tree object
187 * path: path to tree or blob 189 * path: path to tree or blob
@@ -211,11 +213,11 @@ void cgit_print_tree(const char *rev, char *path)
211 html("'>root</a>"); 213 html("'>root</a>");
212 214
213 if (path == NULL) { 215 if (path == NULL) {
214 ls_tree(commit->tree->object.sha1, NULL); 216 ls_tree(commit->tree->object.sha1, NULL);
215 return; 217 return;
216 } 218 }
217 219
218 match_path = path; 220 match_path = path;
219 read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree); 221 read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree, NULL);
220 ls_tail(); 222 ls_tail();
221} 223}