summaryrefslogtreecommitdiffabout
path: root/ui-log.c
Unidiff
Diffstat (limited to 'ui-log.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-log.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/ui-log.c b/ui-log.c
index 27f5a1a..6d7fcae 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -90,71 +90,75 @@ void print_commit(struct commit *commit)
90 tmp = cgit_fileurl(ctx.repo->url, "commit", ctx.qry.vpath, tmp); 90 tmp = cgit_fileurl(ctx.repo->url, "commit", ctx.qry.vpath, tmp);
91 html_link_open(tmp, NULL, NULL); 91 html_link_open(tmp, NULL, NULL);
92 cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); 92 cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE);
93 html_link_close(); 93 html_link_close();
94 htmlf("</td><td%s>", 94 htmlf("</td><td%s>",
95 ctx.qry.showmsg ? " class='logsubject'" : ""); 95 ctx.qry.showmsg ? " class='logsubject'" : "");
96 cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head, 96 cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head,
97 sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0); 97 sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0);
98 show_commit_decorations(commit); 98 show_commit_decorations(commit);
99 html("</td><td>"); 99 html("</td><td>");
100 html_txt(info->author); 100 html_txt(info->author);
101 if (ctx.repo->enable_log_filecount) { 101 if (ctx.repo->enable_log_filecount) {
102 files = 0; 102 files = 0;
103 add_lines = 0; 103 add_lines = 0;
104 rem_lines = 0; 104 rem_lines = 0;
105 cgit_diff_commit(commit, inspect_files, ctx.qry.vpath); 105 cgit_diff_commit(commit, inspect_files, ctx.qry.vpath);
106 html("</td><td>"); 106 html("</td><td>");
107 htmlf("%d", files); 107 htmlf("%d", files);
108 if (ctx.repo->enable_log_linecount) { 108 if (ctx.repo->enable_log_linecount) {
109 html("</td><td>"); 109 html("</td><td>");
110 htmlf("-%d/+%d", rem_lines, add_lines); 110 htmlf("-%d/+%d", rem_lines, add_lines);
111 } 111 }
112 } 112 }
113 html("</td></tr>\n"); 113 html("</td></tr>\n");
114 if (ctx.qry.showmsg) { 114
115 struct strbuf notes = STRBUF_INIT; 115 if (ctx.qry.showmsg) { /* Print message + notes in a second table row */
116 format_note(NULL, commit->object.sha1, &notes, PAGE_ENCODING, 0); 116 /* Concatenate commit message and notes in msgbuf */
117 struct strbuf msgbuf = STRBUF_INIT;
118 if (info->msg && *(info->msg)) {
119 strbuf_addstr(&msgbuf, info->msg);
120 strbuf_addch(&msgbuf, '\n');
121 }
122 format_note(NULL, commit->object.sha1, &msgbuf, PAGE_ENCODING,
123 NOTES_SHOW_HEADER | NOTES_INDENT);
124 strbuf_addch(&msgbuf, '\n');
125 strbuf_ltrim(&msgbuf);
117 126
118 if (ctx.repo->enable_log_filecount) { 127 if (ctx.repo->enable_log_filecount) {
119 cols++; 128 cols++;
120 if (ctx.repo->enable_log_linecount) 129 if (ctx.repo->enable_log_linecount)
121 cols++; 130 cols++;
122 } 131 }
132
133 /* Create second table row containing msgbuf */
123 htmlf("<tr class='nohover'><td/><td colspan='%d' class='logmsg'>", 134 htmlf("<tr class='nohover'><td/><td colspan='%d' class='logmsg'>",
124 cols); 135 cols);
125 html_txt(info->msg); 136 html_txt(msgbuf.buf);
126 html("</td></tr>\n"); 137 html("</td></tr>\n");
127 if (notes.len != 0) { 138 strbuf_release(&msgbuf);
128 html("<tr class='nohover'>");
129 html("<td class='lognotes-label'>Notes:</td>");
130 htmlf("<td colspan='%d' class='lognotes'>",
131 cols);
132 html_txt(notes.buf);
133 html("</td></tr>\n");
134 }
135 strbuf_release(&notes);
136 } 139 }
140
137 cgit_free_commitinfo(info); 141 cgit_free_commitinfo(info);
138} 142}
139 143
140static const char *disambiguate_ref(const char *ref) 144static const char *disambiguate_ref(const char *ref)
141{ 145{
142 unsigned char sha1[20]; 146 unsigned char sha1[20];
143 const char *longref; 147 const char *longref;
144 148
145 longref = fmt("refs/heads/%s", ref); 149 longref = fmt("refs/heads/%s", ref);
146 if (get_sha1(longref, sha1) == 0) 150 if (get_sha1(longref, sha1) == 0)
147 return longref; 151 return longref;
148 152
149 return ref; 153 return ref;
150} 154}
151 155
152static char *next_token(char **src) 156static char *next_token(char **src)
153{ 157{
154 char *result; 158 char *result;
155 159
156 if (!src || !*src) 160 if (!src || !*src)
157 return NULL; 161 return NULL;
158 while (isspace(**src)) 162 while (isspace(**src))
159 (*src)++; 163 (*src)++;
160 if (!**src) 164 if (!**src)