Fossil SCM

Add "w" URL parameter and buttons to /fdiff pages.

joel 2014-03-05 02:39 diff-eolws
Commit 0ec153a2a7b94523dd880ed08c689e581dbf915b
1 file changed +17 -5
+17 -5
--- src/info.c
+++ src/info.c
@@ -666,11 +666,11 @@
666666
login_anonymous_available();
667667
}
668668
db_finalize(&q1);
669669
showTags(rid, "");
670670
if( zParent ){
671
- const char *zW; /* URL param for hiding whitespace */
671
+ const char *zW; /* URL param for ignoring whitespace */
672672
const char *zPage = "vinfo"; /* Page that shows diffs */
673673
const char *zPageHide = "ci"; /* Page that hides diffs */
674674
@ <div class="section">Changes</div>
675675
@ <div class="sectionmenu">
676676
verboseFlag = g.zPath[0]!='c';
@@ -1351,10 +1351,11 @@
13511351
int isPatch;
13521352
int sideBySide;
13531353
char *zV1;
13541354
char *zV2;
13551355
const char *zRe;
1356
+ const char *zW; /* URL param for ignoring whitespace */
13561357
ReCompiled *pRe = 0;
13571358
u64 diffFlags;
13581359
13591360
login_check_credentials();
13601361
if( !g.perm.Read ){ login_needed(); return; }
@@ -1381,20 +1382,31 @@
13811382
zV1 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v1);
13821383
zV2 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v2);
13831384
diffFlags = construct_diff_flags(1, sideBySide) | DIFF_HTML;
13841385
13851386
style_header("Diff");
1387
+ zW = (diffFlags&(DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS))?"&w":"";
1388
+ if( *zW ){
1389
+ diffFlags |= (DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS);
1390
+ style_submenu_element("Show Whitespace Changes", "Show Whitespace Changes",
1391
+ "%s/fdiff?v1=%T&v2=%T&sbs=%d",
1392
+ g.zTop, P("v1"), P("v2"), sideBySide);
1393
+ }else{
1394
+ style_submenu_element("Ignore Whitespace", "Ignore Whitespace",
1395
+ "%s/fdiff?v1=%T&v2=%T&sbs=%d&w",
1396
+ g.zTop, P("v1"), P("v2"), sideBySide);
1397
+ }
13861398
style_submenu_element("Patch", "Patch", "%s/fdiff?v1=%T&v2=%T&patch",
13871399
g.zTop, P("v1"), P("v2"));
13881400
if( !sideBySide ){
13891401
style_submenu_element("Side-by-Side Diff", "sbsdiff",
1390
- "%s/fdiff?v1=%T&v2=%T&sbs=1",
1391
- g.zTop, P("v1"), P("v2"));
1402
+ "%s/fdiff?v1=%T&v2=%T&sbs=1%s",
1403
+ g.zTop, P("v1"), P("v2"), zW);
13921404
}else{
13931405
style_submenu_element("Unified Diff", "udiff",
1394
- "%s/fdiff?v1=%T&v2=%T&sbs=0",
1395
- g.zTop, P("v1"), P("v2"));
1406
+ "%s/fdiff?v1=%T&v2=%T&sbs=0%s",
1407
+ g.zTop, P("v1"), P("v2"), zW);
13961408
}
13971409
13981410
if( P("smhdr")!=0 ){
13991411
@ <h2>Differences From Artifact
14001412
@ %z(href("%R/artifact/%S",zV1))[%S(zV1)]</a> To
14011413
--- src/info.c
+++ src/info.c
@@ -666,11 +666,11 @@
666 login_anonymous_available();
667 }
668 db_finalize(&q1);
669 showTags(rid, "");
670 if( zParent ){
671 const char *zW; /* URL param for hiding whitespace */
672 const char *zPage = "vinfo"; /* Page that shows diffs */
673 const char *zPageHide = "ci"; /* Page that hides diffs */
674 @ <div class="section">Changes</div>
675 @ <div class="sectionmenu">
676 verboseFlag = g.zPath[0]!='c';
@@ -1351,10 +1351,11 @@
1351 int isPatch;
1352 int sideBySide;
1353 char *zV1;
1354 char *zV2;
1355 const char *zRe;
 
1356 ReCompiled *pRe = 0;
1357 u64 diffFlags;
1358
1359 login_check_credentials();
1360 if( !g.perm.Read ){ login_needed(); return; }
@@ -1381,20 +1382,31 @@
1381 zV1 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v1);
1382 zV2 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v2);
1383 diffFlags = construct_diff_flags(1, sideBySide) | DIFF_HTML;
1384
1385 style_header("Diff");
 
 
 
 
 
 
 
 
 
 
 
1386 style_submenu_element("Patch", "Patch", "%s/fdiff?v1=%T&v2=%T&patch",
1387 g.zTop, P("v1"), P("v2"));
1388 if( !sideBySide ){
1389 style_submenu_element("Side-by-Side Diff", "sbsdiff",
1390 "%s/fdiff?v1=%T&v2=%T&sbs=1",
1391 g.zTop, P("v1"), P("v2"));
1392 }else{
1393 style_submenu_element("Unified Diff", "udiff",
1394 "%s/fdiff?v1=%T&v2=%T&sbs=0",
1395 g.zTop, P("v1"), P("v2"));
1396 }
1397
1398 if( P("smhdr")!=0 ){
1399 @ <h2>Differences From Artifact
1400 @ %z(href("%R/artifact/%S",zV1))[%S(zV1)]</a> To
1401
--- src/info.c
+++ src/info.c
@@ -666,11 +666,11 @@
666 login_anonymous_available();
667 }
668 db_finalize(&q1);
669 showTags(rid, "");
670 if( zParent ){
671 const char *zW; /* URL param for ignoring whitespace */
672 const char *zPage = "vinfo"; /* Page that shows diffs */
673 const char *zPageHide = "ci"; /* Page that hides diffs */
674 @ <div class="section">Changes</div>
675 @ <div class="sectionmenu">
676 verboseFlag = g.zPath[0]!='c';
@@ -1351,10 +1351,11 @@
1351 int isPatch;
1352 int sideBySide;
1353 char *zV1;
1354 char *zV2;
1355 const char *zRe;
1356 const char *zW; /* URL param for ignoring whitespace */
1357 ReCompiled *pRe = 0;
1358 u64 diffFlags;
1359
1360 login_check_credentials();
1361 if( !g.perm.Read ){ login_needed(); return; }
@@ -1381,20 +1382,31 @@
1382 zV1 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v1);
1383 zV2 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v2);
1384 diffFlags = construct_diff_flags(1, sideBySide) | DIFF_HTML;
1385
1386 style_header("Diff");
1387 zW = (diffFlags&(DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS))?"&w":"";
1388 if( *zW ){
1389 diffFlags |= (DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS);
1390 style_submenu_element("Show Whitespace Changes", "Show Whitespace Changes",
1391 "%s/fdiff?v1=%T&v2=%T&sbs=%d",
1392 g.zTop, P("v1"), P("v2"), sideBySide);
1393 }else{
1394 style_submenu_element("Ignore Whitespace", "Ignore Whitespace",
1395 "%s/fdiff?v1=%T&v2=%T&sbs=%d&w",
1396 g.zTop, P("v1"), P("v2"), sideBySide);
1397 }
1398 style_submenu_element("Patch", "Patch", "%s/fdiff?v1=%T&v2=%T&patch",
1399 g.zTop, P("v1"), P("v2"));
1400 if( !sideBySide ){
1401 style_submenu_element("Side-by-Side Diff", "sbsdiff",
1402 "%s/fdiff?v1=%T&v2=%T&sbs=1%s",
1403 g.zTop, P("v1"), P("v2"), zW);
1404 }else{
1405 style_submenu_element("Unified Diff", "udiff",
1406 "%s/fdiff?v1=%T&v2=%T&sbs=0%s",
1407 g.zTop, P("v1"), P("v2"), zW);
1408 }
1409
1410 if( P("smhdr")!=0 ){
1411 @ <h2>Differences From Artifact
1412 @ %z(href("%R/artifact/%S",zV1))[%S(zV1)]</a> To
1413

Keyboard Shortcuts

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