Fossil SCM

Add "Ignore Whitespace" button to vdiff page.

jan.nijtmans 2014-03-04 13:26 diff-eolws
Commit 56c7561e2b88995817fbb6214278bb2c752553ab
1 file changed +27 -12
+27 -12
--- src/info.c
+++ src/info.c
@@ -957,10 +957,11 @@
957957
ManifestFile *pFileFrom, *pFileTo;
958958
const char *zBranch;
959959
const char *zFrom;
960960
const char *zTo;
961961
const char *zRe;
962
+ const char *zW;
962963
const char *zVerbose;
963964
const char *zGlob;
964965
ReCompiled *pRe = 0;
965966
login_check_credentials();
966967
if( !g.perm.Read ){ login_needed(); return; }
@@ -990,39 +991,54 @@
990991
zFrom = P("from");
991992
zTo = P("to");
992993
if(zGlob && !*zGlob){
993994
zGlob = NULL;
994995
}
996
+ diffFlags = construct_diff_flags(verboseFlag, sideBySide);
997
+ zW = (diffFlags&(DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS))?"&w":"";
995998
if( sideBySide || verboseFlag ){
996999
style_submenu_element("Hide Diff", "hidediff",
997
- "%R/vdiff?from=%T&to=%T&sbs=0%s%T",
1000
+ "%R/vdiff?from=%T&to=%T&sbs=0%s%T%s",
9981001
zFrom, zTo,
999
- zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1002
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
10001003
}
10011004
if( !sideBySide ){
10021005
style_submenu_element("Side-by-side Diff", "sbsdiff",
1003
- "%R/vdiff?from=%T&to=%T&sbs=1%s%T",
1006
+ "%R/vdiff?from=%T&to=%T&sbs=1%s%T%s",
10041007
zFrom, zTo,
1005
- zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1008
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
10061009
}
10071010
if( sideBySide || !verboseFlag ) {
10081011
style_submenu_element("Unified Diff", "udiff",
1009
- "%R/vdiff?from=%T&to=%T&sbs=0&v%s%T",
1012
+ "%R/vdiff?from=%T&to=%T&sbs=0&v%s%T%s",
10101013
zFrom, zTo,
1011
- zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1014
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
10121015
}
10131016
style_submenu_element("Invert", "invert",
1014
- "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T", zTo, zFrom,
1017
+ "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T%s", zTo, zFrom,
10151018
sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1016
- zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1019
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
10171020
if( zGlob ){
10181021
style_submenu_element("Clear glob", "clearglob",
1019
- "%R/vdiff?from=%T&to=%T&sbs=%d%s", zFrom, zTo,
1020
- sideBySide, (verboseFlag && !sideBySide)?"&v":"");
1022
+ "%R/vdiff?from=%T&to=%T&sbs=%d%s%s", zFrom, zTo,
1023
+ sideBySide, (verboseFlag && !sideBySide)?"&v":"", zW);
10211024
}else{
10221025
style_submenu_element("Patch", "patch",
1023
- "%R/vpatch?from=%T&to=%T", zFrom, zTo);
1026
+ "%R/vpatch?from=%T&to=%T%s", zFrom, zTo, zW);
1027
+ }
1028
+ if( sideBySide || verboseFlag ){
1029
+ if( *zW ){
1030
+ style_submenu_element("Show Whitespace Differences", "whitespace",
1031
+ "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T", zFrom, zTo,
1032
+ sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1033
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1034
+ }else{
1035
+ style_submenu_element("Ignore Whitespace", "ignorews",
1036
+ "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T&w", zFrom, zTo,
1037
+ sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1038
+ zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1039
+ }
10241040
}
10251041
style_header("Check-in Differences");
10261042
@ <h2>Difference From:</h2><blockquote>
10271043
checkin_description(ridFrom);
10281044
@ </blockquote><h2>To:</h2><blockquote>
@@ -1039,11 +1055,10 @@
10391055
10401056
manifest_file_rewind(pFrom);
10411057
pFileFrom = manifest_file_next(pFrom, 0);
10421058
manifest_file_rewind(pTo);
10431059
pFileTo = manifest_file_next(pTo, 0);
1044
- diffFlags = construct_diff_flags(verboseFlag, sideBySide);
10451060
while( pFileFrom || pFileTo ){
10461061
int cmp;
10471062
if( pFileFrom==0 ){
10481063
cmp = +1;
10491064
}else if( pFileTo==0 ){
10501065
--- src/info.c
+++ src/info.c
@@ -957,10 +957,11 @@
957 ManifestFile *pFileFrom, *pFileTo;
958 const char *zBranch;
959 const char *zFrom;
960 const char *zTo;
961 const char *zRe;
 
962 const char *zVerbose;
963 const char *zGlob;
964 ReCompiled *pRe = 0;
965 login_check_credentials();
966 if( !g.perm.Read ){ login_needed(); return; }
@@ -990,39 +991,54 @@
990 zFrom = P("from");
991 zTo = P("to");
992 if(zGlob && !*zGlob){
993 zGlob = NULL;
994 }
 
 
995 if( sideBySide || verboseFlag ){
996 style_submenu_element("Hide Diff", "hidediff",
997 "%R/vdiff?from=%T&to=%T&sbs=0%s%T",
998 zFrom, zTo,
999 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1000 }
1001 if( !sideBySide ){
1002 style_submenu_element("Side-by-side Diff", "sbsdiff",
1003 "%R/vdiff?from=%T&to=%T&sbs=1%s%T",
1004 zFrom, zTo,
1005 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1006 }
1007 if( sideBySide || !verboseFlag ) {
1008 style_submenu_element("Unified Diff", "udiff",
1009 "%R/vdiff?from=%T&to=%T&sbs=0&v%s%T",
1010 zFrom, zTo,
1011 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1012 }
1013 style_submenu_element("Invert", "invert",
1014 "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T", zTo, zFrom,
1015 sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1016 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1017 if( zGlob ){
1018 style_submenu_element("Clear glob", "clearglob",
1019 "%R/vdiff?from=%T&to=%T&sbs=%d%s", zFrom, zTo,
1020 sideBySide, (verboseFlag && !sideBySide)?"&v":"");
1021 }else{
1022 style_submenu_element("Patch", "patch",
1023 "%R/vpatch?from=%T&to=%T", zFrom, zTo);
 
 
 
 
 
 
 
 
 
 
 
 
 
1024 }
1025 style_header("Check-in Differences");
1026 @ <h2>Difference From:</h2><blockquote>
1027 checkin_description(ridFrom);
1028 @ </blockquote><h2>To:</h2><blockquote>
@@ -1039,11 +1055,10 @@
1039
1040 manifest_file_rewind(pFrom);
1041 pFileFrom = manifest_file_next(pFrom, 0);
1042 manifest_file_rewind(pTo);
1043 pFileTo = manifest_file_next(pTo, 0);
1044 diffFlags = construct_diff_flags(verboseFlag, sideBySide);
1045 while( pFileFrom || pFileTo ){
1046 int cmp;
1047 if( pFileFrom==0 ){
1048 cmp = +1;
1049 }else if( pFileTo==0 ){
1050
--- src/info.c
+++ src/info.c
@@ -957,10 +957,11 @@
957 ManifestFile *pFileFrom, *pFileTo;
958 const char *zBranch;
959 const char *zFrom;
960 const char *zTo;
961 const char *zRe;
962 const char *zW;
963 const char *zVerbose;
964 const char *zGlob;
965 ReCompiled *pRe = 0;
966 login_check_credentials();
967 if( !g.perm.Read ){ login_needed(); return; }
@@ -990,39 +991,54 @@
991 zFrom = P("from");
992 zTo = P("to");
993 if(zGlob && !*zGlob){
994 zGlob = NULL;
995 }
996 diffFlags = construct_diff_flags(verboseFlag, sideBySide);
997 zW = (diffFlags&(DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS))?"&w":"";
998 if( sideBySide || verboseFlag ){
999 style_submenu_element("Hide Diff", "hidediff",
1000 "%R/vdiff?from=%T&to=%T&sbs=0%s%T%s",
1001 zFrom, zTo,
1002 zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
1003 }
1004 if( !sideBySide ){
1005 style_submenu_element("Side-by-side Diff", "sbsdiff",
1006 "%R/vdiff?from=%T&to=%T&sbs=1%s%T%s",
1007 zFrom, zTo,
1008 zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
1009 }
1010 if( sideBySide || !verboseFlag ) {
1011 style_submenu_element("Unified Diff", "udiff",
1012 "%R/vdiff?from=%T&to=%T&sbs=0&v%s%T%s",
1013 zFrom, zTo,
1014 zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
1015 }
1016 style_submenu_element("Invert", "invert",
1017 "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T%s", zTo, zFrom,
1018 sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1019 zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW);
1020 if( zGlob ){
1021 style_submenu_element("Clear glob", "clearglob",
1022 "%R/vdiff?from=%T&to=%T&sbs=%d%s%s", zFrom, zTo,
1023 sideBySide, (verboseFlag && !sideBySide)?"&v":"", zW);
1024 }else{
1025 style_submenu_element("Patch", "patch",
1026 "%R/vpatch?from=%T&to=%T%s", zFrom, zTo, zW);
1027 }
1028 if( sideBySide || verboseFlag ){
1029 if( *zW ){
1030 style_submenu_element("Show Whitespace Differences", "whitespace",
1031 "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T", zFrom, zTo,
1032 sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1033 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1034 }else{
1035 style_submenu_element("Ignore Whitespace", "ignorews",
1036 "%R/vdiff?from=%T&to=%T&sbs=%d%s%s%T&w", zFrom, zTo,
1037 sideBySide, (verboseFlag && !sideBySide)?"&v":"",
1038 zGlob ? "&glob=" : "", zGlob ? zGlob : "");
1039 }
1040 }
1041 style_header("Check-in Differences");
1042 @ <h2>Difference From:</h2><blockquote>
1043 checkin_description(ridFrom);
1044 @ </blockquote><h2>To:</h2><blockquote>
@@ -1039,11 +1055,10 @@
1055
1056 manifest_file_rewind(pFrom);
1057 pFileFrom = manifest_file_next(pFrom, 0);
1058 manifest_file_rewind(pTo);
1059 pFileTo = manifest_file_next(pTo, 0);
 
1060 while( pFileFrom || pFileTo ){
1061 int cmp;
1062 if( pFileFrom==0 ){
1063 cmp = +1;
1064 }else if( pFileTo==0 ){
1065

Keyboard Shortcuts

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