X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/9973ef0207d21535a05610ca50d9f45c7c56c758..3fe509e17a337cbaa300b4b9aa2a248c2d0be873:/ui-log.c diff --git a/ui-log.c b/ui-log.c index 3c5130a..32b4c47 100644 --- a/ui-log.c +++ b/ui-log.c @@ -1,6 +1,6 @@ /* ui-log.c: functions for log output * - * Copyright (C) 2006 Lars Hjemli + * Copyright (C) 2006-2014 cgit Development Team * * Licensed under GNU General Public License v2 * (see COPYING for full license text) @@ -12,7 +12,7 @@ #include "ui-shared.h" #include "argv-array.h" -int files, add_lines, rem_lines; +static int files, add_lines, rem_lines; /* * The list of available column colors in the commit graph. @@ -56,28 +56,28 @@ static void inspect_files(struct diff_filepair *pair) void show_commit_decorations(struct commit *commit) { - struct name_decoration *deco; + const struct name_decoration *deco; static char buf[1024]; buf[sizeof(buf) - 1] = 0; - deco = lookup_decoration(&name_decoration, &commit->object); + deco = get_name_decoration(&commit->object); html(""); while (deco) { - if (!prefixcmp(deco->name, "refs/heads/")) { + if (starts_with(deco->name, "refs/heads/")) { strncpy(buf, deco->name + 11, sizeof(buf) - 1); cgit_log_link(buf, NULL, "branch-deco", buf, NULL, ctx.qry.vpath, 0, NULL, NULL, ctx.qry.showmsg); } - else if (!prefixcmp(deco->name, "tag: refs/tags/")) { + else if (starts_with(deco->name, "tag: refs/tags/")) { strncpy(buf, deco->name + 15, sizeof(buf) - 1); - cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf); + cgit_tag_link(buf, NULL, "tag-deco", buf); } - else if (!prefixcmp(deco->name, "refs/tags/")) { + else if (starts_with(deco->name, "refs/tags/")) { strncpy(buf, deco->name + 10, sizeof(buf) - 1); - cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf); + cgit_tag_link(buf, NULL, "tag-deco", buf); } - else if (!prefixcmp(deco->name, "refs/remotes/")) { + else if (starts_with(deco->name, "refs/remotes/")) { if (!ctx.repo->enable_remote_branches) goto next; strncpy(buf, deco->name + 13, sizeof(buf) - 1); @@ -90,7 +90,7 @@ void show_commit_decorations(struct commit *commit) strncpy(buf, deco->name, sizeof(buf) - 1); cgit_commit_link(buf, NULL, "deco", ctx.qry.head, sha1_to_hex(commit->object.sha1), - ctx.qry.vpath, 0); + ctx.qry.vpath); } next: deco = deco->next; @@ -165,10 +165,12 @@ static void print_commit(struct commit *commit, struct rev_info *revs) } } cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head, - sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0); + sha1_to_hex(commit->object.sha1), ctx.qry.vpath); show_commit_decorations(commit); html(""); + cgit_open_filter(ctx.repo->email_filter, info->author_email, "log"); html_txt(info->author); + cgit_close_filter(ctx.repo->email_filter); if (revs->graph) { html(""); @@ -291,7 +293,6 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern struct argv_array rev_argv = ARGV_ARRAY_INIT; int i, columns = commit_graph ? 4 : 3; int must_free_tip = 0; - struct strbuf argbuf = STRBUF_INIT; /* rev_argv.argv[0] will be ignored by setup_revisions */ argv_array_push(&rev_argv, "log_rev_setup"); @@ -305,10 +306,8 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern pattern = xstrdup(pattern); if (!strcmp(grep, "grep") || !strcmp(grep, "author") || !strcmp(grep, "committer")) { - strbuf_addf(&argbuf, "--%s=%s", grep, pattern); - argv_array_push(&rev_argv, argbuf.buf); - } - if (!strcmp(grep, "range")) { + argv_array_pushf(&rev_argv, "--%s=%s", grep, pattern); + } else if (!strcmp(grep, "range")) { char *arg; /* Split the pattern at whitespace and add each token * as a revision expression. Do not accept other @@ -327,33 +326,27 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern } } if (commit_graph) { - static const char *graph_arg = "--graph"; - static const char *color_arg = "--color"; - argv_array_push(&rev_argv, graph_arg); - argv_array_push(&rev_argv, color_arg); + argv_array_push(&rev_argv, "--graph"); + argv_array_push(&rev_argv, "--color"); graph_set_column_colors(column_colors_html, COLUMN_COLORS_HTML_MAX); } - if (commit_sort == 1) { - static const char *date_order_arg = "--date-order"; - argv_array_push(&rev_argv, date_order_arg); - } else if (commit_sort == 2) { - static const char *topo_order_arg = "--topo-order"; - argv_array_push(&rev_argv, topo_order_arg); - } + if (commit_sort == 1) + argv_array_push(&rev_argv, "--date-order"); + else if (commit_sort == 2) + argv_array_push(&rev_argv, "--topo-order"); - if (path) { - static const char *double_dash_arg = "--"; - argv_array_push(&rev_argv, double_dash_arg); + argv_array_push(&rev_argv, "--"); + if (path) argv_array_push(&rev_argv, path); - } init_revisions(&rev, NULL); rev.abbrev = DEFAULT_ABBREV; rev.commit_format = CMIT_FMT_DEFAULT; rev.verbose_header = 1; rev.show_root_diff = 0; + rev.ignore_missing = 1; setup_revisions(rev_argv.argc, rev_argv.argv, &rev, NULL); load_ref_decorations(DECORATE_FULL_REFS); rev.show_decorations = 1; @@ -395,16 +388,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern ofs = 0; for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; i++) { - free(commit->buffer); - commit->buffer = NULL; + free_commit_buffer(commit); free_commit_list(commit->parents); commit->parents = NULL; } for (i = 0; i < cnt && (commit = get_revision(&rev)) != NULL; i++) { print_commit(commit, &rev); - free(commit->buffer); - commit->buffer = NULL; + free_commit_buffer(commit); free_commit_list(commit->parents); commit->parents = NULL; } @@ -437,5 +428,4 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern /* If we allocated tip then it is safe to cast away const. */ if (must_free_tip) free((char*) tip); - strbuf_release(&argbuf); }