Fossil SCM
Fix coloration of side-by-side diff lines with multibyte UTF8 where the lines are completely inserted or deleted.
Commit
6184037c318087348ba88af3ffcb8a3502e0b852
Parent
b163569a8c6143c…
1 file changed
+4
-4
+4
-4
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -1408,11 +1408,11 @@ | ||
| 1408 | 1408 | /* Delete one line from the left */ |
| 1409 | 1409 | s.n = 0; |
| 1410 | 1410 | sbsWriteLineno(&s, a); |
| 1411 | 1411 | s.iStart = 0; |
| 1412 | 1412 | s.zStart = "<span class=\"diffrm\">"; |
| 1413 | - s.iEnd = s.width; | |
| 1413 | + s.iEnd = LENGTH(&A[a]); | |
| 1414 | 1414 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1415 | 1415 | if( s.escHtml ){ |
| 1416 | 1416 | sbsWrite(&s, " <\n", 6); |
| 1417 | 1417 | }else{ |
| 1418 | 1418 | sbsWrite(&s, " <\n", 3); |
| @@ -1441,11 +1441,11 @@ | ||
| 1441 | 1441 | sbsWrite(&s, " > ", 3); |
| 1442 | 1442 | } |
| 1443 | 1443 | sbsWriteLineno(&s, b); |
| 1444 | 1444 | s.iStart = 0; |
| 1445 | 1445 | s.zStart = "<span class=\"diffadd\">"; |
| 1446 | - s.iEnd = s.width; | |
| 1446 | + s.iEnd = LENGTH(&B[b]); | |
| 1447 | 1447 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1448 | 1448 | blob_append(pOut, s.zLine, s.n); |
| 1449 | 1449 | assert( mb>0 ); |
| 1450 | 1450 | mb--; |
| 1451 | 1451 | b++; |
| @@ -1453,17 +1453,17 @@ | ||
| 1453 | 1453 | /* Delete from the left and insert on the right */ |
| 1454 | 1454 | s.n = 0; |
| 1455 | 1455 | sbsWriteLineno(&s, a); |
| 1456 | 1456 | s.iStart = 0; |
| 1457 | 1457 | s.zStart = "<span class=\"diffrm\">"; |
| 1458 | - s.iEnd = s.width; | |
| 1458 | + s.iEnd = LENGTH(&A[a]); | |
| 1459 | 1459 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1460 | 1460 | sbsWrite(&s, " | ", 3); |
| 1461 | 1461 | sbsWriteLineno(&s, b); |
| 1462 | 1462 | s.iStart = 0; |
| 1463 | 1463 | s.zStart = "<span class=\"diffadd\">"; |
| 1464 | - s.iEnd = s.width; | |
| 1464 | + s.iEnd = LENGTH(&B[b]); | |
| 1465 | 1465 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1466 | 1466 | blob_append(pOut, s.zLine, s.n); |
| 1467 | 1467 | ma--; |
| 1468 | 1468 | mb--; |
| 1469 | 1469 | a++; |
| 1470 | 1470 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -1408,11 +1408,11 @@ | |
| 1408 | /* Delete one line from the left */ |
| 1409 | s.n = 0; |
| 1410 | sbsWriteLineno(&s, a); |
| 1411 | s.iStart = 0; |
| 1412 | s.zStart = "<span class=\"diffrm\">"; |
| 1413 | s.iEnd = s.width; |
| 1414 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1415 | if( s.escHtml ){ |
| 1416 | sbsWrite(&s, " <\n", 6); |
| 1417 | }else{ |
| 1418 | sbsWrite(&s, " <\n", 3); |
| @@ -1441,11 +1441,11 @@ | |
| 1441 | sbsWrite(&s, " > ", 3); |
| 1442 | } |
| 1443 | sbsWriteLineno(&s, b); |
| 1444 | s.iStart = 0; |
| 1445 | s.zStart = "<span class=\"diffadd\">"; |
| 1446 | s.iEnd = s.width; |
| 1447 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1448 | blob_append(pOut, s.zLine, s.n); |
| 1449 | assert( mb>0 ); |
| 1450 | mb--; |
| 1451 | b++; |
| @@ -1453,17 +1453,17 @@ | |
| 1453 | /* Delete from the left and insert on the right */ |
| 1454 | s.n = 0; |
| 1455 | sbsWriteLineno(&s, a); |
| 1456 | s.iStart = 0; |
| 1457 | s.zStart = "<span class=\"diffrm\">"; |
| 1458 | s.iEnd = s.width; |
| 1459 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1460 | sbsWrite(&s, " | ", 3); |
| 1461 | sbsWriteLineno(&s, b); |
| 1462 | s.iStart = 0; |
| 1463 | s.zStart = "<span class=\"diffadd\">"; |
| 1464 | s.iEnd = s.width; |
| 1465 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1466 | blob_append(pOut, s.zLine, s.n); |
| 1467 | ma--; |
| 1468 | mb--; |
| 1469 | a++; |
| 1470 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -1408,11 +1408,11 @@ | |
| 1408 | /* Delete one line from the left */ |
| 1409 | s.n = 0; |
| 1410 | sbsWriteLineno(&s, a); |
| 1411 | s.iStart = 0; |
| 1412 | s.zStart = "<span class=\"diffrm\">"; |
| 1413 | s.iEnd = LENGTH(&A[a]); |
| 1414 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1415 | if( s.escHtml ){ |
| 1416 | sbsWrite(&s, " <\n", 6); |
| 1417 | }else{ |
| 1418 | sbsWrite(&s, " <\n", 3); |
| @@ -1441,11 +1441,11 @@ | |
| 1441 | sbsWrite(&s, " > ", 3); |
| 1442 | } |
| 1443 | sbsWriteLineno(&s, b); |
| 1444 | s.iStart = 0; |
| 1445 | s.zStart = "<span class=\"diffadd\">"; |
| 1446 | s.iEnd = LENGTH(&B[b]); |
| 1447 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1448 | blob_append(pOut, s.zLine, s.n); |
| 1449 | assert( mb>0 ); |
| 1450 | mb--; |
| 1451 | b++; |
| @@ -1453,17 +1453,17 @@ | |
| 1453 | /* Delete from the left and insert on the right */ |
| 1454 | s.n = 0; |
| 1455 | sbsWriteLineno(&s, a); |
| 1456 | s.iStart = 0; |
| 1457 | s.zStart = "<span class=\"diffrm\">"; |
| 1458 | s.iEnd = LENGTH(&A[a]); |
| 1459 | sbsWriteText(&s, &A[a], SBS_PAD); |
| 1460 | sbsWrite(&s, " | ", 3); |
| 1461 | sbsWriteLineno(&s, b); |
| 1462 | s.iStart = 0; |
| 1463 | s.zStart = "<span class=\"diffadd\">"; |
| 1464 | s.iEnd = LENGTH(&B[b]); |
| 1465 | sbsWriteText(&s, &B[b], SBS_NEWLINE); |
| 1466 | blob_append(pOut, s.zLine, s.n); |
| 1467 | ma--; |
| 1468 | mb--; |
| 1469 | a++; |
| 1470 |