make file in diff a link, make hunk and link anchor - stagit-gopher - A git gopher frontend. (mirror) HTML git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit 53d6b47cc28903f9344245a36d33be6d0a6eee45 DIR parent ded9719afd1c9108dc6bbebb8205086a740add3b HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Mon, 7 Dec 2015 19:00:16 +0100 make file in diff a link, make hunk and link anchor Diffstat: M urmoms.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- DIR diff --git a/urmoms.c b/urmoms.c @@ -259,7 +259,7 @@ printshowfile(git_commit *commit) } delta = git_patch_get_delta(patch); - fprintf(fp, "diff --git a/<a href=\"%s%s\">%s</a> b/<a href=\"%s%s\">%s</a>\n", + fprintf(fp, "diff --git a/<a href=\"%sfile/%s\">%s</a> b/<a href=\"%sfile/%s\">%s</a>\n", relpath, delta->old_file.path, delta->old_file.path, relpath, delta->new_file.path, delta->new_file.path); @@ -285,12 +285,16 @@ printshowfile(git_commit *commit) if (git_patch_get_line_in_hunk(&line, patch, j, k)) break; if (line->old_lineno == -1) - fputc('+', fp); + fprintf(fp, "<span class=\"i\"><a href=\"#h%zu-%zu\" id=\"h%zu-%zu\">+", + j, k, j, k); else if (line->new_lineno == -1) - fputc('-', fp); + fprintf(fp, "<span class=\"d\"><a href=\"#h%zu-%zu\" id=\"h%zu-%zu\">-", + j, k, j, k); else fputc(' ', fp); xmlencode(fp, line->content, line->content_len); + if (line->old_lineno == -1 || line->new_lineno == -1) + fputs("</a></span>", fp); } } git_patch_free(patch);