X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/c1633c6befb6762e1ac9434a29980e4df5ffee21..c4b8db3f0973bc63d60806d197b55dc2901870f0:/ui-tree.c diff --git a/ui-tree.c b/ui-tree.c index b544440..8c87571 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -14,6 +14,7 @@ char *curr_rev; char *match_path; int header = 0; +static int state; static void print_text_buffer(const char *name, char *buf, unsigned long size) { @@ -27,10 +28,10 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) html("
");
 		idx = 0;
 		lineno = 0;
-	
+
 		if (size) {
 			htmlf(numberfmt, ++lineno);
-			while(idx < size - 1) { // skip absolute last newline
+			while (idx < size - 1) { // skip absolute last newline
 				if (buf[idx] == '\n')
 					htmlf(numberfmt, ++lineno);
 				idx++;
@@ -84,7 +85,7 @@ static void print_binary_buffer(char *buf, unsigned long size)
 	html("\n");
 }
 
-static void print_object(const unsigned char *sha1, char *path, const char *basename)
+static void print_object(const unsigned char *sha1, char *path, const char *basename, const char *rev)
 {
 	enum object_type type;
 	char *buf;
@@ -106,7 +107,7 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
 
 	htmlf("blob: %s (", sha1_to_hex(sha1));
 	cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
-		        curr_rev, path);
+		        rev, path);
 	html(")\n");
 
 	if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
@@ -223,12 +224,11 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 		     const char *pathname, unsigned mode, int stage,
 		     void *cbdata)
 {
-	static int state;
 	static char buffer[PATH_MAX];
 
 	if (state == 0) {
 		memcpy(buffer, base, baselen);
-		strcpy(buffer+baselen, pathname);
+		strcpy(buffer + baselen, pathname);
 		if (strcmp(match_path, buffer))
 			return READ_TREE_RECURSIVE;
 
@@ -237,7 +237,7 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 			ls_head();
 			return READ_TREE_RECURSIVE;
 		} else {
-			print_object(sha1, buffer, pathname);
+			print_object(sha1, buffer, pathname, curr_rev);
 			return 0;
 		}
 	}
@@ -284,6 +284,7 @@ void cgit_print_tree(const char *rev, char *path)
 	}
 
 	match_path = path;
+	state = 0;
 	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL);
 	ls_tail();
 }