Fossil SCM
Add "Ignore Whitespace" button to vdiff page.
Commit
56c7561e2b88995817fbb6214278bb2c752553ab
Parent
28b39cc516c759a…
1 file changed
+27
-12
+27
-12
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -957,10 +957,11 @@ | ||
| 957 | 957 | ManifestFile *pFileFrom, *pFileTo; |
| 958 | 958 | const char *zBranch; |
| 959 | 959 | const char *zFrom; |
| 960 | 960 | const char *zTo; |
| 961 | 961 | const char *zRe; |
| 962 | + const char *zW; | |
| 962 | 963 | const char *zVerbose; |
| 963 | 964 | const char *zGlob; |
| 964 | 965 | ReCompiled *pRe = 0; |
| 965 | 966 | login_check_credentials(); |
| 966 | 967 | if( !g.perm.Read ){ login_needed(); return; } |
| @@ -990,39 +991,54 @@ | ||
| 990 | 991 | zFrom = P("from"); |
| 991 | 992 | zTo = P("to"); |
| 992 | 993 | if(zGlob && !*zGlob){ |
| 993 | 994 | zGlob = NULL; |
| 994 | 995 | } |
| 996 | + diffFlags = construct_diff_flags(verboseFlag, sideBySide); | |
| 997 | + zW = (diffFlags&(DIFF_IGNORE_SOLWS|DIFF_IGNORE_EOLWS))?"&w":""; | |
| 995 | 998 | if( sideBySide || verboseFlag ){ |
| 996 | 999 | 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", | |
| 998 | 1001 | zFrom, zTo, |
| 999 | - zGlob ? "&glob=" : "", zGlob ? zGlob : ""); | |
| 1002 | + zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW); | |
| 1000 | 1003 | } |
| 1001 | 1004 | if( !sideBySide ){ |
| 1002 | 1005 | 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", | |
| 1004 | 1007 | zFrom, zTo, |
| 1005 | - zGlob ? "&glob=" : "", zGlob ? zGlob : ""); | |
| 1008 | + zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW); | |
| 1006 | 1009 | } |
| 1007 | 1010 | if( sideBySide || !verboseFlag ) { |
| 1008 | 1011 | 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", | |
| 1010 | 1013 | zFrom, zTo, |
| 1011 | - zGlob ? "&glob=" : "", zGlob ? zGlob : ""); | |
| 1014 | + zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW); | |
| 1012 | 1015 | } |
| 1013 | 1016 | 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, | |
| 1015 | 1018 | sideBySide, (verboseFlag && !sideBySide)?"&v":"", |
| 1016 | - zGlob ? "&glob=" : "", zGlob ? zGlob : ""); | |
| 1019 | + zGlob ? "&glob=" : "", zGlob ? zGlob : "", zW); | |
| 1017 | 1020 | if( zGlob ){ |
| 1018 | 1021 | 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); | |
| 1021 | 1024 | }else{ |
| 1022 | 1025 | 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 | + } | |
| 1024 | 1040 | } |
| 1025 | 1041 | style_header("Check-in Differences"); |
| 1026 | 1042 | @ <h2>Difference From:</h2><blockquote> |
| 1027 | 1043 | checkin_description(ridFrom); |
| 1028 | 1044 | @ </blockquote><h2>To:</h2><blockquote> |
| @@ -1039,11 +1055,10 @@ | ||
| 1039 | 1055 | |
| 1040 | 1056 | manifest_file_rewind(pFrom); |
| 1041 | 1057 | pFileFrom = manifest_file_next(pFrom, 0); |
| 1042 | 1058 | manifest_file_rewind(pTo); |
| 1043 | 1059 | pFileTo = manifest_file_next(pTo, 0); |
| 1044 | - diffFlags = construct_diff_flags(verboseFlag, sideBySide); | |
| 1045 | 1060 | while( pFileFrom || pFileTo ){ |
| 1046 | 1061 | int cmp; |
| 1047 | 1062 | if( pFileFrom==0 ){ |
| 1048 | 1063 | cmp = +1; |
| 1049 | 1064 | }else if( pFileTo==0 ){ |
| 1050 | 1065 |
| --- 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 |