Fossil SCM

A cleaner solution to the Clear Glob link fix in [e576ce7b5598710a5].

stephan 2024-10-12 07:16 trunk
Commit 7f288c6d43ec7122ab29b78c003e0ea61f27c27a617668f2c74ded613bdb5075
1 file changed +13 -10
+13 -10
--- src/info.c
+++ src/info.c
@@ -1198,18 +1198,20 @@
11981198
Glob * pGlob = 0;
11991199
char *zMergeOrigin = 0;
12001200
ReCompiled *pRe = 0;
12011201
DiffConfig DCfg, *pCfg = 0;
12021202
int graphFlags = 0;
1203
- Blob qp;
1203
+ Blob qp; /* non-glob= query parameters for generated links */
1204
+ Blob qpGlob; /* glob= query parameter for generated links */
12041205
int bInvert = PB("inv");
12051206
12061207
login_check_credentials();
12071208
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
12081209
login_anonymous_available();
12091210
fossil_nice_default();
12101211
blob_init(&qp, 0, 0);
1212
+ blob_init(&qpGlob, 0, 0);
12111213
diffType = preferred_diff_type();
12121214
zRe = P("regex");
12131215
if( zRe ) re_compile(&pRe, zRe, 0);
12141216
zBranch = P("branch");
12151217
if( zBranch && zBranch[0]==0 ) zBranch = 0;
@@ -1245,17 +1247,15 @@
12451247
pTo = pFrom;
12461248
pFrom = pTemp;
12471249
zTo = zFrom;
12481250
zFrom = zTemp;
12491251
}
1250
- if( P("clearglob") ){
1251
- zGlob = 0;
1252
- }else if( zGlob){
1252
+ if( zGlob ){
12531253
if( !*zGlob ){
12541254
zGlob = NULL;
12551255
}else{
1256
- blob_appendf(&qp, "&glob=%T", zGlob);
1256
+ blob_appendf(&qpGlob, "&glob=%T", zGlob);
12571257
pGlob = glob_create(zGlob);
12581258
}
12591259
}
12601260
if( PB("nc") ){
12611261
graphFlags |= TIMELINE_NOCOLOR;
@@ -1269,23 +1269,25 @@
12691269
style_set_current_feature("vdiff");
12701270
if( zBranch==0 ){
12711271
style_submenu_element("Path", "%R/timeline?me=%T&you=%T", zFrom, zTo);
12721272
}
12731273
if( diffType!=0 ){
1274
- style_submenu_element("Hide Diff", "%R/vdiff?diff=0&%b", &qp);
1274
+ style_submenu_element("Hide Diff", "%R/vdiff?diff=0&%b%b", &qp, &qpGlob);
12751275
}
12761276
if( diffType!=2 ){
1277
- style_submenu_element("Side-by-Side Diff", "%R/vdiff?diff=2&%b", &qp);
1277
+ style_submenu_element("Side-by-Side Diff", "%R/vdiff?diff=2&%b%b", &qp,
1278
+ &qpGlob);
12781279
}
12791280
if( diffType!=1 ) {
1280
- style_submenu_element("Unified Diff", "%R/vdiff?diff=1&%b", &qp);
1281
+ style_submenu_element("Unified Diff", "%R/vdiff?diff=1&%b%b", &qp, &qpGlob);
12811282
}
12821283
if( zBranch==0 ){
1283
- style_submenu_element("Invert","%R/vdiff?diff=%d&inv&%b", diffType, &qp);
1284
+ style_submenu_element("Invert","%R/vdiff?diff=%d&inv&%b%b", diffType,
1285
+ &qp, &qpGlob);
12841286
}
12851287
if( zGlob ){
1286
- style_submenu_element("Clear glob", "%R/vdiff?diff=%d&%b&clearglob", diffType, &qp);
1288
+ style_submenu_element("Clear glob", "%R/vdiff?diff=%d&%b", diffType, &qp);
12871289
}else{
12881290
style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo,
12891291
(DCfg.diffFlags & DIFF_IGNORE_ALLWS)?"&w":"");
12901292
}
12911293
if( diffType!=0 ){
@@ -1327,10 +1329,11 @@
13271329
@ <p><b>Only files matching the glob "%h(zGlob)" are shown.</b></p>
13281330
}
13291331
@<hr><p>
13301332
}
13311333
blob_reset(&qp);
1334
+ blob_reset(&qpGlob);
13321335
13331336
manifest_file_rewind(pFrom);
13341337
pFileFrom = manifest_file_next(pFrom, 0);
13351338
manifest_file_rewind(pTo);
13361339
pFileTo = manifest_file_next(pTo, 0);
13371340
--- src/info.c
+++ src/info.c
@@ -1198,18 +1198,20 @@
1198 Glob * pGlob = 0;
1199 char *zMergeOrigin = 0;
1200 ReCompiled *pRe = 0;
1201 DiffConfig DCfg, *pCfg = 0;
1202 int graphFlags = 0;
1203 Blob qp;
 
1204 int bInvert = PB("inv");
1205
1206 login_check_credentials();
1207 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1208 login_anonymous_available();
1209 fossil_nice_default();
1210 blob_init(&qp, 0, 0);
 
1211 diffType = preferred_diff_type();
1212 zRe = P("regex");
1213 if( zRe ) re_compile(&pRe, zRe, 0);
1214 zBranch = P("branch");
1215 if( zBranch && zBranch[0]==0 ) zBranch = 0;
@@ -1245,17 +1247,15 @@
1245 pTo = pFrom;
1246 pFrom = pTemp;
1247 zTo = zFrom;
1248 zFrom = zTemp;
1249 }
1250 if( P("clearglob") ){
1251 zGlob = 0;
1252 }else if( zGlob){
1253 if( !*zGlob ){
1254 zGlob = NULL;
1255 }else{
1256 blob_appendf(&qp, "&glob=%T", zGlob);
1257 pGlob = glob_create(zGlob);
1258 }
1259 }
1260 if( PB("nc") ){
1261 graphFlags |= TIMELINE_NOCOLOR;
@@ -1269,23 +1269,25 @@
1269 style_set_current_feature("vdiff");
1270 if( zBranch==0 ){
1271 style_submenu_element("Path", "%R/timeline?me=%T&you=%T", zFrom, zTo);
1272 }
1273 if( diffType!=0 ){
1274 style_submenu_element("Hide Diff", "%R/vdiff?diff=0&%b", &qp);
1275 }
1276 if( diffType!=2 ){
1277 style_submenu_element("Side-by-Side Diff", "%R/vdiff?diff=2&%b", &qp);
 
1278 }
1279 if( diffType!=1 ) {
1280 style_submenu_element("Unified Diff", "%R/vdiff?diff=1&%b", &qp);
1281 }
1282 if( zBranch==0 ){
1283 style_submenu_element("Invert","%R/vdiff?diff=%d&inv&%b", diffType, &qp);
 
1284 }
1285 if( zGlob ){
1286 style_submenu_element("Clear glob", "%R/vdiff?diff=%d&%b&clearglob", diffType, &qp);
1287 }else{
1288 style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo,
1289 (DCfg.diffFlags & DIFF_IGNORE_ALLWS)?"&w":"");
1290 }
1291 if( diffType!=0 ){
@@ -1327,10 +1329,11 @@
1327 @ <p><b>Only files matching the glob "%h(zGlob)" are shown.</b></p>
1328 }
1329 @<hr><p>
1330 }
1331 blob_reset(&qp);
 
1332
1333 manifest_file_rewind(pFrom);
1334 pFileFrom = manifest_file_next(pFrom, 0);
1335 manifest_file_rewind(pTo);
1336 pFileTo = manifest_file_next(pTo, 0);
1337
--- src/info.c
+++ src/info.c
@@ -1198,18 +1198,20 @@
1198 Glob * pGlob = 0;
1199 char *zMergeOrigin = 0;
1200 ReCompiled *pRe = 0;
1201 DiffConfig DCfg, *pCfg = 0;
1202 int graphFlags = 0;
1203 Blob qp; /* non-glob= query parameters for generated links */
1204 Blob qpGlob; /* glob= query parameter for generated links */
1205 int bInvert = PB("inv");
1206
1207 login_check_credentials();
1208 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1209 login_anonymous_available();
1210 fossil_nice_default();
1211 blob_init(&qp, 0, 0);
1212 blob_init(&qpGlob, 0, 0);
1213 diffType = preferred_diff_type();
1214 zRe = P("regex");
1215 if( zRe ) re_compile(&pRe, zRe, 0);
1216 zBranch = P("branch");
1217 if( zBranch && zBranch[0]==0 ) zBranch = 0;
@@ -1245,17 +1247,15 @@
1247 pTo = pFrom;
1248 pFrom = pTemp;
1249 zTo = zFrom;
1250 zFrom = zTemp;
1251 }
1252 if( zGlob ){
 
 
1253 if( !*zGlob ){
1254 zGlob = NULL;
1255 }else{
1256 blob_appendf(&qpGlob, "&glob=%T", zGlob);
1257 pGlob = glob_create(zGlob);
1258 }
1259 }
1260 if( PB("nc") ){
1261 graphFlags |= TIMELINE_NOCOLOR;
@@ -1269,23 +1269,25 @@
1269 style_set_current_feature("vdiff");
1270 if( zBranch==0 ){
1271 style_submenu_element("Path", "%R/timeline?me=%T&you=%T", zFrom, zTo);
1272 }
1273 if( diffType!=0 ){
1274 style_submenu_element("Hide Diff", "%R/vdiff?diff=0&%b%b", &qp, &qpGlob);
1275 }
1276 if( diffType!=2 ){
1277 style_submenu_element("Side-by-Side Diff", "%R/vdiff?diff=2&%b%b", &qp,
1278 &qpGlob);
1279 }
1280 if( diffType!=1 ) {
1281 style_submenu_element("Unified Diff", "%R/vdiff?diff=1&%b%b", &qp, &qpGlob);
1282 }
1283 if( zBranch==0 ){
1284 style_submenu_element("Invert","%R/vdiff?diff=%d&inv&%b%b", diffType,
1285 &qp, &qpGlob);
1286 }
1287 if( zGlob ){
1288 style_submenu_element("Clear glob", "%R/vdiff?diff=%d&%b", diffType, &qp);
1289 }else{
1290 style_submenu_element("Patch", "%R/vpatch?from=%T&to=%T%s", zFrom, zTo,
1291 (DCfg.diffFlags & DIFF_IGNORE_ALLWS)?"&w":"");
1292 }
1293 if( diffType!=0 ){
@@ -1327,10 +1329,11 @@
1329 @ <p><b>Only files matching the glob "%h(zGlob)" are shown.</b></p>
1330 }
1331 @<hr><p>
1332 }
1333 blob_reset(&qp);
1334 blob_reset(&qpGlob);
1335
1336 manifest_file_rewind(pFrom);
1337 pFileFrom = manifest_file_next(pFrom, 0);
1338 manifest_file_rewind(pTo);
1339 pFileTo = manifest_file_next(pTo, 0);
1340

Keyboard Shortcuts

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