aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
m---------git0
-rw-r--r--ui-blame.c9
-rw-r--r--ui-blob.c20
-rw-r--r--ui-plain.c7
-rw-r--r--ui-tree.c21
6 files changed, 23 insertions, 36 deletions
diff --git a/Makefile b/Makefile
index abc52bc..d13c5bd 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ htmldir = $(docdir)
14pdfdir = $(docdir) 14pdfdir = $(docdir)
15mandir = $(prefix)/share/man 15mandir = $(prefix)/share/man
16SHA1_HEADER = <openssl/sha.h> 16SHA1_HEADER = <openssl/sha.h>
17GIT_VER = 2.31.1 17GIT_VER = 2.32.0
18GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz 18GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz
19INSTALL = install 19INSTALL = install
20COPYTREE = cp -r 20COPYTREE = cp -r
diff --git a/git b/git
Subproject 48bf2fa8bad054d66bd79c6ba903c89c704201f Subproject ebf3c04b262aa27fbb97f8a0156c2347fecafaf
diff --git a/ui-blame.c b/ui-blame.c
index ec1d888..03136f7 100644
--- a/ui-blame.c
+++ b/ui-blame.c
@@ -221,8 +221,7 @@ cleanup:
221} 221}
222 222
223static int walk_tree(const struct object_id *oid, struct strbuf *base, 223static int walk_tree(const struct object_id *oid, struct strbuf *base,
224 const char *pathname, unsigned mode, int stage, 224 const char *pathname, unsigned mode, void *cbdata)
225 void *cbdata)
226{ 225{
227 struct walk_tree_context *walk_tree_ctx = cbdata; 226 struct walk_tree_context *walk_tree_ctx = cbdata;
228 227
@@ -291,10 +290,8 @@ void cgit_print_blame(void)
291 walk_tree_ctx.match_baselen = (path_items.match) ? 290 walk_tree_ctx.match_baselen = (path_items.match) ?
292 basedir_len(path_items.match) : -1; 291 basedir_len(path_items.match) : -1;
293 292
294 read_tree_recursive(the_repository, 293 read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
295 repo_get_commit_tree(the_repository, commit), 294 &paths, walk_tree, &walk_tree_ctx);
296 "", 0, 0,
297 &paths, walk_tree, &walk_tree_ctx);
298 if (!walk_tree_ctx.state) 295 if (!walk_tree_ctx.state)
299 cgit_print_error_page(404, "Not found", "Not found"); 296 cgit_print_error_page(404, "Not found", "Not found");
300 else if (walk_tree_ctx.state == 2) 297 else if (walk_tree_ctx.state == 2)
diff --git a/ui-blob.c b/ui-blob.c
index f76c641..c10ae42 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -19,7 +19,7 @@ struct walk_tree_context {
19}; 19};
20 20
21static int walk_tree(const struct object_id *oid, struct strbuf *base, 21static int walk_tree(const struct object_id *oid, struct strbuf *base,
22 const char *pathname, unsigned mode, int stage, void *cbdata) 22 const char *pathname, unsigned mode, void *cbdata)
23{ 23{
24 struct walk_tree_context *walk_tree_ctx = cbdata; 24 struct walk_tree_context *walk_tree_ctx = cbdata;
25 25
@@ -56,9 +56,9 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
56 goto done; 56 goto done;
57 if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT) 57 if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT)
58 goto done; 58 goto done;
59 read_tree_recursive(the_repository, 59 read_tree(the_repository,
60 repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)), 60 repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)),
61 "", 0, 0, &paths, walk_tree, &walk_tree_ctx); 61 &paths, walk_tree, &walk_tree_ctx);
62 62
63done: 63done:
64 free(path_items.match); 64 free(path_items.match);
@@ -92,10 +92,8 @@ int cgit_print_file(char *path, const char *head, int file_only)
92 type = oid_object_info(the_repository, &oid, &size); 92 type = oid_object_info(the_repository, &oid, &size);
93 if (type == OBJ_COMMIT) { 93 if (type == OBJ_COMMIT) {
94 commit = lookup_commit_reference(the_repository, &oid); 94 commit = lookup_commit_reference(the_repository, &oid);
95 read_tree_recursive(the_repository, 95 read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
96 repo_get_commit_tree(the_repository, commit), 96 &paths, walk_tree, &walk_tree_ctx);
97 "", 0, 0, &paths, walk_tree,
98 &walk_tree_ctx);
99 if (!walk_tree_ctx.found_path) 97 if (!walk_tree_ctx.found_path)
100 return -1; 98 return -1;
101 type = oid_object_info(the_repository, &oid, &size); 99 type = oid_object_info(the_repository, &oid, &size);
@@ -151,10 +149,8 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
151 149
152 if ((!hex) && type == OBJ_COMMIT && path) { 150 if ((!hex) && type == OBJ_COMMIT && path) {
153 commit = lookup_commit_reference(the_repository, &oid); 151 commit = lookup_commit_reference(the_repository, &oid);
154 read_tree_recursive(the_repository, 152 read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
155 repo_get_commit_tree(the_repository, commit), 153 &paths, walk_tree, &walk_tree_ctx);
156 "", 0, 0, &paths, walk_tree,
157 &walk_tree_ctx);
158 type = oid_object_info(the_repository, &oid, &size); 154 type = oid_object_info(the_repository, &oid, &size);
159 } 155 }
160 156
diff --git a/ui-plain.c b/ui-plain.c
index 001001c..65a205f 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -130,7 +130,7 @@ static void print_dir_tail(void)
130} 130}
131 131
132static int walk_tree(const struct object_id *oid, struct strbuf *base, 132static int walk_tree(const struct object_id *oid, struct strbuf *base,
133 const char *pathname, unsigned mode, int stage, void *cbdata) 133 const char *pathname, unsigned mode, void *cbdata)
134{ 134{
135 struct walk_tree_context *walk_tree_ctx = cbdata; 135 struct walk_tree_context *walk_tree_ctx = cbdata;
136 136
@@ -198,9 +198,8 @@ void cgit_print_plain(void)
198 } 198 }
199 else 199 else
200 walk_tree_ctx.match_baselen = basedir_len(path_items.match); 200 walk_tree_ctx.match_baselen = basedir_len(path_items.match);
201 read_tree_recursive(the_repository, 201 read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
202 repo_get_commit_tree(the_repository, commit), 202 &paths, walk_tree, &walk_tree_ctx);
203 "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
204 if (!walk_tree_ctx.match) 203 if (!walk_tree_ctx.match)
205 cgit_print_error_page(404, "Not found", "Not found"); 204 cgit_print_error_page(404, "Not found", "Not found");
206 else if (walk_tree_ctx.match == 2) 205 else if (walk_tree_ctx.match == 2)
diff --git a/ui-tree.c b/ui-tree.c
index 1e4efb2..b61f6f5 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -139,8 +139,7 @@ struct single_tree_ctx {
139}; 139};
140 140
141static int single_tree_cb(const struct object_id *oid, struct strbuf *base, 141static int single_tree_cb(const struct object_id *oid, struct strbuf *base,
142 const char *pathname, unsigned mode, int stage, 142 const char *pathname, unsigned mode, void *cbdata)
143 void *cbdata)
144{ 143{
145 struct single_tree_ctx *ctx = cbdata; 144 struct single_tree_ctx *ctx = cbdata;
146 145
@@ -185,8 +184,7 @@ static void write_tree_link(const struct object_id *oid, char *name,
185 tree_ctx.name = NULL; 184 tree_ctx.name = NULL;
186 tree_ctx.count = 0; 185 tree_ctx.count = 0;
187 186
188 read_tree_recursive(the_repository, tree, "", 0, 1, 187 read_tree(the_repository, tree, &paths, single_tree_cb, &tree_ctx);
189 &paths, single_tree_cb, &tree_ctx);
190 188
191 if (tree_ctx.count != 1) 189 if (tree_ctx.count != 1)
192 break; 190 break;
@@ -199,7 +197,7 @@ static void write_tree_link(const struct object_id *oid, char *name,
199} 197}
200 198
201static int ls_item(const struct object_id *oid, struct strbuf *base, 199static int ls_item(const struct object_id *oid, struct strbuf *base,
202 const char *pathname, unsigned mode, int stage, void *cbdata) 200 const char *pathname, unsigned mode, void *cbdata)
203{ 201{
204 struct walk_tree_context *walk_tree_ctx = cbdata; 202 struct walk_tree_context *walk_tree_ctx = cbdata;
205 char *name; 203 char *name;
@@ -294,14 +292,13 @@ static void ls_tree(const struct object_id *oid, const char *path, struct walk_t
294 } 292 }
295 293
296 ls_head(); 294 ls_head();
297 read_tree_recursive(the_repository, tree, "", 0, 1, 295 read_tree(the_repository, tree, &paths, ls_item, walk_tree_ctx);
298 &paths, ls_item, walk_tree_ctx);
299 ls_tail(); 296 ls_tail();
300} 297}
301 298
302 299
303static int walk_tree(const struct object_id *oid, struct strbuf *base, 300static int walk_tree(const struct object_id *oid, struct strbuf *base,
304 const char *pathname, unsigned mode, int stage, void *cbdata) 301 const char *pathname, unsigned mode, void *cbdata)
305{ 302{
306 struct walk_tree_context *walk_tree_ctx = cbdata; 303 struct walk_tree_context *walk_tree_ctx = cbdata;
307 304
@@ -326,7 +323,7 @@ static int walk_tree(const struct object_id *oid, struct strbuf *base,
326 return 0; 323 return 0;
327 } 324 }
328 } 325 }
329 ls_item(oid, base, pathname, mode, stage, walk_tree_ctx); 326 ls_item(oid, base, pathname, mode, walk_tree_ctx);
330 return 0; 327 return 0;
331} 328}
332 329
@@ -374,10 +371,8 @@ void cgit_print_tree(const char *rev, char *path)
374 goto cleanup; 371 goto cleanup;
375 } 372 }
376 373
377 read_tree_recursive(the_repository, 374 read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
378 repo_get_commit_tree(the_repository, commit), 375 &paths, walk_tree, &walk_tree_ctx);
379 "", 0, 0,
380 &paths, walk_tree, &walk_tree_ctx);
381 if (walk_tree_ctx.state == 1) 376 if (walk_tree_ctx.state == 1)
382 ls_tail(); 377 ls_tail();
383 else if (walk_tree_ctx.state == 2) 378 else if (walk_tree_ctx.state == 2)