]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-log.c
ui-blob.c: Use a context structure in walk_tree()
[ps-cgit] / ui-log.c
index 15ed6a3f63dabea9cad60ae645b1450178dc274e..2f41602a917de13ac9f9daa6cdd50ff15afa3c27 100644 (file)
--- a/ui-log.c
+++ b/ui-log.c
@@ -76,6 +76,8 @@ void show_commit_decorations(struct commit *commit)
                        cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf);
                }
                else if (!prefixcmp(deco->name, "refs/remotes/")) {
+                       if (!ctx.repo->enable_remote_branches)
+                               goto next;
                        strncpy(buf, deco->name + 13, sizeof(buf) - 1);
                        cgit_log_link(buf, NULL, "remote-deco", NULL,
                                      sha1_to_hex(commit->object.sha1),
@@ -88,6 +90,7 @@ void show_commit_decorations(struct commit *commit)
                                         sha1_to_hex(commit->object.sha1),
                                         ctx.qry.vpath, 0);
                }
+next:
                deco = deco->next;
        }
 }
@@ -99,11 +102,10 @@ void print_commit(struct commit *commit, struct rev_info *revs)
        struct strbuf graphbuf = STRBUF_INIT;
        struct strbuf msgbuf = STRBUF_INIT;
 
-       if (ctx.repo->enable_log_filecount) {
+       if (ctx.repo->enable_log_filecount)
+               cols++;
+       if (ctx.repo->enable_log_linecount)
                cols++;
-               if (ctx.repo->enable_log_linecount)
-                       cols++;
-       }
 
        if (revs->graph) {
                /* Advance graph until current commit */
@@ -170,18 +172,18 @@ void print_commit(struct commit *commit, struct rev_info *revs)
                cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE);
        }
 
-       if (ctx.repo->enable_log_filecount) {
+       if (ctx.repo->enable_log_filecount || ctx.repo->enable_log_linecount) {
                files = 0;
                add_lines = 0;
                rem_lines = 0;
                cgit_diff_commit(commit, inspect_files, ctx.qry.vpath);
-               html("</td><td>");
-               htmlf("%d", files);
-               if (ctx.repo->enable_log_linecount) {
-                       html("</td><td>");
-                       htmlf("-%d/+%d", rem_lines, add_lines);
-               }
        }
+
+       if (ctx.repo->enable_log_filecount)
+               htmlf("</td><td>%d", files);
+       if (ctx.repo->enable_log_linecount)
+               htmlf("</td><td>-%d/+%d", rem_lines, add_lines);
+
        html("</td></tr>\n");
 
        if (revs->graph || ctx.qry.showmsg) { /* Print a second table row */
@@ -276,7 +278,7 @@ static char *next_token(char **src)
 }
 
 void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern,
-                   char *path, int pager, int commit_graph)
+                   char *path, int pager, int commit_graph, int commit_sort)
 {
        struct rev_info rev;
        struct commit *commit;
@@ -325,6 +327,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
                                        COLUMN_COLORS_HTML_MAX);
        }
 
+       if (commit_sort == 1) {
+               static const char *date_order_arg = "--date-order";
+               vector_push(&vec, &date_order_arg, 0);
+       } else if (commit_sort == 2) {
+               static const char *topo_order_arg = "--topo-order";
+               vector_push(&vec, &topo_order_arg, 0);
+       }
+
        if (path) {
                arg = "--";
                vector_push(&vec, &arg, 0);
@@ -370,10 +380,10 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
        if (ctx.repo->enable_log_filecount) {
                html("<th class='left'>Files</th>");
                columns++;
-               if (ctx.repo->enable_log_linecount) {
-                       html("<th class='left'>Lines</th>");
-                       columns++;
-               }
+       }
+       if (ctx.repo->enable_log_linecount) {
+               html("<th class='left'>Lines</th>");
+               columns++;
        }
        html("</tr>\n");