Fossil SCM

Improvements to the new unified diff algorithm.

drh 2021-08-31 13:33 diff-color-enhancements
Commit 2a256a4cce219e160b2d2f0f95d54897b729a5c6be156c0a031b41754de97bad
1 file changed +9 -9
+9 -9
--- src/diff.c
+++ src/diff.c
@@ -1897,39 +1897,39 @@
18971897
static void dfunifiedCommon(DiffBuilder *p, const DLine *pLine){
18981898
int iCol = 0;
18991899
dfunifiedEmitInsert(p);
19001900
p->lnLeft++;
19011901
p->lnRight++;
1902
- blob_appendf(p->pOut,"%6d %6d\n", p->lnLeft, p->lnRight);
1902
+ blob_appendf(p->pOut,"%6d %6d \n", p->lnLeft, p->lnRight);
19031903
jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
19041904
blob_append_char(&p->aCol[0], '\n');
19051905
}
19061906
static void dfunifiedInsert(DiffBuilder *p, const DLine *pLine){
19071907
int iCol = 0;
19081908
p->lnRight++;
1909
- blob_appendf(&p->aCol[1]," <ins>%6d</ins>\n", p->lnRight);
1910
- blob_append(&p->aCol[2],"<ins>",-1);
1909
+ blob_appendf(&p->aCol[1],"<ins> %6d </ins>\n", p->lnRight);
1910
+ blob_append(&p->aCol[2],"<ins><mark>",-1);
19111911
jsonize_to_blob(&p->aCol[2], pLine->z, (int)pLine->n, &iCol);
1912
- blob_append(&p->aCol[2], "</ins>\n", -1);
1912
+ blob_append(&p->aCol[2], "</mark></ins>\n", -1);
19131913
}
19141914
static void dfunifiedDelete(DiffBuilder *p, const DLine *pLine){
19151915
int iCol = 0;
19161916
p->lnLeft++;
1917
- blob_appendf(p->pOut,"<del>%6d</del> \n", p->lnLeft);
1918
- blob_append(&p->aCol[0],"<del>",-1);
1917
+ blob_appendf(p->pOut,"<del>%6d </del>\n", p->lnLeft);
1918
+ blob_append(&p->aCol[0],"<del><mark>",-1);
19191919
jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
1920
- blob_append(&p->aCol[0], "</del>\n", -1);
1920
+ blob_append(&p->aCol[0], "</mark></del>\n", -1);
19211921
}
19221922
static void dfunifiedEdit(DiffBuilder *p, const DLine *pX, const DLine *pY){
19231923
int i;
19241924
int x;
19251925
int iCol;
19261926
ChangeSpan span;
19271927
oneLineChange(pX, pY, &span);
19281928
p->lnLeft++;
19291929
p->lnRight++;
1930
- blob_appendf(p->pOut,"<del>%6d</del> \n", p->lnLeft);
1930
+ blob_appendf(p->pOut,"<del>%6d </del>\n", p->lnLeft);
19311931
blob_append(&p->aCol[0], "<del>", -1);
19321932
for(i=x=iCol=0; i<span.n; i++){
19331933
int ofst = span.a[i].iStart1;
19341934
int len = span.a[i].iLen1;
19351935
if( len ){
@@ -1941,11 +1941,11 @@
19411941
blob_append(&p->aCol[0], "</mark>", 7);
19421942
}
19431943
}
19441944
if( x<pX->n ) jsonize_to_blob(&p->aCol[0], pX->z+x, pX->n - x, &iCol);
19451945
blob_append(&p->aCol[0], "</del>\n", -1);
1946
- blob_appendf(&p->aCol[1]," <ins>%6d</ins>\n", p->lnRight);
1946
+ blob_appendf(&p->aCol[1],"<ins> %6d </ins>\n", p->lnRight);
19471947
blob_append(&p->aCol[2], "<ins>", -1);
19481948
for(i=x=iCol=0; i<span.n; i++){
19491949
int ofst = span.a[i].iStart2;
19501950
int len = span.a[i].iLen2;
19511951
if( len ){
19521952
--- src/diff.c
+++ src/diff.c
@@ -1897,39 +1897,39 @@
1897 static void dfunifiedCommon(DiffBuilder *p, const DLine *pLine){
1898 int iCol = 0;
1899 dfunifiedEmitInsert(p);
1900 p->lnLeft++;
1901 p->lnRight++;
1902 blob_appendf(p->pOut,"%6d %6d\n", p->lnLeft, p->lnRight);
1903 jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
1904 blob_append_char(&p->aCol[0], '\n');
1905 }
1906 static void dfunifiedInsert(DiffBuilder *p, const DLine *pLine){
1907 int iCol = 0;
1908 p->lnRight++;
1909 blob_appendf(&p->aCol[1]," <ins>%6d</ins>\n", p->lnRight);
1910 blob_append(&p->aCol[2],"<ins>",-1);
1911 jsonize_to_blob(&p->aCol[2], pLine->z, (int)pLine->n, &iCol);
1912 blob_append(&p->aCol[2], "</ins>\n", -1);
1913 }
1914 static void dfunifiedDelete(DiffBuilder *p, const DLine *pLine){
1915 int iCol = 0;
1916 p->lnLeft++;
1917 blob_appendf(p->pOut,"<del>%6d</del> \n", p->lnLeft);
1918 blob_append(&p->aCol[0],"<del>",-1);
1919 jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
1920 blob_append(&p->aCol[0], "</del>\n", -1);
1921 }
1922 static void dfunifiedEdit(DiffBuilder *p, const DLine *pX, const DLine *pY){
1923 int i;
1924 int x;
1925 int iCol;
1926 ChangeSpan span;
1927 oneLineChange(pX, pY, &span);
1928 p->lnLeft++;
1929 p->lnRight++;
1930 blob_appendf(p->pOut,"<del>%6d</del> \n", p->lnLeft);
1931 blob_append(&p->aCol[0], "<del>", -1);
1932 for(i=x=iCol=0; i<span.n; i++){
1933 int ofst = span.a[i].iStart1;
1934 int len = span.a[i].iLen1;
1935 if( len ){
@@ -1941,11 +1941,11 @@
1941 blob_append(&p->aCol[0], "</mark>", 7);
1942 }
1943 }
1944 if( x<pX->n ) jsonize_to_blob(&p->aCol[0], pX->z+x, pX->n - x, &iCol);
1945 blob_append(&p->aCol[0], "</del>\n", -1);
1946 blob_appendf(&p->aCol[1]," <ins>%6d</ins>\n", p->lnRight);
1947 blob_append(&p->aCol[2], "<ins>", -1);
1948 for(i=x=iCol=0; i<span.n; i++){
1949 int ofst = span.a[i].iStart2;
1950 int len = span.a[i].iLen2;
1951 if( len ){
1952
--- src/diff.c
+++ src/diff.c
@@ -1897,39 +1897,39 @@
1897 static void dfunifiedCommon(DiffBuilder *p, const DLine *pLine){
1898 int iCol = 0;
1899 dfunifiedEmitInsert(p);
1900 p->lnLeft++;
1901 p->lnRight++;
1902 blob_appendf(p->pOut,"%6d %6d \n", p->lnLeft, p->lnRight);
1903 jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
1904 blob_append_char(&p->aCol[0], '\n');
1905 }
1906 static void dfunifiedInsert(DiffBuilder *p, const DLine *pLine){
1907 int iCol = 0;
1908 p->lnRight++;
1909 blob_appendf(&p->aCol[1],"<ins> %6d </ins>\n", p->lnRight);
1910 blob_append(&p->aCol[2],"<ins><mark>",-1);
1911 jsonize_to_blob(&p->aCol[2], pLine->z, (int)pLine->n, &iCol);
1912 blob_append(&p->aCol[2], "</mark></ins>\n", -1);
1913 }
1914 static void dfunifiedDelete(DiffBuilder *p, const DLine *pLine){
1915 int iCol = 0;
1916 p->lnLeft++;
1917 blob_appendf(p->pOut,"<del>%6d </del>\n", p->lnLeft);
1918 blob_append(&p->aCol[0],"<del><mark>",-1);
1919 jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
1920 blob_append(&p->aCol[0], "</mark></del>\n", -1);
1921 }
1922 static void dfunifiedEdit(DiffBuilder *p, const DLine *pX, const DLine *pY){
1923 int i;
1924 int x;
1925 int iCol;
1926 ChangeSpan span;
1927 oneLineChange(pX, pY, &span);
1928 p->lnLeft++;
1929 p->lnRight++;
1930 blob_appendf(p->pOut,"<del>%6d </del>\n", p->lnLeft);
1931 blob_append(&p->aCol[0], "<del>", -1);
1932 for(i=x=iCol=0; i<span.n; i++){
1933 int ofst = span.a[i].iStart1;
1934 int len = span.a[i].iLen1;
1935 if( len ){
@@ -1941,11 +1941,11 @@
1941 blob_append(&p->aCol[0], "</mark>", 7);
1942 }
1943 }
1944 if( x<pX->n ) jsonize_to_blob(&p->aCol[0], pX->z+x, pX->n - x, &iCol);
1945 blob_append(&p->aCol[0], "</del>\n", -1);
1946 blob_appendf(&p->aCol[1],"<ins> %6d </ins>\n", p->lnRight);
1947 blob_append(&p->aCol[2], "<ins>", -1);
1948 for(i=x=iCol=0; i<span.n; i++){
1949 int ofst = span.a[i].iStart2;
1950 int len = span.a[i].iLen2;
1951 if( len ){
1952

Keyboard Shortcuts

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