Fossil SCM
Add the "Invert" button to the "vdiff" web page.
Commit
b0036a3c971dc7eb612927510d7a5dbfea78d799
Parent
0e9277267f3dc34…
1 file changed
+21
-5
+21
-5
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -801,11 +801,20 @@ | ||
| 801 | 801 | } |
| 802 | 802 | |
| 803 | 803 | |
| 804 | 804 | /* |
| 805 | 805 | ** WEBPAGE: vdiff |
| 806 | -** URL: /vdiff?from=UUID&to=UUID&detail=BOOLEAN;sbs=BOOLEAN | |
| 806 | +** URL: /vdiff | |
| 807 | +** | |
| 808 | +** Query parameters: | |
| 809 | +** | |
| 810 | +** from=TAG | |
| 811 | +** to=TAG | |
| 812 | +** branch=TAG | |
| 813 | +** detail=BOOLEAN | |
| 814 | +** sbs=BOOLEAN | |
| 815 | +** | |
| 807 | 816 | ** |
| 808 | 817 | ** Show all differences between two checkins. |
| 809 | 818 | */ |
| 810 | 819 | void vdiff_page(void){ |
| 811 | 820 | int ridFrom, ridTo; |
| @@ -813,10 +822,12 @@ | ||
| 813 | 822 | int sideBySide = 0; |
| 814 | 823 | u64 diffFlags = 0; |
| 815 | 824 | Manifest *pFrom, *pTo; |
| 816 | 825 | ManifestFile *pFileFrom, *pFileTo; |
| 817 | 826 | const char *zBranch; |
| 827 | + const char *zFrom; | |
| 828 | + const char *zTo; | |
| 818 | 829 | |
| 819 | 830 | login_check_credentials(); |
| 820 | 831 | if( !g.perm.Read ){ login_needed(); return; } |
| 821 | 832 | login_anonymous_available(); |
| 822 | 833 | |
| @@ -830,19 +841,24 @@ | ||
| 830 | 841 | pFrom = vdiff_parse_manifest("from", &ridFrom); |
| 831 | 842 | if( pFrom==0 ) return; |
| 832 | 843 | sideBySide = atoi(PD("sbs","1")); |
| 833 | 844 | showDetail = atoi(PD("detail","0")); |
| 834 | 845 | if( !showDetail && sideBySide ) showDetail = 1; |
| 846 | + zFrom = P("from"); | |
| 847 | + zTo = P("to"); | |
| 835 | 848 | if( !sideBySide ){ |
| 836 | 849 | style_submenu_element("Side-by-side Diff", "sbsdiff", |
| 837 | - "%s/vdiff?from=%T&to=%T&detail=%d&sbs=1", | |
| 838 | - g.zTop, P("from"), P("to"), showDetail); | |
| 850 | + "%R/vdiff?from=%T&to=%T&detail=%d&sbs=1", | |
| 851 | + zFrom, zTo, showDetail); | |
| 839 | 852 | }else{ |
| 840 | 853 | style_submenu_element("Unified Diff", "udiff", |
| 841 | - "%s/vdiff?from=%T&to=%T&detail=%d&sbs=0", | |
| 842 | - g.zTop, P("from"), P("to"), showDetail); | |
| 854 | + "%R/vdiff?from=%T&to=%T&detail=%d&sbs=0", | |
| 855 | + zFrom, zTo, showDetail); | |
| 843 | 856 | } |
| 857 | + style_submenu_element("Invert", "invert", | |
| 858 | + "%R/vdiff?from=%T&to=%T&detail=%d&sbs=%d", | |
| 859 | + zTo, zFrom, showDetail, sideBySide); | |
| 844 | 860 | style_header("Check-in Differences"); |
| 845 | 861 | @ <h2>Difference From:</h2><blockquote> |
| 846 | 862 | checkin_description(ridFrom); |
| 847 | 863 | @ </blockquote><h2>To:</h2><blockquote> |
| 848 | 864 | checkin_description(ridTo); |
| 849 | 865 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -801,11 +801,20 @@ | |
| 801 | } |
| 802 | |
| 803 | |
| 804 | /* |
| 805 | ** WEBPAGE: vdiff |
| 806 | ** URL: /vdiff?from=UUID&to=UUID&detail=BOOLEAN;sbs=BOOLEAN |
| 807 | ** |
| 808 | ** Show all differences between two checkins. |
| 809 | */ |
| 810 | void vdiff_page(void){ |
| 811 | int ridFrom, ridTo; |
| @@ -813,10 +822,12 @@ | |
| 813 | int sideBySide = 0; |
| 814 | u64 diffFlags = 0; |
| 815 | Manifest *pFrom, *pTo; |
| 816 | ManifestFile *pFileFrom, *pFileTo; |
| 817 | const char *zBranch; |
| 818 | |
| 819 | login_check_credentials(); |
| 820 | if( !g.perm.Read ){ login_needed(); return; } |
| 821 | login_anonymous_available(); |
| 822 | |
| @@ -830,19 +841,24 @@ | |
| 830 | pFrom = vdiff_parse_manifest("from", &ridFrom); |
| 831 | if( pFrom==0 ) return; |
| 832 | sideBySide = atoi(PD("sbs","1")); |
| 833 | showDetail = atoi(PD("detail","0")); |
| 834 | if( !showDetail && sideBySide ) showDetail = 1; |
| 835 | if( !sideBySide ){ |
| 836 | style_submenu_element("Side-by-side Diff", "sbsdiff", |
| 837 | "%s/vdiff?from=%T&to=%T&detail=%d&sbs=1", |
| 838 | g.zTop, P("from"), P("to"), showDetail); |
| 839 | }else{ |
| 840 | style_submenu_element("Unified Diff", "udiff", |
| 841 | "%s/vdiff?from=%T&to=%T&detail=%d&sbs=0", |
| 842 | g.zTop, P("from"), P("to"), showDetail); |
| 843 | } |
| 844 | style_header("Check-in Differences"); |
| 845 | @ <h2>Difference From:</h2><blockquote> |
| 846 | checkin_description(ridFrom); |
| 847 | @ </blockquote><h2>To:</h2><blockquote> |
| 848 | checkin_description(ridTo); |
| 849 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -801,11 +801,20 @@ | |
| 801 | } |
| 802 | |
| 803 | |
| 804 | /* |
| 805 | ** WEBPAGE: vdiff |
| 806 | ** URL: /vdiff |
| 807 | ** |
| 808 | ** Query parameters: |
| 809 | ** |
| 810 | ** from=TAG |
| 811 | ** to=TAG |
| 812 | ** branch=TAG |
| 813 | ** detail=BOOLEAN |
| 814 | ** sbs=BOOLEAN |
| 815 | ** |
| 816 | ** |
| 817 | ** Show all differences between two checkins. |
| 818 | */ |
| 819 | void vdiff_page(void){ |
| 820 | int ridFrom, ridTo; |
| @@ -813,10 +822,12 @@ | |
| 822 | int sideBySide = 0; |
| 823 | u64 diffFlags = 0; |
| 824 | Manifest *pFrom, *pTo; |
| 825 | ManifestFile *pFileFrom, *pFileTo; |
| 826 | const char *zBranch; |
| 827 | const char *zFrom; |
| 828 | const char *zTo; |
| 829 | |
| 830 | login_check_credentials(); |
| 831 | if( !g.perm.Read ){ login_needed(); return; } |
| 832 | login_anonymous_available(); |
| 833 | |
| @@ -830,19 +841,24 @@ | |
| 841 | pFrom = vdiff_parse_manifest("from", &ridFrom); |
| 842 | if( pFrom==0 ) return; |
| 843 | sideBySide = atoi(PD("sbs","1")); |
| 844 | showDetail = atoi(PD("detail","0")); |
| 845 | if( !showDetail && sideBySide ) showDetail = 1; |
| 846 | zFrom = P("from"); |
| 847 | zTo = P("to"); |
| 848 | if( !sideBySide ){ |
| 849 | style_submenu_element("Side-by-side Diff", "sbsdiff", |
| 850 | "%R/vdiff?from=%T&to=%T&detail=%d&sbs=1", |
| 851 | zFrom, zTo, showDetail); |
| 852 | }else{ |
| 853 | style_submenu_element("Unified Diff", "udiff", |
| 854 | "%R/vdiff?from=%T&to=%T&detail=%d&sbs=0", |
| 855 | zFrom, zTo, showDetail); |
| 856 | } |
| 857 | style_submenu_element("Invert", "invert", |
| 858 | "%R/vdiff?from=%T&to=%T&detail=%d&sbs=%d", |
| 859 | zTo, zFrom, showDetail, sideBySide); |
| 860 | style_header("Check-in Differences"); |
| 861 | @ <h2>Difference From:</h2><blockquote> |
| 862 | checkin_description(ridFrom); |
| 863 | @ </blockquote><h2>To:</h2><blockquote> |
| 864 | checkin_description(ridTo); |
| 865 |