aboutsummaryrefslogtreecommitdiffstats
path: root/patch_cmds/diffstat/testing
diff options
context:
space:
mode:
authorCameron Katri <me@cameronkatri.com>2021-05-09 14:20:58 -0400
committerCameron Katri <me@cameronkatri.com>2021-05-09 14:20:58 -0400
commit5fd83771641d15c418f747bd343ba6738d3875f7 (patch)
tree5abf0f78f680d9837dbd93d4d4c3933bb7509599 /patch_cmds/diffstat/testing
downloadapple_cmds-5fd83771641d15c418f747bd343ba6738d3875f7.tar.gz
apple_cmds-5fd83771641d15c418f747bd343ba6738d3875f7.zip
Import macOS userland
adv_cmds-176 basic_cmds-55 bootstrap_cmds-116.100.1 developer_cmds-66 diskdev_cmds-667.40.1 doc_cmds-53.60.1 file_cmds-321.40.3 mail_cmds-35 misc_cmds-34 network_cmds-606.40.1 patch_cmds-17 remote_cmds-63 shell_cmds-216.60.1 system_cmds-880.60.2 text_cmds-106
Diffstat (limited to 'patch_cmds/diffstat/testing')
-rw-r--r--patch_cmds/diffstat/testing/case01.pat417
-rw-r--r--patch_cmds/diffstat/testing/case01.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01R.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01Rp0.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01b.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01f0.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01k.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01p1.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01p9.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01r1.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01r2.ref28
-rw-r--r--patch_cmds/diffstat/testing/case01u.ref28
-rw-r--r--patch_cmds/diffstat/testing/case02.pat486
-rw-r--r--patch_cmds/diffstat/testing/case02.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02R.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02Rp0.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02b.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02f0.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02k.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02p1.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02p9.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02r1.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02r2.ref4
-rw-r--r--patch_cmds/diffstat/testing/case02u.ref4
-rw-r--r--patch_cmds/diffstat/testing/case03.pat35
-rw-r--r--patch_cmds/diffstat/testing/case03.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03R.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03Rp0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03b.ref4
-rw-r--r--patch_cmds/diffstat/testing/case03f0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03k.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03p1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03p9.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03r1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03r2.ref6
-rw-r--r--patch_cmds/diffstat/testing/case03u.ref6
-rw-r--r--patch_cmds/diffstat/testing/case04.pat352
-rw-r--r--patch_cmds/diffstat/testing/case04.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04R.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04Rp0.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04b.ref39
-rw-r--r--patch_cmds/diffstat/testing/case04f0.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04k.ref81
-rw-r--r--patch_cmds/diffstat/testing/case04p1.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04p9.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04r1.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04r2.ref41
-rw-r--r--patch_cmds/diffstat/testing/case04u.ref41
-rw-r--r--patch_cmds/diffstat/testing/case05.pat17
-rw-r--r--patch_cmds/diffstat/testing/case05.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case05u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case06.pat323
-rw-r--r--patch_cmds/diffstat/testing/case06.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06R.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06Rp0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06b.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06f0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06k.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06p1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06p9.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06r1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06r2.ref6
-rw-r--r--patch_cmds/diffstat/testing/case06u.ref6
-rw-r--r--patch_cmds/diffstat/testing/case07.pat107
-rw-r--r--patch_cmds/diffstat/testing/case07.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case07Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case07b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07k.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case07u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case08.pat343
-rw-r--r--patch_cmds/diffstat/testing/case08.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08R.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08Rp0.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08b.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08f0.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08k.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08p1.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08p9.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08r1.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08r2.ref9
-rw-r--r--patch_cmds/diffstat/testing/case08u.ref9
-rw-r--r--patch_cmds/diffstat/testing/case09.pat13
-rw-r--r--patch_cmds/diffstat/testing/case09.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09R.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09Rp0.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09b.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09f0.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09k.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09p1.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09p9.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09r1.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09r2.ref1
-rw-r--r--patch_cmds/diffstat/testing/case09u.ref1
-rw-r--r--patch_cmds/diffstat/testing/case10.pat67
-rw-r--r--patch_cmds/diffstat/testing/case10.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10R.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10Rp0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10k.ref4
-rw-r--r--patch_cmds/diffstat/testing/case10p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case10u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case11.pat12
-rw-r--r--patch_cmds/diffstat/testing/case11.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case11u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case12.pat163
-rw-r--r--patch_cmds/diffstat/testing/case12.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12R.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12Rp0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12k.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case12u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13.pat303
-rw-r--r--patch_cmds/diffstat/testing/case13.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13R.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13Rp0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13k.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case13u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case14.pat12
-rw-r--r--patch_cmds/diffstat/testing/case14.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case14u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case15.pat443
-rw-r--r--patch_cmds/diffstat/testing/case15.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15R.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15Rp0.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15b.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15f0.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15k.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15p1.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15p9.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15r1.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15r2.ref13
-rw-r--r--patch_cmds/diffstat/testing/case15u.ref13
-rw-r--r--patch_cmds/diffstat/testing/case16.pat2036
-rw-r--r--patch_cmds/diffstat/testing/case16.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16R.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16Rp0.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16b.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16f0.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16k.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16p1.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16p9.ref25
-rw-r--r--patch_cmds/diffstat/testing/case16r1.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16r2.ref30
-rw-r--r--patch_cmds/diffstat/testing/case16u.ref30
-rw-r--r--patch_cmds/diffstat/testing/case17.pat115
-rw-r--r--patch_cmds/diffstat/testing/case17.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17R.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17Rp0.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17b.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17f0.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17k.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17p1.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17p9.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17r1.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17r2.ref4
-rw-r--r--patch_cmds/diffstat/testing/case17u.ref4
-rw-r--r--patch_cmds/diffstat/testing/case18.pat7
-rw-r--r--patch_cmds/diffstat/testing/case18.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case18u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19.pat14
-rw-r--r--patch_cmds/diffstat/testing/case19.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case19u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case20.pat111
-rw-r--r--patch_cmds/diffstat/testing/case20.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20R.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20Rp0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20k.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case20u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case21.pat74
-rw-r--r--patch_cmds/diffstat/testing/case21.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case21u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case22.pat651
-rw-r--r--patch_cmds/diffstat/testing/case22.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22R.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22Rp0.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22b.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22f0.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22k.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22p1.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22p9.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22r1.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22r2.ref37
-rw-r--r--patch_cmds/diffstat/testing/case22u.ref37
-rw-r--r--patch_cmds/diffstat/testing/case23.pat227
-rw-r--r--patch_cmds/diffstat/testing/case23.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23R.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23Rp0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23b.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23f0.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23k.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23p1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23p9.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23r1.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23r2.ref3
-rw-r--r--patch_cmds/diffstat/testing/case23u.ref3
-rw-r--r--patch_cmds/diffstat/testing/case24.pat217
-rw-r--r--patch_cmds/diffstat/testing/case24.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24R.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24Rp0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24b.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24f0.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24k.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24p1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24p9.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24r1.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24r2.ref6
-rw-r--r--patch_cmds/diffstat/testing/case24u.ref6
-rw-r--r--patch_cmds/diffstat/testing/case25.pat471
-rw-r--r--patch_cmds/diffstat/testing/case25.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25R.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25Rp0.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25b.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25f0.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25k.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25p1.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25p9.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25r1.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25r2.ref7
-rw-r--r--patch_cmds/diffstat/testing/case25u.ref7
-rw-r--r--patch_cmds/diffstat/testing/case26.pat1901
-rw-r--r--patch_cmds/diffstat/testing/case26.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26R.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26Rp0.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26b.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26f0.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26k.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26p1.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26p9.ref27
-rw-r--r--patch_cmds/diffstat/testing/case26r1.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26r2.ref35
-rw-r--r--patch_cmds/diffstat/testing/case26u.ref35
-rw-r--r--patch_cmds/diffstat/testing/case27.pat409
-rw-r--r--patch_cmds/diffstat/testing/case27.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27R.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27Rp0.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27b.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27f0.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27k.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27p1.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27p9.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27r1.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27r2.ref8
-rw-r--r--patch_cmds/diffstat/testing/case27u.ref8
-rw-r--r--patch_cmds/diffstat/testing/case28.pat326
-rw-r--r--patch_cmds/diffstat/testing/case28.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case28u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29.pat193
-rw-r--r--patch_cmds/diffstat/testing/case29.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case29u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31.pat22
-rw-r--r--patch_cmds/diffstat/testing/case31.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31l.pat8
-rw-r--r--patch_cmds/diffstat/testing/case31l.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lR.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lRp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lb.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lf0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lk.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lp1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lp9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lr1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lr2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31lu.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31u.pat51
-rw-r--r--patch_cmds/diffstat/testing/case31u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31uR.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31uRp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31ub.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31uf0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31uk.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31up1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31up9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31ur1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31ur2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case31uu.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32.pat13
-rw-r--r--patch_cmds/diffstat/testing/case32.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case32u.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33.pat13
-rw-r--r--patch_cmds/diffstat/testing/case33.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33R.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33Rp0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33b.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33f0.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33k.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33p1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33p9.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33r1.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33r2.ref2
-rw-r--r--patch_cmds/diffstat/testing/case33u.ref2
-rw-r--r--patch_cmds/diffstat/testing/run_atac.sh6
-rw-r--r--patch_cmds/diffstat/testing/run_test.sh51
409 files changed, 13098 insertions, 0 deletions
diff --git a/patch_cmds/diffstat/testing/case01.pat b/patch_cmds/diffstat/testing/case01.pat
new file mode 100644
index 0000000..fe0385d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01.pat
@@ -0,0 +1,417 @@
+--------------------------------------------------------------------------------
+--- /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/hp.cf Sat Feb 10 13:55:35 1996
++++ /build/x11r6/XFree86-current/xc/config/cf/hp.cf Mon Feb 19 19:10:15 1996
+@@ -59,9 +59,16 @@
+ #define Malloc0ReturnsNull YES
+
+ #ifdef __hp9000s800
++#if HasGcc2
++#define OptimizedCDebugFlags -O
++#define DefaultCCOptions
++#define SharedLibraryCCOptions -fPIC
++#define PositionIndependentCFlags -fPIC
++#else
+ #define OptimizedCDebugFlags +O1
+ #define DefaultCCOptions -Ae +ESlit
+ #define SharedLibraryCCOptions -Ae
++#endif
+ #define StandardDefines -Dhpux -DSYSV
+ #define ServerExtraDefines -DXOS -DBSTORE -DSOFTWARE_CURSOR -DNO_ALLOCA -DSCREEN_PIXMAPS -DMERGE_SAVE_UNDERS -DHAS_IFREQ -DFORCE_SEPARATE_PRIVATE
+
+--- /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/hpLib.rules Sat Jan 6 08:11:01 1996
++++ /build/x11r6/XFree86-current/xc/config/cf/hpLib.rules Mon Feb 19 19:11:14 1996
+@@ -29,8 +29,10 @@
+ #define InstLibFlags -m 0555
+ #endif
+ #ifndef UseInstalled
++#ifndef HasGcc2
+ /* assert: LdPostLib pulls in -L$(USRLIBDIR), so it doesn't need to be here */
+ #define ExtraLoadFlags -Wl,+s,+b,$(USRLIBDIR)
++#endif
+ #endif
+
+ /*
+--- /build/x11r6/XFree86-3.1.2Cf/xc/config/imake/imakemdep.h Sat Jan 6 08:11:01 1996
++++ /build/x11r6/XFree86-current/xc/config/imake/imakemdep.h Mon Feb 19 19:15:01 1996
+@@ -41,6 +41,10 @@
+ * These will be passed to the compile along with the contents of the
+ * make variable BOOTSTRAPCFLAGS.
+ */
++#if defined(clipper) || defined(__clipper__)
++#define imake_ccflags "-O -DSYSV -DBOOTSTRAPCFLAGS=-DSYSV"
++#endif
++
+ #ifdef hpux
+ #ifdef hp9000s800
+ #define imake_ccflags "-DSYSV"
+@@ -224,6 +228,9 @@
+ #ifdef apollo
+ #define DEFAULT_CPP "/usr/lib/cpp"
+ #endif
++#if defined(clipper) || defined(__clipper__)
++#define DEFAULT_CPP "/usr/lib/cpp"
++#endif
+ #if defined(_IBMR2) && !defined(DEFAULT_CPP)
+ #define DEFAULT_CPP "/usr/lpp/X11/Xamples/util/cpp/cpp"
+ #endif
+@@ -529,6 +536,12 @@
+ struct symtab predefs[] = {
+ #ifdef apollo
+ {"apollo", "1"},
++#endif
++#if defined(clipper) || defined(__clipper__)
++ {"clipper", "1"},
++ {"__clipper__", "1"},
++ {"clix", "1"},
++ {"__clix__", "1"},
+ #endif
+ #ifdef ibm032
+ {"ibm032", "1"},
+--- /build/x11r6/XFree86-3.1.2Cf/xc/config/makedepend/main.c Fri Jan 26 11:43:22 1996
++++ /build/x11r6/XFree86-current/xc/config/makedepend/main.c Mon Feb 19 19:16:06 1996
+@@ -570,7 +570,7 @@
+ return(file);
+ }
+
+-#if defined(USG) && !defined(CRAY) && !defined(SVR4) && !defined(__EMX__)
++#if defined(USG) && !defined(CRAY) && !defined(SVR4) && !defined(__EMX__) && !defined(clipper) && !defined(__clipper__)
+ int rename (from, to)
+ char *from, *to;
+ {
+--- /build/x11r6/XFree86-3.1.2Cf/xc/include/Xos.h Fri Jan 26 11:43:22 1996
++++ /build/x11r6/XFree86-current/xc/include/Xos.h Mon Feb 19 19:18:23 1996
+@@ -77,6 +77,7 @@
+
+ #ifndef X_NOT_STDC_ENV
+
++#if !(defined(sun) && !defined(SVR4)) /* 'index' is problem with K&R */
+ #include <string.h>
+ #ifndef index
+ #define index(s,c) (strchr((s),(c)))
+@@ -84,10 +85,14 @@
+ #ifndef rindex
+ #define rindex(s,c) (strrchr((s),(c)))
+ #endif
++#endif
+
+ #else
+
+ #ifdef SYSV
++#if defined(clipper) || defined(__clipper__)
++#include <malloc.h>
++#endif
+ #include <string.h>
+ #define index strchr
+ #define rindex strrchr
+@@ -149,7 +154,7 @@
+ #ifdef CRAY
+ #undef word
+ #endif /* CRAY */
+-#if defined(USG) && !defined(CRAY) && !defined(MOTOROLA) && !defined(uniosu) && !defined(__sxg__)
++#if defined(USG) && !defined(CRAY) && !defined(MOTOROLA) && !defined(uniosu) && !defined(__sxg__) && !defined(clipper) && !defined(__clipper__)
+ struct timeval {
+ long tv_sec;
+ long tv_usec;
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/import/mijpeg.c Sun Apr 17 20:34:54 1994
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/import/mijpeg.c Mon Feb 19 18:48:31 1996
+@@ -114,7 +114,7 @@
+
+ /*
+ * routines referenced by other DDXIE modules
+-/*
++ */
+ int CreateIPhotoJpegBase();
+ int InitializeIPhotoJpegBase();
+ int InitializeICPhotoJpegBase();
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/process/mpgeomaa.c Sun Apr 17 20:35:19 1994
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/process/mpgeomaa.c Mon Feb 19 18:49:43 1996
+@@ -242,7 +242,7 @@
+ }
+ }
+ /*------------------------------------------------------------------------
+-/*------------------------------------------------------------------------
++--------------------------------------------------------------------------
+ ---------------------------- initialize peTex . . . ----------------------
+ ------------------------------------------------------------------------*/
+ static int InitializeGeomAA(flo,ped)
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/process/mpgeomnn.c Sat Jan 6 08:11:01 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/process/mpgeomnn.c Mon Feb 19 18:50:29 1996
+@@ -259,7 +259,7 @@
+ }
+
+ /*------------------------------------------------------------------------
+-/*------------------------------------------------------------------------
++--------------------------------------------------------------------------
+ ---------------------------- initialize peTex . . . ----------------------
+ ------------------------------------------------------------------------*/
+ static int InitializeGeomNN(flo,ped)
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c Mon Jan 30 23:07:07 1995
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c Mon Feb 19 18:51:11 1996
+@@ -431,7 +431,7 @@
+ return FALSE;
+
+ id = describe[0];
+-/* printf("fd is %d errno is %d id is %x\n", fd, errno, id); /* */
++/* printf("fd is %d errno is %d id is %x\n", fd, errno, id); */
+
+ num_axes = (describe[1] & HIL_NUM_AXES);
+ if (id == NINE_KNOB_ID && num_axes != 3) id = QUAD_ID;
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/hp/input/hpKeyMap.c Mon Jan 30 23:06:55 1995
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/hp/input/hpKeyMap.c Mon Feb 19 18:52:20 1996
+@@ -85,7 +85,7 @@
+ /* code values in comments at line end are actual value reported on HIL.
+ REMEMBER, there is an offset of MIN_KEYCODE+2 applied to this table!
+ The PS2 keyboard table begins at offset 0, the 46021A table begins with
+- the third row. *./
++ the third row. */
+ /* Extend Char Right -- a.k.a. Kanji? */
+ XK_Control_R, NoSymbol, NoSymbol, NoSymbol, /* 0x00 */
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x01 */
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/accel/i128/i128scrin.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/accel/i128/i128scrin.c Mon Feb 19 18:53:02 1996
+@@ -348,7 +348,7 @@
+ pScreen->DestroyColormap = (DestroyColormapProcPtr)NoopDDA;
+ pScreen->ResolveColor = cfbResolveColor;
+ pScreen->BitmapToRegion = mfbPixmapToRegion;
+-#if 0 /* What's this for?! /* *TO*DO* */
++#if 0 /* What's this for?! *TO*DO* */
+ pScreen->BlockHandler = i128BlockHandler;
+ #endif
+
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c Mon Feb 19 18:53:37 1996
+@@ -351,7 +351,7 @@
+ pScreen->DestroyColormap = (DestroyColormapProcPtr)NoopDDA;
+ pScreen->ResolveColor = cfbResolveColor;
+ pScreen->BitmapToRegion = mfbPixmapToRegion;
+-#if 0 /* What's this for?! /* *TO*DO* */
++#if 0 /* What's this for?! *TO*DO* */
+ pScreen->BlockHandler = p9000BlockHandler;
+ #endif
+
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h Mon Feb 19 18:54:57 1996
+@@ -8,7 +8,7 @@
+ * Hamish Coleman 11/93 hamish@zot.apana.org.au
+ *
+ * derived from:
+- * bdm2/hgc1280/*
++ * bdm2/hgc1280/...
+ * Pascal Haible 8/93, haible@izfm.uni-stuttgart.de
+ *
+ * see mono/COPYRIGHT for copyright and disclaimers.
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c Mon Feb 19 18:55:33 1996
+@@ -8,12 +8,12 @@
+ * Hamish Coleman 11/93 hamish@zot.apana.org.au
+ *
+ * derived from:
+- * bdm2/hgc1280/*
++ * bdm2/hgc1280/...
+ * Pascal Haible 8/93, haible@izfm.uni-stuttgart.de
+- * hga2/*
++ * hga2/...
+ * Author: Davor Matic, dmatic@athena.mit.edu
+ * and
+- * vga256/*
++ * vga256/...
+ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+ *
+ * Thanks to Herb Peyerl (hpeyerl@novatel.ca) for the information on
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c Mon Feb 19 18:55:54 1996
+@@ -6,10 +6,10 @@
+ * mono/driver/hgc1280/hgc1280driv.c
+ *
+ * derived from:
+- * hga2/*
++ * hga2/...
+ * Author: Davor Matic, dmatic@athena.mit.edu
+ * and
+- * vga256/*
++ * vga256/...
+ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+ *
+ * see mono/COPYRIGHT for copyright and disclaimers.
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c Mon Feb 19 18:56:15 1996
+@@ -7,10 +7,10 @@
+ * mono/driver/sigma/sigmadriv.c
+ *
+ * Parts derived from:
+- * hga2/*
++ * hga2/...
+ * Author: Davor Matic, dmatic@athena.mit.edu
+ * and
+- * vga256/*
++ * vga256/...
+ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+ *
+ * see mono/COPYRIGHT for copyright and disclaimers.
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/mono/mono.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/mono/mono.c Mon Feb 19 18:56:58 1996
+@@ -6,10 +6,10 @@
+ * mono/mono/mono.c
+ *
+ * derived from:
+- * hga2/*
++ * hga2/...
+ * Author: Davor Matic, dmatic@athena.mit.edu
+ * and
+- * vga256/*
++ * vga256/...
+ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+ *
+ * see mono/COPYRIGHT for copyright and disclaimers.
+@@ -512,7 +512,7 @@
+ DDXPointRec pixPt; /* Point: upper left corner */
+ PixmapPtr pspix; /* Pointer to the pixmap of the saved screen */
+ ScreenPtr pScreen = savepScreen; /* This is the 'old' Screen:
+- /* real screen on leave, dummy on enter */
++ real screen on leave, dummy on enter */
+
+ /* Set up pointer to the saved pixmap (pspix) only if not resetting
+ and not exiting */
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/mono/mono.h Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/mono/mono.h Mon Feb 19 18:57:19 1996
+@@ -6,10 +6,10 @@
+ * mono/mono/mono.h
+ *
+ * derived from:
+- * hga2/*
++ * hga2/...
+ * Author: Davor Matic, dmatic@athena.mit.edu
+ * and
+- * vga256/*
++ * vga256/...
+ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+ *
+ * see mono/COPYRIGHT for copyright and disclaimers.
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c Mon Feb 19 18:57:57 1996
+@@ -27,7 +27,7 @@
+
+ #include "OScompiler.h"
+
+-/* #include "ibmIOArch.h" /* GJA */
++/* #include "ibmIOArch.h" -- GJA */
+
+ #include "vgaVideo.h"
+
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h Fri Feb 9 13:08:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h Mon Feb 19 18:58:43 1996
+@@ -679,7 +679,7 @@
+ #define GEN_TEST_CNT_VALUE 0x3f000000 /* Mach64CT/ET */
+ #define GEN_TEST_CC_EN 0x40000000 /* Mach64GX/CX */
+ #define GEN_TEST_CC_STROBE 0x80000000 /* Mach64GX/CX */
+-/* ? 0xc0000000 /* Mach64CT/ET */
++/* ? 0xc0000000 */ /* Mach64CT/ET */
+ #define CONFIG_CNTL 0x6aec
+ #define CFG_MEM_AP_SIZE 0x00000003
+ #define CFG_MEM_VGA_AP_EN 0x00000004
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c Fri Feb 9 13:08:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c Mon Feb 19 18:59:33 1996
+@@ -126,7 +126,7 @@
+ /* For the lower byte of the 32-bit color registers, there is no safe
+ * invalid value. We just set them to a specific value (making sure
+ * we don't write to non-existant color registers).
+- *
++ */
+ cirrusBackgroundColorShadow = 0xffffffff; /* Defeat the macros. */
+ cirrusForegroundColorShadow = 0xffffffff;
+ if (cirrusChip >= CLGD5422 && cirrusChip <= CLGD5430) {
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c Mon Feb 19 19:00:02 1996
+@@ -22,7 +22,7 @@
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Simon P. Cooper, <scooper@vizlab.rutgers.edu>
+- *
++ */
+ /* $XConsortium: cir_cursor.c /main/8 1995/11/13 08:20:54 kaleb $ */
+
+ #define CIRRUS_DEBUG_CURSOR
+--- /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c Mon Feb 5 12:03:00 1996
++++ /build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c Mon Feb 19 19:00:52 1996
+@@ -1402,7 +1402,7 @@
+ case OTI37C:
+ default:
+ #ifndef MONOVGA
+- /* new->std.CRTC[19] = vga256InfoRec.virtualX >> 3; /* 3 in byte mode */
++ /* new->std.CRTC[19] = vga256InfoRec.virtualX >> 3; -- 3 in byte mode */
+ /* much clearer as 0x01 than 0x41, seems odd though... */
+ new->std.Attribute[16] = 0x01;
+ if ( new->std.NoClock >= 0 )
+--- /build/x11r6/XFree86-3.1.2Cf/xc/test/xsuite/xtest/src/bin/mc/files.c Sun Apr 17 21:00:20 1994
++++ /build/x11r6/XFree86-current/xc/test/xsuite/xtest/src/bin/mc/files.c Mon Feb 19 19:02:49 1996
+@@ -95,7 +95,7 @@
+ char buf[BUFSIZ];
+
+ /*
+- * Look for a corresponding file with name lib/mc/*.mc .
++ * Look for a corresponding file with name lib/mc/{*}.mc .
+ */
+ (void) sprintf(buf, "mc/%s", file);
+ file = buf;
+--- /build/x11r6/XFree86-3.1.2Cf/xc/util/patch/malloc.c Wed Aug 15 01:13:33 1990
++++ /build/x11r6/XFree86-current/xc/util/patch/malloc.c Mon Feb 19 19:04:28 1996
+@@ -30,10 +30,8 @@
+ * go in the first int of the block, and the returned pointer will point
+ * to the second.
+ *
+-#ifdef MSTATS
+ * nmalloc[i] is the difference between the number of mallocs and frees
+ * for a given block size.
+-#endif /* MSTATS */
+ */
+
+ #define ISALLOC ((char) 0xf7) /* magic byte that implies allocation */
+@@ -208,7 +206,7 @@
+ if (--nblks <= 0) break;
+ CHAIN ((struct mhead *) cp) = (struct mhead *) (cp + siz);
+ cp += siz;}
+-/* CHAIN ((struct mhead *) cp) = 0; /* since sbrk() returns cleared core, this is already set */
++/* CHAIN ((struct mhead *) cp) = 0; -- since sbrk() returns cleared core, this is already set */
+ }
+
+ static
+@@ -449,10 +447,10 @@
+ return (1 << (p -> mh_index + 3)) - sizeof *p;
+ /**/
+ /* if (p -> mh_index >= 13)
+-/* return (1 << (p -> mh_index + 3)) - sizeof *p;
+-/* else
+-/* return p -> mh_size;
+-/**/
++ * return (1 << (p -> mh_index + 3)) - sizeof *p;
++ * else
++ * return p -> mh_size;
++ */
+ #endif /* rcheck */
+ }
+
+--- /build/x11r6/XFree86-3.1.2Cf/xc/util/patch/pch.c Sat Jan 6 08:11:01 1996
++++ /build/x11r6/XFree86-current/xc/util/patch/pch.c Mon Feb 19 19:05:12 1996
+@@ -1,5 +1,5 @@
+ /* oldHeader: pch.c,v 2.0.1.7 88/06/03 15:13:28 lwall Locked $
+-/* $XConsortium: pch.c,v 3.3 94/09/14 21:22:55 gildea Exp $
++ * $XConsortium: pch.c,v 3.3 94/09/14 21:22:55 gildea Exp $
+ *
+ * Revision 2.0.2.0 90/05/01 22:17:51 davison
+ * patch12u: unidiff support added
+--- /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/Imake.cf Fri Jan 26 11:43:22 1996
++++ /build/x11r6/XFree86-current/xc/config/cf/Imake.cf Mon Feb 19 19:13:58 1996
+@@ -19,6 +19,13 @@
+ * 4. Create a .cf file with the name given by MacroFile.
+ */
+
++#if defined(clipper) || defined(__clipper__)
++# undef clipper
++# define MacroIncludeFile <ingr.cf>
++# define MacroFile ingr.cf
++# define IngrArchitecture
++#endif /* clipper */
++
+ #ifdef ultrix
+ # define MacroIncludeFile <ultrix.cf>
+ # define MacroFile ultrix.cf
diff --git a/patch_cmds/diffstat/testing/case01.ref b/patch_cmds/diffstat/testing/case01.ref
new file mode 100644
index 0000000..50e2e5e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 +++++
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 +
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 -
+ include/Xos.h | 7 ++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ util/patch/malloc.c | 12 +++------
+ util/patch/pch.c | 2 -
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01R.ref b/patch_cmds/diffstat/testing/case01R.ref
new file mode 100644
index 0000000..f3eec8f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01R.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 -----
+ config/cf/hp.cf | 7 -----
+ config/cf/hpLib.rules | 2 -
+ config/imake/imakemdep.h | 13 ----------
+ config/makedepend/main.c | 2 -
+ include/Xos.h | 7 -----
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ util/patch/malloc.c | 12 +++++----
+ util/patch/pch.c | 2 -
+ 27 files changed, 36 insertions(+), 68 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01Rp0.ref b/patch_cmds/diffstat/testing/case01Rp0.ref
new file mode 100644
index 0000000..b7df45e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01Rp0.ref
@@ -0,0 +1,28 @@
+ /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/Imake.cf | 7 -----
+ /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/hp.cf | 7 -----
+ /build/x11r6/XFree86-3.1.2Cf/xc/config/cf/hpLib.rules | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/config/imake/imakemdep.h | 13 ----------
+ /build/x11r6/XFree86-3.1.2Cf/xc/config/makedepend/main.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/include/Xos.h | 7 -----
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ /build/x11r6/XFree86-3.1.2Cf/xc/util/patch/malloc.c | 12 +++++----
+ /build/x11r6/XFree86-3.1.2Cf/xc/util/patch/pch.c | 2 -
+ 27 files changed, 36 insertions(+), 68 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01b.ref b/patch_cmds/diffstat/testing/case01b.ref
new file mode 100644
index 0000000..50e2e5e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01b.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 +++++
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 +
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 -
+ include/Xos.h | 7 ++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ util/patch/malloc.c | 12 +++------
+ util/patch/pch.c | 2 -
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01f0.ref b/patch_cmds/diffstat/testing/case01f0.ref
new file mode 100644
index 0000000..729257c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01f0.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 7 + 0 - 0 !
+ config/cf/hp.cf | 7 7 + 0 - 0 !
+ config/cf/hpLib.rules | 2 2 + 0 - 0 !
+ config/imake/imakemdep.h | 13 13 + 0 - 0 !
+ config/makedepend/main.c | 2 1 + 1 - 0 !
+ include/Xos.h | 7 6 + 1 - 0 !
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 1 + 1 - 0 !
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 1 + 1 - 0 !
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 3 + 3 - 0 !
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 2 + 2 - 0 !
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 2 + 2 - 0 !
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 3 + 3 - 0 !
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 2 + 2 - 0 !
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 1 + 1 - 0 !
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 1 + 1 - 0 !
+ test/xsuite/xtest/src/bin/mc/files.c | 2 1 + 1 - 0 !
+ util/patch/malloc.c | 12 5 + 7 - 0 !
+ util/patch/pch.c | 2 1 + 1 - 0 !
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01k.ref b/patch_cmds/diffstat/testing/case01k.ref
new file mode 100644
index 0000000..50e2e5e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01k.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 +++++
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 +
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 -
+ include/Xos.h | 7 ++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ util/patch/malloc.c | 12 +++------
+ util/patch/pch.c | 2 -
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01p1.ref b/patch_cmds/diffstat/testing/case01p1.ref
new file mode 100644
index 0000000..97dd130
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01p1.ref
@@ -0,0 +1,28 @@
+ build/x11r6/XFree86-current/xc/config/cf/Imake.cf | 7 +++++
+ build/x11r6/XFree86-current/xc/config/cf/hp.cf | 7 +++++
+ build/x11r6/XFree86-current/xc/config/cf/hpLib.rules | 2 +
+ build/x11r6/XFree86-current/xc/config/imake/imakemdep.h | 13 ++++++++++
+ build/x11r6/XFree86-current/xc/config/makedepend/main.c | 2 -
+ build/x11r6/XFree86-current/xc/include/Xos.h | 7 ++++-
+ build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ build/x11r6/XFree86-current/xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ build/x11r6/XFree86-current/xc/test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ build/x11r6/XFree86-current/xc/util/patch/malloc.c | 12 +++------
+ build/x11r6/XFree86-current/xc/util/patch/pch.c | 2 -
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01p9.ref b/patch_cmds/diffstat/testing/case01p9.ref
new file mode 100644
index 0000000..cf6a8eb
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01p9.ref
@@ -0,0 +1,28 @@
+ Imake.cf | 7 +++++++
+ Xos.h | 7 ++++++-
+ accel/i128/i128scrin.c | 2 +-
+ accel/p9000/p9000scrin.c | 2 +-
+ bin/mc/files.c | 2 +-
+ hp.cf | 7 +++++++
+ hpLib.rules | 2 ++
+ imakemdep.h | 13 +++++++++++++
+ import/mijpeg.c | 2 +-
+ input/drivers/hil_driver.c | 2 +-
+ input/hpKeyMap.c | 2 +-
+ main.c | 2 +-
+ malloc.c | 12 +++++-------
+ mono/drivers/apollo/apolloHW.h | 2 +-
+ mono/drivers/apollo/apollodriv.c | 6 +++---
+ mono/drivers/hgc1280/hgc1280driv.c | 4 ++--
+ mono/drivers/sigma/sigmadriv.c | 4 ++--
+ mono/mono/mono.c | 6 +++---
+ mono/mono/mono.h | 4 ++--
+ pch.c | 2 +-
+ process/mpgeomaa.c | 2 +-
+ process/mpgeomnn.c | 2 +-
+ vga16/ibm/vgaImages.c | 2 +-
+ vga256/drivers/ati/regati.h | 2 +-
+ vga256/drivers/cirrus/cir_blitter.c | 2 +-
+ vga256/drivers/cirrus/cir_cursor.c | 2 +-
+ vga256/drivers/oak/oak_driver.c | 2 +-
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01r1.ref b/patch_cmds/diffstat/testing/case01r1.ref
new file mode 100644
index 0000000..08765ff
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01r1.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 +++++
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 ++
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 +-
+ include/Xos.h | 7 +++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 +-
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 +-
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 +-
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 +-
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 +-
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 +-
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 +-
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 +-
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 ++--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 +-
+ test/xsuite/xtest/src/bin/mc/files.c | 2 +-
+ util/patch/malloc.c | 12 ++++-----
+ util/patch/pch.c | 2 +-
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01r2.ref b/patch_cmds/diffstat/testing/case01r2.ref
new file mode 100644
index 0000000..f386706
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01r2.ref
@@ -0,0 +1,28 @@
+ config/cf/Imake.cf | 7 +++++
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 ++
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 +-
+ include/Xos.h | 7 ++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 +-
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 +-
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 +-
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 +-
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 +-
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 +-
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 +-
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 +-
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +-
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +-
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +-
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 +-
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 +-
+ test/xsuite/xtest/src/bin/mc/files.c | 2 +-
+ util/patch/malloc.c | 12 ++++-----
+ util/patch/pch.c | 2 +-
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case01u.ref b/patch_cmds/diffstat/testing/case01u.ref
new file mode 100644
index 0000000..d919a69
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case01u.ref
@@ -0,0 +1,28 @@
+ config/cf/hp.cf | 7 +++++
+ config/cf/hpLib.rules | 2 +
+ config/imake/imakemdep.h | 13 ++++++++++
+ config/makedepend/main.c | 2 -
+ include/Xos.h | 7 ++++-
+ programs/Xserver/XIE/mixie/import/mijpeg.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomaa.c | 2 -
+ programs/Xserver/XIE/mixie/process/mpgeomnn.c | 2 -
+ programs/Xserver/hw/hp/input/drivers/hil_driver.c | 2 -
+ programs/Xserver/hw/hp/input/hpKeyMap.c | 2 -
+ programs/Xserver/hw/xfree86/accel/i128/i128scrin.c | 2 -
+ programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h | 2 -
+ programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c | 4 +--
+ programs/Xserver/hw/xfree86/mono/mono/mono.c | 6 ++--
+ programs/Xserver/hw/xfree86/mono/mono/mono.h | 4 +--
+ programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c | 2 -
+ programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c | 2 -
+ test/xsuite/xtest/src/bin/mc/files.c | 2 -
+ util/patch/malloc.c | 12 +++------
+ util/patch/pch.c | 2 -
+ config/cf/Imake.cf | 7 +++++
+ 27 files changed, 68 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case02.pat b/patch_cmds/diffstat/testing/case02.pat
new file mode 100644
index 0000000..3e636e4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02.pat
@@ -0,0 +1,486 @@
+
+Prereq: public-patch-25
+
+*** /tmp/da20646 Wed Nov 3 20:04:26 1993
+--- mit/bug-report Wed Nov 3 20:04:25 1993
+***************
+*** 2,8 ****
+ Subject: [area]: [synopsis] [replace with actual area and short description]
+
+ VERSION:
+! R5, public-patch-25
+ [MIT public patches will edit this line to indicate the patch level]
+
+ CLIENT MACHINE and OPERATING SYSTEM:
+--- 2,8 ----
+ Subject: [area]: [synopsis] [replace with actual area and short description]
+
+ VERSION:
+! R5, public-patch-26
+ [MIT public patches will edit this line to indicate the patch level]
+
+ CLIENT MACHINE and OPERATING SYSTEM:
+*** /tmp/da21897 Thu Nov 4 08:57:24 1993
+--- mit/clients/xterm/misc.c Thu Nov 4 08:57:23 1993
+***************
+*** 1,5 ****
+ /*
+! * $XConsortium: misc.c,v 1.92 92/03/13 17:02:08 gildea Exp $
+ */
+
+ /*
+--- 1,5 ----
+ /*
+! * $XConsortium: misc.c,v 1.95.1.1 93/11/04 08:56:48 gildea Exp $
+ */
+
+ /*
+***************
+*** 444,449 ****
+--- 444,518 ----
+ }
+ }
+
++ #if defined(ALLOWLOGGING) || defined(DEBUG)
++
++ #ifndef X_NOT_POSIX
++ #define HAS_WAITPID
++ #endif
++
++ /*
++ * create a file only if we could with the permissions of the real user id.
++ * We could emulate this with careful use of access() and following
++ * symbolic links, but that is messy and has race conditions.
++ * Forking is messy, too, but we can't count on setreuid() or saved set-uids
++ * being available.
++ */
++ void
++ creat_as(uid, gid, pathname, mode)
++ int uid;
++ int gid;
++ char *pathname;
++ int mode;
++ {
++ int fd;
++ int waited;
++ int pid;
++ #ifndef HAS_WAITPID
++ int (*chldfunc)();
++
++ chldfunc = signal(SIGCHLD, SIG_DFL);
++ #endif
++ pid = fork();
++ switch (pid)
++ {
++ case 0: /* child */
++ setgid(gid);
++ setuid(uid);
++ fd = open(pathname, O_WRONLY|O_CREAT|O_APPEND, mode);
++ if (fd >= 0) {
++ close(fd);
++ _exit(0);
++ } else
++ _exit(1);
++ case -1: /* error */
++ return;
++ default: /* parent */
++ #ifdef HAS_WAITPID
++ waitpid(pid, NULL, 0);
++ #else
++ waited = wait(NULL);
++ signal(SIGCHLD, chldfunc);
++ /*
++ Since we had the signal handler uninstalled for a while,
++ we might have missed the termination of our screen child.
++ If we can check for this possibility without hanging, do so.
++ */
++ do
++ if (waited == term->screen.pid)
++ Cleanup(0);
++ while ( (waited=nonblocking_wait()) > 0);
++ #endif
++ }
++ }
++ #endif
++
++ #ifdef ALLOWLOGGING
++ /*
++ * logging is a security hole, since it allows a setuid program to
++ * write arbitrary data to an arbitrary file. So it is disabled
++ * by default.
++ */
++
+ StartLog(screen)
+ register TScreen *screen;
+ {
+***************
+*** 530,551 ****
+ return;
+ #endif
+ } else {
+! if(access(screen->logfile, F_OK) == 0) {
+! if(access(screen->logfile, W_OK) < 0)
+! return;
+! } else if(cp = rindex(screen->logfile, '/')) {
+! *cp = 0;
+! i = access(screen->logfile, W_OK);
+! *cp = '/';
+! if(i < 0)
+! return;
+! } else if(access(".", W_OK) < 0)
+ return;
+! if((screen->logfd = open(screen->logfile, O_WRONLY | O_APPEND |
+! O_CREAT, 0644)) < 0)
+! return;
+! chown(screen->logfile, screen->uid, screen->gid);
+
+ }
+ screen->logstart = screen->TekEmu ? Tbptr : bptr;
+ screen->logging = TRUE;
+--- 599,618 ----
+ return;
+ #endif
+ } else {
+! if(access(screen->logfile, F_OK) != 0) {
+! if (errno == ENOENT)
+! creat_as(screen->uid, screen->gid,
+! screen->logfile, 0644);
+! else
+ return;
+! }
+
++ if(access(screen->logfile, F_OK) != 0
++ || access(screen->logfile, W_OK) != 0)
++ return;
++ if((screen->logfd = open(screen->logfile, O_WRONLY | O_APPEND,
++ 0644)) < 0)
++ return;
+ }
+ screen->logstart = screen->TekEmu ? Tbptr : bptr;
+ screen->logging = TRUE;
+***************
+*** 587,592 ****
+--- 654,660 ----
+ CloseLog(screen);
+ }
+ #endif /* ALLOWLOGFILEEXEC */
++ #endif /* ALLOWLOGGING */
+
+
+ do_osc(func)
+***************
+*** 626,631 ****
+--- 694,700 ----
+ Changetitle(buf);
+ break;
+
++ #ifdef ALLOWLOGGING
+ case 46: /* new log file */
+ #ifdef ALLOWLOGFILECHANGES
+ /*
+***************
+*** 643,648 ****
+--- 712,718 ----
+ Bell();
+ #endif
+ break;
++ #endif /* ALLOWLOGGING */
+
+ case 50:
+ SetVTFont (fontMenu_fontescape, True, buf, NULL);
+***************
+*** 903,912 ****
+--- 973,984 ----
+ register TScreen *screen = &term->screen;
+
+ if (screen->TekEmu) {
++ #ifdef ALLOWLOGGING
+ if (screen->logging) {
+ FlushLog (screen);
+ screen->logstart = buffer;
+ }
++ #endif
+ longjmp(Tekend, 1);
+ }
+ return;
+***************
+*** 917,926 ****
+--- 989,1000 ----
+ register TScreen *screen = &term->screen;
+
+ if (!screen->TekEmu) {
++ #ifdef ALLOWLOGGING
+ if(screen->logging) {
+ FlushLog(screen);
+ screen->logstart = Tbuffer;
+ }
++ #endif
+ screen->TekEmu = TRUE;
+ longjmp(VTend, 1);
+ }
+*** /tmp/da17839 Wed Nov 3 18:16:38 1993
+--- mit/clients/xterm/Tekproc.c Wed Nov 3 18:16:37 1993
+***************
+*** 1,5 ****
+ /*
+! * $XConsortium: Tekproc.c,v 1.107 91/06/25 19:49:48 gildea Exp $
+ *
+ * Warning, there be crufty dragons here.
+ */
+--- 1,5 ----
+ /*
+! * $XConsortium: Tekproc.c,v 1.112 93/02/25 17:17:40 gildea Exp $
+ *
+ * Warning, there be crufty dragons here.
+ */
+***************
+*** 46,51 ****
+--- 46,52 ----
+ #include <stdio.h>
+ #include <errno.h>
+ #include <setjmp.h>
++ #include <signal.h>
+
+ /*
+ * Check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX
+***************
+*** 74,80 ****
+
+ #define TekColormap DefaultColormap( screen->display, \
+ DefaultScreen(screen->display) )
+! #define DefaultGCID DefaultGC(screen->display, DefaultScreen(screen->display))->gid
+
+ /* Tek defines */
+
+--- 75,81 ----
+
+ #define TekColormap DefaultColormap( screen->display, \
+ DefaultScreen(screen->display) )
+! #define DefaultGCID XGContextFromGC(DefaultGC(screen->display, DefaultScreen(screen->display)))
+
+ /* Tek defines */
+
+***************
+*** 188,194 ****
+--- 189,197 ----
+ /* menu actions */
+ { "allow-send-events", HandleAllowSends },
+ { "set-visual-bell", HandleSetVisualBell },
++ #ifdef ALLOWLOGGING
+ { "set-logging", HandleLogging },
++ #endif
+ { "redraw", HandleRedraw },
+ { "send-signal", HandleSendSignal },
+ { "quit", HandleQuit },
+***************
+*** 335,342 ****
+ register int c, x, y;
+ char ch;
+
+! for( ; ; )
+! switch(Tparsestate[c = input()]) {
+ case CASE_REPORT:
+ /* report address */
+ if(screen->TekGIN) {
+--- 338,346 ----
+ register int c, x, y;
+ char ch;
+
+! for( ; ; ) {
+! c = input();
+! switch(Tparsestate[c]) {
+ case CASE_REPORT:
+ /* report address */
+ if(screen->TekGIN) {
+***************
+*** 356,365 ****
+--- 360,371 ----
+ /* special return to vt102 mode */
+ Tparsestate = curstate;
+ TekRecord->ptr[-1] = NAK; /* remove from recording */
++ #ifdef ALLOWLOGGING
+ if(screen->logging) {
+ FlushLog(screen);
+ screen->logstart = buffer;
+ }
++ #endif
+ return;
+
+ case CASE_SPT_STATE:
+***************
+*** 626,631 ****
+--- 632,638 ----
+ Tparsestate = curstate;
+ break;
+ }
++ }
+ }
+
+ static int rcnt;
+***************
+*** 667,675 ****
+ (int *) NULL, &crocktimeout);
+ #endif
+ if(Tselect_mask & pty_mask) {
+ if(screen->logging)
+ FlushLog(screen);
+! Tbcnt = read(screen->respond, Tbptr = Tbuffer, BUF_SIZE);
+ if(Tbcnt < 0) {
+ if(errno == EIO)
+ Cleanup (0);
+--- 674,684 ----
+ (int *) NULL, &crocktimeout);
+ #endif
+ if(Tselect_mask & pty_mask) {
++ #ifdef ALLOWLOGGING
+ if(screen->logging)
+ FlushLog(screen);
+! #endif
+! Tbcnt = read(screen->respond, (char *)(Tbptr = Tbuffer), BUF_SIZE);
+ if(Tbcnt < 0) {
+ if(errno == EIO)
+ Cleanup (0);
+***************
+*** 1150,1157 ****
+ * The following is called the create the tekWidget
+ */
+
+! static void TekInitialize(request, new)
+ Widget request, new;
+ {
+ /* look for focus related events on the shell, because we need
+ * to care about the shell's border being part of our focus.
+--- 1159,1168 ----
+ * The following is called the create the tekWidget
+ */
+
+! static void TekInitialize(request, new, args, num_args)
+ Widget request, new;
++ ArgList args;
++ Cardinal *num_args;
+ {
+ /* look for focus related events on the shell, because we need
+ * to care about the shell's border being part of our focus.
+***************
+*** 1549,1565 ****
+ }
+
+
+ /* write copy of screen to a file */
+
+ TekCopy()
+ {
+- register TekLink *Tp;
+- register int tekcopyfd;
+ register TScreen *screen = &term->screen;
+ register struct tm *tp;
+ long l;
+ char buf[32];
+
+ time(&l);
+ tp = localtime(&l);
+ sprintf(buf, "COPY%02d-%02d-%02d.%02d:%02d:%02d", tp->tm_year,
+--- 1560,1585 ----
+ }
+
+
++ #ifndef X_NOT_POSIX
++ #define HAS_WAITPID
++ #endif
++
+ /* write copy of screen to a file */
+
+ TekCopy()
+ {
+ register TScreen *screen = &term->screen;
+ register struct tm *tp;
+ long l;
+ char buf[32];
++ int waited;
++ int pid;
++ #ifndef HAS_WAITPID
++ int (*chldfunc)();
+
++ chldfunc = signal(SIGCHLD, SIG_DFL);
++ #endif
++
+ time(&l);
+ tp = localtime(&l);
+ sprintf(buf, "COPY%02d-%02d-%02d.%02d:%02d:%02d", tp->tm_year,
+***************
+*** 1573,1593 ****
+ Bell();
+ return;
+ }
+! if((tekcopyfd = open(buf, O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0) {
+! Bell();
+! return;
+! }
+! chown(buf, screen->uid, screen->gid);
+! sprintf(buf, "\033%c\033%c", screen->page.fontsize + '8',
+! screen->page.linetype + '`');
+! write(tekcopyfd, buf, 4);
+! Tp = &Tek0;
+! do {
+ write(tekcopyfd, (char *)Tp->data, Tp->count);
+ Tp = Tp->next;
+! } while(Tp);
+! close(tekcopyfd);
+ }
+-
+-
+-
+--- 1593,1645 ----
+ Bell();
+ return;
+ }
+!
+! /* Write the file in an unprivileged child process because
+! using access before the open still leaves a small window
+! of opportunity. */
+! pid = fork();
+! switch (pid)
+! {
+! case 0: /* child */
+! {
+! register int tekcopyfd;
+! char initbuf[5];
+! register TekLink *Tp;
+!
+! setgid(screen->gid);
+! setuid(screen->uid);
+! tekcopyfd = open(buf, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+! if (tekcopyfd < 0)
+! _exit(1);
+! sprintf(initbuf, "\033%c\033%c", screen->page.fontsize + '8',
+! screen->page.linetype + '`');
+! write(tekcopyfd, initbuf, 4);
+! Tp = &Tek0;
+! do {
+ write(tekcopyfd, (char *)Tp->data, Tp->count);
+ Tp = Tp->next;
+! } while(Tp);
+! close(tekcopyfd);
+! _exit(0);
+! }
+! case -1: /* error */
+! Bell();
+! return;
+! default: /* parent */
+! #ifdef HAS_WAITPID
+! waitpid(pid, NULL, 0);
+! #else
+! waited = wait(NULL);
+! signal(SIGCHLD, chldfunc);
+! /*
+! Since we had the signal handler uninstalled for a while,
+! we might have missed the termination of our screen child.
+! If we can check for this possibility without hanging, do so.
+! */
+! do
+! if (waited == term->screen.pid)
+! Cleanup(0);
+! while ( (waited=nonblocking_wait()) > 0);
+! #endif
+! }
+ }
diff --git a/patch_cmds/diffstat/testing/case02.ref b/patch_cmds/diffstat/testing/case02.ref
new file mode 100644
index 0000000..cd187ac
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02.ref
@@ -0,0 +1,4 @@
+ bug-report | 2
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 +++++++++++++++++++++++++++++++++++++!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02R.ref b/patch_cmds/diffstat/testing/case02R.ref
new file mode 100644
index 0000000..072c3cd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02R.ref
@@ -0,0 +1,4 @@
+ da17839 | 98 +++------------!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ da20646 | 2 !
+ da21897 | 104 --------------------------------------------------!!!!!!!!!!!!!!
+ 3 files changed, 5 insertions(+), 102 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02Rp0.ref b/patch_cmds/diffstat/testing/case02Rp0.ref
new file mode 100644
index 0000000..341babd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02Rp0.ref
@@ -0,0 +1,4 @@
+ /tmp/da17839 | 98 ++------------!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ /tmp/da20646 | 2 !
+ /tmp/da21897 | 104 ----------------------------------------------!!!!!!!!!!!!!
+ 3 files changed, 5 insertions(+), 102 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02b.ref b/patch_cmds/diffstat/testing/case02b.ref
new file mode 100644
index 0000000..cd187ac
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02b.ref
@@ -0,0 +1,4 @@
+ bug-report | 2
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 +++++++++++++++++++++++++++++++++++++!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02f0.ref b/patch_cmds/diffstat/testing/case02f0.ref
new file mode 100644
index 0000000..7218297
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02f0.ref
@@ -0,0 +1,4 @@
+ bug-report | 2 0 + 0 - 2 !
+ clients/xterm/Tekproc.c | 98 20 + 5 - 73 !
+ clients/xterm/misc.c | 104 82 + 0 - 22 !
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02k.ref b/patch_cmds/diffstat/testing/case02k.ref
new file mode 100644
index 0000000..cd187ac
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02k.ref
@@ -0,0 +1,4 @@
+ bug-report | 2
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 +++++++++++++++++++++++++++++++++++++!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02p1.ref b/patch_cmds/diffstat/testing/case02p1.ref
new file mode 100644
index 0000000..cd187ac
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02p1.ref
@@ -0,0 +1,4 @@
+ bug-report | 2
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 +++++++++++++++++++++++++++++++++++++!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02p9.ref b/patch_cmds/diffstat/testing/case02p9.ref
new file mode 100644
index 0000000..3cd471b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02p9.ref
@@ -0,0 +1,4 @@
+ Tekproc.c | 98 +++++++++++---!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ bug-report | 2 !
+ misc.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02r1.ref b/patch_cmds/diffstat/testing/case02r1.ref
new file mode 100644
index 0000000..b63f8bc
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02r1.ref
@@ -0,0 +1,4 @@
+ bug-report | 2 !
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 ++++++++++++++++++++++++++++++++++++++!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02r2.ref b/patch_cmds/diffstat/testing/case02r2.ref
new file mode 100644
index 0000000..b63f8bc
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02r2.ref
@@ -0,0 +1,4 @@
+ bug-report | 2 !
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ clients/xterm/misc.c | 104 ++++++++++++++++++++++++++++++++++++++!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case02u.ref b/patch_cmds/diffstat/testing/case02u.ref
new file mode 100644
index 0000000..e0d58ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case02u.ref
@@ -0,0 +1,4 @@
+ bug-report | 2
+ clients/xterm/misc.c | 104 +++++++++++++++++++++++++++++++++++++!!!!!!!!!!!
+ clients/xterm/Tekproc.c | 98 +++++++++--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 3 files changed, 102 insertions(+), 5 deletions(-), 97 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case03.pat b/patch_cmds/diffstat/testing/case03.pat
new file mode 100644
index 0000000..c72c21b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03.pat
@@ -0,0 +1,35 @@
+diff -r -c diffstat/config.cache diffstat.orig/config.cache
+*** 1.1 Fri Mar 15 19:27:13 1996
+--- diffstat.orig/config.cache Fri Mar 15 19:51:02 1996
+***************
+*** 13,28 ****
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+! ac_cv_c_cross=${ac_cv_c_cross='yes'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
+--- 13,28 ----
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
+diff -r -c diffstat/config.h diffstat.orig/config.h
+*** diffstat/config.h Fri Mar 15 19:27:15 1996
+--- diffstat.orig/config.h Fri Mar 15 19:51:04 1996
+***************
+*** 6,11 ****
+--- 6,12 ----
+ */
+
+
++ #define STDC_HEADERS 1
+ #define HAVE_STDLIB_H 1
+ #define HAVE_UNISTD_H 1
+ #define HAVE_GETOPT_H 1
+Only in diffstat.orig: configure.out
+Binary files diffstat/diffstat and diffstat.orig/diffstat differ
+< nothing
+> nothing again
+Binary files diffstat/diffstat.o and diffstat.orig/diffstat.o differ
diff --git a/patch_cmds/diffstat/testing/case03.ref b/patch_cmds/diffstat/testing/case03.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03R.ref b/patch_cmds/diffstat/testing/case03R.ref
new file mode 100644
index 0000000..352160f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03R.ref
@@ -0,0 +1,6 @@
+ diffstat.orig/configure.out |only
+ diffstat/config.cache | 1 !
+ diffstat/config.h | 1 -
+ diffstat/diffstat |binary
+ diffstat/diffstat.o |binary
+ 5 files changed, 1 deletion(-), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03Rp0.ref b/patch_cmds/diffstat/testing/case03Rp0.ref
new file mode 100644
index 0000000..352160f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03Rp0.ref
@@ -0,0 +1,6 @@
+ diffstat.orig/configure.out |only
+ diffstat/config.cache | 1 !
+ diffstat/config.h | 1 -
+ diffstat/diffstat |binary
+ diffstat/diffstat.o |binary
+ 5 files changed, 1 deletion(-), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03b.ref b/patch_cmds/diffstat/testing/case03b.ref
new file mode 100644
index 0000000..7ae438f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03b.ref
@@ -0,0 +1,4 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ 3 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03f0.ref b/patch_cmds/diffstat/testing/case03f0.ref
new file mode 100644
index 0000000..0ea7d51
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03f0.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 0 + 0 - 1 !
+ config.h | 1 1 + 0 - 0 !
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03k.ref b/patch_cmds/diffstat/testing/case03k.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03k.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03p1.ref b/patch_cmds/diffstat/testing/case03p1.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03p1.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03p9.ref b/patch_cmds/diffstat/testing/case03p9.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03p9.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03r1.ref b/patch_cmds/diffstat/testing/case03r1.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03r1.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03r2.ref b/patch_cmds/diffstat/testing/case03r2.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03r2.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case03u.ref b/patch_cmds/diffstat/testing/case03u.ref
new file mode 100644
index 0000000..a5ceb9d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case03u.ref
@@ -0,0 +1,6 @@
+ config.cache | 1 !
+ config.h | 1 +
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ 5 files changed, 1 insertion(+), 1 modification(!)
diff --git a/patch_cmds/diffstat/testing/case04.pat b/patch_cmds/diffstat/testing/case04.pat
new file mode 100644
index 0000000..84e122d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04.pat
@@ -0,0 +1,352 @@
+diff -r -c diffstat/config.cache diffstat.orig/config.cache
+*** diffstat/config.cache Fri Mar 15 19:27:13 1996
+--- diffstat.orig/config.cache Fri Mar 15 19:51:02 1996
+***************
+*** 13,28 ****
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+! ac_cv_c_cross=${ac_cv_c_cross='yes'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
+! ac_cv_header_stdc=${ac_cv_header_stdc='no'}
+ ac_cv_header_stdlib_h=${ac_cv_header_stdlib_h='yes'}
+ ac_cv_header_string_h=${ac_cv_header_string_h='yes'}
+ ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'}
+ ac_cv_path_install=${ac_cv_path_install='/home/tom/com/install -c'}
+! ac_cv_prog_CC=${ac_cv_prog_CC='atacCC'}
+! ac_cv_prog_CPP=${ac_cv_prog_CPP='atacCC -E'}
+ ac_cv_prog_gcc=${ac_cv_prog_gcc='yes'}
+ ac_cv_prog_gcc_g=${ac_cv_prog_gcc_g='yes'}
+ ac_cv_prog_gcc_traditional=${ac_cv_prog_gcc_traditional='no'}
+--- 13,28 ----
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+! ac_cv_c_cross=${ac_cv_c_cross='no'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
+! ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
+ ac_cv_header_stdlib_h=${ac_cv_header_stdlib_h='yes'}
+ ac_cv_header_string_h=${ac_cv_header_string_h='yes'}
+ ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'}
+ ac_cv_path_install=${ac_cv_path_install='/home/tom/com/install -c'}
+! ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}
+! ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'}
+ ac_cv_prog_gcc=${ac_cv_prog_gcc='yes'}
+ ac_cv_prog_gcc_g=${ac_cv_prog_gcc_g='yes'}
+ ac_cv_prog_gcc_traditional=${ac_cv_prog_gcc_traditional='no'}
+diff -r -c diffstat/config.h diffstat.orig/config.h
+*** diffstat/config.h Fri Mar 15 19:27:15 1996
+--- diffstat.orig/config.h Fri Mar 15 19:51:04 1996
+***************
+*** 6,11 ****
+--- 6,12 ----
+ */
+
+
++ #define STDC_HEADERS 1
+ #define HAVE_STDLIB_H 1
+ #define HAVE_UNISTD_H 1
+ #define HAVE_GETOPT_H 1
+diff -r -c diffstat/config.log diffstat.orig/config.log
+*** diffstat/config.log Fri Mar 15 19:26:59 1996
+--- diffstat.orig/config.log Fri Mar 15 19:50:58 1996
+***************
+*** 2,27 ****
+ running configure, to aid debugging if configure makes a mistake.
+
+ configure:607: sgtty.h: No such file or directory
+! /usr/tmp/atacCC17934/conftest.c:30: warning: missing braces around initializer for `ZUmain[0]'
+! /usr/tmp/atacCC17934/conftest.c:66: warning: function declaration isn't a prototype
+! /usr/tmp/atacCC17934/conftest.c: In function `main':
+! /usr/tmp/atacCC17934/conftest.c:67: warning: implicit declaration of function `aTaC'
+! /usr/tmp/atacCC17934/conftest.c: At top level:
+! /usr/tmp/atacCC17934/conftest.c:76: warning: function declaration isn't a prototype
+! /usr/tmp/atacCC17934/conftest.c: In function `t':
+! /usr/tmp/atacCC17934/conftest.c:97: warning: declaration of `t' shadows global declaration
+! /usr/tmp/atacCC17934/conftest.c:98: warning: unused variable `s'
+! /usr/tmp/atacCC17934/conftest.c:104: warning: declaration of `x' shadows previous local
+! /usr/tmp/atacCC17934/conftest.c:111: warning: declaration of `p' shadows previous local
+! /usr/tmp/atacCC17934/conftest.c:125: warning: unused variable `foo'
+! /usr/tmp/atacCC17934/conftest.c:86: warning: unused variable `zero'
+! /usr/tmp/atacCC17934/conftest.c:80: warning: unused variable `x'
+! /usr/tmp/atacCC17934/conftest.c: At top level:
+! /usr/tmp/atacCC17934/conftest.c:1: warning: `ZIDENT' defined but not used
+! /usr/tmp/atacCC17972/conftest.c:30: warning: missing braces around initializer for `ZUmain[0]'
+! /usr/tmp/atacCC17972/conftest.c:39: warning: return-type defaults to `int'
+! /usr/tmp/atacCC17972/conftest.c:39: warning: function declaration isn't a prototype
+! /usr/tmp/atacCC17972/conftest.c: In function `main':
+! /usr/tmp/atacCC17972/conftest.c:40: warning: implicit declaration of function `aTaC'
+! /usr/tmp/atacCC17972/conftest.c: At top level:
+! /usr/tmp/atacCC17972/conftest.c:1: warning: `ZIDENT' defined but not used
+--- 2,19 ----
+ running configure, to aid debugging if configure makes a mistake.
+
+ configure:607: sgtty.h: No such file or directory
+! configure:659: warning: function declaration isn't a prototype
+! configure:660: warning: function declaration isn't a prototype
+! configure: In function `t':
+! configure:680: warning: declaration of `t' shadows global declaration
+! configure:681: warning: unused variable `s'
+! configure:686: warning: declaration of `x' shadows previous local
+! configure:692: warning: declaration of `p' shadows previous local
+! configure:701: warning: unused variable `foo'
+! configure:669: warning: unused variable `zero'
+! configure:663: warning: unused variable `x'
+! configure:680: warning: `t' might be used uninitialized in this function
+! configure:698: warning: `b' might be used uninitialized in this function
+! configure:735: warning: return-type defaults to `int'
+! configure:735: warning: function declaration isn't a prototype
+! configure:821: warning: function declaration isn't a prototype
+diff -r -c diffstat/config.status diffstat.orig/config.status
+*** diffstat/config.status Fri Mar 15 19:27:14 1996
+--- diffstat.orig/config.status Fri Mar 15 19:51:03 1996
+***************
+*** 4,10 ****
+ # This directory was configured as follows,
+ # on host dickey-ppp:
+ #
+! # ./configure
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+--- 4,10 ----
+ # This directory was configured as follows,
+ # on host dickey-ppp:
+ #
+! # ./configure --verbose --disable-echo --enable-warnings --with-warnings
+ #
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+***************
+*** 14,21 ****
+ do
+ case "$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+! echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion"
+! exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "./config.status generated by autoconf version 2.3"
+ exit 0 ;;
+--- 14,21 ----
+ do
+ case "$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+! echo "running ${CONFIG_SHELL-/bin/sh} ./configure --verbose --disable-echo --enable-warnings --with-warnings --no-create --no-recursion"
+! exec ${CONFIG_SHELL-/bin/sh} ./configure --verbose --disable-echo --enable-warnings --with-warnings --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "./config.status generated by autoconf version 2.3"
+ exit 0 ;;
+***************
+*** 38,53 ****
+ s%@CFLAGS@%-O -Wall -Wshadow -Wconversion -Wstrict-prototypes -Wmissing-prototypes%g
+ s%@CPPFLAGS@%%g
+ s%@CXXFLAGS@%%g
+! s%@DEFS@% -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -DHAVE_STRING_H=1 -DHAVE_MALLOC_H=1 %g
+ s%@LDFLAGS@%%g
+ s%@LIBS@%%g
+ s%@exec_prefix@%${prefix}%g
+ s%@prefix@%/usr/local%g
+ s%@program_transform_name@%s,x,x,%g
+! s%@CC@%atacCC%g
+ s%@INSTALL_PROGRAM@%${INSTALL}%g
+ s%@INSTALL_DATA@%${INSTALL} -m 644%g
+! s%@CPP@%atacCC -E%g
+
+ CEOF
+
+--- 38,53 ----
+ s%@CFLAGS@%-O -Wall -Wshadow -Wconversion -Wstrict-prototypes -Wmissing-prototypes%g
+ s%@CPPFLAGS@%%g
+ s%@CXXFLAGS@%%g
+! s%@DEFS@% -DSTDC_HEADERS=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -DHAVE_STRING_H=1 -DHAVE_MALLOC_H=1 %g
+ s%@LDFLAGS@%%g
+ s%@LIBS@%%g
+ s%@exec_prefix@%${prefix}%g
+ s%@prefix@%/usr/local%g
+ s%@program_transform_name@%s,x,x,%g
+! s%@CC@%gcc%g
+ s%@INSTALL_PROGRAM@%${INSTALL}%g
+ s%@INSTALL_DATA@%${INSTALL} -m 644%g
+! s%@CPP@%gcc -E%g
+
+ CEOF
+
+Only in diffstat.orig: configure.out
+Binary files diffstat/diffstat and diffstat.orig/diffstat differ
+Binary files diffstat/diffstat.o and diffstat.orig/diffstat.o differ
+diff -r -c diffstat/makefile diffstat.orig/makefile
+*** diffstat/makefile Fri Mar 15 19:27:15 1996
+--- diffstat.orig/makefile Fri Mar 15 19:51:04 1996
+***************
+*** 7,13 ****
+
+ srcdir = .
+
+! CC = atacCC
+ LINK = $(CC)
+ INSTALL = /home/tom/com/install -c
+ INSTALL_PROGRAM = ${INSTALL}
+--- 7,13 ----
+
+ srcdir = .
+
+! CC = gcc
+ LINK = $(CC)
+ INSTALL = /home/tom/com/install -c
+ INSTALL_PROGRAM = ${INSTALL}
+Only in diffstat/testing: Xlib-1.patch-
+Only in diffstat/testing: Xlib-1.ref
+Only in diffstat/testing: Xlib-2.patch-
+Only in diffstat/testing: Xlib-2.ref
+Only in diffstat/testing: Xlib-3.patch-
+Only in diffstat/testing: Xlib-3.ref
+Only in diffstat/testing: config-1.ref
+Only in diffstat/testing: nugent.ref
+Only in diffstat/testing: xserver-1.ref
+Only in diffstat/testing: xserver-2.patch-
+Only in diffstat/testing: xserver-2.ref
+Only in diffstat/testing: xterm-1.patch-
+Only in diffstat/testing: xterm-1.ref
+Only in diffstat/testing: xterm-10.patch-
+Only in diffstat/testing: xterm-10.ref
+Only in diffstat/testing: xterm-11.patch-
+Only in diffstat/testing: xterm-11.ref
+Only in diffstat/testing: xterm-2.patch-
+Only in diffstat/testing: xterm-2.ref
+Only in diffstat/testing: xterm-3.patch-
+Only in diffstat/testing: xterm-3.ref
+Only in diffstat/testing: xterm-4.patch-
+Only in diffstat/testing: xterm-4.ref
+Only in diffstat/testing: xterm-5.patch-
+Only in diffstat/testing: xterm-5.ref
+Only in diffstat/testing: xterm-6.patch-
+Only in diffstat/testing: xterm-6.ref
+Only in diffstat/testing: xterm-7.ref
+Only in diffstat/testing: xterm-8.patch-
+Only in diffstat/testing: xterm-8.ref
+Only in diffstat/testing: xterm-9.patch-
+Only in diffstat/testing: xterm-9.ref
+diff -r diffstat/config.cache diffstat.orig/config.cache
+16c16
+< ac_cv_c_cross=${ac_cv_c_cross='yes'}
+---
+> ac_cv_c_cross=${ac_cv_c_cross='no'}
+19c19
+< ac_cv_header_stdc=${ac_cv_header_stdc='no'}
+---
+> ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
+24,25c24,25
+< ac_cv_prog_CC=${ac_cv_prog_CC='atacCC'}
+< ac_cv_prog_CPP=${ac_cv_prog_CPP='atacCC -E'}
+---
+> ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}
+> ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'}
+diff -r diffstat/config.h diffstat.orig/config.h
+8a9
+> #define STDC_HEADERS 1
+diff -r diffstat/config.log diffstat.orig/config.log
+5,27c5,19
+< /usr/tmp/atacCC17934/conftest.c:30: warning: missing braces around initializer for `ZUmain[0]'
+< /usr/tmp/atacCC17934/conftest.c:66: warning: function declaration isn't a prototype
+< /usr/tmp/atacCC17934/conftest.c: In function `main':
+< /usr/tmp/atacCC17934/conftest.c:67: warning: implicit declaration of function `aTaC'
+< /usr/tmp/atacCC17934/conftest.c: At top level:
+< /usr/tmp/atacCC17934/conftest.c:76: warning: function declaration isn't a prototype
+< /usr/tmp/atacCC17934/conftest.c: In function `t':
+< /usr/tmp/atacCC17934/conftest.c:97: warning: declaration of `t' shadows global declaration
+< /usr/tmp/atacCC17934/conftest.c:98: warning: unused variable `s'
+< /usr/tmp/atacCC17934/conftest.c:104: warning: declaration of `x' shadows previous local
+< /usr/tmp/atacCC17934/conftest.c:111: warning: declaration of `p' shadows previous local
+< /usr/tmp/atacCC17934/conftest.c:125: warning: unused variable `foo'
+< /usr/tmp/atacCC17934/conftest.c:86: warning: unused variable `zero'
+< /usr/tmp/atacCC17934/conftest.c:80: warning: unused variable `x'
+< /usr/tmp/atacCC17934/conftest.c: At top level:
+< /usr/tmp/atacCC17934/conftest.c:1: warning: `ZIDENT' defined but not used
+< /usr/tmp/atacCC17972/conftest.c:30: warning: missing braces around initializer for `ZUmain[0]'
+< /usr/tmp/atacCC17972/conftest.c:39: warning: return-type defaults to `int'
+< /usr/tmp/atacCC17972/conftest.c:39: warning: function declaration isn't a prototype
+< /usr/tmp/atacCC17972/conftest.c: In function `main':
+< /usr/tmp/atacCC17972/conftest.c:40: warning: implicit declaration of function `aTaC'
+< /usr/tmp/atacCC17972/conftest.c: At top level:
+< /usr/tmp/atacCC17972/conftest.c:1: warning: `ZIDENT' defined but not used
+---
+> configure:659: warning: function declaration isn't a prototype
+> configure:660: warning: function declaration isn't a prototype
+> configure: In function `t':
+> configure:680: warning: declaration of `t' shadows global declaration
+> configure:681: warning: unused variable `s'
+> configure:686: warning: declaration of `x' shadows previous local
+> configure:692: warning: declaration of `p' shadows previous local
+> configure:701: warning: unused variable `foo'
+> configure:669: warning: unused variable `zero'
+> configure:663: warning: unused variable `x'
+> configure:680: warning: `t' might be used uninitialized in this function
+> configure:698: warning: `b' might be used uninitialized in this function
+> configure:735: warning: return-type defaults to `int'
+> configure:735: warning: function declaration isn't a prototype
+> configure:821: warning: function declaration isn't a prototype
+diff -r diffstat/config.status diffstat.orig/config.status
+7c7
+< # ./configure
+---
+> # ./configure --verbose --disable-echo --enable-warnings --with-warnings
+17,18c17,18
+< echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion"
+< exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;;
+---
+> echo "running ${CONFIG_SHELL-/bin/sh} ./configure --verbose --disable-echo --enable-warnings --with-warnings --no-create --no-recursion"
+> exec ${CONFIG_SHELL-/bin/sh} ./configure --verbose --disable-echo --enable-warnings --with-warnings --no-create --no-recursion ;;
+41c41
+< s%@DEFS@% -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -DHAVE_STRING_H=1 -DHAVE_MALLOC_H=1 %g
+---
+> s%@DEFS@% -DSTDC_HEADERS=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -DHAVE_STRING_H=1 -DHAVE_MALLOC_H=1 %g
+47c47
+< s%@CC@%atacCC%g
+---
+> s%@CC@%gcc%g
+50c50
+< s%@CPP@%atacCC -E%g
+---
+> s%@CPP@%gcc -E%g
+Only in diffstat.orig: configure.out
+Binary files diffstat/diffstat and diffstat.orig/diffstat differ
+Binary files diffstat/diffstat.o and diffstat.orig/diffstat.o differ
+diff -r diffstat/makefile diffstat.orig/makefile
+10c10
+< CC = atacCC
+---
+> CC = gcc
+Only in diffstat/testing: Xlib-1.patch-
+Only in diffstat/testing: Xlib-1.ref
+Only in diffstat/testing: Xlib-2.patch-
+Only in diffstat/testing: Xlib-2.ref
+Only in diffstat/testing: Xlib-3.patch-
+Only in diffstat/testing: Xlib-3.ref
+Only in diffstat/testing: config-1.ref
+Only in diffstat/testing: nugent.ref
+Only in diffstat/testing: xserver-1.ref
+Only in diffstat/testing: xserver-2.patch-
+Only in diffstat/testing: xserver-2.ref
+Only in diffstat/testing: xterm-1.patch-
+Only in diffstat/testing: xterm-1.ref
+Only in diffstat/testing: xterm-10.patch-
+Only in diffstat/testing: xterm-10.ref
+Only in diffstat/testing: xterm-11.patch-
+Only in diffstat/testing: xterm-11.ref
+Only in diffstat/testing: xterm-2.patch-
+Only in diffstat/testing: xterm-2.ref
+Only in diffstat/testing: xterm-3.patch-
+Only in diffstat/testing: xterm-3.ref
+Only in diffstat/testing: xterm-4.patch-
+Only in diffstat/testing: xterm-4.ref
+Only in diffstat/testing: xterm-5.patch-
+Only in diffstat/testing: xterm-5.ref
+Only in diffstat/testing: xterm-6.patch-
+Only in diffstat/testing: xterm-6.ref
+Only in diffstat/testing: xterm-7.ref
+Only in diffstat/testing: xterm-8.patch-
+Only in diffstat/testing: xterm-8.ref
+Only in diffstat/testing: xterm-9.patch-
+Only in diffstat/testing: xterm-9.ref
diff --git a/patch_cmds/diffstat/testing/case04.ref b/patch_cmds/diffstat/testing/case04.ref
new file mode 100644
index 0000000..48cc647
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/config.cache | 16 ++--!!!!
+ diffstat.orig/config.h | 2 +
+ diffstat.orig/config.log | 76 +++++++------------!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.status | 24 +++---!!!!!!
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 4 -
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04R.ref b/patch_cmds/diffstat/testing/case04R.ref
new file mode 100644
index 0000000..b33d82b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04R.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/configure.out |only
+ diffstat/config.cache | 16 ++--!!!!
+ diffstat/config.h | 2 -
+ diffstat/config.log | 76 +++++++++++--------!!!!!!!!!!!!!!!!!!
+ diffstat/config.status | 24 +++---!!!!!!
+ diffstat/diffstat |binary
+ diffstat/diffstat.o |binary
+ diffstat/makefile | 4 -
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 34 insertions(+), 28 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04Rp0.ref b/patch_cmds/diffstat/testing/case04Rp0.ref
new file mode 100644
index 0000000..b33d82b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04Rp0.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/configure.out |only
+ diffstat/config.cache | 16 ++--!!!!
+ diffstat/config.h | 2 -
+ diffstat/config.log | 76 +++++++++++--------!!!!!!!!!!!!!!!!!!
+ diffstat/config.status | 24 +++---!!!!!!
+ diffstat/diffstat |binary
+ diffstat/diffstat.o |binary
+ diffstat/makefile | 4 -
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 34 insertions(+), 28 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04b.ref b/patch_cmds/diffstat/testing/case04b.ref
new file mode 100644
index 0000000..84c7b4a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04b.ref
@@ -0,0 +1,39 @@
+ diffstat.orig/config.cache | 16 ++--!!!!
+ diffstat.orig/config.h | 2 +
+ diffstat.orig/config.log | 76 +++++++------------!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.status | 24 +++---!!!!!!
+ diffstat.orig/configure.out |only
+ diffstat.orig/makefile | 4 -
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 38 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04f0.ref b/patch_cmds/diffstat/testing/case04f0.ref
new file mode 100644
index 0000000..7765c5f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04f0.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/config.cache | 16 4 + 4 - 8 !
+ diffstat.orig/config.h | 2 2 + 0 - 0 !
+ diffstat.orig/config.log | 76 15 + 23 - 38 !
+ diffstat.orig/config.status | 24 6 + 6 - 12 !
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 4 1 + 1 - 2 !
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04k.ref b/patch_cmds/diffstat/testing/case04k.ref
new file mode 100644
index 0000000..b6f2928
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04k.ref
@@ -0,0 +1,81 @@
+ diffstat.orig/config.cache | 8 !!!!!!!!
+ diffstat.orig/config.cache | 8 ++++----
+ diffstat.orig/config.h | 1 +
+ diffstat.orig/config.h | 1 +
+ diffstat.orig/config.log | 38 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.log | 38 +++++++++++++++-----------------------
+ diffstat.orig/config.status | 12 !!!!!!!!!!!!
+ diffstat.orig/config.status | 12 ++++++------
+ diffstat.orig/configure.out |only
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 2 !!
+ diffstat.orig/makefile | 2 +-
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ diffstat/testing/xterm-9.ref |only
+ 80 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04p1.ref b/patch_cmds/diffstat/testing/case04p1.ref
new file mode 100644
index 0000000..4449805
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04p1.ref
@@ -0,0 +1,41 @@
+ config.cache | 16 ++--!!!!
+ config.h | 2 +
+ config.log | 76 +++++++++--------------!!!!!!!!!!!!!!!!!!!!!!!
+ config.status | 24 +++----!!!!!!
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ makefile | 4 -
+ testing/Xlib-1.patch- |only
+ testing/Xlib-1.ref |only
+ testing/Xlib-2.patch- |only
+ testing/Xlib-2.ref |only
+ testing/Xlib-3.patch- |only
+ testing/Xlib-3.ref |only
+ testing/config-1.ref |only
+ testing/nugent.ref |only
+ testing/xserver-1.ref |only
+ testing/xserver-2.patch- |only
+ testing/xserver-2.ref |only
+ testing/xterm-1.patch- |only
+ testing/xterm-1.ref |only
+ testing/xterm-10.patch- |only
+ testing/xterm-10.ref |only
+ testing/xterm-11.patch- |only
+ testing/xterm-11.ref |only
+ testing/xterm-2.patch- |only
+ testing/xterm-2.ref |only
+ testing/xterm-3.patch- |only
+ testing/xterm-3.ref |only
+ testing/xterm-4.patch- |only
+ testing/xterm-4.ref |only
+ testing/xterm-5.patch- |only
+ testing/xterm-5.ref |only
+ testing/xterm-6.patch- |only
+ testing/xterm-6.ref |only
+ testing/xterm-7.ref |only
+ testing/xterm-8.patch- |only
+ testing/xterm-8.ref |only
+ testing/xterm-9.patch- |only
+ testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04p9.ref b/patch_cmds/diffstat/testing/case04p9.ref
new file mode 100644
index 0000000..dcff047
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04p9.ref
@@ -0,0 +1,41 @@
+ Xlib-1.patch- |only
+ Xlib-1.ref |only
+ Xlib-2.patch- |only
+ Xlib-2.ref |only
+ Xlib-3.patch- |only
+ Xlib-3.ref |only
+ config-1.ref |only
+ config.cache | 16 ++---!!!!
+ config.h | 2 +
+ config.log | 76 ++++++++++-----------------!!!!!!!!!!!!!!!!!!!!!!!!!!
+ config.status | 24 ++++----!!!!!!!!
+ configure.out |only
+ diffstat |binary
+ diffstat.o |binary
+ makefile | 4 -
+ nugent.ref |only
+ xserver-1.ref |only
+ xserver-2.patch- |only
+ xserver-2.ref |only
+ xterm-1.patch- |only
+ xterm-1.ref |only
+ xterm-10.patch- |only
+ xterm-10.ref |only
+ xterm-11.patch- |only
+ xterm-11.ref |only
+ xterm-2.patch- |only
+ xterm-2.ref |only
+ xterm-3.patch- |only
+ xterm-3.ref |only
+ xterm-4.patch- |only
+ xterm-4.ref |only
+ xterm-5.patch- |only
+ xterm-5.ref |only
+ xterm-6.patch- |only
+ xterm-6.ref |only
+ xterm-7.ref |only
+ xterm-8.patch- |only
+ xterm-8.ref |only
+ xterm-9.patch- |only
+ xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04r1.ref b/patch_cmds/diffstat/testing/case04r1.ref
new file mode 100644
index 0000000..9d2a23a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04r1.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/config.cache | 16 ++--!!!!
+ diffstat.orig/config.h | 2 +
+ diffstat.orig/config.log | 76 +++++++-----------!!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.status | 24 +++---!!!!!!
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 4 !
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04r2.ref b/patch_cmds/diffstat/testing/case04r2.ref
new file mode 100644
index 0000000..9d2a23a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04r2.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/config.cache | 16 ++--!!!!
+ diffstat.orig/config.h | 2 +
+ diffstat.orig/config.log | 76 +++++++-----------!!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.status | 24 +++---!!!!!!
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 4 !
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case04u.ref b/patch_cmds/diffstat/testing/case04u.ref
new file mode 100644
index 0000000..48cc647
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case04u.ref
@@ -0,0 +1,41 @@
+ diffstat.orig/config.cache | 16 ++--!!!!
+ diffstat.orig/config.h | 2 +
+ diffstat.orig/config.log | 76 +++++++------------!!!!!!!!!!!!!!!!!!
+ diffstat.orig/config.status | 24 +++---!!!!!!
+ diffstat.orig/configure.out |only
+ diffstat.orig/diffstat |binary
+ diffstat.orig/diffstat.o |binary
+ diffstat.orig/makefile | 4 -
+ diffstat/testing/Xlib-1.patch- |only
+ diffstat/testing/Xlib-1.ref |only
+ diffstat/testing/Xlib-2.patch- |only
+ diffstat/testing/Xlib-2.ref |only
+ diffstat/testing/Xlib-3.patch- |only
+ diffstat/testing/Xlib-3.ref |only
+ diffstat/testing/config-1.ref |only
+ diffstat/testing/nugent.ref |only
+ diffstat/testing/xserver-1.ref |only
+ diffstat/testing/xserver-2.patch- |only
+ diffstat/testing/xserver-2.ref |only
+ diffstat/testing/xterm-1.patch- |only
+ diffstat/testing/xterm-1.ref |only
+ diffstat/testing/xterm-10.patch- |only
+ diffstat/testing/xterm-10.ref |only
+ diffstat/testing/xterm-11.patch- |only
+ diffstat/testing/xterm-11.ref |only
+ diffstat/testing/xterm-2.patch- |only
+ diffstat/testing/xterm-2.ref |only
+ diffstat/testing/xterm-3.patch- |only
+ diffstat/testing/xterm-3.ref |only
+ diffstat/testing/xterm-4.patch- |only
+ diffstat/testing/xterm-4.ref |only
+ diffstat/testing/xterm-5.patch- |only
+ diffstat/testing/xterm-5.ref |only
+ diffstat/testing/xterm-6.patch- |only
+ diffstat/testing/xterm-6.ref |only
+ diffstat/testing/xterm-7.ref |only
+ diffstat/testing/xterm-8.patch- |only
+ diffstat/testing/xterm-8.ref |only
+ diffstat/testing/xterm-9.patch- |only
+ diffstat/testing/xterm-9.ref |only
+ 40 files changed, 28 insertions(+), 34 deletions(-), 60 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case05.pat b/patch_cmds/diffstat/testing/case05.pat
new file mode 100644
index 0000000..6328f4b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05.pat
@@ -0,0 +1,17 @@
+diff -r -c diffstat/config.cache diffstat.orig/config.cache
+*** 1.1 Fri Mar 15 19:27:13 1996
+--- diffstat.orig/config.cache Fri Mar 15 19:51:02 1996
+***************
+*** 13,28 ****
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+- ac_cv_c_cross=${ac_cv_c_cross='yes'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
+--- 13,28 ----
+ # --recheck option to rerun configure.
+ #
+ ac_cv_c_const=${ac_cv_c_const='yes'}
+ ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'}
+ ac_cv_header_malloc_h=${ac_cv_header_malloc_h='yes'}
diff --git a/patch_cmds/diffstat/testing/case05.ref b/patch_cmds/diffstat/testing/case05.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05R.ref b/patch_cmds/diffstat/testing/case05R.ref
new file mode 100644
index 0000000..0f120f4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05R.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case05Rp0.ref b/patch_cmds/diffstat/testing/case05Rp0.ref
new file mode 100644
index 0000000..8e29a87
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05Rp0.ref
@@ -0,0 +1,2 @@
+ diffstat/config.cache | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case05b.ref b/patch_cmds/diffstat/testing/case05b.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05b.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05f0.ref b/patch_cmds/diffstat/testing/case05f0.ref
new file mode 100644
index 0000000..22e6a1e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05f0.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 0 + 1 - 0 !
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05k.ref b/patch_cmds/diffstat/testing/case05k.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05k.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05p1.ref b/patch_cmds/diffstat/testing/case05p1.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05p1.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05p9.ref b/patch_cmds/diffstat/testing/case05p9.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05p9.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05r1.ref b/patch_cmds/diffstat/testing/case05r1.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05r1.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05r2.ref b/patch_cmds/diffstat/testing/case05r2.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05r2.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case05u.ref b/patch_cmds/diffstat/testing/case05u.ref
new file mode 100644
index 0000000..649df11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case05u.ref
@@ -0,0 +1,2 @@
+ config.cache | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case06.pat b/patch_cmds/diffstat/testing/case06.pat
new file mode 100644
index 0000000..ddc1760
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06.pat
@@ -0,0 +1,323 @@
+From esr@locke.ccil.org Sat Jan 13 18:02 EST 1996
+Received: from locke.ccil.org (esr@locke.ccil.org [205.164.136.88]) by mail.Clark.Net (8.7.3/8.6.5) with SMTP id SAA07403 for <dickey@clark.net>; Sat, 13 Jan 1996 18:02:54 -0500 (EST)
+Received: (esr@localhost) by locke.ccil.org (8.6.9/8.6.10) id SAA23481; Sat, 13 Jan 1996 18:28:57 -0500
+From: "Eric S. Raymond" <esr@locke.ccil.org>
+Message-Id: <199601132328.SAA23481@locke.ccil.org>
+Subject: patch #283 -- change line-breakout optimization logic
+To: zmbenhal@netcom.com, dickey@clark.net, ncurses-list@netcom.com
+Date: Sat, 13 Jan 1996 18:28:56 -0500 (EST)
+X-Mailer: ELM [version 2.4 PL24]
+Content-Type: text
+Content-Length: 9395
+Status: RO
+
+This patch (#283) changes the logic for line-breakout optimization.
+
+Daniel Barlow complained:
+>According to curs_inopts(3), curses periodically looks at the keyboard
+>while refreshing, and stops immediately if there is input pending.
+>
+>This works too well! I was playing with emacs to see if it would like
+>to use real ncurses routines to output to the screen instead of just
+>using it as a glorified termcap library, and found that if I held down
+>the `page down' key (which autorepeats), nothing displayed at all
+>until I let go of it again.
+
+This patch addresses the problem. See the comment leading the lib_doupdate.c
+patch band for details.
+
+This patch also makes a minor change in lib_initscr() to allow the maximum
+escape delay to be set from the environment. Finally, it includes a
+workaround for the ncurses 'p' test bug. A real fix is next on my agenda.
+
+Diffs between last version checked in and current workfile(s):
+
+--- NEWS 1996/01/11 19:47:02 1.3
++++ NEWS 1996/01/12 17:10:09
+@@ -6,6 +6,8 @@
+ * fixed broken wsyncup()/wysncdown(), as a result wnoutrefresh() now has
+ copy-changed-lines behavior.
+ * added and documented wresize() code.
++* changed the line-breakout optimization code to allow some lines to be
++ emitted before the first check.
+
+ ### ncurses-1.9.7 -> 1.9.8a
+
+--- ncurses/lib_doupdate.c 1996/01/12 16:09:44 1.6
++++ ncurses/lib_doupdate.c 1996/01/12 16:50:21
+@@ -43,6 +43,17 @@
+ #include "term.h"
+
+ /*
++ * This define controls the line-breakout optimization. Every once in a
++ * while during screen refresh, we want to check for input and abort the
++ * update if there's some waiting. CHECK_INTERVAL controls the number of
++ * changed lines to be emitted between input checks.
++ *
++ * Note: Input-check-and-abort is no longer done if the screen is being
++ * updated from scratch. This is a feature, not a bug.
++ */
++#define CHECK_INTERVAL 6
++
++/*
+ * Enable checking to see if doupdate and friends are tracking the true
+ * cursor position correctly. NOTE: this is a debugging hack which will
+ * work ONLY on ANSI-compatible terminals!
+@@ -146,6 +157,26 @@
+ }
+ }
+
++static bool check_pending(void)
++/* check for pending input */
++{
++ if (SP->_checkfd >= 0) {
++ fd_set fdset;
++ struct timeval ktimeout;
++
++ ktimeout.tv_sec =
++ ktimeout.tv_usec = 0;
++
++ FD_ZERO(&fdset);
++ FD_SET(SP->_checkfd, &fdset);
++ if (select(SP->_checkfd+1, &fdset, NULL, NULL, &ktimeout) != 0)
++ {
++ fflush(SP->_ofp);
++ return OK;
++ }
++ }
++}
++
+ /*
+ * No one supports recursive inline functions. However, gcc is quieter if we
+ * instantiate the recursive part separately.
+@@ -278,22 +309,6 @@
+ SP->_endwin = FALSE;
+ }
+
+- /* check for pending input */
+- if (SP->_checkfd >= 0) {
+- fd_set fdset;
+- struct timeval ktimeout;
+-
+- ktimeout.tv_sec =
+- ktimeout.tv_usec = 0;
+-
+- FD_ZERO(&fdset);
+- FD_SET(SP->_checkfd, &fdset);
+- if (select(SP->_checkfd+1, &fdset, NULL, NULL, &ktimeout) != 0) {
+- fflush(SP->_ofp);
+- return OK;
+- }
+- }
+-
+ /*
+ * FIXME: Full support for magic-cookie terminals could go in here.
+ * The theory: we scan the virtual screen looking for attribute
+@@ -315,10 +330,15 @@
+ ClrUpdate(newscr);
+ newscr->_clear = FALSE;
+ } else {
++ int changedlines;
++
+ _nc_scroll_optimize();
+
+ T(("Transforming lines"));
+- for (i = 0; i < min(screen_lines, newscr->_maxy + 1); i++) {
++ for (i = changedlines = 0;
++ i < min(screen_lines,newscr->_maxy+1);
++ i++)
++ {
+ /*
+ * newscr->line[i].firstchar is normally set
+ * by wnoutrefresh. curscr->line[i].firstchar
+@@ -327,17 +347,43 @@
+ */
+ if (newscr->_line[i].firstchar != _NOCHANGE
+ || curscr->_line[i].firstchar != _NOCHANGE)
++ {
+ TransformLine(i);
++ changedlines++;
++ }
++
++ /* mark line changed successfully */
++ if (i <= newscr->_maxy)
++ {
++ newscr->_line[i].firstchar = _NOCHANGE;
++ newscr->_line[i].lastchar = _NOCHANGE;
++ newscr->_line[i].oldindex = i;
++ }
++ if (i <= curscr->_maxy)
++ {
++ curscr->_line[i].firstchar = _NOCHANGE;
++ curscr->_line[i].lastchar = _NOCHANGE;
++ curscr->_line[i].oldindex = i;
++ }
++
++ /*
++ * Here is our line-breakout optimization.
++ */
++ if ((changedlines % CHECK_INTERVAL) == changedlines-1 && check_pending())
++ goto cleanup;
+ }
+ }
+ }
+- T(("marking screen as updated"));
+- for (i = 0; i <= newscr->_maxy; i++) {
++
++ /* this code won't be executed often */
++ for (i = screen_lines; i <= newscr->_maxy; i++)
++ {
+ newscr->_line[i].firstchar = _NOCHANGE;
+ newscr->_line[i].lastchar = _NOCHANGE;
+ newscr->_line[i].oldindex = i;
+ }
+- for (i = 0; i <= curscr->_maxy; i++) {
++ for (i = screen_lines; i <= curscr->_maxy; i++)
++ {
+ curscr->_line[i].firstchar = _NOCHANGE;
+ curscr->_line[i].lastchar = _NOCHANGE;
+ curscr->_line[i].oldindex = i;
+@@ -346,10 +392,11 @@
+ curscr->_curx = newscr->_curx;
+ curscr->_cury = newscr->_cury;
+
++ GoTo(curscr->_cury, curscr->_curx);
++
++ cleanup:
+ if (curscr->_attrs != A_NORMAL)
+ vidattr(curscr->_attrs = A_NORMAL);
+-
+- GoTo(curscr->_cury, curscr->_curx);
+
+ fflush(SP->_ofp);
+
+--- ncurses/lib_initscr.c 1996/01/12 20:11:34 1.1
++++ ncurses/lib_initscr.c 1996/01/12 20:17:54
+@@ -41,6 +41,10 @@
+ exit(1);
+ }
+
++ /* allow user to set maximum escape delay from the environment */
++ if ((name = getenv("ESCDELAY")))
++ ESCDELAY = atoi(getenv("ESCDELAY"));
++
+ def_shell_mode();
+
+ /* follow the XPG4 requirement to turn echo off at this point */
+--- ncurses/lib_pad.c 1995/12/29 15:34:11 1.2
++++ ncurses/lib_pad.c 1996/01/13 17:56:24
+@@ -107,6 +107,7 @@
+ short m, n;
+ short pmaxrow;
+ short pmaxcol;
++bool wide;
+
+ T(("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d) called",
+ win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
+@@ -140,20 +141,46 @@
+
+ T(("pad being refreshed"));
+
++ /*
++ * For pure efficiency, we'd want to transfer scrolling information
++ * from the pad to newscr whenever the window is wide enough that
++ * its update will dominate the cost of the update for the horizontal
++ * band of newscr that it occupies. Unfortunately, this threshold
++ * tends to be complex to estimate, and in any case scrolling the
++ * whole band and rewriting the parts outside win's image would look
++ * really ugly. So. What we do is consider the pad "wide" if it
++ * either (a) occupies the whole width of newscr, or (b) occupies
++ * all but at most one column on either vertical edge of the screen
++ * (this caters to fussy people who put boxes around full-screen
++ * windows). Note that changing this formula will not break any code,
++ * merely change the costs of various update cases.
++ */
++ wide = (sminrow <= 1 && win->_maxx >= (newscr->_maxx - 1));
++
+ for (i = pminrow, m = sminrow; i <= pmaxrow; i++, m++) {
++ register struct ldat *nline = &newscr->_line[m];
++ register struct ldat *oline = &win->_line[i];
++
+ for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) {
+- if (win->_line[i].text[j] != newscr->_line[m].text[n]) {
+- newscr->_line[m].text[n] = win->_line[i].text[j];
++ if (oline->text[j] != nline->text[n]) {
++ nline->text[n] = oline->text[j];
++
++ if (nline->firstchar == _NOCHANGE)
++ nline->firstchar = nline->lastchar = n;
++ else if (n < nline->firstchar)
++ nline->firstchar = n;
++ else if (n > nline->lastchar)
++ nline->lastchar = n;
++ }
++ }
++
++ if (wide) {
++ int oind = oline->oldindex;
+
+- if (newscr->_line[m].firstchar == _NOCHANGE)
+- newscr->_line[m].firstchar = newscr->_line[m].lastchar = n;
+- else if (n < newscr->_line[m].firstchar)
+- newscr->_line[m].firstchar = n;
+- else if (n > newscr->_line[m].lastchar)
+- newscr->_line[m].lastchar = n;
+- }
++ nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : sminrow + oind;
+ }
+- win->_line[i].firstchar = win->_line[i].lastchar = _NOCHANGE;
++ oline->firstchar = oline->lastchar = _NOCHANGE;
++ oline->oldindex = i;
+ }
+
+ win->_begx = smincol;
+@@ -176,6 +203,7 @@
+ newscr->_cury = win->_cury - pminrow + win->_begy;
+ newscr->_curx = win->_curx - pmincol + win->_begx;
+ }
++ win->_flags &= ~_HASMOVED;
+ return OK;
+ }
+
+--- test/ncurses.c 1996/01/11 19:49:39 1.4
++++ test/ncurses.c 1996/01/13 23:00:26
+@@ -1368,6 +1368,35 @@
+ }
+
+ mvaddch(porty - 1, portx - 1, ACS_LRCORNER);
++
++ /*
++ * FIXME: this touchwin should not be necessary!
++ * There is something not quite right with the pad code
++ * Thomas Dickey writes:
++ *
++ * In the ncurses 'p' test, if I (now) press '<', '>', '<', then the
++ * right boundary of the box that outlines the pad is blanked. That's
++ * because
++ *
++ * + the value that marks the right boundary (porty) is incremented,
++ *
++ * + a new vertical line is written to stdscr
++ *
++ * + stdscr is flushed with wnoutrefresh, clearing its firstchar &
++ * lastchar markers. This writes the change (the new vertical line)
++ * to newscr.
++ *
++ * => previously stdscr was written to newscr entirely
++ *
++ * + the pad is written using prefresh, which writes directly to
++ * newscr, bypassing stdscr entirely.
++ *
++ * When I've pressed '>' (see above), this means that stdscr contains
++ * two columns of ACS_VLINE characters. The left one (column 79) is
++ * shadowed by the pad that's written to newscr.
++ */
++ touchwin(stdscr);
++
+ wnoutrefresh(stdscr);
+
+ prefresh(pad,
+
+End of diffs.
+
+
diff --git a/patch_cmds/diffstat/testing/case06.ref b/patch_cmds/diffstat/testing/case06.ref
new file mode 100644
index 0000000..3fbf503
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 ++++++++++++++++++++-----
+ test/ncurses.c | 29 +++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06R.ref b/patch_cmds/diffstat/testing/case06R.ref
new file mode 100644
index 0000000..8cae5fd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06R.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 -
+ ncurses/lib_doupdate.c | 91 +++++++++++--------------------------------------
+ ncurses/lib_initscr.c | 4 --
+ ncurses/lib_pad.c | 48 +++++--------------------
+ test/ncurses.c | 29 ---------------
+ 5 files changed, 32 insertions(+), 142 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06Rp0.ref b/patch_cmds/diffstat/testing/case06Rp0.ref
new file mode 100644
index 0000000..8cae5fd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06Rp0.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 -
+ ncurses/lib_doupdate.c | 91 +++++++++++--------------------------------------
+ ncurses/lib_initscr.c | 4 --
+ ncurses/lib_pad.c | 48 +++++--------------------
+ test/ncurses.c | 29 ---------------
+ 5 files changed, 32 insertions(+), 142 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06b.ref b/patch_cmds/diffstat/testing/case06b.ref
new file mode 100644
index 0000000..3fbf503
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06b.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 ++++++++++++++++++++-----
+ test/ncurses.c | 29 +++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06f0.ref b/patch_cmds/diffstat/testing/case06f0.ref
new file mode 100644
index 0000000..0ca6092
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06f0.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 2 + 0 - 0 !
+ ncurses/lib_doupdate.c | 91 69 + 22 - 0 !
+ ncurses/lib_initscr.c | 4 4 + 0 - 0 !
+ ncurses/lib_pad.c | 48 38 + 10 - 0 !
+ test/ncurses.c | 29 29 + 0 - 0 !
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06k.ref b/patch_cmds/diffstat/testing/case06k.ref
new file mode 100644
index 0000000..3fbf503
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06k.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 ++++++++++++++++++++-----
+ test/ncurses.c | 29 +++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06p1.ref b/patch_cmds/diffstat/testing/case06p1.ref
new file mode 100644
index 0000000..eb6b552
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06p1.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++++++++--------------
+ lib_initscr.c | 4 ++
+ lib_pad.c | 48 +++++++++++++++++++++++-------
+ ncurses.c | 29 ++++++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06p9.ref b/patch_cmds/diffstat/testing/case06p9.ref
new file mode 100644
index 0000000..eb6b552
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06p9.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++++++++--------------
+ lib_initscr.c | 4 ++
+ lib_pad.c | 48 +++++++++++++++++++++++-------
+ ncurses.c | 29 ++++++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06r1.ref b/patch_cmds/diffstat/testing/case06r1.ref
new file mode 100644
index 0000000..5a05975
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06r1.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 ++++++++++++++++++++-----
+ test/ncurses.c | 29 ++++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06r2.ref b/patch_cmds/diffstat/testing/case06r2.ref
new file mode 100644
index 0000000..38d1cb2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06r2.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 +++++++++++++++++++++-----
+ test/ncurses.c | 29 ++++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case06u.ref b/patch_cmds/diffstat/testing/case06u.ref
new file mode 100644
index 0000000..3fbf503
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case06u.ref
@@ -0,0 +1,6 @@
+ NEWS | 2 +
+ ncurses/lib_doupdate.c | 91 +++++++++++++++++++++++++++++++++++++------------
+ ncurses/lib_initscr.c | 4 ++
+ ncurses/lib_pad.c | 48 ++++++++++++++++++++-----
+ test/ncurses.c | 29 +++++++++++++++
+ 5 files changed, 142 insertions(+), 32 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case07.pat b/patch_cmds/diffstat/testing/case07.pat
new file mode 100644
index 0000000..e72061d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07.pat
@@ -0,0 +1,107 @@
+--- /dev/null 1.1 Sun Jul 17 19:46:18 1994
++++ ncurses-1.9.8a_960131_e285r/man/resizeterm.3x Wed Jan 31 20:21:04 1996
+@@ -0,0 +1,53 @@
++.\"*****************************************************************************
++.\" Testcase for "resizeterm" *
++.\" *
++.\" A discussion of this file is found at: *
++.\" http://invisible-island.net/ncurses/ncurses-license.html#ncurses_1_9_3 *
++.\" A later version of this manpage is included as part of ncurses. *
++.\"*****************************************************************************
++.TH resizeterm 3X ""
++.
++.SH NAME
++\fBresizeterm\fR - change the curses terminal size
++.
++.SH SYNOPSIS
++\fB#include <curses.h>\fR
++
++\fBint resizeterm(int lines, int columns);\fR
++.
++.SH DESCRIPTION
++This is an extension to the curses library.
++It provides callers with a hook into the \fBncurses\fR data to resize windows,
++primarily for use by programs running in an X Window terminal (e.g., xterm).
++The function \fBresizeterm\fR resizes the standard and current windows
++to the specified dimensions, and adjusts other bookkeeping data used by
++the \fBncurses\fR library that record the window dimensions.
++
++When resizing the windows, the function blank-fills the areas that are
++extended. The calling application should fill in these areas with
++appropriate data.
++
++The function does not resize other windows.
++.
++.SH RETURN VALUE
++The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
++It will fail if either of the dimensions less than or equal to zero,
++or if an error occurs while (re)allocating memory for the windows.
++.
++.SH NOTES
++While this function is intended to be used to support a signal handler
++(i.e., for SIGWINCH), care should be taken to avoid invoking it in a
++context where \fBmalloc\fR or \fBrealloc\fR may have been interrupted,
++since it uses those functions.
++.
++.SH SEE ALSO
++\fBwresize\fR(3x).
++.
++.SH AUTHOR
++Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
++.\"#
++.\"# The following sets edit modes for GNU EMACS
++.\"# Local Variables:
++.\"# mode:nroff
++.\"# fill-column:79
++.\"# End:
+--- /dev/null Sun Jul 17 19:46:18 1994
++++ ncurses-1.9.8a_960131_e285r/man/wresize.3x Wed Jan 31 20:21:04 1996
+@@ -0,0 +1,47 @@
++.\"*****************************************************************************
++.\" Testcase for "wresize" *
++.\" *
++.\" A discussion of this file is found at: *
++.\" http://invisible-island.net/ncurses/ncurses-license.html#ncurses_1_9_3 *
++.\" A later version of this manpage is included as part of ncurses. *
++.\" Copyright 1995 by Thomas E. Dickey. All Rights Reserved. *
++.\"*****************************************************************************
++.TH wresize 3X ""
++.
++.SH NAME
++\fBwresize\fR - resize a curses window
++.
++.SH SYNOPSIS
++\fB#include <curses.h>\fR
++
++\fBint wresize(WINDOW *win, int lines, int columns);\fR
++.
++.SH DESCRIPTION
++The \fBwresize\fR function reallocates storage for an \fBncurses\fR
++window to adjust its dimensions to the specified values.
++If either dimension is larger than the current values, the
++window's data is filled with blanks that have the current background rendition
++(as set by \fBwbkgndset\fR) merged into them.
++.
++.SH RETURN VALUE
++The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
++It will fail if either of the dimensions less than or equal to zero,
++or if an error occurs while (re)allocating memory for the window.
++.
++.SH NOTES
++The only restriction placed on the dimensions is that they be greater than zero.
++The dimensions are not compared to \fBcurses\fR screen dimensions to
++simplify the logic of \fBresizeterm\fR.
++The caller must ensure that the window's dimensions fit within the
++actual screen dimensions.
++.
++.SH SEE ALSO
++\fBresizeterm\fR(3x).
++.
++.SH AUTHOR
++Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
++.\"#
++.\"# The following sets edit modes for GNU EMACS
++.\"# Local Variables:
++.\"# mode:nroff
++.\"# fill-column:79
++.\"# End:
diff --git a/patch_cmds/diffstat/testing/case07.ref b/patch_cmds/diffstat/testing/case07.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07R.ref b/patch_cmds/diffstat/testing/case07R.ref
new file mode 100644
index 0000000..95d7724
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07R.ref
@@ -0,0 +1,2 @@
+ null | 100 -------------------------------------------------------------------
+ 1 file changed, 100 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case07Rp0.ref b/patch_cmds/diffstat/testing/case07Rp0.ref
new file mode 100644
index 0000000..30e3f11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07Rp0.ref
@@ -0,0 +1,2 @@
+ /dev/null | 100 --------------------------------------------------------------
+ 1 file changed, 100 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case07b.ref b/patch_cmds/diffstat/testing/case07b.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07b.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07f0.ref b/patch_cmds/diffstat/testing/case07f0.ref
new file mode 100644
index 0000000..522fa8d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07f0.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 53 + 0 - 0 !
+ wresize.3x | 47 47 + 0 - 0 !
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07k.ref b/patch_cmds/diffstat/testing/case07k.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07k.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07p1.ref b/patch_cmds/diffstat/testing/case07p1.ref
new file mode 100644
index 0000000..0c52128
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07p1.ref
@@ -0,0 +1,3 @@
+ man/resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ man/wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07p9.ref b/patch_cmds/diffstat/testing/case07p9.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07p9.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07r1.ref b/patch_cmds/diffstat/testing/case07r1.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07r1.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07r2.ref b/patch_cmds/diffstat/testing/case07r2.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07r2.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case07u.ref b/patch_cmds/diffstat/testing/case07u.ref
new file mode 100644
index 0000000..c11d383
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case07u.ref
@@ -0,0 +1,3 @@
+ resizeterm.3x | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ wresize.3x | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case08.pat b/patch_cmds/diffstat/testing/case08.pat
new file mode 100644
index 0000000..380420a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08.pat
@@ -0,0 +1,343 @@
+Index: Imakefile
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/Imakefile Fri Jan 26 11:43:22 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/Imakefile Sun Jan 28 20:45:35 1996
+***************
+*** 10,15 ****
+--- 10,30 ----
+ XCOMM
+
+ /*
++ * Fixes to allow compile with X11R5
++ */
++ #ifndef XkbClientDefines
++ #define XkbClientDefines /**/
++ #endif
++
++ #ifndef XkbClientDepLibs
++ #define XkbClientDepLibs /**/
++ #endif
++
++ #ifndef XkbClientLibs
++ #define XkbClientLibs /**/
++ #endif
++
++ /*
+ * add -DWTMP and -DLASTLOG if you want them; make sure that bcopy can
+ * handle overlapping copies before using it.
+ */
+Index: Tekproc.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/Tekproc.c Tue Jan 16 15:43:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/Tekproc.c Sun Jan 28 20:45:35 1996
+***************
+*** 64,70 ****
+--- 64,77 ----
+ #include <X11/StringDefs.h>
+ #include <X11/Shell.h>
+ #include <X11/Xmu/CharSet.h>
++
++ #if XtSpecificationRelease >= 6
+ #include <X11/Xpoll.h>
++ #else
++ #define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
++ #define XFD_COPYSET(src,dst) bcopy((src)->fds_bits, (dst)->fds_bits, sizeof(fd_set))
++ #endif
++
+ #include <stdio.h>
+ #include <errno.h>
+ #include <setjmp.h>
+Index: charproc.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/charproc.c Fri Jan 26 11:43:22 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/charproc.c Sun Jan 28 20:45:35 1996
+***************
+*** 63,70 ****
+--- 63,77 ----
+ #include <X11/Xmu/Atoms.h>
+ #include <X11/Xmu/CharSet.h>
+ #include <X11/Xmu/Converters.h>
++
++ #if XtSpecificationRelease >= 6
+ #include <X11/Xaw/XawImP.h>
+ #include <X11/Xpoll.h>
++ #else
++ #define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
++ #define XFD_COPYSET(src,dst) bcopy((src)->fds_bits, (dst)->fds_bits, sizeof(fd_set))
++ #endif
++
+ #include <stdio.h>
+ #include <errno.h>
+ #include <setjmp.h>
+***************
+*** 572,577 ****
+--- 579,585 ----
+ {"font6", "Font6", XtRString, sizeof(String),
+ XtOffsetOf(XtermWidgetRec, screen.menu_font_names[fontMenu_font6]),
+ XtRString, (XtPointer) NULL},
++ #if XtSpecificationRelease >= 6
+ {XtNinputMethod, XtCInputMethod, XtRString, sizeof(char*),
+ XtOffsetOf(XtermWidgetRec, misc.input_method),
+ XtRString, (XtPointer)NULL},
+***************
+*** 581,586 ****
+--- 589,595 ----
+ {XtNopenIm, XtCOpenIm, XtRBoolean, sizeof(Boolean),
+ XtOffsetOf(XtermWidgetRec, misc.open_im),
+ XtRImmediate, (XtPointer)TRUE},
++ #endif
+ {XtNcolor0, XtCForeground, XtRPixel, sizeof(Pixel),
+ XtOffsetOf(XtermWidgetRec, screen.colors[COLOR_0]),
+ XtRString, "XtDefaultForeground"},
+***************
+*** 1153,1158 ****
+--- 1162,1172 ----
+ ? 8 : 0));
+ }
+ break;
++ case 39:
++ if( screen->colorMode ) {
++ SGR_Foreground(-1);
++ }
++ break;
+ case 40:
+ case 41:
+ case 42:
+***************
+*** 1165,1170 ****
+--- 1179,1189 ----
+ SGR_Background(param[row] - 40);
+ }
+ break;
++ case 49:
++ if( screen->colorMode ) {
++ SGR_Background(-1);
++ }
++ break;
+ case 100:
+ if( screen->colorMode ) {
+ if (term->flags & FG_COLOR)
+***************
+*** 2639,2644 ****
+--- 2658,2666 ----
+ for (i = 0; i < MAXCOLORS; i++) {
+ new->screen.colors[i] = request->screen.colors[i];
+ }
++
++ new->cur_foreground = 0;
++ new->cur_background = 0;
+
+ /*
+ * The definition of -rv now is that it changes the definition of
+Index: data.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/data.c Sat Jan 6 08:11:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/data.c Sun Jan 28 20:45:35 1996
+***************
+*** 26,32 ****
+--- 26,36 ----
+ */
+
+ #include "ptyx.h" /* gets Xt stuff, too */
++
++ #if XtSpecificationRelease >= 6
+ #include <X11/Xpoll.h>
++ #endif
++
+ #include "data.h"
+ #include <setjmp.h>
+
+Index: main.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/main.c Thu Jan 11 14:01:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/main.c Sun Jan 28 20:45:35 1996
+***************
+*** 75,82 ****
+--- 75,87 ----
+ #include <X11/Xos.h>
+ #include <X11/cursorfont.h>
+ #include <X11/Xaw/SimpleMenu.h>
++
++ #if XtSpecificationRelease >= 6
+ #include <X11/Xpoll.h>
++ #endif
++
+ #include <X11/Xlocale.h>
++
+ #include <pwd.h>
+ #include <ctype.h>
+ #include "data.h"
+***************
+*** 127,132 ****
+--- 132,138 ----
+ #endif
+
+ #ifdef SVR4
++ #undef SYSV /* predefined on Solaris 2.4 */
+ #define SYSV /* SVR4 is (approx) superset of SVR3 */
+ #define ATT
+ #define USE_SYSV_UTMP
+***************
+*** 453,459 ****
+ #endif
+
+ #ifdef SYSV
+! extern char *ptsname();
+ #endif
+
+ #include "xterm.h"
+--- 459,465 ----
+ #endif
+
+ #ifdef SYSV
+! extern char *ptsname PROTO((int));
+ #endif
+
+ #include "xterm.h"
+***************
+*** 1293,1303 ****
+
+ if (setegid(rgid) == -1)
+ (void) fprintf(stderr, "setegid(%d): %s\n",
+! rgid, strerror(errno));
+
+ if (seteuid(ruid) == -1)
+ (void) fprintf(stderr, "seteuid(%d): %s\n",
+! ruid, strerror(errno));
+ #endif
+
+ XtSetErrorHandler(xt_error);
+--- 1299,1309 ----
+
+ if (setegid(rgid) == -1)
+ (void) fprintf(stderr, "setegid(%d): %s\n",
+! (int) rgid, strerror(errno));
+
+ if (seteuid(ruid) == -1)
+ (void) fprintf(stderr, "seteuid(%d): %s\n",
+! (int) ruid, strerror(errno));
+ #endif
+
+ XtSetErrorHandler(xt_error);
+***************
+*** 1317,1327 ****
+ #ifdef HAS_POSIX_SAVED_IDS
+ if (seteuid(euid) == -1)
+ (void) fprintf(stderr, "seteuid(%d): %s\n",
+! euid, strerror(errno));
+
+ if (setegid(egid) == -1)
+ (void) fprintf(stderr, "setegid(%d): %s\n",
+! egid, strerror(errno));
+ #endif
+ }
+
+--- 1323,1333 ----
+ #ifdef HAS_POSIX_SAVED_IDS
+ if (seteuid(euid) == -1)
+ (void) fprintf(stderr, "seteuid(%d): %s\n",
+! (int) euid, strerror(errno));
+
+ if (setegid(egid) == -1)
+ (void) fprintf(stderr, "setegid(%d): %s\n",
+! (int) egid, strerror(errno));
+ #endif
+ }
+
+***************
+*** 1985,1992 ****
+ register TScreen *screen = &term->screen;
+ #ifdef USE_HANDSHAKE
+ handshake_t handshake;
+- #else
+- int fds[2];
+ #endif
+ int tty = -1;
+ int done;
+--- 1991,1996 ----
+***************
+*** 2458,2464 ****
+ {
+ #include <grp.h>
+ struct group *ttygrp;
+! if (ttygrp = getgrnam("tty")) {
+ /* change ownership of tty to real uid, "tty" gid */
+ chown (ttydev, screen->uid, ttygrp->gr_gid);
+ chmod (ttydev, 0620);
+--- 2462,2468 ----
+ {
+ #include <grp.h>
+ struct group *ttygrp;
+! if ((ttygrp = getgrnam("tty")) != 0) {
+ /* change ownership of tty to real uid, "tty" gid */
+ chown (ttydev, screen->uid, ttygrp->gr_gid);
+ chmod (ttydev, 0620);
+Index: menu.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/menu.c Tue Jan 16 15:43:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/menu.c Sun Jan 28 20:45:35 1996
+***************
+*** 397,411 ****
+ XtPointer closure, data;
+ {
+ register TScreen *screen = &term->screen;
+! Time time = CurrentTime; /* XXX - wrong */
+
+ if (screen->grabbedKbd) {
+! XUngrabKeyboard (screen->display, time);
+ ReverseVideo (term);
+ screen->grabbedKbd = FALSE;
+ } else {
+ if (XGrabKeyboard (screen->display, term->core.window,
+! True, GrabModeAsync, GrabModeAsync, time)
+ != GrabSuccess) {
+ Bell(XkbBI_MinorError, 100);
+ } else {
+--- 397,411 ----
+ XtPointer closure, data;
+ {
+ register TScreen *screen = &term->screen;
+! Time now = CurrentTime; /* XXX - wrong */
+
+ if (screen->grabbedKbd) {
+! XUngrabKeyboard (screen->display, now);
+ ReverseVideo (term);
+ screen->grabbedKbd = FALSE;
+ } else {
+ if (XGrabKeyboard (screen->display, term->core.window,
+! True, GrabModeAsync, GrabModeAsync, now)
+ != GrabSuccess) {
+ Bell(XkbBI_MinorError, 100);
+ } else {
+Index: misc.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/misc.c Fri Jan 26 11:43:22 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/misc.c Sun Jan 28 20:45:35 1996
+***************
+*** 50,55 ****
+--- 50,61 ----
+
+ #include "xterm.h"
+
++ #if XtSpecificationRelease < 6
++ #ifndef X_GETTIMEOFDAY
++ #define X_GETTIMEOFDAY(t) gettimeofday(t,(struct timezone *)0)
++ #endif
++ #endif
++
+ #ifdef AMOEBA
+ #include "amoeba.h"
+ #include "module/proc.h"
+Index: scrollbar.c
+*** /build/x11r6/XFree86-3.1.2Bn/xc/programs/xterm/scrollbar.c Tue Jan 16 15:43:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/xterm/scrollbar.c Sun Jan 28 20:45:35 1996
+***************
+*** 221,227 ****
+ register Widget scrollWidget;
+ {
+ Arg args[4];
+! int nargs = XtNumber(args);
+ unsigned long bg, fg, bdr;
+ Pixmap bdpix;
+
+--- 221,227 ----
+ register Widget scrollWidget;
+ {
+ Arg args[4];
+! Cardinal nargs = XtNumber(args);
+ unsigned long bg, fg, bdr;
+ Pixmap bdpix;
+
diff --git a/patch_cmds/diffstat/testing/case08.ref b/patch_cmds/diffstat/testing/case08.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08R.ref b/patch_cmds/diffstat/testing/case08R.ref
new file mode 100644
index 0000000..6e8272a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08R.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 ---------------
+ Tekproc.c | 7 -------
+ charproc.c | 22 ----------------------
+ data.c | 4 ----
+ main.c | 20 ++------!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ------
+ scrollbar.c | 2 !!
+ 8 files changed, 2 insertions(+), 60 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08Rp0.ref b/patch_cmds/diffstat/testing/case08Rp0.ref
new file mode 100644
index 0000000..6e8272a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08Rp0.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 ---------------
+ Tekproc.c | 7 -------
+ charproc.c | 22 ----------------------
+ data.c | 4 ----
+ main.c | 20 ++------!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ------
+ scrollbar.c | 2 !!
+ 8 files changed, 2 insertions(+), 60 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08b.ref b/patch_cmds/diffstat/testing/case08b.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08b.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08f0.ref b/patch_cmds/diffstat/testing/case08f0.ref
new file mode 100644
index 0000000..7761a8d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08f0.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 15 + 0 - 0 !
+ Tekproc.c | 7 7 + 0 - 0 !
+ charproc.c | 22 22 + 0 - 0 !
+ data.c | 4 4 + 0 - 0 !
+ main.c | 20 6 + 2 - 12 !
+ menu.c | 6 0 + 0 - 6 !
+ misc.c | 6 6 + 0 - 0 !
+ scrollbar.c | 2 0 + 0 - 2 !
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08k.ref b/patch_cmds/diffstat/testing/case08k.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08k.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08p1.ref b/patch_cmds/diffstat/testing/case08p1.ref
new file mode 100644
index 0000000..2bd31cb
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08p1.ref
@@ -0,0 +1,9 @@
+ build/x11r6/XFree86-current/xc/programs/xterm/Imakefile | 15 +++++++++
+ build/x11r6/XFree86-current/xc/programs/xterm/Tekproc.c | 7 ++++
+ build/x11r6/XFree86-current/xc/programs/xterm/charproc.c | 22 ++++++++++++++
+ build/x11r6/XFree86-current/xc/programs/xterm/data.c | 4 ++
+ build/x11r6/XFree86-current/xc/programs/xterm/main.c | 20 +++--!!!!!!
+ build/x11r6/XFree86-current/xc/programs/xterm/menu.c | 6 !!!
+ build/x11r6/XFree86-current/xc/programs/xterm/misc.c | 6 +++
+ build/x11r6/XFree86-current/xc/programs/xterm/scrollbar.c | 2 !
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08p9.ref b/patch_cmds/diffstat/testing/case08p9.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08p9.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08r1.ref b/patch_cmds/diffstat/testing/case08r1.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08r1.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08r2.ref b/patch_cmds/diffstat/testing/case08r2.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08r2.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case08u.ref b/patch_cmds/diffstat/testing/case08u.ref
new file mode 100644
index 0000000..53afea5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case08u.ref
@@ -0,0 +1,9 @@
+ Imakefile | 15 +++++++++++++++
+ Tekproc.c | 7 +++++++
+ charproc.c | 22 ++++++++++++++++++++++
+ data.c | 4 ++++
+ main.c | 20 ++++++--!!!!!!!!!!!!
+ menu.c | 6 !!!!!!
+ misc.c | 6 ++++++
+ scrollbar.c | 2 !!
+ 8 files changed, 60 insertions(+), 2 deletions(-), 20 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case09.pat b/patch_cmds/diffstat/testing/case09.pat
new file mode 100644
index 0000000..eced7bd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09.pat
@@ -0,0 +1,13 @@
+Other testing
+Bad data
+Index!!!
+Index:::
+diff!!!
++++++++++++++
+---------------
+Only in ?
+Binary files XXX and YYY are the same
+<<
+--
+++
+!!
diff --git a/patch_cmds/diffstat/testing/case09.ref b/patch_cmds/diffstat/testing/case09.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09R.ref b/patch_cmds/diffstat/testing/case09R.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09R.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09Rp0.ref b/patch_cmds/diffstat/testing/case09Rp0.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09Rp0.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09b.ref b/patch_cmds/diffstat/testing/case09b.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09b.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09f0.ref b/patch_cmds/diffstat/testing/case09f0.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09f0.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09k.ref b/patch_cmds/diffstat/testing/case09k.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09k.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09p1.ref b/patch_cmds/diffstat/testing/case09p1.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09p1.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09p9.ref b/patch_cmds/diffstat/testing/case09p9.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09p9.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09r1.ref b/patch_cmds/diffstat/testing/case09r1.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09r1.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09r2.ref b/patch_cmds/diffstat/testing/case09r2.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09r2.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case09u.ref b/patch_cmds/diffstat/testing/case09u.ref
new file mode 100644
index 0000000..63b383b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case09u.ref
@@ -0,0 +1 @@
+ 0 files changed
diff --git a/patch_cmds/diffstat/testing/case10.pat b/patch_cmds/diffstat/testing/case10.pat
new file mode 100644
index 0000000..e3d4b61
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10.pat
@@ -0,0 +1,67 @@
+Index: allowev.c
+*** /build/x11r6/XFree86-960317/xc/programs/Xserver/Xi/allowev.c Sun Mar 17 20:08:01 1996
+--- /build/x11r6/XFree86-current/xc/programs/Xserver/Xi/allowev.c Wed Mar 20 20:47:09 1996
+***************
+*** 63,72 ****
+
+ #include "extnsionst.h"
+ #include "extinit.h" /* LookupDeviceIntRec */
+
+! extern int IReqCode;
+! extern int BadDevice;
+! extern void (* ReplySwapVector[256]) ();
+
+ /***********************************************************************
+ *
+--- 63,71 ----
+
+ #include "extnsionst.h"
+ #include "extinit.h" /* LookupDeviceIntRec */
++ #include "exglobals.h"
+
+! #include "allowev.h"
+
+ /***********************************************************************
+ *
+***************
+*** 99,105 ****
+ {
+ TimeStamp time;
+ DeviceIntPtr thisdev;
+- void AllowSome ();
+
+ REQUEST(xAllowDeviceEventsReq);
+ REQUEST_SIZE_MATCH(xAllowDeviceEventsReq);
+--- 98,103 ----
+Index: XIstubs.h
+*** /dev/null Sun Jul 17 19:46:18 1994
+--- /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h Wed Mar 20 22:08:14 1996
+***************
+*** 0 ****
+--- 1,105 ----
++ /* $XConsortium$ */
++ /* $XFree86$ */
++
++ #ifndef XI_STUBS_H
++ #define XI_STUBS_H 1
++
++ int
++ ChangePointerDevice (
++ #if NeedFunctionPrototypes
++ DeviceIntPtr /* old_dev */,
++ DeviceIntPtr /* new_dev */,
++ unsigned char /* x */,
++ unsigned char /* y */
++ #endif
++ );
++
++ int
++ ChangeDeviceControl (
++ #if NeedFunctionPrototypes
++ ClientPtr /* client */,
++ DeviceIntPtr /* dev */,
++ xDeviceCtl * /* control */
++ #endif
++ );
++
++ #endif /* XI_STUBS_H */
diff --git a/patch_cmds/diffstat/testing/case10.ref b/patch_cmds/diffstat/testing/case10.ref
new file mode 100644
index 0000000..eab1d21
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10.ref
@@ -0,0 +1,3 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ xc/programs/Xserver/Xi/allowev.c | 6 !
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10R.ref b/patch_cmds/diffstat/testing/case10R.ref
new file mode 100644
index 0000000..02d5b59
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10R.ref
@@ -0,0 +1,3 @@
+ XIstubs.h | 26 --------------------------
+ allowev.c | 6 +-!!!!
+ 2 files changed, 1 insertion(+), 27 deletions(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10Rp0.ref b/patch_cmds/diffstat/testing/case10Rp0.ref
new file mode 100644
index 0000000..02d5b59
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10Rp0.ref
@@ -0,0 +1,3 @@
+ XIstubs.h | 26 --------------------------
+ allowev.c | 6 +-!!!!
+ 2 files changed, 1 insertion(+), 27 deletions(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10b.ref b/patch_cmds/diffstat/testing/case10b.ref
new file mode 100644
index 0000000..eab1d21
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10b.ref
@@ -0,0 +1,3 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ xc/programs/Xserver/Xi/allowev.c | 6 !
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10f0.ref b/patch_cmds/diffstat/testing/case10f0.ref
new file mode 100644
index 0000000..0aae099
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10f0.ref
@@ -0,0 +1,3 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 26 + 0 - 0 !
+ xc/programs/Xserver/Xi/allowev.c | 6 1 + 1 - 4 !
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10k.ref b/patch_cmds/diffstat/testing/case10k.ref
new file mode 100644
index 0000000..fe09222
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10k.ref
@@ -0,0 +1,4 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ XIstubs.h | 0
+ xc/programs/Xserver/Xi/allowev.c | 6 !
+ 3 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10p1.ref b/patch_cmds/diffstat/testing/case10p1.ref
new file mode 100644
index 0000000..c9f4be2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10p1.ref
@@ -0,0 +1,3 @@
+ build/x11r6/XFree86-current/xc/programs/Xserver/Xi/allowev.c | 6 !
+ build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10p9.ref b/patch_cmds/diffstat/testing/case10p9.ref
new file mode 100644
index 0000000..7a6e9b6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10p9.ref
@@ -0,0 +1,3 @@
+ XIstubs.h | 26 ++++++++++++++++++++++++++
+ allowev.c | 6 +-!!!!
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10r1.ref b/patch_cmds/diffstat/testing/case10r1.ref
new file mode 100644
index 0000000..07f96aa
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10r1.ref
@@ -0,0 +1,3 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ xc/programs/Xserver/Xi/allowev.c | 6 !!
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10r2.ref b/patch_cmds/diffstat/testing/case10r2.ref
new file mode 100644
index 0000000..07f96aa
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10r2.ref
@@ -0,0 +1,3 @@
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ xc/programs/Xserver/Xi/allowev.c | 6 !!
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case10u.ref b/patch_cmds/diffstat/testing/case10u.ref
new file mode 100644
index 0000000..e5f9fac
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case10u.ref
@@ -0,0 +1,3 @@
+ xc/programs/Xserver/Xi/allowev.c | 6 !
+ /build/x11r6/XFree86-current/xc/programs/Xserver/include/XIstubs.h | 26 ++++++++++
+ 2 files changed, 27 insertions(+), 1 deletion(-), 4 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case11.pat b/patch_cmds/diffstat/testing/case11.pat
new file mode 100644
index 0000000..97df0fa
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11.pat
@@ -0,0 +1,12 @@
+*** test/ncurses.orig.c Sat Dec 21 08:04:03 1996
+--- test/ncurses.c Sun Dec 29 00:11:07 1996
+***************
+*** 2746,2751 ****
+--- 2746,2752 ----
+ static void
+ set_terminal_modes(void)
+ {
++ noraw();
+ cbreak();
+ noecho();
+ scrollok(stdscr, TRUE);
diff --git a/patch_cmds/diffstat/testing/case11.ref b/patch_cmds/diffstat/testing/case11.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11R.ref b/patch_cmds/diffstat/testing/case11R.ref
new file mode 100644
index 0000000..de5637f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11R.ref
@@ -0,0 +1,2 @@
+ ncurses.orig.c | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case11Rp0.ref b/patch_cmds/diffstat/testing/case11Rp0.ref
new file mode 100644
index 0000000..0d33e9b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11Rp0.ref
@@ -0,0 +1,2 @@
+ test/ncurses.orig.c | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case11b.ref b/patch_cmds/diffstat/testing/case11b.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11b.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11f0.ref b/patch_cmds/diffstat/testing/case11f0.ref
new file mode 100644
index 0000000..da5213d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11f0.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 1 + 0 - 0 !
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11k.ref b/patch_cmds/diffstat/testing/case11k.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11k.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11p1.ref b/patch_cmds/diffstat/testing/case11p1.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11p1.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11p9.ref b/patch_cmds/diffstat/testing/case11p9.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11p9.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11r1.ref b/patch_cmds/diffstat/testing/case11r1.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11r1.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11r2.ref b/patch_cmds/diffstat/testing/case11r2.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11r2.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case11u.ref b/patch_cmds/diffstat/testing/case11u.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case11u.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case12.pat b/patch_cmds/diffstat/testing/case12.pat
new file mode 100644
index 0000000..a781855
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12.pat
@@ -0,0 +1,163 @@
+Index: xc/programs/xterm/main.c
+diff -u xc/programs/xterm/main.c:1.1.1.22 xc/programs/xterm/main.c:1.2
+--- xc/programs/xterm/main.c:1.1.1.22 Tue Mar 19 07:36:38 1996
++++ xc/programs/xterm/main.c Sun Mar 24 01:10:29 1996
+@@ -182,6 +182,10 @@
+ #undef CAPS_LOCK
+ #endif
+
++#ifdef CSRG_BASED
++#define USE_POSIX_TERMIOS
++#endif
++
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+
+@@ -199,6 +203,9 @@
+ #endif
+ #endif
+
++#ifdef USE_POSIX_TERMIOS
++#include <termios.h>
++#else
+ #ifdef USE_TERMIOS
+ #include <termios.h>
+ /* this hacked termios support only works on SYSV */
+@@ -3143,11 +3197,11 @@
+ shname_minus = malloc(strlen(shname) + 2);
+ (void) strcpy(shname_minus, "-");
+ (void) strcat(shname_minus, shname);
+-#ifndef USE_SYSV_TERMIO
++#if !defined(USE_SYSV_TERMIO) && !defined(USE_POSIX_TERMIOS)
+ ldisc = XStrCmp("csh", shname + strlen(shname) - 3) == 0 ?
+ NTTYDISC : 0;
+ ioctl(0, TIOCSETD, (char *)&ldisc);
+-#endif /* !USE_SYSV_TERMIO */
++#endif /* !USE_SYSV_TERMIO && !USE_POSIX_TERMIOS */
+
+ #ifdef USE_LOGIN_DASH_P
+ if (term->misc.login_shell && pw && added_utmp_entry)
+Index: xc/programs/xterm/resize.c
+diff -u xc/programs/xterm/resize.c:1.1.1.9 xc/programs/xterm/resize.c:1.2
+--- xc/programs/xterm/resize.c:1.1.1.9 Wed Feb 14 21:58:14 1996
++++ xc/programs/xterm/resize.c Sun Mar 24 01:10:32 1996
+@@ -87,19 +87,19 @@
+ #define USE_TERMINFO
+ #endif
+
+-#ifdef MINIX
++#if defined(CSRG_BASED)
+ #define USE_TERMIOS
+ #endif
+
+ #include <sys/ioctl.h>
+ #ifdef USE_SYSV_TERMIO
+-#include <sys/termio.h>
++# include <sys/termio.h>
+ #else /* else not USE_SYSV_TERMIO */
+-#ifdef MINIX
+-#include <termios.h>
+-#else /* !MINIX */
+-#include <sgtty.h>
+-#endif /* MINIX */
++# ifdef USE_TERMIOS
++# include <termios.h>
++# else /* not USE_TERMIOS */
++# include <sgtty.h>
++# endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+
+ #ifdef USE_USG_PTYS
+@@ -127,8 +127,9 @@
+ #define bzero(s, n) memset(s, 0, n)
+ #endif /* USE_SYSV_TERMIO */
+
+-#ifdef USE_TERMIOS
++#ifdef MINIX
+ #define USE_SYSV_TERMIO
++#include <sys/termios.h>
+ #define termio termios
+ #define TCGETA TCGETS
+ #define TCSETAW TCSETSW
+@@ -190,7 +191,11 @@
+ #ifdef USE_SYSV_TERMIO
+ struct termio tioorig;
+ #else /* not USE_SYSV_TERMIO */
++# ifdef USE_TERMIOS
++struct termios tioorig;
++# else /* not USE_TERMIOS */
+ struct sgttyb sgorig;
++# endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+ char *size[EMULATIONS] = {
+ "\033[%d;%dR",
+@@ -244,7 +249,11 @@
+ #ifdef USE_SYSV_TERMIO
+ struct termio tio;
+ #else /* not USE_SYSV_TERMIO */
++#ifdef USE_TERMIOS
++ struct termios tio;
++#else /* not USE_TERMIOS */
+ struct sgttyb sg;
++#endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+ #ifdef USE_TERMCAP
+ char termcap [1024];
+@@ -366,10 +375,20 @@
+ tio.c_cc[VMIN] = 6;
+ tio.c_cc[VTIME] = 1;
+ #else /* else not USE_SYSV_TERMIO */
++#if defined(USE_TERMIOS)
++ tcgetattr(tty, &tioorig);
++ tio = tioorig;
++ tio.c_iflag &= ~ICRNL;
++ tio.c_lflag &= ~(ICANON | ECHO);
++ tio.c_cflag |= CS8;
++ tio.c_cc[VMIN] = 6;
++ tio.c_cc[VTIME] = 1;
++#else /* not USE_TERMIOS */
+ ioctl (tty, TIOCGETP, &sgorig);
+ sg = sgorig;
+ sg.sg_flags |= RAW;
+ sg.sg_flags &= ~ECHO;
++#endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+ signal(SIGINT, onintr);
+ signal(SIGQUIT, onintr);
+@@ -377,7 +396,11 @@
+ #ifdef USE_SYSV_TERMIO
+ ioctl (tty, TCSETAW, &tio);
+ #else /* not USE_SYSV_TERMIO */
++#ifdef USE_TERMIOS
++ tcsetattr(tty, TCSADRAIN, &tio);
++#else /* not USE_TERMIOS */
+ ioctl (tty, TIOCSETP, &sg);
++#endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+
+ if (argc == 2) {
+@@ -434,7 +457,11 @@
+ #ifdef USE_SYSV_TERMIO
+ ioctl (tty, TCSETAW, &tioorig);
+ #else /* not USE_SYSV_TERMIO */
++#ifdef USE_TERMIOS
++ tcsetattr(tty, TCSADRAIN, &tioorig);
++#else /* not USE_TERMIOS */
+ ioctl (tty, TIOCSETP, &sgorig);
++#endif /* USE_TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+ signal(SIGINT, SIG_DFL);
+ signal(SIGQUIT, SIG_DFL);
+@@ -595,7 +622,11 @@
+ #ifdef USE_SYSV_TERMIO
+ ioctl (tty, TCSETAW, &tioorig);
+ #else /* not USE_SYSV_TERMIO */
++#ifdef USE_TERMIOS
++ tcsetattr (tty, TCSADRAIN, &tioorig);
++#else /* not USE_TERMIOS */
+ ioctl (tty, TIOCSETP, &sgorig);
++#endif /* use TERMIOS */
+ #endif /* USE_SYSV_TERMIO */
+ exit(1);
+ }
+
diff --git a/patch_cmds/diffstat/testing/case12.ref b/patch_cmds/diffstat/testing/case12.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12R.ref b/patch_cmds/diffstat/testing/case12R.ref
new file mode 100644
index 0000000..d8cc25c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12R.ref
@@ -0,0 +1,3 @@
+ main.c | 11 ++---------
+ resize.c | 47 ++++++++---------------------------------------
+ 2 files changed, 10 insertions(+), 48 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12Rp0.ref b/patch_cmds/diffstat/testing/case12Rp0.ref
new file mode 100644
index 0000000..0a69555
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12Rp0.ref
@@ -0,0 +1,3 @@
+ xc/programs/xterm/main.c | 11 +---------
+ xc/programs/xterm/resize.c | 47 +++++++--------------------------------------
+ 2 files changed, 10 insertions(+), 48 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12b.ref b/patch_cmds/diffstat/testing/case12b.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12b.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12f0.ref b/patch_cmds/diffstat/testing/case12f0.ref
new file mode 100644
index 0000000..97127ea
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12f0.ref
@@ -0,0 +1,3 @@
+ main.c | 11 9 + 2 - 0 !
+ resize.c | 47 39 + 8 - 0 !
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12k.ref b/patch_cmds/diffstat/testing/case12k.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12k.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12p1.ref b/patch_cmds/diffstat/testing/case12p1.ref
new file mode 100644
index 0000000..ec28fb8
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12p1.ref
@@ -0,0 +1,3 @@
+ programs/xterm/main.c | 11 +++++++++--
+ programs/xterm/resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12p9.ref b/patch_cmds/diffstat/testing/case12p9.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12p9.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12r1.ref b/patch_cmds/diffstat/testing/case12r1.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12r1.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12r2.ref b/patch_cmds/diffstat/testing/case12r2.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12r2.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case12u.ref b/patch_cmds/diffstat/testing/case12u.ref
new file mode 100644
index 0000000..0986dce
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case12u.ref
@@ -0,0 +1,3 @@
+ main.c | 11 +++++++++--
+ resize.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case13.pat b/patch_cmds/diffstat/testing/case13.pat
new file mode 100644
index 0000000..1baad44
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13.pat
@@ -0,0 +1,303 @@
+From pauzner.dnttm.rssi.ru!uue@pauzner.dnttm.rssi.ru Wed Jan 14 05:40:34 1998
+Received: from allison.clark.net (allison.clark.net [207.97.14.170])
+ by ice.clark.net (8.8.8/8.8.8) with ESMTP id FAA28956
+ for <dickey@shell.clark.net>; Wed, 14 Jan 1998 05:40:28 -0500 (EST)
+Received: from helios.dnttm.ru (dnttm.wave.ras.ru [194.85.104.197])
+ by allison.clark.net (8.8.8/8.8.8) with ESMTP id NAA05915
+ for <dickey@clark.net>; Mon, 12 Jan 1998 13:50:43 -0500 (EST)
+Received: from pauzner.UUCP (uucp@localhost)
+ by helios.dnttm.ru (8.8.5/8.8.5/IP-3) with UUCP id VAA21992
+ for dickey@clark.net; Mon, 12 Jan 1998 21:46:03 +0300
+Received: by pauzner.dnttm.rssi.ru (dMail for DOS v2.06, 14Jul97);
+ Mon, 12 Jan 1998 21:44:21 +0300
+To: dickey@shell.clark.net
+References: <AAyibkq8tH@pauzner.dnttm.rssi.ru>
+Message-Id: <AB3Ickqyu0@pauzner.dnttm.rssi.ru>
+From: "Leonid Pauzner" <uue@pauzner.dnttm.rssi.ru>
+Date: Mon, 12 Jan 1998 21:44:19 +0300 (MSK)
+X-Mailer: dMail [Demos Mail for DOS v2.06]
+Subject: Re: please submit a patch NOW
+Lines: 276
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Status: RO
+
+This is for russian Cyrillic chartrans only:
+koi8-r and other Cyrillics now fall down to def7_uni transliteration
+if necessary (as should be). No "strip high bit" any more for koi8-r
+(UCAux.c), which made text completely unreadable for human
+and come from "before Unicode Era".
+(Somebody should look in LYCharUtil.c and LYCharSet.c
+to remove unnecessary staff where)
+
+Leonid Pauzner.
+
+
+
+*** UCAux.c Thu Jan 8 16:53:06 1998
+--- UCAux.c.new Sat Jan 10 15:40:48 1998
+***************
+*** 64,70 ****
+ /*
+ ** CJK mode may be off (i.e., HTCJK == NOCJK) because
+ ** the current document is not CJK, but the check may
+! ** be for capability in relation to another document,
+ ** for which CJK mode might be turned on when retrieved.
+ ** Thus, when the from charset is CJK, check if the to
+ ** charset is CJK, and return TQ_NO or TQ_GOOD depending on
+--- 64,70 ----
+ /*
+ ** CJK mode may be off (i.e., HTCJK == NOCJK) because
+ ** the current document is not CJK, but the check may
+! ** be for campability in relation to another document,
+ ** for which CJK mode might be turned on when retrieved.
+ ** Thus, when the from charset is CJK, check if the to
+ ** charset is CJK, and return TQ_NO or TQ_GOOD depending on
+***************
+*** 84,113 ****
+ **/
+ return TQ_NO;
+ }
+! if (!strcmp(fromname, "koi8-r")) {
+! /*
+! * Will try to use stripping of high bit...
+! */
+! tqmin = TQ_POOR;
+! }
+!
+! if (!strcmp(fromname, "koi8-r") || /* from cyrillic */
+! !strcmp(fromname, "iso-8859-5") ||
+! !strcmp(fromname, "cp866") ||
+! !strcmp(fromname, "cp1251") ||
+! !strcmp(fromname, "koi-8")) {
+! if (strcmp(toname, "iso-8859-5") &&
+! strcmp(toname, "koi8-r") &&
+! strcmp(toname, "cp866") &&
+! strcmp(toname, "cp1251"))
+! tqmax = TQ_POOR;
+! }
+ return ((LYCharSet_UC[from].UChndl >= 0) ? tqmax : tqmin);
+ }
+ }
+
+ /*
+! ** Returns YES if no tranlation necessary (because
+ ** charsets are equal, are equivalent, etc.).
+ */
+ PUBLIC BOOL UCNeedNotTranslate ARGS2(
+--- 84,98 ----
+ **/
+ return TQ_NO;
+ }
+! /* I am not sure with tqmax and tqmin :
+! ** does we need them in this procedure et all now? -LP
+! */
+ return ((LYCharSet_UC[from].UChndl >= 0) ? tqmax : tqmin);
+ }
+ }
+
+ /*
+! ** Returns YES if no translation necessary (because
+ ** charsets are equal, are equivalent, etc.).
+ */
+ PUBLIC BOOL UCNeedNotTranslate ARGS2(
+***************
+*** 274,296 ****
+ ** We set this, presently, for VISCII. - FM
+ */
+ pT->repl_translated_C0 = (p_out->enc == UCT_ENC_8BIT_C0);
+- /*
+- ** This is a flag for whether we are dealing with koi8-r
+- ** as the input, and could do 8th-bit stripping for other
+- ** output charsets. Note that this always sets 8th-bit
+- ** stripping if the input charset is KOI8-R and the output
+- ** charset needs it, i.e., regardless of the RawMode and
+- ** consequent HTPassEightBitRaw setting, so you can't look
+- ** at raw koi8-r without selecting that as the display
+- ** character set (or transparent). That's just as well,
+- ** but worth noting for developers - FM
+- */
+- pT->strip_raw_char_in = ((!intm_ucs ||
+- (p_out->enc == UCT_ENC_7BIT) ||
+- (p_out->repertoire &
+- UCT_REP_SUBSETOF_LAT1)) &&
+- cs_in != cs_out &&
+- !strcmp(p_in->MIMEname, "koi8-r"));
+ /*
+ ** use_ucs should be set TRUE if we have or will create
+ ** Unicode values for input octets or UTF multibytes. - FM
+--- 259,264 ----
+
+*** def7_uni.tbl Sun Nov 16 20:36:50 1997
+--- def7_uni.tbl.new Sat Jan 10 15:14:34 1998
+***************
+*** 232,237 ****
+--- 232,238 ----
+ # IPA symbols, from
+ # Linkname: FAQ: Representing IPA Phonetics in ASCII
+ # URL: http://www.hpl.hp.com/personal/Evan_Kirshenbaum/IPA/faq.html
++ # (corrected in Russian Cyrillic area).
+ #
+ 0x41 U+0251 # LATIN SMALL LETTER SCRIPT A -> A
+ U+0252:A.
+***************
+*** 418,424 ****
+ U+03f4:'%
+ U+03f5:j3
+ # Cyrillic capital letters
+- 0x65 U+0401
+ U+0402:D%
+ U+0403:G%
+ U+0404:IE
+--- 419,424 ----
+***************
+*** 432,481 ****
+ U+040c:KJ
+ U+040e:V%
+ U+040f:DZ
+! 0x61-0x62 U+0410-U+0411
+! 0x77 U+0412
+! 0x67 U+0413
+! 0x64-0x65 U+0414-U+0415
+! 0x76 U+0416
+! 0x7a U+0417
+! 0x69-0x70 U+0418-U+041f
+! 0x72-0x75 U+0420-U+0423
+! 0x66 U+0424
+! 0x68 U+0425
+! 0x63 U+0426
+! 0x7e U+0427
+! 0x7b U+0428
+! 0x7d U+0429
+! 0x27 U+042a
+! 0x79 U+042b
+! 0x78 U+042c
+! 0x7c U+042d
+! 0x60 U+042e
+! 0x71 U+042f
+!
+! # Cyrillic small letters
+! 0x41-0x42 U+0430-U+0431
+! 0x57 U+0432
+! 0x47 U+0433
+! 0x44-0x45 U+0434-U+0435
+! 0x56 U+0436
+! 0x5a U+0437
+! 0x49-0x50 U+0438-U+043f
+! 0x52-0x55 U+0440-U+0443
+! 0x46 U+0444
+! 0x48 U+0445
+! 0x43 U+0446
+! 0x5e U+0447
+! 0x5b U+0448
+! 0x5d U+0449
+! 0x27 U+044a
+! 0x59 U+044b
+! 0x58 U+044c
+! 0x5c U+044d
+! 0x40 U+044e
+! 0x51 U+044f
+!
+! 0x65 U+0451 #:io
+ U+0452:d%
+ U+0453:g%
+ U+0454:ie
+--- 432,506 ----
+ U+040c:KJ
+ U+040e:V%
+ U+040f:DZ
+! # Russian Cyrillic letters, transliterated
+! U+0401:IO
+! U+0410:A
+! U+0411:B
+! U+0412:V
+! U+0413:G
+! U+0414:D
+! U+0415:E
+! U+0416:ZH
+! U+0417:Z
+! U+0418:I
+! U+0419:J
+! U+041a:K
+! U+041b:L
+! U+041c:M
+! U+041d:N
+! U+041e:O
+! U+041f:P
+! U+0420:R
+! U+0421:S
+! U+0422:T
+! U+0423:U
+! U+0424:F
+! U+0425:H
+! U+0426:C
+! U+0427:CH
+! U+0428:SH
+! U+0429:SCH
+! U+042a:"
+! U+042b:Y
+! U+042c:'
+! U+042d:`E
+! U+042e:JU
+! U+042f:JA
+! U+0430:a
+! U+0431:b
+! U+0432:v
+! U+0433:g
+! U+0434:d
+! U+0435:e
+! U+0436:zh
+! U+0437:z
+! U+0438:i
+! U+0439:j
+! U+043a:k
+! U+043b:l
+! U+043c:m
+! U+043d:n
+! U+043e:o
+! U+043f:p
+! U+0440:r
+! U+0441:s
+! U+0442:t
+! U+0443:u
+! U+0444:f
+! U+0445:h
+! U+0446:c
+! U+0447:ch
+! U+0448:sh
+! U+0449:sch
+! U+044a:"
+! U+044b:y
+! U+044c:'
+! U+044d:`e
+! U+044e:ju
+! U+044f:ja
+! U+0451:io
+! # end of Russian Cyrillic letters.
+! # Cyrillic small letters (and some archaic)
+ U+0452:d%
+ U+0453:g%
+ U+0454:ie
+***************
+*** 1432,1438 ****
+ U+223e:CG
+ U+2243:?-
+ U+2245:?=
+! U+2248:?2
+ U+224c:=?
+ U+2253:HI
+ U+2260:!=
+--- 1457,1464 ----
+ U+223e:CG
+ U+2243:?-
+ U+2245:?=
+! # ALMOST EQUAL TO:
+! U+2248:~=
+ U+224c:=?
+ U+2253:HI
+ U+2260:!=
+
+
+
+
diff --git a/patch_cmds/diffstat/testing/case13.ref b/patch_cmds/diffstat/testing/case13.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13R.ref b/patch_cmds/diffstat/testing/case13R.ref
new file mode 100644
index 0000000..5e07c7d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13R.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 ++++++++!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 18 insertions(+), 1 deletion(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13Rp0.ref b/patch_cmds/diffstat/testing/case13Rp0.ref
new file mode 100644
index 0000000..5e07c7d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13Rp0.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 ++++++++!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 18 insertions(+), 1 deletion(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13b.ref b/patch_cmds/diffstat/testing/case13b.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13b.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13f0.ref b/patch_cmds/diffstat/testing/case13f0.ref
new file mode 100644
index 0000000..cb23818
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13f0.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 0 + 17 - 25 !
+ def7_uni.tbl | 118 1 + 1 - 116 !
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13k.ref b/patch_cmds/diffstat/testing/case13k.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13k.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13p1.ref b/patch_cmds/diffstat/testing/case13p1.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13p1.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13p9.ref b/patch_cmds/diffstat/testing/case13p9.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13p9.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13r1.ref b/patch_cmds/diffstat/testing/case13r1.ref
new file mode 100644
index 0000000..a3694d4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13r1.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!
+ def7_uni.tbl | 118 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13r2.ref b/patch_cmds/diffstat/testing/case13r2.ref
new file mode 100644
index 0000000..a3694d4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13r2.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!
+ def7_uni.tbl | 118 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case13u.ref b/patch_cmds/diffstat/testing/case13u.ref
new file mode 100644
index 0000000..fb619f1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case13u.ref
@@ -0,0 +1,3 @@
+ UCAux.c | 42 --------!!!!!!!!!!!!!
+ def7_uni.tbl | 118 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ 2 files changed, 1 insertion(+), 18 deletions(-), 141 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case14.pat b/patch_cmds/diffstat/testing/case14.pat
new file mode 100644
index 0000000..56dd567
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14.pat
@@ -0,0 +1,12 @@
+*** /tmp/xx010 Sat Dec 21 08:04:03 1996
+--- test/ncurses.c Sun Dec 29 00:11:07 1996
+***************
+*** 2746,2751 ****
+--- 2746,2752 ----
+ static void
+ set_terminal_modes(void)
+ {
++ noraw();
+ cbreak();
+ noecho();
+ scrollok(stdscr, TRUE);
diff --git a/patch_cmds/diffstat/testing/case14.ref b/patch_cmds/diffstat/testing/case14.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14R.ref b/patch_cmds/diffstat/testing/case14R.ref
new file mode 100644
index 0000000..2a549f3
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14R.ref
@@ -0,0 +1,2 @@
+ xx010 | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case14Rp0.ref b/patch_cmds/diffstat/testing/case14Rp0.ref
new file mode 100644
index 0000000..4a9cbc9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14Rp0.ref
@@ -0,0 +1,2 @@
+ /tmp/xx010 | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case14b.ref b/patch_cmds/diffstat/testing/case14b.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14b.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14f0.ref b/patch_cmds/diffstat/testing/case14f0.ref
new file mode 100644
index 0000000..da5213d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14f0.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 1 + 0 - 0 !
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14k.ref b/patch_cmds/diffstat/testing/case14k.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14k.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14p1.ref b/patch_cmds/diffstat/testing/case14p1.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14p1.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14p9.ref b/patch_cmds/diffstat/testing/case14p9.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14p9.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14r1.ref b/patch_cmds/diffstat/testing/case14r1.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14r1.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14r2.ref b/patch_cmds/diffstat/testing/case14r2.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14r2.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case14u.ref b/patch_cmds/diffstat/testing/case14u.ref
new file mode 100644
index 0000000..51424e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case14u.ref
@@ -0,0 +1,2 @@
+ ncurses.c | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case15.pat b/patch_cmds/diffstat/testing/case15.pat
new file mode 100644
index 0000000..7db58a4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15.pat
@@ -0,0 +1,443 @@
+--- nvi-1.79.orig/build/Makefile.in
++++ nvi-1.79/build/Makefile.in
+@@ -95,15 +95,15 @@
+ ($(mkdir) $(mandir)/cat1 && $(chmod) $(dmode) $(mandir)/cat1)
+ @echo "Installing man pages: $(mandir) ..."
+ cd $(mandir)/cat1 && $(rm) -f `echo vi.0 | sed '$(transform)'`
+- $(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
+- $(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
+- cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
+- cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
+- cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
+- cd $(mandir)/cat1 && $(ln) \
+- `echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
+- cd $(mandir)/cat1 && $(ln) \
+- `echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
++ #$(cp) $(srcdir)/docs/USD.doc/vi.man/vi.0 \
++ #$(mandir)/cat1/`echo vi.0 | sed '$(transform)'`
++ #cd $(mandir)/cat1 && $(chmod) $(fmode) `echo vi.0 | sed '$(transform)'`
++ #cd $(mandir)/cat1 && $(rm) -f `echo ex.0 | sed '$(transform)'`
++ #cd $(mandir)/cat1 && $(rm) -f `echo view.0 | sed '$(transform)'`
++ #cd $(mandir)/cat1 && $(ln) \
++ #`echo vi.0 | sed '$(transform)'` `echo ex.0 | sed '$(transform)'`
++ #cd $(mandir)/cat1 && $(ln) \
++ #`echo vi.0 | sed '$(transform)'` `echo view.0 | sed '$(transform)'`
+ [ -d $(mandir)/man1 ] || \
+ ($(mkdir) $(mandir)/man1 && $(chmod) $(dmode) $(mandir)/man1)
+ cd $(mandir)/man1 && $(rm) -f `echo vi.1 | sed '$(transform)'`
+@@ -137,16 +137,16 @@
+ $(chmod) $(dmode) $(datadir)/vi/catalog
+ (cd $(srcdir)/catalog && $(cp) $(cat) $(datadir)/vi/catalog && \
+ cd $(datadir)/vi/catalog && $(chmod) $(fmode) *)
+- @echo "Installing Perl scripts: $(datadir)/vi/perl ..."
+- $(mkdir) $(datadir)/vi/perl && $(chmod) $(dmode) $(datadir)/vi/perl
+- [ -f VI.pm ] && $(cp) VI.pm $(datadir)/vi/perl && \
+- cd $(datadir)/vi/perl && $(chmod) $(fmode) VI.pm)
+- (cd $(srcdir)/perl_scripts && $(cp) *.pl $(datadir)/vi/perl && \
+- cd $(datadir)/vi/perl && $(chmod) $(fmode) *.pl)
+- @echo "Installing Tcl scripts: $(datadir)/vi/tcl ..."
+- $(mkdir) $(datadir)/vi/tcl && $(chmod) $(dmode) $(datadir)/vi/tcl
+- (cd $(srcdir)/tcl_scripts && $(cp) *.tcl $(datadir)/vi/tcl && \
+- cd $(datadir)/vi/tcl && $(chmod) $(fmode) *.tcl)
++ #@echo "Installing Perl scripts: $(datadir)/vi/perl ..."
++ #$(mkdir) $(datadir)/vi/perl && $(chmod) $(dmode) $(datadir)/vi/perl
++ #[ -f VI.pm ] && $(cp) VI.pm $(datadir)/vi/perl && \
++ # cd $(datadir)/vi/perl && $(chmod) $(fmode) VI.pm)
++ #(cd $(srcdir)/perl_scripts && $(cp) *.pl $(datadir)/vi/perl && \
++ # cd $(datadir)/vi/perl && $(chmod) $(fmode) *.pl)
++ #@echo "Installing Tcl scripts: $(datadir)/vi/tcl ..."
++ #$(mkdir) $(datadir)/vi/tcl && $(chmod) $(dmode) $(datadir)/vi/tcl
++ #(cd $(srcdir)/tcl_scripts && $(cp) *.tcl $(datadir)/vi/tcl && \
++ # cd $(datadir)/vi/tcl && $(chmod) $(fmode) *.tcl)
+ @echo "Installing recover script: $(datadir)/vi/recover ..."
+ ($(cp) recover $(datadir)/vi/recover && \
+ $(chmod) $(emode) $(datadir)/vi/recover)
+--- nvi-1.79.orig/build/recover
++++ nvi-1.79/build/recover
+@@ -0,0 +1,49 @@
++#!/bin/sh -
++#
++# @(#)recover.in 8.8 (Berkeley) 10/10/96
++#
++# Script to recover nvi edit sessions.
++
++RECDIR="/var/tmp/vi.recover"
++SENDMAIL="/usr/sbin/sendmail"
++
++echo 'Recovering nvi editor sessions.'
++
++# Check editor backup files.
++vibackup=`echo $RECDIR/vi.*`
++if [ "$vibackup" != "$RECDIR/vi.*" ]; then
++ for i in $vibackup; do
++ # Only test files that are readable.
++ if test ! -r $i; then
++ continue
++ fi
++
++ # Unmodified nvi editor backup files either have the
++ # execute bit set or are zero length. Delete them.
++ if test -x $i -o ! -s $i; then
++ rm $i
++ fi
++ done
++fi
++
++# It is possible to get incomplete recovery files, if the editor crashes
++# at the right time.
++virecovery=`echo $RECDIR/recover.*`
++if [ "$virecovery" != "$RECDIR/recover.*" ]; then
++ for i in $virecovery; do
++ # Only test files that are readable.
++ if test ! -r $i; then
++ continue
++ fi
++
++ # Delete any recovery files that are zero length, corrupted,
++ # or that have no corresponding backup file. Else send mail
++ # to the user.
++ recfile=`awk '/^X-vi-recover-path:/{print $2}' < $i`
++ if test -n "$recfile" -a -s "$recfile"; then
++ $SENDMAIL -t < $i
++ else
++ rm $i
++ fi
++ done
++fi
+--- nvi-1.79.orig/debian/README.debian
++++ nvi-1.79/debian/README.debian
+@@ -0,0 +1,14 @@
++nvi for DEBIAN
++----------------------
++
++This package was debianized by Steve Greenland
++<stevegr@master.debian.org> on Tue, 29 Oct 1996, using
++the new source format. Much of it is based on previous work by Robert
++Sanders <Robert.Sanders@linux.org> or <rsanders@mindspring.com>, and
++Ian Murdock <imurdock@debian.org>.
++
++It was downloaded from ftp://mongoose.bostic.com/pub/nvi.tar.gz,
++which seems to be the new home site: ftp.cs.berkeley.edu no longer
++archives nvi.
++
++Steve Greenland <stevegr@master.debian.org>, Sat, 15 Nov 1997
+--- nvi-1.79.orig/debian/changelog
++++ nvi-1.79/debian/changelog
+@@ -0,0 +1,53 @@
++nvi (1.79-5) frozen unstable; urgency=low
++
++ * Fixed removal of editor alternative in prerm (reported by Dale Scheetz)
++
++ -- Steve Greenland <stevegr@master.debian.org> Sun, 10 May 1998 18:54:02 -0500
++
++nvi (1.79-4) unstable; urgency=low
++
++ * fixed uncompressed alternatives links (closes:Bug#16171)
++ * fixed build problem (clean failed when already clean) (closes:Bug#15263)
++
++ -- Steve Greenland <stevegr@master.debian.org> Sun, 5 Apr 1998 13:31:46 -0500
++
++nvi (1.79-3) frozen unstable; urgency=low
++
++ * Rebuilt with clean md5sum file. (closes:Bug#19377,Bug#18683)
++
++ -- Steve Greenland <stevegr@master.debian.org> Thu, 19 Mar 1998 22:14:12 -0600
++
++nvi (1.79-2) unstable; urgency=low
++
++ * Fixed build (actually clean) procedure (Bug#15263)
++
++ -- Steve Greenland <stevegr@master.debian.org> Fri, 28 Nov 1997 13:58:17 -0600
++
++nvi (1.79-1) unstable; urgency=low
++
++ * Removed cleanup of nvi-1.34-4 from postinst, shouldn't be necessary
++ any longer (Bug #6563)
++ * Removed /usr/man/cat1 from package (Bug #6240, #8226)
++ * Fixed permissions on executables (and man pages) (Bug #5998)
++ * New upstream version (Bug #14086)
++ * Compiled for libc6 (Bug #11709)
++ * debian/rules calls 'make distclean' on clean to remove configuration stuff
++ * Added update-alternatve calls to support Debian's /usr/bin/editor.
++
++ -- Steve Greenland <stevegr@master.debian.org> Sat, 15 Nov 1997 17:50:02 -0600
++
++nvi (1.76-1) unstable; urgency=low
++
++ * New upstream version. (Fixes Bugs 2825, 3967, 4511)
++ * Modified Makefile.in permissions.
++ * New source package format, using debstd (from debmake package).
++ * Modified Makefile.in to not install pre-formatted man pages.
++ * Cleaned up postinst to avoid dangling links from update alternatives.
++ * Modified Makefile.in to not install Perl, Tcl, and Tk stuff. (Will
++ probably add back later as a separate package.)
++
++ -- Steve Greenland <stevegr@master.debian.org> Sun, 1 Dec 1996 22:03:37 -0600
++
++Local variables:
++mode: debian-changelog
++End:
+--- nvi-1.79.orig/debian/conffiles
++++ nvi-1.79/debian/conffiles
+@@ -0,0 +1 @@
++/etc/rc.boot/nvi
+--- nvi-1.79.orig/debian/control
++++ nvi-1.79/debian/control
+@@ -0,0 +1,19 @@
++Source: nvi
++Section: editors
++Priority: important
++Maintainer: Steve Greenland <stevegr@master.debian.org>
++Standards-Version: 2.4.0.0
++
++Package: nvi
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: 4.4BSD re-implementation of vi.
++ Vi is the original screen based text editor for Unix systems.
++ It is considered the standard text editor, and is available on
++ almost all Unix systems.
++ .
++ Nvi is intended as a "bug-for-bug compatible" clone of the original
++ BSD vi editor. As such, it doesn't have a lot of snazzy features as do
++ some of the other vi clones such as elvis and vim. However, if all
++ you want is vi, this is the one to get.
++
+--- nvi-1.79.orig/debian/postinst
++++ nvi-1.79/debian/postinst
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++# Remove the old view link (nvi-1.34-14, maybe earlier)
++# Don't bother the user with it.
++update-alternatives --remove view /usr/bin/nvi >/dev/null
++
++update-alternatives --install /usr/bin/ex ex /usr/bin/nex 30 \
++ --slave /usr/man/man1/ex.1.gz ex.1.gz /usr/man/man1/nex.1.gz
++update-alternatives --install /usr/bin/vi vi /usr/bin/nvi 30 \
++ --slave /usr/man/man1/vi.1.gz vi.1.gz /usr/man/man1/nvi.1.gz
++update-alternatives --install /usr/bin/view view /usr/bin/nview 30 \
++ --slave /usr/man/man1/view.1.gz view.1.gz /usr/man/man1/nview.1.gz
++
++# These are for the generic editor links
++
++update-alternatives --install /usr/bin/editor editor /usr/bin/nvi 100 \
++ --slave /usr/man/man1/editor.1.gz editor.1.gz /usr/man/man1/nvi.1.gz
++
++
++
++exit 0
+--- nvi-1.79.orig/debian/prerm
++++ nvi-1.79/debian/prerm
+@@ -0,0 +1,11 @@
++#! /bin/sh
++
++if [ "$1" != "upgrade" ]
++then
++ update-alternatives --remove editor /usr/bin/nvi
++ update-alternatives --remove ex /usr/bin/nex
++ update-alternatives --remove vi /usr/bin/nvi
++ update-alternatives --remove view /usr/bin/nview
++fi
++
++exit 0
+--- nvi-1.79.orig/debian/rc.boot
++++ nvi-1.79/debian/rc.boot
+@@ -0,0 +1,58 @@
++#!/bin/sh
++# @(#)recover.script 8.7 (Berkeley) 8/16/94
++#
++# Script to recover nvi edit sessions.
++#
++RECDIR=/var/tmp/vi.recover
++SENDMAIL=/usr/lib/sendmail
++
++case "$1" in
++ start)
++ echo -n 'Recovering nvi editor sessions... '
++
++ # Check editor backup files.
++ vibackup=`echo $RECDIR/vi.*`
++ if [ "$vibackup" != "$RECDIR/vi.*" ]; then
++ for i in $vibackup; do
++ # Only test files that are readable.
++ if test ! -r $i; then
++ continue
++ fi
++
++ # Unmodified nvi editor backup files either have the
++ # execute bit set or are zero length. Delete them.
++ if test -x $i -o ! -s $i; then
++ rm $i
++ fi
++ done
++ fi
++
++ # It is possible to get incomplete recovery files, if the editor crashes
++ # at the right time.
++ virecovery=`echo $RECDIR/recover.*`
++ if [ "$virecovery" != "$RECDIR/recover.*" ]; then
++ for i in $virecovery; do
++ # Only test files that are readable.
++ if test ! -r $i; then
++ continue
++ fi
++
++ # Delete any recovery files that are zero length, corrupted,
++ # or that have no corresponding backup file. Else send mail
++ # to the user.
++ recfile=`awk '/^X-vi-recover-path:/{print $2}' < $i`
++ if test -n "$recfile" -a -s "$recfile"; then
++ $SENDMAIL -t < $i
++ else
++ rm $i
++ fi
++ done
++ fi
++
++ echo "done."
++ ;;
++ stop)
++ ;;
++esac
++
++exit 0
+--- nvi-1.79.orig/debian/rules
++++ nvi-1.79/debian/rules
+@@ -0,0 +1,89 @@
++#!/usr/bin/make -f
++# Sample debian.rules file - for GNU Hello (1.3).
++# Copyright 1994,1995 by Ian Jackson.
++# I hereby give you perpetual unlimited permission to copy,
++# modify and relicense this file, provided that you do not remove
++# my name from the file itself. (I assert my moral right of
++# paternity under the Copyright, Designs and Patents Act 1988.)
++# This file may have to be extensively modified
++
++# There used to be `source' and `diff' targets in this file, and many
++# packages also had `changes' and `dist' targets. These functions
++# have been taken over by dpkg-source, dpkg-genchanges and
++# dpkg-buildpackage in a package-independent way, and so these targets
++# are obsolete.
++
++package=nvi
++
++# This is needed for the install target
++curdir=$(shell pwd)
++
++# This bit with build.deb is because the nvi package has a
++# 'build' directory, and the normal use of 'touch build' won't
++# work.
++
++build: build.deb
++
++build.deb:
++ $(checkdir)
++ (cd ./build && CC=gcc ADDCPPFLAGS="-O2 -g" ./configure --prefix=/usr --disable-curses --datadir=/usr/lib --program-prefix=n)
++ (cd ./build && make)
++ touch build.deb
++
++
++clean:
++ $(checkdir)
++ -rm -f build.deb
++ (cd ./build && make distclean || /bin/true )
++ -rm -rf *~ debian/tmp debian/*~ debian/files*
++
++binary-indep: checkroot build.deb
++ $(checkdir)
++# There are no architecture-independent files to be uploaded
++# generated by this package. If there were any they would be
++# made here.
++
++binary-arch: checkroot build.deb
++ $(checkdir)
++ -rm -rf debian/tmp
++ install -d debian/tmp/usr/bin debian/tmp/etc
++ (cd build && make install prefix=$(curdir)/debian/tmp/usr)
++ -rmdir debian/tmp/usr/man/cat1
++ chmod u+w debian/tmp/usr/bin/* debian/tmp/usr/man/man1/nvi.*
++ cp LICENSE debian/copyright
++ # Compress the man pages -- debstd can't do this because they
++ # are all links. Also, make them soft links instead of hard links
++ (cd debian/tmp/usr/man/man1 && \
++ rm {nex,nview}.1 && gzip -9 nvi.1 && \
++ ln -s nvi.1.gz nex.1.gz && ln -s nvi.1.gz nview.1.gz)
++# Must have debmake installed for this to work. Otherwise please copy
++# /usr/bin/debstd into the debian directory and change debstd to debian/debstd
++ debstd -m docs/changelog README FAQ
++ #
++ # Compress the changelogs if debstd didn't
++ #
++ ( set -e && cd debian/tmp/usr/doc/nvi && \
++ if [ -f changelog ] ; then gzip -9 changelog ; fi &&\
++ if [ -f changelog.Debian ] ; then gzip -9 changelog.Debian;fi)
++ dpkg-gencontrol
++ chown -R root.root debian/tmp
++ chmod -R g-ws debian/tmp
++ dpkg --build debian/tmp ..
++
++
++define checkdir
++ test -f debian/rules
++endef
++
++# Below here is fairly generic really
++
++binary: binary-indep binary-arch
++
++source diff:
++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
++
++checkroot:
++ $(checkdir)
++ test root = "`whoami`"
++
++.PHONY: binary binary-arch binary-indep clean checkroot
+--- nvi-1.79.orig/debian/substvars
++++ nvi-1.79/debian/substvars
+@@ -0,0 +1 @@
++shlibs:Depends=libc6, ncurses3.4
+--- nvi-1.79.orig/debian/copyright
++++ nvi-1.79/debian/copyright
+@@ -0,0 +1,40 @@
++The vi program is freely redistributable. You are welcome to copy, modify
++and share it with others under the conditions listed in this file. If any
++company (not any individual!) finds vi sufficiently useful that you would
++have purchased it, or if any company wishes to redistribute it, contributions
++to the authors would be appreciated.
++
++/*-
++ * Copyright (c) 1991, 1992, 1993, 1994
++ * The Regents of the University of California. All rights reserved.
++ * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996
++ * Keith Bostic. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
diff --git a/patch_cmds/diffstat/testing/case15.ref b/patch_cmds/diffstat/testing/case15.ref
new file mode 100644
index 0000000..28906ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1
+ debian/control | 19 ++++++++++
+ debian/copyright | 40 ++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15R.ref b/patch_cmds/diffstat/testing/case15R.ref
new file mode 100644
index 0000000..ee378c8
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15R.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ----------------------------
+ debian/README.debian | 14 --------
+ debian/changelog | 53 ------------------------------
+ debian/conffiles | 1
+ debian/control | 19 ----------
+ debian/copyright | 40 ----------------------
+ debian/postinst | 21 ------------
+ debian/prerm | 11 ------
+ debian/rc.boot | 58 ---------------------------------
+ debian/rules | 89 ---------------------------------------------------
+ debian/substvars | 1
+ 12 files changed, 19 insertions(+), 375 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15Rp0.ref b/patch_cmds/diffstat/testing/case15Rp0.ref
new file mode 100644
index 0000000..d7ff549
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15Rp0.ref
@@ -0,0 +1,13 @@
+ nvi-1.79.orig/build/Makefile.in | 38 +++++++--------
+ nvi-1.79.orig/build/recover | 49 --------------------
+ nvi-1.79.orig/debian/README.debian | 14 -----
+ nvi-1.79.orig/debian/changelog | 53 ----------------------
+ nvi-1.79.orig/debian/conffiles | 1
+ nvi-1.79.orig/debian/control | 19 -------
+ nvi-1.79.orig/debian/copyright | 40 ----------------
+ nvi-1.79.orig/debian/postinst | 21 --------
+ nvi-1.79.orig/debian/prerm | 11 ----
+ nvi-1.79.orig/debian/rc.boot | 58 ------------------------
+ nvi-1.79.orig/debian/rules | 89 -------------------------------------
+ nvi-1.79.orig/debian/substvars | 1
+ 12 files changed, 19 insertions(+), 375 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15b.ref b/patch_cmds/diffstat/testing/case15b.ref
new file mode 100644
index 0000000..28906ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15b.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1
+ debian/control | 19 ++++++++++
+ debian/copyright | 40 ++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15f0.ref b/patch_cmds/diffstat/testing/case15f0.ref
new file mode 100644
index 0000000..6664f4f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15f0.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 19 + 19 - 0 !
+ build/recover | 49 49 + 0 - 0 !
+ debian/README.debian | 14 14 + 0 - 0 !
+ debian/changelog | 53 53 + 0 - 0 !
+ debian/conffiles | 1 1 + 0 - 0 !
+ debian/control | 19 19 + 0 - 0 !
+ debian/copyright | 40 40 + 0 - 0 !
+ debian/postinst | 21 21 + 0 - 0 !
+ debian/prerm | 11 11 + 0 - 0 !
+ debian/rc.boot | 58 58 + 0 - 0 !
+ debian/rules | 89 89 + 0 - 0 !
+ debian/substvars | 1 1 + 0 - 0 !
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15k.ref b/patch_cmds/diffstat/testing/case15k.ref
new file mode 100644
index 0000000..28906ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15k.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1
+ debian/control | 19 ++++++++++
+ debian/copyright | 40 ++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15p1.ref b/patch_cmds/diffstat/testing/case15p1.ref
new file mode 100644
index 0000000..28906ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15p1.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1
+ debian/control | 19 ++++++++++
+ debian/copyright | 40 ++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15p9.ref b/patch_cmds/diffstat/testing/case15p9.ref
new file mode 100644
index 0000000..4fe8965
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15p9.ref
@@ -0,0 +1,13 @@
+ Makefile.in | 38 ++++++++++++------------
+ README.debian | 14 +++++++++
+ changelog | 53 ++++++++++++++++++++++++++++++++++
+ conffiles | 1
+ control | 19 ++++++++++++
+ copyright | 40 ++++++++++++++++++++++++++
+ postinst | 21 +++++++++++++
+ prerm | 11 +++++++
+ rc.boot | 58 +++++++++++++++++++++++++++++++++++++
+ recover | 49 +++++++++++++++++++++++++++++++
+ rules | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ substvars | 1
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15r1.ref b/patch_cmds/diffstat/testing/case15r1.ref
new file mode 100644
index 0000000..91bf4a2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15r1.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 +++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1 +
+ debian/control | 19 +++++++++++
+ debian/copyright | 40 +++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1 +
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15r2.ref b/patch_cmds/diffstat/testing/case15r2.ref
new file mode 100644
index 0000000..91bf4a2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15r2.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 +++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1 +
+ debian/control | 19 +++++++++++
+ debian/copyright | 40 +++++++++++++++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1 +
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case15u.ref b/patch_cmds/diffstat/testing/case15u.ref
new file mode 100644
index 0000000..2c98d98
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case15u.ref
@@ -0,0 +1,13 @@
+ build/Makefile.in | 38 ++++++++++-----------
+ build/recover | 49 ++++++++++++++++++++++++++++
+ debian/README.debian | 14 ++++++++
+ debian/changelog | 53 ++++++++++++++++++++++++++++++
+ debian/conffiles | 1
+ debian/control | 19 ++++++++++
+ debian/postinst | 21 ++++++++++++
+ debian/prerm | 11 ++++++
+ debian/rc.boot | 58 +++++++++++++++++++++++++++++++++
+ debian/rules | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ debian/substvars | 1
+ debian/copyright | 40 ++++++++++++++++++++++
+ 12 files changed, 375 insertions(+), 19 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16.pat b/patch_cmds/diffstat/testing/case16.pat
new file mode 100644
index 0000000..839a330
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16.pat
@@ -0,0 +1,2036 @@
+
+ PDCurses 2.5
+ (Public Domain Curses for DOS, OS/2, X11 and Win32)
+
+
+INTRODUCTION:
+
+This release of PDCurses includes the following changes:
+
+- full support of X11 selection handling
+- removed the need for the cursos2.h file
+- enabled the "shifted" key on the numeric keypad
+- added native clipboard support for X11, Win32 and OS/2
+- added extra functions for obtaining internal PDCUrses status
+- added clipboard and key modifier tests in testcurs.c
+- fixes for panel library
+- key modifiers pressed by themselves are now returned as keys
+- Added X11 shared library support
+- Added extra slk formats supported by ncurses
+- Fixed bug with resizing the terminal when slk were on.
+- Changed behaviour of slk_attrset(), slk_attron() alk_attroff()
+ functions to work more like ncurses.
+
+BUGS FIXED:
+
+some minor bug and portability fixes were included in this release
+
+NEW FUNCTIONS:
+
+PDC_getclipboard() and PDC_setclipboard() for accessing the native
+clipboard.
+PDC_set_title() for setting the title of the window (X11 and Win32 only)
+PDC_get_input_fd() for getting the file handle of the PDCurses input
+PDC_get_key_modifiers() for getting the keyboard modifier settings at the
+time of the last (w)getch()
+initscrX() (only for X11 port) which allows standard X11 switches to
+be passed to the application
+
+
+NEW COMPILER SUPPORT:
+
+- MingW32 GNU compiler under Win95/NT
+- Cygnus Win32 GNU compiler under Win95/NT
+- Borland C++ for OS/2 1.0+
+- lcc-win32 compiler under Win95/NT
+
+Makefiles for each platform/compiler option reside in the platform
+directory. These all have an extension of .mak.
+
+
+ACKNOWLEGEMENTS: (for this release)
+
+Georg Fuchs for various changes.
+Juan David Palomar for pointing out getnstr() was not implemented.
+William McBrine for fix to allow black/black as valid color pair.
+Peter Preus for pointing out the missing bccos2.mak file.
+Laura Michaels for a couple of bug fixes and changes required to support
+ Mingw32 compiler.
+Frank Heckenbach for PDC_get_input_fd() and some portability fixes and
+ the fixes for panel library.
+Matthias Burian for the lcc-win32 compiler support.
+
+Cheers, Mark
+------------------------------------------------------------------------
+ Mark Hessling Email: M.Hessling@qut.edu.au
+ PO Box 203 http://www.lightlink.com/hessling/
+ Bellara AUTHOR of | MAINTAINER of
+ QLD 4507 THE | PDCurses
+ Australia Rexx/SQL | Regina
+ Member of RexxLA: http://www.rexxla.org/
+------------------------------------------------------------------------
+
+ Module: PDCurses
+ Detailed differences between 2_4 and Latest
+
+--------------------------------------------------------------------------------
+
+Index: PDCurses/Makefile.in
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/Makefile.in,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -b -w -r1.1 -r1.3
+7,8c7,8
+< VER=24
+< VER_DOT=2.4
+---
+> VER=25
+> VER_DOT=2.5
+18,19c18
+< INSTALL =@INSTALL@
+< INSTALL_DATA =@INSTALL_DATA@
+---
+> INSTALL =$(srcdir)/install-sh
+20a20,22
+> RXLIBPRE = @RXLIBPRE@
+> RXLIBPST = @RXLIBPST@
+> SHLFILE = XCurses
+35,42c37,46
+< $(INSTALL_DATA) $(srcdir)/curses.h $(includedir)/xcurses.h
+< sed -e 's/#include <curses.h>/#include<xcurses.h>/' < panel.h > xpanel.h
+< $(INSTALL_DATA) $(srcdir)/xpanel.h $(includedir)/panel.h
+< $(INSTALL_DATA) pdcurses/libXCurses.a $(libdir)/libXCurses.a
+< $(INSTALL_DATA) pdcurses/$(RXLIBPRE)$(SHLFILE)$(RXLIBPST) $(libdir)/$(RXLIBPRE)$(SHLFILE)$(RXLIBPST)
+< $(RANLIB) $(libdir)/libXCurses.a
+< $(INSTALL_DATA) panel/libpanel.a $(libdir)/libpanel.a
+< $(RANLIB) $(libdir)/libpanel.a
+---
+> $(INSTALL) -d -m 755 $(libdir)
+> $(INSTALL) -d -m 755 $(includedir)
+> $(INSTALL) -c -m 644 $(srcdir)/curses.h $(includedir)/xcurses.h
+> sed -e 's/#include <curses.h>/#include <xcurses.h>/' < $(srcdir)/panel.h > ./xpanel.h
+> $(INSTALL) -m 644 ./xpanel.h $(includedir)/xpanel.h
+> $(INSTALL) -c -m 644 pdcurses/libXCurses.a $(libdir)/libXCurses.a
+> -$(RANLIB) $(libdir)/libXCurses.a
+> $(INSTALL) -c -m 555 pdcurses/$(RXLIBPRE)$(SHLFILE)$(RXLIBPST) $(libdir)/$(RXLIBPRE)$(SHLFILE)$(RXLIBPST)
+> $(INSTALL) -c -m 644 panel/libpanel.a $(libdir)/libpanel.a
+> -$(RANLIB) $(libdir)/libpanel.a
+57c61
+< curses.h xcurses.h curspriv.h panel.h x11.h maintain.er readme.* makezip.cmd \
+---
+> curses.h xcurses.h curspriv.h panel.h maintain.er readme.* makezip.cmd \
+63c67,68
+< x11/README x11/*.c x11/*.xbm x11/*.def x11/*.h \
+---
+> x11/README x11/*.c x11/*.xbm x11/*.def x11/*.h x11/process/*.c x11/*.exp \
+> x11/process/*.c x11/process/*.h x11/thread/*.c x11/thread/*.h \
+66c71
+< pdcurses/Makefile.in demos/Makefile.in panel/Makefile.in tools/Makefile.in
+---
+> pdcurses/Makefile.in pdcurses/Makefile.aix.in demos/Makefile.in panel/Makefile.in tools/Makefile.in
+69c74
+< (cd ..; tar cvf - $(PDC_DIR)/README $(PDC_DIR)/INSTALL $(PDC_DIR)/README $(PDC_DIR)/Makefile.in \
+---
+> (cd ..; tar cvf - $(PDC_DIR)/README $(PDC_DIR)/INSTALL $(PDC_DIR)/TODO $(PDC_DIR)/Makefile.in \
+71c76
+< $(PDC_DIR)/config.sub $(PDC_DIR)/install-sh $(PDC_DIR)/curses.h $(PDC_DIR)/xcurses.h \
+---
+> $(PDC_DIR)/config.sub $(PDC_DIR)/configure.in $(PDC_DIR)/install-sh $(PDC_DIR)/curses.h $(PDC_DIR)/xcurses.h \
+73c78
+< $(PDC_DIR)/x11.h $(PDC_DIR)/maintain.er $(PDC_DIR)/readme.* $(PDC_DIR)/makezip.cmd \
+---
+> $(PDC_DIR)/maintain.er $(PDC_DIR)/readme.* $(PDC_DIR)/makezip.cmd \
+75c80
+< $(PDC_DIR)/panel/README $(PDC_DIR)/panel/*.c \
+---
+> $(PDC_DIR)/panel/README $(PDC_DIR)/panel/*.c $(PDC_DIR)/*.spec \
+79c84,85
+< $(PDC_DIR)/x11/README $(PDC_DIR)/x11/*.c $(PDC_DIR)/x11/*.xbm $(PDC_DIR)/x11/*.def $(PDC_DIR)/x11/*.h \
+---
+> $(PDC_DIR)/x11/README $(PDC_DIR)/x11/*.c $(PDC_DIR)/x11/*.xbm $(PDC_DIR)/x11/*.def $(PDC_DIR)/x11/*.h $(PDC_DIR)/x11/*.exp \
+> $(PDC_DIR)/x11/process/*.c $(PDC_DIR)/x11/process/*.h $(PDC_DIR)/x11/thread/*.c $(PDC_DIR)/x11/thread/*.h \
+82c88
+< $(PDC_DIR)/pdcurses/Makefile.in $(PDC_DIR)/demos/Makefile.in $(PDC_DIR)/tools/Makefile.in \
+---
+> $(PDC_DIR)/pdcurses/Makefile.in $(PDC_DIR)/pdcurses/Makefile.aix.in $(PDC_DIR)/demos/Makefile.in $(PDC_DIR)/tools/Makefile.in \
+86c92
+< (cd ..; tar cvf - $(PDC_DIR)/README $(PDC_DIR)/INSTALL $(PDC_DIR)/README $(PDC_DIR)/Makefile.in \
+---
+> (cd ..; tar cvf - $(PDC_DIR)/README $(PDC_DIR)/INSTALL $(PDC_DIR)/TODO $(PDC_DIR)/Makefile.in \
+88c94
+< $(PDC_DIR)/config.sub $(PDC_DIR)/install-sh $(PDC_DIR)/curses.h $(PDC_DIR)/xcurses.h \
+---
+> $(PDC_DIR)/config.sub $(PDC_DIR)/configure.in $(PDC_DIR)/install-sh $(PDC_DIR)/curses.h $(PDC_DIR)/xcurses.h \
+90c96
+< $(PDC_DIR)/x11.h $(PDC_DIR)/maintain.er $(PDC_DIR)/readme.* $(PDC_DIR)/makezip.cmd \
+---
+> $(PDC_DIR)/maintain.er $(PDC_DIR)/readme.* $(PDC_DIR)/makezip.cmd \
+92c98
+< $(PDC_DIR)/panel/README $(PDC_DIR)/panel/*.c \
+---
+> $(PDC_DIR)/panel/README $(PDC_DIR)/panel/*.c $(PDC_DIR)/*.spec \
+96c102,103
+< $(PDC_DIR)/x11/README $(PDC_DIR)/x11/*.c $(PDC_DIR)/x11/*.xbm $(PDC_DIR)/x11/*.def $(PDC_DIR)/x11/*.h \
+---
+> $(PDC_DIR)/x11/README $(PDC_DIR)/x11/*.c $(PDC_DIR)/x11/*.xbm $(PDC_DIR)/x11/*.def $(PDC_DIR)/x11/*.h $(PDC_DIR)/x11/*.exp \
+> $(PDC_DIR)/x11/process/*.c $(PDC_DIR)/x11/process/*.h $(PDC_DIR)/x11/thread/*.c $(PDC_DIR)/x11/thread/*.h \
+99c106
+< $(PDC_DIR)/pdcurses/Makefile.in $(PDC_DIR)/demos/Makefile.in $(PDC_DIR)/tools/Makefile.in \
+---
+> $(PDC_DIR)/pdcurses/Makefile.in $(PDC_DIR)/pdcurses/Makefile.aix.in $(PDC_DIR)/demos/Makefile.in $(PDC_DIR)/tools/Makefile.in \
+
+Index: PDCurses/README
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/README,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+21,22c21,23
+< PDCurses has been ported to DOS, OS/2, X11, WIN32 and Flexos. A
+< directory containing the port-specific source files exists for each
+---
+> PDCurses has been ported to DOS, OS/2, X11, WIN32 and Amiga. A port
+> to Flexos is also included, but likely to be out of date.
+> A directory containing the port-specific source files exists for each
+
+Index: PDCurses/aclocal.m4
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/aclocal.m4,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+329c329,334
+< LD_RXLIB1="${CC} -Wl,-shared"
+---
+> LD_RXLIB1="${CC} -shared"
+> RXLIBPRE="lib"
+> RXLIBPST=".so"
+> ;;
+> *nto-qnx*)
+> LD_RXLIB1="${CC} -shared"
+
+Index: PDCurses/config.h.in
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/config.h.in,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+127a128,133
+> /* Define if you want to build XCurses with threads */
+> #undef USE_THREADS
+>
+> /* Define if you want to build XCurses with processes */
+> #undef USE_PROCESSES
+>
+
+Index: PDCurses/configure
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/configure,v
+retrieving revision 1.1
+retrieving revision 1.4
+diff -b -w -r1.1 -r1.4
+4c4
+< # Generated automatically using autoconf version 2.12
+---
+> # Generated automatically using autoconf version 2.13
+18a19,20
+> --with-threads build XCurses with threads"
+> ac_help="$ac_help
+59a62
+> SHELL=${CONFIG_SHELL-/bin/sh}
+343c346
+< echo "configure generated by autoconf version 2.12"
+---
+> echo "configure generated by autoconf version 2.13"
+513c516
+< ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+---
+> ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+515a519,520
+> ac_exeext=
+> ac_objext=o
+537c542
+< echo "configure:538: checking for one of the following C compilers: $all_words" >&5
+---
+> echo "configure:543: checking for one of the following C compilers: $all_words" >&5
+576c581
+< echo "configure:577: checking for $ac_word" >&5
+---
+> echo "configure:582: checking for $ac_word" >&5
+583,584c588,590
+< IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+< for ac_dir in $PATH; do
+---
+> IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+> ac_dummy="$PATH"
+> for ac_dir in $ac_dummy; do
+605c611
+< echo "configure:606: checking for $ac_word" >&5
+---
+> echo "configure:612: checking for $ac_word" >&5
+612c618
+< IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+---
+> IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+614c620,621
+< for ac_dir in $PATH; do
+---
+> ac_dummy="$PATH"
+> for ac_dir in $ac_dummy; do
+648a656,689
+> if test -z "$CC"; then
+> case "`uname -s`" in
+> *win32* | *WIN32*)
+> # Extract the first word of "cl", so it can be a program name with args.
+> set dummy cl; ac_word=$2
+> echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+> echo "configure:663: checking for $ac_word" >&5
+> if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+> echo $ac_n "(cached) $ac_c" 1>&6
+> else
+> if test -n "$CC"; then
+> ac_cv_prog_CC="$CC" # Let the user override the test.
+> else
+> IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+> ac_dummy="$PATH"
+> for ac_dir in $ac_dummy; do
+> test -z "$ac_dir" && ac_dir=.
+> if test -f $ac_dir/$ac_word; then
+> ac_cv_prog_CC="cl"
+> break
+> fi
+> done
+> IFS="$ac_save_ifs"
+> fi
+> fi
+> CC="$ac_cv_prog_CC"
+> if test -n "$CC"; then
+> echo "$ac_t""$CC" 1>&6
+> else
+> echo "$ac_t""no" 1>&6
+> fi
+> ;;
+> esac
+> fi
+653c694
+< echo "configure:654: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+---
+> echo "configure:695: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+659c700
+< ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+---
+> ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+663c704,705
+< #line 664 "configure"
+---
+>
+> #line 706 "configure"
+664a707
+>
+667c710
+< if { (eval echo configure:668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+680a724,729
+> ac_ext=c
+> # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+> ac_cpp='$CPP $CPPFLAGS'
+> ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+> ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+> cross_compiling=$ac_cv_prog_cc_cross
+687c736
+< echo "configure:688: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+---
+> echo "configure:737: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+692c741
+< echo "configure:693: checking whether we are using GNU C" >&5
+---
+> echo "configure:742: checking whether we are using GNU C" >&5
+701c750
+< if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+---
+> if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+711a761,764
+> else
+> GCC=
+> fi
+>
+716c769
+< echo "configure:717: checking whether ${CC-cc} accepts -g" >&5
+---
+> echo "configure:770: checking whether ${CC-cc} accepts -g" >&5
+733a787
+> if test "$GCC" = yes; then
+736c790
+< CFLAGS="-O2"
+---
+> CFLAGS="-g"
+739,740c793,797
+< GCC=
+< test "${CFLAGS+set}" = set || CFLAGS="-g"
+---
+> if test "$GCC" = yes; then
+> CFLAGS="-O2"
+> else
+> CFLAGS=
+> fi
+744c801
+< echo "configure:745: checking for POSIXized ISC" >&5
+---
+> echo "configure:802: checking for POSIXized ISC" >&5
+808c865
+< if $ac_config_sub sun4 >/dev/null 2>&1; then :
+---
+> if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+813c870
+< echo "configure:814: checking host system type" >&5
+---
+> echo "configure:871: checking host system type" >&5
+820c877
+< if host_alias=`$ac_config_guess`; then :
+---
+> if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+827c884
+< host=`$ac_config_sub $host_alias`
+---
+> host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+834c891
+< echo "configure:835: checking target system type" >&5
+---
+> echo "configure:892: checking target system type" >&5
+845c902
+< target=`$ac_config_sub $target_alias`
+---
+> target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+852c909
+< echo "configure:853: checking build system type" >&5
+---
+> echo "configure:910: checking build system type" >&5
+863c920
+< build=`$ac_config_sub $build_alias`
+---
+> build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+874a932
+> mymakefile="Makefile"
+881a940
+> mymakefile="Makefile.aix"
+894a954,955
+> *nto-qnx*)
+> ;;
+907c968
+< echo "configure:908: checking for maximum signal specifier:" >&5
+---
+> echo "configure:969: checking for maximum signal specifier:" >&5
+914c975
+< #line 915 "configure"
+---
+> #line 976 "configure"
+921c982
+< if { (eval echo configure:922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+953c1014
+< echo "configure:954: checking for main in -l$mh_lib" >&5
+---
+> echo "configure:1015: checking for main in -l$mh_lib" >&5
+961c1022
+< #line 962 "configure"
+---
+> #line 1023 "configure"
+968c1029
+< if { (eval echo configure:969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:1030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+1002c1063
+< echo "configure:1003: checking for $ac_word" >&5
+---
+> echo "configure:1064: checking for $ac_word" >&5
+1009,1010c1070,1072
+< IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+< for ac_dir in $PATH; do
+---
+> IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+> ac_dummy="$PATH"
+> for ac_dir in $ac_dummy; do
+1034a1097
+> # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+1039c1102
+< echo "configure:1040: checking for a BSD compatible install" >&5
+---
+> echo "configure:1103: checking for a BSD compatible install" >&5
+1044c1107
+< IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+---
+> IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+1051c1114,1116
+< for ac_prog in ginstall installbsd scoinst install; do
+---
+> # Don't use installbsd from OSF since it installs stuff as root
+> # by default.
+> for ac_prog in ginstall scoinst install; do
+1056d1120
+< # OSF/1 installbsd also uses dspmsg, but is usable.
+1085a1150,1151
+> test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+>
+1089c1155
+< echo "configure:1090: checking whether ${MAKE-make} sets \${MAKE}" >&5
+---
+> echo "configure:1156: checking whether ${MAKE-make} sets \${MAKE}" >&5
+1117c1183
+< echo "configure:1118: checking how to run the C preprocessor" >&5
+---
+> echo "configure:1184: checking how to run the C preprocessor" >&5
+1132c1198
+< #line 1133 "configure"
+---
+> #line 1199 "configure"
+1138,1139c1204,1205
+< { (eval echo configure:1139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:1205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+1149c1215
+< #line 1150 "configure"
+---
+> #line 1216 "configure"
+1155,1156c1221,1239
+< { (eval echo configure:1156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+> if test -z "$ac_err"; then
+> :
+> else
+> echo "$ac_err" >&5
+> echo "configure: failed program was:" >&5
+> cat conftest.$ac_ext >&5
+> rm -rf conftest*
+> CPP="${CC-cc} -nologo -E"
+> cat > conftest.$ac_ext <<EOF
+> #line 1233 "configure"
+> #include "confdefs.h"
+> #include <assert.h>
+> Syntax Error
+> EOF
+> ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+> { (eval echo configure:1239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+1168a1252,1253
+> fi
+> rm -f conftest*
+1179c1264
+< echo "configure:1180: checking for System V IPC support" >&5
+---
+> echo "configure:1265: checking for System V IPC support" >&5
+1182c1267
+< echo "configure:1183: checking for sys/ipc.h" >&5
+---
+> echo "configure:1268: checking for sys/ipc.h" >&5
+1187c1272
+< #line 1188 "configure"
+---
+> #line 1273 "configure"
+1192,1193c1277,1278
+< { (eval echo configure:1193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:1278: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+1220c1305
+< echo "configure:1221: checking for ANSI C header files" >&5
+---
+> echo "configure:1306: checking for ANSI C header files" >&5
+1225c1310
+< #line 1226 "configure"
+---
+> #line 1311 "configure"
+1233,1234c1318,1319
+< { (eval echo configure:1234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:1319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+1250c1335
+< #line 1251 "configure"
+---
+> #line 1336 "configure"
+1268c1353
+< #line 1269 "configure"
+---
+> #line 1354 "configure"
+1289c1374
+< #line 1290 "configure"
+---
+> #line 1375 "configure"
+1300c1385
+< if { (eval echo configure:1301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+---
+> if { (eval echo configure:1386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+1339c1424
+< echo "configure:1340: checking for $ac_hdr" >&5
+---
+> echo "configure:1425: checking for $ac_hdr" >&5
+1344c1429
+< #line 1345 "configure"
+---
+> #line 1430 "configure"
+1349,1350c1434,1435
+< { (eval echo configure:1350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:1435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+1377c1462
+< echo "configure:1378: checking if compiler supports ANSI prototypes" >&5
+---
+> echo "configure:1463: checking if compiler supports ANSI prototypes" >&5
+1380c1465
+< #line 1381 "configure"
+---
+> #line 1466 "configure"
+1387c1472
+< if { (eval echo configure:1388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:1473: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+1405c1490
+< echo "configure:1406: checking for working const" >&5
+---
+> echo "configure:1491: checking for working const" >&5
+1410c1495
+< #line 1411 "configure"
+---
+> #line 1496 "configure"
+1459c1544
+< if { (eval echo configure:1460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:1545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+1480c1565
+< echo "configure:1481: checking for size_t" >&5
+---
+> echo "configure:1566: checking for size_t" >&5
+1485c1570
+< #line 1486 "configure"
+---
+> #line 1571 "configure"
+1494c1579
+< egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+---
+> egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+1513c1598
+< echo "configure:1514: checking whether time.h and sys/time.h may both be included" >&5
+---
+> echo "configure:1599: checking whether time.h and sys/time.h may both be included" >&5
+1518c1603
+< #line 1519 "configure"
+---
+> #line 1604 "configure"
+1527c1612
+< if { (eval echo configure:1528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:1613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+1548c1633
+< echo "configure:1549: checking whether struct tm is in sys/time.h or time.h" >&5
+---
+> echo "configure:1634: checking whether struct tm is in sys/time.h or time.h" >&5
+1553c1638
+< #line 1554 "configure"
+---
+> #line 1639 "configure"
+1561c1646
+< if { (eval echo configure:1562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:1647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+1586c1671
+< echo "configure:1587: checking for main in -l$mh_lib" >&5
+---
+> echo "configure:1672: checking for main in -l$mh_lib" >&5
+1594c1679
+< #line 1595 "configure"
+---
+> #line 1680 "configure"
+1601c1686
+< if { (eval echo configure:1602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:1687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+1633c1718
+< echo "configure:1634: checking whether $CC understand -c and -o together" >&5
+---
+> echo "configure:1719: checking whether $CC understand -c and -o together" >&5
+1644c1729
+< if { (eval echo configure:__oline__: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && test -f conftest.ooo && { (eval echo configure:1645: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+---
+> if { (eval echo configure:__oline__: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && test -f conftest.ooo && { (eval echo configure:1730: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+1647c1732
+< if { (eval echo configure:__oline__: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && test -f conftest.ooo && { (eval echo configure:1648: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+---
+> if { (eval echo configure:__oline__: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && test -f conftest.ooo && { (eval echo configure:1733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+1672c1757
+< echo "configure:1673: checking whether ${CC-cc} needs -traditional" >&5
+---
+> echo "configure:1758: checking whether ${CC-cc} needs -traditional" >&5
+1678c1763
+< #line 1679 "configure"
+---
+> #line 1764 "configure"
+1696c1781
+< #line 1697 "configure"
+---
+> #line 1782 "configure"
+1718c1803
+< echo "configure:1719: checking for 8-bit clean memcmp" >&5
+---
+> echo "configure:1804: checking for 8-bit clean memcmp" >&5
+1726c1811
+< #line 1727 "configure"
+---
+> #line 1812 "configure"
+1736c1821
+< if { (eval echo configure:1737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+---
+> if { (eval echo configure:1822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+1751c1836
+< test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
+---
+> test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
+1754c1839
+< echo "configure:1755: checking return type of signal handlers" >&5
+---
+> echo "configure:1840: checking return type of signal handlers" >&5
+1759c1844
+< #line 1760 "configure"
+---
+> #line 1845 "configure"
+1776c1861
+< if { (eval echo configure:1777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:1862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+1795c1880
+< echo "configure:1796: checking for vprintf" >&5
+---
+> echo "configure:1881: checking for vprintf" >&5
+1800c1885
+< #line 1801 "configure"
+---
+> #line 1886 "configure"
+1823c1908
+< if { (eval echo configure:1824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:1909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+1847c1932
+< echo "configure:1848: checking for _doprnt" >&5
+---
+> echo "configure:1933: checking for _doprnt" >&5
+1852c1937
+< #line 1853 "configure"
+---
+> #line 1938 "configure"
+1875c1960
+< if { (eval echo configure:1876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+1902c1987
+< echo "configure:1903: checking for $ac_func" >&5
+---
+> echo "configure:1988: checking for $ac_func" >&5
+1907c1992
+< #line 1908 "configure"
+---
+> #line 1993 "configure"
+1930c2015
+< if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+---
+> if { (eval echo configure:2016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+1957c2042
+< echo "configure:1958: checking for location of X headers" >&5
+---
+> echo "configure:2043: checking for location of X headers" >&5
+2052c2137
+< echo "configure:2053: checking for location of X libraries" >&5
+---
+> echo "configure:2138: checking for location of X libraries" >&5
+2187c2272
+< echo "configure:2188: checking for $ac_hdr" >&5
+---
+> echo "configure:2273: checking for $ac_hdr" >&5
+2192c2277
+< #line 2193 "configure"
+---
+> #line 2278 "configure"
+2197,2198c2282,2283
+< { (eval echo configure:2198: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+< ac_err=`grep -v '^ *+' conftest.out`
+---
+> { (eval echo configure:2283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+> ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+2232c2317
+< echo "configure:2233: checking for $mh_keydef in keysym.h" >&5
+---
+> echo "configure:2318: checking for $mh_keydef in keysym.h" >&5
+2235c2320
+< #line 2236 "configure"
+---
+> #line 2321 "configure"
+2242c2327
+< if { (eval echo configure:2243: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+---
+> if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+2316a2402,2424
+> # Check whether --with-threads or --without-threads was given.
+> if test "${with_threads+set}" = set; then
+> withval="$with_threads"
+> with_threads=$withval
+> else
+> with_threads=no
+> fi
+>
+> if test "$with_threads" = yes; then
+> cat >> confdefs.h <<\EOF
+> #define USE_THREADS 1
+> EOF
+>
+> x11type="thread"
+> else
+> cat >> confdefs.h <<\EOF
+> #define USE_PROCESSES 1
+> EOF
+>
+> x11type="process"
+> fi
+>
+>
+2397c2505
+< echo "configure:2398: checking compiler flags for a dynamic object" >&5
+---
+> echo "configure:2506: checking compiler flags for a dynamic object" >&5
+2400c2508
+< #line 2401 "configure"
+---
+> #line 2509 "configure"
+2412c2520
+< if { (eval echo configure:2413: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; }; then
+---
+> if { (eval echo configure:2521: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; }; then
+2500c2608
+< LD_RXLIB1="ld"
+---
+> LD_RXLIB1="ld -assert pure-text"
+2510c2618,2623
+< LD_RXLIB1="${CC} -Wl,-shared"
+---
+> LD_RXLIB1="${CC} -shared"
+> RXLIBPRE="lib"
+> RXLIBPST=".so"
+> ;;
+> *nto-qnx*)
+> LD_RXLIB1="${CC} -shared"
+2524c2637
+< #line 2525 "configure"
+---
+> #line 2638 "configure"
+2530c2643
+< if { (eval echo configure:2531: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; } && test -s conftest.o; then
+---
+> if { (eval echo configure:2644: \"$mh_compile\") 1>&5; (eval $mh_compile) 2>&5; } && test -s conftest.o; then
+2532c2645
+< if { (eval echo configure:2533: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then
+---
+> if { (eval echo configure:2646: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then
+2538c2651
+< if { (eval echo configure:2539: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then
+---
+> if { (eval echo configure:2652: \"$mh_dyn_link\") 1>&5; (eval $mh_dyn_link) 2>&5; } && test -s conftest.rxlib; then
+2606c2719
+< case `(ac_space=' '; set) 2>&1` in
+---
+> case `(ac_space=' '; set | grep ac_space) 2>&1` in
+2673c2786
+< echo "$CONFIG_STATUS generated by autoconf version 2.12"
+---
+> echo "$CONFIG_STATUS generated by autoconf version 2.13"
+2684c2797
+< trap 'rm -fr `echo "Makefile pdcurses/Makefile demos/Makefile panel/Makefile tools/Makefile saa/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+---
+> trap 'rm -fr `echo "Makefile pdcurses/$mymakefile demos/Makefile panel/Makefile tools/Makefile saa/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+2692a2806
+> s%@SHELL@%$SHELL%g
+2695a2810
+> s%@FFLAGS@%$FFLAGS%g
+2732a2848
+> s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+2739a2856
+> s%@x11type@%$x11type%g
+2802c2919
+< CONFIG_FILES=\${CONFIG_FILES-"Makefile pdcurses/Makefile demos/Makefile panel/Makefile tools/Makefile saa/Makefile"}
+---
+> CONFIG_FILES=\${CONFIG_FILES-"Makefile pdcurses/$mymakefile demos/Makefile panel/Makefile tools/Makefile saa/Makefile"}
+2979a3097,3105
+>
+> case "$target" in
+> *ibm-aix*)
+> mv pdcurses/Makefile.aix pdcurses/Makefile
+> echo "$ac_t""renaming pdcurses/Makefile.aix to pdcurses/Makefile" 1>&6
+> ;;
+> *)
+> ;;
+> esac
+
+Index: PDCurses/curses.h
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/curses.h,v
+retrieving revision 1.2
+retrieving revision 1.5
+diff -b -w -r1.2 -r1.5
+21c21
+< @Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @
+---
+> @Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @
+172c172
+< #define PDC_BUILD 2401
+---
+> #define PDC_BUILD 2501
+970a971,972
+> short line_color; /* Color of line attributes - default white */
+>
+1044,1045d1045
+< #define A_STANDOUT 0x00A00000L
+< #define A_BOLD 0x00800000L
+1048a1049,1050
+> # define A_BOLD 0x00800000L
+> # define A_RIGHTLINE 0x00010000L
+1050,1051d1051
+< #define A_INVIS 0x00080000L
+< #define A_PROTECT 0x00010000L
+1052a1053
+> # define A_INVIS 0x00080000L
+1056a1058,1062
+> # define A_LEFTLINE A_DIM
+> # define A_ITALIC A_INVIS
+> # define A_STANDOUT ( A_BOLD | A_REVERSE )
+> # define A_PROTECT ( A_UNDERLINE | A_LEFTLINE | A_RIGHTLINE )
+>
+1059c1065
+< #define A_NORMAL (chtype)0x0000 /* SysV */
+---
+> # define A_NORMAL (chtype)0x0000 /* System V */
+1499c1505,1507
+< # define KEY_MAX 0x222 /* Maximum curses key */
+---
+> # define KEY_SUP 0x223 /* Shifted up arrow */
+> # define KEY_SDOWN 0x224 /* Shifted down arrow */
+> # define KEY_MAX 0x224 /* Maximum curses key */
+1712a1721
+> int PDC_CDECL PDC_curs_set( int );
+1714a1724,1728
+> int PDC_CDECL PDC_wunderline( WINDOW*, int, bool );
+> int PDC_CDECL PDC_wleftline( WINDOW*, int, bool );
+> int PDC_CDECL PDC_wrightline( WINDOW*, int, bool );
+> int PDC_CDECL PDC_set_line_color( short );
+>
+1914a1929
+> int PDC_CDECL PDC_curs_set( /* int */ );
+1916a1932,1936
+> int PDC_CDECL PDC_wunderline( /* WINDOW*, int, bool */ );
+> int PDC_CDECL PDC_wleftline( /* WINDOW*, int, bool */ );
+> int PDC_CDECL PDC_wrightline( /* WINDOW*, int, bool */ );
+> int PDC_CDECL PDC_set_line_color( /* short */ );
+>
+1954a1975
+> #define getbkgd(w) ((w)->_bkgd)
+
+Index: PDCurses/curspriv.h
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/curspriv.h,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+21c21
+< @Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @
+---
+> @Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @
+370,371c370,371
+< int XCurses_display_cursor(int,int,int,int);
+< int XCurses_rawgetch(void);
+---
+> int XCurses_display_cursor(int,int,int,int,int);
+> int XCurses_rawgetch(int);
+385d384
+< void XCurses_set_title(char *);
+490,491c489,490
+< int XCurses_display_cursor( /*int,int,int,int*/ );
+< int XCurses_rawgetch( /*void*/ );
+---
+> int XCurses_display_cursor( /*int,int,int,int,int*/ );
+> int XCurses_rawgetch( /*int*/ );
+577a577
+> #define CURSES_DISPLAY_CURSOR 999986
+
+Index: PDCurses/demos/testcurs.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/demos/testcurs.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+36c36
+< char *rcsid_testcurs = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_testcurs = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+826c826,830
+< attrset(A_NORMAL);
+---
+> #ifdef XCURSES
+> attrset(A_PROTECT);
+> #else
+> attrset(A_BOLD);
+> #endif
+827a832
+> attrset(A_NORMAL);
+
+Index: PDCurses/doc/intro.man
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/doc/intro.man,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+366,376c366,376
+< *** slk_attroff slk
+< *** slk_attron slk
+< *** slk_attrset slk
+< *** slk_clear slk
+< *** slk_init slk
+< *** slk_label slk
+< *** slk_noutrefresh slk
+< *** slk_refresh slk
+< *** slk_restore slk
+< *** slk_set slk
+< *** slk_touch slk
+---
+> slk_attroff slk
+> slk_attron slk
+> slk_attrset slk
+> slk_clear slk
+> slk_init slk
+> slk_label slk
+> slk_noutrefresh slk
+> slk_refresh slk
+> slk_restore slk
+> slk_set slk
+> slk_touch slk
+497a498,499
+> PDC_get_input_fd pdckbd
+> PDC_get_key_modifiers pdckbd
+499a502
+> PDC_getclipboard pdcclip
+519a523,524
+> PDC_set_title pdcsetsc
+> PDC_setclipboard pdcclip
+
+Index: PDCurses/doc/x11.man
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/doc/x11.man,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -b -w -r1.1 -r1.3
+11,12c11,12
+< To use XCurses with an existing curses program, you need to make two
+< changes to your code.
+---
+> To use XCurses with an existing curses program, you need to make one
+> change to your code:
+14,25c14
+< The first is the addition of a definition of the program name as a
+< global char pointer. eg.
+<
+< #ifdef XCURSES
+< char *XCursesProgramName="sample";
+< #endif
+<
+< This name is used as the title of the X window, and for defining X
+< resources specific to your program.
+<
+< The second is a call to XCursesExit() just before exiting from your
+< program. eg.
+---
+> Call XCursesExit() just before exiting from your program. eg.
+35c24,26
+< When compiling your curses application, you need to add -DXCURSES.
+---
+> When compiling your curses application, you need to add -DXCURSES, and
+> include the <curses.h> or <xcurses.h> that comes with XCurses. You also
+> need to link your code with the XCurses library.
+47a39,45
+> To get the most out of XCurses in your curses application you need
+> to call Xinitscr() rather than initscr(). This allows you to pass
+> your program name and resource overrides to XCurses.
+>
+> The program name is used as the title of the X window, and for defining X
+> resources specific to your program.
+>
+70c68
+< boldFont
+---
+> italicFont
+82a81,88
+> colorBoldBlack
+> colorBoldRed
+> colorBoldGreen
+> colorBoldYellow
+> colorBoldBlue
+> colorBoldMagenta
+> colorBoldCyan
+> colorBoldWhite
+104c110
+< normalFont: the name of a fixed width font, used for A_NORMAL attribute
+---
+> normalFont: the name of a fixed width font
+107,110c113,116
+< boldFont: the name of a fixed width font, used for A_BOLD attribute
+< Default: 7x13bold
+<
+< NB. The dimensions of font and boldFont MUST be the same.
+---
+> italicFont: the name of a fixed width font to be used for
+> characters with A_ITALIC attributes. Must have the same
+> cell size as normalFont
+> Default: 7x13 (obviously not an italic font)
+125a132
+> Default: Black
+126a134
+> Default: red3
+127a136
+> Default: green3
+128a138
+> Default: yellow3
+129a140
+> Default: blue3
+130a142
+> Default: magenta3
+131a144
+> Default: cyan3
+133c146,162
+< Defaults are obvious :)
+---
+> Default: Grey
+> colorBoldBlack: the color of the COLOR_BLACK attribute combined with A_BOLD
+> Default: grey40
+> colorBoldRed the color of the COLOR_RED attribute combined with A_BOLD
+> Default: red1
+> colorBoldGreen the color of the COLOR_GREEN attribute combined with A_BOLD
+> Default: green1
+> colorBoldYellow the color of the COLOR_YELLOW attribute combined with A_BOLD
+> Default: yellow1
+> colorBoldBlue the color of the COLOR_BLUE attribute combined with A_BOLD
+> Default: blue1
+> colorBoldMagenta the color of the COLOR_MAGENTA attribute combined with A_BOLD
+> Default: magenta1
+> colorBoldCyan the color of the COLOR_CYAN attribute combined with A_BOLD
+> Default: cyan1
+> colorBoldWhite the color of the COLOR_WHITE attribute combined with A_BOLD
+> Default: White
+222d250
+< XCurses*boldFont: 9x13bold
+236,242c264,276
+< the.normalFont: 9x15
+< the.boldFont: 9x15bold
+< the.lines: 40
+< the.cols: 86
+< the.pointer: xterm
+< the.pointerForeColor: black
+< the.pointerBackColor: black
+---
+> ! resources with the * wildcard can be overridden by a parameter passed
+> ! to initscr()
+> !
+> the*normalFont: 9x15
+> the*lines: 40
+> the*cols: 86
+> the*pointer: xterm
+> the*pointerForeColor: white
+> the*pointerBackColor: black
+> !
+> ! resources with the . format can not be overridden by a parameter passed
+> ! to Xinitscr()
+> !
+243a278,283
+>
+> Resources may also be passed as a parameter to the Xinitscr() function.
+> The parameter is a string in the form of switches. eg. to set the color
+> "red" to "indianred", and the number of lines to 30, the string passed to
+> Xinitscr would be:
+> "-colorRed indianred -lines 30"
+
+Index: PDCurses/dos/pdckbd.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/dos/pdckbd.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+35c35
+< char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+56a57,62
+> /* Shifted Keypad */
+> 0xb0, KEY_SHOME, 0xb1, KEY_SUP, 0xb2, KEY_SPREVIOUS,
+> 0xb3, KEY_SLEFT, 0xb4, KEY_SRIGHT,
+> 0xb5, KEY_SEND, 0xb6, KEY_SDOWN, 0xb7, KEY_SNEXT,
+> 0xb8, KEY_SIC, 0xb9, KEY_SDC,
+>
+338a345,364
+> if (ascii == 0xe0 && scan == 0x47 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Home */
+> return ((int) (0xb0 << 8));
+> if (ascii == 0xe0 && scan == 0x48 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Up */
+> return ((int) (0xb1 << 8));
+> if (ascii == 0xe0 && scan == 0x49 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift PgUp */
+> return ((int) (0xb2 << 8));
+> if (ascii == 0xe0 && scan == 0x4b && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Left */
+> return ((int) (0xb3 << 8));
+> if (ascii == 0xe0 && scan == 0x4d && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Right */
+> return ((int) (0xb4 << 8));
+> if (ascii == 0xe0 && scan == 0x4f && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift End */
+> return ((int) (0xb5 << 8));
+> if (ascii == 0xe0 && scan == 0x50 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Down */
+> return ((int) (0xb6 << 8));
+> if (ascii == 0xe0 && scan == 0x51 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift PgDn */
+> return ((int) (0xb7 << 8));
+> if (ascii == 0xe0 && scan == 0x52 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Ins */
+> return ((int) (0xb8 << 8));
+> if (ascii == 0xe0 && scan == 0x53 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Del */
+> return ((int) (0xb9 << 8));
+
+Index: PDCurses/dos/wccdos.lrf
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/dos/wccdos.lrf,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+
+Index: PDCurses/dos/wccdos16.mak
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/dos/wccdos16.mak,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+
+Index: PDCurses/dos/wccdos4g.mak
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/dos/wccdos4g.mak,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+
+Index: PDCurses/install-sh
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/install-sh,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+4c4,16
+< # This comes from X11R5.
+---
+> # This comes from X11R5 (mit/util/scripts/install.sh).
+> #
+> # Copyright 1991 by the Massachusetts Institute of Technology
+> #
+> # Permission to use, copy, modify, distribute, and sell this software and its
+> # documentation for any purpose is hereby granted without fee, provided that
+> # the above copyright notice appear in all copies and that both that
+> # copyright notice and this permission notice appear in supporting
+> # documentation, and that the name of M.I.T. not be used in advertising or
+> # publicity pertaining to distribution of the software without specific,
+> # written prior permission. M.I.T. makes no representations about the
+> # suitability of this software for any purpose. It is provided "as is"
+> # without express or implied warranty.
+11,12c23,24
+< # from scratch.
+< #
+---
+> # from scratch. It can only install one file at a time, a restriction
+> # shared with many OS's install programs.
+17a30,32
+> #
+> # Modified 1 Feb 2000 MHES to cater for mkdir -p
+> #
+32c47
+< tranformbasename=""
+---
+> transformbasename=""
+40a56
+> mkdircmd="$mkdirprog -p"
+171c187
+< $mkdirprog "${pathcomp}"
+---
+> $mkdircmd "${pathcomp}"
+
+Index: PDCurses/os2/gccos2.mak
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/os2/gccos2.mak,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+18c18
+< PDCURSES_HOME =c:\curses
+---
+> PDCURSES_HOME =e:\curses
+50c50
+< DLLTARGET = pdcurses.dll
+---
+> DLLTARGET = curses.dll
+62c62
+< DLLCURSES = pdcurses_dll.lib
+---
+> DLLCURSES = curses.lib
+206,209c206,209
+< pdcurses.dll : $(DLLOBJS) $(PDCDLOS)
+< $(LINK) $(DLLFLAGS) -o pdcurses.dll $(DLLOBJS) $(PDCDLOS) $(osdir)\pdcurses.def
+< emximp -o pdcurses_dll.lib $(osdir)\pdcurses.def
+< emximp -o pdcurses_dll.a pdcurses_dll.lib
+---
+> curses.dll : $(DLLOBJS) $(PDCDLOS)
+> $(LINK) $(DLLFLAGS) -o curses.dll $(DLLOBJS) $(PDCDLOS) $(osdir)\pdcurses.def
+> emximp -o curses.lib $(osdir)\pdcurses.def
+> emximp -o curses.a curses.lib
+
+Index: PDCurses/os2/pdckbd.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/os2/pdckbd.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -b -w -r1.2 -r1.3
+36c36
+< char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+57a58,63
+> /* Shifted Keypad */
+> 0xb0, KEY_SHOME, 0xb1, KEY_SUP, 0xb2, KEY_SPREVIOUS,
+> 0xb3, KEY_SLEFT, 0xb4, KEY_SRIGHT,
+> 0xb5, KEY_SEND, 0xb6, KEY_SDOWN, 0xb7, KEY_SNEXT,
+> 0xb8, KEY_SIC, 0xb9, KEY_SDC,
+>
+358a365,384
+> if (ascii == 0xe0 && scan == 0x47 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Home */
+> return ((int) (0xb0 << 8));
+> if (ascii == 0xe0 && scan == 0x48 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Up */
+> return ((int) (0xb1 << 8));
+> if (ascii == 0xe0 && scan == 0x49 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift PgUp */
+> return ((int) (0xb2 << 8));
+> if (ascii == 0xe0 && scan == 0x4b && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Left */
+> return ((int) (0xb3 << 8));
+> if (ascii == 0xe0 && scan == 0x4d && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Right */
+> return ((int) (0xb4 << 8));
+> if (ascii == 0xe0 && scan == 0x4f && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift End */
+> return ((int) (0xb5 << 8));
+> if (ascii == 0xe0 && scan == 0x50 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Down */
+> return ((int) (0xb6 << 8));
+> if (ascii == 0xe0 && scan == 0x51 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift PgDn */
+> return ((int) (0xb7 << 8));
+> if (ascii == 0xe0 && scan == 0x52 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Ins */
+> return ((int) (0xb8 << 8));
+> if (ascii == 0xe0 && scan == 0x53 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Del */
+> return ((int) (0xb9 << 8));
+
+Index: PDCurses/os2/pdcurses.def
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/os2/pdcurses.def,v
+retrieving revision 1.2
+retrieving revision 1.4
+diff -b -w -r1.2 -r1.4
+1c1
+< LIBRARY PDCURSES
+---
+> LIBRARY CURSES
+95a96,98
+> slk_attroff
+> slk_attron
+> slk_attrset
+97a101
+> slk_label
+98a103,104
+> slk_refresh
+> slk_restore
+
+Index: PDCurses/pdcurses/Makefile.in
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/Makefile.in,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+13c13,14
+< x11dir = $(srcdir)/../x11
+---
+> x11basedir = $(srcdir)/../x11
+> x11dir = $(x11basedir)/@x11type@
+26c27
+< PDCURSES_X11_H =$(PDCURSES_HOME)/x11.h
+---
+> PDCURSES_X11_H =$(x11basedir)/pdcx11.h
+47c48
+< CPPFLAGS = -I$(INCDIR) -I$(srcdir)/.. -I.. @DEFS@ -DXCURSES @SYS_DEFS@
+---
+> CPPFLAGS = -I$(INCDIR) -I$(srcdir)/.. -I.. @DEFS@ -DXCURSES @SYS_DEFS@ -I$(x11basedir) -I$(x11dir)
+129a131,133
+> pdcx11.o \
+> x11curses.o \
+> x11common.o \
+185a190,192
+> pdcx11.sho \
+> x11curses.sho \
+> x11common.sho \
+311,312c318,319
+< pdcclip.o: $(x11dir)/pdcclip.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcclip.c
+---
+> pdcclip.o: $(x11basedir)/pdcclip.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcclip.c
+317,318c324,325
+< pdcdisp.o: $(x11dir)/pdcdisp.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcdisp.c
+---
+> pdcdisp.o: $(x11basedir)/pdcdisp.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcdisp.c
+320,321c327,328
+< pdcgetsc.o: $(x11dir)/pdcgetsc.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcgetsc.c
+---
+> pdcgetsc.o: $(x11basedir)/pdcgetsc.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcgetsc.c
+323,324c330,331
+< pdckbd.o: $(x11dir)/pdckbd.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdckbd.c
+---
+> pdckbd.o: $(x11basedir)/pdckbd.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdckbd.c
+326,327c333,334
+< pdcprint.o: $(x11dir)/pdcprint.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcprint.c
+---
+> pdcprint.o: $(x11basedir)/pdcprint.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcprint.c
+329,330c336,337
+< pdcscrn.o: $(x11dir)/pdcscrn.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcscrn.c
+---
+> pdcscrn.o: $(x11basedir)/pdcscrn.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcscrn.c
+332,333c339,340
+< pdcsetsc.o: $(x11dir)/pdcsetsc.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/pdcsetsc.c
+---
+> pdcsetsc.o: $(x11basedir)/pdcsetsc.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcsetsc.c
+341,342c348,355
+< x11.o: $(x11dir)/x11.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/x11.c
+---
+> pdcx11.o: $(x11basedir)/pdcx11.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/pdcx11.c
+>
+> ScrollBox.o: $(x11basedir)/ScrollBox.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/ScrollBox.c
+>
+> sb.o: $(x11basedir)/sb.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11basedir)/sb.c
+344,345c357,361
+< ScrollBox.o: $(x11dir)/ScrollBox.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/ScrollBox.c
+---
+> x11common.o: $(x11dir)/x11common.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11dir)/x11common.c
+>
+> x11.o: $(x11dir)/x11.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11dir)/x11.c
+347,348c363,364
+< sb.o: $(x11dir)/sb.c $(PDCURSES_HEADERS)
+< $(CC) $(CCFLAGS) -o $@ $(x11dir)/sb.c
+---
+> x11curses.o: $(x11dir)/x11curses.c $(PDCURSES_HEADERS)
+> $(CC) $(CCFLAGS) -o $@ $(x11dir)/x11curses.c
+574c590
+< pdcclip.sho: $(x11dir)/pdcclip.c $(PDCURSES_HEADERS)
+---
+> pdcclip.sho: $(x11basedir)/pdcclip.c $(PDCURSES_HEADERS)
+576c592
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcclip.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcclip.c
+586c602
+< pdcdisp.sho: $(x11dir)/pdcdisp.c $(PDCURSES_HEADERS)
+---
+> pdcdisp.sho: $(x11basedir)/pdcdisp.c $(PDCURSES_HEADERS)
+588c604
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcdisp.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcdisp.c
+592c608
+< pdcgetsc.sho: $(x11dir)/pdcgetsc.c $(PDCURSES_HEADERS)
+---
+> pdcgetsc.sho: $(x11basedir)/pdcgetsc.c $(PDCURSES_HEADERS)
+594c610
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcgetsc.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcgetsc.c
+598c614
+< pdckbd.sho: $(x11dir)/pdckbd.c $(PDCURSES_HEADERS)
+---
+> pdckbd.sho: $(x11basedir)/pdckbd.c $(PDCURSES_HEADERS)
+600c616
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdckbd.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdckbd.c
+604c620
+< pdcprint.sho: $(x11dir)/pdcprint.c $(PDCURSES_HEADERS)
+---
+> pdcprint.sho: $(x11basedir)/pdcprint.c $(PDCURSES_HEADERS)
+606c622
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcprint.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcprint.c
+610c626
+< pdcscrn.sho: $(x11dir)/pdcscrn.c $(PDCURSES_HEADERS)
+---
+> pdcscrn.sho: $(x11basedir)/pdcscrn.c $(PDCURSES_HEADERS)
+612c628
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcscrn.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcscrn.c
+616c632
+< pdcsetsc.sho: $(x11dir)/pdcsetsc.c $(PDCURSES_HEADERS)
+---
+> pdcsetsc.sho: $(x11basedir)/pdcsetsc.c $(PDCURSES_HEADERS)
+618c634
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/pdcsetsc.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcsetsc.c
+634c650
+< x11.sho: $(x11dir)/x11.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+---
+> pdcx11.sho: $(x11basedir)/pdcx11.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+636c652,658
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/x11.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/pdcx11.c
+> $(O2SHO)
+> $(SAVE2O)
+>
+> ScrollBox.sho: $(x11basedir)/ScrollBox.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+> $(O2SAVE)
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/ScrollBox.c
+640c662
+< ScrollBox.sho: $(x11dir)/ScrollBox.c $(PDCURSES_HEADERS) $(PDCURSES_X11_H)
+---
+> sb.sho: $(x11basedir)/sb.c $(PDCURSES_HEADERS)
+642c664,676
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/ScrollBox.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11basedir)/sb.c
+> $(O2SHO)
+> $(SAVE2O)
+>
+> x11common.sho: $(x11dir)/x11common.c $(PDCURSES_HEADERS)
+> $(O2SAVE)
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/x11common.c
+> $(O2SHO)
+> $(SAVE2O)
+>
+> x11.sho: $(x11dir)/x11.c $(PDCURSES_HEADERS)
+> $(O2SAVE)
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/x11.c
+646c680
+< sb.sho: $(x11dir)/sb.c $(PDCURSES_HEADERS)
+---
+> x11curses.sho: $(x11dir)/x11curses.c $(PDCURSES_HEADERS)
+648c682
+< $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/sb.c
+---
+> $(CC) $(CCFLAGS) $(DYN_COMP) $(CC2O) $(x11dir)/x11curses.c
+
+Index: PDCurses/pdcurses/border.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/border.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -b -w -r1.1 -r1.3
+33a34,36
+> #undef PDC_wunderline
+> #undef PDC_leftline
+> #undef PDC_rightline
+40c43
+< char *rcsid_border = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_border = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+56a60,62
+> int PDC_wunderline(WINDOW *win, int n, bool state);
+> int PDC_wleftline(WINDOW *win, int n, bool state);
+> int PDC_wrightline(WINDOW *win, int n, bool state);
+90c96
+< Portability X/Open BSD SYS V
+---
+> Portability X/Open BSD SYS V PDCurses
+92,98c98,107
+< border - - 4.0
+< wborder - - 4.0
+< box Y Y Y
+< hline - - 4.0
+< whline - - 4.0
+< vline - - 4.0
+< wvline - - 4.0
+---
+> border - - 4.0 Y
+> wborder - - 4.0 Y
+> box Y Y Y Y
+> hline - - 4.0 Y
+> whline - - 4.0 Y
+> vline - - 4.0 Y
+> wvline - - 4.0 Y
+> PDC_wunderline - - - Y
+> PDC_wleftline - - - Y
+> PDC_wrightline - - - Y
+415a425,565
+>
+> if (win->_firstch[n] == _NO_CHANGE)
+> {
+> win->_firstch[n] = win->_curx;
+> win->_lastch[n] = win->_curx;
+> }
+> else
+> {
+> win->_firstch[n] = min(win->_firstch[n], win->_curx);
+> win->_lastch[n] = max(win->_lastch[n], win->_curx);
+> }
+> }
+>
+> PDC_sync(win);
+> return (OK);
+> }
+> /***********************************************************************/
+> #ifdef HAVE_PROTO
+> int PDC_CDECL PDC_wunderline(WINDOW *win, int n, bool state)
+> #else
+> int PDC_CDECL PDC_wunderline(win,n,state)
+> WINDOW *win;
+> int n;
+> bool state;
+> #endif
+> /***********************************************************************/
+> {
+> int endpos;
+>
+> #ifdef PDCDEBUG
+> if (trace_on) PDC_debug("PDC_wunderline() - called\n");
+> #endif
+>
+> if (win == (WINDOW *)NULL)
+> return( ERR );
+>
+> if (n < 1)
+> return( ERR );
+>
+> endpos = min(win->_cury + n -1, win->_maxy);
+>
+> for (n = win->_cury; n <= endpos; n++)
+> {
+> if ( state )
+> win->_y[n][win->_curx] |= A_UNDERLINE; /* Turn ON A_UNDERLINE */
+> else
+> win->_y[n][win->_curx] |= ~A_UNDERLINE; /* Turn OFF A_UNDERLINE */
+>
+> if (win->_firstch[n] == _NO_CHANGE)
+> {
+> win->_firstch[n] = win->_curx;
+> win->_lastch[n] = win->_curx;
+> }
+> else
+> {
+> win->_firstch[n] = min(win->_firstch[n], win->_curx);
+> win->_lastch[n] = max(win->_lastch[n], win->_curx);
+> }
+> }
+>
+> PDC_sync(win);
+> return (OK);
+> }
+> /***********************************************************************/
+> #ifdef HAVE_PROTO
+> int PDC_CDECL PDC_wleftline(WINDOW *win, int n, bool state)
+> #else
+> int PDC_CDECL PDC_wleftline(win,n,state)
+> WINDOW *win;
+> int n;
+> bool state;
+> #endif
+> /***********************************************************************/
+> {
+> int endpos;
+>
+> #ifdef PDCDEBUG
+> if (trace_on) PDC_debug("PDC_wleftline() - called\n");
+> #endif
+>
+> if (win == (WINDOW *)NULL)
+> return( ERR );
+>
+> if (n < 1)
+> return( ERR );
+>
+> endpos = min(win->_cury + n -1, win->_maxy);
+>
+> for (n = win->_cury; n <= endpos; n++)
+> {
+> if ( state )
+> win->_y[n][win->_curx] |= A_LEFTLINE; /* Turn ON A_LEFTLINE */
+> else
+> win->_y[n][win->_curx] |= ~A_LEFTLINE; /* Turn OFF A_LEFTLINE */
+>
+> if (win->_firstch[n] == _NO_CHANGE)
+> {
+> win->_firstch[n] = win->_curx;
+> win->_lastch[n] = win->_curx;
+> }
+> else
+> {
+> win->_firstch[n] = min(win->_firstch[n], win->_curx);
+> win->_lastch[n] = max(win->_lastch[n], win->_curx);
+> }
+> }
+>
+> PDC_sync(win);
+> return (OK);
+> }
+> /***********************************************************************/
+> #ifdef HAVE_PROTO
+> int PDC_CDECL PDC_wrightline(WINDOW *win, int n, bool state)
+> #else
+> int PDC_CDECL PDC_wrightline(win,n,state)
+> WINDOW *win;
+> int n;
+> bool state;
+> #endif
+> /***********************************************************************/
+> {
+> int endpos;
+>
+> #ifdef PDCDEBUG
+> if (trace_on) PDC_debug("PDC_wrightline() - called\n");
+> #endif
+>
+> if (win == (WINDOW *)NULL)
+> return( ERR );
+>
+> if (n < 1)
+> return( ERR );
+>
+> endpos = min(win->_cury + n -1, win->_maxy);
+>
+> for (n = win->_cury; n <= endpos; n++)
+> {
+> if ( state )
+> win->_y[n][win->_curx] |= A_RIGHTLINE; /* Turn ON A_RIGHTLINE */
+> else
+> win->_y[n][win->_curx] |= ~A_RIGHTLINE; /* Turn OFF A_RIGHTLINE */
+
+Index: PDCurses/pdcurses/color.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/color.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+38a39
+> #undef PDC_set_line_color
+51c52
+< char *rcsid_color = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_color = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+65a67
+> int PDC_set_line_color(short color);
+101a104,107
+> PDC_set_line_color() is used to set the color, globally, for the
+> color of the lines drawn for the attributes: A_UNDERLINE, A_OVERLINE,
+> A_LEFTLINE and A_RIGHTLINE. PDCurses only feature.
+>
+111c117
+< Portability X/Open BSD SYS V
+---
+> Portability X/Open BSD SYS V PDCurses
+119a126
+> PDC_set_line_color - - - Y
+349a357,371
+> return(OK);
+> }
+> /***********************************************************************/
+> #ifdef HAVE_PROTO
+> int PDC_CDECL PDC_set_line_color(short color)
+> #else
+> int PDC_CDECL PDC_set_line_color(color)
+> short color;
+> #endif
+> /***********************************************************************/
+> {
+>
+> if (color >= COLORS || color < 0)
+> return(ERR);
+> SP->line_color = color;
+
+Index: PDCurses/pdcurses/getch.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/getch.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+42c42
+< char *rcsid_getch = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_getch = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+163c163
+< int waitingtenths = SP->delaytenths;
+---
+> int waitingtenths = 0;
+171a172,174
+> if ( SP->delaytenths )
+> waitingtenths = 10*SP->delaytenths;
+>
+282c285,286
+< napms(100);
+---
+> napms(10);
+> continue;
+304c308
+< if (SP->raw_inp || SP->cbreak)
+---
+> if ( (SP->raw_inp || SP->cbreak) )
+
+Index: PDCurses/pdcurses/initscr.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/initscr.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+64c64
+< char *rcsid_initscr = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_initscr = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+324,325c324,325
+< ACS_SBSS = (chtype)21|A_ALTCHARSET;
+< ACS_SSSB = (chtype)22|A_ALTCHARSET;
+---
+> ACS_SBSS = (chtype)22|A_ALTCHARSET;
+> ACS_SSSB = (chtype)21|A_ALTCHARSET;
+
+Index: PDCurses/pdcurses/util.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/pdcurses/util.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -b -w -r1.1 -r1.3
+68c68
+< char *rcsid_util = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_util = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+237c237
+< "KEY_RESIZE"
+---
+> "KEY_RESIZE", "KEY_SUP", "KEY_SDOWN"
+352c352
+< (void)XCurses_rawgetch();
+---
+> (void)XCurses_rawgetch(0);
+
+Index: PDCurses/win32/curses.def
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/win32/curses.def,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+2a3,5
+> ; used for Win32 port as well as AIX port
+> ; each entry point MUST be on a seperate line prefixed
+> ; by EXPORTS in column 1
+
+Index: PDCurses/win32/pdckbd.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/win32/pdckbd.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+28c28
+< char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+318c318
+< {KEY_UP, SHF_UP, CTL_UP, ALT_UP }, /* 38 */
+---
+> {KEY_UP, KEY_SUP, CTL_UP, ALT_UP }, /* 38 */
+320,322c320,322
+< {KEY_DOWN, SHF_DOWN, CTL_DOWN, ALT_DOWN }, /* 40 */
+< {KEY_IC, SHF_IC, CTL_INS, ALT_INS }, /* 45 */
+< {KEY_DC, SHF_DC, CTL_DEL, ALT_DEL }, /* 46 */
+---
+> {KEY_DOWN, KEY_SDOWN, CTL_DOWN, ALT_DOWN }, /* 40 */
+> {KEY_IC, KEY_SIC, CTL_INS, ALT_INS }, /* 45 */
+> {KEY_DC, KEY_SDC, CTL_DEL, ALT_DEL }, /* 46 */
+
+Index: PDCurses/x11/README
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/README,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+12c12
+< The files in this directory are copyright Mark Hessling 1995-1999.
+---
+> The files in this directory are copyright Mark Hessling 1995-2000.
+26a27,39
+>
+> Structure
+> ---------
+>
+> x11.c - contains functions that are X11 specific functions that are
+> used by both the process and thread implementations
+> x11.h - #defines and includes for the X11 process/thread
+> x11_proc.c - contains functions that are used by the X11 (child) process
+> in the process implementation
+> curses_proc.c - contains functions that are used by the curses (parent)
+> process in the process implementation
+> x11_thread.c -
+> curses_thread.c -
+
+Index: PDCurses/x11/ScrollBox.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/ScrollBox.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+124c124
+< Widget main, vscroll, hscroll;
+---
+> Widget wmain, vscroll, hscroll;
+130a131
+> #if 0
+132a134
+> #endif
+151c153
+< main = sbw->composite.children[0];
+---
+> wmain = sbw->composite.children[0];
+161c163
+< (2 * main->core.border_width);
+---
+> (2 * wmain->core.border_width);
+165c167
+< (2 * main->core.border_width);
+---
+> (2 * wmain->core.border_width);
+167c169
+< vx = main->core.x + mw + sbw->scrollBox.h_space + main->core.border_width + vscroll->core.border_width;
+---
+> vx = wmain->core.x + mw + sbw->scrollBox.h_space + wmain->core.border_width + vscroll->core.border_width;
+169c171
+< hy = main->core.y + mh + sbw->scrollBox.v_space + main->core.border_width + hscroll->core.border_width;
+---
+> hy = wmain->core.y + mh + sbw->scrollBox.v_space + wmain->core.border_width + hscroll->core.border_width;
+175c177
+< XtResizeWidget(main, mw, mh, 1);
+---
+> XtResizeWidget(wmain, mw, mh, 1);
+177c179
+< tw = main->core.width + (2 * sbw->scrollBox.h_space) +
+---
+> tw = wmain->core.width + (2 * sbw->scrollBox.h_space) +
+179c181
+< (2 * main->core.border_width);
+---
+> (2 * wmain->core.border_width);
+181c183
+< th = main->core.height + (2 * sbw->scrollBox.v_space) +
+---
+> th = wmain->core.height + (2 * sbw->scrollBox.v_space) +
+183c185
+< (2 * main->core.border_width);
+---
+> (2 * wmain->core.border_width);
+185,186c187,188
+< hw = mw = main->core.width;
+< vh = mh = main->core.height;
+---
+> hw = mw = wmain->core.width;
+> vh = mh = wmain->core.height;
+188c190
+< vx = main->core.x + mw + sbw->scrollBox.h_space + main->core.border_width + vscroll->core.border_width;
+---
+> vx = wmain->core.x + mw + sbw->scrollBox.h_space + wmain->core.border_width + vscroll->core.border_width;
+190c192
+< hy = main->core.y + mh + sbw->scrollBox.v_space + main->core.border_width + hscroll->core.border_width;
+---
+> hy = wmain->core.y + mh + sbw->scrollBox.v_space + wmain->core.border_width + hscroll->core.border_width;
+
+Index: PDCurses/x11/pdcdisp.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/pdcdisp.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+37c37
+< char *rcsid_PDCdisp = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCdisp = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+201c201
+< XCurses_display_cursor(SP->cursrow,SP->curscol,row,col);
+---
+> XCurses_display_cursor(SP->cursrow,SP->curscol,row,col,SP->visibility);
+
+Index: PDCurses/x11/pdckbd.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/pdckbd.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+28c28
+< char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCkbd = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+243c243
+< c = XCurses_rawgetch();
+---
+> c = XCurses_rawgetch( SP->delaytenths );
+
+Index: PDCurses/x11/pdcscrn.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/pdcscrn.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+27c27
+< char *rcsid_PDCscrn = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCscrn = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+179a180
+> internal->line_color = COLOR_WHITE;
+
+Index: PDCurses/x11/pdcsetsc.c
+===================================================================
+RCS file: /usr/local/cvsroot/PDCurses/x11/pdcsetsc.c,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -b -w -r1.1 -r1.2
+27c27
+< char *rcsid_PDCsetsc = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+---
+> char *rcsid_PDCsetsc = "@Id: case16.pat,v 1.1 2001/04/22 23:30:04 tom Exp @";
+123c123
+< int ret_vis;
+---
+> int ret_vis = SP->visibility;
+129c129,130
+< ret_vis = SP->visibility;
+---
+> if ( visibility != -1 )
+> {
+131,132c132,133
+<
+< XCurses_display_cursor(SP->cursrow,SP->curscol,SP->cursrow,SP->curscol);
+---
+> }
+> XCurses_display_cursor(SP->cursrow,SP->curscol,SP->cursrow,SP->curscol,visibility);
diff --git a/patch_cmds/diffstat/testing/case16.ref b/patch_cmds/diffstat/testing/case16.ref
new file mode 100644
index 0000000..222db1b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++------------------
+ curses.h | 37 +++-
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 +++
+ install-sh | 26 ++-
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 +++
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 ++++++++++-----
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 +
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16R.ref b/patch_cmds/diffstat/testing/case16R.ref
new file mode 100644
index 0000000..4325241
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16R.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 +++-----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++----------------------------------
+ curses.h | 37 +---
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 +--
+ doc/x11.man | 100 +++----------
+ dos/pdckbd.c | 28 ---
+ dos/wccdos.lrf | 26 ---
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 ---
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 +++++----------
+ pdcurses/border.c | 168 +---------------------
+ pdcurses/color.c | 26 ---
+ pdcurses/getch.c | 12 -
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 -
+ x11/ScrollBox.c | 32 +---
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 327 insertions(+), 847 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16Rp0.ref b/patch_cmds/diffstat/testing/case16Rp0.ref
new file mode 100644
index 0000000..4054d02
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16Rp0.ref
@@ -0,0 +1,30 @@
+ PDCurses/Makefile.in | 61 ++----
+ PDCurses/README | 5
+ PDCurses/aclocal.m4 | 7
+ PDCurses/config.h.in | 6
+ PDCurses/configure | 386 ++++++++++++++----------------------------
+ PDCurses/curses.h | 37 ----
+ PDCurses/curspriv.h | 12 -
+ PDCurses/demos/testcurs.c | 9
+ PDCurses/doc/intro.man | 27 +-
+ PDCurses/doc/x11.man | 100 +++-------
+ PDCurses/dos/pdckbd.c | 28 ---
+ PDCurses/dos/wccdos.lrf | 26 --
+ PDCurses/os2/gccos2.mak | 14 -
+ PDCurses/os2/pdckbd.c | 28 ---
+ PDCurses/os2/pdcurses.def | 8
+ PDCurses/pdcurses/Makefile.in | 120 ++++---------
+ PDCurses/pdcurses/border.c | 168 ------------------
+ PDCurses/pdcurses/color.c | 26 --
+ PDCurses/pdcurses/getch.c | 12 -
+ PDCurses/pdcurses/initscr.c | 6
+ PDCurses/pdcurses/util.c | 6
+ PDCurses/win32/curses.def | 3
+ PDCurses/win32/pdckbd.c | 10 -
+ PDCurses/x11/README | 15 -
+ PDCurses/x11/ScrollBox.c | 32 +--
+ PDCurses/x11/pdcdisp.c | 4
+ PDCurses/x11/pdckbd.c | 4
+ PDCurses/x11/pdcscrn.c | 3
+ PDCurses/x11/pdcsetsc.c | 11 -
+ 29 files changed, 327 insertions(+), 847 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16b.ref b/patch_cmds/diffstat/testing/case16b.ref
new file mode 100644
index 0000000..222db1b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16b.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++------------------
+ curses.h | 37 +++-
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 +++
+ install-sh | 26 ++-
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 +++
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 ++++++++++-----
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 +
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16f0.ref b/patch_cmds/diffstat/testing/case16f0.ref
new file mode 100644
index 0000000..e18c43a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16f0.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 34 + 27 - 0 !
+ README | 5 3 + 2 - 0 !
+ aclocal.m4 | 7 6 + 1 - 0 !
+ config.h.in | 6 6 + 0 - 0 !
+ configure | 386 256 + 130 - 0 !
+ curses.h | 37 29 + 8 - 0 !
+ curspriv.h | 12 6 + 6 - 0 !
+ demos/testcurs.c | 9 7 + 2 - 0 !
+ doc/intro.man | 27 16 + 11 - 0 !
+ doc/x11.man | 100 70 + 30 - 0 !
+ dos/pdckbd.c | 28 27 + 1 - 0 !
+ install-sh | 26 21 + 5 - 0 !
+ os2/gccos2.mak | 14 7 + 7 - 0 !
+ os2/pdckbd.c | 28 27 + 1 - 0 !
+ os2/pdcurses.def | 8 7 + 1 - 0 !
+ pdcurses/Makefile.in | 120 77 + 43 - 0 !
+ pdcurses/border.c | 168 159 + 9 - 0 !
+ pdcurses/color.c | 26 24 + 2 - 0 !
+ pdcurses/getch.c | 12 8 + 4 - 0 !
+ pdcurses/initscr.c | 6 3 + 3 - 0 !
+ pdcurses/util.c | 6 3 + 3 - 0 !
+ win32/curses.def | 3 3 + 0 - 0 !
+ win32/pdckbd.c | 10 5 + 5 - 0 !
+ x11/README | 15 14 + 1 - 0 !
+ x11/ScrollBox.c | 32 17 + 15 - 0 !
+ x11/pdcdisp.c | 4 2 + 2 - 0 !
+ x11/pdckbd.c | 4 2 + 2 - 0 !
+ x11/pdcscrn.c | 3 2 + 1 - 0 !
+ x11/pdcsetsc.c | 11 6 + 5 - 0 !
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16k.ref b/patch_cmds/diffstat/testing/case16k.ref
new file mode 100644
index 0000000..222db1b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16k.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++------------------
+ curses.h | 37 +++-
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 +++
+ install-sh | 26 ++-
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 +++
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 ++++++++++-----
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 +
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16p1.ref b/patch_cmds/diffstat/testing/case16p1.ref
new file mode 100644
index 0000000..222db1b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16p1.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++------------------
+ curses.h | 37 +++-
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 +++
+ install-sh | 26 ++-
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 +++
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 ++++++++++-----
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 +
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16p9.ref b/patch_cmds/diffstat/testing/case16p9.ref
new file mode 100644
index 0000000..818a0de
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16p9.ref
@@ -0,0 +1,25 @@
+ Makefile.in | 181 ++++++++++++++++-----------
+ README | 20 ++-
+ ScrollBox.c | 32 ++--
+ aclocal.m4 | 7 -
+ border.c | 168 ++++++++++++++++++++++++-
+ color.c | 26 +++
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++++++++--------------------
+ curses.def | 3
+ curses.h | 37 ++++-
+ curspriv.h | 12 -
+ gccos2.mak | 14 +-
+ getch.c | 12 +
+ initscr.c | 6
+ install-sh | 26 +++
+ intro.man | 27 ++--
+ pdcdisp.c | 4
+ pdckbd.c | 70 +++++++++-
+ pdcscrn.c | 3
+ pdcsetsc.c | 11 -
+ pdcurses.def | 8 +
+ testcurs.c | 9 +
+ util.c | 6
+ x11.man | 100 ++++++++++-----
+ 24 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16r1.ref b/patch_cmds/diffstat/testing/case16r1.ref
new file mode 100644
index 0000000..cfa76c0
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16r1.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7 +
+ config.h.in | 6 +
+ configure | 386 ++++++++++++++++++++++++++++++++++-----------------
+ curses.h | 37 ++++-
+ curspriv.h | 12 +-
+ demos/testcurs.c | 9 +
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 ++++
+ install-sh | 26 +++-
+ os2/gccos2.mak | 14 +-
+ os2/pdckbd.c | 28 ++++
+ os2/pdcurses.def | 8 +
+ pdcurses/Makefile.in | 120 ++++++++++------
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +-
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 +-
+ x11/README | 15 ++
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 +-
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16r2.ref b/patch_cmds/diffstat/testing/case16r2.ref
new file mode 100644
index 0000000..4c56b61
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16r2.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5 +
+ aclocal.m4 | 7 +
+ config.h.in | 6 +
+ configure | 386 ++++++++++++++++++++++++++++++++++-----------------
+ curses.h | 37 ++++-
+ curspriv.h | 12 +-
+ demos/testcurs.c | 9 +
+ doc/intro.man | 27 ++--
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 ++++
+ install-sh | 26 +++
+ os2/gccos2.mak | 14 +-
+ os2/pdckbd.c | 28 ++++
+ os2/pdcurses.def | 8 +
+ pdcurses/Makefile.in | 120 ++++++++++------
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +-
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3 +
+ win32/pdckbd.c | 10
+ x11/README | 15 ++
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3 +
+ x11/pdcsetsc.c | 11 +
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case16u.ref b/patch_cmds/diffstat/testing/case16u.ref
new file mode 100644
index 0000000..222db1b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case16u.ref
@@ -0,0 +1,30 @@
+ Makefile.in | 61 ++++----
+ README | 5
+ aclocal.m4 | 7
+ config.h.in | 6
+ configure | 386 +++++++++++++++++++++++++++++++++------------------
+ curses.h | 37 +++-
+ curspriv.h | 12 -
+ demos/testcurs.c | 9 -
+ doc/intro.man | 27 ++-
+ doc/x11.man | 100 +++++++++----
+ dos/pdckbd.c | 28 +++
+ install-sh | 26 ++-
+ os2/gccos2.mak | 14 -
+ os2/pdckbd.c | 28 +++
+ os2/pdcurses.def | 8 -
+ pdcurses/Makefile.in | 120 ++++++++++-----
+ pdcurses/border.c | 168 +++++++++++++++++++++-
+ pdcurses/color.c | 26 +++
+ pdcurses/getch.c | 12 +
+ pdcurses/initscr.c | 6
+ pdcurses/util.c | 6
+ win32/curses.def | 3
+ win32/pdckbd.c | 10 -
+ x11/README | 15 +
+ x11/ScrollBox.c | 32 ++--
+ x11/pdcdisp.c | 4
+ x11/pdckbd.c | 4
+ x11/pdcscrn.c | 3
+ x11/pdcsetsc.c | 11 -
+ 29 files changed, 847 insertions(+), 327 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case17.pat b/patch_cmds/diffstat/testing/case17.pat
new file mode 100644
index 0000000..3149deb
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17.pat
@@ -0,0 +1,115 @@
+--- linux/kernel/sched.c.user 2002-08-08 11:52:55.000000000 -0300
++++ linux/kernel/sched.c 2002-08-08 20:44:01.000000000 -0300
+@@ -124,6 +124,9 @@
+ # define finish_arch_switch(rq) spin_unlock_irq(&(rq)->lock)
+ #endif
+
++/* Per-user fair scheduler on/off switch. */
++int fairsched_enabled;
++
+ /*
+ * task_rq_lock - lock the runqueue a given task resides on and disable
+ * interrupts. Note the ordering: we can safely lookup the task_rq without
+@@ -167,6 +170,44 @@
+ p->array = array;
+ }
+
++/*
++ * Modify the per task bonus with a bonus based on the CPU usage
++ * of all the user's tasks combined. This won't just redistribute
++ * the CPU more fairly between the users, it will also make the
++ * interactive tasks of a CPU-hogging user "feel slower", giving
++ * that user a good reason to not hog the system ;)
++ */
++static inline int peruser_bonus(int bonus, struct user_struct * user)
++{
++ int userbonus, i, max_cpu;
++
++ /*
++ * Decay the per-user cpu usage once for every STARVATION_LIMIT
++ * interval. We round up the number of intervals so we won't
++ * have to recalculate again immediately and always increment
++ * user->cpu_lastcalc with a multiple of STARVATION_LIMIT so
++ * we don't have different decay rates for users with different
++ * wakeup patterns.
++ */
++ if (time_after(jiffies, user->cpu_lastcalc + STARVATION_LIMIT)) {
++ i = ((jiffies - user->cpu_lastcalc) / STARVATION_LIMIT) + 1;
++ user->cpu_lastcalc += i * STARVATION_LIMIT;
++ user->cpu_time >>= i;
++ }
++
++ /*
++ * 0% cpu usage -> + BONUS
++ * 50% cpu usage -> 0
++ * 100% cpu usage -> - BONUS
++ */
++ max_cpu = smp_num_cpus * STARVATION_LIMIT * 3 / 4;
++
++ /**** FIXME ****/
++ userbonus = max_cpu - (user->cpu_time + 1)
++
++ return (bonus + userbonus) / 2;
++}
++
+ static inline int effective_prio(task_t *p)
+ {
+ int bonus, prio;
+@@ -185,6 +226,9 @@
+ bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/MAX_SLEEP_AVG/100 -
+ MAX_USER_PRIO*PRIO_BONUS_RATIO/100/2;
+
++ if (fairsched_enabled)
++ bonus = peruser_bonus(bonus, p->user);
++
+ prio = p->static_prio - bonus;
+ if (prio < MAX_RT_PRIO)
+ prio = MAX_RT_PRIO;
+@@ -673,6 +717,9 @@
+ kstat.per_cpu_user[cpu] += user_tick;
+ kstat.per_cpu_system[cpu] += system;
+
++ if (fairsched_enabled && p->user)
++ p->user->cpu_time++;
++
+ /* Task might have expired already, but not scheduled off yet */
+ if (p->array != rq->active) {
+ set_tsk_need_resched(p);
+--- linux/kernel/user.c.user 2002-08-08 19:30:05.000000000 -0300
++++ linux/kernel/user.c 2002-08-08 19:40:43.000000000 -0300
+@@ -101,6 +101,8 @@
+ atomic_set(&new->__count, 1);
+ atomic_set(&new->processes, 0);
+ atomic_set(&new->files, 0);
++ new->cpu_time = 0;
++ new->cpu_lastcalc = jiffies;
+
+ /*
+ * Before adding this, check whether we raced
+--- linux/include/linux/sched.h.user 2002-08-08 11:53:28.000000000 -0300
++++ linux/include/linux/sched.h 2002-08-08 20:25:13.000000000 -0300
+@@ -80,6 +80,9 @@
+ extern unsigned long nr_running(void);
+ extern unsigned long nr_uninterruptible(void);
+
++/* Per-user fair scheduler on/off switch */
++extern int fairsched_enabled;
++
+ //#include <linux/fs.h>
+ #include <linux/time.h>
+ #include <linux/param.h>
+@@ -288,6 +291,14 @@
+ atomic_t processes; /* How many processes does this user have? */
+ atomic_t files; /* How many open files does this user have? */
+
++ /*
++ * Fair scheduler CPU usage counting. If the per-user fair scheduler
++ * is enabled, we keep track of how much CPU time this user is using,
++ * using a floating average.
++ */
++ unsigned long cpu_time;
++ unsigned long cpu_lastcalc;
++
+ /* Hash table maintenance information */
+ struct user_struct *next, **pprev;
+ uid_t uid;
diff --git a/patch_cmds/diffstat/testing/case17.ref b/patch_cmds/diffstat/testing/case17.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17R.ref b/patch_cmds/diffstat/testing/case17R.ref
new file mode 100644
index 0000000..e9d1af7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17R.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h.user | 11 ----------
+ kernel/sched.c.user | 47 ---------------------------------------------
+ kernel/user.c.user | 2 -
+ 3 files changed, 60 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case17Rp0.ref b/patch_cmds/diffstat/testing/case17Rp0.ref
new file mode 100644
index 0000000..d1f5725
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17Rp0.ref
@@ -0,0 +1,4 @@
+ linux/include/linux/sched.h.user | 11 ---------
+ linux/kernel/sched.c.user | 47 ---------------------------------------
+ linux/kernel/user.c.user | 2 -
+ 3 files changed, 60 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case17b.ref b/patch_cmds/diffstat/testing/case17b.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17b.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17f0.ref b/patch_cmds/diffstat/testing/case17f0.ref
new file mode 100644
index 0000000..c5fc68e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17f0.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 11 + 0 - 0 !
+ kernel/sched.c | 47 47 + 0 - 0 !
+ kernel/user.c | 2 2 + 0 - 0 !
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17k.ref b/patch_cmds/diffstat/testing/case17k.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17k.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17p1.ref b/patch_cmds/diffstat/testing/case17p1.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17p1.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17p9.ref b/patch_cmds/diffstat/testing/case17p9.ref
new file mode 100644
index 0000000..8fab6ab
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17p9.ref
@@ -0,0 +1,4 @@
+ sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ sched.h | 11 +++++++++++
+ user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17r1.ref b/patch_cmds/diffstat/testing/case17r1.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17r1.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17r2.ref b/patch_cmds/diffstat/testing/case17r2.ref
new file mode 100644
index 0000000..2d08606
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17r2.ref
@@ -0,0 +1,4 @@
+ include/linux/sched.h | 11 +++++++++++
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case17u.ref b/patch_cmds/diffstat/testing/case17u.ref
new file mode 100644
index 0000000..c832b99
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case17u.ref
@@ -0,0 +1,4 @@
+ kernel/sched.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/user.c | 2 ++
+ include/linux/sched.h | 11 +++++++++++
+ 3 files changed, 60 insertions(+)
diff --git a/patch_cmds/diffstat/testing/case18.pat b/patch_cmds/diffstat/testing/case18.pat
new file mode 100644
index 0000000..42111ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18.pat
@@ -0,0 +1,7 @@
+diff -urN tst/foo tst.new/foo
+--- tst/foo 2002-11-27 17:21:54.000000000 +0200
++++ tst.new/foo 2002-11-27 17:22:00.000000000 +0200
+@@ -1,3 +1,2 @@
+ lalala
+--- ALWAYS!</b>:
+ foobar
diff --git a/patch_cmds/diffstat/testing/case18.ref b/patch_cmds/diffstat/testing/case18.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18R.ref b/patch_cmds/diffstat/testing/case18R.ref
new file mode 100644
index 0000000..14aa1f7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18R.ref
@@ -0,0 +1,2 @@
+ foo | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case18Rp0.ref b/patch_cmds/diffstat/testing/case18Rp0.ref
new file mode 100644
index 0000000..e98fad1
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18Rp0.ref
@@ -0,0 +1,2 @@
+ tst/foo | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/patch_cmds/diffstat/testing/case18b.ref b/patch_cmds/diffstat/testing/case18b.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18b.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18f0.ref b/patch_cmds/diffstat/testing/case18f0.ref
new file mode 100644
index 0000000..ad90571
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18f0.ref
@@ -0,0 +1,2 @@
+ foo | 1 0 + 1 - 0 !
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18k.ref b/patch_cmds/diffstat/testing/case18k.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18k.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18p1.ref b/patch_cmds/diffstat/testing/case18p1.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18p1.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18p9.ref b/patch_cmds/diffstat/testing/case18p9.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18p9.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18r1.ref b/patch_cmds/diffstat/testing/case18r1.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18r1.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18r2.ref b/patch_cmds/diffstat/testing/case18r2.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18r2.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case18u.ref b/patch_cmds/diffstat/testing/case18u.ref
new file mode 100644
index 0000000..60a4d2b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case18u.ref
@@ -0,0 +1,2 @@
+ foo | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case19.pat b/patch_cmds/diffstat/testing/case19.pat
new file mode 100644
index 0000000..dc7e362
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19.pat
@@ -0,0 +1,14 @@
+--- data.old Sat Jan 4 13:26:04 2003
++++ data.new Sat Jan 4 13:27:20 2003
+@@ -1,5 +1,8 @@
+ -Readme file for DiffStat.
+ -
+--This program is a simple filter that reads the output of the 'diff' program,
+--- and produces a histogram of the total number of lines that were changed. It is
+-useful for scanning a patch file to see which files were changed.
++-This program is
++- a simple filter that reads the output of the 'diff' program,
++++ and produces a histogram
++- of the total number of lines that were changed. It is
++++ useful
+++ for scanning a patch file to see which files were changed.
diff --git a/patch_cmds/diffstat/testing/case19.ref b/patch_cmds/diffstat/testing/case19.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19R.ref b/patch_cmds/diffstat/testing/case19R.ref
new file mode 100644
index 0000000..d3fb950
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19R.ref
@@ -0,0 +1,2 @@
+ data.old | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19Rp0.ref b/patch_cmds/diffstat/testing/case19Rp0.ref
new file mode 100644
index 0000000..d3fb950
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19Rp0.ref
@@ -0,0 +1,2 @@
+ data.old | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19b.ref b/patch_cmds/diffstat/testing/case19b.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19b.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19f0.ref b/patch_cmds/diffstat/testing/case19f0.ref
new file mode 100644
index 0000000..2413833
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19f0.ref
@@ -0,0 +1,2 @@
+ data.new | 9 6 + 3 - 0 !
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19k.ref b/patch_cmds/diffstat/testing/case19k.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19k.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19p1.ref b/patch_cmds/diffstat/testing/case19p1.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19p1.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19p9.ref b/patch_cmds/diffstat/testing/case19p9.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19p9.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19r1.ref b/patch_cmds/diffstat/testing/case19r1.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19r1.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19r2.ref b/patch_cmds/diffstat/testing/case19r2.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19r2.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case19u.ref b/patch_cmds/diffstat/testing/case19u.ref
new file mode 100644
index 0000000..14976e9
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case19u.ref
@@ -0,0 +1,2 @@
+ data.new | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case20.pat b/patch_cmds/diffstat/testing/case20.pat
new file mode 100644
index 0000000..b132730
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20.pat
@@ -0,0 +1,111 @@
+diff -c 'vile-9.3+/README' 'vile-9.3j+/README'
+Index: ./README
+Prereq: 1.88
+*** ./README Tue Jun 25 20:25:57 2002
+--- ./README Sun Jun 30 16:27:52 2002
+***************
+*** 23,41 ****
+ impatient? just type "./configure; make", and get a cup of coffee, decaf
+ if necessary.
+
+ want X11 support? you'd better look at doc/config.doc, although
+ "./configure --with-screen=x11"; make" may well do what you want.
+
+ want PC support? look for precompiled binaries at the various ftp sites.
+
+ want to build vile on a PC host? refer to the file README.PC .
+
+! want VMS support? you'll need to build vile yourself. refer to the
+! file README.VMS .
+!
+! if you like vile, and wish to be informed of new releases, let me
+! know -- i maintain a mailing list for that purpose. don't worry -- the
+! volume won't fill your inbox.
+
+ paul fox, pgf@foxharp.boston.ma.us (original author)
+ kevin buettner, kev@primenet.com
+--- 23,49 ----
+ impatient? just type "./configure; make", and get a cup of coffee, decaf
+ if necessary.
+
++ want to know more about configure options? type "./configure --help"
++ and then read doc/config.doc for further details.
++
+ want X11 support? you'd better look at doc/config.doc, although
+ "./configure --with-screen=x11"; make" may well do what you want.
+
++ want syntax coloring? add "--with-builtin-filters" to your configure
++ options and then read the topics "Color basics" and "Syntax coloring" in
++ the file vile.hlp.
++
+ want PC support? look for precompiled binaries at the various ftp sites.
+
+ want to build vile on a PC host? refer to the file README.PC .
+
+! want VMS support? some precompiled binaries are available at
+! ftp://ftp.phred.org/pub/vile. otherwise, you'll need to build vile
+! yourself. In either case, refer to the file README.VMS .
+!
+! if you like vile, and wish to be informed of new releases, let me know -- i
+! maintain a mailing list for that purpose (scroll down a bit for details).
+! don't worry -- the volume won't fill your inbox.
+
+ paul fox, pgf@foxharp.boston.ma.us (original author)
+ kevin buettner, kev@primenet.com
+***************
+*** 628,632 ****
+ + add $prompt variable, to allow changing the command-line prompt.
+
+ -------------------------------
+! @Header: /users/tom/src/diffstat/testing/RCS/case20.pat,v 1.1 2003/01/04 18:59:35 tom Exp @
+ -------------------------------
+--- 636,640 ----
+ + add $prompt variable, to allow changing the command-line prompt.
+
+ -------------------------------
+! @Header: /users/tom/src/diffstat/testing/RCS/case20.pat,v 1.1 2003/01/04 18:59:35 tom Exp @
+ -------------------------------
+diff -c 'vile-9.3+/README.PC' 'vile-9.3j+/README.PC'
+Index: ./README.PC
+Prereq: 1.29
+*** ./README.PC Tue Jun 25 20:25:57 2002
+--- ./README.PC Sun Jun 30 16:27:52 2002
+***************
+*** 198,208 ****
+ install it in a directory located in your PATH and add the following
+ command-line option:
+
+! nmake -f makefile.wnt <OPTIONS_FROM_ABOVE> LEX=flex # or LEX=lex
+
+ take note that flex is a component of cygwin's GNU emulation package
+ and works quite well for this purpose. cygwin can be obtained from
+! Redhat at http://sources.redhat.com/cygwin.
+
+ [2] this option requires prior installation of perl. refer to the section
+ entitled "Perl preconditions" below.
+--- 198,209 ----
+ install it in a directory located in your PATH and add the following
+ command-line option:
+
+! nmake -f makefile.wnt <OPTIONS_FROM_ABOVE> FLT=1 LEX=flex # or LEX=lex
+
+ take note that flex is a component of cygwin's GNU emulation package
+ and works quite well for this purpose. cygwin can be obtained from
+! Redhat at http://sources.redhat.com/cygwin. the FLT option binds
+! all syntax coloring filters into the resultant [win]vile executable.
+
+ [2] this option requires prior installation of perl. refer to the section
+ entitled "Perl preconditions" below.
+***************
+*** 263,267 ****
+ paul fox, pgf@foxharp.boston.ma.us (home)
+
+ ------------------------
+! @Header: /users/tom/src/diffstat/testing/RCS/case20.pat,v 1.1 2003/01/04 18:59:35 tom Exp @
+ ------------------------
+--- 264,268 ----
+ paul fox, pgf@foxharp.boston.ma.us (home)
+
+ ------------------------
+! @Header: /users/tom/src/diffstat/testing/RCS/case20.pat,v 1.1 2003/01/04 18:59:35 tom Exp @
+ ------------------------
diff --git a/patch_cmds/diffstat/testing/case20.ref b/patch_cmds/diffstat/testing/case20.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20R.ref b/patch_cmds/diffstat/testing/case20R.ref
new file mode 100644
index 0000000..fdf305d
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20R.ref
@@ -0,0 +1,3 @@
+ README | 22 -------!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 deletions(-), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20Rp0.ref b/patch_cmds/diffstat/testing/case20Rp0.ref
new file mode 100644
index 0000000..e1fb657
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20Rp0.ref
@@ -0,0 +1,3 @@
+ vile-9.3+/README | 22 -------!!!!!!!!!!!!!!!
+ vile-9.3+/README.PC | 7 !!!!!!!
+ 2 files changed, 7 deletions(-), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20b.ref b/patch_cmds/diffstat/testing/case20b.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20b.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20f0.ref b/patch_cmds/diffstat/testing/case20f0.ref
new file mode 100644
index 0000000..9d74623
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20f0.ref
@@ -0,0 +1,3 @@
+ README | 22 7 + 0 - 15 !
+ README.PC | 7 0 + 0 - 7 !
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20k.ref b/patch_cmds/diffstat/testing/case20k.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20k.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20p1.ref b/patch_cmds/diffstat/testing/case20p1.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20p1.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20p9.ref b/patch_cmds/diffstat/testing/case20p9.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20p9.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20r1.ref b/patch_cmds/diffstat/testing/case20r1.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20r1.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20r2.ref b/patch_cmds/diffstat/testing/case20r2.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20r2.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case20u.ref b/patch_cmds/diffstat/testing/case20u.ref
new file mode 100644
index 0000000..4c948ee
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case20u.ref
@@ -0,0 +1,3 @@
+ README | 22 +++++++!!!!!!!!!!!!!!!
+ README.PC | 7 !!!!!!!
+ 2 files changed, 7 insertions(+), 22 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21.pat b/patch_cmds/diffstat/testing/case21.pat
new file mode 100644
index 0000000..2ff04a5
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21.pat
@@ -0,0 +1,74 @@
+# remove duplicated files when reading applypatch input
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c 'diffstat-1.31/diffstat.c' 'diffstat-1.31_applypatch/diffstat.c'
+Index: ./diffstat.c
+Prereq: 1.31
+*** ./diffstat.c Tue Aug 20 19:38:52 2002
+--- ./diffstat.c Sat Nov 9 22:54:12 2002
+***************
+*** 483,489 ****
+ if (match(buffer, "Index: ")) {
+ s = strrchr(buffer, BLANK); /* last token is name */
+ blip('.');
+! that = new_data(s + 1);
+ ok = begin_data(that);
+ }
+ break;
+--- 483,491 ----
+ if (match(buffer, "Index: ")) {
+ s = strrchr(buffer, BLANK); /* last token is name */
+ blip('.');
+! if (strlen(that->name) != 0)
+! s = do_merging(that, s + 1);
+! that = new_data(s);
+ ok = begin_data(that);
+ }
+ break;
+***************
+*** 493,499 ****
+ && *(s = skip_options(buffer + 5)) != '\0') {
+ s = strrchr(buffer, BLANK);
+ blip('.');
+! that = new_data(s + 1);
+ ok = begin_data(that);
+ }
+ break;
+--- 495,503 ----
+ && *(s = skip_options(buffer + 5)) != '\0') {
+ s = strrchr(buffer, BLANK);
+ blip('.');
+! if (strlen(that->name) != 0)
+! s = do_merging(that, s + 1);
+! that = new_data(s);
+ ok = begin_data(that);
+ }
+ break;
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Sat Nov 9 22:55:16 2002
+# Generated by : makepatch 2.00_05
+# Recurse directories : Yes
+# p 'diffstat.c' 21017 1036900452 0100644
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Sat Nov 9 22:55:16 2002] ####
+#### Patch checksum: 55 1528 36697 ####
+#### Checksum: 73 2205 27936 ####
diff --git a/patch_cmds/diffstat/testing/case21.ref b/patch_cmds/diffstat/testing/case21.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21R.ref b/patch_cmds/diffstat/testing/case21R.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21R.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21Rp0.ref b/patch_cmds/diffstat/testing/case21Rp0.ref
new file mode 100644
index 0000000..32019b3
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21Rp0.ref
@@ -0,0 +1,2 @@
+ diffstat-1.31/diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21b.ref b/patch_cmds/diffstat/testing/case21b.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21b.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21f0.ref b/patch_cmds/diffstat/testing/case21f0.ref
new file mode 100644
index 0000000..c5e255c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21f0.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 0 + 0 - 8 !
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21k.ref b/patch_cmds/diffstat/testing/case21k.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21k.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21p1.ref b/patch_cmds/diffstat/testing/case21p1.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21p1.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21p9.ref b/patch_cmds/diffstat/testing/case21p9.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21p9.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21r1.ref b/patch_cmds/diffstat/testing/case21r1.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21r1.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21r2.ref b/patch_cmds/diffstat/testing/case21r2.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21r2.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case21u.ref b/patch_cmds/diffstat/testing/case21u.ref
new file mode 100644
index 0000000..5c225f6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case21u.ref
@@ -0,0 +1,2 @@
+ diffstat.c | 8 !!!!!!!!
+ 1 file changed, 8 modifications(!)
diff --git a/patch_cmds/diffstat/testing/case22.pat b/patch_cmds/diffstat/testing/case22.pat
new file mode 100644
index 0000000..773ff0b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22.pat
@@ -0,0 +1,651 @@
+--- pgp-menu-traditional/PATCHES Dec 2002 17:44:54 -0000 3.6
++++ pgp-menu-traditional/PATCHES Feb 2003 11:26:39 -0000
+@@ -0,0 +1 @@
++patch-1.5.3.dw.pgp-menu-traditional.1
+--- pgp-menu-traditional/compose.c Dec 2002 11:19:39 -0000 3.8
++++ pgp-menu-traditional/compose.c Feb 2003 11:26:42 -0000
+@@ -145,2 +145,6 @@ static void redraw_crypt_lines (HEADER *
+ addstr (_("Clear"));
++#ifdef HAVE_PGP
++ if ((msg->security & PGPINLINE) == PGPINLINE)
++ addstr (_(" (inline)"));
++#endif
+ clrtoeol ();
+@@ -174,4 +178,4 @@ static int pgp_send_menu (HEADER *msg, i
+
+- switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "),
+- _("esabf")))
++ switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline or (f)orget it? "),
++ _("esabtf")))
+ {
+@@ -208,6 +212,11 @@ static int pgp_send_menu (HEADER *msg, i
+ case 4: /* (b)oth */
+- msg->security = PGPENCRYPT | PGPSIGN;
++ msg->security |= PGPENCRYPT | PGPSIGN;
+ break;
+
+- case 5: /* (f)orget it */
++ case 5: /* (t)raditional inline */
++ if (msg->security & (ENCRYPT | SIGN))
++ msg->security |= PGPINLINE; /* should this be a toggle instead */
++ break;
++
++ case 6: /* (f)orget it */
+ msg->security = 0;
+--- pgp-menu-traditional/crypt.c Dec 2002 22:23:42 -0000 3.11
++++ pgp-menu-traditional/crypt.c Feb 2003 11:26:43 -0000
+@@ -172,3 +172,2 @@ int mutt_protect (HEADER *msg, char *key
+ BODY *tmp_pgp_pbody = NULL;
+- int traditional = 0;
+ int flags = msg->security, i;
+@@ -179,18 +178,9 @@ int mutt_protect (HEADER *msg, char *key
+ #ifdef HAVE_PGP
+- if (msg->security & APPLICATION_PGP)
++ if ((msg->security & PGPINLINE) == PGPINLINE)
+ {
+- if ((msg->content->type == TYPETEXT) &&
+- !ascii_strcasecmp (msg->content->subtype, "plain"))
+- {
+- if ((i = query_quadoption (OPT_PGPTRADITIONAL, _("Create an inline PGP message?"))) == -1)
+- return -1;
+- else if (i == M_YES)
+- traditional = 1;
+- }
+- if (traditional)
++ /* they really want to send it inline... go for it */
++ if (!isendwin ()) mutt_endwin _("Invoking PGP...");
++ pbody = pgp_traditional_encryptsign (msg->content, flags, keylist);
++ if (pbody)
+ {
+- if (!isendwin ()) mutt_endwin _("Invoking PGP...");
+- if (!(pbody = pgp_traditional_encryptsign (msg->content, flags, keylist)))
+- return -1;
+-
+ msg->content = pbody;
+@@ -198,2 +188,8 @@ int mutt_protect (HEADER *msg, char *key
+ }
++
++ /* otherwise inline won't work...ask for revert */
++ if ((i = query_quadoption (OPT_PGPMIMEASK, _("Message can't be sent inline. Revert to using PGP/MIME?"))) != M_YES)
++ return -1;
++
++ /* go ahead with PGP/MIME */
+ }
+--- pgp-menu-traditional/init.h Dec 2002 18:09:49 -0000 3.28
++++ pgp-menu-traditional/init.h Feb 2003 11:26:48 -0000
+@@ -1352,2 +1352,44 @@ struct option_t MuttVars[] = {
+ */
++ { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 },
++ { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 },
++ /*
++ ** .pp
++ ** This option controls whether Mutt generates old-style inline
++ ** (traditional) PGP encrypted or signed messages under certain
++ ** circumstances. This can be overridden by use of the \fIpgp-menu\fP,
++ ** when inline is not required.
++ ** .pp
++ ** Note that Mutt might automatically use PGP/MIME for messages
++ ** which consist of more than a single MIME part. Mutt can be
++ ** configured to ask before sending PGP/MIME messages when inline
++ ** (traditional) would not work.
++ ** See also: ``$$pgp_mime_ask''.
++ ** .pp
++ ** Also note that using the old-style PGP message format is \fBstrongly\fP
++ ** \fBdeprecated\fP.
++ ** (PGP only)
++ */
++ { "pgp_auto_traditional", DT_SYN, R_NONE, UL "pgp_replyinline", 0 },
++ { "pgp_replyinline", DT_BOOL, R_NONE, OPTPGPREPLYINLINE, 0 },
++ /*
++ ** .pp
++ ** Setting this variable will cause Mutt to always attempt to
++ ** create an inline (traditional) message when replying to a
++ ** message which is PGP encrypted/signed inline. This can be
++ ** overridden by use of the \fIpgp-menu\fP, when inline is not
++ ** required. This option does not automatically detect if the
++ ** (replied-to) message is inline; instead it relies on Mutt
++ ** internals for previously checked/flagged messages.
++ ** .pp
++ ** Note that Mutt might automatically use PGP/MIME for messages
++ ** which consist of more than a single MIME part. Mutt can be
++ ** configured to ask before sending PGP/MIME messages when inline
++ ** (traditional) would not work.
++ ** See also: ``$$pgp_mime_ask''.
++ ** .pp
++ ** Also note that using the old-style PGP message format is \fBstrongly\fP
++ ** \fBdeprecated\fP.
++ ** (PGP only)
++ **
++ */
+ { "pgp_show_unusable", DT_BOOL, R_NONE, OPTPGPSHOWUNUSABLE, 1 },
+@@ -1396,11 +1438,8 @@ struct option_t MuttVars[] = {
+ */
+- { "pgp_create_traditional", DT_QUAD, R_NONE, OPT_PGPTRADITIONAL, M_NO },
++ { "pgp_mime_ask", DT_QUAD, R_NONE, OPT_PGPMIMEASK, M_NO },
+ /*
+ ** .pp
+- ** This option controls whether Mutt generates old-style PGP encrypted
+- ** or signed messages under certain circumstances.
+- ** .pp
+- ** Note that PGP/MIME will be used automatically for messages which have
+- ** a character set different from us-ascii, or which consist of more than
+- ** a single MIME part.
++ ** This option controls whether Mutt will prompt you for
++ ** automatically sending a (signed/encrypted) message using
++ ** PGP/MIME when inline (traditional) fails (for any reason).
+ ** .pp
+@@ -1409,2 +1448,3 @@ struct option_t MuttVars[] = {
+ */
++
+
+--- pgp-menu-traditional/mutt.h Dec 2002 08:53:21 -0000 3.12
++++ pgp-menu-traditional/mutt.h Feb 2003 11:26:51 -0000
+@@ -270,3 +270,3 @@ enum
+ #ifdef HAVE_PGP
+- OPT_PGPTRADITIONAL, /* create old-style PGP messages */
++ OPT_PGPMIMEASK, /* ask to revert to PGP/MIME when inline fails */
+ #endif
+@@ -447,2 +447,4 @@ enum
+ OPTPGPLONGIDS,
++ OPTPGPAUTOINLINE,
++ OPTPGPREPLYINLINE,
+ #endif
+--- pgp-menu-traditional/pgp.c Dec 2002 17:59:51 -0000 3.18
++++ pgp-menu-traditional/pgp.c Feb 2003 11:26:55 -0000
+@@ -535,2 +535,5 @@ int mutt_is_application_pgp (BODY *m)
+ }
++ if (t)
++ t |= PGPINLINE;
++
+ return t;
+@@ -1057,3 +1060,3 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS
+ int i;
+- pgp_key_t *k_info, *key;
++ pgp_key_t *k_info, *key = NULL;
+
+--- pgp-menu-traditional/pgplib.h Dec 2002 11:19:40 -0000 3.3
++++ pgp-menu-traditional/pgplib.h Feb 2003 11:26:56 -0000
+@@ -27,2 +27,3 @@
+ #define PGPKEY (APPLICATION_PGP | (1 << 3))
++#define PGPINLINE (APPLICATION_PGP | (1 << 4))
+
+--- pgp-menu-traditional/postpone.c Dec 2002 11:19:40 -0000 3.7
++++ pgp-menu-traditional/postpone.c Feb 2003 11:26:57 -0000
+@@ -492,2 +492,9 @@ int mutt_parse_crypt_hdr (char *p, int s
+
++ case 'i':
++ case 'I':
++#ifdef HAVE_PGP
++ pgp |= (PGPINLINE & ~APPLICATION_PGP);
++#endif
++ break;
++
+ default:
+--- pgp-menu-traditional/send.c Dec 2002 22:47:57 -0000 3.15
++++ pgp-menu-traditional/send.c Feb 2003 11:27:01 -0000
+@@ -1259,3 +1259,3 @@ ci_send_message (int flags, /* send mod
+ msg->security |= SIGN;
+- }
++ }
+
+@@ -1279,2 +1279,8 @@ ci_send_message (int flags, /* send mod
+ msg->security |= APPLICATION_PGP;
++ /*
++ * we leave this so late because PGPINLINE should be applied only when APPLICATION_PGP is high
++ * perhaps reserving a bit in crypt.h would be more reasonable, though it doesn't apply with S/MIME
++ */
++ if (option (OPTPGPREPLYINLINE) && (cur->security & PGPINLINE) == PGPINLINE)
++ msg->security |= PGPINLINE;
+ #endif /* HAVE_PGP */
+@@ -1294,2 +1300,10 @@ ci_send_message (int flags, /* send mod
+ }
++#ifdef HAVE_PGP
++ /*
++ * we leave this so late because PGPINLINE should be applied only when APPLICATION_PGP is high
++ * perhaps reserving a bit in crypt.h would be more reasonable, though it doesn't apply with S/MIME
++ */
++ if ((msg->security & APPLICATION_PGP) && (option (OPTPGPAUTOINLINE)))
++ msg->security |= PGPINLINE;
++#endif
+ #endif /* HAVE_PGP || HAVE_SMIME */
+--- pgp-menu-traditional/sendlib.c Dec 2002 20:56:48 -0000 3.18
++++ pgp-menu-traditional/sendlib.c Feb 2003 11:27:02 -0000
+@@ -2429,2 +2429,4 @@ int mutt_write_fcc (const char *path, HE
+ }
++ if ((hdr->security & PGPINLINE) == PGPINLINE)
++ fputc ('I', msg->fp);
+ fputc ('\n', msg->fp);
+--- pgp-menu-traditional/po/ca.po Dec 2002 10:37:21 -0000 3.7
++++ pgp-menu-traditional/po/ca.po Feb 2003 11:27:19 -0000
+@@ -596,10 +596,10 @@ msgstr "Xifra"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "(x)ifra, (s)igna, s(i)gna com a, (a)mbdós, o en (c)lar? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "(x)ifra, (s)igna, s(i)gna com a, (a)mbdós, traditional en (l)ínia, o en (c)lar? "
+
+ # ivb (2001/11/19)
+-# ivb (x)ifra, (s)igna, s(i)gna com a, (a)mbdós, (c)lar
++# ivb (x)ifra, (s)igna, s(i)gna com a, (a)mbdós, traditional en (l)ínia, o en (c)lar
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "xsiac"
++msgid "esabtf"
++msgstr "xsialc"
+
+--- pgp-menu-traditional/po/cs.po Dec 2002 10:37:21 -0000 3.6
++++ pgp-menu-traditional/po/cs.po Feb 2003 11:27:20 -0000
+@@ -676,4 +676,4 @@ msgstr "Za¹ifrovat"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "(¹)ifrovat, (p)odepsat, podepsat (j)ako, (o)bojí, èi (n)ic?"
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "(¹)ifrovat, (p)odepsat, podepsat (j)ako, (o)bojí, (t)raditional/pøímý, èi (n)ic?"
+
+@@ -681,4 +681,4 @@ msgstr "(¹)ifrovat, (p)odepsat, podepsat
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "¹pjon"
++msgid "esabtf"
++msgstr "¹pjotn"
+
+--- pgp-menu-traditional/po/da.po Dec 2002 10:37:21 -0000 3.6
++++ pgp-menu-traditional/po/da.po Feb 2003 11:27:21 -0000
+@@ -566,8 +566,8 @@ msgstr "Kryptér"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "(k)ryptér, (u)nderskriv, underskriv (s)om, (b)egge, (i)ngen PGP"
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "(k)ryptér, (u)nderskriv, underskriv (s)om, (b)egge, (t)raditional integreret, (i)ngen PGP"
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "kusbi"
++msgid "esabtf"
++msgstr "kusbti"
+
+--- pgp-menu-traditional/po/de.po Dec 2002 10:37:21 -0000 3.7
++++ pgp-menu-traditional/po/de.po Feb 2003 11:27:22 -0000
+@@ -558,8 +558,8 @@ msgstr "Verschlüsseln mit: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (k)ein PGP? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (t)raditionelles Inline, (k)ein PGP? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "vsabk"
++msgid "esabtf"
++msgstr "vsabtk"
+
+--- pgp-menu-traditional/po/el.po Dec 2002 10:37:21 -0000 3.7
++++ pgp-menu-traditional/po/el.po Feb 2003 11:27:24 -0000
+@@ -690,4 +690,4 @@ msgstr "ÊñõðôïãñÜöçóç ìå: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, Þ (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional êåßìåíï, Þ (f)orget it? "
+
+@@ -696,4 +696,4 @@ msgstr "PGP (e)ncrypt, (s)ign, sign (a)s
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "esabf"
++msgid "esabtf"
++msgstr "esabtf"
+
+--- pgp-menu-traditional/po/eo.po Dec 2002 10:37:21 -0000 3.6
++++ pgp-menu-traditional/po/eo.po Feb 2003 11:27:25 -0000
+@@ -566,8 +566,8 @@ msgstr "Æifri"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "æ(i)fri, (s)ubskribi, subskribi (k)iel, (a)mbaý, aý (f)orgesi? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "æ(i)fri, (s)ubskribi, subskribi (k)iel, (a)mbaý, (t)raditional \"inline\", aý (f)orgesi? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "iskaf"
++msgid "esabtf"
++msgstr "iskatf"
+
+--- pgp-menu-traditional/po/es.po Dec 2002 10:37:22 -0000 3.7
++++ pgp-menu-traditional/po/es.po Feb 2003 11:27:26 -0000
+@@ -564,8 +564,9 @@ msgstr "Cifrar"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "¿co(d)ificar, f(i)rmar (c)omo, amb(o)s o ca(n)celar? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "¿co(d)ificar, f(i)rmar (c)omo, amb(o)s, (t)radicional incluido, o ca(n)celar? "
++
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "dicon"
++msgid "esabtf"
++msgstr "dicotn"
+
+--- pgp-menu-traditional/po/et.po Dec 2002 10:37:22 -0000 3.8
++++ pgp-menu-traditional/po/et.po Feb 2003 11:27:27 -0000
+@@ -559,7 +559,7 @@ msgstr "Krüpti kasutades: "
+ msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (k)rüpti, (a)llkiri, allk. ku(i), (m)õlemad või (u)nusta? "
++msgstr "PGP (k)rüpti, (a)llkiri, allk. ku(i), (m)õlemad, (t)raditional kehasse, või (u)nusta? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "kaimu"
++msgid "esabtf"
++msgstr "kaimtu"
+
+--- pgp-menu-traditional/po/fr.po Dec 2002 10:37:22 -0000 3.13
++++ pgp-menu-traditional/po/fr.po Feb 2003 11:27:28 -0000
+@@ -585,8 +585,8 @@ msgstr "Chiffrer avec : "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, ou (o)ublier ? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, (t)raditionnel en ligne, ou (o)ublier ? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "csedo"
++msgid "esabtf"
++msgstr "csedto"
+
+--- pgp-menu-traditional/po/gl.po Dec 2002 10:37:22 -0000 3.6
++++ pgp-menu-traditional/po/gl.po Feb 2003 11:27:30 -0000
+@@ -568,8 +568,8 @@ msgstr "Encriptar"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "¿(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas ou (o)lvidar? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "¿(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas, (t)raditional interior, ou (o)lvidar? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "efcao"
++msgid "esabtf"
++msgstr "efcato"
+
+--- pgp-menu-traditional/po/hu.po Dec 2002 10:37:23 -0000 3.6
++++ pgp-menu-traditional/po/hu.po Feb 2003 11:27:31 -0000
+@@ -569,8 +569,8 @@ msgstr "Titkosít"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "(t)itkosít, (a)láír, aláír (m)int, titkosít é(s) aláír, mé(g)se? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "(t)itkosít, (a)láír, aláír (m)int, titkosít é(s) aláír, traditional (b)eágyazott, mé(g)se? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "tamsg"
++msgid "esabtf"
++msgstr "tamsbg"
+
+--- pgp-menu-traditional/po/id.po Dec 2002 10:37:23 -0000 3.7
++++ pgp-menu-traditional/po/id.po Feb 2003 11:27:33 -0000
+@@ -562,8 +562,8 @@ msgstr "Enkrip dengan: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (b)atal? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, traditional (i)nline, (b)atal? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "etsdb"
++msgid "esabtf"
++msgstr "etsdib"
+
+--- pgp-menu-traditional/po/it.po Dec 2002 10:37:23 -0000 3.6
++++ pgp-menu-traditional/po/it.po Feb 2003 11:27:34 -0000
+@@ -570,8 +570,8 @@ msgstr "Crittografa"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "cifra(e), firma(s), firma come(a), entrambi(b), annulla(f) "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "cifra(e), firma(s), firma come(a), entrambi(b), (t)radizionale in linea , annulla(f) "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "esabf"
++msgid "esabtf"
++msgstr "esabtf"
+
+--- pgp-menu-traditional/po/ja.po Dec 2002 10:37:23 -0000 3.13
++++ pgp-menu-traditional/po/ja.po Feb 2003 11:27:35 -0000
+@@ -558,8 +558,9 @@ msgstr " °Å¹æ²½Êý¼°: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (e)°Å¹æ²½,(s)½ð̾,(a)..¤È¤·¤Æ½ð̾,(b)ξ¼Ô,(f)²ò½ü?"
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (e)°Å¹æ²½,(s)½ð̾,(a)..¤È¤·¤Æ½ð̾,(b)ξ¼Ô,(i)nline,(f)²ò½ü?"
++
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr ""
++msgid "esabtf"
++msgstr "esabif"
+
+--- pgp-menu-traditional/po/ko.po Dec 2002 10:37:23 -0000 3.9
++++ pgp-menu-traditional/po/ko.po Feb 2003 11:27:36 -0000
+@@ -560,8 +560,8 @@ msgstr "¾Ïȣȭ ¹æ½Ä: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP ¾Ïȣȭ(e), ¼­¸í(s), »ç¿ë ¼­¸í(a), µÑ ´Ù(b), Ãë¼Ò(f)? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP ¾Ïȣȭ(e), ¼­¸í(s), »ç¿ë ¼­¸í(a), µÑ ´Ù(b), (i)nline, Ãë¼Ò(f)? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "esabf"
++msgid "esabtf"
++msgstr "esabif"
+
+--- pgp-menu-traditional/po/lt.po Dec 2002 10:37:23 -0000 3.6
++++ pgp-menu-traditional/po/lt.po Feb 2003 11:27:38 -0000
+@@ -566,5 +566,5 @@ msgstr "Uþðifruoti"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr ""
+-"(u)þðifruot, pa(s)iraðyt, pasiraðyt k(a)ip, a(b)u, rinktis (m)ic algoritmà, "
++"(u)þðifruot, pa(s)iraðyt, pasiraðyt k(a)ip, a(b)u, traditional (l)aiðke, "
+ "ar (p)amirðti?"
+@@ -573,4 +573,4 @@ msgstr ""
+ #, fuzzy
+-msgid "esabf"
+-msgstr "usabmp"
++msgid "esabtf"
++msgstr "usablp"
+
+@@ -586,4 +586,3 @@ msgid ""
+ msgstr ""
+-"(u)þðifruot, pa(s)iraðyt, pasiraðyt k(a)ip, a(b)u, rinktis (m)ic algoritmà, "
+-"ar (p)amirðti?"
++"(u)þðifruot, pa(s)iraðyt, uþðifruo(t) su, pasiraðyt k(a)ip, a(b)u, ar (p)amirðti?"
+
+@@ -592,3 +591,3 @@ msgstr ""
+ msgid "eswabf"
+-msgstr "usabmp"
++msgstr "ustabp"
+
+--- pgp-menu-traditional/po/nl.po Dec 2002 10:37:23 -0000 3.7
++++ pgp-menu-traditional/po/nl.po Feb 2003 11:27:39 -0000
+@@ -553,8 +553,8 @@ msgstr "Versleutelen met: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eide, (g)een? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eide, (t)raditioneel bericht, (g)een? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "voabg"
++msgid "esabtf"
++msgstr "voabtg"
+
+--- pgp-menu-traditional/po/pl.po Dec 2002 10:37:23 -0000 3.8
++++ pgp-menu-traditional/po/pl.po Feb 2003 11:27:40 -0000
+@@ -560,8 +560,8 @@ msgstr "Zaszyfruj u¿ywaj±c: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, b(e)z PGP? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, (t)raditional inline, b(e)z PGP? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "zsabe"
++msgid "esabtf"
++msgstr "zsabte"
+
+--- pgp-menu-traditional/po/pt_BR.po Dec 2002 10:37:23 -0000 3.7
++++ pgp-menu-traditional/po/pt_BR.po Feb 2003 11:27:41 -0000
+@@ -569,5 +569,5 @@ msgstr "Encriptar"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr ""
+-"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? "
++"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, (t)raditional em (l)inha, ou es(q)uece? "
+
+@@ -575,4 +575,4 @@ msgstr ""
+ #, fuzzy
+-msgid "esabf"
+-msgstr "escamq"
++msgid "esabtf"
++msgstr "escalq"
+
+@@ -588,3 +588,3 @@ msgid ""
+ msgstr ""
+-"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? "
++"(e)ncripa, a(s)sina, e(n)cripa com, assina (c)omo, (a)mbos, ou es(q)uece? "
+
+@@ -593,3 +593,3 @@ msgstr ""
+ msgid "eswabf"
+-msgstr "escamq"
++msgstr "esncaq"
+
+--- pgp-menu-traditional/po/ru.po Dec 2002 10:37:24 -0000 3.10
++++ pgp-menu-traditional/po/ru.po Feb 2003 11:27:43 -0000
+@@ -567,8 +567,8 @@ msgstr "úÁÛÉÆÒÏ×ÁÔØ: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP (e)ÛÉÆÒ, (s)ÐÏÄÐÉÓØ, (a)ÐÏÄÐÉÓØ ËÁË, (b)ÏÂÁ, (f)ÏÔËÁÚÁÔØÓÑ? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP (e)ÛÉÆÒ, (s)ÐÏÄÐÉÓØ, (a)ÐÏÄÐÉÓØ ËÁË, (b)ÏÂÁ, traditional (i)nline, (f)ÏÔËÁÚÁÔØÓÑ? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "esabf"
++msgid "esabtf"
++msgstr "esabif"
+
+--- pgp-menu-traditional/po/sk.po Dec 2002 10:37:24 -0000 3.6
++++ pgp-menu-traditional/po/sk.po Feb 2003 11:27:44 -0000
+@@ -574,5 +574,5 @@ msgstr "Za¹ifruj"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr ""
+-"(e)-¹ifr, (s)-podp, podp (a)ko, o(b)e, oznaè alg. mi(c), alebo (f)-zabudnú» "
++"(e)-¹ifr, (s)-podp, podp (a)ko, o(b)e, (t)raditional inline, alebo (f)-zabudnú» "
+ "na to? "
+@@ -581,4 +581,4 @@ msgstr ""
+ #, fuzzy
+-msgid "esabf"
+-msgstr "esabmf"
++msgid "esabtf"
++msgstr "esabtf"
+
+@@ -594,4 +594,3 @@ msgid ""
+ msgstr ""
+-"(e)-¹ifr, (s)-podp, podp (a)ko, o(b)e, oznaè alg. mi(c), alebo (f)-zabudnú» "
+-"na to? "
++"(e)-¹ifr, (s)-podp, (w)-¹ifr s, podp (a)ko, o(b)e, alebo (f)-zabudnú» na to? "
+
+@@ -600,3 +599,3 @@ msgstr ""
+ msgid "eswabf"
+-msgstr "esabmf"
++msgstr "eswabf"
+
+--- pgp-menu-traditional/po/sv.po Dec 2002 10:37:24 -0000 3.7
++++ pgp-menu-traditional/po/sv.po Feb 2003 11:27:45 -0000
+@@ -555,8 +555,8 @@ msgstr "Kryptera med: "
+ #: compose.c:175
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)åda, eller sk(i)ppa det?"
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)åda, (t)raditional infogat, eller sk(i)ppa det?"
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "ksobi"
++msgid "esabtf"
++msgstr "ksobti"
+
+--- pgp-menu-traditional/po/tr.po Dec 2002 10:37:24 -0000 3.6
++++ pgp-menu-traditional/po/tr.po Feb 2003 11:27:47 -0000
+@@ -565,5 +565,5 @@ msgstr "Þifrele"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr ""
+-"þ(i)frele, i(m)zala, (f)arklý imzala, i(k)isi de, mi(c) algoritmini seç "
++"þ(i)frele, i(m)zala, (f)arklý imzala, i(k)isi de, (t)raditional inline, "
+ "yoksa i(p)talmý? "
+@@ -571,4 +571,4 @@ msgstr ""
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "imfkcp"
++msgid "esabtf"
++msgstr "imfktp"
+
+--- pgp-menu-traditional/po/uk.po Dec 2002 10:37:24 -0000 3.7
++++ pgp-menu-traditional/po/uk.po Feb 2003 11:27:48 -0000
+@@ -560,8 +560,8 @@ msgstr "ûÉÆÒÕ×ÁÎÎÑ"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
+-msgstr "ÛÉÆÒ.(e), ЦÄÐ.(s), ЦÄÐ. ÑË(a), ÕÓÅ(b) ÞÉ ×¦ÄͦÎÁ(f)? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
++msgstr "ÛÉÆÒ.(e), ЦÄÐ.(s), ЦÄÐ. ÑË(a), ÕÓÅ(b), traditional (i)nline ÞÉ ×¦ÄͦÎÁ(f)? "
+
+ #: compose.c:176
+-msgid "esabf"
+-msgstr ""
++msgid "esabtf"
++msgstr "esabif"
+
+--- pgp-menu-traditional/po/zh_CN.po Dec 2002 10:37:24 -0000 3.6
++++ pgp-menu-traditional/po/zh_CN.po Feb 2003 11:27:50 -0000
+@@ -573,5 +573,5 @@ msgstr "¼ÓÃÜ"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr ""
+-"(e)¼ÓÃÜ, (s)Ç©Ãû, (a)ÓñðµÄÉí·ÝÇ©, (b)Á½Õß½ÔÒª, Ñ¡Ôñ (m)ic ÑÝËã·¨ »ò (f)·Å"
++"(e)¼ÓÃÜ, (s)Ç©Ãû, (a)ÓñðµÄÉí·ÝÇ©, (b)Á½Õß½ÔÒª, (t)raditional inline, »ò (f)·Å"
+ "Æú£¿"
+@@ -579,3 +579,3 @@ msgstr ""
+ #: compose.c:176
+-msgid "esabf"
++msgid "esabtf"
+ msgstr ""
+--- pgp-menu-traditional/po/zh_TW.po Dec 2002 10:37:24 -0000 3.6
++++ pgp-menu-traditional/po/zh_TW.po Feb 2003 11:27:51 -0000
+@@ -565,3 +565,3 @@ msgstr "加密"
+ #, fuzzy
+-msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "
++msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (t)raditional inline, or (f)orget it? "
+ msgstr "(1)加密, (2)ç°½å, (3)用別的身份簽, (4)兩者皆è¦, 或 (5)放棄?"
+@@ -569,4 +569,4 @@ msgstr "(1)加密, (2)ç°½å, (3)用別ç
+ #: compose.c:176
+-msgid "esabf"
+-msgstr "12345"
++msgid "esabtf"
++msgstr "1234t5"
+
diff --git a/patch_cmds/diffstat/testing/case22.ref b/patch_cmds/diffstat/testing/case22.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22R.ref b/patch_cmds/diffstat/testing/case22R.ref
new file mode 100644
index 0000000..b9c699b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22R.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 -
+ compose.c | 17 ++++-------------
+ crypt.c | 26 +++++++++++++++-----------
+ init.h | 54 +++++++-----------------------------------------------
+ mutt.h | 4 +---
+ pgp.c | 5 +----
+ pgplib.h | 1 -
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 ++++-----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 ++++-----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 +++++++------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 +++++++------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 -------
+ send.c | 16 +---------------
+ sendlib.c | 2 --
+ 36 files changed, 139 insertions(+), 214 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22Rp0.ref b/patch_cmds/diffstat/testing/case22Rp0.ref
new file mode 100644
index 0000000..fa59c21
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22Rp0.ref
@@ -0,0 +1,37 @@
+ pgp-menu-traditional/PATCHES | 1
+ pgp-menu-traditional/compose.c | 17 ++----------
+ pgp-menu-traditional/crypt.c | 26 ++++++++++--------
+ pgp-menu-traditional/init.h | 54 +++++----------------------------------
+ pgp-menu-traditional/mutt.h | 4 --
+ pgp-menu-traditional/pgp.c | 5 ---
+ pgp-menu-traditional/pgplib.h | 1
+ pgp-menu-traditional/po/ca.po | 10 +++----
+ pgp-menu-traditional/po/cs.po | 8 ++---
+ pgp-menu-traditional/po/da.po | 8 ++---
+ pgp-menu-traditional/po/de.po | 8 ++---
+ pgp-menu-traditional/po/el.po | 8 ++---
+ pgp-menu-traditional/po/eo.po | 8 ++---
+ pgp-menu-traditional/po/es.po | 9 ++----
+ pgp-menu-traditional/po/et.po | 6 ++--
+ pgp-menu-traditional/po/fr.po | 8 ++---
+ pgp-menu-traditional/po/gl.po | 8 ++---
+ pgp-menu-traditional/po/hu.po | 8 ++---
+ pgp-menu-traditional/po/id.po | 8 ++---
+ pgp-menu-traditional/po/it.po | 8 ++---
+ pgp-menu-traditional/po/ja.po | 9 ++----
+ pgp-menu-traditional/po/ko.po | 8 ++---
+ pgp-menu-traditional/po/lt.po | 13 +++++----
+ pgp-menu-traditional/po/nl.po | 8 ++---
+ pgp-menu-traditional/po/pl.po | 8 ++---
+ pgp-menu-traditional/po/pt_BR.po | 12 ++++----
+ pgp-menu-traditional/po/ru.po | 8 ++---
+ pgp-menu-traditional/po/sk.po | 13 +++++----
+ pgp-menu-traditional/po/sv.po | 8 ++---
+ pgp-menu-traditional/po/tr.po | 8 ++---
+ pgp-menu-traditional/po/uk.po | 8 ++---
+ pgp-menu-traditional/po/zh_CN.po | 6 ++--
+ pgp-menu-traditional/po/zh_TW.po | 6 ++--
+ pgp-menu-traditional/postpone.c | 7 -----
+ pgp-menu-traditional/send.c | 16 -----------
+ pgp-menu-traditional/sendlib.c | 2 -
+ 36 files changed, 139 insertions(+), 214 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22b.ref b/patch_cmds/diffstat/testing/case22b.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22b.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22f0.ref b/patch_cmds/diffstat/testing/case22f0.ref
new file mode 100644
index 0000000..cb44a93
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22f0.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 1 + 0 - 0 !
+ compose.c | 17 13 + 4 - 0 !
+ crypt.c | 26 11 + 15 - 0 !
+ init.h | 54 47 + 7 - 0 !
+ mutt.h | 4 3 + 1 - 0 !
+ pgp.c | 5 4 + 1 - 0 !
+ pgplib.h | 1 1 + 0 - 0 !
+ po/ca.po | 10 5 + 5 - 0 !
+ po/cs.po | 8 4 + 4 - 0 !
+ po/da.po | 8 4 + 4 - 0 !
+ po/de.po | 8 4 + 4 - 0 !
+ po/el.po | 8 4 + 4 - 0 !
+ po/eo.po | 8 4 + 4 - 0 !
+ po/es.po | 9 5 + 4 - 0 !
+ po/et.po | 6 3 + 3 - 0 !
+ po/fr.po | 8 4 + 4 - 0 !
+ po/gl.po | 8 4 + 4 - 0 !
+ po/hu.po | 8 4 + 4 - 0 !
+ po/id.po | 8 4 + 4 - 0 !
+ po/it.po | 8 4 + 4 - 0 !
+ po/ja.po | 9 5 + 4 - 0 !
+ po/ko.po | 8 4 + 4 - 0 !
+ po/lt.po | 13 6 + 7 - 0 !
+ po/nl.po | 8 4 + 4 - 0 !
+ po/pl.po | 8 4 + 4 - 0 !
+ po/pt_BR.po | 12 6 + 6 - 0 !
+ po/ru.po | 8 4 + 4 - 0 !
+ po/sk.po | 13 6 + 7 - 0 !
+ po/sv.po | 8 4 + 4 - 0 !
+ po/tr.po | 8 4 + 4 - 0 !
+ po/uk.po | 8 4 + 4 - 0 !
+ po/zh_CN.po | 6 3 + 3 - 0 !
+ po/zh_TW.po | 6 3 + 3 - 0 !
+ postpone.c | 7 7 + 0 - 0 !
+ send.c | 16 15 + 1 - 0 !
+ sendlib.c | 2 2 + 0 - 0 !
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22k.ref b/patch_cmds/diffstat/testing/case22k.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22k.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22p1.ref b/patch_cmds/diffstat/testing/case22p1.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22p1.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22p9.ref b/patch_cmds/diffstat/testing/case22p9.ref
new file mode 100644
index 0000000..2f2e7a2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22p9.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ ca.po | 10 +++++-----
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ cs.po | 8 ++++----
+ da.po | 8 ++++----
+ de.po | 8 ++++----
+ el.po | 8 ++++----
+ eo.po | 8 ++++----
+ es.po | 9 +++++----
+ et.po | 6 +++---
+ fr.po | 8 ++++----
+ gl.po | 8 ++++----
+ hu.po | 8 ++++----
+ id.po | 8 ++++----
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ it.po | 8 ++++----
+ ja.po | 9 +++++----
+ ko.po | 8 ++++----
+ lt.po | 13 ++++++-------
+ mutt.h | 4 +++-
+ nl.po | 8 ++++----
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ pl.po | 8 ++++----
+ postpone.c | 7 +++++++
+ pt_BR.po | 12 ++++++------
+ ru.po | 8 ++++----
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ sk.po | 13 ++++++-------
+ sv.po | 8 ++++----
+ tr.po | 8 ++++----
+ uk.po | 8 ++++----
+ zh_CN.po | 6 +++---
+ zh_TW.po | 6 +++---
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22r1.ref b/patch_cmds/diffstat/testing/case22r1.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22r1.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22r2.ref b/patch_cmds/diffstat/testing/case22r2.ref
new file mode 100644
index 0000000..0cb180f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22r2.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case22u.ref b/patch_cmds/diffstat/testing/case22u.ref
new file mode 100644
index 0000000..328b2f4
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case22u.ref
@@ -0,0 +1,37 @@
+ PATCHES | 1 +
+ compose.c | 17 +++++++++++++----
+ crypt.c | 26 +++++++++++---------------
+ init.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ mutt.h | 4 +++-
+ pgp.c | 5 ++++-
+ pgplib.h | 1 +
+ postpone.c | 7 +++++++
+ send.c | 16 +++++++++++++++-
+ sendlib.c | 2 ++
+ po/ca.po | 10 +++++-----
+ po/cs.po | 8 ++++----
+ po/da.po | 8 ++++----
+ po/de.po | 8 ++++----
+ po/el.po | 8 ++++----
+ po/eo.po | 8 ++++----
+ po/es.po | 9 +++++----
+ po/et.po | 6 +++---
+ po/fr.po | 8 ++++----
+ po/gl.po | 8 ++++----
+ po/hu.po | 8 ++++----
+ po/id.po | 8 ++++----
+ po/it.po | 8 ++++----
+ po/ja.po | 9 +++++----
+ po/ko.po | 8 ++++----
+ po/lt.po | 13 ++++++-------
+ po/nl.po | 8 ++++----
+ po/pl.po | 8 ++++----
+ po/pt_BR.po | 12 ++++++------
+ po/ru.po | 8 ++++----
+ po/sk.po | 13 ++++++-------
+ po/sv.po | 8 ++++----
+ po/tr.po | 8 ++++----
+ po/uk.po | 8 ++++----
+ po/zh_CN.po | 6 +++---
+ po/zh_TW.po | 6 +++---
+ 36 files changed, 214 insertions(+), 139 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23.pat b/patch_cmds/diffstat/testing/case23.pat
new file mode 100644
index 0000000..47d9bcc
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23.pat
@@ -0,0 +1,227 @@
+diff -ur bfm-0.6.1.orig/README bfm-0.6.1/README
+--- bfm-0.6.1.orig/README 2003-10-11 03:29:08.000000000 -0500
++++ bfm-0.6.1/README 2003-11-01 20:59:22.000000000 -0600
+@@ -7,7 +7,6 @@
+
+
+ TODO
+-- Any way to fix the update speed? Gkrellm maximum update is 10 per second.
+ - Someone tests/does the FreeBSD and SunOS platform?
+ - Possible/Make more sense, to make a gkrellm swallow plugin?
+ (Quick search on google:
+diff -ur bfm-0.6.1.orig/gkrellm-bfm.c bfm-0.6.1/gkrellm-bfm.c
+--- bfm-0.6.1.orig/gkrellm-bfm.c 2003-11-01 10:44:15.000000000 -0600
++++ bfm-0.6.1/gkrellm-bfm.c 2003-11-01 20:58:57.000000000 -0600
+@@ -68,6 +68,8 @@
+ static Chart *chart = NULL;
+ static ChartConfig *chart_config = NULL;
+
++static gint timeout_id,
++ update_interval;
+
+
+ /* From the actual bfm */
+@@ -92,13 +94,13 @@
+ GtkWidget *clock_check = NULL;
+ GtkWidget *fish_traffic_check = NULL;
+
+-static void
++static gboolean
+ update_plugin(void)
+ {
+ GdkEventExpose event;
+ gint ret_val;
+ gtk_signal_emit_by_name(GTK_OBJECT(chart->drawing_area), "expose_event", &event, &ret_val);
+-
++ return TRUE; /* restart timer */
+ }
+
+
+@@ -154,6 +156,15 @@
+ return TRUE;
+ }
+
++
++static void
++disable_plugin(void)
++ {
++ if (timeout_id)
++ gtk_timeout_remove(timeout_id);
++ timeout_id = 0;
++ }
++
+ static void
+ create_plugin(GtkWidget *vbox, gint first_create)
+ {
+@@ -182,7 +193,10 @@
+ "leave_notify_event", GTK_SIGNAL_FUNC(leave_notify_event),
+ NULL);
+ }
+-
++ if (!timeout_id)
++ timeout_id = gtk_timeout_add(1000 / update_interval,
++ (GtkFunction) update_plugin, NULL);
++ gkrellm_disable_plugin_connect(mon, disable_plugin);
+ }
+
+
+@@ -240,6 +254,44 @@
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fish_traffic_check), fish_traffic);
+ }
+
++
++static void
++cb_interval_modified(GtkWidget *widget, GtkSpinButton *spin)
++ {
++ update_interval = gtk_spin_button_get_value_as_int(spin);
++ if (timeout_id)
++ gtk_timeout_remove(timeout_id);
++ timeout_id = gtk_timeout_add(1000 / update_interval,
++ (GtkFunction) update_plugin, NULL);
++ }
++
++static gchar *pending_prog;
++
++static void
++cb_prog_entry(GtkWidget *widget, gpointer data)
++{
++ gboolean activate_sig = GPOINTER_TO_INT(data);
++ gchar *s = gkrellm_gtk_entry_get_text(&prog_entry);
++
++ if (activate_sig)
++ {
++ gkrellm_dup_string(&prog, s);
++ g_free(pending_prog);
++ pending_prog = NULL;
++ }
++ else /* "changed" sig, entry is pending on "activate" or config close */
++ gkrellm_dup_string(&pending_prog, s);
++}
++
++static void
++config_destroyed(void)
++ {
++ if (pending_prog)
++ gkrellm_dup_string(&prog, pending_prog);
++ g_free(pending_prog);
++ pending_prog = NULL;
++ }
++
+ static void
+ create_plugin_tab(GtkWidget *tab_vbox)
+ {
+@@ -287,10 +339,7 @@
+ " fish swiming from right to left represents incoming traffic)\n",
+ "- Cute little duck swimming...\n",
+ "- Clock hands representing time (obviously)...\n",
+- "- Click and it will run a command for you (requested by Nick =)\n\n",
+- "<i>Notes\n\n",
+- "- Currently Gkrellm updates at most 10 times a second, and so\n",
+- " BFM updates is a bit jerky still.\n",
++ "- Click and it will run a command for you (requested by Nick =)\n",
+ "\n\n",
+ };
+
+@@ -307,6 +356,8 @@
+ tabs = gtk_notebook_new();
+ gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tabs), GTK_POS_TOP);
+ gtk_box_pack_start(GTK_BOX(tab_vbox), tabs, TRUE, TRUE, 0);
++ g_signal_connect(G_OBJECT(tabs),"destroy",
++ G_CALLBACK(config_destroyed), NULL);
+
+ /* Options tab */
+ options_tab = gkrellm_create_tab(tabs, _("Options"));
+@@ -346,6 +397,10 @@
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (prog_entry);
+ gtk_box_pack_start (GTK_BOX (prog_box), prog_entry, TRUE, TRUE, 0);
++ g_signal_connect(G_OBJECT(prog_entry), "activate",
++ G_CALLBACK(cb_prog_entry), GINT_TO_POINTER(1));
++ g_signal_connect(G_OBJECT(prog_entry), "changed",
++ G_CALLBACK(cb_prog_entry), GINT_TO_POINTER(0));
+
+ row1 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_set_name (row1, "row1");
+@@ -470,6 +525,11 @@
+ gtk_widget_show (fish_traffic_check);
+ gtk_box_pack_start (GTK_BOX (fish_traffic_box), fish_traffic_check, TRUE, TRUE, 0);
+
++ gkrellm_gtk_spin_button(main_box, NULL, update_interval,
++ 10.0, 50.0, 1.0, 5.0, 0, 60,
++ cb_interval_modified, NULL, FALSE,
++ _("Updates per second"));
++
+ setup_toggle_buttons();
+
+ gtk_signal_connect(GTK_OBJECT(cpu_check), "toggled", GTK_SIGNAL_FUNC(option_toggled_cb), NULL);
+@@ -494,15 +554,6 @@
+
+ }
+
+-static void
+-apply_plugin_config(void)
+-{
+- if(prog)
+- {
+- g_free(prog);
+- }
+- prog = g_strdup(gtk_editable_get_chars(GTK_EDITABLE(prog_entry), 0, -1));
+-}
+
+ static void
+ save_plugin_config(FILE *f)
+@@ -511,13 +562,15 @@
+ {
+ fprintf(f, "%s prog %s\n", PLUGIN_KEYWORD, prog);
+ }
+- fprintf(f, "%s options %d.%d.%d.%d.%d.%d\n", PLUGIN_KEYWORD,
++ fprintf(f, "%s options %d.%d.%d.%d.%d.%d.%d\n", PLUGIN_KEYWORD,
+ cpu_enabled,
+ duck_enabled,
+ memscreen_enabled,
+ fish_enabled,
+ fish_traffic,
+- time_enabled);
++ time_enabled,
++ update_interval);
++
+ }
+
+ static void
+@@ -539,13 +592,14 @@
+ }
+ else if(!strcmp(config_item, "options"))
+ {
+- sscanf(value, "%d.%d.%d.%d.%d.%d",
++ sscanf(value, "%d.%d.%d.%d.%d.%d.%d",
+ &cpu_enabled,
+ &duck_enabled,
+ &memscreen_enabled,
+ &fish_enabled,
+ &fish_traffic,
+- &time_enabled);
++ &time_enabled,
++ &update_interval);
+ }
+
+ }
+@@ -556,9 +610,9 @@
+ PLUGIN_NAME, /* Name, for config tab. */
+ 0, /* Id, 0 if a plugin */
+ create_plugin, /* The create_plugin() function */
+- update_plugin, /* The update_plugin() function */
++ NULL, /* The update_plugin() function */
+ create_plugin_tab, /* The create_plugin_tab() config function */
+- apply_plugin_config, /* The apply_plugin_config() function */
++ NULL, /* The apply_plugin_config() function */
+
+ save_plugin_config, /* The save_plugin_config() function */
+ load_plugin_config, /* The load_plugin_config() function */
+@@ -577,6 +631,7 @@
+ Monitor *
+ init_plugin(void)
+ {
++ update_interval = 20;
+ style_id = gkrellm_add_meter_style(&bfm_mon, PLUGIN_STYLE);
+ return (mon = &bfm_mon);
+ }
diff --git a/patch_cmds/diffstat/testing/case23.ref b/patch_cmds/diffstat/testing/case23.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23R.ref b/patch_cmds/diffstat/testing/case23R.ref
new file mode 100644
index 0000000..5ca71ed
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23R.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 ++++++++++++----------------------------------------------
+ 2 files changed, 23 insertions(+), 77 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23Rp0.ref b/patch_cmds/diffstat/testing/case23Rp0.ref
new file mode 100644
index 0000000..e5c3893
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23Rp0.ref
@@ -0,0 +1,3 @@
+ bfm-0.6.1.orig/README | 1
+ bfm-0.6.1.orig/gkrellm-bfm.c | 99 +++++++++----------------------------------
+ 2 files changed, 23 insertions(+), 77 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23b.ref b/patch_cmds/diffstat/testing/case23b.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23b.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23f0.ref b/patch_cmds/diffstat/testing/case23f0.ref
new file mode 100644
index 0000000..29339c7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23f0.ref
@@ -0,0 +1,3 @@
+ README | 1 0 + 1 - 0 !
+ gkrellm-bfm.c | 99 77 + 22 - 0 !
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23k.ref b/patch_cmds/diffstat/testing/case23k.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23k.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23p1.ref b/patch_cmds/diffstat/testing/case23p1.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23p1.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23p9.ref b/patch_cmds/diffstat/testing/case23p9.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23p9.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23r1.ref b/patch_cmds/diffstat/testing/case23r1.ref
new file mode 100644
index 0000000..2200a09
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23r1.ref
@@ -0,0 +1,3 @@
+ README | 1 -
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23r2.ref b/patch_cmds/diffstat/testing/case23r2.ref
new file mode 100644
index 0000000..2200a09
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23r2.ref
@@ -0,0 +1,3 @@
+ README | 1 -
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case23u.ref b/patch_cmds/diffstat/testing/case23u.ref
new file mode 100644
index 0000000..7a6ac84
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case23u.ref
@@ -0,0 +1,3 @@
+ README | 1
+ gkrellm-bfm.c | 99 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24.pat b/patch_cmds/diffstat/testing/case24.pat
new file mode 100644
index 0000000..dfb7406
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24.pat
@@ -0,0 +1,217 @@
+# ncurses 5.4 - patch 20040821 - T.Dickey
+#
+# ------------------------------------------------------------------------------
+#
+# Ncurses 5.4 is at
+# ftp.gnu.org:/pub/gnu
+#
+# Patches for ncurses 5.4 are in the subdirectory
+# ftp://invisible-island.net/ncurses/5.4
+#
+# ------------------------------------------------------------------------------
+Index: Ada95/gen/gen.c
+--- ncurses-5.4-20040814+/Ada95/gen/gen.c 2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.4-20040821/Ada95/gen/gen.c 2004-08-21 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998,2000,2004 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ /*
+ Version Control
+- @Revision: 1.36 @
++ @Id: gen.c,v 1.38 2004/08/21 20:37:13 tom Exp @
+ --------------------------------------------------------------------------*/
+ /*
+ This program generates various record structures and constants from the
+@@ -131,7 +131,6 @@
+ printf(" %-*s : Boolean;\n",width,nap[i].name);
+ }
+ printf(" end record;\n");
+- printf(" pragma Pack (%s);\n",name);
+ printf(" pragma Convention (C, %s);\n\n",name);
+
+ printf(" for %s use\n",name);
+Index: Ada95/gen/terminal_interface-curses-mouse.ads.m4
+--- ncurses-5.4-20040814+/Ada95/gen/terminal_interface-curses-mouse.ads.m4 2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.4-20040821/Ada95/gen/terminal_interface-curses-mouse.ads.m4 2004-08-21 21:37:00.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998 Free Software Foundation, Inc. --
++-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,7 +38,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- @Revision: 1.22 @
++-- @Revision: 1.25 @
++-- @Date: 2004/08/21 21:37:00 @
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ include(`Mouse_Base_Defs')
+@@ -169,7 +170,6 @@
+ Bstate : Event_Mask;
+ end record;
+ pragma Convention (C, Mouse_Event);
+- pragma Pack (Mouse_Event);
+
+ include(`Mouse_Event_Rep')
+ Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
+Index: Ada95/gen/terminal_interface-curses.ads.m4
+--- ncurses-5.4-20040814+/Ada95/gen/terminal_interface-curses.ads.m4 2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.4-20040821/Ada95/gen/terminal_interface-curses.ads.m4 2004-08-21 21:37:00.000000000 +0000
+@@ -9,7 +9,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998 Free Software Foundation, Inc. --
++-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -37,7 +37,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- @Revision: 1.31 @
++-- @Revision: 1.35 @
++-- @Date: 2004/08/21 21:37:00 @
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ include(`Base_Defs')
+@@ -59,11 +60,12 @@
+ subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
+ -- Type to count columns. We do not allow null windows, so must be positive
+
+- type Key_Code is new Natural;
++ type Key_Code is new Integer;
+ -- That is anything including real characters, special keys and logical
+ -- request codes.
+
+- subtype Real_Key_Code is Key_Code range 0 .. M4_KEY_MAX;
++ -- FIXME: The "-1" should be Curses_Err
++ subtype Real_Key_Code is Key_Code range -1 .. M4_KEY_MAX;
+ -- This are the codes that potentially represent a real keystroke.
+ -- Not all codes may be possible on a specific terminal. To check the
+ -- availability of a special key, the Has_Key function is provided.
+Index: Ada95/samples/ncurses2-acs_and_scroll.adb
+--- ncurses-5.4-20040814+/Ada95/samples/ncurses2-acs_and_scroll.adb 2000-12-02 22:31:22.000000000 +0000
++++ ncurses-5.4-20040821/Ada95/samples/ncurses2-acs_and_scroll.adb 2004-08-21 21:37:00.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000 Free Software Foundation, Inc. --
++-- Copyright (c) 2000,2004 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- @Revision: 1.1 @
++-- @Revision: 1.6 @
++-- @Date: 2004/08/21 21:37:00 @
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ -- Windows and scrolling tester.
+@@ -224,8 +225,8 @@
+ );
+
+ buf : Bounded_String;
+- do_keypad : Boolean := HaveKeyPad (curpw);
+- do_scroll : Boolean := HaveScroll (curpw);
++ do_keypad : constant Boolean := HaveKeyPad (curpw);
++ do_scroll : constant Boolean := HaveScroll (curpw);
+
+ pos : Natural;
+
+@@ -331,8 +332,8 @@
+ res : pair;
+ i : Line_Position := 0;
+ j : Column_Position := 0;
+- si : Line_Position := lri - uli + 1;
+- sj : Column_Position := lrj - ulj + 1;
++ si : constant Line_Position := lri - uli + 1;
++ sj : constant Column_Position := lrj - ulj + 1;
+ begin
+ res.y := uli;
+ res.x := ulj;
+@@ -714,7 +715,7 @@
+
+ Allow_Scrolling (Mode => True);
+
+- End_Mouse;
++ End_Mouse (Mask2);
+ Set_Raw_Mode (SwitchOn => True);
+ Erase;
+ End_Windows;
+Index: Ada95/samples/ncurses2-acs_display.adb
+--- ncurses-5.4-20040814+/Ada95/samples/ncurses2-acs_display.adb 2000-12-02 22:31:23.000000000 +0000
++++ ncurses-5.4-20040821/Ada95/samples/ncurses2-acs_display.adb 2004-08-21 21:37:00.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000 Free Software Foundation, Inc. --
++-- Copyright (c) 2000,2004 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- @Revision: 1.1 @
++-- @Revision: 1.4 @
++-- @Date: 2004/08/21 21:37:00 @
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -57,8 +58,8 @@
+
+
+ procedure show_upper_chars (first : Integer) is
+- C1 : Boolean := (first = 128);
+- last : Integer := first + 31;
++ C1 : constant Boolean := (first = 128);
++ last : constant Integer := first + 31;
+ package p is new ncurses2.genericPuts (200);
+ use p;
+ use p.BS;
+@@ -91,9 +92,11 @@
+
+ for code in first .. last loop
+ declare
+- row : Line_Position := Line_Position (4 + ((code - first) mod 16));
+- col : Column_Position := Column_Position (((code - first) / 16) *
+- Integer (Columns) / 2);
++ row : constant Line_Position
++ := Line_Position (4 + ((code - first) mod 16));
++ col : constant Column_Position
++ := Column_Position (((code - first) / 16) *
++ Integer (Columns) / 2);
+ tmp3 : String (1 .. 3);
+ tmpx : String (1 .. Integer (Columns / 4));
+ reply : Key_Code;
+@@ -129,8 +132,8 @@
+ code : Attributed_Character)
+ return Integer is
+ height : constant Integer := 16;
+- row : Line_Position := Line_Position (4 + (N mod height));
+- col : Column_Position := Column_Position ((N / height) *
++ row : constant Line_Position := Line_Position (4 + (N mod height));
++ col : constant Column_Position := Column_Position ((N / height) *
+ Integer (Columns) / 2);
+ tmpx : String (1 .. Integer (Columns) / 3);
+ begin
diff --git a/patch_cmds/diffstat/testing/case24.ref b/patch_cmds/diffstat/testing/case24.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24R.ref b/patch_cmds/diffstat/testing/case24R.ref
new file mode 100644
index 0000000..c9486b7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24R.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 +++--
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++------
+ samples/ncurses2-acs_and_scroll.adb | 15 +++++++--------
+ samples/ncurses2-acs_display.adb | 21 +++++++++------------
+ 5 files changed, 26 insertions(+), 31 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24Rp0.ref b/patch_cmds/diffstat/testing/case24Rp0.ref
new file mode 100644
index 0000000..1315b22
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24Rp0.ref
@@ -0,0 +1,6 @@
+ Ada95/gen/gen.c | 5 +++--
+ Ada95/gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ Ada95/gen/terminal_interface-curses.ads.m4 | 10 ++++------
+ Ada95/samples/ncurses2-acs_and_scroll.adb | 15 +++++++--------
+ Ada95/samples/ncurses2-acs_display.adb | 21 +++++++++------------
+ 5 files changed, 26 insertions(+), 31 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24b.ref b/patch_cmds/diffstat/testing/case24b.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24b.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24f0.ref b/patch_cmds/diffstat/testing/case24f0.ref
new file mode 100644
index 0000000..9efc375
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24f0.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 2 + 3 - 0 !
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 3 + 3 - 0 !
+ gen/terminal_interface-curses.ads.m4 | 10 6 + 4 - 0 !
+ samples/ncurses2-acs_and_scroll.adb | 15 8 + 7 - 0 !
+ samples/ncurses2-acs_display.adb | 21 12 + 9 - 0 !
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24k.ref b/patch_cmds/diffstat/testing/case24k.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24k.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24p1.ref b/patch_cmds/diffstat/testing/case24p1.ref
new file mode 100644
index 0000000..8d4d22a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24p1.ref
@@ -0,0 +1,6 @@
+ Ada95/gen/gen.c | 5 ++---
+ Ada95/gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ Ada95/gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ Ada95/samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ Ada95/samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24p9.ref b/patch_cmds/diffstat/testing/case24p9.ref
new file mode 100644
index 0000000..113c4b8
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24p9.ref
@@ -0,0 +1,6 @@
+ gen.c | 5 ++---
+ ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ ncurses2-acs_display.adb | 21 ++++++++++++---------
+ terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ terminal_interface-curses.ads.m4 | 10 ++++++----
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24r1.ref b/patch_cmds/diffstat/testing/case24r1.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24r1.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24r2.ref b/patch_cmds/diffstat/testing/case24r2.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24r2.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case24u.ref b/patch_cmds/diffstat/testing/case24u.ref
new file mode 100644
index 0000000..ab81687
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case24u.ref
@@ -0,0 +1,6 @@
+ gen/gen.c | 5 ++---
+ gen/terminal_interface-curses-mouse.ads.m4 | 6 +++---
+ gen/terminal_interface-curses.ads.m4 | 10 ++++++----
+ samples/ncurses2-acs_and_scroll.adb | 15 ++++++++-------
+ samples/ncurses2-acs_display.adb | 21 ++++++++++++---------
+ 5 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25.pat b/patch_cmds/diffstat/testing/case25.pat
new file mode 100644
index 0000000..8edbd31
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25.pat
@@ -0,0 +1,471 @@
+# vile 9.4m - patch 2004/12/15 - Thomas Dickey <dickey@his.com>
+# ------------------------------------------------------------------------------
+# $Header: | 1
+# CHANGES | 58
+# MANIFEST | 3
+# buffer.c | 208 ++-
+# buglist | 7
+# builtflt.c | 68 +
+# cmdtbl | 15
+# configure | 2652 ++++++++++++++++++++---------------------
+# configure.in | 16
+# display.c | 80 -
+# doc/filters.doc | 34
+# doc/macros.doc | 67 -
+# edef.h | 5
+# estruct.h | 13
+# eval.c | 196 ++-
+# filters/as-filt.l | 6
+# filters/asm-filt.l | 8
+# filters/au3-filt.l | 8
+# filters/bat-filt.l | 6
+# filters/c-filt.c | 20
+# filters/filterio.c | 33
+# filters/filters.c | 3
+# filters/filters.h | 7
+# filters/filters.rc | 40
+# filters/htmlfilt.l | 9
+# filters/imakeflt.l | 19
+# filters/key-filt.c | 11
+# filters/m4-filt.c | 3
+# filters/makefilt.l | 19
+# filters/pl-filt.c | 24
+# filters/pot-filt.l | 5
+# filters/ps-filt.l | 5
+# filters/rb-filt.l | 3
+# filters/rpm-filt.l | 16
+# filters/rubyfilt.c | 30
+# filters/sccsfilt.l | 5
+# filters/sed-filt.c | 3
+# filters/sh-filt.l | 16
+# filters/spell.rc | 36
+# filters/spellflt.l | 8
+# filters/sql-filt.l | 9
+# filters/tc-filt.l | 12
+# filters/tcl-filt.l | 4
+# filters/vilefilt.l | 10
+# filters/vl-filt.l | 20
+# filters/xml-filt.l | 50
+# filters/xresfilt.l | 11
+# input.c | 4
+# macros/gnugpg.rc | 8
+# macros/which.rc | 107 +
+# main.c | 5
+# makefile.in | 17
+# makefile.wnt | 3
+# modes.c | 358 +++--
+# modetbl | 22
+# ntconio.c | 51
+# ntwinio.c | 53
+# patchlev.h | 2
+# proto.h | 19
+# revlist | 129 +
+# statevar.c | 8
+# tbuff.c | 14
+# tcap.c | 3
+# vile-9.4.spec | 9
+# vile-9.4m/macros/showeach.rc | 78 +
+# vile.hlp | 16
+# x11.c | 370 ++---
+# 67 files changed, 3017 insertions(+), 2141 deletions(-)
+# ------------------------------------------------------------------------------
+Index: CHANGES
+--- vile-9.4l+/CHANGES 2004-12-08 01:01:53.000000000 +0000
++++ vile-9.4m/CHANGES 2004-12-15 23:56:47.000000000 +0000
+@@ -1,5 +1,63 @@
+ Changes for vile 9.5 (released ??? ??? ?? ????)
+
++ 20041215 (m)
++ > Tom Dickey:
++ + modify x11.c, ntconio.c and ntwinio.c to make modifiers work with tab
++ key, e.g., to add shift-key as a back-tab key.
++ + add macro show-each-buffer (file showeach.rc), which splits up the
++ screen into equal chunks to display as many of the non-scratch
++ buffers as possible.
++ + modify macro parameter evaluation so it does not attempt to compute
++ a value for function tokens or goto-labels. Otherwise pathnames such
++ as "~\foo" look like macro directives and produce an error.
++ + correct slash/backslash translation (win32, etc) for some of the
++ built-in functions; the translated result was not actually the return
++ value: &path and &pcat.
++ + correct flags in modetbl used to annotate trace of &seq and a few
++ other operators.
++ + correct length computed for $bflags variable; an empty string was
++ returned.
++ + add a section on command-line options to doc/filters.doc
++ + add macro which-filter to show which locations would be checked for
++ an external filter. If the filter happens to be built-in, this is
++ also noted, in the message line.
++ + improve 'eval' command, provide for mixture of functions and other
++ tokens which are passed to the script interpreter.
++ + modify SpellFilter macro to use the results from [Filter Messages]
++ with the error-finder to step through the misspellings.
++ + add macro show-filtermsgs to show syntax filter messages, setting the
++ list to the error-buffer to provide simple stepping through the
++ errors which are found.
++ + add commands popup-buffer and popdown-buffer, which open/close
++ windows for the given buffer rather than changing the current window
++ to show a different buffer. The popup-buffer command is a wrapper
++ for the existing logic used for help and similar commands. The
++ popdown-buffer command differs from delete-window by closing all
++ windows for the given buffer.
++ + remove the pre-9.4e workarounds for set-highlighting and
++ which-keywords macros.
++ + modify kdb_reply() to shift the minibuffer left/right as needed after
++ doing the initial tab of a name-completion, in case that left the
++ cursor position past the end of the line (report by Paul Fox).
++ + add new operators to make it simpler for macros to check for
++ features: &isa, &classof and &mclass.
++ + modify historical-buffer to allow tab/back-tab to cycle through the
++ first 9 buffers, solves the problem of seeing more than the first
++ few possibilities on the message line. Toggling with the repeated
++ '_' selects the first buffer shown.
++ + add back-tab to termcap/terminfo driver as a bindable key.
++ + modify configure script to make builtflt.h part of $(BUILTHDRS) to
++ simplify "make sources" rule.
++ + modify htmlfilt.l to match </script> in the middle of a line to
++ accommodate pages where the script is given by a "src=".
++ + add filtermsgs mode, for built-in filters to report syntax errors
++ into [Filter Messages] buffer so that one may use the error finder to
++ locate these (motivated by a 200,000 line xml file).
++ + correct state manipulation in xml-filt.l, which was confused by
++ CDATA pattern.
++ + correct $CPPFLAGS for linting configurations with built-in filters.
++ + correct typo in configure script from 9.4k fixes for iconv_open().
++
+ 20041207 (l)
+ > Clark Morgan:
+ + modify special treatment of "#" which prevents it from being shifted
+Index: MANIFEST
+--- vile-9.4l+/MANIFEST 2004-12-08 01:48:52.000000000 +0000
++++ vile-9.4m/MANIFEST 2004-12-16 00:53:14.000000000 +0000
+@@ -1,4 +1,4 @@
+-MANIFEST for vile, version v9_4l
++MANIFEST for vile, version v9_4m
+ --------------------------------------------------------------------------------
+ MANIFEST this file
+ CHANGES Change-log for VILE
+@@ -332,6 +332,7 @@
+ macros/pictmode.rc macros to support "picture-mode" editing
+ macros/search.rc find a file in one of several locations
+ macros/shifts.rc macros to shift words left/right
++macros/showeach.rc show-each-buffer
+ macros/vile-pager use vile as a pager
+ macros/vileinit.rc sample initialization file
+ macros/vilemenu.rc sample menu for xvile
+Index: cmdtbl
+Prereq: 1.230
+--- vile-9.4l+/cmdtbl 2004-12-07 01:28:55.000000000 +0000
++++ vile-9.4m/cmdtbl 2004-12-14 20:18:42.000000000 +0000
+@@ -97,7 +97,7 @@
+ # in '!' listed, then the flag does nothing, and should be
+ # viewed simply as documentation.
+ #
+-# @Header: /usr/build/vile/vile/RCS/cmdtbl,v 1.230 2004/12/07 01:28:55 tom Exp @
++# @Header: /usr/build/vile/vile/RCS/cmdtbl,v 1.233 2004/12/14 20:18:42 tom Exp @
+ #
+ #
+
+@@ -625,7 +625,7 @@
+ firstbuffer NONE
+ "rewind"
+ "rew!"
+- <go to first buffer in buffer list. (does nothing if \"autobuffer\" set>
++ <go to first buffer in buffer list>
+ firstnonwhite MOTION|MINIBUF
+ "first-nonwhite" !FEWNAMES
+ '^'
+@@ -1686,13 +1686,22 @@
+ edit_buffer NONE
+ "B"
+ "edit-buffer" !FEWNAMES
+- <make or switch to the given buffer; will not look for a file by that name>
++ <make or switch to the given buffer>
++popup_buffer NONE !SMALLER
++ "popup-buffer"
++ "open-window" !FEWNAMES
++ <open window for the given buffer>
++popdown_buffer NONE !SMALLER
++ "popdown-buffer"
++ "close-windows" !FEWNAMES
++ <open all windows for the given buffer>
+ usekreg REDO
+ "use-register" !FEWNAMES
+ '"'
+ <name a register, for use with a following command which references it>
+ userbeep NONE !SMALLER
+ "beep"
++ 'FN-b' KEY_BackTab
+ <force the terminal to ring (or flash, if \"set flash\" is active)>
+ visual NONE
+ "visual"
+Index: configure.in
+Prereq: 1.211
+--- vile-9.4l+/configure.in 2004-12-04 00:42:49.000000000 +0000
++++ vile-9.4m/configure.in 2004-12-10 22:52:59.000000000 +0000
+@@ -1,12 +1,12 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_REVISION(@Revision: 1.211 @)
++AC_REVISION(@Revision: 1.214 @)
+ AC_PREREQ(2.13.20030927)
+ rm -f config.cache
+
+ ### Use "configure -with-screen" to override the default configuration, which is
+ ### termcap-based on unix systems.
+
+-dnl @Header: /usr/build/vile/vile/RCS/configure.in,v 1.211 2004/12/04 00:42:49 tom Exp @
++dnl @Header: /usr/build/vile/vile/RCS/configure.in,v 1.214 2004/12/10 22:52:59 tom Exp @
+
+ define(MAKELIST, sh $srcdir/filters/makelist.sh $srcdir/filters/genmake.mak)
+
+@@ -52,6 +52,10 @@
+ CF_LIB_PREFIX
+
+ ### options to control how much we build
++BUILTHDRS="nebind.h neproto.h neexec.h nefunc.h nemode.h nename.h nevars.h nefkeys.h nefsms.h"
++BUILTLIBS=
++BUILTSRCS=
++
+ AC_MSG_CHECKING(if you wish to build only core functions)
+ CF_ARG_DISABLE(extensions,
+ [ --disable-extensions test: build only core functions],
+@@ -287,6 +291,7 @@
+ perl_lib_path=`$PERL -MConfig -e 'print $Config{privlib}'`
+ AC_DEFINE(OPT_PERL)
+ EXTRAOBJS="$EXTRAOBJS perl.o"
++ BUILTSRCS="$BUILTSRCS perl.c"
+ LINK_PREFIX=`$PERL -MConfig -e 'print $Config{shrpenv}'`
+ ac_link="$LINK_PREFIX $ac_link"
+ CF_CHECK_CFLAGS(`$PERL -MExtUtils::Embed -e ccopts`)
+@@ -672,7 +677,7 @@
+ [cf_func_iconv="$withval"],
+ [cf_func_iconv=yes])
+ AC_MSG_RESULT($cf_func_iconv)
+-if test "$cf_func_iconv" == yes ; then
++if test "$cf_func_iconv" = yes ; then
+ AC_DEFINE(OPT_ICONV_FUNCS)
+ test "$cf_cv_func_iconv" != yes && LIBS="$cf_cv_func_iconv $LIBS"
+ fi # test $cf_func_iconv" = yes
+@@ -834,9 +839,10 @@
+
+ if test "$cf_filter_libs" = yes ; then
+ EXTRAOBJS="$EXTRAOBJS builtflt.o"
+- CFLAGS="-I\$(srcdir)/filters $CFLAGS"
++ CPPFLAGS="-I\$(srcdir)/filters $CPPFLAGS"
+ FILTER_LIBS="-Lfilters -lvlflt"
+ LIBBUILTFLT="${LIB_PREFIX}vlflt.a"
++ BUILTHDRS="$BUILTHDRS builtflt.h"
+ BUILTLIBS="$BUILTLIBS filters/$LIBBUILTFLT"
+ AC_DEFINE(OPT_FILTER)
+ else
+@@ -846,7 +852,9 @@
+ fi
+
+ AC_SUBST(EXTRAOBJS)
++AC_SUBST(BUILTHDRS)
+ AC_SUBST(BUILTLIBS)
++AC_SUBST(BUILTSRCS)
+ AC_SUBST(FILTER_LIBS)
+ AC_SUBST(LIBBUILTFLT)
+
+Index: doc/filters.doc
+Prereq: 1.32
+--- vile-9.4l+/doc/filters.doc 2004-11-11 00:47:06.000000000 +0000
++++ vile-9.4m/doc/filters.doc 2004-12-14 00:47:49.000000000 +0000
+@@ -33,7 +33,7 @@
+
+ [ If $VILE_STARTUP_PATH is not defined, the filter checks the
+ "prefix" directory specified when all filters were compiled
+- (default path is /usr/local/share/vile/vile.keyords). ]
++ (default path is /usr/local/share/vile/vile.keywords). ]
+
+ and then here:
+
+@@ -146,6 +146,38 @@
+ language keywords, if any.
+
+
++OPTIONS
++-------
++
++A few options are common to all filters:
++
++ -d is recognized when the filters have been compiled with "DEBUG" defined.
++ This is used in the more complicated filters such as perl and ruby to
++ show the parsing.
++
++ -k FILE
++
++ -q exits the filter before writing the marked-up output. This happens
++ after processing the class definitions, so it is useful in combination
++ with the -v option to simply obtain the class information.
++
++ -t holds the tabstop setting, which can be used in a filter for column
++ computations.
++
++ -v verbose, turns on extra output which can be used for troubleshooting
++ configuration problems.
++
++The C syntax filter recognizes additional options to customize it for Java and
++JavaScript:
++
++ -j Extend name- and literal-syntax to include Java.
++
++ -p Disallow preprocessor lines.
++
++ -s for JavaScript (to support jsmode). This controls whether to allow
++ regular expressions in certain cases.
++
++
+ PROGRAMS
+ --------
+
+@@ -230,4 +262,4 @@
+ The lex filters have been well tested only with flex, which treats newlines
+ differently. Older versions of lex may not support the %x states.
+
+--- @Header: /usr/build/vile/vile/doc/RCS/filters.doc,v 1.32 2004/11/11 00:47:06 tom Exp @
++-- @Header: /usr/build/vile/vile/doc/RCS/filters.doc,v 1.33 2004/12/14 00:47:49 tom Exp @
+Index: doc/macros.doc
+Prereq: 1.93
+--- vile-9.4l+/doc/macros.doc 2004-10-20 22:47:38.000000000 +0000
++++ vile-9.4m/doc/macros.doc 2004-12-12 20:29:24.000000000 +0000
+@@ -774,7 +774,7 @@
+ &mod "N1" "N2" Divide the "N1" by "N2", return remainder.
+ &negate "N" Return -(N).
+ &ascii "S" Return the ASCII code of the first
+- character in "S"
++ character in "S"
+ &random "N"
+ &rnd "N" Random number between 1 and N
+ &abs "N" Absolute value of "N"
+@@ -791,12 +791,12 @@
+ The rest return strings:
+
+ &bind "S" Return the function name bound to the
+- key sequence "S".
++ key sequence "S".
+ &cat "S1" "S2" Concatenate S1 and string "S".
+ &chr "N" Converts numeric "N" to an ASCII character.
+ &cclass "S" Character class (see "show-printable")
+ &env "S" Return the value of the user's environment
+- variable named "S".
++ variable named "S".
+ &gtkey Get a single raw keystroke from the user.
+ &gtsequence Get a complete vile key sequence from user.
+ &left "S" "N" Extract first "N" characters from "S"
+@@ -805,8 +805,8 @@
+ &middle "S" "N1" "N2" Extract "N2" chars at position "N1".
+ &upper "S" Return uppercase version of "S".
+ &trim "S" Remove whitespace at either end of "S",
+- reduce multiple spaces within "S"
+- to just one space each.
++ reduce multiple spaces within "S"
++ to just one space each.
+
+ Boolean/logical functions --
+
+@@ -820,6 +820,9 @@
+ &geq "N1" "N2" Is "N1" numerically not less than "N2"?
+ &greater "N1" "N2" Is "N1" numerically greater than "N2"?
+ &gt "N1" "N2" (same as &greater)
++ &isa "C" "N" Is "N" a member of class "C". Classes
++ include: buffer, color, mode, submode,
++ Majormode.
+ &leq "N1" "N2" Is "N1" numerically not greater than "N2"?
+ &lessthan "N1" "N2" Is "N1" numerically less than "N2"?
+ &lt "N1" "N2" (same as &lessthan)
+@@ -860,19 +863,26 @@
+
+ These all return string values:
+
++ &classof "N" Retrieves the class(es) to which the given
++ name may return. Usually this is a single
++ name, e.g., one of those checked by &isa.
++ If multiple matches are found, the result
++ contains each classname separated by a
++ space.
++
+ &default "MODENAME" Retrieves initial/default value for the
+- given mode or state variable.
++ given mode or state variable.
+
+ &global "MODENAME" Retrieves universal/global mode setting.
+
+- &indirect "S" Evaluate value of "S" as a
+- macro language variable itself.
+- Thus if %foo has value "HOME",
+- then &env &indirect %foo will
+- return the home directory pathname.
++ &indirect "S" Evaluate value of "S" as a macro language
++ variable itself. Thus if %foo has value
++ "HOME", then
++ &env &indirect %foo
++ will return the home directory pathname.
+
+ &local "MODENAME" Retrieves local mode setting (for
+- current buffer).
++ current buffer).
+
+ &lookup "N" "P" The "N" keyword tells which field to use
+ looking for the file "P":
+@@ -890,25 +900,31 @@
+ bin, startup, path, libdir. Note that
+ the directory lists may overlap.
+
++ &mclass "M" Retrieve the class to which the given
++ mode belongs. This is different from
++ &mclass since it distinguishes the modes
++ Return values include: universal buffer
++ window submode Majormode.
++
+ &qpasswd "S" Present "S" to the user and return their
+- response. Each typed character is
+- echoed as '*'. The response is not
+- recallable via the editor's history
+- mechanism.
++ response. Each typed character is
++ echoed as '*'. The response is not
++ recallable via the editor's history
++ mechanism.
+
+ &query "S" Present "S" to the user, and return
+- their typed response.
++ their typed response.
+
+ &date "F" "T" If strftime() is found, format the time "T"
+- using the "F" format. Otherwise, use
+- ctime() to format the time. Times are
+- numbers (see &ftime and &stime).
++ using the "F" format. Otherwise, use
++ ctime() to format the time. Times are
++ numbers (see &ftime and &stime).
+
+ &dquery "S" "D" Present "S" to the user, and return
+- their typed response. If "D" is given,
+- use that as the default response.
+- Otherwise use the previous response
+- as the default.
++ their typed response. If "D" is given,
++ use that as the default response.
++ Otherwise use the previous response
++ as the default.
+
+ &path "N" "P" The "N" keyword tells which field to extract
+ from the pathname "P":
+@@ -1056,7 +1072,6 @@
+ The ~break directive allows early termination of an enclosing
+ while-loop. Extending the above example:
+
+-
+ ; count the occurrences of a pattern in all buffers
+ set nowrapscan
+ set noautobuffer
+@@ -1465,6 +1480,6 @@
+ ========================= end vile.rc =======================
+
+ -----------------------------------
+- @Header: /usr/build/vile/vile/doc/RCS/macros.doc,v 1.93 2004/10/20 22:47:38 tom Exp @
++ @Header: /usr/build/vile/vile/doc/RCS/macros.doc,v 1.94 2004/12/12 20:29:24 tom Exp @
+ -----------------------------------
+
diff --git a/patch_cmds/diffstat/testing/case25.ref b/patch_cmds/diffstat/testing/case25.ref
new file mode 100644
index 0000000..a270cc6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++--
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25R.ref b/patch_cmds/diffstat/testing/case25R.ref
new file mode 100644
index 0000000..c594cda
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25R.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ------------------------------------------------
+ MANIFEST | 3 --
+ cmdtbl | 15 ++----------
+ configure.in | 16 +++----------
+ doc/filters.doc | 36 +-----------------------------
+ doc/macros.doc | 67 +++++++++++++++++++++-----------------------------------
+ 6 files changed, 36 insertions(+), 159 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25Rp0.ref b/patch_cmds/diffstat/testing/case25Rp0.ref
new file mode 100644
index 0000000..c594cda
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25Rp0.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ------------------------------------------------
+ MANIFEST | 3 --
+ cmdtbl | 15 ++----------
+ configure.in | 16 +++----------
+ doc/filters.doc | 36 +-----------------------------
+ doc/macros.doc | 67 +++++++++++++++++++++-----------------------------------
+ 6 files changed, 36 insertions(+), 159 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25b.ref b/patch_cmds/diffstat/testing/case25b.ref
new file mode 100644
index 0000000..a270cc6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25b.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++--
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25f0.ref b/patch_cmds/diffstat/testing/case25f0.ref
new file mode 100644
index 0000000..72c0992
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25f0.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 58 + 0 - 0 !
+ MANIFEST | 3 2 + 1 - 0 !
+ cmdtbl | 15 12 + 3 - 0 !
+ configure.in | 16 12 + 4 - 0 !
+ doc/filters.doc | 36 34 + 2 - 0 !
+ doc/macros.doc | 67 41 + 26 - 0 !
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25k.ref b/patch_cmds/diffstat/testing/case25k.ref
new file mode 100644
index 0000000..a270cc6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25k.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++--
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25p1.ref b/patch_cmds/diffstat/testing/case25p1.ref
new file mode 100644
index 0000000..a270cc6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25p1.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++--
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25p9.ref b/patch_cmds/diffstat/testing/case25p9.ref
new file mode 100644
index 0000000..7a6e072
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25p9.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++---
+ configure.in | 16 ++++++++++----
+ filters.doc | 36 +++++++++++++++++++++++++++++--
+ macros.doc | 67 ++++++++++++++++++++++++++++++++++++-----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25r1.ref b/patch_cmds/diffstat/testing/case25r1.ref
new file mode 100644
index 0000000..c1f392c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25r1.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 ++-
+ cmdtbl | 15 ++++++++++---
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25r2.ref b/patch_cmds/diffstat/testing/case25r2.ref
new file mode 100644
index 0000000..c1f392c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25r2.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 ++-
+ cmdtbl | 15 ++++++++++---
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case25u.ref b/patch_cmds/diffstat/testing/case25u.ref
new file mode 100644
index 0000000..a270cc6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case25u.ref
@@ -0,0 +1,7 @@
+ CHANGES | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
+ MANIFEST | 3 +-
+ cmdtbl | 15 ++++++++++--
+ configure.in | 16 ++++++++++---
+ doc/filters.doc | 36 ++++++++++++++++++++++++++++--
+ doc/macros.doc | 67 ++++++++++++++++++++++++++++++++++----------------------
+ 6 files changed, 159 insertions(+), 36 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26.pat b/patch_cmds/diffstat/testing/case26.pat
new file mode 100644
index 0000000..fec3a21
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26.pat
@@ -0,0 +1,1901 @@
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/config.h /tmp/KfNDqvamm0/flwm-1.01/config.h
+--- /tmp/8FTwAYJlot/flwm-1.00/config.h 1999-08-24 22:59:35.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/config.h 2002-03-24 02:02:33.000000000 +0100
+@@ -25,6 +25,12 @@
+ // nothing is done if this is not defined:
+ //#define AUTO_RAISE 0.5
+
++// Perform "smart" autoplacement.
++// New windows are put at positions where they cover as few existing windows
++// as possible. A brute force algorithm is used, so it consumes quite a bit
++// of CPU time.
++#define SMART_PLACEMENT 1
++
+ // set this to zero to remove the multiple-desktop code. This will
+ // make flwm about 20K smaller
+ #define DESKTOPS 1
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/changelog /tmp/KfNDqvamm0/flwm-1.01/debian/changelog
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/changelog 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/changelog 2006-06-30 11:01:41.000000000 +0200
+@@ -1,3 +1,15 @@
++flwm (1.01-1) unstable; urgency=low
++
++ * New upstream release
++ + This release catch the release of the Alt key again. Closes: #246089.
++ + The following patches were applied upstream (Thanks Bill Spitzak).
++ 100_fl_filename_name 101_visible_focus 102_charstruct 103_man_typo
++ 104_g++-4.1_warning 105_double_ampersand 201_background_color
++ + Add 100_double_ampersand to fix atypo in this release.
++ * debian/watch: added.
++
++ -- Bill Allombert <ballombe@debian.org> Fri, 30 Jun 2006 01:17:06 +0200
++
+ flwm (1.00-10) unstable; urgency=low
+
+ * Add patch 104_g++-4.1_warning that fix five warnings.
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_double_ampersand.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_double_ampersand.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_double_ampersand.dpatch 1970-01-01 01:00:00.000000000 +0100
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_double_ampersand.dpatch 2006-06-30 11:01:41.000000000 +0200
+@@ -0,0 +1 @@
++patching file Menu.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_fl_filename_name.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_fl_filename_name.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_fl_filename_name.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_fl_filename_name.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,2 +0,0 @@
+-patching file main.C
+-Hunk #1 succeeded at 351 (offset -1 lines).
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/101_visible_focus.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/101_visible_focus.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/101_visible_focus.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/101_visible_focus.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-patching file main.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/102_charstruct.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/102_charstruct.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/102_charstruct.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/102_charstruct.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-patching file Rotated.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/103_man_typo.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/103_man_typo.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/103_man_typo.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/103_man_typo.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-patching file flwm.1
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/104_g++-4.1_warning.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/104_g++-4.1_warning.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/104_g++-4.1_warning.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/104_g++-4.1_warning.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,3 +0,0 @@
+-patching file Frame.C
+-patching file Menu.C
+-patching file Rotated.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/105_double_ampersand.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/105_double_ampersand.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/105_double_ampersand.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/105_double_ampersand.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-patching file Menu.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patched/201_background_color.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patched/201_background_color.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patched/201_background_color.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patched/201_background_color.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,2 +0,0 @@
+-patching file Frame.C
+-patching file Menu.C
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/00list /tmp/KfNDqvamm0/flwm-1.01/debian/patches/00list
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/00list 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/00list 2006-06-30 11:01:41.000000000 +0200
+@@ -1,8 +1,2 @@
+-100_fl_filename_name
+-101_visible_focus
+-102_charstruct
+-103_man_typo
+-104_g++-4.1_warning
+-105_double_ampersand
++100_double_ampersand
+ 200_Debian_menu
+-201_background_color
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_double_ampersand.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_double_ampersand.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_double_ampersand.dpatch 1970-01-01 01:00:00.000000000 +0100
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_double_ampersand.dpatch 2006-06-30 11:01:41.000000000 +0200
+@@ -0,0 +1,19 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 100_double_ampersand.dpatch by <ballombe@debian.org>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: fix handling of ampersand in titles in windows list.
++
++@DPATCH@
++diff -urNad flwm-1.01~/Menu.C flwm-1.01/Menu.C
++--- flwm-1.01~/Menu.C 2006-06-30 10:52:34.000000000 +0200
+++++ flwm-1.01/Menu.C 2006-06-30 10:54:31.000000000 +0200
++@@ -98,7 +98,7 @@
++ char* t = buf;
++ while (t < buf+254 && *l) {
++ if (*l=='&') *t++ = *l;
++- *t++ = *l;
+++ *t++ = *l++;
++ }
++ *t = 0;
++ l = buf;
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_fl_filename_name.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_fl_filename_name.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_fl_filename_name.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_fl_filename_name.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,20 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 100_fl_filename_name.dpatch by Tommi Virtanen <tv@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Transition from fltk-1.0 to fltk-1.1.
+-## DP: Applied upstream.
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/main.C flwm-1.00/main.C
+---- flwm-1.00~/main.C 2006-02-23 21:41:10.000000000 +0100
+-+++ flwm-1.00/main.C 2006-02-23 21:41:39.000000000 +0100
+-@@ -352,7 +352,7 @@
+- }
+-
+- int main(int argc, char** argv) {
+-- program_name = filename_name(argv[0]);
+-+ program_name = fl_filename_name(argv[0]);
+- int i; if (Fl::args(argc, argv, i, arg) < argc) Fl::error(
+- "options are:\n"
+- " -d[isplay] host:#.#\tX display & screen to use\n"
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/101_visible_focus.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/101_visible_focus.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/101_visible_focus.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/101_visible_focus.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,19 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 101_visible_focus.dpatch by Bill Allombert <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Restore fltk-1.0 focus behaviour
+-## DP: (Applied upstream)
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/main.C flwm-1.00/main.C
+---- flwm-1.00~/main.C 2006-02-23 21:41:57.000000000 +0100
+-+++ flwm-1.00/main.C 2006-02-23 21:42:21.000000000 +0100
+-@@ -298,6 +298,7 @@
+- XFree((void *)wins);
+-
+- #endif
+-+ Fl::visible_focus(0);
+- }
+-
+- ////////////////////////////////////////////////////////////////
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/102_charstruct.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/102_charstruct.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/102_charstruct.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/102_charstruct.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,45 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 102_charstruct.dpatch by Tommi Virtanen <tv@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Support fonts for which fontstruct->per_char is NULL.
+-## DP: (Applied upstream).
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/Rotated.C flwm-1.00/Rotated.C
+---- flwm-1.00~/Rotated.C 2006-02-23 21:42:31.000000000 +0100
+-+++ flwm-1.00/Rotated.C 2006-02-23 21:43:03.000000000 +0100
+-@@ -116,20 +116,27 @@
+- /* font needs rotation ... */
+- /* loop through each character ... */
+- for (ichar = min_char; ichar <= max_char; ichar++) {
+-+ XCharStruct *charstruct;
+-
+- index = ichar-fontstruct->min_char_or_byte2;
+--
+-+
+-+ if (fontstruct->per_char) {
+-+ charstruct = &fontstruct->per_char[index];
+-+ } else {
+-+ charstruct = &fontstruct->min_bounds;
+-+ }
+-+
+- /* per char dimensions ... */
+- ascent = rotfont->per_char[ichar].ascent =
+-- fontstruct->per_char[index].ascent;
+-+ charstruct->ascent;
+- descent = rotfont->per_char[ichar].descent =
+-- fontstruct->per_char[index].descent;
+-+ charstruct->descent;
+- lbearing = rotfont->per_char[ichar].lbearing =
+-- fontstruct->per_char[index].lbearing;
+-+ charstruct->lbearing;
+- rbearing = rotfont->per_char[ichar].rbearing =
+-- fontstruct->per_char[index].rbearing;
+-+ charstruct->rbearing;
+- rotfont->per_char[ichar].width =
+-- fontstruct->per_char[index].width;
+-+ charstruct->width;
+-
+- /* some space chars have zero body, but a bitmap can't have ... */
+- if (!ascent && !descent)
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/103_man_typo.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/103_man_typo.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/103_man_typo.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/103_man_typo.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,19 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 103_man_typo.dpatch by Bill Allombert <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Fix typo in man page.
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/flwm.1 flwm-1.00/flwm.1
+---- flwm-1.00~/flwm.1 2006-02-23 21:54:54.000000000 +0100
+-+++ flwm-1.00/flwm.1 2006-02-23 21:55:39.000000000 +0100
+-@@ -78,7 +78,7 @@
+-
+- .SH MENU ITEMS
+-
+--Flwm can launch programs from it's menu. This is controlled by files
+-+Flwm can launch programs from its menu. This is controlled by files
+- in the directory
+- .B ~/.wmx
+- (this was chosen to be compatible with wmx and wm2).
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/104_g++-4.1_warning.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/104_g++-4.1_warning.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/104_g++-4.1_warning.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/104_g++-4.1_warning.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,58 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 104_g++-4.1-warning.dpatch by Bill Allombert <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Fix 5 g++ -4.1 warnings
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/Frame.C flwm-1.00/Frame.C
+---- flwm-1.00~/Frame.C 2006-06-10 13:41:04.000000000 +0200
+-+++ flwm-1.00/Frame.C 2006-06-10 13:41:08.000000000 +0200
+-@@ -1681,15 +1681,15 @@
+- int format;
+- unsigned long n, extra;
+- int status;
+-- void* prop;
+-+ uchar* prop;
+- status = XGetWindowProperty(fl_display, w,
+- a, 0L, 256L, False, type, &realType,
+-- &format, &n, &extra, (uchar**)&prop);
+-+ &format, &n, &extra, &prop);
+- if (status != Success) return 0;
+- if (!prop) return 0;
+- if (!n) {XFree(prop); return 0;}
+- if (np) *np = (int)n;
+-- return prop;
+-+ return (void *)prop;
+- }
+-
+- int Frame::getIntProperty(Atom a, Atom type, int deflt) const {
+-diff -urNad flwm-1.00~/Menu.C flwm-1.00/Menu.C
+---- flwm-1.00~/Menu.C 2006-06-10 13:41:04.000000000 +0200
+-+++ flwm-1.00/Menu.C 2006-06-10 13:41:08.000000000 +0200
+-@@ -246,8 +246,8 @@
+- if (fork() == 0) {
+- if (fork() == 0) {
+- close(ConnectionNumber(fl_display));
+-- if (name == xtermname) execlp(name, name, "-ut", 0);
+-- else execl(name, name, 0);
+-+ if (name == xtermname) execlp(name, name, "-ut", NULL);
+-+ else execl(name, name, NULL);
+- fprintf(stderr, "flwm: can't run %s, %s\n", name, strerror(errno));
+- XBell(fl_display, 70);
+- exit(1);
+-diff -urNad flwm-1.00~/Rotated.C flwm-1.00/Rotated.C
+---- flwm-1.00~/Rotated.C 2006-06-10 13:41:07.000000000 +0200
+-+++ flwm-1.00/Rotated.C 2006-06-10 13:41:41.000000000 +0200
+-@@ -242,9 +242,9 @@
+- }
+-
+- for (ichar = 0; ichar < min_char; ichar++)
+-- rotfont->per_char[ichar] = rotfont->per_char['?'];
+-+ rotfont->per_char[ichar] = rotfont->per_char[(int)'?'];
+- for (ichar = max_char+1; ichar < 256; ichar++)
+-- rotfont->per_char[ichar] = rotfont->per_char['?'];
+-+ rotfont->per_char[ichar] = rotfont->per_char[(int)'?'];
+-
+- /* free pixmap and GC ... */
+- XFreePixmap(dpy, canvas);
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/105_double_ampersand.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/105_double_ampersand.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/105_double_ampersand.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/105_double_ampersand.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,48 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 105_double_ampersand.dpatch by Bill Allombert <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Handle & in window titles correctly in the windows list.
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/Menu.C flwm-1.00/Menu.C
+---- flwm-1.00~/Menu.C 2006-03-24 00:02:57.000000000 +0100
+-+++ flwm-1.00/Menu.C 2006-03-24 00:03:18.000000000 +0100
+-@@ -20,6 +20,24 @@
+- #include <dirent.h>
+- #include <sys/stat.h>
+-
+-+static char *double_ampersand(const char *s)
+-+{
+-+ long i,l;
+-+ for(i=0,l=0;s[i];i++)
+-+ if (s[i]=='&')
+-+ l++;
+-+ char *c = new (char [l+i+1]);
+-+ for(i=0,l=0;s[i];i++)
+-+ {
+-+ c[l++]=s[i];
+-+ if (s[i]=='&')
+-+ c[l++]=s[i];
+-+ }
+-+ c[l]=0;
+-+ return c;
+-+}
+-+
+-+
+- // it is possible for the window to be deleted or withdrawn while
+- // the menu is up. This will detect that case (with reasonable
+- // reliability):
+-@@ -90,8 +108,11 @@
+- }
+- fl_font(o->font, o->size);
+- fl_color((Fl_Color)o->color);
+-- const char* l = f->label(); if (!l) l = "unnamed";
+-+ const char* l = f->label();
+-+ if (!l) l = "unnamed";
+-+ else l = double_ampersand(f->label());
+- fl_draw(l, X+MENU_ICON_W+3, Y, W-MENU_ICON_W-3, H, align);
+-+ delete l;
+- }
+-
+- static void
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/200_Debian_menu.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/200_Debian_menu.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/200_Debian_menu.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/200_Debian_menu.dpatch 2006-06-30 11:01:41.000000000 +0200
+@@ -5,10 +5,10 @@
+ ## DP: Add Debian menu support.
+
+ @DPATCH@
+-diff -urNad flwm-1.00~/Menu.C flwm-1.00/Menu.C
+---- flwm-1.00~/Menu.C 2006-06-10 22:22:59.000000000 +0200
+-+++ flwm-1.00/Menu.C 2006-06-10 22:23:00.000000000 +0200
+-@@ -395,7 +395,11 @@
++diff -urNad flwm-1.01~/Menu.C flwm-1.01/Menu.C
++--- flwm-1.01~/Menu.C 2006-06-30 09:02:01.000000000 +0200
+++++ flwm-1.01/Menu.C 2006-06-30 09:02:05.000000000 +0200
++@@ -393,7 +393,11 @@
+ strcpy(path, home);
+ if (path[strlen(path)-1] != '/') strcat(path, "/");
+ strcat(path, ".wmx/");
+@@ -21,9 +21,9 @@
+ if (st.st_mtime == wmx_time) return;
+ wmx_time = st.st_mtime;
+ num_wmx = 0;
+-diff -urNad flwm-1.00~/flwm.1 flwm-1.00/flwm.1
+---- flwm-1.00~/flwm.1 2006-06-10 22:22:59.000000000 +0200
+-+++ flwm-1.00/flwm.1 2006-06-10 22:23:00.000000000 +0200
++diff -urNad flwm-1.01~/flwm.1 flwm-1.01/flwm.1
++--- flwm-1.01~/flwm.1 2006-06-30 09:02:01.000000000 +0200
+++++ flwm-1.01/flwm.1 2006-06-30 09:02:05.000000000 +0200
+ @@ -102,10 +102,13 @@
+ chmod +x !*
+ .fi
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/201_background_color.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/201_background_color.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/201_background_color.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/201_background_color.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,57 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 201_background_color.dpatch by Bill Allombert <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: Fix -fg and -bg options
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/Frame.C flwm-1.00/Frame.C
+---- flwm-1.00~/Frame.C 2006-06-10 22:24:58.000000000 +0200
+-+++ flwm-1.00/Frame.C 2006-06-10 22:25:00.000000000 +0200
+-@@ -88,6 +88,7 @@
+- min_w_button.callback(button_cb_static);
+- end();
+- box(FL_NO_BOX); // relies on background color erasing interior
+-+ labelcolor(FL_FOREGROUND_COLOR);
+- next = first;
+- first = this;
+-
+-@@ -674,7 +675,7 @@
+- XSetWindowAttributes a;
+- a.background_pixel = fl_xpixel(FL_SELECTION_COLOR);
+- XChangeWindowAttributes(fl_display, fl_xid(this), CWBackPixel, &a);
+-- labelcolor(contrast(FL_BLACK, FL_SELECTION_COLOR));
+-+ labelcolor(contrast(FL_FOREGROUND_COLOR, FL_SELECTION_COLOR));
+- XClearArea(fl_display, fl_xid(this), 2, 2, w()-4, h()-4, 1);
+- #else
+- #if defined(SHOW_CLOCK)
+-@@ -694,7 +695,7 @@
+- XSetWindowAttributes a;
+- a.background_pixel = fl_xpixel(FL_GRAY);
+- XChangeWindowAttributes(fl_display, fl_xid(this), CWBackPixel, &a);
+-- labelcolor(FL_BLACK);
+-+ labelcolor(FL_FOREGROUND_COLOR);
+- XClearArea(fl_display, fl_xid(this), 2, 2, w()-4, h()-4, 1);
+- #else
+- #if defined(SHOW_CLOCK)
+-diff -urNad flwm-1.00~/Menu.C flwm-1.00/Menu.C
+---- flwm-1.00~/Menu.C 2006-06-10 22:24:59.000000000 +0200
+-+++ flwm-1.00/Menu.C 2006-06-10 22:25:00.000000000 +0200
+-@@ -99,7 +99,7 @@
+- if (h < 3) h = 3;
+- if (y+h > SCREEN_H) y = SCREEN_H-h;
+- if (y < 0) y = 0;
+-- fl_color(FL_BLACK);
+-+ fl_color(FL_FOREGROUND_COLOR);
+- if (c->state() == ICONIC)
+- fl_rect(X+x+SCREEN_DX, Y+y+SCREEN_DX, w, h);
+- else
+-@@ -304,7 +304,7 @@
+- m.shortcut(0);
+- m.labelfont(MENU_FONT_SLOT);
+- m.labelsize(MENU_FONT_SIZE);
+-- m.labelcolor(FL_BLACK);
+-+ m.labelcolor(FL_FOREGROUND_COLOR);
+- }
+-
+- #if WMX_MENU_ITEMS
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/patches/202_background_color_2.dpatch /tmp/KfNDqvamm0/flwm-1.01/debian/patches/202_background_color_2.dpatch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/patches/202_background_color_2.dpatch 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/patches/202_background_color_2.dpatch 1970-01-01 01:00:00.000000000 +0100
+@@ -1,92 +0,0 @@
+-#! /bin/sh /usr/share/dpatch/dpatch-run
+-## 203_background_color.dpatch by <ballombe@debian.org>
+-##
+-## All lines beginning with `## DP:' are a description of the patch.
+-## DP: fix the -fg -bg, -bg2 options.
+-
+-@DPATCH@
+-diff -urNad flwm-1.00~/Menu.C flwm-1.00/Menu.C
+---- flwm-1.00~/Menu.C 2006-02-23 21:32:53.000000000 +0100
+-+++ flwm-1.00/Menu.C 2006-02-23 21:36:32.000000000 +0100
+-@@ -172,10 +172,14 @@
+- new_desktop_input = new Fl_Input(10,30,170,25,"New desktop name:");
+- new_desktop_input->align(FL_ALIGN_TOP_LEFT);
+- new_desktop_input->labelfont(FL_BOLD);
+-+ new_desktop_input->labelcolor(FL_FOREGROUND_COLOR);
+-+
+- Fl_Return_Button* b = new Fl_Return_Button(100,60,80,20,"OK");
+- b->callback(new_desktop_ok_cb);
+-+ b->labelcolor(FL_FOREGROUND_COLOR);
+- Fl_Button* b2 = new Fl_Button(10,60,80,20,"Cancel");
+- b2->callback(cancel_cb);
+-+ b2->labelcolor(FL_FOREGROUND_COLOR);
+- w->set_non_modal();
+- w->end();
+- }
+-@@ -217,10 +221,13 @@
+- w = new FrameWindow(190,90);
+- Fl_Box* l = new Fl_Box(0, 0, 190, 60, "Really log out?");
+- l->labelfont(FL_BOLD);
+-+ l->labelcolor(FL_FOREGROUND_COLOR);
+- Fl_Return_Button* b = new Fl_Return_Button(100,60,80,20,"OK");
+- b->callback(exit_cb);
+-+ b->labelcolor(FL_FOREGROUND_COLOR);
+- Fl_Button* b2 = new Fl_Button(10,60,80,20,"Cancel");
+- b2->callback(cancel_cb);
+-+ b2->labelcolor(FL_FOREGROUND_COLOR);
+- w->set_non_modal();
+- w->end();
+- }
+-@@ -280,10 +287,10 @@
+- m.label(data);
+- m.flags = 0;
+- m.labeltype(FL_NORMAL_LABEL);
+-+ m.labelcolor(FL_FOREGROUND_COLOR);
+- m.shortcut(0);
+- m.labelfont(MENU_FONT_SLOT);
+- m.labelsize(MENU_FONT_SIZE);
+-- m.labelcolor(FL_FOREGROUND_COLOR);
+- }
+-
+- #if WMX_MENU_ITEMS
+-@@ -513,6 +520,7 @@
+- if (c->state() == UNMAPPED || c->transient_for()) continue;
+- init(menu[n],(char*)c);
+- menu[n].labeltype(FRAME_LABEL);
+-+ menu[n].labelcolor(FL_FOREGROUND_COLOR);
+- menu[n].callback(frame_callback, c);
+- if (is_active_frame(c)) preset = menu+n;
+- n++;
+-@@ -542,6 +550,7 @@
+- if (c->desktop() == d || !c->desktop() && d == Desktop::current()) {
+- init(menu[n],(char*)c);
+- menu[n].labeltype(FRAME_LABEL);
+-+ menu[n].labelcolor(FL_FOREGROUND_COLOR);
+- menu[n].callback(d == Desktop::current() ?
+- frame_callback : move_frame_callback, c);
+- if (d == Desktop::current() && is_active_frame(c)) preset = menu+n;
+-@@ -589,7 +598,10 @@
+- if (one_desktop)
+- #endif
+- if (!level)
+-+ {
+- menu[n].labeltype(TEXT_LABEL);
+-+ menu[n].labelcolor(FL_FOREGROUND_COLOR);
+-+ }
+-
+- int nextlev = (i==num_wmx-1)?0:strspn(wmxlist[i+1], "/")-1;
+- if (nextlev < level) {
+-@@ -621,8 +633,11 @@
+- if (one_desktop)
+- #endif
+- // fix the menus items so they are indented to align with window names:
+-- while (menu[n].label()) menu[n++].labeltype(TEXT_LABEL);
+--
+-+ while (menu[n].label())
+-+ {
+-+ menu[n].labelcolor(FL_FOREGROUND_COLOR);
+-+ menu[n++].labeltype(TEXT_LABEL);
+-+ }
+- const Fl_Menu_Item* picked =
+- menu->popup(Fl::event_x(), Fl::event_y(), 0, preset);
+- if (picked && picked->callback()) picked->do_callback(0);
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/debian/watch /tmp/KfNDqvamm0/flwm-1.01/debian/watch
+--- /tmp/8FTwAYJlot/flwm-1.00/debian/watch 1970-01-01 01:00:00.000000000 +0100
++++ /tmp/KfNDqvamm0/flwm-1.01/debian/watch 2006-06-30 11:01:41.000000000 +0200
+@@ -0,0 +1,3 @@
++# Site Directory Pattern Version Script
++version=2
++http://flwm.sourceforge.net/flwm-(.*)\.tgz debian uupdate
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/flwm.1 /tmp/KfNDqvamm0/flwm-1.01/flwm.1
+--- /tmp/8FTwAYJlot/flwm-1.00/flwm.1 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/flwm.1 2006-06-30 11:01:41.000000000 +0200
+@@ -184,14 +184,14 @@
+ the keyboard, use left arrow to go to the desktop names, move up and
+ down to the other desktop).
+
+-If a desktop is empty you can delete it. It's sub menu will show
++If a desktop is empty you can delete it. Its sub menu will show
+ .B delete this desktop.
+ Pick that and the desktop is gone.
+
+ .B Sticky
+ is a special "desktop": windows on it appear on all desktops. To make
+ a window "sticky" switch to the Sticky desktop and pick the window off
+-it's current desktop (thus "moving" it to the Sticky desktop). To
++its current desktop (thus "moving" it to the Sticky desktop). To
+ "unstick" a window go to another desktop and pick the window off the
+ sticky desktop menu.
+
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/flwm_wmconfig /tmp/KfNDqvamm0/flwm-1.01/flwm_wmconfig
+--- /tmp/8FTwAYJlot/flwm-1.00/flwm_wmconfig 1999-04-26 21:09:10.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/flwm_wmconfig 2000-09-19 18:38:37.000000000 +0200
+@@ -16,7 +16,9 @@
+ set name ""
+ set exec ""
+ while {[gets $f list]>=0} {
+- if [llength $list]<3 continue
++ set n 0
++ catch {set n [llength $list]}
++ if $n<3 continue
+ set tag [lindex $list 1]
+ set value [lrange $list 2 1000]
+ if [llength $value]==1 {set value [lindex $value 0]}
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Frame.C /tmp/KfNDqvamm0/flwm-1.01/Frame.C
+--- /tmp/8FTwAYJlot/flwm-1.00/Frame.C 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Frame.C 2006-06-29 08:08:35.000000000 +0200
+@@ -8,6 +8,7 @@
+ #include <FL/fl_draw.H>
+ #include "Rotated.H"
+
++
+ static Atom wm_state = 0;
+ static Atom wm_change_state;
+ static Atom wm_protocols;
+@@ -63,7 +64,7 @@
+ // passed for an already-existing window when the window manager is
+ // starting up. If so we don't want to alter the state, size, or
+ // position. If null than this is a MapRequest of a new window.
+-Frame::Frame(Window window, XWindowAttributes* existing) :
++Frame::Frame(XWindow window, XWindowAttributes* existing) :
+ Fl_Window(0,0),
+ window_(window),
+ state_flags_(0),
+@@ -78,6 +79,9 @@
+ max_w_button(BUTTON_LEFT,BUTTON_TOP+BUTTON_H,BUTTON_W,BUTTON_H,"w"),
+ min_w_button(BUTTON_LEFT,BUTTON_TOP+2*BUTTON_H,BUTTON_W,BUTTON_H,"W")
+ {
++#if FL_MAJOR_VERSION > 1
++ clear_double_buffer();
++#endif
+ close_button.callback(button_cb_static);
+ iconize_button.callback(button_cb_static);
+ max_h_button.type(FL_TOGGLE_BUTTON);
+@@ -224,20 +228,9 @@
+ show_hide_buttons();
+
+ if (autoplace && !existing && !(transient_for() && (x() || y()))) {
+- // autoplacement (stupid version for now)
+- x(Root->x()+(Root->w()-w())/2);
+- y(Root->y()+(Root->h()-h())/2);
+- // move it until it does not hide any existing windows:
+- const int delta = TITLE_WIDTH+LEFT;
+- for (Frame* f = next; f; f = f->next) {
+- if (f->x()+delta > x() && f->y()+delta > y() &&
+- f->x()+f->w()-delta < x()+w() && f->y()+f->h()-delta < y()+h()) {
+- x(max(x(),f->x()+delta));
+- y(max(y(),f->y()+delta));
+- f = this;
+- }
+- }
++ place_window();
+ }
++
+ // move window so contents and border are visible:
+ x(force_x_onscreen(x(), w()));
+ y(force_y_onscreen(y(), h()));
+@@ -261,7 +254,8 @@
+ sattr.bit_gravity = NorthWestGravity;
+ sattr.override_redirect = 1;
+ sattr.background_pixel = fl_xpixel(FL_GRAY);
+- Fl_X::set_xid(this, XCreateWindow(fl_display, fl_xid(Root),
++ Fl_X::set_xid(this, XCreateWindow(fl_display,
++ RootWindow(fl_display,fl_screen),
+ x(), y(), w(), h(), 0,
+ fl_visual->depth,
+ InputOutput,
+@@ -278,15 +272,140 @@
+ sendConfigureNotify(); // many apps expect this even if window size unchanged
+
+ #if CLICK_RAISES || CLICK_TO_TYPE
+- XGrabButton(fl_display, AnyButton, AnyModifier, window, False,
+- ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
++ if (!dont_set_event_mask)
++ XGrabButton(fl_display, AnyButton, AnyModifier, window, False,
++ ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
+ #endif
+
+ if (state_ == NORMAL) {
+ XMapWindow(fl_display, fl_xid(this));
+ if (!existing) activate_if_transient();
+ }
++ set_visible();
++}
++
++#if SMART_PLACEMENT
++// Helper functions for "smart" window placement.
++int overlap1(int p1, int l1, int p2, int l2) {
++ int ret = 0;
++ if(p1 <= p2 && p2 <= p1 + l1) {
++ ret = min(p1 + l1 - p2, l2);
++ } else if (p2 <= p1 && p1 <= p2 + l2) {
++ ret = min(p2 + l2 - p1, l1);
++ }
++ return ret;
++}
++
++int overlap(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) {
++ return (overlap1(x1, w1, x2, w2) * overlap1(y1, h1, y2, h2));
++}
++
++// Compute the overlap with existing windows.
++// For normal windows the overlapping area is taken into account plus a
++// constant value for every overlapping window.
++// The active window counts twice.
++// For iconic windows half the overlapping area is taken into account.
++int getOverlap(int x, int y, int w, int h, Frame *first, Frame *self) {
++ int ret = 0;
++ short state;
++ for (Frame* f = first; f; f = f->next) {
++ if (f != self) {
++ state = f->state();
++ if (state == NORMAL || state == ICONIC) {
++ int o = overlap(x, y, w, h, f->x(), f->y(), f->w(), f->h());
++ if (state == NORMAL) {
++ ret = ret + o + (o>0?40000:0) + (o * f->active());
++ } else if (state == ICONIC) {
++ ret = ret + o/2;
++ }
++ }
++ }
++ }
++ return ret;
++}
++
++// autoplacement (brute force version for now)
++void Frame::place_window() {
++ int min_overlap = -1;
++ int tmp_x, tmp_y, tmp_o;
++ int best_x = 0;
++ int best_y = 0;
++ int _w = w();
++ int _h = h();
++ int max_x = Root->x() + Root->w();
++ int max_y = Root->y() + Root->h();
++
++ Frame *f1 = Frame::first;
++ for(int i=0;; i++) {
++ if (i==0) {
++ tmp_x = 0;
++ } else if (i==1) {
++ tmp_x = max_x - _w;
++ } else {
++ if (f1 == this) {
++ f1 = f1->next;
++ }
++ if (!f1) {
++ break;
++ }
++ tmp_x = f1->x() + f1->w();
++ f1 = f1->next;
++ }
++ Frame *f2 = Frame::first;
++ for(int j=0;; j++) {
++ if (j==0) {
++ tmp_y = 0;
++ } else if (j==1) {
++ tmp_y = max_y - _h;
++ } else {
++ if (f2 == this) {
++ f2 = f2->next;
++ }
++ if (!f2) {
++ break;
++ }
++ tmp_y = f2->y() + f2->h();
++ f2 = f2->next;
++ }
++
++ if ((tmp_x + _w <= max_x) && (tmp_y + _h <= max_y)) {
++ tmp_o = getOverlap(tmp_x, tmp_y, _w, _h, Frame::first, this);
++ if(tmp_o < min_overlap || min_overlap < 0) {
++ best_x = tmp_x;
++ best_y = tmp_y;
++ min_overlap = tmp_o;
++ if (min_overlap == 0) {
++ break;
++ }
++ }
++ }
++ }
++ if (min_overlap == 0) {
++ break;
++ }
++ }
++ x(best_x);
++ y(best_y);
++}
++
++#else
++
++// autoplacement (stupid version for now)
++void Frame::place_window() {
++ x(Root->x()+(Root->w()-w())/2);
++ y(Root->y()+(Root->h()-h())/2);
++ // move it until it does not hide any existing windows:
++ const int delta = TITLE_WIDTH+LEFT;
++ for (Frame* f = next; f; f = f->next) {
++ if (f->x()+delta > x() && f->y()+delta > y() &&
++ f->x()+f->w()-delta < x()+w() && f->y()+f->h()-delta < y()+h()) {
++ x(max(x(),f->x()+delta));
++ y(max(y(),f->y()+delta));
++ f = this;
++ }
++ }
+ }
++#endif
+
+ // modify the passed X & W to a legal horizontal window position
+ int Frame::force_x_onscreen(int X, int W) {
+@@ -334,10 +453,12 @@
+ // a legal state value to this location:
+ state_ = UNMAPPED;
+
++#if FL_MAJOR_VERSION < 2
+ // fix fltk bug:
+ fl_xfocus = 0;
+ fl_xmousewin = 0;
+ Fl::focus_ = 0;
++#endif
+
+ // remove any pointers to this:
+ Frame** cp; for (cp = &first; *cp; cp = &((*cp)->next))
+@@ -555,7 +676,7 @@
+ // see if they set "input hint" to non-zero:
+ // prop[3] should be nonzero but the only example of this I have
+ // found is Netscape 3.0 and it sets it to zero...
+- if (!shown() && (prop[0]&4) /*&& prop[3]*/) set_flag(MODAL);
++ if (!shown() && (prop[0]&4) /*&& prop[3]*/) set_flag(::MODAL);
+
+ // see if it is forcing the iconize button back on. This makes
+ // transient_for act like group instead...
+@@ -579,7 +700,7 @@
+ delete[] window_Colormaps;
+ }
+ int n;
+- Window* cw = (Window*)getProperty(wm_colormap_windows, XA_WINDOW, &n);
++ XWindow* cw = (XWindow*)getProperty(wm_colormap_windows, XA_WINDOW, &n);
+ if (cw) {
+ colormapWinCount = n;
+ colormapWindows = cw;
+@@ -645,7 +766,7 @@
+ int Frame::activate(int warp) {
+ // see if a modal & newer window is up:
+ for (Frame* c = first; c && c != this; c = c->next)
+- if (c->flag(MODAL) && c->transient_for() == this)
++ if (c->flag(::MODAL) && c->transient_for() == this)
+ if (c->activate(warp)) return 1;
+ // ignore invisible windows:
+ if (state() != NORMAL || w() <= dwidth) return 0;
+@@ -671,14 +792,14 @@
+ if (active_ != this) {
+ if (active_) active_->deactivate();
+ active_ = this;
+-#if defined(ACTIVE_COLOR)
++#ifdef ACTIVE_COLOR
+ XSetWindowAttributes a;
+ a.background_pixel = fl_xpixel(FL_SELECTION_COLOR);
+ XChangeWindowAttributes(fl_display, fl_xid(this), CWBackPixel, &a);
+ labelcolor(contrast(FL_FOREGROUND_COLOR, FL_SELECTION_COLOR));
+ XClearArea(fl_display, fl_xid(this), 2, 2, w()-4, h()-4, 1);
+ #else
+-#if defined(SHOW_CLOCK)
++#ifdef SHOW_CLOCK
+ redraw();
+ #endif
+ #endif
+@@ -691,14 +812,14 @@
+ // this private function should only be called by constructor and if
+ // the window is active():
+ void Frame::deactivate() {
+-#if defined(ACTIVE_COLOR)
++#ifdef ACTIVE_COLOR
+ XSetWindowAttributes a;
+ a.background_pixel = fl_xpixel(FL_GRAY);
+ XChangeWindowAttributes(fl_display, fl_xid(this), CWBackPixel, &a);
+ labelcolor(FL_FOREGROUND_COLOR);
+ XClearArea(fl_display, fl_xid(this), 2, 2, w()-4, h()-4, 1);
+ #else
+-#if defined(SHOW_CLOCK)
++#ifdef SHOW_CLOCK
+ redraw();
+ #endif
+ #endif
+@@ -738,9 +859,9 @@
+ switch (newstate) {
+ case UNMAPPED:
+ throw_focus();
+- set_state_flag(IGNORE_UNMAP);
+ XUnmapWindow(fl_display, fl_xid(this));
+- XUnmapWindow(fl_display, window_);
++ //set_state_flag(IGNORE_UNMAP);
++ //XUnmapWindow(fl_display, window_);
+ XRemoveFromSaveSet(fl_display, window_);
+ break;
+ case NORMAL:
+@@ -754,9 +875,9 @@
+ XAddToSaveSet(fl_display, window_);
+ } else if (oldstate == NORMAL) {
+ throw_focus();
+- set_state_flag(IGNORE_UNMAP);
+ XUnmapWindow(fl_display, fl_xid(this));
+- XUnmapWindow(fl_display, window_);
++ //set_state_flag(IGNORE_UNMAP);
++ //XUnmapWindow(fl_display, window_);
+ } else {
+ return; // don't setStateProperty IconicState multiple times
+ }
+@@ -906,10 +1027,10 @@
+ int minh = (nh < h()) ? nh : h();
+ XClearArea(fl_display, fl_xid(this), 0, minh-BOTTOM, w(), BOTTOM, 1);
+ // see if label or close box moved, erase the minimum area:
+- int old_label_y = label_y;
+- int old_label_h = label_h;
++// int old_label_y = label_y;
++// int old_label_h = label_h;
+ h(nh); show_hide_buttons();
+-#ifdef SHOW_CLOCK
++#if 1 //def SHOW_CLOCK
+ int t = label_y + 3; // we have to clear the entire label area
+ #else
+ int t = nh;
+@@ -1076,6 +1197,12 @@
+
+ // make sure fltk does not try to set the window size:
+ void Frame::resize(int, int, int, int) {}
++// For fltk2.0:
++void Frame::layout() {
++#if FL_MAJOR_VERSION>1
++ layout_damage(0); // actually this line is not needed in newest cvs fltk2.0
++#endif
++}
+
+ ////////////////////////////////////////////////////////////////
+
+@@ -1111,19 +1238,28 @@
+
+ ////////////////////////////////////////////////////////////////
+ // Drawing code:
++#if FL_MAJOR_VERSION>1
++# include <fltk/Box.h>
++#endif
+
+ void Frame::draw() {
+ if (flag(NO_BORDER)) return;
+ if (!flag(THIN_BORDER)) Fl_Window::draw();
+ if (damage() != FL_DAMAGE_CHILD) {
+-#if ACTIVE_COLOR
++#ifdef ACTIVE_COLOR
+ fl_frame2(active() ? "AAAAJJWW" : "AAAAJJWWNNTT",0,0,w(),h());
+ if (active()) {
+ fl_color(FL_GRAY_RAMP+('N'-'A'));
+ fl_xyline(2, h()-3, w()-3, 2);
+ }
+ #else
++# if FL_MAJOR_VERSION>1
++ static fltk::FrameBox framebox(0,"AAAAJJWWNNTT");
++ drawstyle(style(),fltk::INVISIBLE); // INVISIBLE = draw edge only
++ framebox.draw(Rectangle(w(),h()));
++# else
+ fl_frame("AAAAWWJJTTNN",0,0,w(),h());
++# endif
+ #endif
+ if (!flag(THIN_BORDER) && label_h > 3) {
+ #ifdef SHOW_CLOCK
+@@ -1169,39 +1305,48 @@
+ #endif
+
+ void FrameButton::draw() {
++#if FL_MAJOR_VERSION>1
++ const int x = value()?1:0;
++ const int y = x;
++ drawstyle(style(),flags()|fltk::OUTPUT);
++ FL_UP_BOX->draw(Rectangle(w(),h()));
++#else
++ const int x = this->x();
++ const int y = this->y();
+ Fl_Widget::draw_box(value() ? FL_DOWN_FRAME : FL_UP_FRAME, FL_GRAY);
++#endif
+ fl_color(parent()->labelcolor());
+ switch (label()[0]) {
+ case 'W':
+ #if MINIMIZE_ARROW
+- fl_line (x()+2,y()+(h())/2,x()+w()-4,y()+h()/2);
+- fl_line (x()+2,y()+(h())/2,x()+2+4,y()+h()/2+4);
+- fl_line (x()+2,y()+(h())/2,x()+2+4,y()+h()/2-4);
++ fl_line (x+2,y+(h())/2,x+w()-4,y+h()/2);
++ fl_line (x+2,y+(h())/2,x+2+4,y+h()/2+4);
++ fl_line (x+2,y+(h())/2,x+2+4,y+h()/2-4);
+ #else
+- fl_rect(x()+(h()-7)/2,y()+3,2,h()-6);
++ fl_rect(x+(h()-7)/2,y+3,2,h()-6);
+ #endif
+ return;
+ case 'w':
+- fl_rect(x()+2,y()+(h()-7)/2,w()-4,7);
++ fl_rect(x+2,y+(h()-7)/2,w()-4,7);
+ return;
+ case 'h':
+- fl_rect(x()+(h()-7)/2,y()+2,7,h()-4);
++ fl_rect(x+(h()-7)/2,y+2,7,h()-4);
+ return;
+ case 'X':
+ #if CLOSE_X
+- fl_line(x()+2,y()+3,x()+w()-5,y()+h()-4);
+- fl_line(x()+3,y()+3,x()+w()-4,y()+h()-4);
+- fl_line(x()+2,y()+h()-4,x()+w()-5,y()+3);
+- fl_line(x()+3,y()+h()-4,x()+w()-4,y()+3);
++ fl_line(x+2,y+3,x+w()-5,y+h()-4);
++ fl_line(x+3,y+3,x+w()-4,y+h()-4);
++ fl_line(x+2,y+h()-4,x+w()-5,y+3);
++ fl_line(x+3,y+h()-4,x+w()-4,y+3);
+ #endif
+ #if CLOSE_HITTITE_LIGHTNING
+- fl_arc(x()+3,y()+3,w()-6,h()-6,0,360);
+- fl_line(x()+7,y()+3, x()+7,y()+11);
++ fl_arc(x+3,y+3,w()-6,h()-6,0,360);
++ fl_line(x+7,y+3, x+7,y+11);
+ #endif
+ return;
+ case 'i':
+ #if ICONIZE_BOX
+- fl_rect(x()+w()/2-1,y()+h()/2-1,3,3);
++ fl_rect(x+w()/2-1,y+h()/2-1,3,3);
+ #endif
+ return;
+ }
+@@ -1320,6 +1465,9 @@
+ c = FL_CURSOR_NESW;
+ break;
+ }
++#if FL_MAJOR_VERSION>1
++ cursor(c);
++#else
+ static Frame* previous_frame;
+ static Fl_Cursor previous_cursor;
+ if (this != previous_frame || c != previous_cursor) {
+@@ -1327,6 +1475,7 @@
+ previous_cursor = c;
+ cursor(c, CURSOR_FG_SLOT, CURSOR_BG_SLOT);
+ }
++#endif
+ }
+
+ #ifdef AUTO_RAISE
+@@ -1348,10 +1497,17 @@
+ int Frame::handle(int e) {
+ static int what, dx, dy, ix, iy, iw, ih;
+ // see if child widget handles event:
+- if (Fl_Window::handle(e) && e != FL_ENTER && e != FL_MOVE) {
++#if FL_MAJOR_VERSION > 1
++ if (fltk::Group::handle(e) && e != FL_ENTER && e != FL_MOVE) {
++ if (e == FL_PUSH) set_cursor(-1);
++ return 1;
++ }
++#else
++ if (Fl_Group::handle(e) && e != FL_ENTER && e != FL_MOVE) {
+ if (e == FL_PUSH) set_cursor(-1);
+ return 1;
+ }
++#endif
+ switch (e) {
+
+ case FL_SHOW:
+@@ -1381,42 +1537,33 @@
+ #endif
+ goto GET_CROSSINGS;
+
+- case 0:
++ case FL_MOVE:
+ GET_CROSSINGS:
+ // set cursor_inside to true when the mouse is inside a window
+ // set it false when mouse is on a frame or outside a window.
+ // fltk mangles the X enter/leave events, we need the original ones:
+
+ switch (fl_xevent->type) {
+- case EnterNotify:
++ case LeaveNotify:
++ if (fl_xevent->xcrossing.detail == NotifyInferior) {
++ // cursor moved from frame to interior
++ cursor_inside = this;
++ break;
++ } else {
++ // cursor moved to another window
++ return 1;
++ }
+
++ case EnterNotify:
+ // see if cursor skipped over frame and directly to interior:
+ if (fl_xevent->xcrossing.detail == NotifyVirtual ||
+ fl_xevent->xcrossing.detail == NotifyNonlinearVirtual)
+ cursor_inside = this;
+-
+ else {
+ // cursor is now pointing at frame:
+ cursor_inside = 0;
+ }
+-
+- // fall through to FL_MOVE:
+- break;
+-
+- case LeaveNotify:
+- if (fl_xevent->xcrossing.detail == NotifyInferior) {
+- // cursor moved from frame to interior
+- cursor_inside = this;
+- set_cursor(-1);
+- return 1;
+- }
+- return 1;
+-
+- default:
+- return 0; // other X event we don't understand
+ }
+-
+- case FL_MOVE:
+ if (Fl::belowmouse() != this || cursor_inside == this)
+ set_cursor(-1);
+ else
+@@ -1578,9 +1725,10 @@
+
+ case UnmapNotify: {
+ const XUnmapEvent* e = &(ei->xunmap);
+- if (e->from_configure);
+- else if (state_flags_&IGNORE_UNMAP) clear_state_flag(IGNORE_UNMAP);
+- else state(UNMAPPED);
++ if (e->window == window_ && !e->from_configure) {
++ if (state_flags_&IGNORE_UNMAP) clear_state_flag(IGNORE_UNMAP);
++ else state(UNMAPPED);
++ }
+ return 1;}
+
+ case DestroyNotify: {
+@@ -1677,7 +1825,7 @@
+ return ::getProperty(window_, a, type, np);
+ }
+
+-void* getProperty(Window w, Atom a, Atom type, int* np) {
++void* getProperty(XWindow w, Atom a, Atom type, int* np) {
+ Atom realType;
+ int format;
+ unsigned long n, extra;
+@@ -1690,14 +1838,14 @@
+ if (!prop) return 0;
+ if (!n) {XFree(prop); return 0;}
+ if (np) *np = (int)n;
+- return (void *)prop;
++ return (void*)prop;
+ }
+
+ int Frame::getIntProperty(Atom a, Atom type, int deflt) const {
+ return ::getIntProperty(window_, a, type, deflt);
+ }
+
+-int getIntProperty(Window w, Atom a, Atom type, int deflt) {
++int getIntProperty(XWindow w, Atom a, Atom type, int deflt) {
+ void* prop = getProperty(w, a, type);
+ if (!prop) return deflt;
+ int r = int(*(long*)prop);
+@@ -1705,7 +1853,7 @@
+ return r;
+ }
+
+-void setProperty(Window w, Atom a, Atom type, int v) {
++void setProperty(XWindow w, Atom a, Atom type, int v) {
+ long prop = v;
+ XChangeProperty(fl_display, w, a, type, 32, PropModeReplace, (uchar*)&prop,1);
+ }
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Frame.H /tmp/KfNDqvamm0/flwm-1.01/Frame.H
+--- /tmp/8FTwAYJlot/flwm-1.00/Frame.H 1999-08-24 22:59:35.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Frame.H 2003-12-16 16:15:40.000000000 +0100
+@@ -9,6 +9,9 @@
+ #include <FL/Fl_Window.H>
+ #include <FL/Fl_Button.H>
+ #include <FL/x.H>
++#if FL_MAJOR_VERSION<2
++# define XWindow Window
++#endif
+
+ // The state is an enumeration of reasons why the window may be invisible.
+ // Only if it is NORMAL is the window visible.
+@@ -58,7 +61,7 @@
+
+ class Frame : public Fl_Window {
+
+- Window window_;
++ XWindow window_;
+
+ short state_; // X server state: iconic, withdrawn, normal
+ short state_flags_; // above state flags
+@@ -79,14 +82,14 @@
+ int label_y, label_h; // location of label
+ int label_w; // measured width of printed label
+
+- Window transient_for_xid; // value from X
++ XWindow transient_for_xid; // value from X
+ Frame* transient_for_; // the frame for that xid, if found
+
+ Frame* revert_to; // probably the xterm this was run from
+
+ Colormap colormap; // this window's colormap
+ int colormapWinCount; // list of other windows to install colormaps for
+- Window *colormapWindows;
++ XWindow *colormapWindows;
+ Colormap *window_Colormaps; // their colormaps
+
+ Desktop* desktop_;
+@@ -101,6 +104,7 @@
+ int maximize_height();
+ int force_x_onscreen(int X, int W);
+ int force_y_onscreen(int Y, int H);
++ void place_window();
+
+ void sendMessage(Atom, Atom) const;
+ void sendConfigureNotify() const;
+@@ -122,6 +126,7 @@
+
+ void set_size(int,int,int,int, int warp=0);
+ void resize(int,int,int,int);
++ void layout();
+ void show_hide_buttons();
+
+ int handle(int); // handle fltk events
+@@ -151,10 +156,10 @@
+ static Frame* first;
+ Frame* next; // stacking order, top to bottom
+
+- Frame(Window, XWindowAttributes* = 0);
++ Frame(XWindow, XWindowAttributes* = 0);
+ ~Frame();
+
+- Window window() const {return window_;}
++ XWindow window() const {return window_;}
+ Frame* transient_for() const {return transient_for_;}
+ int is_transient_for(const Frame*) const;
+
+@@ -185,8 +190,8 @@
+ };
+
+ // handy wrappers for those ugly X routines:
+-void* getProperty(Window, Atom, Atom = AnyPropertyType, int* length = 0);
+-int getIntProperty(Window, Atom, Atom = AnyPropertyType, int deflt = 0);
+-void setProperty(Window, Atom, Atom, int);
++void* getProperty(XWindow, Atom, Atom = AnyPropertyType, int* length = 0);
++int getIntProperty(XWindow, Atom, Atom = AnyPropertyType, int deflt = 0);
++void setProperty(XWindow, Atom, Atom, int);
+
+ #endif
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Hotkeys.C /tmp/KfNDqvamm0/flwm-1.01/Hotkeys.C
+--- /tmp/8FTwAYJlot/flwm-1.00/Hotkeys.C 2000-09-22 18:53:05.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Hotkeys.C 2006-06-29 09:18:08.000000000 +0200
+@@ -149,6 +149,36 @@
+ #endif
+ {0}};
+
++#if FL_MAJOR_VERSION > 1
++// Define missing function, this should get put in fltk2.0:
++namespace fltk {
++int test_shortcut(int shortcut) {
++ if (!shortcut) return 0;
++
++ int shift = Fl::event_state();
++ // see if any required shift flags are off:
++ if ((shortcut&shift) != (shortcut&0x7fff0000)) return 0;
++ // record shift flags that are wrong:
++ int mismatch = (shortcut^shift)&0x7fff0000;
++ // these three must always be correct:
++ if (mismatch&(FL_META|FL_ALT|FL_CTRL)) return 0;
++
++ int key = shortcut & 0xffff;
++
++ // if shift is also correct, check for exactly equal keysyms:
++ if (!(mismatch&(FL_SHIFT)) && unsigned(key) == Fl::event_key()) return 1;
++
++ // try matching ascii, ignore shift:
++ if (key == event_text()[0]) return 1;
++
++ // kludge so that Ctrl+'_' works (as opposed to Ctrl+'^_'):
++ if ((shift&FL_CTRL) && key >= 0x3f && key <= 0x5F
++ && event_text()[0]==(key^0x40)) return 1;
++ return 0;
++}
++}
++#endif
++
+ int Handle_Hotkey() {
+ for (int i = 0; keybindings[i].key; i++) {
+ if (Fl::test_shortcut(keybindings[i].key) ||
+@@ -165,7 +195,7 @@
+ extern Fl_Window* Root;
+
+ void Grab_Hotkeys() {
+- Window root = fl_xid(Root);
++ XWindow root = fl_xid(Root);
+ for (int i = 0; keybindings[i].key; i++) {
+ int k = keybindings[i].key;
+ int keycode = XKeysymToKeycode(fl_display, k & 0xFFFF);
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/logo.fl /tmp/KfNDqvamm0/flwm-1.01/logo.fl
+--- /tmp/8FTwAYJlot/flwm-1.00/logo.fl 1970-01-01 01:00:00.000000000 +0100
++++ /tmp/KfNDqvamm0/flwm-1.01/logo.fl 2006-04-13 18:06:59.000000000 +0200
+@@ -0,0 +1,19 @@
++# data file for the FLTK User Interface Designer (FLUID)
++version 2.0100
++header_name {.h}
++code_name {.cxx}
++gridx 5
++gridy 5
++snap 3
++Function {make_window()} {open
++} {
++ {fltk::Window} {} {
++ label flwm open
++ xywh {990 285 265 115} visible
++ } {
++ {fltk::Group} {} {
++ label {The Fast Light Window Manager} open selected
++ xywh {0 0 265 115} align 128 box PLASTIC_UP_BOX labelfont 1 labeltype ENGRAVED_LABEL color 0x7d9dae00 textcolor 0x979b9700 labelcolor 0x393a3900 labelsize 27
++ } {}
++ }
++}
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/main.C /tmp/KfNDqvamm0/flwm-1.01/main.C
+--- /tmp/8FTwAYJlot/flwm-1.00/main.C 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/main.C 2006-06-29 09:17:24.000000000 +0200
+@@ -43,10 +43,15 @@
+ class Fl_Root : public Fl_Window {
+ int handle(int);
+ public:
+- Fl_Root() : Fl_Window(0,0,Fl::w(),Fl::h()) {}
++ Fl_Root() : Fl_Window(0,0,Fl::w(),Fl::h()) {
++#if FL_MAJOR_VERSION > 1
++ clear_double_buffer();
++#endif
++ }
+ void show() {
+ if (!shown()) Fl_X::set_xid(this, RootWindow(fl_display, fl_screen));
+ }
++ void flush() {}
+ };
+ Fl_Window *Root;
+
+@@ -69,7 +74,7 @@
+ // fltk calls this for any events it does not understand:
+ static int flwm_event_handler(int e) {
+ if (!e) { // XEvent that fltk did not understand.
+- Window window = fl_xevent->xany.window;
++ XWindow window = fl_xevent->xany.window;
+ // unfortunately most of the redirect events put the interesting
+ // window id in a different place:
+ switch (fl_xevent->type) {
+@@ -107,18 +112,31 @@
+ const XMapRequestEvent* e = &(fl_xevent->xmaprequest);
+ (void)new Frame(e->window);
+ return 1;}
+- case KeyRelease: {
++#if FL_MAJOR_VERSION<2
++ // this was needed for *some* earlier versions of fltk
++ case KeyRelease:
+ if (!Fl::grab()) return 0;
+- // see if they released the alt key:
+- unsigned long keysym =
++ Fl::e_keysym =
+ XKeycodeToKeysym(fl_display, fl_xevent->xkey.keycode, 0);
+- if (keysym == FL_Alt_L || keysym == FL_Alt_R) {
+- Fl::e_keysym = FL_Enter;
+- return Fl::grab()->handle(FL_KEYBOARD);
+- }
+- return 0;}
++ goto KEYUP;
++#endif
++ }
++ } else if (e == FL_KEYUP) {
++#if FL_MAJOR_VERSION<2
++ KEYUP:
++#endif
++ if (!Fl::grab()) return 0;
++ // when alt key released, pretend they hit enter & pick menu item
++ if (Fl::event_key()==FL_Alt_L || Fl::event_key()==FL_Alt_R) {
++ Fl::e_keysym = FL_Enter;
++#if FL_MAJOR_VERSION>1
++ return Fl::modal()->handle(FL_KEYBOARD);
++#else
++ return Fl::grab()->handle(FL_KEYBOARD);
++#endif
+ }
+- } else if (e == FL_SHORTCUT) {
++ return 0;
++ } else if (e == FL_SHORTCUT || e == FL_KEYBOARD) {
+ #if FL_MAJOR_VERSION == 1 && FL_MINOR_VERSION == 0 && FL_PATCH_VERSION < 3
+ // make the tab keys work in the menus in older fltk's:
+ // (they do not cycle around however, so a new fltk is a good idea)
+@@ -189,28 +207,26 @@
+ #endif
+
+ static const char* cfg, *cbg;
++#if FL_MAJOR_VERSION>1
++static fltk::Cursor* cursor = FL_CURSOR_ARROW;
++extern FL_API fltk::Color fl_cursor_fg;
++extern FL_API fltk::Color fl_cursor_bg;
++#else
+ static int cursor = FL_CURSOR_ARROW;
+-
+-static void color_setup(Fl_Color slot, const char* arg, ulong value) {
+- if (arg) {
+- XColor x;
+- if (XParseColor(fl_display, fl_colormap, arg, &x))
+- value = ((x.red>>8)<<24)|((x.green>>8)<<16)|((x.blue));
+- }
+- Fl::set_color(slot, value);
+-}
++#endif
+
+ static void initialize() {
+
+ Display* d = fl_display;
+
+ #ifdef TEST
+- Window w = XCreateSimpleWindow(d, root,
++ XWindow w = XCreateSimpleWindow(d, RootWindow(d, fl_screen),
+ 100, 100, 200, 300, 10,
+ BlackPixel(fl_display, 0),
+ // WhitePixel(fl_display, 0));
+ 0x1234);
+ Frame* frame = new Frame(w);
++ frame->label("flwm test window");
+ XSelectInput(d, w,
+ ExposureMask | StructureNotifyMask |
+ KeyPressMask | KeyReleaseMask | FocusChangeMask |
+@@ -230,9 +246,12 @@
+ ButtonPressMask | ButtonReleaseMask |
+ EnterWindowMask | LeaveWindowMask |
+ KeyPressMask | KeyReleaseMask | KeymapStateMask);
+- color_setup(CURSOR_FG_SLOT, cfg, CURSOR_FG_COLOR<<8);
+- color_setup(CURSOR_BG_SLOT, cbg, CURSOR_BG_COLOR<<8);
++#if FL_MAJOR_VERSION>1
++ Root->cursor(cursor);
++#else
+ Root->cursor((Fl_Cursor)cursor, CURSOR_FG_SLOT, CURSOR_BG_SLOT);
++#endif
++ Fl::visible_focus(0);
+
+ #ifdef TITLE_FONT
+ Fl::set_font(TITLE_FONT_SLOT, TITLE_FONT);
+@@ -247,7 +266,7 @@
+ // Gnome crap:
+ // First create a window that can be watched to see if wm dies:
+ Atom a = XInternAtom(d, "_WIN_SUPPORTING_WM_CHECK", False);
+- Window win = XCreateSimpleWindow(d, fl_xid(Root), -200, -200, 5, 5, 0, 0, 0);
++ XWindow win = XCreateSimpleWindow(d, fl_xid(Root), -200, -200, 5, 5, 0, 0, 0);
+ CARD32 val = win;
+ XChangeProperty(d, fl_xid(Root), a, XA_CARDINAL, 32, PropModeReplace, (uchar*)&val, 1);
+ XChangeProperty(d, win, a, XA_CARDINAL, 32, PropModeReplace, (uchar*)&val, 1);
+@@ -287,7 +306,7 @@
+
+ // find all the windows and create a Frame for each:
+ unsigned int n;
+- Window w1, w2, *wins;
++ XWindow w1, w2, *wins;
+ XWindowAttributes attr;
+ XQueryTree(d, fl_xid(Root), &w1, &w2, &wins, &n);
+ for (i = 0; i < n; ++i) {
+@@ -298,7 +317,6 @@
+ XFree((void *)wins);
+
+ #endif
+- Fl::visible_focus(0);
+ }
+
+ ////////////////////////////////////////////////////////////////
+@@ -329,8 +347,10 @@
+ cfg = v;
+ } else if (!strcmp(s, "cbg")) {
+ cbg = v;
++#if FL_MAJOR_VERSION < 2
+ } else if (*s == 'c') {
+ cursor = atoi(v);
++#endif
+ } else if (*s == 'v') {
+ int visid = atoi(v);
+ fl_open_display();
+@@ -351,6 +371,17 @@
+ return 2;
+ }
+
++#if FL_MAJOR_VERSION<2
++static void color_setup(Fl_Color slot, const char* arg, ulong value) {
++ if (arg) {
++ XColor x;
++ if (XParseColor(fl_display, fl_colormap, arg, &x))
++ value = ((x.red>>8)<<24)|((x.green>>8)<<16)|((x.blue));
++ }
++ Fl::set_color(slot, value);
++}
++#endif
++
+ int main(int argc, char** argv) {
+ program_name = fl_filename_name(argv[0]);
+ int i; if (Fl::args(argc, argv, i, arg) < argc) Fl::error(
+@@ -370,8 +401,22 @@
+ #ifndef FL_NORMAL_SIZE // detect new versions of fltk where this is a variable
+ FL_NORMAL_SIZE = 12;
+ #endif
++#if FL_MAJOR_VERSION>1
++ if (cfg) fl_cursor_fg = fltk::color(cfg);
++ if (cbg) fl_cursor_bg = fltk::color(cbg);
++#else
++ fl_open_display();
++ color_setup(CURSOR_FG_SLOT, cfg, CURSOR_FG_COLOR<<8);
++ color_setup(CURSOR_BG_SLOT, cbg, CURSOR_BG_COLOR<<8);
+ Fl::set_color(FL_SELECTION_COLOR,0,0,128);
+- Root = new Fl_Root();
++#endif
++ Fl_Root root;
++ Root = &root;
++#if FL_MAJOR_VERSION>1
++ // show() is not a virtual function in fltk2.0, this fools it:
++ fltk::load_theme();
++ root.show();
++#endif
+ Root->show(argc,argv); // fools fltk into using -geometry to set the size
+ XSetErrorHandler(xerror_handler);
+ initialize();
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Makefile /tmp/KfNDqvamm0/flwm-1.01/Makefile
+--- /tmp/8FTwAYJlot/flwm-1.00/Makefile 2000-09-22 18:53:04.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Makefile 2006-06-30 00:11:16.000000000 +0200
+@@ -1,7 +1,7 @@
+ SHELL=/bin/sh
+
+ PROGRAM = flwm
+-VERSION = 1.00
++VERSION = 1.01
+
+ CXXFILES = main.C Frame.C Rotated.C Menu.C FrameWindow.C Desktop.C Hotkeys.C
+
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Menu.C /tmp/KfNDqvamm0/flwm-1.01/Menu.C
+--- /tmp/8FTwAYJlot/flwm-1.00/Menu.C 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Menu.C 2006-06-30 11:01:41.000000000 +0200
+@@ -20,24 +20,6 @@
+ #include <dirent.h>
+ #include <sys/stat.h>
+
+-static char *double_ampersand(const char *s)
+-{
+- long i,l;
+- for(i=0,l=0;s[i];i++)
+- if (s[i]=='&')
+- l++;
+- char *c = new (char [l+i+1]);
+- for(i=0,l=0;s[i];i++)
+- {
+- c[l++]=s[i];
+- if (s[i]=='&')
+- c[l++]=s[i];
+- }
+- c[l]=0;
+- return c;
+-}
+-
+-
+ // it is possible for the window to be deleted or withdrawn while
+ // the menu is up. This will detect that case (with reasonable
+ // reliability):
+@@ -79,6 +61,7 @@
+
+ extern Fl_Window* Root;
+
++#if FL_MAJOR_VERSION < 2
+ static void
+ frame_label_draw(const Fl_Label* o, int X, int Y, int W, int H, Fl_Align align)
+ {
+@@ -108,11 +91,19 @@
+ }
+ fl_font(o->font, o->size);
+ fl_color((Fl_Color)o->color);
+- const char* l = f->label();
+- if (!l) l = "unnamed";
+- else l = double_ampersand(f->label());
++ const char* l = f->label(); if (!l) l = "unnamed";
++ // double any ampersands to turn off the underscores:
++ char buf[256];
++ if (strchr(l,'&')) {
++ char* t = buf;
++ while (t < buf+254 && *l) {
++ if (*l=='&') *t++ = *l;
++ *t++ = *l++;
++ }
++ *t = 0;
++ l = buf;
++ }
+ fl_draw(l, X+MENU_ICON_W+3, Y, W-MENU_ICON_W-3, H, align);
+- delete l;
+ }
+
+ static void
+@@ -152,6 +143,8 @@
+ #define FRAME_LABEL FL_FREE_LABELTYPE
+ #define TEXT_LABEL Fl_Labeltype(FL_FREE_LABELTYPE+1)
+
++#endif // FL_MAJOR_VERSION < 2
++
+ ////////////////////////////////////////////////////////////////
+
+ static void
+@@ -176,7 +169,7 @@
+
+ #if ASK_FOR_NEW_DESKTOP_NAME
+
+-static Fl_Input* new_desktop_input;
++static Fl_Input* new_desktop_input = 0;
+
+ static void
+ new_desktop_ok_cb(Fl_Widget* w, void*)
+@@ -226,6 +219,7 @@
+ static void
+ exit_cb(Fl_Widget*, void*)
+ {
++ printf("exit_cb\n");
+ Frame::save_protocol();
+ exit(0);
+ }
+@@ -233,7 +227,7 @@
+ static void
+ logout_cb(Fl_Widget*, void*)
+ {
+- static FrameWindow* w;
++ static FrameWindow* w = 0;
+ if (!w) {
+ w = new FrameWindow(190,90);
+ Fl_Box* l = new Fl_Box(0, 0, 190, 60, "Really log out?");
+@@ -267,8 +261,8 @@
+ if (fork() == 0) {
+ if (fork() == 0) {
+ close(ConnectionNumber(fl_display));
+- if (name == xtermname) execlp(name, name, "-ut", NULL);
+- else execl(name, name, NULL);
++ if (name == xtermname) execlp(name, name, "-ut", (void*)0);
++ else execl(name, name, (void*)0);
+ fprintf(stderr, "flwm: can't run %s, %s\n", name, strerror(errno));
+ XBell(fl_display, 70);
+ exit(1);
+@@ -299,7 +293,11 @@
+ m.style = 0;
+ #endif
+ m.label(data);
++#if FL_MAJOR_VERSION > 2
++ m.flags = fltk::RAW_LABEL;
++#else
+ m.flags = 0;
++#endif
+ m.labeltype(FL_NORMAL_LABEL);
+ m.shortcut(0);
+ m.labelfont(MENU_FONT_SLOT);
+@@ -444,8 +442,10 @@
+ static char beenhere;
+ if (!beenhere) {
+ beenhere = 1;
++#if FL_MAJOR_VERSION < 2
+ Fl::set_labeltype(FRAME_LABEL, frame_label_draw, frame_label_measure);
+ Fl::set_labeltype(TEXT_LABEL, label_draw, label_measure);
++#endif
+ if (exit_flag) {
+ Fl_Menu_Item* m = other_menu_items+num_other_items-2;
+ m->label("Exit");
+@@ -532,8 +532,12 @@
+ #endif
+ for (c = Frame::first; c; c = c->next) {
+ if (c->state() == UNMAPPED || c->transient_for()) continue;
++#if FL_MAJOR_VERSION < 2
+ init(menu[n],(char*)c);
+ menu[n].labeltype(FRAME_LABEL);
++#else
++ init(menu[n],c->label());
++#endif
+ menu[n].callback(frame_callback, c);
+ if (is_active_frame(c)) preset = menu+n;
+ n++;
+@@ -562,7 +566,12 @@
+ if (c->state() == UNMAPPED || c->transient_for()) continue;
+ if (c->desktop() == d || !c->desktop() && d == Desktop::current()) {
+ init(menu[n],(char*)c);
++#if FL_MAJOR_VERSION < 2
++ init(menu[n],(char*)c);
+ menu[n].labeltype(FRAME_LABEL);
++#else
++ init(menu[n],c->label());
++#endif
+ menu[n].callback(d == Desktop::current() ?
+ frame_callback : move_frame_callback, c);
+ if (d == Desktop::current() && is_active_frame(c)) preset = menu+n;
+@@ -606,13 +615,14 @@
+ cmd = wmxlist[i];
+ cmd += strspn(cmd, "/")-1;
+ init(menu[n], cmd+pathlen[level]);
++#if FL_MAJOR_VERSION < 2
+ #if DESKTOPS
+ if (one_desktop)
+ #endif
+ if (!level)
+ menu[n].labeltype(TEXT_LABEL);
+-
+- int nextlev = (i==num_wmx-1)?0:strspn(wmxlist[i+1], "/")-1;
++#endif
++ int nextlev = (i==num_wmx-1)?0:strspn(wmxlist[i+1], "/")-1;
+ if (nextlev < level) {
+ menu[n].callback(spawn_cb, cmd);
+ // Close 'em off
+@@ -638,15 +648,19 @@
+ #endif
+ #endif
+ memcpy(menu+n, other_menu_items, sizeof(other_menu_items));
++#if FL_MAJOR_VERSION < 2
+ #if DESKTOPS
+ if (one_desktop)
+ #endif
+ // fix the menus items so they are indented to align with window names:
+ while (menu[n].label()) menu[n++].labeltype(TEXT_LABEL);
++#endif
+
+ const Fl_Menu_Item* picked =
+ menu->popup(Fl::event_x(), Fl::event_y(), 0, preset);
++#if FL_MAJOR_VERSION < 2
+ if (picked && picked->callback()) picked->do_callback(0);
++#endif
+ }
+
+ void ShowMenu() {ShowTabMenu(0);}
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/patch-stamp /tmp/KfNDqvamm0/flwm-1.01/patch-stamp
+--- /tmp/8FTwAYJlot/flwm-1.00/patch-stamp 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/patch-stamp 2006-06-30 11:01:41.000000000 +0200
+@@ -1,29 +1,8 @@
+ Patches applied in the Debian version of :
+
+-debian/patches/100_fl_filename_name.dpatch (Tommi Virtanen <tv@debian.org>):
+- Transition from fltk-1.0 to fltk-1.1.
+- Applied upstream.
+-
+-debian/patches/101_visible_focus.dpatch (Bill Allombert <ballombe@debian.org>):
+- Restore fltk-1.0 focus behaviour
+- (Applied upstream)
+-
+-debian/patches/102_charstruct.dpatch (Tommi Virtanen <tv@debian.org>):
+- Support fonts for which fontstruct->per_char is NULL.
+- (Applied upstream).
+-
+-debian/patches/103_man_typo.dpatch (Bill Allombert <ballombe@debian.org>):
+- Fix typo in man page.
+-
+-debian/patches/104_g++-4.1_warning.dpatch (Bill Allombert <ballombe@debian.org>):
+- Fix 5 g++ -4.1 warnings
+-
+-debian/patches/105_double_ampersand.dpatch (Bill Allombert <ballombe@debian.org>):
+- Handle & in window titles correctly in the windows list.
++debian/patches/100_double_ampersand.dpatch (<ballombe@debian.org>):
++ fix handling of ampersand in titles in windows list.
+
+ debian/patches/200_Debian_menu.dpatch (Tommi Virtanen <tv@debian.org>):
+ Add Debian menu support.
+
+-debian/patches/201_background_color.dpatch (Bill Allombert <ballombe@debian.org>):
+- Fix -fg and -bg options
+-
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/README /tmp/KfNDqvamm0/flwm-1.01/README
+--- /tmp/8FTwAYJlot/flwm-1.00/README 1999-08-24 22:59:35.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/README 2001-04-13 17:40:54.000000000 +0200
+@@ -5,7 +5,7 @@
+ ----------------------------------------------------------------
+
+ You need fltk. If you do not have it yet, download it from
+-http://fltk.easysw.com, and compile and install it.
++http://www.fltk.org, and compile and install it.
+
+ To customize flwm (for instance to turn on click-to-type), edit the
+ config.h file.
+@@ -22,21 +22,21 @@
+ How to run flwm:
+ ----------------------------------------------------------------
+
+-Flwm should be run by X when it logs you in. This is done by putting
+-a call to flwm into the file ~/.xinitrc. With any luck you already
+-have this file. If not try copying /usr/X11/lib/X11/xinit/xinitrc.
+-Edit the file and try to remove any call to another window manager
+-(these are usually near the end).
++To run flwm as your login script, you need to create or replace
++~/.xinitrc or ~/.xsession (or both). Newer Linux systems with a login
++panel use .xsession, older systems where X was started after login
++use .xinitrc. You may also have to pick "default" from the "type of
++session" popup in your login window.
+
+-Recommended contents of ~/.xinitrc:
++The .xinitrc or .xsession file should look like this:
+
+ #!/bin/sh
+ xsetroot -solid \#006060
+ xrdb .Xresources
+-# <xset, xmodmap, other configuration programs>
++# xset, xmodmap, other configuration programs
+ flwm &
+ WindowManager=$!
+-# <xterm, other automatically-launched programs>
++# xterm, other automatically-launched programs
+ wait $WindowManager
+
+ ALLOWING THE WINDOW MANAGER TO EXIT W/O LOGOUT:
+diff -Nru /tmp/8FTwAYJlot/flwm-1.00/Rotated.C /tmp/KfNDqvamm0/flwm-1.01/Rotated.C
+--- /tmp/8FTwAYJlot/flwm-1.00/Rotated.C 2006-06-30 11:01:38.000000000 +0200
++++ /tmp/KfNDqvamm0/flwm-1.01/Rotated.C 2005-09-19 06:29:11.000000000 +0200
+@@ -27,6 +27,9 @@
+ /* ********************************************************************** */
+
+ #include <FL/x.H>
++#if FL_MAJOR_VERSION < 2
++# define XWindow Window
++#endif
+ #include <FL/fl_draw.H>
+ #include "Rotated.H"
+ #include <stdlib.h>
+@@ -67,7 +70,7 @@
+ char val;
+ XImage *I1, *I2;
+ Pixmap canvas;
+- Window root;
++ XWindow root;
+ int screen;
+ GC font_gc;
+ char text[3];/*, errstr[300];*/
+@@ -116,27 +119,21 @@
+ /* font needs rotation ... */
+ /* loop through each character ... */
+ for (ichar = min_char; ichar <= max_char; ichar++) {
+- XCharStruct *charstruct;
+
+ index = ichar-fontstruct->min_char_or_byte2;
+
+- if (fontstruct->per_char) {
+- charstruct = &fontstruct->per_char[index];
+- } else {
++ XCharStruct* charstruct;
++ if (fontstruct->per_char)
++ charstruct = fontstruct->per_char+index;
++ else
+ charstruct = &fontstruct->min_bounds;
+- }
+
+ /* per char dimensions ... */
+- ascent = rotfont->per_char[ichar].ascent =
+- charstruct->ascent;
+- descent = rotfont->per_char[ichar].descent =
+- charstruct->descent;
+- lbearing = rotfont->per_char[ichar].lbearing =
+- charstruct->lbearing;
+- rbearing = rotfont->per_char[ichar].rbearing =
+- charstruct->rbearing;
+- rotfont->per_char[ichar].width =
+- charstruct->width;
++ ascent = rotfont->per_char[ichar].ascent = charstruct->ascent;
++ descent = rotfont->per_char[ichar].descent = charstruct->descent;
++ lbearing = rotfont->per_char[ichar].lbearing = charstruct->lbearing;
++ rbearing = rotfont->per_char[ichar].rbearing = charstruct->rbearing;
++ rotfont->per_char[ichar].width = charstruct->width;
+
+ /* some space chars have zero body, but a bitmap can't have ... */
+ if (!ascent && !descent)
+@@ -242,9 +239,9 @@
+ }
+
+ for (ichar = 0; ichar < min_char; ichar++)
+- rotfont->per_char[ichar] = rotfont->per_char[(int)'?'];
++ rotfont->per_char[ichar] = rotfont->per_char[int('?')];
+ for (ichar = max_char+1; ichar < 256; ichar++)
+- rotfont->per_char[ichar] = rotfont->per_char[(int)'?'];
++ rotfont->per_char[ichar] = rotfont->per_char[int('?')];
+
+ /* free pixmap and GC ... */
+ XFreePixmap(dpy, canvas);
+@@ -358,23 +355,25 @@
+
+ static XRotFontStruct* font;
+
+-void draw_rotated(const char* text, int n, int x, int y, int angle) {
+- if (!text || !*text) return;
++static void setrotfont(int angle) {
+ /* make angle positive ... */
+ if (angle < 0) do angle += 360; while (angle < 0);
+ /* get nearest vertical or horizontal direction ... */
+ int dir = ((angle+45)/90)%4;
+-
+- if (font && font->xfontstruct == fl_xfont && font->dir == dir) {
+- ;
+- } else {
+- if (font) XRotUnloadFont(fl_display, font);
+- font = XRotLoadFont(fl_display, fl_xfont, dir);
++ if (font) {
++ if (font->xfontstruct == fl_xfont && font->dir == dir) return;
++ XRotUnloadFont(fl_display, font);
+ }
++ font = XRotLoadFont(fl_display, fl_xfont, dir);
++}
++
++void draw_rotated(const char* text, int n, int x, int y, int angle) {
++ if (!text || !*text) return;
++ setrotfont(angle);
+ XRotDrawString(fl_display, font, fl_window, fl_gc, x, y, text, n);
+ }
+
+-#ifndef FLWM
++#if !defined(FLWM) || FL_MAJOR_VERSION>=2
+ void draw_rotated(const char* text, int x, int y, int angle) {
+ if (!text || !*text) return;
+ draw_rotated(text, strlen(text), x, y, angle);
+@@ -391,12 +390,20 @@
+ if (!str || !*str) return;
+ if (w && h && !fl_not_clipped(x, y, w, h)) return;
+ if (align & FL_ALIGN_CLIP) fl_clip(x, y, w, h);
++#if FL_MAJOR_VERSION>1
++ setrotfont(90);
++ int a = font->xfontstruct->ascent;
++ int d = font->xfontstruct->descent;
++ XRotDrawString(fl_display, font, fl_window, fl_gc,
++ x+(w+a-d+1)/2, y+h, str, strlen(str));
++#else
+ int a1 = align&(-16);
+ if (align & FL_ALIGN_LEFT) a1 |= FL_ALIGN_TOP;
+ if (align & FL_ALIGN_RIGHT) a1 |= FL_ALIGN_BOTTOM;
+ if (align & FL_ALIGN_TOP) a1 |= FL_ALIGN_RIGHT;
+ if (align & FL_ALIGN_BOTTOM) a1 |= FL_ALIGN_LEFT;
+ fl_draw(str, -(y+h), x, h, w, (Fl_Align)a1, draw_rot90);
++#endif
+ if (align & FL_ALIGN_CLIP) fl_pop_clip();
+ }
+
diff --git a/patch_cmds/diffstat/testing/case26.ref b/patch_cmds/diffstat/testing/case26.ref
new file mode 100644
index 0000000..db5bece
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +
+ Hotkeys.C | 32 ++
+ Makefile | 2
+ Menu.C | 70 +++---
+ README | 18 -
+ Rotated.C | 61 +++--
+ config.h | 6
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8
+ debian/patches/100_double_ampersand.dpatch | 19 +
+ debian/patches/100_fl_filename_name.dpatch | 20 -
+ debian/patches/101_visible_focus.dpatch | 19 -
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 -
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14 -
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 +
+ main.C | 99 ++++++---
+ patch-stamp | 25 --
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26R.ref b/patch_cmds/diffstat/testing/case26R.ref
new file mode 100644
index 0000000..17abff8
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26R.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++---------------------
+ Frame.H | 21 -
+ Hotkeys.C | 32 --
+ Makefile | 2
+ Menu.C | 70 ++----
+ README | 18 -
+ Rotated.C | 61 ++---
+ config.h | 6
+ debian/changelog | 12 -
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8
+ debian/patches/100_double_ampersand.dpatch | 19 -
+ debian/patches/100_fl_filename_name.dpatch | 20 +
+ debian/patches/101_visible_focus.dpatch | 19 +
+ debian/patches/102_charstruct.dpatch | 45 ++++
+ debian/patches/103_man_typo.dpatch | 19 +
+ debian/patches/104_g++-4.1_warning.dpatch | 58 +++++
+ debian/patches/105_double_ampersand.dpatch | 48 ++++
+ debian/patches/200_Debian_menu.dpatch | 14 -
+ debian/patches/201_background_color.dpatch | 57 +++++
+ debian/patches/202_background_color_2.dpatch | 92 ++++++++
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 -
+ main.C | 99 ++-------
+ patch-stamp | 25 ++
+ 34 files changed, 583 insertions(+), 498 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26Rp0.ref b/patch_cmds/diffstat/testing/case26Rp0.ref
new file mode 100644
index 0000000..1998e37
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26Rp0.ref
@@ -0,0 +1,35 @@
+ /tmp/8FTwAYJlot/flwm-1.00/Frame.C | 294 ++--------
+ /tmp/8FTwAYJlot/flwm-1.00/Frame.H | 21
+ /tmp/8FTwAYJlot/flwm-1.00/Hotkeys.C | 32 -
+ /tmp/8FTwAYJlot/flwm-1.00/Makefile | 2
+ /tmp/8FTwAYJlot/flwm-1.00/Menu.C | 70 --
+ /tmp/8FTwAYJlot/flwm-1.00/README | 18
+ /tmp/8FTwAYJlot/flwm-1.00/Rotated.C | 61 --
+ /tmp/8FTwAYJlot/flwm-1.00/config.h | 6
+ /tmp/8FTwAYJlot/flwm-1.00/debian/changelog | 12
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_double_ampersand.dpatch | 1
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/100_fl_filename_name.dpatch | 2
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/101_visible_focus.dpatch | 1
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/102_charstruct.dpatch | 1
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/103_man_typo.dpatch | 1
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/104_g++-4.1_warning.dpatch | 3
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/105_double_ampersand.dpatch | 1
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patched/201_background_color.dpatch | 2
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/00list | 8
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_double_ampersand.dpatch | 19
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/100_fl_filename_name.dpatch | 20
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/101_visible_focus.dpatch | 19
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/102_charstruct.dpatch | 45 +
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/103_man_typo.dpatch | 19
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/104_g++-4.1_warning.dpatch | 58 +
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/105_double_ampersand.dpatch | 48 +
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/200_Debian_menu.dpatch | 14
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/201_background_color.dpatch | 57 +
+ /tmp/8FTwAYJlot/flwm-1.00/debian/patches/202_background_color_2.dpatch | 92 +++
+ /tmp/8FTwAYJlot/flwm-1.00/debian/watch | 3
+ /tmp/8FTwAYJlot/flwm-1.00/flwm.1 | 4
+ /tmp/8FTwAYJlot/flwm-1.00/flwm_wmconfig | 4
+ /tmp/8FTwAYJlot/flwm-1.00/logo.fl | 19
+ /tmp/8FTwAYJlot/flwm-1.00/main.C | 99 ---
+ /tmp/8FTwAYJlot/flwm-1.00/patch-stamp | 25
+ 34 files changed, 583 insertions(+), 498 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26b.ref b/patch_cmds/diffstat/testing/case26b.ref
new file mode 100644
index 0000000..db5bece
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26b.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +
+ Hotkeys.C | 32 ++
+ Makefile | 2
+ Menu.C | 70 +++---
+ README | 18 -
+ Rotated.C | 61 +++--
+ config.h | 6
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8
+ debian/patches/100_double_ampersand.dpatch | 19 +
+ debian/patches/100_fl_filename_name.dpatch | 20 -
+ debian/patches/101_visible_focus.dpatch | 19 -
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 -
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14 -
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 +
+ main.C | 99 ++++++---
+ patch-stamp | 25 --
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26f0.ref b/patch_cmds/diffstat/testing/case26f0.ref
new file mode 100644
index 0000000..6c70fb3
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26f0.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 221 + 73 - 0 !
+ Frame.H | 21 13 + 8 - 0 !
+ Hotkeys.C | 32 31 + 1 - 0 !
+ Makefile | 2 1 + 1 - 0 !
+ Menu.C | 70 42 + 28 - 0 !
+ README | 18 9 + 9 - 0 !
+ Rotated.C | 61 34 + 27 - 0 !
+ config.h | 6 6 + 0 - 0 !
+ debian/changelog | 12 12 + 0 - 0 !
+ debian/patched/100_double_ampersand.dpatch | 1 1 + 0 - 0 !
+ debian/patched/100_fl_filename_name.dpatch | 2 0 + 2 - 0 !
+ debian/patched/101_visible_focus.dpatch | 1 0 + 1 - 0 !
+ debian/patched/102_charstruct.dpatch | 1 0 + 1 - 0 !
+ debian/patched/103_man_typo.dpatch | 1 0 + 1 - 0 !
+ debian/patched/104_g++-4.1_warning.dpatch | 3 0 + 3 - 0 !
+ debian/patched/105_double_ampersand.dpatch | 1 0 + 1 - 0 !
+ debian/patched/201_background_color.dpatch | 2 0 + 2 - 0 !
+ debian/patches/00list | 8 1 + 7 - 0 !
+ debian/patches/100_double_ampersand.dpatch | 19 19 + 0 - 0 !
+ debian/patches/100_fl_filename_name.dpatch | 20 0 + 20 - 0 !
+ debian/patches/101_visible_focus.dpatch | 19 0 + 19 - 0 !
+ debian/patches/102_charstruct.dpatch | 45 0 + 45 - 0 !
+ debian/patches/103_man_typo.dpatch | 19 0 + 19 - 0 !
+ debian/patches/104_g++-4.1_warning.dpatch | 58 0 + 58 - 0 !
+ debian/patches/105_double_ampersand.dpatch | 48 0 + 48 - 0 !
+ debian/patches/200_Debian_menu.dpatch | 14 7 + 7 - 0 !
+ debian/patches/201_background_color.dpatch | 57 0 + 57 - 0 !
+ debian/patches/202_background_color_2.dpatch | 92 0 + 92 - 0 !
+ debian/watch | 3 3 + 0 - 0 !
+ flwm.1 | 4 2 + 2 - 0 !
+ flwm_wmconfig | 4 3 + 1 - 0 !
+ logo.fl | 19 19 + 0 - 0 !
+ main.C | 99 72 + 27 - 0 !
+ patch-stamp | 25 2 + 23 - 0 !
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26k.ref b/patch_cmds/diffstat/testing/case26k.ref
new file mode 100644
index 0000000..db5bece
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26k.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +
+ Hotkeys.C | 32 ++
+ Makefile | 2
+ Menu.C | 70 +++---
+ README | 18 -
+ Rotated.C | 61 +++--
+ config.h | 6
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8
+ debian/patches/100_double_ampersand.dpatch | 19 +
+ debian/patches/100_fl_filename_name.dpatch | 20 -
+ debian/patches/101_visible_focus.dpatch | 19 -
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 -
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14 -
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 +
+ main.C | 99 ++++++---
+ patch-stamp | 25 --
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26p1.ref b/patch_cmds/diffstat/testing/case26p1.ref
new file mode 100644
index 0000000..909791a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26p1.ref
@@ -0,0 +1,35 @@
+ tmp/KfNDqvamm0/flwm-1.01/Frame.C | 294 +++++++---
+ tmp/KfNDqvamm0/flwm-1.01/Frame.H | 21
+ tmp/KfNDqvamm0/flwm-1.01/Hotkeys.C | 32 +
+ tmp/KfNDqvamm0/flwm-1.01/Makefile | 2
+ tmp/KfNDqvamm0/flwm-1.01/Menu.C | 70 +-
+ tmp/KfNDqvamm0/flwm-1.01/README | 18
+ tmp/KfNDqvamm0/flwm-1.01/Rotated.C | 61 +-
+ tmp/KfNDqvamm0/flwm-1.01/config.h | 6
+ tmp/KfNDqvamm0/flwm-1.01/debian/changelog | 12
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_double_ampersand.dpatch | 1
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/100_fl_filename_name.dpatch | 2
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/101_visible_focus.dpatch | 1
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/102_charstruct.dpatch | 1
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/103_man_typo.dpatch | 1
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/104_g++-4.1_warning.dpatch | 3
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/105_double_ampersand.dpatch | 1
+ tmp/KfNDqvamm0/flwm-1.01/debian/patched/201_background_color.dpatch | 2
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/00list | 8
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_double_ampersand.dpatch | 19
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/100_fl_filename_name.dpatch | 20
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/101_visible_focus.dpatch | 19
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/102_charstruct.dpatch | 45 -
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/103_man_typo.dpatch | 19
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/104_g++-4.1_warning.dpatch | 58 -
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/105_double_ampersand.dpatch | 48 -
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/200_Debian_menu.dpatch | 14
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/201_background_color.dpatch | 57 -
+ tmp/KfNDqvamm0/flwm-1.01/debian/patches/202_background_color_2.dpatch | 92 ---
+ tmp/KfNDqvamm0/flwm-1.01/debian/watch | 3
+ tmp/KfNDqvamm0/flwm-1.01/flwm.1 | 4
+ tmp/KfNDqvamm0/flwm-1.01/flwm_wmconfig | 4
+ tmp/KfNDqvamm0/flwm-1.01/logo.fl | 19
+ tmp/KfNDqvamm0/flwm-1.01/main.C | 99 ++-
+ tmp/KfNDqvamm0/flwm-1.01/patch-stamp | 25
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26p9.ref b/patch_cmds/diffstat/testing/case26p9.ref
new file mode 100644
index 0000000..54ad0ed
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26p9.ref
@@ -0,0 +1,27 @@
+ 00list | 8 -
+ 100_double_ampersand.dpatch | 20 ++
+ 100_fl_filename_name.dpatch | 22 ---
+ 101_visible_focus.dpatch | 20 --
+ 102_charstruct.dpatch | 46 ------
+ 103_man_typo.dpatch | 20 --
+ 104_g++-4.1_warning.dpatch | 61 --------
+ 105_double_ampersand.dpatch | 49 -------
+ 200_Debian_menu.dpatch | 14 +-
+ 201_background_color.dpatch | 59 --------
+ 202_background_color_2.dpatch | 92 -------------
+ Frame.C | 294 +++++++++++++++++++++++++++++++-----------
+ Frame.H | 21 +--
+ Hotkeys.C | 32 ++++
+ Makefile | 2
+ Menu.C | 70 ++++++----
+ README | 18 +-
+ Rotated.C | 61 ++++----
+ changelog | 12 +
+ config.h | 6
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 ++
+ main.C | 99 ++++++++++----
+ patch-stamp | 25 ---
+ watch | 3
+ 26 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26r1.ref b/patch_cmds/diffstat/testing/case26r1.ref
new file mode 100644
index 0000000..e28a9fd
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26r1.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +-
+ Hotkeys.C | 32 +++
+ Makefile | 2
+ Menu.C | 70 ++++---
+ README | 18 +-
+ Rotated.C | 61 +++--
+ config.h | 6 +
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8 -
+ debian/patches/100_double_ampersand.dpatch | 19 ++
+ debian/patches/100_fl_filename_name.dpatch | 20 --
+ debian/patches/101_visible_focus.dpatch | 19 --
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 --
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14 +-
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ logo.fl | 19 ++
+ main.C | 99 +++++++--
+ patch-stamp | 25 --
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26r2.ref b/patch_cmds/diffstat/testing/case26r2.ref
new file mode 100644
index 0000000..4566808
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26r2.ref
@@ -0,0 +1,35 @@
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +-
+ Hotkeys.C | 32 +++
+ Makefile | 2
+ Menu.C | 70 ++++--
+ README | 18 +-
+ Rotated.C | 61 +++---
+ config.h | 6 +
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1 +
+ debian/patched/100_fl_filename_name.dpatch | 2 -
+ debian/patched/101_visible_focus.dpatch | 1 -
+ debian/patched/102_charstruct.dpatch | 1 -
+ debian/patched/103_man_typo.dpatch | 1 -
+ debian/patched/104_g++-4.1_warning.dpatch | 3 -
+ debian/patched/105_double_ampersand.dpatch | 1 -
+ debian/patched/201_background_color.dpatch | 2 -
+ debian/patches/00list | 8 -
+ debian/patches/100_double_ampersand.dpatch | 19 ++
+ debian/patches/100_fl_filename_name.dpatch | 20 --
+ debian/patches/101_visible_focus.dpatch | 19 --
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 --
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3 +
+ flwm.1 | 4
+ flwm_wmconfig | 4 +
+ logo.fl | 19 ++
+ main.C | 99 +++++++--
+ patch-stamp | 25 --
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case26u.ref b/patch_cmds/diffstat/testing/case26u.ref
new file mode 100644
index 0000000..ab44c89
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case26u.ref
@@ -0,0 +1,35 @@
+ config.h | 6
+ debian/changelog | 12 +
+ debian/patched/100_double_ampersand.dpatch | 1
+ debian/patched/100_fl_filename_name.dpatch | 2
+ debian/patched/101_visible_focus.dpatch | 1
+ debian/patched/102_charstruct.dpatch | 1
+ debian/patched/103_man_typo.dpatch | 1
+ debian/patched/104_g++-4.1_warning.dpatch | 3
+ debian/patched/105_double_ampersand.dpatch | 1
+ debian/patched/201_background_color.dpatch | 2
+ debian/patches/00list | 8
+ debian/patches/100_double_ampersand.dpatch | 19 +
+ debian/patches/100_fl_filename_name.dpatch | 20 -
+ debian/patches/101_visible_focus.dpatch | 19 -
+ debian/patches/102_charstruct.dpatch | 45 ----
+ debian/patches/103_man_typo.dpatch | 19 -
+ debian/patches/104_g++-4.1_warning.dpatch | 58 -----
+ debian/patches/105_double_ampersand.dpatch | 48 ----
+ debian/patches/200_Debian_menu.dpatch | 14 -
+ debian/patches/201_background_color.dpatch | 57 -----
+ debian/patches/202_background_color_2.dpatch | 92 --------
+ debian/watch | 3
+ flwm.1 | 4
+ flwm_wmconfig | 4
+ Frame.C | 294 ++++++++++++++++++++-------
+ Frame.H | 21 +
+ Hotkeys.C | 32 ++
+ logo.fl | 19 +
+ main.C | 99 ++++++---
+ Makefile | 2
+ Menu.C | 70 +++---
+ patch-stamp | 25 --
+ README | 18 -
+ Rotated.C | 61 +++--
+ 34 files changed, 498 insertions(+), 583 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27.pat b/patch_cmds/diffstat/testing/case27.pat
new file mode 100644
index 0000000..f90bd44
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27.pat
@@ -0,0 +1,409 @@
+From bunk@kernel.org Fri Aug 24 01:11:51 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Andrew Morton <akpm@linux-foundation.org>,
+ Ram Pai <linuxram@us.ibm.com>, Sam Ravnborg <sam@ravnborg.org>
+Cc: linux-kernel@vger.kernel.org
+Subject: [2.6 patch] fix export_report.pl
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 466
+Lines: 22
+
+This patch fixes an annoying bug of export_report.pl missing the usages
+of some exports.
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+
+---
+
+This patch has been sent on:
+- 14 Aug 2007
+
+--- a/scripts/export_report.pl
++++ b/scripts/export_report.pl
+@@ -112,7 +112,7 @@ foreach my $thismod (@allcfiles) {
+ next;
+ }
+ if ($state eq 2) {
+- if ( $_ !~ /0x[0-9a-f]{7,8},/ ) {
++ if ( $_ !~ /0x[0-9a-f]+,/ ) {
+ next;
+ }
+ my $sym = (split /([,"])/,)[4];
+
+
+From bunk@kernel.org Fri Aug 24 01:13:29 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Andrew Morton <akpm@linux-foundation.org>,
+ Ram Pai <linuxram@us.ibm.com>, Sam Ravnborg <sam@ravnborg.org>
+Cc: linux-kernel@vger.kernel.org
+Subject: [2.6 patch] call export_report from the Makefile
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 827
+Lines: 31
+
+The main feature is that export_report now automatically works
+for O= builds.
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+
+---
+
+This patch has been sent on:
+- 14 Aug 2007
+
+--- a/Makefile
++++ b/Makefile
+@@ -1153,6 +1153,7 @@ help:
+ @echo 'Static analysers'
+ @echo ' checkstack - Generate a list of stack hogs'
+ @echo ' namespacecheck - Name space analysis on compiled kernel'
++ @echo ' export_report - List the usages of all exported symbols'
+ @if [ -r $(srctree)/include/asm-$(ARCH)/Kbuild ]; then \
+ echo ' headers_check - Sanity check on exported headers'; \
+ fi
+@@ -1412,6 +1413,9 @@ versioncheck:
+ namespacecheck:
+ $(PERL) $(srctree)/scripts/namespace.pl
+
++export_report:
++ $(PERL) $(srctree)/scripts/export_report.pl
++
+ endif #ifeq ($(config-targets),1)
+ endif #ifeq ($(mixed-targets),1)
+
+
+
+From bunk@kernel.org Fri Aug 24 04:43:31 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
+ Andrew Morton <akpm@linux-foundation.org>,
+ linux-input@atrey.karlin.mff.cuni.cz, linux-kernel@vger.kernel.org,
+ dtor@mail.ru, Jiri Kosina <jkosina@suse.cz>
+Subject: Re: [PATCH] Console keyboard events and accessibility
+References: <20070821005718.GD3658@interface.famille.thibault.fr> <20070821130233.58faaa8a.akpm@linux-foundation.org> <20070821202251.GB3658@interface.famille.thibault.fr>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+In-Reply-To: <20070821202251.GB3658@interface.famille.thibault.fr>
+X-Mutt-References: <20070821202251.GB3658@interface.famille.thibault.fr>
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 2121
+Lines: 57
+
+On Tue, Aug 21, 2007 at 10:22:51PM +0200, Samuel Thibault wrote:
+> Hi,
+>
+> Andrew Morton, le Tue 21 Aug 2007 13:02:33 -0700, a écrit :
+> > On Tue, 21 Aug 2007 02:57:18 +0200
+> > Samuel Thibault <samuel.thibault@ens-lyon.org> wrote:
+> >
+> > > Some external modules like Speakup need to use the PC keyboard to control
+> > > them and also need to get keyboard feedback (caps lock status, etc.)
+> > >
+> > > This adds a keyboard notifier that such modules can use to get the keyboard
+> > > events and possibly eat them, at several stages:
+> >
+> > Adding hooks for non-merged modules is considered sinful. Making these new
+> > exports EXPORT_SYMBOL_GPL might ease the pain.
+>
+> That should be fine.
+>
+> I'll soon propose a notifier for the console writes too, same story.
+>
+> > Is there any prospect of getting at least one of these "external modules
+> > like Speakup" merged into mainline?
+>
+> I'm working on it. The problem is that the current code quality is
+> still far from mainline requirements (though improving over time). This
+> hook (and the other one I'll post) is a step toward merging. If these
+> hooks can go mainline, then great, that will make life easier for the
+> few distributions that want to provide speakup as modules.
+
+How long does it take you for getting the first users submitted for
+review? If you are working on it it should be in the order of "a few
+months", and earlier merging would anyway gain you only one or two
+kernel releases.
+
+> If they
+> remain in -mm for some time and people don't complain, well that's good
+> too: at least we know how speakup may hook into the kernel when it gets
+> merged.
+>...
+
+Without any users it's dead code noone uses, and complaints will most
+likely not occur until you submit the first users for review...
+
+> Samuel
+
+cu
+Adrian
+
+BTW: Are these the speakup patches that were in -ac five years ago?
+
+--
+
+ "Is there not promise of rain?" Ling Tan asked suddenly out
+ of the darkness. There had been need of rain for many days.
+ "Only a promise," Lao Er said.
+ Pearl S. Buck - Dragon Seed
+
+
+From bunk@kernel.org Fri Aug 24 04:50:47 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Andrew Morton <akpm@linux-foundation.org>,
+ Adam Belay <abelay@novell.com>,
+ Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
+ Shaohua Li <shaohua.li@intel.com>
+Cc: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
+Subject: [-mm patch] make "struct menu_governor" static (again)
+References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+In-Reply-To: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 740
+Lines: 29
+
+On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
+>...
+> Changes since 2.6.23-rc2-mm2:
+>...
+> git-acpi.patch
+>...
+> git trees
+>...
+
+"struct menu_governor" needlessly again became global.
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+
+---
+cb33b296204127cf50df54b84b2d79e152fb924b
+diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
+index f5a8865..8d3fdc5 100644
+--- a/drivers/cpuidle/governors/menu.c
++++ b/drivers/cpuidle/governors/menu.c
+@@ -117,7 +117,7 @@ static int menu_enable_device(struct cpuidle_device *dev)
+ return 0;
+ }
+
+-struct cpuidle_governor menu_governor = {
++static struct cpuidle_governor menu_governor = {
+ .name = "menu",
+ .rating = 20,
+ .enable = menu_enable_device,
+
+
+From bunk@kernel.org Fri Aug 24 05:01:58 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Andrew Morton <akpm@linux-foundation.org>,
+ "Eric W. Biederman" <ebiederm@xmission.com>
+Cc: linux-kernel@vger.kernel.org
+Subject: [-mm patch] remove parport_device_num()
+References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+In-Reply-To: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 3917
+Lines: 135
+
+On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
+>...
+> Changes since 2.6.23-rc2-mm2:
+>...
+> +sysctl-parport-remove-binary-paths.patch
+>...
+> More sysctl work
+>...
+
+parport_device_num() is no longer used.
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+
+---
+
+ Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ drivers/parport/daisy.c | 29 -----------------------------
+ include/linux/parport.h | 1 -
+ 3 files changed, 3 insertions(+), 56 deletions(-)
+
+0066510df2b5d4972cfd6a4450af8b82c763adfd
+diff --git a/Documentation/parport-lowlevel.txt b/Documentation/parport-lowlevel.txt
+index 8f23024..265fcdc 100644
+--- a/Documentation/parport-lowlevel.txt
++++ b/Documentation/parport-lowlevel.txt
+@@ -25,7 +25,6 @@ Global functions:
+ parport_open
+ parport_close
+ parport_device_id
+- parport_device_num
+ parport_device_coords
+ parport_find_class
+ parport_find_device
+@@ -735,7 +734,7 @@ NULL is returned.
+
+ SEE ALSO
+
+-parport_register_device, parport_device_num
++parport_register_device
+
+ parport_close - unregister device for particular device number
+ -------------
+@@ -787,29 +786,7 @@ Many devices have ill-formed IEEE 1284 Device IDs.
+
+ SEE ALSO
+
+-parport_find_class, parport_find_device, parport_device_num
+-
+-parport_device_num - convert device coordinates to device number
+-------------------
+-
+-SYNOPSIS
+-
+-#include <linux/parport.h>
+-
+-int parport_device_num (int parport, int mux, int daisy);
+-
+-DESCRIPTION
+-
+-Convert between device coordinates (port, multiplexor, daisy chain
+-address) and device number (zero-based).
+-
+-RETURN VALUE
+-
+-Device number, or -1 if no device at given coordinates.
+-
+-SEE ALSO
+-
+-parport_device_coords, parport_open, parport_device_id
++parport_find_class, parport_find_device
+
+ parport_device_coords - convert device number to device coordinates
+ ------------------
+@@ -833,7 +810,7 @@ Zero on success, in which case the coordinates are (*parport, *mux,
+
+ SEE ALSO
+
+-parport_device_num, parport_open, parport_device_id
++parport_open, parport_device_id
+
+ parport_find_class - find a device by its class
+ ------------------
+diff --git a/drivers/parport/daisy.c b/drivers/parport/daisy.c
+index ff9f344..5bbff20 100644
+--- a/drivers/parport/daisy.c
++++ b/drivers/parport/daisy.c
+@@ -275,35 +275,6 @@ void parport_close(struct pardevice *dev)
+ parport_unregister_device(dev);
+ }
+
+-/**
+- * parport_device_num - convert device coordinates
+- * @parport: parallel port number
+- * @mux: multiplexor port number (-1 for no multiplexor)
+- * @daisy: daisy chain address (-1 for no daisy chain address)
+- *
+- * This tries to locate a device on the given parallel port,
+- * multiplexor port and daisy chain address, and returns its
+- * device number or %-ENXIO if no device with those coordinates
+- * exists.
+- **/
+-
+-int parport_device_num(int parport, int mux, int daisy)
+-{
+- int res = -ENXIO;
+- struct daisydev *dev;
+-
+- spin_lock(&topology_lock);
+- dev = topology;
+- while (dev && dev->port->portnum != parport &&
+- dev->port->muxport != mux && dev->daisy != daisy)
+- dev = dev->next;
+- if (dev)
+- res = dev->devnum;
+- spin_unlock(&topology_lock);
+-
+- return res;
+-}
+-
+ /* Send a daisy-chain-style CPP command packet. */
+ static int cpp_daisy(struct parport *port, int cmd)
+ {
+diff --git a/include/linux/parport.h b/include/linux/parport.h
+index 9cdd694..ec3f765 100644
+--- a/include/linux/parport.h
++++ b/include/linux/parport.h
+@@ -510,7 +510,6 @@ extern struct pardevice *parport_open (int devnum, const char *name,
+ int flags, void *handle);
+ extern void parport_close (struct pardevice *dev);
+ extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
+-extern int parport_device_num (int parport, int mux, int daisy);
+ extern void parport_daisy_deselect_all (struct parport *port);
+ extern int parport_daisy_select (struct parport *port, int daisy, int mode);
+
+
+
+From bunk@kernel.org Fri Aug 24 05:07:37 2007
+From: Adrian Bunk <bunk@kernel.org>
+To: Andrew Morton <akpm@linux-foundation.org>,
+ Chris Wright <chrisw@sous-sol.org>
+Cc: linux-kernel@vger.kernel.org
+Subject: [-mm patch] make do_restart_poll() static
+References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+In-Reply-To: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-References: <20070822020648.5ea3a612.akpm@linux-foundation.org>
+X-Mutt-Fcc: =sent-mail
+Status: RO
+Content-Length: 728
+Lines: 29
+
+On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
+>...
+> Changes since 2.6.23-rc2-mm2:
+>...
+> +use-erestart_restartblock-if-poll-is-interrupted-by-a-signal.patch
+>...
+> The infamous misc
+>...
+
+do_restart_poll() can become static.
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+
+---
+59cd2d11f5f0189973bb280c59262eb50984cb88
+diff --git a/fs/select.c b/fs/select.c
+index 5a3ab01..3e515aa 100644
+--- a/fs/select.c
++++ b/fs/select.c
+@@ -711,7 +711,7 @@ out_fds:
+ return err;
+ }
+
+-long do_restart_poll(struct restart_block *restart_block)
++static long do_restart_poll(struct restart_block *restart_block)
+ {
+ struct pollfd __user *ufds = (struct pollfd __user*)restart_block->arg0;
+ int nfds = restart_block->arg1;
+
+
diff --git a/patch_cmds/diffstat/testing/case27.ref b/patch_cmds/diffstat/testing/case27.ref
new file mode 100644
index 0000000..1a49489
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/fs/select.c | 2 +-
+ b/include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27R.ref b/patch_cmds/diffstat/testing/case27R.ref
new file mode 100644
index 0000000..9adf7c2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27R.ref
@@ -0,0 +1,8 @@
+ a/Documentation/parport-lowlevel.txt | 29 ++++++++++++++++++++++++++---
+ a/drivers/cpuidle/governors/menu.c | 2 +-
+ a/drivers/parport/daisy.c | 29 +++++++++++++++++++++++++++++
+ a/fs/select.c | 2 +-
+ a/include/linux/parport.h | 1 +
+ a/scripts/export_report.pl | 2 +-
+ b/Makefile | 4 ----
+ 7 files changed, 59 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27Rp0.ref b/patch_cmds/diffstat/testing/case27Rp0.ref
new file mode 100644
index 0000000..9adf7c2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27Rp0.ref
@@ -0,0 +1,8 @@
+ a/Documentation/parport-lowlevel.txt | 29 ++++++++++++++++++++++++++---
+ a/drivers/cpuidle/governors/menu.c | 2 +-
+ a/drivers/parport/daisy.c | 29 +++++++++++++++++++++++++++++
+ a/fs/select.c | 2 +-
+ a/include/linux/parport.h | 1 +
+ a/scripts/export_report.pl | 2 +-
+ b/Makefile | 4 ----
+ 7 files changed, 59 insertions(+), 10 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27b.ref b/patch_cmds/diffstat/testing/case27b.ref
new file mode 100644
index 0000000..1a49489
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27b.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/fs/select.c | 2 +-
+ b/include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27f0.ref b/patch_cmds/diffstat/testing/case27f0.ref
new file mode 100644
index 0000000..87c5d63
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27f0.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 4 + 0 - 0 !
+ b/Documentation/parport-lowlevel.txt | 29 3 + 26 - 0 !
+ b/drivers/cpuidle/governors/menu.c | 2 1 + 1 - 0 !
+ b/drivers/parport/daisy.c | 29 0 + 29 - 0 !
+ b/fs/select.c | 2 1 + 1 - 0 !
+ b/include/linux/parport.h | 1 0 + 1 - 0 !
+ scripts/export_report.pl | 2 1 + 1 - 0 !
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27k.ref b/patch_cmds/diffstat/testing/case27k.ref
new file mode 100644
index 0000000..1a49489
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27k.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/fs/select.c | 2 +-
+ b/include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27p1.ref b/patch_cmds/diffstat/testing/case27p1.ref
new file mode 100644
index 0000000..5e90eec
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27p1.ref
@@ -0,0 +1,8 @@
+ Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ Makefile | 4 ++++
+ drivers/cpuidle/governors/menu.c | 2 +-
+ drivers/parport/daisy.c | 29 -----------------------------
+ fs/select.c | 2 +-
+ include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27p9.ref b/patch_cmds/diffstat/testing/case27p9.ref
new file mode 100644
index 0000000..9f61d61
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27p9.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ daisy.c | 29 -----------------------------
+ export_report.pl | 2 +-
+ menu.c | 2 +-
+ parport-lowlevel.txt | 29 +++--------------------------
+ parport.h | 1 -
+ select.c | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27r1.ref b/patch_cmds/diffstat/testing/case27r1.ref
new file mode 100644
index 0000000..1a49489
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27r1.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/fs/select.c | 2 +-
+ b/include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27r2.ref b/patch_cmds/diffstat/testing/case27r2.ref
new file mode 100644
index 0000000..1a49489
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27r2.ref
@@ -0,0 +1,8 @@
+ Makefile | 4 ++++
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/fs/select.c | 2 +-
+ b/include/linux/parport.h | 1 -
+ scripts/export_report.pl | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case27u.ref b/patch_cmds/diffstat/testing/case27u.ref
new file mode 100644
index 0000000..86b3dda
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case27u.ref
@@ -0,0 +1,8 @@
+ scripts/export_report.pl | 2 +-
+ Makefile | 4 ++++
+ b/drivers/cpuidle/governors/menu.c | 2 +-
+ b/Documentation/parport-lowlevel.txt | 29 +++--------------------------
+ b/drivers/parport/daisy.c | 29 -----------------------------
+ b/include/linux/parport.h | 1 -
+ b/fs/select.c | 2 +-
+ 7 files changed, 10 insertions(+), 59 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28.pat b/patch_cmds/diffstat/testing/case28.pat
new file mode 100644
index 0000000..c8fd4f7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28.pat
@@ -0,0 +1,326 @@
+***************
+*** 1,11 ****
+- revlist for vile-9.7c, version v9_7c
+ --------------------------------------------------------------------------------
+- aclocal.m4 1.183
+ ansi.c 1.49
+ api.c 1.44
+ api.h 1.13
+ basic.c 1.161
+- bind.c 1.320
+ blist.c 1.11
+ blist.h 1.4
+ borland.c 1.38
+--- 1,11 ----
++ revlist for vile, version v9_7d
+ --------------------------------------------------------------------------------
++ aclocal.m4 1.185
+ ansi.c 1.49
+ api.c 1.44
+ api.h 1.13
+ basic.c 1.161
++ bind.c 1.322
+ blist.c 1.11
+ blist.h 1.4
+ borland.c 1.38
+***************
+*** 14,20 ****
+ buffer.c 1.331
+ buglist 1.412
+ builtflt.c 1.63
+- CHANGES 1.1177
+ CHANGES.R3 1.1
+ CHANGES.R4 1.1
+ CHANGES.R5 1.1
+--- 14,20 ----
+ buffer.c 1.331
+ buglist 1.412
+ builtflt.c 1.63
++ CHANGES 1.1189
+ CHANGES.R3 1.1
+ CHANGES.R4 1.1
+ CHANGES.R5 1.1
+***************
+*** 23,34 ****
+ CHANGES.R8 1.1
+ charsets.c 1.56
+ chgdfunc.h 1.22
+- cmdtbl 1.253
+ config.guess 1.8
+ config_h.in 1.2
+ config.sub 1.9
+- configure 1.21
+- configure.in 1.246
+ COPYING 1.4
+ csrch.c 1.34
+ curses.c 1.38
+--- 23,34 ----
+ CHANGES.R8 1.1
+ charsets.c 1.56
+ chgdfunc.h 1.22
++ cmdtbl 1.255
+ config.guess 1.8
+ config_h.in 1.2
+ config.sub 1.9
++ configure 1.22
++ configure.in 1.247
+ COPYING 1.4
+ csrch.c 1.34
+ curses.c 1.38
+***************
+*** 37,47 ****
+ display.c 1.476
+ djhandl.c 1.6
+ dumbterm.c 1.23
+- edef.h 1.339
+ eightbit.c 1.45
+- estruct.h 1.663
+- eval.c 1.383
+- exec.c 1.314
+ externs.c 1.11
+ fences.c 1.86
+ file.c 1.415
+--- 37,47 ----
+ display.c 1.476
+ djhandl.c 1.6
+ dumbterm.c 1.23
++ edef.h 1.341
+ eightbit.c 1.45
++ estruct.h 1.665
++ eval.c 1.386
++ exec.c 1.325
+ externs.c 1.11
+ fences.c 1.86
+ file.c 1.415
+***************
+*** 52,97 ****
+ glob.c 1.93
+ gppconio.c 1.2
+ history.c 1.87
+- input.c 1.320
+ insert.c 1.167
+ INSTALL 1.6
+ install.sh 1.7
+ isearch.c 1.60
+ itbuff.c 1.25
+ lckfiles.c 1.11
+- line.c 1.193
+- main.c 1.642
+ makeargv.c 1.3
+ makeargv.h 1.3
+ makefile.blc 1.22
+ makefile.djg 1.38
+ makefile.icc 1.17
+- makefile.in 1.211
+ makefile.wnt 1.99
+ MANIFEST none
+ map.c 1.112
+- menu.c 1.51
+ mkdirs.sh 1.7
+ mkprlenv.wnt 1.9
+ mktbls.c 1.151
+ modes.c 1.363
+- modetbl 1.275
+ msgs.c 1.29
+- npopen.c 1.95
+ ntconio.c 1.91
+ ntwinio.c 1.188
+ nullterm.c 1.5
+ oneliner.c 1.112
+- opers.c 1.93
+ os2keys.h 1.2
+ os2pipe.c 1.5
+ os2vio.c 1.36
+- patchlev.h 1.378
+ path.c 1.162
+ perl.xs 1.111
+ plugin.c 1.1
+ plugin.h 1.1
+- proto.h 1.650
+ pscreen.h 1.2
+ ptypemap 1.7
+ random.c 1.319
+--- 52,97 ----
+ glob.c 1.93
+ gppconio.c 1.2
+ history.c 1.87
++ input.c 1.321
+ insert.c 1.167
+ INSTALL 1.6
+ install.sh 1.7
+ isearch.c 1.60
+ itbuff.c 1.25
+ lckfiles.c 1.11
++ line.c 1.194
++ main.c 1.647
+ makeargv.c 1.3
+ makeargv.h 1.3
+ makefile.blc 1.22
+ makefile.djg 1.38
+ makefile.icc 1.17
++ makefile.in 1.212
+ makefile.wnt 1.99
+ MANIFEST none
+ map.c 1.112
++ menu.c 1.52
+ mkdirs.sh 1.7
+ mkprlenv.wnt 1.9
+ mktbls.c 1.151
+ modes.c 1.363
++ modetbl 1.276
+ msgs.c 1.29
++ npopen.c 1.96
+ ntconio.c 1.91
+ ntwinio.c 1.188
+ nullterm.c 1.5
+ oneliner.c 1.112
++ opers.c 1.97
+ os2keys.h 1.2
+ os2pipe.c 1.5
+ os2vio.c 1.36
++ patchlev.h 1.379
+ path.c 1.162
+ perl.xs 1.111
+ plugin.c 1.1
+ plugin.h 1.1
++ proto.h 1.657
+ pscreen.h 1.2
+ ptypemap 1.7
+ random.c 1.319
+***************
+*** 100,125 ****
+ README.VMS 1.5
+ regexp.c 1.139
+ region.c 1.149
+- revlist v9_7c
+ search.c 1.146
+- select.c 1.167
+ sinstall.sh 1.1
+- spawn.c 1.195
+- statevar.c 1.122
+ tags.c 1.138
+- tbuff.c 1.68
+ tcap.c 1.177
+ tcap.h 1.14
+ termio.c 1.214
+ test_io.c 1.2
+- trace.c 1.80
+ trace.h 1.31
+ ucrypt.c 1.15
+- undo.c 1.96
+ version.c 1.66
+ vile.1 1.37
+- vile-9.7.spec 1.5
+- vile.hlp 1.655
+ vile.wmconfig 1.1
+ vl_alloc.h 1.1
+ vl_ctype.h 1.15
+--- 100,125 ----
+ README.VMS 1.5
+ regexp.c 1.139
+ region.c 1.149
++ revlist v9_7d
+ search.c 1.146
++ select.c 1.168
+ sinstall.sh 1.1
++ spawn.c 1.200
++ statevar.c 1.123
+ tags.c 1.138
++ tbuff.c 1.69
+ tcap.c 1.177
+ tcap.h 1.14
+ termio.c 1.214
+ test_io.c 1.2
++ trace.c 1.81
+ trace.h 1.31
+ ucrypt.c 1.15
++ undo.c 1.99
+ version.c 1.66
+ vile.1 1.37
++ vile-9.7.spec 1.6
++ vile.hlp 1.657
+ vile.wmconfig 1.1
+ vl_alloc.h 1.1
+ vl_ctype.h 1.15
+***************
+*** 159,165 ****
+ doc/config.doc 1.15
+ doc/dir.doc 1.3
+ doc/filters.doc 1.40
+- doc/macros.doc 1.107
+ doc/menus.doc 1.7
+ doc/modes.doc 1.17
+ doc/ncu-indent 1.16
+--- 159,165 ----
+ doc/config.doc 1.15
+ doc/dir.doc 1.3
+ doc/filters.doc 1.40
++ doc/macros.doc 1.111
+ doc/menus.doc 1.7
+ doc/modes.doc 1.17
+ doc/ncu-indent 1.16
+***************
+*** 237,250 ****
+ filters/key-filt.c 1.41
+ filters/latexflt.l 1.48
+ filters/latex.key 1.2
+- filters/lex-filt.l 1.62
+ filters/lex.key 1.8
+ filters/lispfilt.l 1.20
+ filters/lisp.key 1.2
+ filters/lua-filt.l 1.8
+ filters/lua.key 1.2
+ filters/m4-filt.c 1.30
+- filters/m4.key 1.3
+ filters/mailcap.key 1.3
+ filters/mailfilt.l 1.22
+ filters/mail.key 1.3
+--- 237,250 ----
+ filters/key-filt.c 1.41
+ filters/latexflt.l 1.48
+ filters/latex.key 1.2
++ filters/lex-filt.l 1.67
+ filters/lex.key 1.8
+ filters/lispfilt.l 1.20
+ filters/lisp.key 1.2
+ filters/lua-filt.l 1.8
+ filters/lua.key 1.2
+ filters/m4-filt.c 1.30
++ filters/m4.key 1.5
+ filters/mailcap.key 1.3
+ filters/mailfilt.l 1.22
+ filters/mail.key 1.3
+***************
+*** 332,338 ****
+ filters/vb6.key 1.5
+ filters/vb.key 1.15
+ filters/vbs.key 1.4
+- filters/vilefilt.l 1.57
+ filters/vile.key 1.8
+ filters/vim.key 1.2
+ filters/vl-filt.l 1.15
+--- 332,338 ----
+ filters/vb6.key 1.5
+ filters/vb.key 1.15
+ filters/vbs.key 1.4
++ filters/vilefilt.l 1.59
+ filters/vile.key 1.8
+ filters/vim.key 1.2
+ filters/vl-filt.l 1.15
+***************
+*** 362,368 ****
+ macros/gnugpg.rc 1.3
+ macros/loaderrs.rc 1.2
+ macros/manpage.rc 1.24
+- macros/modes.rc 1.79
+ macros/palettes.rc 1.8
+ macros/pictmode.rc 1.4
+ macros/search.rc 1.3
+--- 362,368 ----
+ macros/gnugpg.rc 1.3
+ macros/loaderrs.rc 1.2
+ macros/manpage.rc 1.24
++ macros/modes.rc 1.80
+ macros/palettes.rc 1.8
+ macros/pictmode.rc 1.4
+ macros/search.rc 1.3
diff --git a/patch_cmds/diffstat/testing/case28.ref b/patch_cmds/diffstat/testing/case28.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28R.ref b/patch_cmds/diffstat/testing/case28R.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28R.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28Rp0.ref b/patch_cmds/diffstat/testing/case28Rp0.ref
new file mode 100644
index 0000000..1300477
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28Rp0.ref
@@ -0,0 +1,2 @@
+ ./testing/case28.pat | 70 +++++++++++++++++++++++++--------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28b.ref b/patch_cmds/diffstat/testing/case28b.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28b.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28f0.ref b/patch_cmds/diffstat/testing/case28f0.ref
new file mode 100644
index 0000000..7b4e062
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28f0.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 35 + 35 - 0 !
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28k.ref b/patch_cmds/diffstat/testing/case28k.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28k.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28p1.ref b/patch_cmds/diffstat/testing/case28p1.ref
new file mode 100644
index 0000000..d36eb16
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28p1.ref
@@ -0,0 +1,2 @@
+ testing/case28.pat | 70 ++++++++++++++++++++++++++---------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28p9.ref b/patch_cmds/diffstat/testing/case28p9.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28p9.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28r1.ref b/patch_cmds/diffstat/testing/case28r1.ref
new file mode 100644
index 0000000..2d893c7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28r1.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28r2.ref b/patch_cmds/diffstat/testing/case28r2.ref
new file mode 100644
index 0000000..2d893c7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28r2.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case28u.ref b/patch_cmds/diffstat/testing/case28u.ref
new file mode 100644
index 0000000..74f3d11
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case28u.ref
@@ -0,0 +1,2 @@
+ case28.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29.pat b/patch_cmds/diffstat/testing/case29.pat
new file mode 100644
index 0000000..a38689f
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29.pat
@@ -0,0 +1,193 @@
+@@ -1,11 +1,11 @@
+-revlist for vile-9.7c, version v9_7c
++revlist for vile, version v9_7d
+ --------------------------------------------------------------------------------
+-aclocal.m4 1.183
++aclocal.m4 1.185
+ ansi.c 1.49
+ api.c 1.44
+ api.h 1.13
+ basic.c 1.161
+-bind.c 1.320
++bind.c 1.322
+ blist.c 1.11
+ blist.h 1.4
+ borland.c 1.38
+@@ -14,7 +14,7 @@
+ buffer.c 1.331
+ buglist 1.412
+ builtflt.c 1.63
+-CHANGES 1.1177
++CHANGES 1.1189
+ CHANGES.R3 1.1
+ CHANGES.R4 1.1
+ CHANGES.R5 1.1
+@@ -23,12 +23,12 @@
+ CHANGES.R8 1.1
+ charsets.c 1.56
+ chgdfunc.h 1.22
+-cmdtbl 1.253
++cmdtbl 1.255
+ config.guess 1.8
+ config_h.in 1.2
+ config.sub 1.9
+-configure 1.21
+-configure.in 1.246
++configure 1.22
++configure.in 1.247
+ COPYING 1.4
+ csrch.c 1.34
+ curses.c 1.38
+@@ -37,11 +37,11 @@
+ display.c 1.476
+ djhandl.c 1.6
+ dumbterm.c 1.23
+-edef.h 1.339
++edef.h 1.341
+ eightbit.c 1.45
+-estruct.h 1.663
+-eval.c 1.383
+-exec.c 1.314
++estruct.h 1.665
++eval.c 1.386
++exec.c 1.325
+ externs.c 1.11
+ fences.c 1.86
+ file.c 1.415
+@@ -52,46 +52,46 @@
+ glob.c 1.93
+ gppconio.c 1.2
+ history.c 1.87
+-input.c 1.320
++input.c 1.321
+ insert.c 1.167
+ INSTALL 1.6
+ install.sh 1.7
+ isearch.c 1.60
+ itbuff.c 1.25
+ lckfiles.c 1.11
+-line.c 1.193
+-main.c 1.642
++line.c 1.194
++main.c 1.647
+ makeargv.c 1.3
+ makeargv.h 1.3
+ makefile.blc 1.22
+ makefile.djg 1.38
+ makefile.icc 1.17
+-makefile.in 1.211
++makefile.in 1.212
+ makefile.wnt 1.99
+ MANIFEST none
+ map.c 1.112
+-menu.c 1.51
++menu.c 1.52
+ mkdirs.sh 1.7
+ mkprlenv.wnt 1.9
+ mktbls.c 1.151
+ modes.c 1.363
+-modetbl 1.275
++modetbl 1.276
+ msgs.c 1.29
+-npopen.c 1.95
++npopen.c 1.96
+ ntconio.c 1.91
+ ntwinio.c 1.188
+ nullterm.c 1.5
+ oneliner.c 1.112
+-opers.c 1.93
++opers.c 1.97
+ os2keys.h 1.2
+ os2pipe.c 1.5
+ os2vio.c 1.36
+-patchlev.h 1.378
++patchlev.h 1.379
+ path.c 1.162
+ perl.xs 1.111
+ plugin.c 1.1
+ plugin.h 1.1
+-proto.h 1.650
++proto.h 1.657
+ pscreen.h 1.2
+ ptypemap 1.7
+ random.c 1.319
+@@ -100,26 +100,26 @@
+ README.VMS 1.5
+ regexp.c 1.139
+ region.c 1.149
+-revlist v9_7c
++revlist v9_7d
+ search.c 1.146
+-select.c 1.167
++select.c 1.168
+ sinstall.sh 1.1
+-spawn.c 1.195
+-statevar.c 1.122
++spawn.c 1.200
++statevar.c 1.123
+ tags.c 1.138
+-tbuff.c 1.68
++tbuff.c 1.69
+ tcap.c 1.177
+ tcap.h 1.14
+ termio.c 1.214
+ test_io.c 1.2
+-trace.c 1.80
++trace.c 1.81
+ trace.h 1.31
+ ucrypt.c 1.15
+-undo.c 1.96
++undo.c 1.99
+ version.c 1.66
+ vile.1 1.37
+-vile-9.7.spec 1.5
+-vile.hlp 1.655
++vile-9.7.spec 1.6
++vile.hlp 1.657
+ vile.wmconfig 1.1
+ vl_alloc.h 1.1
+ vl_ctype.h 1.15
+@@ -159,7 +159,7 @@
+ doc/config.doc 1.15
+ doc/dir.doc 1.3
+ doc/filters.doc 1.40
+-doc/macros.doc 1.107
++doc/macros.doc 1.111
+ doc/menus.doc 1.7
+ doc/modes.doc 1.17
+ doc/ncu-indent 1.16
+@@ -237,14 +237,14 @@
+ filters/key-filt.c 1.41
+ filters/latexflt.l 1.48
+ filters/latex.key 1.2
+-filters/lex-filt.l 1.62
++filters/lex-filt.l 1.67
+ filters/lex.key 1.8
+ filters/lispfilt.l 1.20
+ filters/lisp.key 1.2
+ filters/lua-filt.l 1.8
+ filters/lua.key 1.2
+ filters/m4-filt.c 1.30
+-filters/m4.key 1.3
++filters/m4.key 1.5
+ filters/mailcap.key 1.3
+ filters/mailfilt.l 1.22
+ filters/mail.key 1.3
+@@ -332,7 +332,7 @@
+ filters/vb6.key 1.5
+ filters/vb.key 1.15
+ filters/vbs.key 1.4
+-filters/vilefilt.l 1.57
++filters/vilefilt.l 1.59
+ filters/vile.key 1.8
+ filters/vim.key 1.2
+ filters/vl-filt.l 1.15
+@@ -362,7 +362,7 @@
+ macros/gnugpg.rc 1.3
+ macros/loaderrs.rc 1.2
+ macros/manpage.rc 1.24
+-macros/modes.rc 1.79
++macros/modes.rc 1.80
+ macros/palettes.rc 1.8
+ macros/pictmode.rc 1.4
+ macros/search.rc 1.3
diff --git a/patch_cmds/diffstat/testing/case29.ref b/patch_cmds/diffstat/testing/case29.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29R.ref b/patch_cmds/diffstat/testing/case29R.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29R.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29Rp0.ref b/patch_cmds/diffstat/testing/case29Rp0.ref
new file mode 100644
index 0000000..2853ccf
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29Rp0.ref
@@ -0,0 +1,2 @@
+ ./testing/case29.pat | 70 +++++++++++++++++++++++++--------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29b.ref b/patch_cmds/diffstat/testing/case29b.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29b.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29f0.ref b/patch_cmds/diffstat/testing/case29f0.ref
new file mode 100644
index 0000000..cfaaa2a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29f0.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 35 + 35 - 0 !
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29k.ref b/patch_cmds/diffstat/testing/case29k.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29k.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29p1.ref b/patch_cmds/diffstat/testing/case29p1.ref
new file mode 100644
index 0000000..cc13b24
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29p1.ref
@@ -0,0 +1,2 @@
+ testing/case29.pat | 70 ++++++++++++++++++++++++++---------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29p9.ref b/patch_cmds/diffstat/testing/case29p9.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29p9.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29r1.ref b/patch_cmds/diffstat/testing/case29r1.ref
new file mode 100644
index 0000000..7f84767
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29r1.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29r2.ref b/patch_cmds/diffstat/testing/case29r2.ref
new file mode 100644
index 0000000..7f84767
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29r2.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case29u.ref b/patch_cmds/diffstat/testing/case29u.ref
new file mode 100644
index 0000000..15df096
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case29u.ref
@@ -0,0 +1,2 @@
+ case29.pat | 70 ++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31.pat b/patch_cmds/diffstat/testing/case31.pat
new file mode 100644
index 0000000..392005b
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31.pat
@@ -0,0 +1,22 @@
+==== //depot/vendor/freebsd/src/sys/dev/usb/usbdevs#353 (text+ko) - //depot/projects/usb/src/sys/dev/usb/usbdevs#72 (text+ko) ==== content
+1c1
+< $FreeBSD: src/sys/dev/usb/usbdevs,v 1.421 2009/07/30 18:53:06 weongyo Exp $
+---
+> $FreeBSD: src/sys/dev/usb/usbdevs,v 1.420 2009/07/30 00:15:17 alfred Exp $
+863a864,869
+> product APPLE KBD_TP_ANSI 0x0223 Apple Internal Keyboard/Trackpad (Wellspring/ANSI)
+> product APPLE KBD_TP_ISO 0x0224 Apple Internal Keyboard/Trackpad (Wellspring/ISO)
+> product APPLE KBD_TP_JIS 0x0225 Apple Internal Keyboard/Trackpad (Wellspring/JIS)
+> product APPLE KBD_TP_ANSI2 0x0230 Apple Internal Keyboard/Trackpad (Wellspring2/ANSI)
+> product APPLE KBD_TP_ISO2 0x0231 Apple Internal Keyboard/Trackpad (Wellspring2/ISO)
+> product APPLE KBD_TP_JIS2 0x0232 Apple Internal Keyboard/Trackpad (Wellspring2/JIS)
+904a911
+> product ASUS GMSC 0x422f ASUS Generic Mass Storage
+1180,1181d1186
+< product DLINK2 DWA120_NF 0x3a0d DWA-120 (no firmware)
+< product DLINK2 DWA120 0x3a0e DWA-120
+1185a1191,1192
+> product DLINK2 DWA120_NF 0x3c0d DWA-120 (no firmware)
+> product DLINK2 DWA120 0x3c0e DWA-120
+1973a1981
+> product PHILIPS SPE3030CC 0x083a USB 2.0 External Disk
diff --git a/patch_cmds/diffstat/testing/case31.ref b/patch_cmds/diffstat/testing/case31.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31R.ref b/patch_cmds/diffstat/testing/case31R.ref
new file mode 100644
index 0000000..92ce8c7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31R.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31Rp0.ref b/patch_cmds/diffstat/testing/case31Rp0.ref
new file mode 100644
index 0000000..fcade37
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31Rp0.ref
@@ -0,0 +1,2 @@
+ //depot/vendor/freebsd/src/sys/dev/usb/usbdevs | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31b.ref b/patch_cmds/diffstat/testing/case31b.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31b.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31f0.ref b/patch_cmds/diffstat/testing/case31f0.ref
new file mode 100644
index 0000000..8e2de2e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31f0.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 11 + 3 - 0 !
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31k.ref b/patch_cmds/diffstat/testing/case31k.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31k.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31l.pat b/patch_cmds/diffstat/testing/case31l.pat
new file mode 100644
index 0000000..8c422c6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31l.pat
@@ -0,0 +1,8 @@
+==== //depot/user/ed/newcons/sys/kern/tty.c#2 - /home/ed/p4/newcons/sys/kern/tty.c ====
+@@ -1,5 +1,5 @@
+ /*-
+- * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org>
++ * Copyright (c) 2009 Ed Schouten <ed@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Portions of this software were developed under sponsorship from Snow
diff --git a/patch_cmds/diffstat/testing/case31l.ref b/patch_cmds/diffstat/testing/case31l.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31l.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lR.ref b/patch_cmds/diffstat/testing/case31lR.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lR.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lRp0.ref b/patch_cmds/diffstat/testing/case31lRp0.ref
new file mode 100644
index 0000000..870e071
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lRp0.ref
@@ -0,0 +1,2 @@
+ //depot/user/ed/newcons/sys/kern/tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lb.ref b/patch_cmds/diffstat/testing/case31lb.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lb.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lf0.ref b/patch_cmds/diffstat/testing/case31lf0.ref
new file mode 100644
index 0000000..337c1eb
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lf0.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 1 + 1 - 0 !
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lk.ref b/patch_cmds/diffstat/testing/case31lk.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lk.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lp1.ref b/patch_cmds/diffstat/testing/case31lp1.ref
new file mode 100644
index 0000000..c91504a
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lp1.ref
@@ -0,0 +1,2 @@
+ /depot/user/ed/newcons/sys/kern/tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lp9.ref b/patch_cmds/diffstat/testing/case31lp9.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lp9.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lr1.ref b/patch_cmds/diffstat/testing/case31lr1.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lr1.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lr2.ref b/patch_cmds/diffstat/testing/case31lr2.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lr2.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31lu.ref b/patch_cmds/diffstat/testing/case31lu.ref
new file mode 100644
index 0000000..203a288
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31lu.ref
@@ -0,0 +1,2 @@
+ tty.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patch_cmds/diffstat/testing/case31p1.ref b/patch_cmds/diffstat/testing/case31p1.ref
new file mode 100644
index 0000000..0481b33
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31p1.ref
@@ -0,0 +1,2 @@
+ /depot/vendor/freebsd/src/sys/dev/usb/usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31p9.ref b/patch_cmds/diffstat/testing/case31p9.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31p9.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31r1.ref b/patch_cmds/diffstat/testing/case31r1.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31r1.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31r2.ref b/patch_cmds/diffstat/testing/case31r2.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31r2.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31u.pat b/patch_cmds/diffstat/testing/case31u.pat
new file mode 100644
index 0000000..81c0046
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31u.pat
@@ -0,0 +1,51 @@
+==== //depot/vendor/freebsd/src/sys/dev/usb/usbdevs#353 (text+ko) - //depot/projects/usb/src/sys/dev/usb/usbdevs#72 (text+ko) ==== content
+@@ -1,4 +1,4 @@
+-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.421 2009/07/30 18:53:06 weongyo Exp $
++$FreeBSD: src/sys/dev/usb/usbdevs,v 1.420 2009/07/30 00:15:17 alfred Exp $
+ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
+
+ /*-
+@@ -861,6 +861,12 @@
+
+ /* Apple Computer products */
+ product APPLE EXT_KBD 0x020c Apple Extended USB Keyboard
++product APPLE KBD_TP_ANSI 0x0223 Apple Internal Keyboard/Trackpad (Wellspring/ANSI)
++product APPLE KBD_TP_ISO 0x0224 Apple Internal Keyboard/Trackpad (Wellspring/ISO)
++product APPLE KBD_TP_JIS 0x0225 Apple Internal Keyboard/Trackpad (Wellspring/JIS)
++product APPLE KBD_TP_ANSI2 0x0230 Apple Internal Keyboard/Trackpad (Wellspring2/ANSI)
++product APPLE KBD_TP_ISO2 0x0231 Apple Internal Keyboard/Trackpad (Wellspring2/ISO)
++product APPLE KBD_TP_JIS2 0x0232 Apple Internal Keyboard/Trackpad (Wellspring2/JIS)
+ product APPLE OPTMOUSE 0x0302 Optical mouse
+ product APPLE MIGHTYMOUSE 0x0304 Mighty Mouse
+ product APPLE EXT_KBD_HUB 0x1003 Hub in Apple Extended USB Keyboard
+@@ -902,6 +908,7 @@
+ product ASUS RT2573_2 0x1724 RT2573
+ product ASUS LCM 0x1726 LCM display
+ product ASUS P535 0x420f ASUS P535 PDA
++product ASUS GMSC 0x422f ASUS Generic Mass Storage
+
+ /* ATen products */
+ product ATEN UC1284 0x2001 Parallel printer
+@@ -1177,12 +1184,12 @@
+ product DLINK DSB650TX3 0x400b 10/100 Ethernet
+ product DLINK DSB650TX2 0x4102 10/100 Ethernet
+ product DLINK DSB650 0xabc1 10/100 Ethernet
+-product DLINK2 DWA120_NF 0x3a0d DWA-120 (no firmware)
+-product DLINK2 DWA120 0x3a0e DWA-120
+ product DLINK2 DWLG122C1 0x3c03 DWL-G122 c1
+ product DLINK2 WUA1340 0x3c04 WUA-1340
+ product DLINK2 DWA111 0x3c06 DWA-111
+ product DLINK2 DWA110 0x3c07 DWA-110
++product DLINK2 DWA120_NF 0x3c0d DWA-120 (no firmware)
++product DLINK2 DWA120 0x3c0e DWA-120
+
+ /* DMI products */
+ product DMI CFSM_RW 0xa109 CF/SM Reader/Writer
+@@ -1971,6 +1978,7 @@
+ product PHILIPS PCA646VC 0x0303 PCA646VC PC Camera
+ product PHILIPS PCVC680K 0x0308 PCVC680K Vesta Pro PC Camera
+ product PHILIPS DSS150 0x0471 DSS 150 Digital Speaker System
++product PHILIPS SPE3030CC 0x083a USB 2.0 External Disk
+ product PHILIPS SNU5600 0x1236 SNU5600
+ product PHILIPS UM10016 0x1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
+ product PHILIPS DIVAUSB 0x1801 DIVA USB mp3 player
diff --git a/patch_cmds/diffstat/testing/case31u.ref b/patch_cmds/diffstat/testing/case31u.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31u.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31uR.ref b/patch_cmds/diffstat/testing/case31uR.ref
new file mode 100644
index 0000000..92ce8c7
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31uR.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31uRp0.ref b/patch_cmds/diffstat/testing/case31uRp0.ref
new file mode 100644
index 0000000..fcade37
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31uRp0.ref
@@ -0,0 +1,2 @@
+ //depot/vendor/freebsd/src/sys/dev/usb/usbdevs | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31ub.ref b/patch_cmds/diffstat/testing/case31ub.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31ub.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31uf0.ref b/patch_cmds/diffstat/testing/case31uf0.ref
new file mode 100644
index 0000000..8e2de2e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31uf0.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 11 + 3 - 0 !
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31uk.ref b/patch_cmds/diffstat/testing/case31uk.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31uk.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31up1.ref b/patch_cmds/diffstat/testing/case31up1.ref
new file mode 100644
index 0000000..0481b33
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31up1.ref
@@ -0,0 +1,2 @@
+ /depot/vendor/freebsd/src/sys/dev/usb/usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31up9.ref b/patch_cmds/diffstat/testing/case31up9.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31up9.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31ur1.ref b/patch_cmds/diffstat/testing/case31ur1.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31ur1.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31ur2.ref b/patch_cmds/diffstat/testing/case31ur2.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31ur2.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case31uu.ref b/patch_cmds/diffstat/testing/case31uu.ref
new file mode 100644
index 0000000..7a9c6ad
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case31uu.ref
@@ -0,0 +1,2 @@
+ usbdevs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32.pat b/patch_cmds/diffstat/testing/case32.pat
new file mode 100644
index 0000000..fc30350
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32.pat
@@ -0,0 +1,13 @@
+--- README 2001-10-10 20:23:46.000000000 -0400
++++ README.new 2009-08-31 05:24:30.000000000 -0400
+@@ -1,7 +1,7 @@
+ $Id: case32.pat,v 1.1 2009/08/31 09:24:46 tom Exp $
+
+-Readme file for DiffStat.
++Readme file for dIFFsTAT.
+
+ This program is a simple filter that reads the output of the 'diff' program,
+ and produces a histogram of the total number of lines that were changed. It is
+-useful for scanning a patch file to see which files were changed.
++useful for scanning a patch file to see which files were changed.
+\ No newline at end of file
diff --git a/patch_cmds/diffstat/testing/case32.ref b/patch_cmds/diffstat/testing/case32.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32R.ref b/patch_cmds/diffstat/testing/case32R.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32R.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32Rp0.ref b/patch_cmds/diffstat/testing/case32Rp0.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32Rp0.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32b.ref b/patch_cmds/diffstat/testing/case32b.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32b.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32f0.ref b/patch_cmds/diffstat/testing/case32f0.ref
new file mode 100644
index 0000000..bd160c6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32f0.ref
@@ -0,0 +1,2 @@
+ README | 4 2 + 2 - 0 !
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32k.ref b/patch_cmds/diffstat/testing/case32k.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32k.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32p1.ref b/patch_cmds/diffstat/testing/case32p1.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32p1.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32p9.ref b/patch_cmds/diffstat/testing/case32p9.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32p9.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32r1.ref b/patch_cmds/diffstat/testing/case32r1.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32r1.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32r2.ref b/patch_cmds/diffstat/testing/case32r2.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32r2.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case32u.ref b/patch_cmds/diffstat/testing/case32u.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case32u.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33.pat b/patch_cmds/diffstat/testing/case33.pat
new file mode 100644
index 0000000..69fe5f8
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33.pat
@@ -0,0 +1,13 @@
+--- README.new 2009-08-31 05:24:30.000000000 -0400
++++ README 2001-10-10 20:23:46.000000000 -0400
+@@ -1,7 +1,7 @@
+ $Id: case33.pat,v 1.1 2009/08/31 09:24:52 tom Exp $
+
+-Readme file for dIFFsTAT.
++Readme file for DiffStat.
+
+ This program is a simple filter that reads the output of the 'diff' program,
+ and produces a histogram of the total number of lines that were changed. It is
+-useful for scanning a patch file to see which files were changed.
+\ No newline at end of file
++useful for scanning a patch file to see which files were changed.
diff --git a/patch_cmds/diffstat/testing/case33.ref b/patch_cmds/diffstat/testing/case33.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33R.ref b/patch_cmds/diffstat/testing/case33R.ref
new file mode 100644
index 0000000..204cd97
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33R.ref
@@ -0,0 +1,2 @@
+ README.new | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33Rp0.ref b/patch_cmds/diffstat/testing/case33Rp0.ref
new file mode 100644
index 0000000..204cd97
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33Rp0.ref
@@ -0,0 +1,2 @@
+ README.new | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33b.ref b/patch_cmds/diffstat/testing/case33b.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33b.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33f0.ref b/patch_cmds/diffstat/testing/case33f0.ref
new file mode 100644
index 0000000..bd160c6
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33f0.ref
@@ -0,0 +1,2 @@
+ README | 4 2 + 2 - 0 !
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33k.ref b/patch_cmds/diffstat/testing/case33k.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33k.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33p1.ref b/patch_cmds/diffstat/testing/case33p1.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33p1.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33p9.ref b/patch_cmds/diffstat/testing/case33p9.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33p9.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33r1.ref b/patch_cmds/diffstat/testing/case33r1.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33r1.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33r2.ref b/patch_cmds/diffstat/testing/case33r2.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33r2.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/case33u.ref b/patch_cmds/diffstat/testing/case33u.ref
new file mode 100644
index 0000000..59cd19c
--- /dev/null
+++ b/patch_cmds/diffstat/testing/case33u.ref
@@ -0,0 +1,2 @@
+ README | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patch_cmds/diffstat/testing/run_atac.sh b/patch_cmds/diffstat/testing/run_atac.sh
new file mode 100644
index 0000000..646862e
--- /dev/null
+++ b/patch_cmds/diffstat/testing/run_atac.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id: run_atac.sh,v 1.2 1998/01/17 01:10:06 tom Exp $
+rm -f /tmp/atac_dir/*
+run_test.sh
+atac -u ../*.atac /tmp/atac_dir/*
+atacmin ../*.atac /tmp/atac_dir/*
diff --git a/patch_cmds/diffstat/testing/run_test.sh b/patch_cmds/diffstat/testing/run_test.sh
new file mode 100644
index 0000000..c0faab2
--- /dev/null
+++ b/patch_cmds/diffstat/testing/run_test.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+# $Id: run_test.sh,v 1.15 2012/01/03 10:18:14 tom Exp $
+# Test-script for DIFFSTAT
+
+# change this for ad hoc testing of compression
+#TYPE=.pat.Z
+#TYPE=.pat.gz
+#TYPE=.pat.bz2
+TYPE=.pat
+
+if [ $# = 0 ]
+then
+ eval '"$0" *${TYPE}'
+ exit
+fi
+PATH=`cd ..;pwd`:$PATH; export PATH
+# Sanity check, remembering that not every system has `which'.
+(which diffstat) >/dev/null 2>/dev/null && echo "Checking `which diffstat`"
+
+for item in $*
+do
+ echo "testing `basename $item $TYPE`"
+ for OPTS in "" "-p1" "-p9" "-f0" "-u" "-k" "-r1" "-r2" "-b" "-R" "-Rp0"
+ do
+ NAME=`echo $item | sed -e 's/'$TYPE'$//'`
+ DATA=${NAME}${TYPE}
+ if [ ".$OPTS" != "." ] ; then
+ NAME=$NAME`echo ./$OPTS|sed -e 's@./-@@'`
+ fi
+ TEST=`basename $NAME`
+ diffstat -e $TEST.err -o $TEST.out $OPTS $DATA
+ if [ -f $NAME.ref ]
+ then
+ diff -b $NAME.ref $TEST.out >check.out
+ if test -s check.out
+ then
+ echo "?? fail: $TEST"
+ ls -l check.out
+ cat check.out
+ else
+ echo "** ok: $TEST"
+ rm -f $TEST.out
+ rm -f $TEST.err
+ fi
+ else
+ echo "** save: $TEST"
+ mv $TEST.out $NAME.ref
+ rm -f $TEST.err
+ fi
+ done
+done