Fossil SCM

Fix coloration of side-by-side diff lines with multibyte UTF8 where the lines are completely inserted or deleted.

drh 2013-03-04 16:10 trunk
Commit 6184037c318087348ba88af3ffcb8a3502e0b852
1 file changed +4 -4
+4 -4
--- src/diff.c
+++ src/diff.c
@@ -1408,11 +1408,11 @@
14081408
/* Delete one line from the left */
14091409
s.n = 0;
14101410
sbsWriteLineno(&s, a);
14111411
s.iStart = 0;
14121412
s.zStart = "<span class=\"diffrm\">";
1413
- s.iEnd = s.width;
1413
+ s.iEnd = LENGTH(&A[a]);
14141414
sbsWriteText(&s, &A[a], SBS_PAD);
14151415
if( s.escHtml ){
14161416
sbsWrite(&s, " &lt;\n", 6);
14171417
}else{
14181418
sbsWrite(&s, " <\n", 3);
@@ -1441,11 +1441,11 @@
14411441
sbsWrite(&s, " > ", 3);
14421442
}
14431443
sbsWriteLineno(&s, b);
14441444
s.iStart = 0;
14451445
s.zStart = "<span class=\"diffadd\">";
1446
- s.iEnd = s.width;
1446
+ s.iEnd = LENGTH(&B[b]);
14471447
sbsWriteText(&s, &B[b], SBS_NEWLINE);
14481448
blob_append(pOut, s.zLine, s.n);
14491449
assert( mb>0 );
14501450
mb--;
14511451
b++;
@@ -1453,17 +1453,17 @@
14531453
/* Delete from the left and insert on the right */
14541454
s.n = 0;
14551455
sbsWriteLineno(&s, a);
14561456
s.iStart = 0;
14571457
s.zStart = "<span class=\"diffrm\">";
1458
- s.iEnd = s.width;
1458
+ s.iEnd = LENGTH(&A[a]);
14591459
sbsWriteText(&s, &A[a], SBS_PAD);
14601460
sbsWrite(&s, " | ", 3);
14611461
sbsWriteLineno(&s, b);
14621462
s.iStart = 0;
14631463
s.zStart = "<span class=\"diffadd\">";
1464
- s.iEnd = s.width;
1464
+ s.iEnd = LENGTH(&B[b]);
14651465
sbsWriteText(&s, &B[b], SBS_NEWLINE);
14661466
blob_append(pOut, s.zLine, s.n);
14671467
ma--;
14681468
mb--;
14691469
a++;
14701470
--- 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, " &lt;\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, " &lt;\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

Keyboard Shortcuts

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