]> git.cameronkatri.com Git - cgit.git/blobdiff - ui-tree.c
git: update to v2.3.2
[cgit.git] / ui-tree.c
index aa5dee93c46a680d3acd62f61b801ab3f25024ab..4ab01372e7bacd44b1601ad8b5a5e6a84f9f6b47 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -1,6 +1,6 @@
 /* ui-tree.c: functions for tree output
  *
- * Copyright (C) 2006 Lars Hjemli
+ * Copyright (C) 2006-2014 cgit Development Team <cgit@lists.zx2c4.com>
  *
  * Licensed under GNU General Public License v2
  *   (see COPYING for full license text)
@@ -21,8 +21,7 @@ struct walk_tree_context {
 static void print_text_buffer(const char *name, char *buf, unsigned long size)
 {
        unsigned long lineno, idx;
-       const char *numberfmt =
-               "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n";
+       const char *numberfmt = "<a id='n%1$d' href='#n%1$d'>%1$d</a>\n";
 
        html("<table summary='blob content' class='blob'>\n");
 
@@ -46,13 +45,12 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
        }
 
        if (ctx.repo->source_filter) {
+               char *filter_arg = xstrdup(name);
                html("<td class='lines'><pre><code>");
-               ctx.repo->source_filter->argv[1] = xstrdup(name);
-               cgit_open_filter(ctx.repo->source_filter);
+               cgit_open_filter(ctx.repo->source_filter, filter_arg);
                html_raw(buf, size);
                cgit_close_filter(ctx.repo->source_filter);
-               free(ctx.repo->source_filter->argv[1]);
-               ctx.repo->source_filter->argv[1] = NULL;
+               free(filter_arg);
                html("</code></pre></td></tr></table>\n");
                return;
        }
@@ -123,9 +121,8 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
 }
 
 
-static int ls_item(const unsigned char *sha1, const char *base, int baselen,
-                  const char *pathname, unsigned int mode, int stage,
-                  void *cbdata)
+static int ls_item(const unsigned char *sha1, struct strbuf *base,
+               const char *pathname, unsigned mode, int stage, void *cbdata)
 {
        struct walk_tree_context *walk_tree_ctx = cbdata;
        char *name;
@@ -218,16 +215,15 @@ static void ls_tree(const unsigned char *sha1, char *path, struct walk_tree_cont
 }
 
 
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
-                    const char *pathname, unsigned mode, int stage,
-                    void *cbdata)
+static int walk_tree(const unsigned char *sha1, struct strbuf *base,
+               const char *pathname, unsigned mode, int stage, void *cbdata)
 {
        struct walk_tree_context *walk_tree_ctx = cbdata;
        static char buffer[PATH_MAX];
 
        if (walk_tree_ctx->state == 0) {
-               memcpy(buffer, base, baselen);
-               strcpy(buffer + baselen, pathname);
+               memcpy(buffer, base->buf, base->len);
+               strcpy(buffer + base->len, pathname);
                if (strcmp(walk_tree_ctx->match_path, buffer))
                        return READ_TREE_RECURSIVE;
 
@@ -240,11 +236,10 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
                        return 0;
                }
        }
-       ls_item(sha1, base, baselen, pathname, mode, stage, walk_tree_ctx);
+       ls_item(sha1, base, pathname, mode, stage, walk_tree_ctx);
        return 0;
 }
 
-
 /*
  * Show a tree or a blob
  *   rev:  the commit pointing at the root tree object