summaryrefslogtreecommitdiffabout
path: root/ui-commit.c
Unidiff
Diffstat (limited to 'ui-commit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-commit.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ui-commit.c b/ui-commit.c
index 25721ca..ed25824 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -1,25 +1,26 @@
1/* ui-commit.c: generate commit view 1/* ui-commit.c: generate commit view
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10#include "html.h"
10 11
11static int files, slots; 12static int files, slots;
12static int total_adds, total_rems, max_changes; 13static int total_adds, total_rems, max_changes;
13static int lines_added, lines_removed; 14static int lines_added, lines_removed;
14static char *curr_rev; 15static char *curr_rev;
15 16
16static struct fileinfo { 17static struct fileinfo {
17 char status; 18 char status;
18 unsigned char old_sha1[20]; 19 unsigned char old_sha1[20];
19 unsigned char new_sha1[20]; 20 unsigned char new_sha1[20];
20 unsigned short old_mode; 21 unsigned short old_mode;
21 unsigned short new_mode; 22 unsigned short new_mode;
22 char *old_path; 23 char *old_path;
23 char *new_path; 24 char *new_path;
24 unsigned int added; 25 unsigned int added;
25 unsigned int removed; 26 unsigned int removed;
@@ -49,42 +50,42 @@ void print_fileinfo(struct fileinfo *info)
49 case DIFF_STATUS_TYPE_CHANGED: 50 case DIFF_STATUS_TYPE_CHANGED:
50 class = "typ"; 51 class = "typ";
51 break; 52 break;
52 case DIFF_STATUS_UNKNOWN: 53 case DIFF_STATUS_UNKNOWN:
53 class = "unk"; 54 class = "unk";
54 break; 55 break;
55 case DIFF_STATUS_UNMERGED: 56 case DIFF_STATUS_UNMERGED:
56 class = "stg"; 57 class = "stg";
57 break; 58 break;
58 default: 59 default:
59 die("bug: unhandled diff status %c", info->status); 60 die("bug: unhandled diff status %c", info->status);
60 } 61 }
61 62
62 html("<tr>"); 63 html("<tr>");
63 htmlf("<td class='mode'>"); 64 htmlf("<td class='mode'>");
64 if (is_null_sha1(info->new_sha1)) { 65 if (is_null_sha1(info->new_sha1)) {
65 html_filemode(info->old_mode); 66 cgit_print_filemode(info->old_mode);
66 } else { 67 } else {
67 html_filemode(info->new_mode); 68 cgit_print_filemode(info->new_mode);
68 } 69 }
69 70
70 if (info->old_mode != info->new_mode && 71 if (info->old_mode != info->new_mode &&
71 !is_null_sha1(info->old_sha1) && 72 !is_null_sha1(info->old_sha1) &&
72 !is_null_sha1(info->new_sha1)) { 73 !is_null_sha1(info->new_sha1)) {
73 html("<span class='modechange'>["); 74 html("<span class='modechange'>[");
74 html_filemode(info->old_mode); 75 cgit_print_filemode(info->old_mode);
75 html("]</span>"); 76 html("]</span>");
76 } 77 }
77 htmlf("</td><td class='%s'>", class); 78 htmlf("</td><td class='%s'>", class);
78 cgit_diff_link(info->new_path, NULL, NULL, ctx.qry.head, curr_rev, 79 cgit_diff_link(info->new_path, NULL, NULL, ctx.qry.head, curr_rev,
79 NULL, info->new_path); 80 NULL, info->new_path);
80 if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED) 81 if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED)
81 htmlf(" (%s from %s)", 82 htmlf(" (%s from %s)",
82 info->status == DIFF_STATUS_COPIED ? "copied" : "renamed", 83 info->status == DIFF_STATUS_COPIED ? "copied" : "renamed",
83 info->old_path); 84 info->old_path);
84 html("</td><td class='right'>"); 85 html("</td><td class='right'>");
85 htmlf("%d", info->added + info->removed); 86 htmlf("%d", info->added + info->removed);
86 html("</td><td class='graph'>"); 87 html("</td><td class='graph'>");
87 htmlf("<table summary='file diffstat' width='%d%%'><tr>", (max_changes > 100 ? 100 : max_changes)); 88 htmlf("<table summary='file diffstat' width='%d%%'><tr>", (max_changes > 100 ? 100 : max_changes));
88 htmlf("<td class='add' style='width: %.1f%%;'/>", 89 htmlf("<td class='add' style='width: %.1f%%;'/>",
89 info->added * 100.0 / max_changes); 90 info->added * 100.0 / max_changes);
90 htmlf("<td class='rem' style='width: %.1f%%;'/>", 91 htmlf("<td class='rem' style='width: %.1f%%;'/>",