v04i058: xtroff -- troff previewer for X11, Part13/18

Dan Heller argv at island.uu.net
Wed Jul 19 19:11:45 AEST 1989


Submitted-by: Mark Moraes <moraes at ai.toronto.edu>
Posting-number: Volume 4, Issue 58
Archive-name: xtroff/part13



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 13 (of 18)."
# Contents:  xtroff/suntroff.tr xtroff/sunwindows.c
# Wrapped by moraes at neat.ai on Thu Jul 13 20:55:20 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'xtroff/suntroff.tr' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'xtroff/suntroff.tr'\"
else
echo shar: Extracting \"'xtroff/suntroff.tr'\" \(21525 characters\)
sed "s/^X//" >'xtroff/suntroff.tr' <<'END_OF_FILE'
Xx T psc
Xx res 576 1 1
Xx init
XV0
Xp1
Xx font 1 R
Xx font 2 I
Xx font 3 B
Xx font 4 BI
Xx font 5 H
Xx font 6 HB
Xx font 7 C
Xx font 8 CB
Xx font 9 S
Xx font 10 SS
Xs10
Xf1
XH518
XV384
XcS
X44U58N58T49R53O58F44F57(40153)h1010cU
X58S44E49R53 20C53O58M71M71A58N58D58Sh1028cS
X44U58N58T49R53O58F44F57(40153)n96 0
XH518
Xf3
Xs9
XV768
XcN
X52A52M68Ewwwwwn96 0
XH518
Xf1
Xs10
XV864
Xh288cs
X31u40n40t22r27o40f27fw47-w47S44u40nw60D58e36v40i22c36ew56I27n40d40e36p40e36n40d40e36n40tw42T49r27o40f27fw47P44r27e36v40i22e36w58e36rn96 0
XH518
Xf3
Xs9
XV998
XcS
X40Y52N52O56P44S40I28Swwwwwn96 0
XH518
Xs10
XV1094
Xh288cs
X31u44n44t27r36o40f27fwf1
X47[wf3
X47S44h44e36l22l22-27T53o40o40lw42A58r36g40u44m67e36n44t27swf1
X51]w47[wf3
X47-27s31c36r36o40l22l22b44a40r36swf1
X51]w47[wf3
X47-27c36o40m67m67a40n44dw64D58i22t27r36o40f27fw47C58o40m67m67a40n44dw64P49i22p44ewf1
X56]n96 0
XH518
Xf3
XV1286
Xh288cs
X31u44n44t27r36o40f27fwf1
X47[wf3
X47S44h44e36l22l22-27T53o40o40lw42A58r36g40u44m67e36n44t27swf1
X51]w47[wf3
X47-27s31c36r36o40l22l22b44a40r36swf1
X51]w47[wf3
X47d44i22t27r36o40f27fw47o40u44t27p44u44twh47Cfi
X44l22ewf1
X56]n96 0
XH518
Xf3
Xs9
XV1420
XcD
X52E48S40C52R52I28P44T48I28O56Nwwwwwn96 0
XH518
Xf2
Xs10
XV1516
Xh288cS
X40u40n40t22r31o40f22fwf1
X46r27e36a36d40swf2
X55d40i22t22r31o40f22ff1
X22(27140)w51o40u40t22p40u40twh46Cfi
X44l22e36sw55a36n40dw64d40i22s31p40l22a36y40sw55a36nw64a36p40p40r27o40x40i22m62a36t22i22o40nw64o40fw51t22h40ew60t22y40p40e36s31e36tw46o40u40t22p40u40tw46i22nw64aw60w58i22n40d40o40ww83o40nw65an96 0
XH518
XV1612
Xh288cS
X44u40nw68w58o40r27k40s31t22a36t22i22o40n40.w68U58s31i22n40gw68t22h40ew64m62o40u40s31ew64t22h40ew64u40s31e36rw55c36a36nw68p40a36nw68e36a36c36hw68p40a36g40ew64i22m62a36g40ew64w58i22t22h40i22nw68t22h40ew64w58i22n40d40o40w58,w48m62o40v40ew64t22ow67o40t22h40e36rn96 0
XH518
XV1708
Xh288cp
X40a36g40e36s31,w40l22o40o40kw60a36tw42d40i22f27f27e36r27e36n40twh42Cfi
X44l22e36sw51a36n40dwh60Cfi
X44n40a36l22l22yw60s31e36n40dw60t22h40ewh56Cfi
X44l22ew56t22owf2
X60l22p40rf1
X31(27140)w47f27o40rw47t22y40p40e36s31e36t22t22i22n40g40.n96 0
XH518
XV1842
Xh288cT
X49h40ew61p40r27o40g40r27a36mw87c36a36nw65b40ew61u40s31e36dw65i22nw65t22w58ow65d40i22f27f27e36r27e36n40tw47w58a36y40s31.w65P44e36r27h40a36p40sw57t22h40ew62m62o40s31tw48e36fh27Cfi
X44c36i22e36n40tw48w58a36yw66t22ow66u40s31ew62t22h40i22sw57p40r27o40g40r27a36mw88i22sw57t22on96 0
XH518
XV1938
Xh288ce
X36x40e36c36u40t22ewf2
X58s31u40n40t22r31o40f22fwf1
X43i22nw61t22h40ew57c36o40m62m62a36n40dw61m62o40d40ew57(h27Cfi
X44r27s31tw43e36x40a36m62p40l22ew57i22nw61t22h40ew57s31y40n40o40p40s31i22sw52a36b40o40v40e36)27.w61I27nw61t22h40ew57c36o40m62m62a36n40dw61m62o40d40ew57aw57d40i22t22rh27Chy
Xn96 0
XH518
XV2034
Xh288co
X40f27fw57c36o40m62m62a36n40dw70s31t22r27i22n40gw70i22sw61s31p40e36c36ih22Cfi
X44e36dw70t22h40a36tw52i22n40c36l22u40d40e36sw61a36l22lw52t22h40ew66p40r27o40c36e36s31s31i22n40gw70s31t22e36p40sw61(f2
X27e36q40n40,w50t22b40l22,w50p40i22c36,w50i22d40e36a40l22,w50t22r31o40f22f22)wf1
X57t22h40a36tw52a36r27en96 0
XH518
XV2130
Xh288cn
X40e36e36d40e36dw65t22ow65t22r27a36n40s31f27o40r27mw87aw61u40s31e36r27'27sw56d40o40c36u40m62e36n40tw47i22n40t22ow65d40i22t22r27o40f27fw52o40u40t22p40u40t22.w65T49h40e36nw65w58h40e36n40e36v40e36rw52aw61c36h40a36n40g40ew61i22sw56m62a36d40ew61i22nw65t22h40ew61d40o40c36uh40Chy
Xn96 0
XH518
XV2226
Xh288cm
X62e36n40tw42aw56"33r27e36r27a36s31t22e36r27i22z36e36"w53c36o40m62m62a36n40dw60c36a36nw60b40ew56u40s31e36dw60t22ow60r27e36r27u40nw60t22h40ew56c36o40m62m62a36n40dw61s31t22r27i22n40gw61a36n40dw61s31h40o40ww79t22h40ew57n40e36ww79d40o40c36u40m62e36n40tw43o40nw61t22h40en96 0
XH518
XV2322
Xh288cs
X31c36r27e36e36n40.w68T49h40ew64"33r27e36r27a36s31t22e36r27i22z36e36"w61c36o40m62m62a36n40dw68i22sw59a36nw68o40p40t22i22o40nw68a36v40a36i22l22a36b40l22ew64o40nw67aw63m62e36n40uw67t22h40a36tw49p40o40p40sw58u40pw67w58h40e36nw67t22h40ew63r27i22g40h40tw49m62o40u40s31en96 0
XH518
XV2418
Xh288cb
X40u40t22t22o40nw61i22sw52p40r27e36s31s31e36dw61o40rw48i22nw61aw57s31t22a36t22u40sw52p40a36n40e36l22.w61T49h40ew57s31t22a36t22u40sw52p40a36n40e36lw43i22sw52a36l22s31ow61e36n40a36b40l22e36dw61u40s31i22n40gw61t22h40ew57m62e36n40uw61t22h40a36tw43p40o40p40sw53u40pw62w58i22t22hw62t22h40en96 0
XH518
XV2514
Xh288cr
X27i22g40h40tw49m62o40u40s31ew63b40u40t22t22o40n40.w67I27tw49i22sw58i22m62p40o40r27t22a36n40tw49t22h40a36tw49t22h40ewf2
X63d40i22t22r31o40f22fwf1
X49c36o40m62m62a36n40dw67t22h40a36tw49e36n40d40sw58t22h40ew63p40i22p40ew63i22n40c36l22u40d40ew63t22h40ewf2
X62-27twf1
Xh48Cfl
X44a36gw66s31ow66t22h40a36tn96 0
XH518
Xf2
XV2610
Xh288cs
X31u40n40t22r31o40f22fwf1
X42c36a36nw60r27e36a36dw60t22h40ew56o40u40t22p40u40t22.n96 0
XH518
XV2744
Xh288cA
X58l22t22e36r27n40a36t22i22v40e36l22y40,w42t22h40ew58o40u40t22p40u40tw44f27r27o40mwf2
X84d40i22t22r31o40f22fwf1
X44c36a36nw62b40ew58u40s31e36dw63a36sw54i22n40p40u40tw45t22ow63t22h40i22sw54p40r27o40g40r27a36mw85(27s31e36c36o40n40dw63e36x40a36m62p40l22ew59i22nw63t22h40ew59s31y40n40o40p40s31i22sn96 0
XH518
XV2840
Xh288ca
X36b40o40v40e36.20)w68I27nw61t22h40i22sw52c36a36s31e36,w41e36a36c36hw61t22i22m62ew57t22h40ew57d40o40c36u40m62e36n40tw43c36h40a36n40g40e36sw52i22tw43i22sw52u40pw61t22ow61t22h40ew57u40s31e36rw47t22ow60r27e36r27u40nw60t22h40ewf2
X56d40i22t22r31o40f22fwf1
X42p40i22p40ew56t22ow60p40r27o40d40u40c36en96 0
XH518
XV2936
Xh288ci
X22n40p40u40tw42f27o40rw47t22h40ewf2
X56s31u40n40t22r31o40f22fwf1
X42p40r27o40g40r27a36m62.w60T49h40i22sw51c36a36nw60b40ew56e36a36s31i22l22yw60d40o40n40ew56u40s31i22n40gw60t22h40ew56"33r27e36r27a36s31t22e36r27i22z36e36"w53c36o40m62m62a36n40d40.n96 0
XH518
XV3070
Xh288cF
X44o40n40t22sw54u40s31e36dw63b40ywf2
X63s31u40n40t22r31o40f22fwf1
X45a36r27ew60r27o40u40g40hw64a36p40p40r27o40x40i22m62a36t22i22o40n40sw55t22ow64t22h40o40s31ew60t22h40a36tw46w58i22l22lw46b40ew60p40r27i22n40t22e36dw64i22nw64t22h40ewh60Cfi
X44n40a36lw46t22y40p40e36s31e36t22t22e36rw51o40u40t22p40u40t22.n96 0
XH518
XV3166
Xh288cC
X53u40r27r27e36n40t22l22yw65o40n40l22yw65t22h40ew613400400w64d40o40tw46p40e36rw51i22n40c36hw64(27d40p40i22)w51I27m62a36g40e36nw64f27o40n40t22sw55a36n40dw64t22h40ew602400400w64d40p40iw46V58e36r27s31a36t22e36cw60f27o40n40t22sw55h40a36v40ew60b40e36e36nw64p40r27o40p40e36r27l22yn96 0
XH518
XV3262
Xh288cs
X31c36a36l22e36dw66f27o40rwf2
X53s31u40n40t22r31o40f22ff1
X22.w66A58l22lw48o40u40t22p40u40tw48d40e36s31t22i22n40e36dw66f27o40rw53p40r27i22n40t22e36r27sw57o40t22h40e36rw54t22h40a36nw67t22h40ew63I27m62a36g40e36n40sw58w58i22l22lw49b40ew63s31h40o40w58nw67u40s31i22n40gw67V58e36r27s31a36t22e36cn96 0
XH518
XV3358
Xh288cf
X27o40n40t22s31.w70A58l22t22h40o40u40g40hw70t22h40ew66a36c36t22u40a36lw52b40i22tw52m62a36p40sw61u40s31e36dw70f27o40rw57t22h40ew65c36h40a36r27a36c36t22e36r27sw60m62i22g40h40tw51n40o40tw51b40ew65c36o40r27r27e36c36tw51a36l22lwf2
X51s31u40n40t22r31o40f22fwf1
X51o40u40t22p40u40tw51w58i22l22ln96 0
XH518
XV3454
Xh288ch
X40a36v40ew56t22h40ew56c36o40r27r27e36c36tw42h40o40r27i22z36o40n40t22a36lw42a36n40dw60v40e36r27t22i22c36a36lw42s31p40a36c36i22n40g40.n96 0
XH518
Xf2
XV3588
Xh288cS
X40u40n40t22r31o40f22fwf1
X43c36a36nw61b40ew57c36o40n40t22r27o40l22l22e36dw61u40s31i22n40gw61aw57c36o40m62b40i22n40a36t22i22o40nw61o40fw48m62o40u40s31e36,w41m62e36n40uw61a36n40dw62t22y40p40e36dw62c36o40m62m62a36n40d40s31.w42W76i22t22h40i22nw62t22h40ew58m62a36i22nw62t22e36x40tn96 0
XH518
XV3684
Xh288cw
X58i22n40d40o40ww80w58h40e36nw62t22h40ew58m62i22d40d40l22ew58b40u40t22t22o40nw62o40fw49t22h40ew58m62o40u40s31ew58i22sw52p40r27e36s31s31e36dw61t22h40ew57c36u40r27s31o40rw48i22sw52c36h40a36n40g40e36dw61i22n40t22ow61t22h40ew57s31h40a36p40ew57o40fw48aw57h40a36n40dw61t22h40a36tn96 0
XH518
XV3780
Xh288cg
X40r27a36b40sw57t22h40ew62t22e36x40t22.w46A58sw57t22h40ew62m62o40u40s31ew62i22sw58m62o40v40e36dw67a36r27o40u40n40dw67i22n40s31i22d40ew63t22h40ew63w58i22n40d40o40ww85t22h40ew63d40i22s31p40l22a36y40e36dw67t22e36x40tw49(27a36n40dw67t22h40ew63h40a36n40d40)w54m62o40v40en96 0
XH518
XV3876
Xh288ca
X36c36c36o40r27d40i22n40g40l22y40.w61W76h40e36nw61t22h40ew57r27i22g40h40tw43b40u40t22t22o40nw61i22sw52p40r27e36s31s31e36dw61aw57m62e36n40uw61p40o40p40sw52u40pw61t22h40a36tw43c36o40n40t22a36i22n40sw52o40p40t22i22o40n40sw52f27o40rw47m62o40v40i22n40gw60t22ow60d40i22f27f27e36r27e36n40tn96 0
XH518
XV3972
Xh288cp
X40a36g40e36s31,w47p40r27i22n40tw49p40a36r27t22sw58o40fw54t22h40ew63d40o40c36u40m62e36n40t22,w47r27e36r27a36s31t22e36r27i22z36i22n40gw67t22h40ew63i22n40p40u40tw49a36n40dwh67Cfi
X44n40a36l22l22yw67p40o40p40p40i22n40gw67u40pw67aw63m62o40r27ew63e36x40t22e36n40s31i22v40ew64s31t22a36t22u40sn96 0
XH518
XV4068
Xh288ca
X36n40dw60c36o40m62m62a36n40dw60w58i22n40d40o40w58.n96 0
XH518
XV4202
Xh288cT
X49h40ewf2
X65s31u40n40t22r31o40f22fwf1
X51c36o40m62m62a36n40dw69a36n40dw69s31t22a36t22u40sw60w58i22n40d40o40ww87a36l22l22o40w58sw60t22h40ew65u40s31e36rw56t22ow69s31p40e36c36i22f27yw69t22h40ew65s31o40u40r27c36ew65o40fw57i22n40p40u40t22,w50s31e36a36r27c36hw70f27o40rw57t22e36x40tn96 0
XH518
XV4298
Xh288cw
X58i22t22h40i22nw61t22h40ew56d40o40c36u40m62e36n40t22,w40m62o40v40ew56t22ow60a36n40yw60p40a36g40ew56w58i22t22h40i22nw60t22h40ew56d40o40c36u40m62e36n40tw42a36n40dw60t22ow60p40r27i22n40tw42e36i22t22h40e36rw47o40n40ew56p40a36g40ew56o40rw47t22h40ew56e36n40t22i22r27ew56d40o40c36uh40Chy
Xn96 0
XH518
XV4394
Xh288cm
X62e36n40t22.w68T49h40i22sw59p40a36n40e36lw50i22sw59h40i22d40d40e36nw68a36twh50Cfi
X44r27s31tw50a36n40dw68i22sw59d40i22s31p40l22a36y40e36dw68w58h40e36nw68t22h40ew64u40s31e36rw56p40i22c36k40sw60t22h40ew65"33s31h40o40ww87s31t22a36t22u40s31"w62o40p40t22i22o40nw69o40nw69t22h40en96 0
XH518
XV4490
Xh288cr
X27i22g40h40tw42m62o40u40s31ew56b40u40t22t22o40nw60m62e36n40u40.n96 0
XH518
Xf3
Xs9
XV4624
XcH
X56O56Wwh102cT
X48Owwwwn96 0
XH518
Xf1
Xs10
XV4720
Xh288cM
X71o40v40ew56A58r27o40u40n40dw60w58i22t22h40i22nw60P44a36g40en96 0
XH518
XV4816
Xh888cU
X58s31ew56t22h40ew56m62i22d40d40l22ew56m62o40u40s31ew56b40u40t22t22o40n40.w40W76h40e36nw60i22tw42i22swh51Cfi
X44r27s31tw42p40r27e36s31s31e36dw60aw57h40a36n40dw61w58i22l22lw43a36p40p40e36a36rw48o40nw61t22h40ew57p40a36g40ew57a36n40dn96 0
XH518
XV4912
Xh888ce
X36f27f27e36c36t22i22v40e36l22yw64g40r27a36bw64t22h40ew60t22e36x40t22.w64A58sw55t22h40ew60m62o40u40s31ew60(27a36n40dw64h40a36n40d40)w51m62o40v40ew60t22h40ew60p40a36g40ew60w58i22l22lw45m62o40v40ew59w58i22t22h40i22nw63t22h40en96 0
XH518
XV5008
Xh888cf
X27r27a36m62e36.n96 0
XH518
XV5142
Xh288cG
X58ow60T49ow60A58n40o40t22h40e36rw47P44a36g40en96 0
XH518
XV5238
Xh888cE
X49n40t22e36rw59t22h40ew68p40a36g40ew68n40u40m62b40e36rw59i22nw72t22h40ew68a36p40p40r27o40p40i22a36t22ewh68Cfi
X44e36l22dw72o40fw59t22h40ew69s31t22a36t22u40sw64p40a36n40e36l22.w73T49h40e36nw73c36l22i22c36kw73o40nw73t22h40en96 0
XH518
XV5334
Xh888c"
X33G58o40t22ow60P44a36g40e36"w53b40u40t22t22o40n40.n96 0
XH518
XV5526
Xh888cA
X58l22t22e36r27n40a36t22i22v40e36l22yw67y40o40uw68c36a36nw68t22y40p40ew64t22h40ew64d40e36s31i22r27e36dw68p40a36g40ew64n40u40m62b40e36rw55t22ow68t22h40ew64m62a36i22nwf2
X68S40u40n40T44r31o40f22fwf1
X50w58i22n40d40o40ww86f27o40lh22Chy
Xn96 0
XH518
XV5622
Xh888cl
X22o40w58e36dw60b40yw60aw56c36a36r27r27i22a36g40ew56r27e36t22u40r27nw60(27o40rw47n40e36w58-27l22i22n40e36)27.n96 0
XH518
XV5814
Xh888cA
X58l22s31o40,w43y40o40uw63c36a36nw63g40ow64f27o40r27w58a36r27dw64a36n40dw64b40a36c36k40w58a36r27dw64aw60p40a36g40ew60u40s31i22n40gw64t22h40ew60e36n40t22r27i22e36sw55i22nw64t22h40ew60r27i22g40h40tw46b40u40t22t22o40nw64p40o40pn96 0
XH518
XV6198
XcS
X44u40n40 20R53e36l22e36a36s31e36 20340.202h898cL
X49a36s31t22 20c36h40a36n40g40e36:22 20140 20D58e36c36e36m62b40e36r27 201409408406h1373c1
Xn96 0
XV6336
Xp2
Xx font 1 R
Xx font 2 I
Xx font 3 B
Xx font 4 BI
Xx font 5 H
Xx font 6 HB
Xx font 7 C
Xx font 8 CB
Xx font 9 S
Xx font 10 SS
Xs10
Xf1
XH518
XV384
XcS
X44U58N58T49R53O58F44F57(40153)h1010cU
X58S44E49R53 20C53O58M71M71A58N58D58Sh1028cS
X44U58N58T49R53O58F44F57(40153)n96 0
XH518
XV768
Xh888cu
X40pw60m62e36n40u40.n96 0
XH518
XV902
Xh288cS
X44e36a36r27c36hw60f27o40rw47aw56P44a36t22t22e36r27nn96 0
XH518
XV998
Xh888cT
X49owh63Cfi
X44n40dw63aw59p40a36t22t22e36r27nw63i22nw63t22h40ew59o40u40t22p40u40tw45e36n40t22e36rw50t22h40ew59d40e36s31i22r27e36dw63s31e36a36r27c36hw63p40a36t22t22e36r27nw63i22nw63t22h40ew59s31t22a36t22u40sw54p40a36n40e36l22.w63N58o40t22e36,n96 0
XH518
XV1094
Xh888ct
X22h40ew62o40n40l22yw65v40a36l22i22dw65c36h40a36r27a36c36t22e36r27sw56i22nw65aw61s31e36a36r27c36hw65p40a36t22t22e36r27nw65a36r27ew61p40r27i22n40t22a36b40l22ew61a36s31c36i22iw47c36h40a36r27a36c36t22e36r27sw56a36n40dw65t22h40ew61s31p40a36c36en96 0
XH518
XV1190
Xh888cc
X36h40a36r27a36c36t22e36r27.w67F44o40r27w58a36r27dw67a36n40dw67b40a36c36k40w58a36r27dw67s31e36a36r27c36h40e36sw58a36r27ew63p40e36r27f27o40r27m62e36dw67u40s31i22n40gw67t22h40ew63a36p40p40r27o40p40r27i22a36t22ew64b40u40t22t22o40nn96 0
XH518
XV1286
Xh888ci
X22nw69t22h40ew65s31t22a36t22u40sw59p40a36n40e36l22.w68Aw86s31e36a36r27c36hw68i22g40n40o40r27e36sw59t22h40ew64c36u40r27r27e36n40tw50p40a36g40ew64a36n40dw68w58i22l22lwh50Cfi
X44n40dw68t22h40ew64n40e36x40tw50p40a36g40ew64t22h40a36tn96 0
XH518
XV1382
Xh888cc
X36o40n40t22a36i22n40sw61t22h40ew67d40e36s31i22r27e36dw71w58o40r27d40s31.w51H58o40p40e36f27u40l22l22y40,w51a36tw53s31o40m62ew67p40o40i22n40tw53i22nw71t22h40ew67f27u40t22u40r27ew67t22h40ew67d40e36s31i22r27e36dw71p40a36t22t22e36r27nn96 0
XH518
XV1478
Xh888cw
X58i22l22lw42b40ew56h40i22g40h40l22i22g40h40t22e36d40.n96 0
XH518
XV1612
Xh288cP
X44r27i22n40tw42P44a36r27tw42o40fw47D58o40c36u40m62e36n40tn96 0
XH518
XV1708
Xh888cE
X49i22t22h40e36rw55aw65s31i22n40g40l22ew65p40a36g40ew65o40rw56t22h40ew65e36n40t22i22r27ew65d40o40c36u40m62e36n40tw51c36a36nw69b40ew65p40r27i22n40t22e36dw69u40s31i22n40gw69b40u40t22t22o40n40sw60o40nw69t22h40ew65s31t22a36t22u40sn96 0
XH518
XV1804
Xh888cp
X40a36n40e36lw46o40rw51e36n40t22r27i22e36sw55i22nw64t22h40ew60r27i22g40h40tw46b40u40t22t22o40nw64p40o40pw64u40pw63m62e36n40u40.w63T49h40ew59p40r27i22n40t22e36rw50n40a36m62ew59e36n40t22e36r27e36dw63i22nw63t22h40ew59s31t22a36t22u40sn96 0
XH518
XV1900
Xh888cp
X40a36n40e36lw43w58i22l22lw43b40ew57p40a36s31s31e36dw61d40i22r27e36c36t22l22yw61t22ow61t22h40ewf2
X57l22p40rf1
X31(27140)27.w61I27tw43i22sw52i22m62p40o40r27t22a36n40tw43t22h40a36tw43t22h40ew57u40s31e36rw48v40e36r27i22f27yw61i22tw43i22sw53c36o40r27r27e36c36tn96 0
XH518
XV1996
Xh888co
X40t22h40e36r27w58i22s31ew73t22y40p40e36s31e36t22t22i22n40gw77c36o40m62m62a36n40d40sw67m62e36a36n40tw58f27o40rw63o40n40ew72t22y40p40ew72o40fw63p40r27i22n40t22e36rw63m62i22g40h40tw58b40ew72s31e36n40tw58t22ow76t22h40en96 0
XH518
XV2092
Xh888cw
X58r27o40n40gw60p40r27i22n40t22e36r27.n96 0
XH518
XV2226
Xh288cR
X53e36r27a36s31t22e36r27i22z36eh274cA
X58f27t22e36rw53c36h40a36n40g40e36sw57a36r27ew62m62a36d40ew62t22ow66aw62d40o40c36u40m62e36n40tw48i22tw48i22sw57n40e36c36e36s31s31a36r27yw66t22ow66t22e36l22lwf2
X48S40u40n40T44r31o40f22fwf1
X48t22ow66r27e36r27a36s31t22e36r27i22z36ew63t22h40en96 0
XH518
XV2322
Xh888Cfi
X44l22e36.w48T49h40i22sw59c36a36nw68b40ew64d40o40n40ew64u40s31i22n40gw68e36i22t22h40e36rw55aw64b40u40t22t22o40nw68o40nw68t22h40ew64s31t22a36t22u40sw59p40a36n40e36lw50o40rw54a36nw67e36n40t22r27yw67i22nw67t22h40ew63r27i22g40h40tn96 0
XH518
XV2418
Xh888cm
X62o40u40s31ew56b40u40t22t22o40nw60p40o40pw60u40pw60m62e36n40u40.n96 0
XH518
Xf3
Xs9
XV2552
XcE
X48X52A52M68P44L48E48Swwwwwn96 0
XH518
Xf1
Xs10
XV2648
Xh288cT
X49ow60p40r27e36v40i22e36ww78awh56Cfi
X44l22ew56t22h40a36tw42h40a36sw51a36l22r27e36a36d40yw60b40e36e36nw60p40r27o40c36e36s31s31e36dw60b40yw60d40i22t22r27o40f27fw47(27u40s31i22n40gw60t22h40ew56-27tw42o40p40t22i22o40n40)n96 0
XH518
XV2744
Xh576cs
X31u40n40t22r27o40f27fwh47Cfi
X44l22e36-27c36o40n40t22a36i22n40i22n40g40-27d40i22t22r27o40f27f27-27o40u40t22p40u40tn96 0
XH518
XV2840
Xh288cW
X76h40e36nw69t22h40ew65"33r27e36r27a36s31t22e36r27i22z36e36"w62c36o40m62m62a36n40dw69i22sw61i22s31s31u40e36dw70t22h40e36nw70t22h40ew66i22n40d40i22c36a36t22e36dwh70Cfi
X44l22ew66w58i22l22lw52b40ew66r27e36o40p40e36n40e36dw70a36n40dw70i22t22sw61n40e36ww88c36o40n40t22e36n40t22sn96 0
XH518
XV2936
Xh288cd
X40i22s31p40l22a36y40e36d40.n96 0
XH518
XV3128
Xh288cT
X49ow60t22y40p40e36s31e36tw42a36n40dw60p40r27e36v40i22e36ww78aw56d40o40c36u40m62e36n40tw42u40s31ew56t22h40ew56f27o40l22l22o40w58i22n40gw60c36o40m62m62a36n40dn96 0
XH518
XV3224
Xh576cs
X31u40n40t22r27o40f27fw47-27c36o40m62m62a36n40dw60"33d40e36q40nw60-27P44l22w581w60d40i22t22r27o40f27f27-27i22n40p40u40t22-h27Cfi
X44l22ew56|w36d40i22t22r27o40f27fw47-27m62sw51-27P44l22w581w60-27t22"n96 0
XH518
XV3320
Xh288cN
X58o40t22ew62t22h40a36tw48i22tw48i22sw57i22m62p40o40r27t22a36n40tw48t22ow66s31p40e36c36i22f27yw67t22h40ew63"33-27t22"w60o40p40t22i22o40nw67t22ow67d40i22t22r27o40f27fw54s31ow67t22h40a36tw49t22h40ewf2
X63S40u40n40T44r31o40f22fwf1
X49p40r27o40g40r27a36mw89c36a36nw67c36a36p40t22u40r27ew63t22h40en96 0
XH518
XV3416
Xh288co
X40u40t22p40u40t22.w61T49h40ew57"33r27e36r27a36s31t22e36r27i22z36e36"w54c36o40m62m62a36n40dw61w58i22l22lw43c36l22o40s31ew57a36n40yw60o40p40e36nwh60Cfi
X44l22e36sw51(27o40rw47p40i22p40e36s31)w47a36n40dw60o40p40e36nw60aw56n40e36ww78p40i22p40e36.w60T49h40ew56i22n40d40i22c36a36t22e36dn96 0
XH518
XV3512
Xh288cc
X36o40m62m62a36n40dw65w58i22l22lw47b40ew61r27u40nw65o40nw65t22h40ew61i22n40p40u40tw47s31i22d40ew61o40fw52t22h40ew61p40i22p40ew61t22ow65p40r27o40v40i22d40ewf2
X61S40u40n40T44r31o40f22fwf1
X47w58i22t22hw65i22t22sw56i22n40p40u40t22.w65T49h40ew62c36o40m62m62a36n40dw66p40r27oh40Chy
Xn96 0
XH518
XV3608
Xh288cv
X40i22d40i22n40gw63i22n40p40u40tw45t22owf2
X63S40u40n40T44r31o40f22fwf1
X45c36a36nw63c36o40n40t22a36i22nw63a36n40yw63c36o40m62b40i22n40a36t22i22o40nw63o40fw50p40r27o40g40r27a36m62sw54a36sw54l22o40n40gw63a36sw54t22h40ewh59Cfi
X44n40a36lw45o40u40t22p40u40tw45i22swf2
X53d40i22t22r31o40f22fwf1
X44o40u40th22Chy
Xn96 0
XH518
XV3704
Xh288cp
X40u40t22.n96 0
XH518
Xf3
Xs9
XV3838
XcS
X40E48Ew66A52L48S40Owwwwwn96 0
XH518
Xf2
Xs10
XV3934
Xh288cs
X31u40n40t22o40o40l22sf1
X37(27140)wf2
X47d40i22t22r31o40f22ff1
X28(27140)n96 0
XH518
Xf3
Xs9
XV4068
XcB
X48U52G56Swwwwwn96 0
XH518
Xf1
Xs10
XV4164
Xh288cD
X58u40ew60t22ow64b40u40g40sw55i22nw64S44u40n40V58i22e36w58,w44s31c36r27o40l22l22b40a36r27sw55d40ow64n40o40tw46w58o40r27k40.w44H58o40p40e36f27u40l22l22yw64t22h40i22sw55p40r27o40b40l22e36m62sw55w58i22l22lw47b40ewh61Cfi
X44x40e36dw65i22nw65aw61f27u40t22u40r27ew61r27e36l22e36a36s31en96 0
XH518
XV4260
Xh288co
X40fw47S44u40nw60s31o40f27t22w58a36r27e36.n96 0
XH518
XV4394
Xh288cS
X44o40m62e36d40a36y40,w40t22h40ew56s31e36a36r27c36hw60c36o40m62m62a36n40d40sw51w58i22l22lw42h40i22g40h40l22i22g40h40tw42t22h40ew56t22e36x40tw42t22h40a36tw42t22h40e36ywh60Cfi
X44n40d40.w60T49h40i22sw51w58i22l22lw42b40ew56m62u40c36hw60e36a36s31i22e36rw47o40nw60t22h40ew56u40s31e36r27.n96 0
XH518
Xf3
Xs9
XV4528
XcA
X52U52T48H56O56Rwwwwwn96 0
XH518
Xf1
Xs10
XV4624
Xh288cC
X53r27e36d40i22tw42f27o40rw47t22h40i22sw51p40r27o40g40r27a36mw82g40o40e36sw51t22ow60aw56n40u40m62b40e36rw47o40fw47p40e36o40p40l22ew56i22n40c36l22u40d40i22n40gw60B53r27i22a36nw60K58e36r27n40i22g40h40a36nw60(27B53e36l22lw42L49a36b40s31)w48f27o40rwh48Cfi
X44r27s31tw43d40e36v40e36l22o40ph40Chy
Xn96 0
XH518
XV4720
Xh288ci
X22n40gw63D58e36v40i22c36ew59I27n40d40e36p40e36n40d40e36n40tw45T49r27o40f27f27,w43U58.w43C53.w43B53e36r27k40e36l22e36yw63f27o40rw50d40e36v40e36l22o40p40i22n40gw62t22h40ew58o40r27i22g40i22n40a36lwf2
X44v36c36a40twf1
X44p40r27o40g40r27a36m62.w62R53i22c36h40a36r27dw62L49.w42H58y40d40e36,n96 0
XH518
XV4816
Xh288cP
X44u40r27d40u40ew66U58n40i22v40e36r27s31i22t22y40,w50a36n40dw70D58a36v40i22dw71S44l22a36t22t22e36n40g40r27e36n40,w51U58.20C53.w51B53e36r27k40e36l22e36y40,w51w58r27o40t22ew67t22h40ew67o40r27i22g40i22n40a36lw53v40e36r27s31i22o40nw71o40fw58t22h40i22sw62p40r27o40g40r27a36mw93t22on96 0
XH518
XV4912
Xh288cr
X27a36s31t22e36r27i22z36ewf2
X63d40i22t22r31o40f22fwf1
X49o40u40t22p40u40tw49f27o40rw54t22h40ew63S44u40n40s31.w67F44i22n40a36l22l22yw67M71a36l22c36o40l22mw88S44l22a36n40e36y40,w46S44c36h40l22u40m62b40e36r27g40e36rw53P44a36l22ow66A58l22t22ow66R53e36s31e36a36r27c36h40,w46r27e36w58r27o40t22en96 0
XH518
XV5008
Xh288cm
X62o40s31tw44o40fw49t22h40ew58c36o40d40ew58t22ow62m62a36k40ew59i22tw45r27u40nw63u40n40d40e36rw50S44u40n40-273w63U58n40i22xw63a36n40dw63t22ow63e36x40t22e36n40dw63t22h40ew59u40s31e36rw50i22n40t22e36r27f27a36c36e36.w63N58e36e36d40l22e36s31sw54t22ow63s31a36y40,w43c36r27e36d40i22tn96 0
XH518
XV5104
Xh288cf
X27o40rw49a36l22lw44g40o40o40dw61p40o40r27t22i22o40n40sw52o40fw48t22h40i22sw52p40r27o40g40r27a36mw83s31h40o40u40l22dw61g40ow61t22ow61t22h40ewh57Cfi
X44r27s31tw43a36u40t22h40o40r27s31;w43b40l22a36m62ew57f27o40rw48t22h40ew57b40a36dw61s31e36c36t22i22o40n40sw52r27e36s31t22sw52w58i22t22hw61t22h40en96 0
XH518
XV5200
Xh288Cfi
X44n40a36lw42a36u40t22h40o40r27.n96 0
XH518
Xf3
Xs9
XV5334
XcS
X40U52P44P44O56R52Twwwwwn96 0
XH518
Xf1
Xs10
XV5430
Xh288cT
X49h40i22sw52c36o40m62m62a36n40dw61w58a36sw52d40e36v40e36l22o40p40e36dw61a36sw52a36nw61i22n40d40e36p40e36n40d40e36n40tw43p40r27o40j22e36c36tw43t22ow61s31a36t22i22s31f27yw61aw58n40e36e36dw62o40fw49t22h40ew58a36u40t22h40o40r27.w62T49h40i22sw53p40r27o40g40r27a36mw84m62a36yn96 0
XH518
XV5526
Xh288cc
X36o40n40t22a36i22nw68b40u40g40sw59a36n40dw68t22h40ew64u40s31e36rw55i22sw59c36a36u40t22i22o40n40e36dw68t22ow68i22n40d40e36p40e36n40d40e36n40t22l22yw68v40e36r27i22f27yw68t22h40a36tw50t22h40ew64p40r27o40g40r27a36mw90i22sw58s31u40i22t22a36b40l22ew63f27o40rw54t22h40ew63u40s31e36r27'27sn96 0
XH518
XV5622
Xh288ci
X22n40t22e36n40d40e36dw72p40u40r27p40o40s31e36.w72T49h40ew68p40r27o40g40r27a36mw94i22sw63m62a36d40ew68a36v40a36i22l22a36b40l22ew68o40nw72a36nw72`27`27a36sw64i22s31'27'w60b40a36s31i22sw64w58i22t22hw73a36l22lw55f27a36u40l22t22sw64a36n40dw73w58i22t22h40o40u40tw55a36n40yn96 0
XH518
XV5718
Xh288ci
X22m62p40l22i22e36dw68o40rw55e36x40p40r27e36s31s31e36dw68w58a36r27r27a36n40t22i22e36sw59o40rw54s31u40p40p40o40r27tw49f27r27o40mw89e36i22t22h40e36rw54t22h40ew63a36u40t22h40o40r27,w47M71a36l22c36o40l22mw89S44l22a36n40e36y40,w47o40rw54t22h40ew63S44c36h40l22u40m62b40e36r27g40e36rn96 0
XH518
XV5814
Xh288cP
X44a36l22ow60A58l22t22ow60R53e36s31e36a36r27c36hw60L49a36b40o40r27a36t22o40r27y40.n96 0
XH518
XV6198
XcS
X44u40n40 20R53e36l22e36a36s31e36 20340.202h898cL
X49a36s31t22 20c36h40a36n40g40e36:22 20140 20D58e36c36e36m62b40e36r27 201409408406h1373c2
Xn96 0
Xx trailer
XV6336
Xx stop
END_OF_FILE
if test 21525 -ne `wc -c <'xtroff/suntroff.tr'`; then
    echo shar: \"'xtroff/suntroff.tr'\" unpacked with wrong size!
fi
# end of 'xtroff/suntroff.tr'
fi
if test -f 'xtroff/sunwindows.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'xtroff/sunwindows.c'\"
else
echo shar: Extracting \"'xtroff/sunwindows.c'\" \(23542 characters\)
sed "s/^X//" >'xtroff/sunwindows.c' <<'END_OF_FILE'
X/*
X *	SunTroff -  A program to display the output of Device Independent
X *		Troff as a window on a Sun Workstation.
X *
X *	Windows.c - This file contains the user interface and most of the
X *		high level window manager code.  This file provides a page
X *		size bitmap for the actual drawing routines to work on.
X *
X *	Authors - The original version of this program was written by
X *			Richard L. Hyde (Purdue)
X *			David Slattengren (Berkeley)
X *		It was nearly all rewritten, cleaned up and a more elegant
X *		user interface installed by
X *			Malcolm Slaney (Schlumberger Palo Alto Research)
X *
X *	Legalese -  This command was developed as an independent project
X *		to satisfy a need of the author.  This program may contain
X *		bugs and the user is cautioned to independently verify that
X *		the program is suitable for the user's intended purpose.
X *		The program is made available on an ``as is'' basis with
X *		all faults and without any implied or expressed warranties
X *		or support from either the author, Malcolm Slaney, or
X *		Schlumberger Palo Alto Research Laboratory.
X *
X *		I am putting this program in the public domain.  You are
X *		free to use it as you wish.  In return I ask two things.
X *		First, that you do not remove the names of the authors
X *		from this work.  Secondly, if you make changes or
X *		improvements to this program that you pass these back to
X *		the author so that everybody can benefit from the
X *		improvements.
X *
X *					Malcolm Slaney  (December 1986)
X *					Schlumberger Palo Alto Research
X *					3340 Hillview Avenue
X *					Palo Alto, CA 94304
X *					(415) 496-4669
X *					spar!malcolm at decwrl.dec.com
X *					malcolm at ecn.purdue.edu
X *					malcolm at spar.slb.com (Someday)
X */
X
X#ifdef SUNTOOLS
X#include	<suntool/sunview.h>
X#include	<suntool/panel.h>
X#include	<suntool/canvas.h>
X#include	<suntool/scrollbar.h>
X#include	<stdio.h>
X#include	<ctype.h>
X#include	<signal.h>
X#include	<sys/types.h>
X#include	<sys/file.h>
X#include	"suntroff.h"
X
XFrame	BaseFrame;		/* Top Level Window Frame */
XCanvas	DrawingCanvas;		/* Main Drawing Window for Text */
XMenu	MainMenu;		/* Top Level User Menu */
XScrollbar HorzScroll;		/* Horizontal Scroll Bar */
XScrollbar VertScroll;		/* Vertical Scroll Bar */
Xstruct pixrect *PagePixRect;	/* Full Page Pix Rect for Drawing Page */
XCursor	OriginalCursor;
Xint	ViewLeft = 0, ViewTop = 0;	/* Page Offset for display */
Xint	OriginalX = -1;
Xint	OriginalY = -1;
Xint	Scrollbars = 1;		/* Does User want scrollbars????? */
X
X#define		PAGE_WIDTH		8.5
X#define		PAGE_HEIGHT		11
X#define		PAGE_PIXEL_WIDTH	(int)(SUNRES*PAGE_WIDTH)
X#define		PAGE_PIXEL_HEIGHT	(int)(SUNRES*PAGE_HEIGHT)
X
Xstatic int	CurrentPage = 1;/* Current Page Number Being Displayed */
Xchar	FileName[BUFSIZ];	/* File containing ditroff output */
Xchar	TempFileName[BUFSIZ];	/* Temp file that can be deleted. */
Xchar	CommandString[BUFSIZ];	/* String pointer to ditroff command */
Xchar	*ActualFileName;	/* File that buffers ditroff output */
Xint	PageRequest = 0;	/* Partially read page number request */
Xint	CommandMode = 0;	/* Taking input from file or command line */
Xint	ErrorsPending = 0;	/* Set if errors are pending and need to be
X				 * displayed.  Used in case tool is iconic
X				 * when error message is needed.  This boolean
X				 * variable is checked at redisplay time.
X				 * This was done at the suggestion of
X				 * davy at ecn.purdue.edu.......11/28/86
X				 */
X
XPanel	CommandPanel;
XFrame	CommandFrame;
XPanel_item InputItem;
XPanel_item SearchItem;
XPanel_item PageItem;
XPanel_item PrinterItem;
XPanel	ErrorPanel = 0;
XFrame	ErrorFrame = 0;
X
X
Xmain(argc, argv)
Xint	argc;
Xchar	**argv;
X{
X	int	RepaintCanvas(), CanvasInput();
X	Pixwin	*PixWin;
X
X	BaseFrame = window_create(NULL,FRAME,
X				  FRAME_ARGC_PTR_ARGV, &argc, argv,
X				  FRAME_LABEL,"Generic Previewer 0.0",
X				  WIN_ERROR_MSG,"Can't create window.",
X				  FRAME_INHERIT_COLORS, 1, 
X#if	FULLPAGE > 0
X				  WIN_WIDTH, PAGE_PIXEL_WIDTH, 
X#endif	FULLPAGE
X				  0);
X
X	CreatePopUpPanel();
X
X	DrawingCanvas = window_create(BaseFrame,CANVAS,
X				      CANVAS_REPAINT_PROC, RepaintCanvas,
X				      WIN_EVENT_PROC, CanvasInput,
X				      0);
X
X	PagePixRect = mem_create(PAGE_PIXEL_WIDTH,PAGE_PIXEL_HEIGHT,1);
X	if (!PagePixRect){
X		fprintf(stderr,"Can't create page pixrect.\n");
X		exit(1);
X	}
X
X
X	window_set(DrawingCanvas,WIN_CONSUME_PICK_EVENTS,
X		   WIN_IN_TRANSIT_EVENTS,
X		   WIN_MOUSE_BUTTONS,WIN_ASCII_EVENTS,0,
X		   0);
X
X	MainMenu = menu_create(MENU_STRINGS,"Show Status", "Rerasterize",
X			       "Print", "Print Page", "Previous Page",
X			       "Next Page", "Quit",0);
X
X	PixWin = canvas_pixwin(DrawingCanvas);
X#ifdef	WINDOWDEBUG	
X	pr_vector(PagePixRect,0,0,
X		              PAGE_PIXEL_WIDTH,PAGE_PIXEL_HEIGHT,PIX_SRC,1);
X	pr_vector(PagePixRect,PAGE_PIXEL_WIDTH,0,
X		              0,PAGE_PIXEL_HEIGHT,PIX_SRC,1);
X#endif	WINDOWDEBUG
X	OriginalCursor = cursor_copy(window_get(DrawingCanvas,WIN_CURSOR));
X	InitializeApplication(BaseFrame, DrawingCanvas);
X
X	argv++;
X	while (*argv && argv[0][0] == '-'){
X		if (strncmp(argv[0],"-scrollbar",4) == NULL){
X			Scrollbars = 0;
X		} else if (strncmp(argv[0],"-command",3) == NULL){
X			strcpy(CommandString,argv[1]);
X			CommandMode = 1;
X			PanelInputItem();
X			argv++;
X		} else {
X			fprintf(stderr,"Unknown option %s\n",argv[0]);
X		}
X		if (*argv){
X			argv++;
X		}
X	}
X	if (argv[0] && argv[0][0]){
X		CommandMode = 0;
X		strcpy(FileName,argv[0]);
X		PanelInputItem();
X	}
X
X	if (Scrollbars) {
X		HorzScroll = scrollbar_create(0);
X		VertScroll = scrollbar_create(0);
X		window_set(DrawingCanvas,
X			   WIN_VERTICAL_SCROLLBAR,VertScroll,
X			   WIN_HORIZONTAL_SCROLLBAR,HorzScroll,
X			   0);
X		SetScrollBarSize(BaseFrame,DrawingCanvas,
X				 VertScroll,HorzScroll);
X	}
X
X	Rerasterize();
X
X	window_main_loop(BaseFrame);
X	if (*TempFileName)
X		unlink(TempFileName);
X	exit(0);
X}
X
XRepaintCanvas(canvas,pw,repaint_area)
XCanvas		canvas;
XPixwin		*pw;
XRectlist	*repaint_area;
X{
X	pw_write(pw,0,0,PAGE_PIXEL_WIDTH,PAGE_PIXEL_HEIGHT,PIX_SRC,
X		 PagePixRect,ViewLeft,ViewTop);
X
X	if (ErrorsPending && !window_get(BaseFrame, FRAME_CLOSED)){
X		ErrorsPending = 0;
X		window_set(ErrorFrame,WIN_SHOW,TRUE,0);
X	}
X}
X	
XCanvasInput(window,event,arg)
XWindow	window;
XEvent	*event;
Xcaddr_t	arg;
X{
X	int	i;
X
X	switch(event_id(event)){
X        case MS_RIGHT:
X		PageRequest = 0;
X		event = canvas_window_event(DrawingCanvas,event);
X		PopUpMenu(window,event,arg);
X		break;
X	case MS_MIDDLE:
X		PageRequest = 0;
X		if (event_is_down(event)) {
X			StartPan(event);
X		} else {
X			EndPan(event);
X	        } break;
X	case LOC_WINEXIT:
X		EndPan(event);
X		break;
X	case LOC_STILL:
X	case LOC_MOVE:
X		if (OriginalX > 0){
X			if (event_is_up(event)){
X				EndPan();
X			} else {
X				PagePan(event);
X			}
X	        } 
X		break;
X	case WIN_REPAINT:
X		break;
X	case WIN_RESIZE:
X		if (Scrollbars){
X			SetScrollBarSize(BaseFrame,DrawingCanvas,
X					 VertScroll,HorzScroll);
X		}
X		break;
X	case SCROLL_ENTER:
X		break;
X	case SCROLL_REQUEST:
X		if (Scrollbars){
X			scrollbar_paint((Scrollbar)arg);
X#ifdef	SCROLLDEBUG			
X			printf("Scrollbars are at (%d,%d).\n",
X			       scrollbar_get(HorzScroll,SCROLL_VIEW_START),
X			       scrollbar_get(VertScroll,SCROLL_VIEW_START));
X#endif	SCROLLDEBUG
X					/* 
X					 * Due to a bug in suntools, these
X					 * two calls ALWAYS seem to return
X					 * zero.
X					 */
X			ViewLeft = (int)scrollbar_get(HorzScroll,
X						      SCROLL_VIEW_START);
X			ViewTop = (int)scrollbar_get(VertScroll,
X						     SCROLL_VIEW_START);
X			RepaintCanvas(DrawingCanvas,
X				      canvas_pixwin(DrawingCanvas),0);
X		}
X		break;
X	case '0': case '1': case '2': case '3': case '4':
X	case '5': case '6': case '7': case '8': case '9':
X		PageRequest = PageRequest*10 + event_id(event) - '0';
X		break;
X	case 'g': case 'G': case '\n':
X		CurrentPage = ShowPage(PageRequest);
X		PageRequest = 0;
X		break;
X	case 033:				/* Escape */
X		PageRequest = 0;
X	default:
X#ifdef	WINDOWDEBUG
X		printf("Got an event of id %d (%x).\n",
X		       event_id(event),event_id(event));
X#endif	WINDOWDEBUG
X		break;
X	}
X}
X
X/*
X *	The following icon of a hand was generated by Stefano Concino at SPAR.
X */
Xstatic short	hand_cursor_data[16] = {
X		0x0100, 0x0290, 0x12A8, 0x2AA8, 0x2AA8, 0x2AA8, 0x2AA8, 0x2AA8,
X		0x2E4B, 0x2015, 0x1015, 0x1815, 0x0C09, 0x0402, 0x0404, 0x0618,
X
X		};
Xmpr_static(hand_cursor_pixrect,16,16,1,hand_cursor_data);
XCursor	HandCursor;
X
X		
XStartPan(event)
XEvent	*event;
X{
X	OriginalX = event_x(event);
X	OriginalY = event_y(event);
X	if (!HandCursor){
X		HandCursor = cursor_create(CURSOR_IMAGE,
X					   &hand_cursor_pixrect,0);
X	}
X	window_set(DrawingCanvas,WIN_CURSOR,HandCursor,0);
X
X}
X
XEndPan(event)
XEvent	*event;
X{
X	if (OriginalX != -1 && OriginalY != -1){
X		OriginalX = OriginalY = -1;
X		window_set(DrawingCanvas,
X			   WIN_CURSOR,OriginalCursor,
X			   0);
X	}
X}
X
XPagePan(event)
XEvent	*event;
X{
X	ViewLeft -= event_x(event) - OriginalX;
X	if (ViewLeft + (int)window_get(DrawingCanvas,WIN_WIDTH) >
X	    PAGE_PIXEL_WIDTH)
X	        ViewLeft = PAGE_PIXEL_WIDTH -
X		                  (int)window_get(DrawingCanvas,WIN_WIDTH);
X	if (ViewLeft < 0)
X		ViewLeft = 0;
X
X	ViewTop -= event_y(event) - OriginalY;
X	if (ViewTop + (int)window_get(DrawingCanvas,WIN_HEIGHT) >
X	    PAGE_PIXEL_HEIGHT)
X	        ViewTop = PAGE_PIXEL_HEIGHT -
X		                  (int)window_get(DrawingCanvas,WIN_HEIGHT);
X	if (ViewTop < 0)
X		ViewTop = 0;
X	if ((OriginalX != event_x(event)) || (OriginalY != event_y(event))){
X		RepaintCanvas(DrawingCanvas,canvas_pixwin(DrawingCanvas),0);
X		OriginalX = event_x(event);
X		OriginalY = event_y(event);
X		SetScrollBar();
X	}
X}
X
XPopUpMenu(window,event,arg)
XWindow	*window;
XEvent	*event;
Xcaddr_t	arg;
X{
X	int	i;
X	i = (int) menu_show(MainMenu,window,event,0);
X	switch(i){
X	case 1:
X		PopUpPanel();
X		break;
X	case 2:
X		Rerasterize();
X		break;
X	case 3:
X		MousePrintDocument();
X		break;
X	case 4:
X		MousePrintPage();
X		break;
X	case 5:
X		if (CurrentPage > 0){
X			CurrentPage = ShowPage(--CurrentPage);
X		}
X		break;
X	case 6:
X		CurrentPage = ShowPage(++CurrentPage);
X		break;
X	case 7:
X		window_destroy(BaseFrame);
X		break;
X	}
X}
X
XCreatePopUpPanel()
X{
X	int	LineNumber = 0;
X	int	PanelCommandSpec(), ErasePopUpPanel(),
X	        SearchForward(), SearchBackward(),
X		GotoPage(), MousePrintPage(), MousePrintDocument(),
X		ClosePanel(), EnterFileMode(), EnterCommandMode(),
X		Rerasterize();
X	char	*p;
X
X#ifdef	TOGETHER
X	CommandFrame = BaseFrame;
X#else   SEPERATE
X	CommandFrame = window_create(BaseFrame, FRAME, 0);
X#endif  TOGETHER
X	CommandPanel = window_create(CommandFrame,PANEL,0);
X
X	panel_create_item(CommandPanel,PANEL_MESSAGE,
X			  PANEL_LABEL_STRING,"SunTroff Status and Command Panel",
X			  PANEL_ITEM_X,ATTR_COL(29),
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber++),
X			  0);
X	
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,
X					     "Close Status Window",0,0),
X			  PANEL_NOTIFY_PROC,ClosePanel,
X			  PANEL_ITEM_X,ATTR_COL(0),
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X			  
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,
X					     "Specify Input File",0,0),
X			  PANEL_NOTIFY_PROC,EnterFileMode,
X			  PANEL_ITEM_X, ATTR_COL(24), 
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X			  
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,
X					     "Specify Formatting Command",
X					     0,0),
X			  PANEL_NOTIFY_PROC,EnterCommandMode,
X			  PANEL_ITEM_X, ATTR_COL(47), 
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,
X					     "Rerasterize",
X					     0,0),
X			  PANEL_NOTIFY_PROC,Rerasterize,
X			  PANEL_ITEM_X, ATTR_COL(76), 
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X
X	LineNumber++;
X
X	InputItem = 
X		  panel_create_item(CommandPanel,PANEL_TEXT,
X				    PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
X				    PANEL_LABEL_STRING,"Enter file name here: ",
X				    PANEL_NOTIFY_STRING, "\033\04\03\012\015",
X				    PANEL_ITEM_X,ATTR_COL(0),
X				    PANEL_ITEM_Y,ATTR_COL(LineNumber++)+2,
X				    PANEL_VALUE_DISPLAY_LENGTH,60,
X				    0);
X
X	PanelInputItem();
X
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,"Search Backward",
X					     0,0),
X			  PANEL_NOTIFY_PROC, SearchBackward,
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X	
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,"Search Forward",
X					     0,0),
X			  PANEL_NOTIFY_PROC, SearchForward,
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X
X	SearchItem =
X	panel_create_item(CommandPanel,PANEL_TEXT,
X			  PANEL_LABEL_STRING, "Enter search string here: ",
X			  PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
X			  PANEL_NOTIFY_STRING, "\033\04\03\012\015",
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber)+2,
X			  PANEL_ITEM_X,ATTR_COL(35),
X			  PANEL_VALUE_DISPLAY_LENGTH,27,
X			  0);
X
X	LineNumber++;
X	
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,"Goto Page",
X					     0,0),
X			  PANEL_NOTIFY_PROC, GotoPage,
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  PANEL_ITEM_X,ATTR_COL(11),
X			  0);
X
X	PageItem = 
X	panel_create_item(CommandPanel,PANEL_TEXT,
X			  PANEL_LABEL_STRING, "Enter page number here: ",
X			  PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
X			  PANEL_NOTIFY_STRING, "\033\04\03\012\015",
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber)+2,	
X			  PANEL_ITEM_X,ATTR_COL(35),
X			  PANEL_VALUE_DISPLAY_LENGTH,29,
X			  0);
X
X	LineNumber++;
X
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,"Print Page",
X					     0,0),
X			  PANEL_NOTIFY_PROC, MousePrintPage,
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  PANEL_ITEM_X,ATTR_COL(2),
X			  0);
X
X	panel_create_item(CommandPanel,PANEL_BUTTON,
X			  PANEL_LABEL_IMAGE,
X			  panel_button_image(CommandPanel,"Print Document",
X					     0,0),
X			  PANEL_NOTIFY_PROC, MousePrintDocument,
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber),
X			  0);
X
X	PrinterItem = 
X	panel_create_item(CommandPanel,PANEL_TEXT,
X			  PANEL_LABEL_STRING, "Enter printer name here: ",
X			  PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
X			  PANEL_NOTIFY_STRING, "\033\04\03\012\015",
X			  PANEL_VALUE, getenv("PRINTER"),
X			  PANEL_ITEM_Y,ATTR_COL(LineNumber)+2,
X			  PANEL_ITEM_X,ATTR_COL(35),
X			  PANEL_VALUE_DISPLAY_LENGTH,28,
X			  0);
X
X	
X	window_fit(CommandPanel);
X#ifndef	TOGETHER
X	window_fit(CommandFrame);
X#endif	!TOGETHER
X}
X
XSetPrinter(Name)
Xchar	*Name;
X{
X				    /* If you want the typesetter document to
X				       set the printer name then remove this
X				       ifdef.  The Adobe LaserWriter support
X				       always puts psc out as the printer name
X				       and since we don't have a printer
X				       called psc (instead we use lw{1,2,3,4})
X				       we lose.  With this ifdef then the
X				       user's PRINTER environment variable is
X				       always used as the default printer. */
X	
X#ifdef	NEVER
X	panel_set(PrinterItem, PANEL_VALUE, Name,
X			       0);
X#endif
X}
X
XPanelInputItem(){
X	if (CommandMode){
X		panel_set(InputItem,
X			  PANEL_LABEL_STRING,"Enter formatting command here: ",
X			  PANEL_VALUE,CommandString,
X			  0);
X	} else {
X		panel_set(InputItem,
X			  PANEL_LABEL_STRING, "Enter file name here: ",
X			  PANEL_VALUE,FileName,
X			  0);
X	}
X	
X}
X
XClosePanel()
X{
X	window_set(CommandFrame,WIN_SHOW,FALSE,0);
X}
X
XEnterFileMode()
X{
X	if (CommandMode){
X		strcpy(CommandString, panel_get_value(InputItem));
X		
X		CommandMode = 0;
X		PanelInputItem();
X		panel_paint(CommandPanel,PANEL_CLEAR);
X	}
X}
X
XEnterCommandMode()
X{
X	if (!CommandMode){
X		strcpy(FileName, panel_get_value(InputItem));
X		
X		CommandMode = 1;
X		PanelInputItem();
X		panel_paint(CommandPanel,PANEL_CLEAR);
X	}
X}
X
XMousePrintPage()
X{
X	char	*Printer;
X
X	Printer = panel_get_value(PrinterItem);
X	if (!Printer){
X		warning("No printer specified.\nUse 'Show Status' menu item to set printer name.\n");
X		return;
X	}
X	PrintPage(CurrentPage,Printer);
X}
X
XMousePrintDocument()
X{
X	char	*Printer;
X
X	Printer = panel_get_value(PrinterItem);
X	if (!Printer){
X		warning("No printer specified.\nUse 'Show Status' menu item to set printer name.\n");
X		return;
X	}
X	PrintDocument(ActualFileName,Printer);
X	
X}
X
XPopUpPanel(){
X	window_set(CommandFrame,WIN_SHOW,TRUE,0);
X}
X
XErasePopUpPanel(){
X	window_set(CommandFrame,WIN_SHOW,FALSE,0);
X}
X
XSearchForward(){
X	int	i;
X	
X	i = SearchFile(panel_get_value(SearchItem),CurrentPage,1);
X	if (i){
X		CurrentPage = i;
X		ShowPage(i);
X	} else {
X		SetTitleBar("Displaying",CurrentPage);
X	}
X}
X
XSearchBackward(){
X	int	i;
X	
X	i = SearchFile(panel_get_value(SearchItem),CurrentPage,-1);
X	if (i){
X		CurrentPage = i;
X		ShowPage(i);
X	} else {
X		SetTitleBar("Displaying",CurrentPage);
X	}
X}
X
XGotoPage(){
X	CurrentPage = ShowPage(atoi(panel_get_value(PageItem)));
X}
X		
X					/*
X					 * Set the size of the scrollbar
X					 * to a fraction of the size of 
X					 * the drawing canvas.  The size of
X					 * the scrollbar area is given by
X					 * the page size, the size of the
X					 * actual scrollbar is given by the
X					 * the canvas dimensions.
X					 */
XSetScrollBarSize(BaseFrame,DrawingCanvas,VertScroll,HorzScroll)
XFrame	BaseFrame;
XCanvas	DrawingCanvas;
XScrollbar VertScroll, HorzScroll;
X{
X	if (!Scrollbars)
X		return;
X
X	scrollbar_set(VertScroll,
X		      SCROLL_OBJECT_LENGTH,PAGE_PIXEL_HEIGHT,
X		      SCROLL_VIEW_LENGTH,window_get(DrawingCanvas,WIN_HEIGHT),
X		      SCROLL_VIEW_START,ViewTop,
X		      0);
X	scrollbar_set(HorzScroll,
X		      SCROLL_OBJECT_LENGTH,PAGE_PIXEL_WIDTH,
X		      SCROLL_VIEW_LENGTH,window_get(DrawingCanvas,WIN_WIDTH),
X		      SCROLL_VIEW_START,ViewLeft,
X		      0);
X}
X
XSetScrollBar()
X{
X	if (Scrollbars){
X		scrollbar_set(VertScroll,
X			      SCROLL_VIEW_START,ViewTop,
X			      0);
X		scrollbar_set(HorzScroll,
X			      SCROLL_VIEW_START,ViewLeft,
X			      0);
X		scrollbar_paint(VertScroll);
X		scrollbar_paint(HorzScroll);
X	}
X}
X
XRerasterize()
X{
X	static	FILE	*FilePointer = 0;
X	static	FILE	*PipePointer = 0;
X	static	int	ProcessPid = 0;
X
X	if (FilePointer){
X	        fclose(FilePointer);
X	}
X	if (PipePointer){
X		fclose(PipePointer);
X		signal(SIGKILL, ProcessPid);
X	}
X	ProcessPid = 0;
X	PipePointer = FilePointer = 0;
X			
X	if (!CommandMode){
X		strcpy(FileName,panel_get_value(InputItem));
X		if (!FileName || !FileName[0]){
X			warning("No input file specified.\nUse the status window to enter a file name.");
X			return;
X		}
X
X		FilePointer = fopen(FileName,"r");
X		if (!FilePointer){
X			warning("Can't open %s for reading input.\n",
X				FileName);
X		} else {
X			ActualFileName = FileName;
X			InitializeFile(FilePointer, FilePointer);
X		}
X	} else {
X		char	Buffer[BUFSIZ];
X		static char FileName[BUFSIZ], *p;
X		int	i, PipeFds[2];
X
X		strcpy(CommandString,panel_get_value(InputItem));
X		if (!CommandString){
X			warning("Rasterize called with out a command.\nUse status panel to set command.");
X			return;
X		}
X		p = CommandString;
X		while (isspace(*p))
X			p++;
X		if (!*p){
X			warning("Rasterize called without a command.\nUse the status panel to set a command.");
X			return;
X		}
X
X		pipe(PipeFds);			/* Get two halves of pipe */
X		
X		ProcessPid = fork();		/* And then Fork */
X		if (!ProcessPid){		/* First the Child */
X			close(1);
X			dup2(PipeFds[1], 1);
X			close(PipeFds[0]);
X			system(p);
X			exit(0);
X		}
X	
X		PipePointer = fdopen(PipeFds[0], "r");
X		close(PipeFds[1]);
X		
X		if (*TempFileName) {
X		    strcpy(FileName, TempFileName);
X		} else {
X		    strcpy(FileName,"/tmp/suntroff.XXXXXX");
X		    mktemp(FileName);
X		    strcpy(TempFileName, FileName);
X		}
X		
X		FilePointer = fdopen(open(FileName,
X					  O_RDWR|O_CREAT|O_TRUNC,0644), "r+");
X		
X		if (!FilePointer){
X			fprintf(stderr,
X			    "Can't open buffer file for the command:\n");
X			fprintf(stderr,"\t%s\n", CommandString);
X			exit(1);
X		}
X		ActualFileName = FileName;
X		InitializeFile(PipePointer, FilePointer);
X	}
X
X	ShowPage(CurrentPage);
X}
X
XSetTitleBar(Status,PageNumber)
Xchar	*Status;
Xint	PageNumber;
X{
X	extern char	*DefaultTitle;
X	char	Buffer[BUFSIZ];
X	char	TempStatus[BUFSIZ];
X	int	FrameWidth, Width, i;
X	static	char PageNumberValue[20];
X
X	FrameWidth = (int) window_get(BaseFrame,WIN_WIDTH)/
X	  		(int) window_get(BaseFrame,WIN_COLUMN_WIDTH) - 1;
X
X	if (PageNumber >= 0)
X		sprintf(TempStatus,"%s Page %d",Status,PageNumber);
X	else
X		sprintf(TempStatus, "%s", Status);
X
X	strncpy(Buffer,DefaultTitle,BUFSIZ);
X	i = strlen(DefaultTitle);
X	
X	Width = strlen(TempStatus);
X
X	while (i + Width < FrameWidth){
X		Buffer[i++] = ' ';
X	}
X	if (FrameWidth - i > 0){
X		strncpy(&Buffer[i],TempStatus,FrameWidth-i);
X	}
X	window_set(BaseFrame,FRAME_LABEL,Buffer,0);
X	if (PageNumber >= 0){
X		sprintf(PageNumberValue,"%d",PageNumber);
X		panel_set_value(PageItem,PageNumberValue);
X	}
X}
X
Xstatic char SavedTitleBar[BUFSIZ];
X
XSaveTitleBar(){
X	char	*p;
X
X	p = window_get(BaseFrame, FRAME_LABEL, 0);
X	if (p){
X		strncpy(SavedTitleBar, p, BUFSIZ);
X	}
X}
X
XRestoreTitleBar(){
X	window_set(BaseFrame,FRAME_LABEL,SavedTitleBar,0);
X}
X	
X#define MAXLINES 100
Xstatic int LineNumber = 0;
Xstatic Panel_item ItemList[MAXLINES];
X
Xfatal(String, a1, a2, a3, a4, a5, a6, a7, a8)
Xchar	*String;
Xint	a1, a2, a3, a4, a5, a6, a7, a8;
X{
X	fprintf(stderr,"%s Fatal Error: ",DefaultTitle);
X	fprintf(stderr,String,a1,a2,a3,a4,a5,a6,a7,a8);
X	if (*TempFileName)
X		unlink(TempFileName);
X	exit(1);
X}
X
Xwarning(String,a1,a2,a3,a4,a5,a6,a7,a8)
Xchar	*String;
Xint	a1, a2,a3,a4,a5,a6,a7,a8;
X{
X	char	*p, Message[BUFSIZ], *MessagePointer;
X	int	c, i, ErrorDone();
X
X	sprintf(Message,String,a1,a2,a3,a4,a5,a6,a7,a8);
X	
X	if (!ErrorFrame){
X		for (i=0;i<MAXLINES;i++){
X			ItemList[i] = 0;
X		}
X		LineNumber = 0;
X		ErrorFrame = window_create(BaseFrame,FRAME,0);
X		ErrorPanel = window_create(ErrorFrame,PANEL,0);
X		panel_create_item(ErrorPanel,PANEL_BUTTON,
X				  PANEL_LABEL_IMAGE,
X				  panel_button_image(ErrorPanel,
X						     "Ok!", 0, 0),
X				  PANEL_ITEM_Y,1,
X				  PANEL_NOTIFY_PROC, ErrorDone,
X				  0);
X				 
X	}
X
X/*	window_set(ErrorFrame,WIN_SHOW,FALSE,0);
X */
X	MessagePointer = p = Message;
X	while (*p) {
X		for (;*p;p++){
X			if (*p == '\n')
X			  break;
X		}
X		
X		c = *p;
X		*p = NULL;
X
X		ItemList[LineNumber] = panel_create_item(ErrorPanel,
X							 PANEL_MESSAGE,
X							 PANEL_LABEL_STRING,
X							 MessagePointer,
X							 PANEL_ITEM_Y,
X							 ATTR_COL(LineNumber),
X							 PANEL_ITEM_X,
X							 ATTR_COL(7),
X							 0);
X		*p = c;
X		if (c)
X		  	p++;
X		MessagePointer = p;
X		LineNumber++;
X	}
X						/* Leave a blank line */
X	ItemList[LineNumber] = panel_create_item(ErrorPanel,
X						   PANEL_MESSAGE,
X						    PANEL_LABEL_STRING, "",
X						   PANEL_ITEM_Y,
X						    ATTR_COL(LineNumber),
X						   PANEL_ITEM_X,
X						    ATTR_COL(7),
X						   0);
X    	LineNumber++;
X	
X	window_fit(ErrorPanel);
X	window_fit(ErrorFrame);
X
X	ErrorsPending++;
X	if (!window_get(BaseFrame, FRAME_CLOSED)){
X		ErrorsPending = 0;
X		window_set(ErrorFrame,WIN_SHOW,TRUE,0);
X	}
X}
X
XErrorDone()
X{
X	int i;
X	
X	window_set(ErrorFrame,WIN_SHOW,FALSE,0);
X	LineNumber = 0;
X
X	for (i = 0; i < MAXLINES && ItemList[i]; i++){
X		if (ItemList[i]){
X			panel_free(ItemList[i]);
X			ItemList[i] = 0;
X		}
X	}
X
X}
X
X#ifdef	STANDALONE
X
XInitializeFile(){
X        printf("Initialize File called.\n");
X}
X
XPrintDocument(){
X	printf("Print Document called.\n");
X}
X
XPrintPage(){
X	printf("Print Page called.\n");
X}
X
XInitializeApplication(){
X	pr_vector(PagePixRect,0,0,
X		              PAGE_PIXEL_WIDTH,PAGE_PIXEL_HEIGHT,PIX_SRC,1);
X	pr_vector(PagePixRect,PAGE_PIXEL_WIDTH,0,
X		              0,PAGE_PIXEL_HEIGHT,PIX_SRC,1);
X        printf("Initialize Application Called.\n");
X}
X
XShowPage(){
X	printf("Show Page called.\n");
X}
X
Xchar	*DefaultTitle = "Standalone Window Code";
X
XSearchFile(){
X	printf("Search file called.\n");
X}
X
X#endif STANDALONE
X#endif SUNTOOLS
END_OF_FILE
if test 23542 -ne `wc -c <'xtroff/sunwindows.c'`; then
    echo shar: \"'xtroff/sunwindows.c'\" unpacked with wrong size!
fi
# end of 'xtroff/sunwindows.c'
fi
echo shar: End of archive 13 \(of 18\).
cp /dev/null ark13isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 18 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0



More information about the Comp.sources.x mailing list