Fossil SCM
The "ln" query parameter causes lines numbers to be shown on the "annotate" webpage.
Commit
08f4eda728ae7bcfcdffd8768074f11a977aa210
Parent
3ff5ca0573fce22…
1 file changed
+12
-1
+12
-1
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -2110,12 +2110,16 @@ | ||
| 2110 | 2110 | int mid; |
| 2111 | 2111 | int fnid; |
| 2112 | 2112 | int i; |
| 2113 | 2113 | int iLimit; |
| 2114 | 2114 | int annFlags = 0; |
| 2115 | + int showLn = 0; /* True if line numbers should be shown */ | |
| 2116 | + char zLn[10]; /* Line number buffer */ | |
| 2117 | + char zFormat[10]; /* Format string for line numbers */ | |
| 2115 | 2118 | Annotator ann; |
| 2116 | 2119 | |
| 2120 | + showLn = P("ln")!=0; | |
| 2117 | 2121 | login_check_credentials(); |
| 2118 | 2122 | if( !g.perm.Read ){ login_needed(); return; } |
| 2119 | 2123 | mid = name_to_typed_rid(PD("checkin","0"),"ci"); |
| 2120 | 2124 | fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", P("filename")); |
| 2121 | 2125 | if( mid==0 || fnid==0 ){ fossil_redirect_home(); } |
| @@ -2135,14 +2139,21 @@ | ||
| 2135 | 2139 | } |
| 2136 | 2140 | @ </ol> |
| 2137 | 2141 | @ <hr> |
| 2138 | 2142 | @ <h2>Annotation:</h2> |
| 2139 | 2143 | } |
| 2144 | + if( showLn ){ | |
| 2145 | + sqlite3_snprintf(sizeof(zLn), zLn, "%d", ann.nOrig+1); | |
| 2146 | + sqlite3_snprintf(sizeof(zFormat), zFormat, "%%%dd:", strlen(zLn)); | |
| 2147 | + }else{ | |
| 2148 | + zLn[0] = 0; | |
| 2149 | + } | |
| 2140 | 2150 | @ <pre> |
| 2141 | 2151 | for(i=0; i<ann.nOrig; i++){ |
| 2142 | 2152 | ((char*)ann.aOrig[i].z)[ann.aOrig[i].n] = 0; |
| 2143 | - @ %s(ann.aOrig[i].zSrc): %h(ann.aOrig[i].z) | |
| 2153 | + if( showLn ) sqlite3_snprintf(sizeof(zLn), zLn, zFormat, i+1); | |
| 2154 | + @ %s(ann.aOrig[i].zSrc):%s(zLn) %h(ann.aOrig[i].z) | |
| 2144 | 2155 | } |
| 2145 | 2156 | @ </pre> |
| 2146 | 2157 | style_footer(); |
| 2147 | 2158 | } |
| 2148 | 2159 | |
| 2149 | 2160 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2110,12 +2110,16 @@ | |
| 2110 | int mid; |
| 2111 | int fnid; |
| 2112 | int i; |
| 2113 | int iLimit; |
| 2114 | int annFlags = 0; |
| 2115 | Annotator ann; |
| 2116 | |
| 2117 | login_check_credentials(); |
| 2118 | if( !g.perm.Read ){ login_needed(); return; } |
| 2119 | mid = name_to_typed_rid(PD("checkin","0"),"ci"); |
| 2120 | fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", P("filename")); |
| 2121 | if( mid==0 || fnid==0 ){ fossil_redirect_home(); } |
| @@ -2135,14 +2139,21 @@ | |
| 2135 | } |
| 2136 | @ </ol> |
| 2137 | @ <hr> |
| 2138 | @ <h2>Annotation:</h2> |
| 2139 | } |
| 2140 | @ <pre> |
| 2141 | for(i=0; i<ann.nOrig; i++){ |
| 2142 | ((char*)ann.aOrig[i].z)[ann.aOrig[i].n] = 0; |
| 2143 | @ %s(ann.aOrig[i].zSrc): %h(ann.aOrig[i].z) |
| 2144 | } |
| 2145 | @ </pre> |
| 2146 | style_footer(); |
| 2147 | } |
| 2148 | |
| 2149 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2110,12 +2110,16 @@ | |
| 2110 | int mid; |
| 2111 | int fnid; |
| 2112 | int i; |
| 2113 | int iLimit; |
| 2114 | int annFlags = 0; |
| 2115 | int showLn = 0; /* True if line numbers should be shown */ |
| 2116 | char zLn[10]; /* Line number buffer */ |
| 2117 | char zFormat[10]; /* Format string for line numbers */ |
| 2118 | Annotator ann; |
| 2119 | |
| 2120 | showLn = P("ln")!=0; |
| 2121 | login_check_credentials(); |
| 2122 | if( !g.perm.Read ){ login_needed(); return; } |
| 2123 | mid = name_to_typed_rid(PD("checkin","0"),"ci"); |
| 2124 | fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", P("filename")); |
| 2125 | if( mid==0 || fnid==0 ){ fossil_redirect_home(); } |
| @@ -2135,14 +2139,21 @@ | |
| 2139 | } |
| 2140 | @ </ol> |
| 2141 | @ <hr> |
| 2142 | @ <h2>Annotation:</h2> |
| 2143 | } |
| 2144 | if( showLn ){ |
| 2145 | sqlite3_snprintf(sizeof(zLn), zLn, "%d", ann.nOrig+1); |
| 2146 | sqlite3_snprintf(sizeof(zFormat), zFormat, "%%%dd:", strlen(zLn)); |
| 2147 | }else{ |
| 2148 | zLn[0] = 0; |
| 2149 | } |
| 2150 | @ <pre> |
| 2151 | for(i=0; i<ann.nOrig; i++){ |
| 2152 | ((char*)ann.aOrig[i].z)[ann.aOrig[i].n] = 0; |
| 2153 | if( showLn ) sqlite3_snprintf(sizeof(zLn), zLn, zFormat, i+1); |
| 2154 | @ %s(ann.aOrig[i].zSrc):%s(zLn) %h(ann.aOrig[i].z) |
| 2155 | } |
| 2156 | @ </pre> |
| 2157 | style_footer(); |
| 2158 | } |
| 2159 | |
| 2160 |