]> granicus.if.org Git - cgit/commitdiff
changed objects are outputted, allowing for selections of code only
authorOnne Gorter <onne.gorter@avinity.net>
Wed, 7 Jan 2009 12:56:14 +0000 (13:56 +0100)
committerLars Hjemli <hjemli@gmail.com>
Sat, 10 Jan 2009 11:13:54 +0000 (12:13 +0100)
cgit.css
tests/t0104-tree.sh
ui-tree.c

index 7928c2f4f86f0b597a3b992ff7815adca1d4bef0..068c37b8bf5f9d1cbd76284fbad758c05a2eafff 100644 (file)
--- a/cgit.css
+++ b/cgit.css
@@ -236,26 +236,31 @@ table.blob {
        border-top: solid 1px black;
 }
 
-table.blob td.no {
-       border-right: solid 1px black;
+table.blob td.lines {
+       margin: 0; padding: 0;
+       vertical-align: top;
        color: black;
+}
+
+table.blob td.linenumbers {
+       margin: 0; padding: 0;
+       vertical-align: top;
+       border-right: 1px solid gray;
        background-color: #eee;
-       text-align: right;
 }
 
-table.blob td.no a {
-       color: black;
+table.blob pre {
+       padding: 0; margin: 0;
 }
 
-table.blob td.no a:hover {
-       color: black;
+table.blob a.no {
+       color: gray;
+       text-align: right;
        text-decoration: none;
 }
 
-table.blob td.txt {
-       white-space: pre;
-       font-family: monospace;
-       padding-left: 0.5em;
+table.blob a.no a:hover {
+       color: black;
 }
 
 table.nowrap td {
index 33f4eb00ff2808e9f4335b397e809d695b464301..2ce1251cbf56d06cc0f940cb36bd18b4537c78ef 100755 (executable)
@@ -11,11 +11,11 @@ run_test 'find file-50' 'grep -e "file-50" trash/tmp'
 run_test 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >trash/tmp'
 
 run_test 'find line 1' '
-       grep -e "<a id=.n1. name=.n1. href=.#n1.>1</a>" trash/tmp
+       grep -e "<a class=.no. id=.n1. name=.n1. href=.#n1.>1</a>" trash/tmp
 '
 
 run_test 'no line 2' '
-       ! grep -e "<a id=.n2. name=.n2. href=.#n2.>2</a>" trash/tmp
+       ! grep -e "<a class=.no. id=.n2. name=.n2. href=.#n2.>2</a>" trash/tmp
 '
 
 run_test 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >trash/tmp'
index 9876c9972e9558f82632d03280997cc8db234fac..2a8625c29e1bba45c0160b856fa4602f08cd3b93 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -18,8 +18,8 @@ static void print_object(const unsigned char *sha1, char *path)
 {
        enum object_type type;
        char *buf;
-       unsigned long size, lineno, start, idx;
-       const char *linefmt = "<tr><td class='no'><a id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a></td><td class='txt'>";
+       unsigned long size, lineno, idx;
+       const char *numberfmt = "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n";
 
        type = sha1_object_info(sha1, &size);
        if (type == OBJ_BAD) {
@@ -38,27 +38,28 @@ static void print_object(const unsigned char *sha1, char *path)
        html(" (");
        cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
                        curr_rev, path);
-       htmlf(")<br/>blob: %s", sha1_to_hex(sha1));
+       htmlf(")<br/>blob: %s\n", sha1_to_hex(sha1));
 
        html("<table summary='blob content' class='blob'>\n");
+       html("<tr>\n");
+
+       html("<td class='linenumbers'><pre>");
        idx = 0;
-       start = 0;
        lineno = 0;
-       while(idx < size) {
+       htmlf(numberfmt, ++lineno);
+       while(idx < size - 1) { // skip absolute last newline
                if (buf[idx] == '\n') {
-                       buf[idx] = '\0';
-                       htmlf(linefmt, ++lineno);
-                       html_txt(buf + start);
-                       html("</td></tr>\n");
-                       start = idx + 1;
+                       htmlf(numberfmt, ++lineno);
                }
                idx++;
        }
-       if (start < idx) {
-               htmlf(linefmt, ++lineno);
-               html_txt(buf + start);
-       }
-       html("</td></tr>\n");
+       html("</pre></td>\n");
+
+       html("<td class='lines'><pre><code>");
+       html_txt(buf);
+       html("</code></pre></td>\n");
+
+       html("</tr>\n");
        html("</table>\n");
 }