about summary refs log tree commit diff stats
path: root/ui-ssdiff.c
diff options
context:
space:
mode:
authorPeter Wu2013-10-03 12:17:23 +0200
committerJason A. Donenfeld2014-01-08 14:59:38 +0100
commit4468ec1b15becf3838d8cf38440c527c487565a4 (patch)
tree4c9220561ab256dc012e17146f6d0546637e6c69 /ui-ssdiff.c
parentplain: don't append charset for binary MIME types (diff)
downloadcgit-4468ec1b15becf3838d8cf38440c527c487565a4.tar.gz
cgit-4468ec1b15becf3838d8cf38440c527c487565a4.zip
Reduce line number bloat, fix hover effect
Currently line numbers look like (for blob view and sdiff respectively):

    <a class='no' id='n68' name='n68' href='#n68'>68</a>
    <td class='lineno'><a class='no' href='...#n1' id='n1' name='n1'>1</a></td>

name=".." is unnecessary if the id attribute is set (this even applies
to IE6), so drop it. (aside, in HTML5, the name attribute is gone.)

The line number links can be selected through their parent classes, no
need for another class "no", so drop it too.

For a file with 2000 lines, this yields a saving of 40% (29% gzipped).

While at it, fix the hover effect of line numbers: now the line number
get a black background as was intended.

Signed-off-by: Peter Wu <lekensteyn@gmail.com>
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
Diffstat (limited to 'ui-ssdiff.c')
-rw-r--r--ui-ssdiff.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ui-ssdiff.c b/ui-ssdiff.c index cbe60bd..08cf513 100644 --- a/ui-ssdiff.c +++ b/ui-ssdiff.c
@@ -230,9 +230,9 @@ static void print_ssdiff_line(char *class,
230 struct diff_filespec *old_file = cgit_get_current_old_file(); 230 struct diff_filespec *old_file = cgit_get_current_old_file();
231 char *lineno_str = fmt("n%d", old_line_no); 231 char *lineno_str = fmt("n%d", old_line_no);
232 char *id_str = fmt("id=%s#%s", is_null_sha1(old_file->sha1)?"HEAD":sha1_to_hex(old_rev_sha1), lineno_str); 232 char *id_str = fmt("id=%s#%s", is_null_sha1(old_file->sha1)?"HEAD":sha1_to_hex(old_rev_sha1), lineno_str);
233 html("<td class='lineno'><a class='no' href='"); 233 html("<td class='lineno'><a href='");
234 html(cgit_fileurl(ctx.repo->url, "tree", old_file->path, id_str)); 234 html(cgit_fileurl(ctx.repo->url, "tree", old_file->path, id_str));
235 htmlf("' id='%s' name='%s'>%s</a>", lineno_str, lineno_str, lineno_str + 1); 235 htmlf("' id='%s'>%s</a>", lineno_str, lineno_str + 1);
236 html("</td>"); 236 html("</td>");
237 htmlf("<td class='%s'>", class); 237 htmlf("<td class='%s'>", class);
238 } else if (old_line) 238 } else if (old_line)
@@ -251,9 +251,9 @@ static void print_ssdiff_line(char *class,
251 struct diff_filespec *new_file = cgit_get_current_new_file(); 251 struct diff_filespec *new_file = cgit_get_current_new_file();
252 char *lineno_str = fmt("n%d", new_line_no); 252 char *lineno_str = fmt("n%d", new_line_no);
253 char *id_str = fmt("id=%s#%s", is_null_sha1(new_file->sha1)?"HEAD":sha1_to_hex(new_rev_sha1), lineno_str); 253 char *id_str = fmt("id=%s#%s", is_null_sha1(new_file->sha1)?"HEAD":sha1_to_hex(new_rev_sha1), lineno_str);
254 html("<td class='lineno'><a class='no' href='"); 254 html("<td class='lineno'><a href='");
255 html(cgit_fileurl(ctx.repo->url, "tree", new_file->path, id_str)); 255 html(cgit_fileurl(ctx.repo->url, "tree", new_file->path, id_str));
256 htmlf("' id='%s' name='%s'>%s</a>", lineno_str, lineno_str, lineno_str + 1); 256 htmlf("' id='%s'>%s</a>", lineno_str, lineno_str + 1);
257 html("</td>"); 257 html("</td>");
258 htmlf("<td class='%s'>", class); 258 htmlf("<td class='%s'>", class);
259 } else if (new_line) 259 } else if (new_line)