This file is indexed.

/usr/share/doc/xxdiff/html/xxdiff-doc.html is in xxdiff 1:4.0.1+dfsg-1+b1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="Docutils 0.11: http://docutils.sourceforge.net/" />
<title>xxdiff documentation</title>
<meta name="author" content="Martin Blais" />
<meta name="date" content="2003-12-25" />
<meta name="copyright" content="Copyright (C) 1999-2004, Martin Blais.  All Rights Reserved." />
<link rel="stylesheet" href="/docutils-style.css" type="text/css" />
</head>
<body>
<div class="document" id="xxdiff-documentation">
<h1 class="title">xxdiff documentation</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Martin Blais</td></tr>
<tr><th class="docinfo-name">Contact:</th>
<td><a class="first last reference external" href="mailto:blais&#64;furius.ca">blais&#64;furius.ca</a></td></tr>
<tr><th class="docinfo-name">Date:</th>
<td>2003-12-25</td></tr>
<tr><th class="docinfo-name">Copyright:</th>
<td>Copyright (C) 1999-2004, Martin Blais.  All Rights Reserved.</td></tr>
</tbody>
</table>
<div class="abstract topic">
<p class="topic-title first">Abstract</p>
<p>User's manual for xxdiff.  The official location of xxdiff on the internet is
<a class="reference external" href="http://xxdiff.sourceforge.net">http://xxdiff.sourceforge.net</a>.  If you're reading this page from the web, note
that you can also access this document from the Help menu of xxdiff.</p>
</div>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of Contents</p>
<ul class="auto-toc simple">
<li><a class="reference internal" href="#introduction" id="id5">1&nbsp;&nbsp;&nbsp;Introduction</a></li>
<li><a class="reference internal" href="#version" id="id6">2&nbsp;&nbsp;&nbsp;Version</a></li>
<li><a class="reference internal" href="#invocation" id="id7">3&nbsp;&nbsp;&nbsp;Invocation</a><ul class="auto-toc">
<li><a class="reference internal" href="#return-value" id="id8">3.1&nbsp;&nbsp;&nbsp;Return Value</a></li>
<li><a class="reference internal" href="#command-line-options" id="id9">3.2&nbsp;&nbsp;&nbsp;Command-line Options</a></li>
<li><a class="reference internal" href="#using-xxdiff-as-a-short-lived-application" id="id10">3.3&nbsp;&nbsp;&nbsp;Using xxdiff as a short-lived application</a></li>
</ul>
</li>
<li><a class="reference internal" href="#general-operation" id="id11">4&nbsp;&nbsp;&nbsp;General operation</a><ul class="auto-toc">
<li><a class="reference internal" href="#the-text-area" id="id12">4.1&nbsp;&nbsp;&nbsp;The text area</a><ul class="auto-toc">
<li><a class="reference internal" href="#horizontal-diffs" id="id13">4.1.1&nbsp;&nbsp;&nbsp;Horizontal diffs</a></li>
<li><a class="reference internal" href="#per-hunk-ignore-whitespace" id="id14">4.1.2&nbsp;&nbsp;&nbsp;Per-hunk ignore whitespace</a></li>
<li><a class="reference internal" href="#navigation" id="id15">4.1.3&nbsp;&nbsp;&nbsp;Navigation</a></li>
<li><a class="reference internal" href="#pop-up-menu" id="id16">4.1.4&nbsp;&nbsp;&nbsp;Pop-up menu</a></li>
<li><a class="reference internal" href="#searching" id="id17">4.1.5&nbsp;&nbsp;&nbsp;Searching</a></li>
<li><a class="reference internal" href="#other-options" id="id18">4.1.6&nbsp;&nbsp;&nbsp;Other options</a></li>
<li><a class="reference internal" href="#display-options" id="id19">4.1.7&nbsp;&nbsp;&nbsp;Display options</a></li>
</ul>
</li>
<li><a class="reference internal" href="#redoing-the-diffs" id="id20">4.2&nbsp;&nbsp;&nbsp;Redoing the diffs</a></li>
<li><a class="reference internal" href="#other-ui-elements" id="id21">4.3&nbsp;&nbsp;&nbsp;Other UI elements</a></li>
</ul>
</li>
<li><a class="reference internal" href="#comparing-two-files" id="id22">5&nbsp;&nbsp;&nbsp;Comparing two files</a><ul class="auto-toc">
<li><a class="reference internal" href="#types-of-hunks" id="id23">5.1&nbsp;&nbsp;&nbsp;Types of hunks</a></li>
<li><a class="reference internal" href="#options" id="id24">5.2&nbsp;&nbsp;&nbsp;Options</a></li>
</ul>
</li>
<li><a class="reference internal" href="#comparing-three-files" id="id25">6&nbsp;&nbsp;&nbsp;Comparing three files</a><ul class="auto-toc">
<li><a class="reference internal" href="#id1" id="id26">6.1&nbsp;&nbsp;&nbsp;Types of hunks</a></li>
<li><a class="reference internal" href="#ignoring-one-file" id="id27">6.2&nbsp;&nbsp;&nbsp;Ignoring one file</a></li>
</ul>
</li>
<li><a class="reference internal" href="#comparing-two-directories" id="id28">7&nbsp;&nbsp;&nbsp;Comparing two directories</a><ul class="auto-toc">
<li><a class="reference internal" href="#id2" id="id29">7.1&nbsp;&nbsp;&nbsp;Types of hunks</a></li>
<li><a class="reference internal" href="#id3" id="id30">7.2&nbsp;&nbsp;&nbsp;Options</a></li>
<li><a class="reference internal" href="#file-operations" id="id31">7.3&nbsp;&nbsp;&nbsp;File operations</a></li>
</ul>
</li>
<li><a class="reference internal" href="#merging-files-and-resolving-conflicts" id="id32">8&nbsp;&nbsp;&nbsp;Merging files and resolving conflicts</a><ul class="auto-toc">
<li><a class="reference internal" href="#selecting-regions" id="id33">8.1&nbsp;&nbsp;&nbsp;Selecting regions</a></li>
<li><a class="reference internal" href="#saving-the-resulting-file" id="id34">8.2&nbsp;&nbsp;&nbsp;Saving the resulting file</a><ul class="auto-toc">
<li><a class="reference internal" href="#forcing-output-of-a-merged-file-and-better-script-integration" id="id35">8.2.1&nbsp;&nbsp;&nbsp;Forcing Output of a Merged File and Better Script Integration</a></li>
</ul>
</li>
<li><a class="reference internal" href="#rapid-sequential-merge-conflict-resolution" id="id36">8.3&nbsp;&nbsp;&nbsp;Rapid, sequential merge conflict resolution</a></li>
<li><a class="reference internal" href="#automatic-merge" id="id37">8.4&nbsp;&nbsp;&nbsp;Automatic merge</a><ul class="auto-toc">
<li><a class="reference internal" href="#requiring-an-output-file" id="id38">8.4.1&nbsp;&nbsp;&nbsp;Requiring an output file</a></li>
</ul>
</li>
<li><a class="reference internal" href="#merging-directories" id="id39">8.5&nbsp;&nbsp;&nbsp;Merging directories</a></li>
<li><a class="reference internal" href="#merged-view" id="id40">8.6&nbsp;&nbsp;&nbsp;Merged view</a></li>
</ul>
</li>
<li><a class="reference internal" href="#merge-review-features" id="id41">9&nbsp;&nbsp;&nbsp;Merge review features</a><ul class="auto-toc">
<li><a class="reference internal" href="#variable-text-selection" id="id42">9.1&nbsp;&nbsp;&nbsp;Variable text selection</a></li>
<li><a class="reference internal" href="#id4" id="id43">9.2&nbsp;&nbsp;&nbsp;Per-hunk ignore whitespace</a></li>
</ul>
</li>
<li><a class="reference internal" href="#unmerging-merge-conflicts" id="id44">10&nbsp;&nbsp;&nbsp;Unmerging merge conflicts</a><ul class="auto-toc">
<li><a class="reference internal" href="#unmerging-merge-conflicts-with-three-files" id="id45">10.1&nbsp;&nbsp;&nbsp;Unmerging merge conflicts with three files</a></li>
</ul>
</li>
<li><a class="reference internal" href="#editing-files" id="id46">11&nbsp;&nbsp;&nbsp;Editing files</a></li>
<li><a class="reference internal" href="#customization-using-resource-file" id="id47">12&nbsp;&nbsp;&nbsp;Customization using resource file</a><ul class="auto-toc">
<li><a class="reference internal" href="#automatic-generation-of-the-resource-file" id="id48">12.1&nbsp;&nbsp;&nbsp;Automatic generation of the resource file</a></li>
</ul>
</li>
<li><a class="reference internal" href="#resource-reference" id="id49">13&nbsp;&nbsp;&nbsp;Resource reference</a></li>
<li><a class="reference internal" href="#frequently-asked-questions-faq" id="id50">14&nbsp;&nbsp;&nbsp;Frequently Asked Questions (FAQ)</a><ul class="auto-toc">
<li><a class="reference internal" href="#can-i-diff-files-with-crlf-dos-characters-in-them" id="id51">14.1&nbsp;&nbsp;&nbsp;Can I diff files with CRLF DOS characters in them?</a></li>
<li><a class="reference internal" href="#how-do-i-make-xxdiff-display-the-revision-number-of-a-file" id="id52">14.2&nbsp;&nbsp;&nbsp;How do I make xxdiff display the revision number of a file?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#author" id="id53">15&nbsp;&nbsp;&nbsp;Author</a></li>
<li><a class="reference internal" href="#reporting-bugs" id="id54">16&nbsp;&nbsp;&nbsp;Reporting bugs</a></li>
<li><a class="reference internal" href="#project-history" id="id55">17&nbsp;&nbsp;&nbsp;Project history</a><ul class="auto-toc">
<li><a class="reference internal" href="#licensing" id="id56">17.1&nbsp;&nbsp;&nbsp;Licensing</a></li>
<li><a class="reference internal" href="#dependencies" id="id57">17.2&nbsp;&nbsp;&nbsp;Dependencies</a></li>
<li><a class="reference internal" href="#acknowledgements" id="id58">17.3&nbsp;&nbsp;&nbsp;Acknowledgements</a></li>
</ul>
</li>
</ul>
</div>
<!-- 1   Introduction
2   Version
3   Invocation
  3.1  Return Value
  3.2  Command-line Options
  3.3  Using xxdiff as a short-lived application
4   General operation
  4.1  The text area
    4.1.1  Horizontal diffs
    4.1.2  Per-hunk ignore whitespace
    4.1.3  Navigation
    4.1.4  Pop-up menu
    4.1.5  Searching
    4.1.6  Other options
    4.1.7  Display options
  4.2  Redoing the diffs
  4.3  Other UI elements
5   Comparing two files
  5.1  Types of hunks
  5.2  Options
6   Comparing three files
  6.1  Types of hunks
  6.2  Ignoring one file
7   Comparing two directories
  7.1  Types of hunks
  7.2  Options
  7.3  File operations
8   Merging files and resolving conflicts
  8.1  Selecting regions
  8.2  Saving the resulting file
    8.2.1  Forcing Output of a Merged File and Better Script Integration
  8.3  Rapid, sequential merge conflict resolution
  8.4  Automatic merge
    8.4.1  Requiring an output file
  8.5  Merging directories
  8.6  Merged view
9   Merge review features
  9.1  Variable text selection
  9.2  Per-hunk ignore whitespace
10  Unmerging merge conflicts
  10.1  Unmerging merge conflicts with three files
11  Editing files
12  Customization using resource file
  12.1  Automatic generation of the resource file
13  Resource reference
14  Frequently Asked Questions (FAQ)
  14.1  Can I diff files with CRLF DOS characters in them?
  14.2  How do I make xxdiff display the revision number of a file?
15  Author
16  Reporting bugs
17  Project history
  17.1  Licensing
  17.2  Dependencies
  17.3  Acknowledgements -->
<div class="section" id="introduction">
<h1><a class="toc-backref" href="#id5">1&nbsp;&nbsp;&nbsp;Introduction</a></h1>
<p>xxdiff is a <em>graphical file and directories comparison and merge
tool</em>. This program is an essential software development tool that can be
used to</p>
<ul class="simple">
<li>visualize the differences between files or directories;</li>
<li>merge files with differences, resolving conflicts and saving output to a
new file or patch;</li>
<li>assist file changes reviewing and comment production (e.g. approving source
code changes before they get merged into a source tree).</li>
</ul>
<p>xxdiff doesn't itself compute the differences between files, it just displays
them graphically (the rationale behind this is that you can use different tools
to compute the actual diffs (for example using Rational ClearCase's cleardiff,
which gives more sensible results than GNU diff in certain cases),
there is a relatively standard format for difference output (POSIX diff),
so it is easy and efficient to parse diff output from different programs,
under the UNIX dataflow paradigm, it is common for graphical tools to be
built on top of text tools. There are already many good tools to perform diffs,
so there's no need to rewrite them.</p>
</div>
<div class="section" id="version">
<h1><a class="toc-backref" href="#id6">2&nbsp;&nbsp;&nbsp;Version</a></h1>
<p>This documentation was generated for version:</p>
<div id="version">
  4.0
</div></div>
<div class="section" id="invocation">
<h1><a class="toc-backref" href="#id7">3&nbsp;&nbsp;&nbsp;Invocation</a></h1>
<p>Usage:</p>
<pre class="literal-block">
xxdiff [OPTIONS] &lt;file1&gt; &lt;file2&gt; [&lt;file3&gt;]
</pre>
<p>You can specify either two files (two-way diff), three files (three-way diff),
or two directories (directory diff).</p>
<p>You can also specify a mix of regular files and directories.  If at least one of
the paths specified on the cmdline is a regular file, all other paths that are
directories will have the basename of the regular filename appended to them.
For example, if you specify:</p>
<pre class="literal-block">
xxdiff dir1/bn1 dir2/bn2 dir3
</pre>
<p>xxdiff will be run on <tt class="docutils literal">dir1/bn1</tt>, <tt class="docutils literal">dir2/bn2</tt>, and <tt class="docutils literal">dir3/bn1</tt>.</p>
<p>xxdiff can accept one of its inputs from stdin. You must replace the relevant
filename by '<tt class="docutils literal">-</tt>' (a dash) to instruct xxdiff to use stdin for that file,
e.g.:</p>
<pre class="literal-block">
cat file2 | sort | xxdiff file1 - file3
</pre>
<p>If all the file paths are directories, a directory diff is invoked.  Note that
xxdiff doesn't do three-way directory diffs.</p>
<p>If the &quot;unmerge&quot; option is given, then xxdiff can only be invoked with a single
file containing the conflicts.</p>
<div class="section" id="return-value">
<h2><a class="toc-backref" href="#id8">3.1&nbsp;&nbsp;&nbsp;Return Value</a></h2>
<p>xxdiff returns the same values that diff(1) or diff3(1) return. See the
respective man pages of those utilities for details.</p>
</div>
<div class="section" id="command-line-options">
<h2><a class="toc-backref" href="#id9">3.2&nbsp;&nbsp;&nbsp;Command-line Options</a></h2>
<div id="invocation">
<h4>Generic options</h4>
<table cellpadding=5 width="100%">

<tr>
<td width="30%"><tt>--help</tt></td>
<td align=left>
Show help about options.
</td>
</tr>

<tr>
<td width="30%"><tt>--help-qt</tt></td>
<td align=left>
Show Qt specific options.
</td>
</tr>

<tr>
<td width="30%"><tt>--help-all</tt></td>
<td align=left>
Show all options.
</td>
</tr>

<tr>
<td width="30%"><tt>--help-html</tt></td>
<td align=left>
Output documentation in HTML.
</td>
</tr>

<tr>
<td width="30%"><tt>--version, -v</tt></td>
<td align=left>
Show version information.
</td>
</tr>

</table>

<h4>Qt options</h4>
<table cellpadding=5 width="100%">

<tr>
<td width="30%"><tt>--qt, -Q &lt;arg&gt;</tt></td>
<td align=left>
Set options to be given to Qt application options parser. See Qt manual, class QApplication for a list of supported options.
</td>
</tr>

<tr>
<td width="30%"><tt>--display &lt;arg&gt;</tt></td>
<td align=left>
Sets the X display (default is $DISPLAY).
</td>
</tr>

<tr>
<td width="30%"><tt>--style &lt;arg&gt;</tt></td>
<td align=left>
Sets the application GUI style. Possible values are motif, windows, and platinum. 
</td>
</tr>

<tr>
<td width="30%"><tt>--geometry &lt;arg&gt;</tt></td>
<td align=left>
Sets the client geometry of the main widget.
</td>
</tr>

<tr>
<td width="30%"><tt>--font &lt;arg&gt;</tt></td>
<td align=left>
Defines the application font (for widgets).
</td>
</tr>

<tr>
<td width="30%"><tt>--textfont &lt;arg&gt;</tt></td>
<td align=left>
Defines the text font (for diff text).
</td>
</tr>

<tr>
<td width="30%"><tt>--name</tt></td>
<td align=left>
Sets the application name.
</td>
</tr>

<tr>
<td width="30%"><tt>--visual &lt;arg&gt;</tt></td>
<td align=left>
Forces the application to use a particular visual on an 8-bit display (e.g. TrueColor).
</td>
</tr>

<tr>
<td width="30%"><tt>--ncols &lt;arg&gt;</tt></td>
<td align=left>
Limits the number of colors allocated in the color cube on a 8-bit display.
</td>
</tr>

<tr>
<td width="30%"><tt>--cmap</tt></td>
<td align=left>
Causes the application to install a private color map on an 8-bit display.
</td>
</tr>

<tr>
<td width="30%"><tt>--nograb</tt></td>
<td align=left>
Tells Qt to never grab the mouse or the keyboard.
</td>
</tr>

<tr>
<td width="30%"><tt>--dograb</tt></td>
<td align=left>
Running under a debugger can cause an implicit -nograb, use -dograb to override.
</td>
</tr>

<tr>
<td width="30%"><tt>--sync</tt></td>
<td align=left>
Switches to synchronous mode for debugging.
</td>
</tr>

<tr>
<td width="30%"><tt>--graphicssystem &lt;arg&gt;</tt></td>
<td align=left>
Sets the application graphics system. Possible values are raster, opengl (experimental), opengl1 (obsolete), x11, native. 
</td>
</tr>

</table>

<h4>GNU diff options (2-files only)</h4>
<table cellpadding=5 width="100%">

<tr>
<td width="30%"><tt>--ignore-all-space, -w</tt></td>
<td align=left>
Option passed to 2-files diff(1). Ignore white space when comparing lines.
</td>
</tr>

<tr>
<td width="30%"><tt>--ignore-space-change, -b</tt></td>
<td align=left>
Option passed to 2-files diff(1). Ignore changes in amount of white space.
</td>
</tr>

<tr>
<td width="30%"><tt>--ignore-case, -i</tt></td>
<td align=left>
Option passed to 2-files diff(1). Ignore changes in case; consider upper- and lower-case to be the same.
</td>
</tr>

<tr>
<td width="30%"><tt>--ignore-blank-lines, -B</tt></td>
<td align=left>
Option passed to 2-files diff(1). Ignore changes that just insert or delete blank lines.
</td>
</tr>

<tr>
<td width="30%"><tt>--recursive, -r</tt></td>
<td align=left>
Option passed to 2-files diff(1). This is only meaningful for directory diffs.
</td>
</tr>

<tr>
<td width="30%"><tt>--text, -a</tt></td>
<td align=left>
Option passed to 2-files diff(1). Treat all files as text and compare them line-by-line, even if they do not appear to be text.
</td>
</tr>

<tr>
<td width="30%"><tt>--exclude, -e &lt;arg&gt;</tt></td>
<td align=left>
When comparing directories, ignore files and subdirectories whose basenames match pattern.
</td>
</tr>

<tr>
<td width="30%"><tt>--exclude-from &lt;arg&gt;</tt></td>
<td align=left>
When comparing directories, ignore files and subdirectories whose basenames match any pattern contained in file.
</td>
</tr>

<tr>
<td width="30%"><tt>--args, -A &lt;arg&gt;</tt></td>
<td align=left>
Pass on argument to the subordinate diff program.
</td>
</tr>

</table>


<h4>Options</h4>
<table cellpadding=5 width="100%">

<tr>
<td width="30%"><tt>--no-rcfile</tt></td>
<td align=left>
Don't query rcfile resources (.xxdiffrc).
</td>
</tr>

<tr>
<td width="30%"><tt>--list-resources</tt></td>
<td align=left>
Lists all the supported resources and default values.
</td>
</tr>

<tr>
<td width="30%"><tt>--exit-on-same, -D</tt></td>
<td align=left>
If there are no differences then exit quietly with exit code of 0.
</td>
</tr>

<tr>
<td width="30%"><tt>--exit-if-no-conflicts, -E</tt></td>
<td align=left>
If there are no conflicts after making automatic merge selections, then exit quietly with exit code of 0.
</td>
</tr>

<tr>
<td width="30%"><tt>--exit-with-merge-status, -X</tt></td>
<td align=left>
If all diff hunks are selected and no unsaved selections exist, then exit with code of 0. Normally, xxdiff will pass back the diff return code.
</td>
</tr>

<tr>
<td width="30%"><tt>--single, -S</tt></td>
<td align=left>
Load a single file for display. This is a strange feature for those who like the display of code with xxdiff.
</td>
</tr>

<tr>
<td width="30%"><tt>--merge, -m</tt></td>
<td align=left>
Automatically select regions that would end up being selected by an automatic merge.
</td>
</tr>

<tr>
<td width="30%"><tt>--unmerge, -U</tt></td>
<td align=left>
Invoke on a single file with CVS-like merge conflicts, splitting the conflicts into two files for display.  If this is specified, only a single file can then be given as argument.
</td>
</tr>

<tr>
<td width="30%"><tt>--unmerge3</tt></td>
<td align=left>
Invoke on a single file with merge conflicts generated by diff3 with the show-all option, splitting the conflicts into three files for display. If this is specified, only a single file can then be given as argument.
</td>
</tr>

<tr>
<td width="30%"><tt>--resource, -R &lt;arg&gt;</tt></td>
<td align=left>
Pass on string 'str' to resource parser.  Resources given in this manner on the command line supersede other resource mechanisms.  One can specify multiple resource settings by repeating this option.
</td>
</tr>

<tr>
<td width="30%"><tt>--merged-filename, -M &lt;arg&gt;</tt></td>
<td align=left>
Specifies the filename of the merged file for output.
</td>
</tr>

<tr>
<td width="30%"><tt>--decision, -O</tt></td>
<td align=left>
Forces the user to take a decision upon exit. The user can choose between ACCEPT, REJECT or MERGED, in which case saving to the merged filename is forced (if the merged file exists, no warning is given about overwriting the file). If there are unresolved conflicts, a popup dialog will appear.  If ACCEPT or REJECT are selected, no merged file is required.  In all cases, a single line is output with the decision that was made.  This generic functionality is useful for better integration with scripts that require some form of decision to be made by the user.
</td>
</tr>

<tr>
<td width="30%"><tt>--indicate-input-processed</tt></td>
<td align=left>
Indicate that the input files have been entirely processed and are not needed anymore by printing out the string INPUT-PROCESSED on stdout as soon as possible. This can be used by scripts which create temporary files to delete those as soon as xxdiff has finished reading them. This only works from startup.
</td>
</tr>

<tr>
<td width="30%"><tt>--use-temporary-files, -t</tt></td>
<td align=left>
Copies the input streams/files into temporary files to perform diffing. This is useful if you want to diff FIFOs.
</td>
</tr>

<tr>
<td width="30%"><tt>--prompt-for-files, -p &lt;arg&gt;</tt></td>
<td align=left>
If no files are specified on the command line, show a file dialog so that the user can select them. This option is ignored if any files are specified.
</td>
</tr>

</table>

<h4>Display Options</h4>
<table cellpadding=5 width="100%">

<tr>
<td width="30%"><tt>--title1 &lt;arg&gt;</tt></td>
<td align=left>
Display 'str' instead of filename in filename label 1 (left).
</td>
</tr>

<tr>
<td width="30%"><tt>--title2 &lt;arg&gt;</tt></td>
<td align=left>
Display 'str' instead of filename in filename label 2 (middle).
</td>
</tr>

<tr>
<td width="30%"><tt>--title3 &lt;arg&gt;</tt></td>
<td align=left>
Display 'str' instead of filename in filename label 3 (right).
</td>
</tr>

<tr>
<td width="30%"><tt>--titlein, -N &lt;arg&gt;</tt></td>
<td align=left>
Display 'str' for filename in given in stdin.
</td>
</tr>

<tr>
<td width="30%"><tt>--orig-xdiff</tt></td>
<td align=left>
Use settings as close as possible to original xdiff (for the romantics longing the old days of SGI... snif snif).
</td>
</tr>

<tr>
<td width="30%"><tt>--show-merged-pane</tt></td>
<td align=left>
Display the merged pane on startup.
</td>
</tr>

</table>


</div><p>Note that the last few options are provided compatible with common GNU diff
options that the user might want to use, as a mere convenience.  Note also that
xxdiff options are a superset of the original xdiff options, so that xxdiff is
compatible with old SGI scripts that use xdiff.  xxdiff options follow the GNU
conventions for command-line options.</p>
</div>
<div class="section" id="using-xxdiff-as-a-short-lived-application">
<h2><a class="toc-backref" href="#id10">3.3&nbsp;&nbsp;&nbsp;Using xxdiff as a short-lived application</a></h2>
<p>xxdiff has not been designed with the intent of being used over multiple sets of
files over the course of one execution---that is, it has been built around the
idea that you would execute it once over a single set of inputs, use it, then
exit, rather than to open new files again using the 'file' menu features without
exiting.  The 'file' menu features are provided as a convenience, to allow one
to occasionally replace one of the files during an execution.  That is the
reason why you can't open xxdiff with just one file.  It is just not useful that
way.</p>
</div>
</div>
<div class="section" id="general-operation">
<h1><a class="toc-backref" href="#id11">4&nbsp;&nbsp;&nbsp;General operation</a></h1>
<p>This section describes general features and operation of xxdiff.</p>
<div class="section" id="the-text-area">
<h2><a class="toc-backref" href="#id12">4.1&nbsp;&nbsp;&nbsp;The text area</a></h2>
<p>xxdiff shows up with two or three text regions that display the text of the
files to compare, with color-coded blocks that indicate regions of text (lines)
that have changes (specific sections contain a list and descriptions on what
types of change can appear).  Each of these regions of text is called a &quot;hunk&quot;
in diff terminology (for more about this, see the GNU diff manual).  The text
area can be scrolled vertically and horizontally, when necessary.</p>
<p>Corresponding regions of text are aligned between the files.  Since changed
regions do not necessarily contains the same number of lines, empty alignment
lines are appended to the shorter regions in order to keep the corresponding
lines aligned (this is a simple way of solving the alignment problem; an
alternate solution would have been to implement a smart type of scrolling with
lines indicating correspondence of regions between them).</p>
<p>All the colors can be individually configured using the display options dialog
or resources.  The display dialog contains a legend of all the colors.  Note
that the default colors for different regions are often set to be the same to
other types of lines when it is not necessary to dissociate them, to avoid
visual clutter.  You could however, customize every region to be of a different
color, for example, perhaps you would want to have the dummy lines drawn of a
special color to indicate that they are not really part of the text.</p>
<p>In the text area, there is a cursor that in indicates the current line of text
being worked on.  This cursor can be optionally hidden.</p>
<div class="section" id="horizontal-diffs">
<h3><a class="toc-backref" href="#id13">4.1.1&nbsp;&nbsp;&nbsp;Horizontal diffs</a></h3>
<p>Each of the diff hunks is normally displayed in one color, but if horizontal
diffs is enabled, for each line, xxdiff find the smallest differing part of the
line that differs and displays that in a different, highlighted color.  This
allows the user to more quickly visualize exactly what has changed between the
two lines of text.  No need to mention, this is highly addictive and is now
enabled by default.  This is the &quot;single horizontal diffs&quot; mode.</p>
<p>When there are no more than two pieces of text on a single line, if the
differing parts of the lines are not too long (e.g. less than 100 chars), the
horizontal diffs can isolate the differences within the line.  This is the
&quot;multiple horizontal diffs&quot; mode.  In this mode, we require that between
horizontal changes, inserts or deletes, there be a minimal number of common
context characters, so that the eye can make out what has change between the
lines.  This value is configurable (see resources section).</p>
<p>When computing horizontal diffs, <strong>changes</strong> in whitespace can be optionally
ignored.  However, if whitespace has been added in the middle of a word, it will
still be highlighted.</p>
</div>
<div class="section" id="per-hunk-ignore-whitespace">
<h3><a class="toc-backref" href="#id14">4.1.2&nbsp;&nbsp;&nbsp;Per-hunk ignore whitespace</a></h3>
<p>Diff Hunks with text on all sides but with just whitespace or line break
differences will be detected by xxdiff and marked with a special flag. If the
feature is enabled, those hunks will be drawn of a different color, thus
enabling the reviewer to quickly ignore those hunks. See the merge review
features section for more details.</p>
</div>
<div class="section" id="navigation">
<h3><a class="toc-backref" href="#id15">4.1.3&nbsp;&nbsp;&nbsp;Navigation</a></h3>
<p>xxdiff supports a subset of the emacs bindings, as well as support for most of
the standard keys found on AT keyboards (PgUp, PgDown, arrow keys, Home, End).</p>
<p>Default bindings include:</p>
<ul class="simple">
<li>Ctrl-V, Alt-V: scroll up/down;</li>
<li>Ctrl-N, Ctrl-P: move cursor one line up/down;</li>
<li>Home, End: move cursor to beginning/end of files;</li>
<li>N, P: move to next/previous diff hunk;</li>
<li>B, O: mov the next/previous <strong>unselected</strong> diff hunk.</li>
</ul>
<p>Explore the menus to find out about the other default bindings.  You can
customize all the key bindings using the resources.</p>
</div>
<div class="section" id="pop-up-menu">
<h3><a class="toc-backref" href="#id16">4.1.4&nbsp;&nbsp;&nbsp;Pop-up menu</a></h3>
<p>Using the third mouse button in the text area brings a popup menu that contains
cursor-sensitive commands, as well as the common commands to navigate between
hunks.</p>
</div>
<div class="section" id="searching">
<h3><a class="toc-backref" href="#id17">4.1.5&nbsp;&nbsp;&nbsp;Searching</a></h3>
<p>You can search the text by bringing up the search dialog.  Type your search
query and press enter, which will apply the search and display diamond shaped
match locations in the overview area. You can then navigate the search results
using Ctrl-F and Ctrl-B.  Searching will occur in all files simultaneously.  You
have to reapply the search to search for something else.</p>
<p>You can also move the cursor and display to a particular line from the search
dialog.</p>
</div>
<div class="section" id="other-options">
<h3><a class="toc-backref" href="#id18">4.1.6&nbsp;&nbsp;&nbsp;Other options</a></h3>
<p>Carriage returns (CR) characters in DOS files can be hidden in the text area.</p>
<p>Tabs by default are rendered aligned at each 8 characters, but can be set to any
value by changing the tab width option.</p>
</div>
<div class="section" id="display-options">
<h3><a class="toc-backref" href="#id19">4.1.7&nbsp;&nbsp;&nbsp;Display options</a></h3>
<p>The display options can be fully customized by bringing up the options dialog
with the &quot;Display -&gt; Display Options...&quot; menu item.  From that dialog you can
also customize the colors and fonts.</p>
</div>
</div>
<div class="section" id="redoing-the-diffs">
<h2><a class="toc-backref" href="#id20">4.2&nbsp;&nbsp;&nbsp;Redoing the diffs</a></h2>
<p>If a file has changed while xxdiff is up, and there is need to recompute the
diffs, invoke the &quot;redo diff&quot; command from the edit menu.  The arguments used
with the surrogate diff command can be changed by using the dialog provided by
the &quot;diff arguments&quot; command.  One can also replace a loaded file with a
different one by using the &quot;open&quot; commands from the &quot;file&quot; menu.</p>
</div>
<div class="section" id="other-ui-elements">
<h2><a class="toc-backref" href="#id21">4.3&nbsp;&nbsp;&nbsp;Other UI elements</a></h2>
<p>The following other UI elements can be optionally hidden or displayed from the
Windows menu or Display menu (use the resource file to display or hide them on
startup):</p>
<ul class="simple">
<li><strong>Overview area.</strong> On the right side, an area that shows a color-coded
pictorial rendering of the diff hunks for the whole files, with
correspondences.  This area also shows the as a rectangle the currently
visible portion of text for each of the files.  This rectangle can also be
used as a scrollbar.  In addition, a marker indicates the location of the line
cursor.</li>
<li><strong>Remaining Unselected Hunks.</strong> Just above the overview area is a label that
indicates the number of remaining unselected diff hunks between the files.  In
addition, if that number is zero, and if the files are identical
byte-for-byte, it display a &quot;(=)&quot; string next to the number, so that you can
figure out quickly if the files have any ignored whitespace changes or not
(this can be important during merge review).</li>
<li><strong>Toolbar.</strong> A toolbar that gives access to the common motion and selection
commands.</li>
<li><strong>Filenames.</strong> For each file, a region at the top that displays the filename.
You can customize what shows up in this region from the command-line.
Clicking on the filename puts it in the clipboard for cut-n-paste.  (This
label will intelligently display the end part of the filename if it is too
long to fit.)  This region also display the text line that the line cursor is
in, for each file.  You can customize what gets displayed in this labeled by
using a command-line option.</li>
<li><strong>Line numbers.</strong> For each file, a thin window that display the number of each
line (dummy alignment lines don't have any number).</li>
<li><strong>Vertical line.</strong> A vertical line can be drawn in the text area, at a
specified column.  This can be used for alignment purposes or for verifying
that a line doesn't extend beyond a specified number of characters (many
people like to limit their source code to fit in e.g. 80 characters).</li>
<li><strong>Merged view</strong>. A view of the file resulting from the currently selected
regions (see section on <a class="reference internal" href="#merged-view">Merged view</a> below).</li>
</ul>
</div>
</div>
<div class="section" id="comparing-two-files">
<h1><a class="toc-backref" href="#id22">5&nbsp;&nbsp;&nbsp;Comparing two files</a></h1>
<p>When invoking xxdiff with two files, we normally think of an old and a new file,
where:</p>
<pre class="literal-block">
xxdiff old new
</pre>
<p>The default colors used here are symmetrical, so invoking the files in a
different order will result in regions being assigned the same colors.</p>
<div class="section" id="types-of-hunks">
<h2><a class="toc-backref" href="#id23">5.1&nbsp;&nbsp;&nbsp;Types of hunks</a></h2>
<p>The following hunk types can appear when comparing two files:</p>
<ul class="simple">
<li><strong>Same</strong>: no change in that region;</li>
<li><strong>Insert</strong>: text has been added to the new file;</li>
<li><strong>Delete</strong>: text has been deleted from the new file;</li>
<li><strong>Diff</strong>: text has changed between the files.</li>
</ul>
<p>Note that each Diff or Insert hunk is always separated by a Same hunk (if it was
not the case, then two different contiguous hunks would necessarily get merged
into a single Diff hunk).</p>
</div>
<div class="section" id="options">
<h2><a class="toc-backref" href="#id24">5.2&nbsp;&nbsp;&nbsp;Options</a></h2>
<p>You can ignore trailing blanks, whitespace, or case for two-way diffs.  See GNU
diff(1) manual for information these features.  xxdiff provides menu items to
access these diff options. Those items simply add or remove switches to the diff
program command-line and call the diff program again to regenerate the diffs.</p>
<p>Switches for GNU diff algorithm quality are also provided in the UI as a
convenience.</p>
</div>
</div>
<div class="section" id="comparing-three-files">
<h1><a class="toc-backref" href="#id25">6&nbsp;&nbsp;&nbsp;Comparing three files</a></h1>
<p>When invoking xxdiff with three files, we think of an ancestor file, a &quot;mine&quot;
file, which the current user has been working on, and a &quot;yours&quot; file which
someone else has merged in the main tree.  They are normally specified in the
following order:</p>
<pre class="literal-block">
xxdiff mine older yours
</pre>
<p>The default colors used here are symmetrical, so invoking the files in a
different order will result in regions being assigned the same colors.</p>
<div class="section" id="id1">
<h2><a class="toc-backref" href="#id26">6.1&nbsp;&nbsp;&nbsp;Types of hunks</a></h2>
<p>The following hunk types can appear when comparing two files:</p>
<ul class="simple">
<li><strong>Same</strong>: no change in that region;</li>
<li><strong>Insert</strong>: text has been added one of the files;</li>
<li><strong>Delete</strong>: text has been deleted from one of the files;</li>
<li><strong>DiffOne</strong>: text is different in one of the three files but the two
other files are the same.</li>
<li><strong>DiffAll</strong>: text is different in all of the three files.</li>
<li><strong>DiffDel</strong>: text is different in two files and is absent in the
third.</li>
</ul>
</div>
<div class="section" id="ignoring-one-file">
<h2><a class="toc-backref" href="#id27">6.2&nbsp;&nbsp;&nbsp;Ignoring one file</a></h2>
<p>In three-way mode, it can be useful to temporarily ignore one of the three files
to concentrate on the differences between the other two.  This feature is
available from the Display menu and is performed by simply remapping colors at
display time and doesn't require xxdiff to recompute the differences.  The
ignored file will be displayed as grayed out.</p>
</div>
</div>
<div class="section" id="comparing-two-directories">
<h1><a class="toc-backref" href="#id28">7&nbsp;&nbsp;&nbsp;Comparing two directories</a></h1>
<p>When invoking xxdiff with two directories, we normally think of an old and a new
directory, where:</p>
<pre class="literal-block">
xxdiff olddir newdir
</pre>
<p>The default colors used here are symmetrical, so invoking the files in a
different order will result in regions being assigned the same colors.</p>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">If you want to compare the files within directories all at once, use
the <tt class="docutils literal"><span class="pre">--recursive</span></tt> option and you will get a single xxdiff with
all the file differences.  xxdiff accomplishes that by passing on
the option to the subordinate diff program (e.g., GNU diff).</p>
</div>
<div class="section" id="id2">
<h2><a class="toc-backref" href="#id29">7.1&nbsp;&nbsp;&nbsp;Types of hunks</a></h2>
<p>The following hunk types can appear when comparing two directories:</p>
<ul class="simple">
<li><strong>Same</strong>: files are present in both directories and have no
differences;</li>
<li><strong>Insert</strong>: file has been added to directory;</li>
<li><strong>Delete</strong>: file has been removed from directory;</li>
<li><strong>Diff</strong>: files are present in both directories and have
differences;</li>
<li><strong>Directories</strong>: directories are present in both directories but we
don't know if they differ;</li>
</ul>
</div>
<div class="section" id="id3">
<h2><a class="toc-backref" href="#id30">7.2&nbsp;&nbsp;&nbsp;Options</a></h2>
<p>The directories can be compared recursively, in which case no directories will
be shown. You can activate this from the command-line or from the ui.</p>
<p>You can also instruct xxdiff not to display the files that haved changed, just
the insertions and deletions.</p>
</div>
<div class="section" id="file-operations">
<h2><a class="toc-backref" href="#id31">7.3&nbsp;&nbsp;&nbsp;File operations</a></h2>
<p>In directory diffs mode, you can invoke an xxdiff on the pair of files or
directories under the line cursor.  This allows you to start xxdiff on a pair of
directories, and then to examine the pairs of files that have changed, all from
that directory diff.  That functionality is available from the popup menu in the
text area (right-click).</p>
<p>You can also copy and remove files from that menu, see
<a class="reference internal" href="#merging-files-and-resolving-conflicts">Merging files and resolving conflicts</a> section for details.</p>
</div>
</div>
<div class="section" id="merging-files-and-resolving-conflicts">
<h1><a class="toc-backref" href="#id32">8&nbsp;&nbsp;&nbsp;Merging files and resolving conflicts</a></h1>
<p>Merging files is the process of manually resolving conflicts when two files
cannot be merged automatically.  This is a common problem when doing parallel
software development where multiple developers could be working on the same
files.</p>
<p>Most of the merging can be handled automatically, because if the changes were
applied to fairly independent parts of the files, most of the changes will be
insertions or deletions.  However, when overlapping changes occur, no automatic
decision can be taken.</p>
<p>xxdiff can be used to resolve conflicts by letting the user &quot;select&quot; which side
of a diff hunk should be killed and what side should be kept.  The user can take
this decision on a line-by-line basis, and can decide to keep both sides as
well, in any order.  xxdiff then allows the user to save the resulting file.</p>
<div class="section" id="selecting-regions">
<h2><a class="toc-backref" href="#id33">8.1&nbsp;&nbsp;&nbsp;Selecting regions</a></h2>
<p>Selecting a diff hunk can be carried out by clicking on it.  The colors update
to display which side is selected for output. You can select individual lines
with the second button.  There are three types of selection that you can carry
out:</p>
<ul class="simple">
<li>select clicked file;</li>
<li>select no file (take the decision that nothing will be output);</li>
<li>leave the line/hunk unselected.</li>
</ul>
<p>If you want to select more than one side, you have to invoke the split-swap-join
command (default is on 'S' key), which will split the current diff hunk if it's
a Diff hunk so you can select the pieces you want from both sides.  Further
invocations of this command will cause swapping the regions, looping through all
the different ordering possibilities, and finally joining the regions again
(preserving selections where it is possible).</p>
<p>If you want to select individual lines, use the second button of the mouse on
the lines that you want to select.</p>
</div>
<div class="section" id="saving-the-resulting-file">
<h2><a class="toc-backref" href="#id34">8.2&nbsp;&nbsp;&nbsp;Saving the resulting file</a></h2>
<p>The resulting file can be saved under one of the input filenames, under a
computed &quot;merged&quot; filename, or under a new filename (from the File menu). The
intended &quot;merged&quot; filename can be built from the input filenames and it's format
can be specified through the resources file or the command line.</p>
<p>If some regions are left unselected, the save
dialog will have some widgets that allows you to decide how you want to save the
unselected hunks:</p>
<ul class="simple">
<li><strong>Save as merge conflicts:</strong> save all sides, separating them with merge
conflict markers similar to those inserted by CVS;</li>
<li><strong>Save with conditionals:</strong> save all sides, separating them with C
pre-processor directives, so that you could then use a #define directive to
have one set of changes or another be active if compiling.</li>
</ul>
<p>The markers and pre-processor directives can be customized through the resources
file.</p>
<p>There is a customization flag that lets you specify that xxdiff should warn you
when trying to save with some regions unselected.  It will bring the cursor to
the first remaining unselected region and ask for confirmation. This can be used
to insure that the user has made all the required decisions before saving and
that no text will be forgotten.</p>
<p>You could also decide to save only the selected regions, from the File menu.
This can be useful for making comments when reviewing merges.</p>
<div class="section" id="forcing-output-of-a-merged-file-and-better-script-integration">
<h3><a class="toc-backref" href="#id35">8.2.1&nbsp;&nbsp;&nbsp;Forcing Output of a Merged File and Better Script Integration</a></h3>
<p>xxdiff is often used for merging conflicts, replacing some of the tools that are
provided with popular configuration management systems. Sometime it is
&quot;required&quot; that the conflict resolution tool output the merged file. To that
extent, xxdiff has a special mode triggered with the option <tt class="docutils literal"><span class="pre">--decision</span></tt> to
address specifically that need. When specified, the exit functionality is
replaced with three functions:</p>
<ul class="simple">
<li>exit with ACCEPT: the string &quot;ACCEPT&quot; is printed on stdout.  The left file is
automatically saved into the merged file;</li>
<li>exit with REJECT: the string &quot;REJECT&quot; is printed on stdout.  The right file is
automatically saved into the merged file;</li>
<li>exit with MERGED: the string &quot;MERGED&quot; is printed on stdout.  If there are
remaining conflictual hunks when exiting, a popup will ask how to deal with
them, you are forced to make a selection on all the hunks.</li>
</ul>
<p>We want to allow for a fast process where the user is presented with a series of
xxdiffs and has to make decisions on each. The calling script can then do
whatever is required to integrate the resulting file into its workflow.</p>
<p>If the window is killed, the merge file is not saved and NODECISION is output
(the script that calls xxdiff must be prepared to deal with that somehow).
Also, note that you are responsible for deleting the merged file.  Also in this
mode, if the merged file already exists, it gets overwritten without warning.</p>
</div>
</div>
<div class="section" id="rapid-sequential-merge-conflict-resolution">
<h2><a class="toc-backref" href="#id36">8.3&nbsp;&nbsp;&nbsp;Rapid, sequential merge conflict resolution</a></h2>
<p>Some people like to merge files within a guided process, where the visual diff
program asks for a merge decision for each conflictual hunk one-by-one and then
asks for a filename to use for saving the merged output.  For example, that is
how ClearCase's xcleardiff works when querying the user to resolve conflicts.</p>
<p>There are a set of commands under the Region menu that allows one to rapidly
take decisions on merge conflicts.  These commands perform a selection and then
automatically move the cursor to the next unselected region.  If there are no
more unselected regions, the save dialog is brought up automatically.</p>
</div>
<div class="section" id="automatic-merge">
<h2><a class="toc-backref" href="#id37">8.4&nbsp;&nbsp;&nbsp;Automatic merge</a></h2>
<p>By default, xxdiff doesn't perform any selections.  You can instruct xxdiff to
perform the initial selection of the non-conflictual regions automatically.
This can be specified from the command-line or from the Global menu.</p>
<p>Just like xxdiff can be instructed not to show up if there aren't any
differences between the files, xxdiff can also be instructed not to show up if
after the automatic merge there remains no conflictual regions. You can use the
return value to find out.</p>
<p>(Note that we do not want to add a feature to xxdiff to allow it to output to
the merged file if there are no conflics, because that would amount to make
xxdiff a non-graphical tool, while its mandate is to use such tools underneath
and display their output. Besides, that would be the single case where xxdiff
writes to a file without a file dialog.  You can very easily implement this from
within a script using the return value of either diff or xxdiff.)</p>
<div class="section" id="requiring-an-output-file">
<h3><a class="toc-backref" href="#id38">8.4.1&nbsp;&nbsp;&nbsp;Requiring an output file</a></h3>
<p>Sometimes we want to force the user into producing a merged output file (when
calling xxdiff from an update script, for example). Thus there is a feature to
put xxdiff in this mode (see resources or invocation section). In this mode, the
user must save before exiting xxdiff (exiting will prompt for save filename).</p>
</div>
</div>
<div class="section" id="merging-directories">
<h2><a class="toc-backref" href="#id39">8.5&nbsp;&nbsp;&nbsp;Merging directories</a></h2>
<p>Selecting is disable in directory diffs mode, where the concept of &quot;saving&quot; a
directory does not really make sense.  However, you can apply changes to a
directory from xxdiff, such as copying and removing files under the line cursor.
This can be invoked from the popup menu in the text area.</p>
</div>
<div class="section" id="merged-view">
<h2><a class="toc-backref" href="#id40">8.6&nbsp;&nbsp;&nbsp;Merged view</a></h2>
<p>During selection or before saving the selected regions into the result file, you
might want to visualize what it would look like with the current selections.
You can display the &quot;merged view&quot; for this purpose, an dedicated window
showing the merge output, that updates interactively as you make selections.</p>
<p>This view will scroll to match the main display.  Unselected regions are shown
in this view with oblique lines (&quot;in construction&quot; style), and merge decisions
are slightly highlighted as well.  This output allows you to review the merge
decisions before committing the file to output.</p>
</div>
</div>
<div class="section" id="merge-review-features">
<h1><a class="toc-backref" href="#id41">9&nbsp;&nbsp;&nbsp;Merge review features</a></h1>
<p>One of the most important uses of xxdiff is to assist the merge review process,
where one developer visualizes the file changes of another and approves or
rejects those changes, making comments along the way.</p>
<p>For this purpose, xxdiff puts selected text (i.e. when you click on a diff hunk)
in the clipboard text buffer when you select it.  Thus, the merge cop can select
a region, and paste the results in a neighboring editor window.</p>
<p>These snippets of code will typically be interspersed with comments.  xxdiff can
be format the line contents before they are copied to the clipboard, to make
them distinct from the merge comments.  This can be enabled using the &quot;format
clipboard text&quot; option.  The clipboard line format is a string that contains
format specifiers similar to printf for each line to be formatted prior to being
put on the clipboard.  The following specifiers are allowed:</p>
<dl class="docutils">
<dt><tt class="docutils literal">%N</tt></dt>
<dd>file line (0 is leftmost file)</dd>
<dt><tt class="docutils literal">%L</tt></dt>
<dd>line number</dd>
<dt><tt class="docutils literal">%F</tt></dt>
<dd>filename</dd>
<dt><tt class="docutils literal">%s</tt></dt>
<dd>line contents</dd>
</dl>
<p>There is also a &quot;clipboard header format&quot; resource for adding the filename at
the top of the copied text. This is useful for quickly pasting into a merge
comments file.</p>
<p>Also note that clicking on the filename labels will put the filenames in the
clipboard for similar cut-n-paste action.  This can be useful when reviewing
ClearCase revision files, which often have very long p-names.</p>
<div class="section" id="variable-text-selection">
<h2><a class="toc-backref" href="#id42">9.1&nbsp;&nbsp;&nbsp;Variable text selection</a></h2>
<p>You can press ALT and Button1 to select an arbitrary number of lines.  The
selected lines will be marked with a special border to show what gets put in the
clipboard. This is very useful when you don't want to quote an entire diff hunk,
or a section of text that straddles hunks.</p>
</div>
<div class="section" id="id4">
<h2><a class="toc-backref" href="#id43">9.2&nbsp;&nbsp;&nbsp;Per-hunk ignore whitespace</a></h2>
<p>Many source code changes often just reindent or reorganize blocks of code, and
result in many isolated hunks with no relevant changes to look at (for languages
that don't use whitespace semantics anyway). For merge police duties, this can
lead to more work to review changes, and typically, programmers (and groups,
sometimes) will explicitly choose not to allow code beautification because of
that very reason (...and the directed anger of merge cops themselves). xxdiff
now has a new feature that alleviates this problem greatly: it will scan each
diff hunk for non-whitespace changes, and if the only changes are of whitespace,
it will mark the hunk with a special flag. The &quot;ignore per-hunk whitespace&quot;
feature will draw these hunks with a different color, by default, a color very
similar to the &quot;same&quot; hunks. The hunks are not ignored, however, as skipping
from hunk to hunk will still stop at these hunks, but they can be very quickly
ignored by the merge police. So go on ahead now, and reindent that code without
fear.</p>
</div>
</div>
<div class="section" id="unmerging-merge-conflicts">
<h1><a class="toc-backref" href="#id44">10&nbsp;&nbsp;&nbsp;Unmerging merge conflicts</a></h1>
<p>Unmerging merge conflicts is a special input mode of xxdiff where a single file
containing the result of an automatic merge of two files is split into two files
and displayed as such.</p>
<p>This may sound like a &quot;trava lengua&quot;, but unmerging merge conflicts can be a
very useful feature, if you like to let your source code management system
automatically perform merges and save the output without user intervention, such
as the way CVS is normally used. Typical use of the CVS update command will
merge the main branch changes into your local copy files. When there are
conflicts, your files are modified to contain both your changes and the main
branch changes in the regions that conflict. CVS inserts text markers such as
the following to indicate the conflictual regions:</p>
<pre class="literal-block">
Some merged text.
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; MYFILE
I added this.
========
This line added in main branch.
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 1.1
Some finetext.
</pre>
<p>Then, the user is notified of the conflictual files, and has to go inspect the
conflicts and resolve them by editing the file accordingly. The problem is that
it is often quite difficult (and unpleasant) to figure out exactly what happened
during the automated merge process, without the original files (note that CVS
does make a backup copy of your file before writing it over with the merged
output, see CVS manual for details).</p>
<p>To help in figuring out what happened during merge and in performing the
user-directed selections, xxdiff can be invoked in &quot;unmerge mode&quot; with the file
containing the merge conflicts. It parses the file and generates two files from
it, displaying them with differences. You can then perform selections as usual
to produce the final merged file.</p>
<p>Note that we think that this is not the best way of resolving conflicts, rather
just a useful feature for people who like to work this way. A better way to
merge would be to use your source code management system to fetch the common
ancestor revision, the latest/head of the main branch and to invoke xxdiff with
your file, the ancestor and the latest/head. You can also tell xxdiff to
initially perform all non-conflictual selections automatically.</p>
<div class="section" id="unmerging-merge-conflicts-with-three-files">
<h2><a class="toc-backref" href="#id45">10.1&nbsp;&nbsp;&nbsp;Unmerging merge conflicts with three files</a></h2>
<p>diff3 can be used to produce a merged file in which all the three files' regions
are shown if there is a conflict. xxdiff can also parse these files and display
them as a three-way diff. You then have to invoke xxdiff with the 'unmerge3'
command-line argument to let it know you want the file split in three.</p>
</div>
</div>
<div class="section" id="editing-files">
<h1><a class="toc-backref" href="#id46">11&nbsp;&nbsp;&nbsp;Editing files</a></h1>
<p>There has been a conscious decision NOT to develop xxdiff into a fully-featured
editing program.  Sometimes it could be handy to be able to edit a few lines of
a difficult conflict.  However, that is a task best left to your own favorite
editing program.  Saving with merge conflicts will allow you to resolve those
few remaining conflicts by hand.</p>
<p>However, a few commands have been provided under the File menu to spawn an
editor on the input files.  You can then redo the diff after your input file has
changed.</p>
</div>
<div class="section" id="customization-using-resource-file">
<h1><a class="toc-backref" href="#id47">12&nbsp;&nbsp;&nbsp;Customization using resource file</a></h1>
<p>Much of the state of xxdiff can be customized through a resource file (actually,
some of the features can only be changed through resource customization).
By default, xxdiff looks for the file <tt class="docutils literal">.xxdiffrc</tt> located in the user's
home directory (this file location can be overridden by setting the environment
variable XXDIFFRC), and reads that file for resource definition.</p>
<p>The format of the resource file is a fairly simple list of colon-separated
resource name/value pairs, one per line:</p>
<pre class="literal-block">
resourceName: &quot;value&quot;
</pre>
<p>Any text after &quot;#&quot; on a line is considered a comment and ignored.</p>
<p>Some resources may require string delimiters (double-quotes) around their value
specification, but not all (see below).</p>
<p>You can also specify additional resources on the command-line, which take
precedence over the resources specified in the resource file.  To get a
complete list of the available resources, use the <tt class="docutils literal"><span class="pre">--list-resources</span></tt>
command-line option (see Options section).</p>
<p>Trick: you can use different resources files by invoking xxdiff like this in
most shells:</p>
<pre class="literal-block">
XXDIFFRC=myrcfile xxdiff file1 file2
</pre>
<div class="section" id="automatic-generation-of-the-resource-file">
<h2><a class="toc-backref" href="#id48">12.1&nbsp;&nbsp;&nbsp;Automatic generation of the resource file</a></h2>
<p>You can generate a resource file containing only the differences from the
defaults from the &quot;File -&gt; Save Option...&quot; menu command.  This can be
used to &quot;save&quot; the current customizable options into <tt class="docutils literal"><span class="pre">~/.xxdiffrc</span></tt>.</p>
</div>
</div>
<div class="section" id="resource-reference">
<h1><a class="toc-backref" href="#id49">13&nbsp;&nbsp;&nbsp;Resource reference</a></h1>
<p>This section contains a reference of the all the currently supported
customizable resources in this version of xxdiff.</p>
<div id="invocation">
<PRE>
Geometry: 1200x600
</PRE>
<BLOCKQUOTE>
Preferred geometry upon initialization.  Format is the same a X geometry specification, plus you can also use `Maximize' to maximize on startup
</BLOCKQUOTE>
<PRE>
Style: "Cleanlooks"
</PRE>
<BLOCKQUOTE>
Preferred Qt style, see Qt documentation for more details. The style can otherwise be specified through command-line arguments.
</BLOCKQUOTE>
<PRE>
Accel.[NAME].: "[ACCELERATOR]"
</PRE>
<BLOCKQUOTE>
Accelerators for most functionality. The name of the accelerator should be explicit enough that you can find which function it is bound to.
<PRE>
Accel.Exit: "&lt;key&gt;"
Accel.ExitAccept: "&lt;key&gt;"
Accel.ExitMerged: "&lt;key&gt;"
Accel.ExitReject: "&lt;key&gt;"
Accel.OpenLeft: "&lt;key&gt;"
Accel.OpenMiddle: "&lt;key&gt;"
Accel.OpenRight: "&lt;key&gt;"
Accel.SaveAsLeft: "&lt;key&gt;"
Accel.SaveAsMiddle: "&lt;key&gt;"
Accel.SaveAsRight: "&lt;key&gt;"
Accel.SaveAsMerged: "&lt;key&gt;"
Accel.SaveAs: "&lt;key&gt;"
Accel.SaveSelectedOnly: "&lt;key&gt;"
Accel.EditLeft: "&lt;key&gt;"
Accel.EditMiddle: "&lt;key&gt;"
Accel.EditRight: "&lt;key&gt;"
Accel.SaveOptions: "&lt;key&gt;"
Accel.Search: "&lt;key&gt;"
Accel.SearchForward: "&lt;key&gt;"
Accel.SearchBackward: "&lt;key&gt;"
Accel.ScrollDown: "&lt;key&gt;"
Accel.ScrollUp: "&lt;key&gt;"
Accel.CursorDown: "&lt;key&gt;"
Accel.CursorUp: "&lt;key&gt;"
Accel.CursorTop: "&lt;key&gt;"
Accel.CursorBottom: "&lt;key&gt;"
Accel.RedoDiff: "&lt;key&gt;"
Accel.EditDiffOptions: "&lt;key&gt;"
Accel.EditDisplayOptions: "&lt;key&gt;"
Accel.DiffFilesAtCursor: "&lt;key&gt;"
Accel.NextAndDiffFiles: "&lt;key&gt;"
Accel.CopyFileRightToLeft: "&lt;key&gt;"
Accel.CopyFileLeftToRight: "&lt;key&gt;"
Accel.RemoveFileLeft: "&lt;key&gt;"
Accel.RemoveFileRight: "&lt;key&gt;"
Accel.NextDifference: "&lt;key&gt;"
Accel.PreviousDifference: "&lt;key&gt;"
Accel.NextUnselected: "&lt;key&gt;"
Accel.PreviousUnselected: "&lt;key&gt;"
Accel.SelectGlobalLeft: "&lt;key&gt;"
Accel.SelectGlobalMiddle: "&lt;key&gt;"
Accel.SelectGlobalRight: "&lt;key&gt;"
Accel.SelectGlobalNeither: "&lt;key&gt;"
Accel.SelectGlobalUnselect: "&lt;key&gt;"
Accel.SelectGlobalUnselectedLeft: "&lt;key&gt;"
Accel.SelectGlobalUnselectedMiddle: "&lt;key&gt;"
Accel.SelectGlobalUnselectedRight: "&lt;key&gt;"
Accel.SelectGlobalUnselectedNeither: "&lt;key&gt;"
Accel.SelectGlobalMerge: "&lt;key&gt;"
Accel.SelectRegionLeft: "&lt;key&gt;"
Accel.SelectRegionMiddle: "&lt;key&gt;"
Accel.SelectRegionRight: "&lt;key&gt;"
Accel.SelectRegionNeither: "&lt;key&gt;"
Accel.SelectRegionUnselect: "&lt;key&gt;"
Accel.SelectRegionLeftAndNext: "&lt;key&gt;"
Accel.SelectRegionMiddleAndNext: "&lt;key&gt;"
Accel.SelectRegionRightAndNext: "&lt;key&gt;"
Accel.SelectRegionNeitherAndNext: "&lt;key&gt;"
Accel.SelectRegionSplitSwapMerge: "&lt;key&gt;"
Accel.SelectLineLeft: "&lt;key&gt;"
Accel.SelectLineMiddle: "&lt;key&gt;"
Accel.SelectLineRight: "&lt;key&gt;"
Accel.SelectLineNeither: "&lt;key&gt;"
Accel.SelectLineUnselect: "&lt;key&gt;"
Accel.TabsAt3: "&lt;key&gt;"
Accel.TabsAt4: "&lt;key&gt;"
Accel.TabsAt8: "&lt;key&gt;"
Accel.IgnoreTrailing: "&lt;key&gt;"
Accel.IgnoreWhitespace: "&lt;key&gt;"
Accel.IgnoreCase: "&lt;key&gt;"
Accel.IgnoreBlankLines: "&lt;key&gt;"
Accel.HideCarriageReturns: "&lt;key&gt;"
Accel.DirDiffIgnoreFileChanges: "&lt;key&gt;"
Accel.DirDiffRecursive: "&lt;key&gt;"
Accel.UseInternalDiff: "&lt;key&gt;"
Accel.QualityNormal: "&lt;key&gt;"
Accel.QualityFastest: "&lt;key&gt;"
Accel.QualityHighest: "&lt;key&gt;"
Accel.TogglePaneMergedView: "&lt;key&gt;"
Accel.TogglePopupMergedView: "&lt;key&gt;"
Accel.ToggleToolbar: "&lt;key&gt;"
Accel.ToggleLineNumbers: "&lt;key&gt;"
Accel.ToggleMarkers: "&lt;key&gt;"
Accel.ToggleVerticalLine: "&lt;key&gt;"
Accel.ToggleOverview: "&lt;key&gt;"
Accel.ToggleShowFilenames: "&lt;key&gt;"
Accel.HorizontalDiffNone: "&lt;key&gt;"
Accel.HorizontalDiffSingle: "&lt;key&gt;"
Accel.HorizontalDiffMultiple: "&lt;key&gt;"
Accel.ToggleIgnoreHorizontalWhitespace: "&lt;key&gt;"
Accel.ToggleIgnorePerHunkWhitespace: "&lt;key&gt;"
Accel.ToggleFormatClipboardText: "&lt;key&gt;"
Accel.IgnoreFileNone: "&lt;key&gt;"
Accel.IgnoreFileLeft: "&lt;key&gt;"
Accel.IgnoreFileMiddle: "&lt;key&gt;"
Accel.IgnoreFileRight: "&lt;key&gt;"
Accel.HelpManPage: "&lt;key&gt;"
Accel.HelpOnContext: "&lt;key&gt;"
Accel.HelpAbout: "&lt;key&gt;"
Accel.MergedClose: "&lt;key&gt;"
Accel.FontResizeBigger: "&lt;key&gt;"
Accel.FontResizeSmaller: "&lt;key&gt;"
</PRE>
</BLOCKQUOTE>
<PRE>
FontApp: "&lt;xfld-font-spec&gt;"
</PRE>
<BLOCKQUOTE>
General application font, used for widgets and menus.
</BLOCKQUOTE>
<PRE>
FontText: "&lt;xfld-font-spec&gt;"
</PRE>
<BLOCKQUOTE>
Font to use for diff text view.
</BLOCKQUOTE>
<PRE>
Color.[NAME].[Fore|Back]: "[COLOR]"
</PRE>
<BLOCKQUOTE>
Color choice for diff hunks, and for certain other items in the text view.
<PRE>
Color.Same.Fore: "&lt;color&gt;"
Color.Same.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Identical text 
</BLOCKQUOTE>
<PRE>
Color.SameBlank.Fore: "&lt;color&gt;"
Color.SameBlank.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Identical text (blank side, for filler lines when ignore-blank-lines is enabled) 
</BLOCKQUOTE>
<PRE>
Color.Insert.Fore: "&lt;color&gt;"
Color.Insert.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Insert text (side with text) 
</BLOCKQUOTE>
<PRE>
Color.InsertBlank.Fore: "&lt;color&gt;"
Color.InsertBlank.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Insert text (blank side) 
</BLOCKQUOTE>
<PRE>
Color.DiffAll.Fore: "&lt;color&gt;"
Color.DiffAll.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Different in all files 
</BLOCKQUOTE>
<PRE>
Color.DiffAllSup.Fore: "&lt;color&gt;"
Color.DiffAllSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Different in all files (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.DiffAllOnly.Fore: "&lt;color&gt;"
Color.DiffAllOnly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Different in all files (only text on lines) 
</BLOCKQUOTE>
<PRE>
Color.DiffAllNonly.Fore: "&lt;color&gt;"
Color.DiffAllNonly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Different in all files (blank side) 
</BLOCKQUOTE>
<PRE>
Color.DiffOne.Fore: "&lt;color&gt;"
Color.DiffOne.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different in one file 
</BLOCKQUOTE>
<PRE>
Color.DiffOneSup.Fore: "&lt;color&gt;"
Color.DiffOneSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different in one file (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.DiffOneOnly.Fore: "&lt;color&gt;"
Color.DiffOneOnly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different in one file (only text on lines) 
</BLOCKQUOTE>
<PRE>
Color.DiffOneNonly.Fore: "&lt;color&gt;"
Color.DiffOneNonly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different in one file (blank side)
</BLOCKQUOTE>
<PRE>
Color.DiffTwo.Fore: "&lt;color&gt;"
Color.DiffTwo.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Common text in two files only 
</BLOCKQUOTE>
<PRE>
Color.DiffTwoSup.Fore: "&lt;color&gt;"
Color.DiffTwoSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Common text in two files only (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.DiffTwoOnly.Fore: "&lt;color&gt;"
Color.DiffTwoOnly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Common text in two files only (only text on lines) 
</BLOCKQUOTE>
<PRE>
Color.DiffTwoNonly.Fore: "&lt;color&gt;"
Color.DiffTwoNonly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Common text in two files only (blank side) 
</BLOCKQUOTE>
<PRE>
Color.Delete.Fore: "&lt;color&gt;"
Color.Delete.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Delete text (side with text) 
</BLOCKQUOTE>
<PRE>
Color.DeleteBlank.Fore: "&lt;color&gt;"
Color.DeleteBlank.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Delete text (blank side) 
</BLOCKQUOTE>
<PRE>
Color.DiffDel.Fore: "&lt;color&gt;"
Color.DiffDel.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different and delete text 
</BLOCKQUOTE>
<PRE>
Color.DiffDelSup.Fore: "&lt;color&gt;"
Color.DiffDelSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different and delete text (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.DiffDelOnly.Fore: "&lt;color&gt;"
Color.DiffDelOnly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different and delete text (only text on lines) 
</BLOCKQUOTE>
<PRE>
Color.DiffDelNonly.Fore: "&lt;color&gt;"
Color.DiffDelNonly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different and delete text (blank side) 
</BLOCKQUOTE>
<PRE>
Color.DiffDelBlank.Fore: "&lt;color&gt;"
Color.DiffDelBlank.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (diff3 only) Different and delete text (empty side) 
</BLOCKQUOTE>
<PRE>
Color.Selected.Fore: "&lt;color&gt;"
Color.Selected.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Selected text 
</BLOCKQUOTE>
<PRE>
Color.SelectedSup.Fore: "&lt;color&gt;"
Color.SelectedSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Selected text (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.IgnoreDisplay.Fore: "&lt;color&gt;"
Color.IgnoreDisplay.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Ignored for display purposes 
</BLOCKQUOTE>
<PRE>
Color.IgnoreDisplaySup.Fore: "&lt;color&gt;"
Color.IgnoreDisplaySup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Ignored for display purposes (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.IgnoreDisplayOnly.Fore: "&lt;color&gt;"
Color.IgnoreDisplayOnly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Ignored for display purposes (only text on lines) 
</BLOCKQUOTE>
<PRE>
Color.IgnoreDisplayNonly.Fore: "&lt;color&gt;"
Color.IgnoreDisplayNonly.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Ignored for display purposes (blank side) 
</BLOCKQUOTE>
<PRE>
Color.Deleted.Fore: "&lt;color&gt;"
Color.Deleted.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Deleted text 
</BLOCKQUOTE>
<PRE>
Color.DeletedSup.Fore: "&lt;color&gt;"
Color.DeletedSup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Deleted text (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.Ignored.Fore: "&lt;color&gt;"
Color.Ignored.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Ignore text 
</BLOCKQUOTE>
<PRE>
Color.Directories.Fore: "&lt;color&gt;"
Color.Directories.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 (dir.diffs only) Directories in directory diffs 
</BLOCKQUOTE>
<PRE>
Color.MergedUndecided.Fore: "&lt;color&gt;"
Color.MergedUndecided.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view undecided text 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided1.Fore: "&lt;color&gt;"
Color.MergedDecided1.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 1 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided1Sup.Fore: "&lt;color&gt;"
Color.MergedDecided1Sup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 1 (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided2.Fore: "&lt;color&gt;"
Color.MergedDecided2.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 2 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided2Sup.Fore: "&lt;color&gt;"
Color.MergedDecided2Sup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 2 (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided3.Fore: "&lt;color&gt;"
Color.MergedDecided3.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 3 
</BLOCKQUOTE>
<PRE>
Color.MergedDecided3Sup.Fore: "&lt;color&gt;"
Color.MergedDecided3Sup.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, file 3 (shadowed) 
</BLOCKQUOTE>
<PRE>
Color.MergedDecidedNeither.Fore: "&lt;color&gt;"
Color.MergedDecidedNeither.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Merged view decided text, neither files 
</BLOCKQUOTE>
<PRE>
Color.Background.Fore: "&lt;color&gt;"
Color.Background.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Global background color 
</BLOCKQUOTE>
<PRE>
Color.Cursor.Fore: "&lt;color&gt;"
Color.Cursor.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Line cursor color 
</BLOCKQUOTE>
<PRE>
Color.VerticalLine.Fore: "&lt;color&gt;"
Color.VerticalLine.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Vertical line color 
</BLOCKQUOTE>
<PRE>
Color.TextSelection.Fore: "&lt;color&gt;"
Color.TextSelection.Back: "&lt;color&gt;"
</PRE>
<BLOCKQUOTE>
 Color of text region selection 
</BLOCKQUOTE>
</BLOCKQUOTE>
<PRE>
ExitOnSame: False
</PRE>
<BLOCKQUOTE>
If true, exit if both files have no differences.
</BLOCKQUOTE>
<PRE>
ExitIfNoConflicts: False
</PRE>
<BLOCKQUOTE>
If true, exit if after an automatic merge there are no conflicts.
</BLOCKQUOTE>
<PRE>
ExitWithMergeStatus: False
</PRE>
<BLOCKQUOTE>
If true, exit with error code 0 if all merges selected and saved.
</BLOCKQUOTE>
<PRE>
AutoSelectMerge: False
</PRE>
<BLOCKQUOTE>
Pre-selected non-conflictual regions as an automatic merge would.
</BLOCKQUOTE>
<PRE>
IgnoreHorizontalWhitespace: False
</PRE>
<BLOCKQUOTE>
Ignore horizontal whitespace in horizontal diffs.
</BLOCKQUOTE>
<PRE>
IgnorePerHunkWhitespace: False
</PRE>
<BLOCKQUOTE>
For each hunk, ignore hunk if there are only whitespace and line break changes within that hunk. This can be useful for ignoring code reformatting for certain source code languages that allow it (e.g. C++).
</BLOCKQUOTE>
<PRE>
FormatClipboardText: True
</PRE>
<BLOCKQUOTE>
Enables clipboard (copy-paste) formatting.  If disabled, text that goes in the clipboard is simply left unformatted.
</BLOCKQUOTE>
<PRE>
IgnoreErrors: False
</PRE>
<BLOCKQUOTE>
Disables diff errors reporting.
</BLOCKQUOTE>
<PRE>
WarnAboutUnsaved: False
</PRE>
<BLOCKQUOTE>
Enables warning upon exiting with unsaved selections.
</BLOCKQUOTE>
<PRE>
DisableCursorDisplay: False
</PRE>
<BLOCKQUOTE>
Disables displaying the line cursor.
</BLOCKQUOTE>
<PRE>
DrawPatternInFillerLines: True
</PRE>
<BLOCKQUOTE>
Some people like to have a pattern drawn for filler lines to make it really dead obvious that they are not real lines, but just inserted for display purpose. This setting enables it.
</BLOCKQUOTE>
<PRE>
HideCarriageReturns: False
</PRE>
<BLOCKQUOTE>
Hides CR characters found in files created under DOS/Windows.
</BLOCKQUOTE>
<PRE>
DirDiffIgnoreFileChanges: False
</PRE>
<BLOCKQUOTE>
In directory diffs, ignores file changes, show just additions and deletions.
</BLOCKQUOTE>
<PRE>
DirDiffBuildSolelyFromOutput: True
</PRE>
<BLOCKQUOTE>
In directory diffs, building diffs only from output, not checking against actual directory contents.  This is a self-verification feature only, and unless you're doing development you should leave this to default (true).
</BLOCKQUOTE>
<PRE>
DirDiffRecursive: False
</PRE>
<BLOCKQUOTE>
In directory diffs, enable recursive diff'ing of subdirectories.
</BLOCKQUOTE>
<PRE>
UseInternalDiff: True
</PRE>
<BLOCKQUOTE>
(Not implemented) Use internal diff computation, does not spawn external diff program.
</BLOCKQUOTE>
<PRE>
Show.[NAME]: [True|False]
</PRE>
<BLOCKQUOTE>
Set of options to determine if some UI display element is visible or not upon startup.
<PRE>
Show.Toolbar: False
</PRE>
<BLOCKQUOTE>
Show toolbar on startup.
</BLOCKQUOTE>
<PRE>
Show.LineNumbers: False
</PRE>
<BLOCKQUOTE>
Show line numbers on startup.
</BLOCKQUOTE>
<PRE>
Show.VerticalLine: False
</PRE>
<BLOCKQUOTE>
Show vertical line on startup.
</BLOCKQUOTE>
<PRE>
Show.Overview: True
</PRE>
<BLOCKQUOTE>
Show toolbar on startup.
</BLOCKQUOTE>
<PRE>
Show.Filenames: True
</PRE>
<BLOCKQUOTE>
Show toolbar on startup.
</BLOCKQUOTE>
<PRE>
Show.PaneMergedView: False
</PRE>
<BLOCKQUOTE>
Show pane merged view on startup.
</BLOCKQUOTE>
<PRE>
Show.PopupMergedView: False
</PRE>
<BLOCKQUOTE>
Show popup merged view on startup.
</BLOCKQUOTE>
</BLOCKQUOTE>
<PRE>
TabWidth: 8
</PRE>
<BLOCKQUOTE>
Tab character alignment width.
</BLOCKQUOTE>
<PRE>
Command.[NAME]: "[COMMAND]"
</PRE>
<BLOCKQUOTE>
Commands to use to generate diffs.  xxdiff is only an interface to display diff results, it doesn't actually compute diffs itself, unless you use the internal commands options, where it uses the same arguments as specified here.  Most likely these are the GNU diff commands and options.  Note that you can specify command switches here and the user interface will be automatically updated accordingly (e.g. if you set a command with the -w switch, and UI understands that the ignore whitespace feature has been turned on).
<PRE>
Command.DiffFiles2: "diff"
</PRE>
<BLOCKQUOTE>
Command to use for comparing two files.
</BLOCKQUOTE>
<PRE>
Command.DiffFiles3: "diff3"
</PRE>
<BLOCKQUOTE>
Command to use for comparing three files.
</BLOCKQUOTE>
<PRE>
Command.DiffDirectories: "diff -q -s"
</PRE>
<BLOCKQUOTE>
Command to use for comparing two directories, non-recursively.
</BLOCKQUOTE>
<PRE>
Command.DiffDirectoriesRec: "diff -q -s -r"
</PRE>
<BLOCKQUOTE>
Command to use for comparing two directories, recursively.
</BLOCKQUOTE>
<PRE>
Command.Edit: "/home/blais/p/conf/bin/e"
</PRE>
<BLOCKQUOTE>
Command to use to spawn an editor on a file.
</BLOCKQUOTE>
</BLOCKQUOTE>
<PRE>
CommandSwitch.IgnoreTrailingBlanks: "-b"
CommandSwitch.IgnoreWhitespace: "-w"
CommandSwitch.IgnoreCase: "-i"
CommandSwitch.IgnoreBlankLines: "-B"
CommandSwitch.QualityNormal: ""
CommandSwitch.QualityFastest: "-H"
CommandSwitch.QualityHighest: "-d"
</PRE>
<BLOCKQUOTE>
Definitions of cmdline switches that should be used to toggle diff options. These resources allow you to specify what switch corresponds to what feature.  The defaults are the GNU diff switches (see diff(1)).  These are only valid for two-file diff for now.  See also the InitSwitch resources.
</BLOCKQUOTE>
<PRE>
InitSwitch.IgnoreTrailingBlanks: Nop
InitSwitch.IgnoreWhitespace: Nop
InitSwitch.IgnoreCase: Nop
InitSwitch.IgnoreBlankLines: Nop
InitSwitch.QualityNormal: Nop
InitSwitch.QualityFastest: Nop
InitSwitch.QualityHighest: Nop
</PRE>
<BLOCKQUOTE>
Initialization of a particular switch after the resources have been read in. This is used to modify the command using the switch definitions. In other words, you could either set the switch within the command specification, or use a plain command and enable/disable the switch using this resource. This resource is only provided for completeness and convenience, as setting the appropriate switch in the command itself amounts to the same. See also the CommandSwitch resources.  For the quality options, you should just set a single one to 'true'.
</BLOCKQUOTE>
<PRE>
OverviewFileWidth: 20
</PRE>
<BLOCKQUOTE>
In overview area, width (in pixels) of each file.
</BLOCKQUOTE>
<PRE>
OverviewSepWidth: 14
</PRE>
<BLOCKQUOTE>
In overview area, width (in pixels) between each file.
</BLOCKQUOTE>
<PRE>
VerticalLinePosition: 80
</PRE>
<BLOCKQUOTE>
Initial column to draw vertical alignment line.
</BLOCKQUOTE>
<PRE>
Tag.[NAME]: [True|False]
</PRE>
<BLOCKQUOTE>
Tags used for conditionals used for unselected regions, when that option is used to save files.
<PRE>
Tag.Conflict.Start: "&lt;&lt;&lt;&lt;&lt;&lt;&lt; %L"
</PRE>
<BLOCKQUOTE>
String used to indicate the start of a merged merge conflict when saving with conflicts. Default is the CVS start tag.
</BLOCKQUOTE>
<PRE>
Tag.Conflict.Sep: "======="
</PRE>
<BLOCKQUOTE>
String used to separate sides of a merged merge conflict when saving with conflicts. Default is the CVS separator tag.
</BLOCKQUOTE>
<PRE>
Tag.Conflict.SepExtra: "||||||| %M"
</PRE>
<BLOCKQUOTE>
String used to separate sides of a merged 3-way merge conflict when saving with conflicts. Default is the tag generated by GNU diff3.
</BLOCKQUOTE>
<PRE>
Tag.Conflict.End: "&gt;&gt;&gt;&gt;&gt;&gt;&gt; %R"
</PRE>
<BLOCKQUOTE>
String used to end a merged merge conflict when saving with conflicts. Default is the CVS end tag.
</BLOCKQUOTE>
<PRE>
Tag.Conditional.Ifdef: "#if defined( %s )"
</PRE>
<BLOCKQUOTE>
Ifdef string used when saving with conditionals.
</BLOCKQUOTE>
<PRE>
Tag.Conditional.Elseif: "#elif defined( %s )"
</PRE>
<BLOCKQUOTE>
Elseif string used when saving with conditionals.
</BLOCKQUOTE>
<PRE>
Tag.Conditional.Endif: "#endif"
</PRE>
<BLOCKQUOTE>
Endif string used when saving with conditionals.
</BLOCKQUOTE>
<PRE>
Tag.Unmerge.Start: "^&lt;&lt;&lt;&lt;&lt;&lt;&lt; (.*)$"
</PRE>
<BLOCKQUOTE>
Tag that appears at the beginning of a line in a merged file to indicate the start of a merged merge conflict. Default is the CVS start tag.
</BLOCKQUOTE>
<PRE>
Tag.Unmerge.Sep: "^=======\s*$"
</PRE>
<BLOCKQUOTE>
Tag that appears at the beginning of a line in a merged file to separate sides of a merged merge conflict. Default is the CVS separator tag.
</BLOCKQUOTE>
<PRE>
Tag.Unmerge.SepExtra: "^\|\|\|\|\|\|\| (.*)$"
</PRE>
<BLOCKQUOTE>
Tag that appears at the beginning of a line in a merged file to separate sides of a merged 3-way merge conflict. Default is the tag generated by GNU diff3.
</BLOCKQUOTE>
<PRE>
Tag.Unmerge.End: "^&gt;&gt;&gt;&gt;&gt;&gt;&gt; (.*)$"
</PRE>
<BLOCKQUOTE>
Tag that appears at the beginning of a line in a merged file to indicate the end of a merged merge conflict. Default is the CVS end tag.
</BLOCKQUOTE>
</BLOCKQUOTE>
<PRE>
ClipboardHeaderFormat: "
In file "%F":
------------------------------
"
</PRE>
<BLOCKQUOTE>
Format of header for selection of text for formatted clipboard text.
</BLOCKQUOTE>
<PRE>
ClipboardLineFormat: "%L: %s"
</PRE>
<BLOCKQUOTE>
Format of each selection line for formatted clipboard text.
</BLOCKQUOTE>
<PRE>
HorizontalDiffType: Multiple
</PRE>
<BLOCKQUOTE>
Type of horizontal diffs display.  Can be one of None, Single, Multiple.  None: doesn't compute nor display horizontal diff; Single: just bracket the changes from line beginnings and ends; Multiple: compute multiple horizontal diff (if the sizes fit in the maximum size (see HorizontalDiffMax resource).
</BLOCKQUOTE>
<PRE>
HorizontalDiffMax: 10000
</PRE>
<BLOCKQUOTE>
Maximum table size for dynamic-programming table used for computing the horizontal diff for change lines.  If the size of one horizontal hunk times the size of the other horizontal hunk is over that size, there are no multiple horizontal diffs computed for that line, and the algorithm behaves like the Single algorithm.  You most likely don't want to touch that value.
</BLOCKQUOTE>
<PRE>
HorizontalDiffContext: 5
</PRE>
<BLOCKQUOTE>
Minimum amount of characters or token that need to be common to both lines between multiple horizontal diff hunks.  If there are not that amount of common characters, skip the horizontal hunk and display it as a changed region.  This resource is very useful to remove the cases where few characters align, resulting in many small horizontal hunks, which can be quite confusing.  Usually a value of 5 gives enough horizontal context for the eye to figure out what happenened.
</BLOCKQUOTE>
<PRE>
ShowPaneMergedViewPercent: 40
</PRE>
<BLOCKQUOTE>
Initial vertical percentage size, between 0 and 100, of the pane merged view on startup.
</BLOCKQUOTE>
<PRE>
MergedFilename: "%L.merge"
</PRE>
<BLOCKQUOTE>
Default merged filename. %L, %M, %R can be used as placeholders for left, middle and right filenames respectively. Note that ClearCase suffixes are stripped automatically.
</BLOCKQUOTE>

</div></div>
<div class="section" id="frequently-asked-questions-faq">
<h1><a class="toc-backref" href="#id50">14&nbsp;&nbsp;&nbsp;Frequently Asked Questions (FAQ)</a></h1>
<div class="section" id="can-i-diff-files-with-crlf-dos-characters-in-them">
<h2><a class="toc-backref" href="#id51">14.1&nbsp;&nbsp;&nbsp;Can I diff files with CRLF DOS characters in them?</a></h2>
<p>If you want to diff files with CRLF characters in them, you can use the 'ignore
whitespace option to GNU diff, which will work, even if only one of the files
has the DOS characters in it.</p>
</div>
<div class="section" id="how-do-i-make-xxdiff-display-the-revision-number-of-a-file">
<h2><a class="toc-backref" href="#id52">14.2&nbsp;&nbsp;&nbsp;How do I make xxdiff display the revision number of a file?</a></h2>
<p>By default, the filenames window display the filename.  From the command-line,
however, you can set it to display an arbitrary string, which could include your
current revision number.</p>
</div>
</div>
<div class="section" id="author">
<h1><a class="toc-backref" href="#id53">15&nbsp;&nbsp;&nbsp;Author</a></h1>
<p>This program has been written from scratch and is being actively maintained by
<strong>Martin Blais</strong> (<a class="reference external" href="mailto:blais&#64;furius.ca">blais&#64;furius.ca</a>).</p>
</div>
<div class="section" id="reporting-bugs">
<h1><a class="toc-backref" href="#id54">16&nbsp;&nbsp;&nbsp;Reporting bugs</a></h1>
<p>All bug reports and feature requests should be submitted through the
SourceForge bug tracking system at the following URL
<a class="reference external" href="http://sourceforge.net/bugs/?group_id=2198">http://sourceforge.net/bugs/?group_id=2198</a>.  Please avoid sending the author
email about xxdiff bugs.  Please use this bug tracking system, it is extremely
fast and simple to use.</p>
</div>
<div class="section" id="project-history">
<h1><a class="toc-backref" href="#id55">17&nbsp;&nbsp;&nbsp;Project history</a></h1>
<p>This program has been written and inspired after gdiff, mgdiff, and Rudy
Wortel's xdiff under SGI. xxdiff aims to provide a lasting open-source
replacement to these programs.  Writing this tool from scratch was originally
motivated by the need to have horizontal diffs, which turned out to be an
essential feature of this program.</p>
<p>This program is being extensively tested by several software development
engineers at discreet, that use it daily in their merge reviewing activities.
It has reached a stable state.</p>
<div class="section" id="licensing">
<h2><a class="toc-backref" href="#id56">17.1&nbsp;&nbsp;&nbsp;Licensing</a></h2>
<p>This program is distributed under the GNU General Public License. See the
<a class="reference external" href="http://www.gnu.org">GNU project website</a> for full details.</p>
</div>
<div class="section" id="dependencies">
<h2><a class="toc-backref" href="#id57">17.2&nbsp;&nbsp;&nbsp;Dependencies</a></h2>
<p>This program depends on the availability of a textual diff program (such as GNU
diff) and the Qt UI toolkit (available at <a class="reference external" href="http://trolltech.com">http://trolltech.com</a>).</p>
</div>
<div class="section" id="acknowledgements">
<h2><a class="toc-backref" href="#id58">17.3&nbsp;&nbsp;&nbsp;Acknowledgements</a></h2>
<p>Thanks go to discreet, for letting me deploy my program there, and for not
bothering me with the occasional bug fix that I did on the job.  Many more
thanks to all the many engineers who tested it there and reported problems with
it, as well as providing invaluable suggestions.</p>
<p>SourceForge is hosting my web site and I'm using many of its features.  Tomas
Pospisek (tpo at sourcepole.ch) has provided a Debian package.  Dan Weeks has
packaged it for one of the BSD variants (danimal at danimal.org).  Not sure, but
I think that Christian Savard (savardc at pobox.com) provided the original
Gentoo port (xxdiff is now supported in Gentoo).</p>
</div>
</div>
</div>
</body>
</html>