Fossil SCM
Add "w" URL parameter and buttons to /fdiff pages.
Commit
0ec153a2a7b94523dd880ed08c689e581dbf915b
Parent
756c187590dc9c4…
1 file changed
+17
-5
+17
-5
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -666,11 +666,11 @@ | ||
| 666 | 666 | login_anonymous_available(); |
| 667 | 667 | } |
| 668 | 668 | db_finalize(&q1); |
| 669 | 669 | showTags(rid, ""); |
| 670 | 670 | if( zParent ){ |
| 671 | - const char *zW; /* URL param for hiding whitespace */ | |
| 671 | + const char *zW; /* URL param for ignoring whitespace */ | |
| 672 | 672 | const char *zPage = "vinfo"; /* Page that shows diffs */ |
| 673 | 673 | const char *zPageHide = "ci"; /* Page that hides diffs */ |
| 674 | 674 | @ <div class="section">Changes</div> |
| 675 | 675 | @ <div class="sectionmenu"> |
| 676 | 676 | verboseFlag = g.zPath[0]!='c'; |
| @@ -1351,10 +1351,11 @@ | ||
| 1351 | 1351 | int isPatch; |
| 1352 | 1352 | int sideBySide; |
| 1353 | 1353 | char *zV1; |
| 1354 | 1354 | char *zV2; |
| 1355 | 1355 | const char *zRe; |
| 1356 | + const char *zW; /* URL param for ignoring whitespace */ | |
| 1356 | 1357 | ReCompiled *pRe = 0; |
| 1357 | 1358 | u64 diffFlags; |
| 1358 | 1359 | |
| 1359 | 1360 | login_check_credentials(); |
| 1360 | 1361 | if( !g.perm.Read ){ login_needed(); return; } |
| @@ -1381,20 +1382,31 @@ | ||
| 1381 | 1382 | zV1 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v1); |
| 1382 | 1383 | zV2 = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", v2); |
| 1383 | 1384 | diffFlags = construct_diff_flags(1, sideBySide) | DIFF_HTML; |
| 1384 | 1385 | |
| 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 | + } | |
| 1386 | 1398 | style_submenu_element("Patch", "Patch", "%s/fdiff?v1=%T&v2=%T&patch", |
| 1387 | 1399 | g.zTop, P("v1"), P("v2")); |
| 1388 | 1400 | if( !sideBySide ){ |
| 1389 | 1401 | 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); | |
| 1392 | 1404 | }else{ |
| 1393 | 1405 | 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); | |
| 1396 | 1408 | } |
| 1397 | 1409 | |
| 1398 | 1410 | if( P("smhdr")!=0 ){ |
| 1399 | 1411 | @ <h2>Differences From Artifact |
| 1400 | 1412 | @ %z(href("%R/artifact/%S",zV1))[%S(zV1)]</a> To |
| 1401 | 1413 |
| --- 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 |