Fossil SCM

The "ln" query parameter causes lines numbers to be shown on the "annotate" webpage.

drh 2012-12-04 01:10 trunk
Commit 08f4eda728ae7bcfcdffd8768074f11a977aa210
1 file changed +12 -1
+12 -1
--- src/diff.c
+++ src/diff.c
@@ -2110,12 +2110,16 @@
21102110
int mid;
21112111
int fnid;
21122112
int i;
21132113
int iLimit;
21142114
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 */
21152118
Annotator ann;
21162119
2120
+ showLn = P("ln")!=0;
21172121
login_check_credentials();
21182122
if( !g.perm.Read ){ login_needed(); return; }
21192123
mid = name_to_typed_rid(PD("checkin","0"),"ci");
21202124
fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", P("filename"));
21212125
if( mid==0 || fnid==0 ){ fossil_redirect_home(); }
@@ -2135,14 +2139,21 @@
21352139
}
21362140
@ </ol>
21372141
@ <hr>
21382142
@ <h2>Annotation:</h2>
21392143
}
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
+ }
21402150
@ <pre>
21412151
for(i=0; i<ann.nOrig; i++){
21422152
((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)
21442155
}
21452156
@ </pre>
21462157
style_footer();
21472158
}
21482159
21492160
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button