]> gitweb.ps.run Git - ps-cgit/commitdiff
Merge branch 'og/tree-view-selection'
authorLars Hjemli <hjemli@gmail.com>
Tue, 27 Jan 2009 19:21:56 +0000 (20:21 +0100)
committerLars Hjemli <hjemli@gmail.com>
Tue, 27 Jan 2009 19:21:56 +0000 (20:21 +0100)
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.css
tests/t0104-tree.sh
ui-tree.c

index e8214de13550e0e18bd2ef1b41f9d375bddb416c..f844efa7e8ae34c9f8d74f5703d218fdc5570b74 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 4b8e7a034cd7482075a9015c13584bd077d200f1..c26ba4c682802b0a0c09745511cc072e23c6ce3b 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");
 }