home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume17
/
mgr
/
part33
< prev
next >
Wrap
Text File
|
1989-01-19
|
46KB
|
1,174 lines
Subject: v17i034: MGR, Bellcore window manager, Part33/61
Newsgroups: comp.sources.unix
Approved: rsalz@uunet.UU.NET
Submitted-by: Stephen A. Uhler <sau@bellcore.com>
Posting-number: Volume 17, Issue 34
Archive-name: mgr/part33
#! /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 33 (of 61)."
# Contents: font-16/Uoldeng22x30rI font-32/Uoldeng22x30rI src/cut.c
# src/win_stack.c
# Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:41 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'font-16/Uoldeng22x30rI' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'font-16/Uoldeng22x30rI'\"
else
echo shar: Extracting \"'font-16/Uoldeng22x30rI'\" \(10460 characters\)
sed "s/^X//" >'font-16/Uoldeng22x30rI' <<'END_OF_FILE'
Xbegin 644 oldeng22x30rI.fnt
XM%A8>"%L@ #______________________?_________________________
XM____________________________________________________________
XM__________PO_'/S__N_8 /_',.^.=W_^[_'(?^;__\<S_'(?\<A__^[?A_N
XM_]Y_PW/__>?\-Q__ __@?O\[G_W<__/Y\_G]WQW/^___________________
XM___?______[______________\______]__________]___W____________
XM_________________________________________\ #____________
XM_________^/_________________________________________________
XM______________________________________________@'^ ?!_W0_ '^
XM 8 \ X'_=#^ 0-]-__X!G^ 0/X! W_\:+ _ _QP_@4%_\</X5(_^ /_ /X:
XM"_C07^&@@?#\'@V%^/_O__________________^_______S______W______
XM_P?_____K__________K___O____________________________________
XM_________________\ #_____________________\'_____________
XM______________________________________]_____________________
XM______________________ 3^ \Q_N _ #^ P \!P'^X#^ F#Y&__X#'^ N
XM&X"8/_R)& ^ _#H? 3C_PZ'P$\?]^'> /^)Q_!./_B8..QX/ U#^ /____
XM______________]?______C______[_______,/_____C__________C__^/
XM____________________________]_______?__]_____________\ #
XM_____________________^'________________________________\__\W
XM__^?__Y___Q__P!__WW_^_/__/__\_____________________________?#
XM^YSQ_-A_FOA^YOQ]SF/\V'^Y'G_$__[G'^Y?![D>?_F#&\=A^(</<'C_B'#W
XM!\?[_ ^X ?^+Q_P>/_@XN/QX?8SC_ ?__________________\/______C_
XM_____Y______^./_____C__________C__^/________________________
XM____[______^___[_____________\ #______________________7_
XM_______________________________X+_X/__\%__P7__Q__P!__@'_\ ?_
XM^"__X+____________________________^C_\GQ^9W_\OQ_^?__]'?YGO_^
XM'O_B___]'_^?C_X>_^6+'\?W\Q>/\7C_,7C_%\?[_Q_[]_^+Q_Q>/_BXN/XW
XM_XWC_P ___________________\'______C______P______^/______C___
XM_______C__^/____________________________C______\___S________
XM_____\ #______________________O_________________________
XM______^$'_T?__"#_\(/__C__@#_^ /_X ?_A!_^$'__________________
XM__________BQ_S'Q\QW_XOQ_Y?__S'?S'?_Y'__B___S'_Y?W_D>_\6+'\/W
XM\Q?'\7C_,7Q_%\?Y_[_W=_^+Q_Q>/_BXN/XW_XWC__]_________________
XM__^/______C______X?_____^/______C__________C__^/____________
XM________________C______Y___G_____________\ #____________
XM__________?_______________________________^/'_\?__'C_\>/__C_
XM_O__^(?__ __CQ_^/'____________________________!Q_C'Q\QW_XOQ_
XMQ?__C'?S&__Q'__B___C'_Q?__$>_\6+'\/WXQ?'\7C^,7Q_%\?P/__F=_^+
XMQ_Q>/_BXN/\/_XWC__]____________________?______C______\/_____
XM^/______C___O__^___C__^/____________________________C______Y
XM___G_____________\ #____________________________________
XM__________________^/'_\?__'C_\>/__G__O__^/___]__CQ_^/'______
XM______________________!X_C%SYQW_XGA_Q?__C'?G%__Q%W_B___C'_Q>
XM/_$>_\6+']'WYQ?C\7C^<7X_%\?D!\?,=_^+Q_Q>/_BXN/\/_XWC__[_____
XM______________________C______^'_____^/______C___'__\?__C__^/
XM____________________________C______Q___'_____________\ #
XM______________________________________________________^/'_\?
XM__'C_\>/__'__O__^/___]__CQ_^/'_]___W______________________]X
XM_#%GYQW_PH1_A8__# ?G#__A%#_"___#'_A9'^$>_X0('Y'WQQ?CX0#\<7X^
XM%X_F "/,=_\(!_A /_BXN/P!_PP#__W___________________________C_
XM______#_____^/______C___O__^___C__^/________________________
XM____C______Q___'_____________\ #________________________
XM______________________________^/'_\?__/C_\^/__+__O__^/___[__
XMCQ_^/'_X___C______________________[X^#$3QQW_@OQ_!07^# ?' ?_!
XM$C^"__^#'_!''\$>_P0('QCWQQ?CP7C\<7X\%C_CP#><=_X+Q_!>/_" @/P!
XM_@WC__O___________________________C_______A?____^!______C___
XM_______C__^/____________________________@?_____Q___'________
XM_____\ #________________________________________________
XM______^/'_\?___C__^/_^3__''_^/___W__CQ_^/'_P?__!____________
XM__________X >#!QQQW_@OQ_! /^# ?'%G_!!C^"__^#'_!?C\$>_P0('Q@'
XMQQ #P7C\<0 \$!_P^!^<=_X+Q_!>/^"XN/P!_@WC_X#_________________
XM______[/__B?__Y___0__^?_^!___S__C/__-__\W__CO_^/__]]]_WW__]_
XM_^[___?__-O__GO_@?__??_X]__CWW_'M_\TW_P??\ #____________
XM__________________________________________^/'_\?___#__\?_^C_
XM_ "_^/?__W__@!_^.'_X___C______________________P >#%QQQW_@H1_
XM!??^# ?'%S_!%C^"__^#'_!?C\$>_P0('P!WQQ?CP7C\<7X\ Q_X&P\<=_X(
XM!_! /^"XN/^'_@WC_X#_______________________P"__@%__P/_XX__X/_
XM^#___-O_B%_^#__X/__B'_^/__XPP?C!__P__\!__\/_^ /_^ ?_@__^./_X
XM0O_A#"^#!_X(/_@ _\ #____________________________________
XM__________________^/'_\?__\#__X__]C__&!_^(+__G__P#_]!'_]___W
XM______________________P /C%QQQW_XGA_Q??_C'?'$#_Q$#_B___C'_Q?
XMG_$>_\6+']QWQQ?C\0#\<7X_!Q_\ \\<=_^+Q_Q>/^" @/]C_XWC_X#_____
XM__________________Y!__B#_^ /_XX__#/_^/__X\/_AC_]'__\?__AC_^/
XM__P((_ C_^,7_X8O_C%_]$/_X@__C__^,'_\,?_PPQ^P#_T<?_8!_\ #
XM____________________________________________!_________^/'_\?
XM__X#__\7_[C__?A_^''__/__@!__O'____________________________W^
XM/C$!QQW_XOQ_Q??_C'?'%Q_Q%C_B___C'_Q>/_$>_\6+']XWQQ #\7C\<0 _
XM%X__ $\<=_^+Q_Q>/_BXN/]C_XP#_]________________________]Q__CC
XM_^&?_XX__C'_^/__X\?_CC__'__\?__CS_^/__XXX_CC_^./_\<?_CC__&?_
XMXY__C__^./_\<?_QQQ_QG_\<?__S_\ #________________________
XM___________________^#_________^/'_\?__S___^/_P ?__Q_^/'__/__
XMCQ___'____________________________O^/C%QQQW_XOQ_Q??_C'?'%Q_Q
XM$#_B___C'_Q8/_$>_\6+']XWYQ?G\7C^<7Y_%X__X \<=_^+Q_Q>/_BXN/[Q
XM_XWC_]________________________\Q__CC_^/__XX__CC_^/__X\?_CC__
XM'__\?__CG_^/__XXX_CC_^./_\<?_CC__'__X[__C__^./_\<?_QQQ_X__\<
XM?__/_\ #___________________________________________\'___
XM______^/'_\?__W___^/__C___Q_^/'_^/__CQ___'__________________
XM__________O_'G$!XSV_XOQ_Q??_C'?G,#_Q%C_B___C'_Q''_$^_\6+']\7
XMXS?G\7C^,WY_%X__[ ^,]O^+Q_Q>/_BXN/[Q_XWC_[__________________
XM______Y1__CC_^/__XX__CG_^/__X\?_CC__'__\?__B'_^/__XXX_CC_^./
XM_\<?_CC__'__X!__C__^./_\<?_QQQ_X__\<?_^__\ #____________
XM__________________________________________^/'_\?__O___^/__C_
XM__Q_^/'_^?__CQ___'____________________________?_'N-QXWV_YOQ_
XMS??_G'?C=S_S-C_B___G'_S?'_-^_\6+']\7\_?/\7C_/WS_%\?_[D^-]O^+
XMQ_Q>/_BXN/WX_XWC_W________________________QQ__CC_^/__XX__B?_
XM^/__X\?_CC__'__\?__A'_^/__XXX_CC_^./_\<?_CC__'__^ ?_C__^./_\
XM<?_QQQ_\?_\<?_P/_\ #____________________________________
XM____W______]______^/'_\?__O___^/__C___Q_^/'_\?__CQ___'_]___W
XM_____________________^/OC\]Q\/T_Z/Q_P/?_G'?S]G_Q=G_F__^/'_P>
XMC_ ^_\6+'X^'\_?/\7C_/WS_#\?_WL_#]/^#Q_Q>/_@XN/CX_XWC_O______
XM__________________QQ__CC_^/__XX__A__^/__X\?_CC__'__\?__C'_^/
XM__XXX_CC_^./_\<?_CC__'___<?_C__^./_\<?_QQQ_\?_\<?_[__\ #
XM________________________________________C______X______^/'_\?
XM__L'__"/__C__P1_^/'_\/__CQ__A'_X___C_____________________X#?
XMCP-Q\O!_X#Q_@!=^!'?S]'_@<G\N__X''_@-C^ &WPV+'D.'^/<?P7C_CW'^
XM T?X ]_+P?^ Q_Q^/_@8N. T;XWC_@?[______________________QQ__CC
XM_^/__XX__C__^/__X\?_CC__'__\?__CB_^/__XXX_CC_^./_\<?_CC__'__
XM^<?_C__^./_\<?_QQQ_&/_\<?_[__\ #________________________
XM________________!______P?_____^"'_\7__8"_^ /__B__@!_^"'_\)__
XM@A__ '_P?__!_____________________P _C@!Q^ #_P A_ #\ '?X\/_
XM!OX.__P#/_ #Q< /@V+'0#'_#0_@1#_PD/\ .+P #_@ _\ !?P /_ ( , ,
XM7XWC_ '______________________X@__1C_]'?_T8__@[_]&__X,?_!C__
XM'__\?__1A_]%__P08?!A_]&/_X,?_1C__&__\$?_1?_^,'_\<?_QQQ^ -_\<
XM?_P#?\ #________________________________________A______X
XM______]!__X/__ !_\ ___!__ '_]!__^'__0?_^ ?_X___A____________
XM_________AQ_S#@/_ '_AP/^'P'X8/?\<_^OP!__AA?^''PX? ? -'B#C'
XM_Q#_@0__\8_X<>'F '_P!_X<(_X?_^&$/X<>/W '^ /________________
XM______\9__X?__@__^'__P'__A__P ?_CG__C__^/__XC__C__XXX_CC__A_
XM_P#__X#_^A__X!__X__\"/_Z#__H"/\!#_\ ?_@ _\ #____________
XM____________________________U______]_______S__^?__'[_]]___S_
XM_/O__S___?__\__^^__]___U_____________________/[_Z?X__PW_/\?\
XM_^/S^??_#_\_G?W#__/X_\_OYS_X_<?OT?WG_\/_L3___!_S^_//8/_\-_S_
XM=_^__\_N_S^_?GX/\_@?______________________^[__]___S___?__\?_
XM_W___,O_WO__W___/__]W__W__]]]_WW__W__T/__]C__S___G__]___/?__
XM/__\<_]SG_^?___!_\ #____________________________________
XM____[______________________________________________________[
XM_____________________/__^?____W_/__\___S__?___\__?W___/__\__
XM_S___?__\?______\7___]_S___??___]_S______\___S___G__________
XM_________________________________________^/__O______'_______
XM_____________\?___C___________________________]______\ #
XM________________________________________W___________________
XM___________________________________W_____________________?__
XM^_____W_?__]___W__?___]__OY___?__]___W___?__\_______\7___]_W
XM___>____]_W______]___W___G__________________________________
XM_________________^/__W______'____________________\?___C_____
XM______________________]X_____\ #________________________
XM____________________________________________________________
XM_________________________________?__^_____W_?__]___W__?___]_
XM_G^?__?__]___W___O__]_______\7___\_W___N____]_W______]___W__
XM_GX/__________________________________________________/__S__
XM____G____________________\?___C___________________________]P
XM?____\ #________________________________________________
XM____________________________________________________________
XM_________?__^_____W_?__]___W__?___]__C____?__]___W___O__]___
XM____\7___\]W___Q____]_W______]___W___P '____________________
XM____________________________Y_/__Q______G___________________
XM_\?___C___________________________\ ?____\ #____________
XM____________________________________________________________
XM_____________________________________________?__^_____W_?__]
XM_]_W__?___]__C____?__]___W_W_S__]_______\7___\=W________]_W_
XM_____]___W___P #____________________________________________
XM____R>?__Q_____X/____________________\?___A_________________
XM__________\'?____\ #____________________________________
XM____________________________________________________________
XM_____________________O___?____G_O__^_S_[_^?___^__#____O__^__
XM_[_/_\?_^_______\?___^#[________Y_[______^___[___X'[________
XM________________________________________TH___A_____P?_______
XM_____________\____C___________________________^/?____\ #
XM____________________________________________________________
XM_________________________________________________________S__
XM_F____'_S___//_\_\?____/_'____S___/__\\______/______\O____#\
XM________Q_\_______/__\_____[________________________________
XM_________________1___C_____P_____________________]____G_____
XM________________________?____\ #________________________
XM____________________________________________________________
XM_________________________________\___Y____O_\___P___/^_____S
XM_/____\___S___#______S______]_____G_/_______[__/______S___/_
XM_____________________________________________________G___G__
XM___V_____________________[____O____________________________\
X&_____\
X
Xend
END_OF_FILE
# end of 'font-16/Uoldeng22x30rI'
fi
if test -f 'font-32/Uoldeng22x30rI' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'font-32/Uoldeng22x30rI'\"
else
echo shar: Extracting \"'font-32/Uoldeng22x30rI'\" \(10460 characters\)
sed "s/^X//" >'font-32/Uoldeng22x30rI' <<'END_OF_FILE'
Xbegin 644 oldeng22x30rI.fnt
XM&!8>"%L@ #______________________?_________________________
XM____________________________________________________________
XM__________PO_'/S__N_8 /_',.^.=W_^[_'(?^;__\<S_'(?\<A__^[?A_N
XM_]Y_PW/__>?\-Q__ __@?O\[G_W<__/Y\_G]WQW/^___________________
XM___?______[______________\______]__________]___W____________
XM_________________________________________\ #____________
XM_________^/_________________________________________________
XM______________________________________________@'^ ?!_W0_ '^
XM 8 \ X'_=#^ 0-]-__X!G^ 0/X! W_\:+ _ _QP_@4%_\</X5(_^ /_ /X:
XM"_C07^&@@?#\'@V%^/_O__________________^_______S______W______
XM_P?_____K__________K___O____________________________________
XM_________________\ #_____________________\'_____________
XM______________________________________]_____________________
XM______________________ 3^ \Q_N _ #^ P \!P'^X#^ F#Y&__X#'^ N
XM&X"8/_R)& ^ _#H? 3C_PZ'P$\?]^'> /^)Q_!./_B8..QX/ U#^ /____
XM______________]?______C______[_______,/_____C__________C__^/
XM____________________________]_______?__]_____________\ #
XM_____________________^'________________________________\__\W
XM__^?__Y___Q__P!__WW_^_/__/__\_____________________________?#
XM^YSQ_-A_FOA^YOQ]SF/\V'^Y'G_$__[G'^Y?![D>?_F#&\=A^(</<'C_B'#W
XM!\?[_ ^X ?^+Q_P>/_@XN/QX?8SC_ ?__________________\/______C_
XM_____Y______^./_____C__________C__^/________________________
XM____[______^___[_____________\ #______________________7_
XM_______________________________X+_X/__\%__P7__Q__P!__@'_\ ?_
XM^"__X+____________________________^C_\GQ^9W_\OQ_^?__]'?YGO_^
XM'O_B___]'_^?C_X>_^6+'\?W\Q>/\7C_,7C_%\?[_Q_[]_^+Q_Q>/_BXN/XW
XM_XWC_P ___________________\'______C______P______^/______C___
XM_______C__^/____________________________C______\___S________
XM_____\ #______________________O_________________________
XM______^$'_T?__"#_\(/__C__@#_^ /_X ?_A!_^$'__________________
XM__________BQ_S'Q\QW_XOQ_Y?__S'?S'?_Y'__B___S'_Y?W_D>_\6+'\/W
XM\Q?'\7C_,7Q_%\?Y_[_W=_^+Q_Q>/_BXN/XW_XWC__]_________________
XM__^/______C______X?_____^/______C__________C__^/____________
XM________________C______Y___G_____________\ #____________
XM__________?_______________________________^/'_\?__'C_\>/__C_
XM_O__^(?__ __CQ_^/'____________________________!Q_C'Q\QW_XOQ_
XMQ?__C'?S&__Q'__B___C'_Q?__$>_\6+'\/WXQ?'\7C^,7Q_%\?P/__F=_^+
XMQ_Q>/_BXN/\/_XWC__]____________________?______C______\/_____
XM^/______C___O__^___C__^/____________________________C______Y
XM___G_____________\ #____________________________________
XM__________________^/'_\?__'C_\>/__G__O__^/___]__CQ_^/'______
XM______________________!X_C%SYQW_XGA_Q?__C'?G%__Q%W_B___C'_Q>
XM/_$>_\6+']'WYQ?C\7C^<7X_%\?D!\?,=_^+Q_Q>/_BXN/\/_XWC__[_____
XM______________________C______^'_____^/______C___'__\?__C__^/
XM____________________________C______Q___'_____________\ #
XM______________________________________________________^/'_\?
XM__'C_\>/__'__O__^/___]__CQ_^/'_]___W______________________]X
XM_#%GYQW_PH1_A8__# ?G#__A%#_"___#'_A9'^$>_X0('Y'WQQ?CX0#\<7X^
XM%X_F "/,=_\(!_A /_BXN/P!_PP#__W___________________________C_
XM______#_____^/______C___O__^___C__^/________________________
XM____C______Q___'_____________\ #________________________
XM______________________________^/'_\?__/C_\^/__+__O__^/___[__
XMCQ_^/'_X___C______________________[X^#$3QQW_@OQ_!07^# ?' ?_!
XM$C^"__^#'_!''\$>_P0('QCWQQ?CP7C\<7X\%C_CP#><=_X+Q_!>/_" @/P!
XM_@WC__O___________________________C_______A?____^!______C___
XM_______C__^/____________________________@?_____Q___'________
XM_____\ #________________________________________________
XM______^/'_\?___C__^/_^3__''_^/___W__CQ_^/'_P?__!____________
XM__________X >#!QQQW_@OQ_! /^# ?'%G_!!C^"__^#'_!?C\$>_P0('Q@'
XMQQ #P7C\<0 \$!_P^!^<=_X+Q_!>/^"XN/P!_@WC_X#_________________
XM______[/__B?__Y___0__^?_^!___S__C/__-__\W__CO_^/__]]]_WW__]_
XM_^[___?__-O__GO_@?__??_X]__CWW_'M_\TW_P??\ #____________
XM__________________________________________^/'_\?___#__\?_^C_
XM_ "_^/?__W__@!_^.'_X___C______________________P >#%QQQW_@H1_
XM!??^# ?'%S_!%C^"__^#'_!?C\$>_P0('P!WQQ?CP7C\<7X\ Q_X&P\<=_X(
XM!_! /^"XN/^'_@WC_X#_______________________P"__@%__P/_XX__X/_
XM^#___-O_B%_^#__X/__B'_^/__XPP?C!__P__\!__\/_^ /_^ ?_@__^./_X
XM0O_A#"^#!_X(/_@ _\ #____________________________________
XM__________________^/'_\?__\#__X__]C__&!_^(+__G__P#_]!'_]___W
XM______________________P /C%QQQW_XGA_Q??_C'?'$#_Q$#_B___C'_Q?
XMG_$>_\6+']QWQQ?C\0#\<7X_!Q_\ \\<=_^+Q_Q>/^" @/]C_XWC_X#_____
XM__________________Y!__B#_^ /_XX__#/_^/__X\/_AC_]'__\?__AC_^/
XM__P((_ C_^,7_X8O_C%_]$/_X@__C__^,'_\,?_PPQ^P#_T<?_8!_\ #
XM____________________________________________!_________^/'_\?
XM__X#__\7_[C__?A_^''__/__@!__O'____________________________W^
XM/C$!QQW_XOQ_Q??_C'?'%Q_Q%C_B___C'_Q>/_$>_\6+']XWQQ #\7C\<0 _
XM%X__ $\<=_^+Q_Q>/_BXN/]C_XP#_]________________________]Q__CC
XM_^&?_XX__C'_^/__X\?_CC__'__\?__CS_^/__XXX_CC_^./_\<?_CC__&?_
XMXY__C__^./_\<?_QQQ_QG_\<?__S_\ #________________________
XM___________________^#_________^/'_\?__S___^/_P ?__Q_^/'__/__
XMCQ___'____________________________O^/C%QQQW_XOQ_Q??_C'?'%Q_Q
XM$#_B___C'_Q8/_$>_\6+']XWYQ?G\7C^<7Y_%X__X \<=_^+Q_Q>/_BXN/[Q
XM_XWC_]________________________\Q__CC_^/__XX__CC_^/__X\?_CC__
XM'__\?__CG_^/__XXX_CC_^./_\<?_CC__'__X[__C__^./_\<?_QQQ_X__\<
XM?__/_\ #___________________________________________\'___
XM______^/'_\?__W___^/__C___Q_^/'_^/__CQ___'__________________
XM__________O_'G$!XSV_XOQ_Q??_C'?G,#_Q%C_B___C'_Q''_$^_\6+']\7
XMXS?G\7C^,WY_%X__[ ^,]O^+Q_Q>/_BXN/[Q_XWC_[__________________
XM______Y1__CC_^/__XX__CG_^/__X\?_CC__'__\?__B'_^/__XXX_CC_^./
XM_\<?_CC__'__X!__C__^./_\<?_QQQ_X__\<?_^__\ #____________
XM__________________________________________^/'_\?__O___^/__C_
XM__Q_^/'_^?__CQ___'____________________________?_'N-QXWV_YOQ_
XMS??_G'?C=S_S-C_B___G'_S?'_-^_\6+']\7\_?/\7C_/WS_%\?_[D^-]O^+
XMQ_Q>/_BXN/WX_XWC_W________________________QQ__CC_^/__XX__B?_
XM^/__X\?_CC__'__\?__A'_^/__XXX_CC_^./_\<?_CC__'__^ ?_C__^./_\
XM<?_QQQ_\?_\<?_P/_\ #____________________________________
XM____W______]______^/'_\?__O___^/__C___Q_^/'_\?__CQ___'_]___W
XM_____________________^/OC\]Q\/T_Z/Q_P/?_G'?S]G_Q=G_F__^/'_P>
XMC_ ^_\6+'X^'\_?/\7C_/WS_#\?_WL_#]/^#Q_Q>/_@XN/CX_XWC_O______
XM__________________QQ__CC_^/__XX__A__^/__X\?_CC__'__\?__C'_^/
XM__XXX_CC_^./_\<?_CC__'___<?_C__^./_\<?_QQQ_\?_\<?_[__\ #
XM________________________________________C______X______^/'_\?
XM__L'__"/__C__P1_^/'_\/__CQ__A'_X___C_____________________X#?
XMCP-Q\O!_X#Q_@!=^!'?S]'_@<G\N__X''_@-C^ &WPV+'D.'^/<?P7C_CW'^
XM T?X ]_+P?^ Q_Q^/_@8N. T;XWC_@?[______________________QQ__CC
XM_^/__XX__C__^/__X\?_CC__'__\?__CB_^/__XXX_CC_^./_\<?_CC__'__
XM^<?_C__^./_\<?_QQQ_&/_\<?_[__\ #________________________
XM________________!______P?_____^"'_\7__8"_^ /__B__@!_^"'_\)__
XM@A__ '_P?__!_____________________P _C@!Q^ #_P A_ #\ '?X\/_
XM!OX.__P#/_ #Q< /@V+'0#'_#0_@1#_PD/\ .+P #_@ _\ !?P /_ ( , ,
XM7XWC_ '______________________X@__1C_]'?_T8__@[_]&__X,?_!C__
XM'__\?__1A_]%__P08?!A_]&/_X,?_1C__&__\$?_1?_^,'_\<?_QQQ^ -_\<
XM?_P#?\ #________________________________________A______X
XM______]!__X/__ !_\ ___!__ '_]!__^'__0?_^ ?_X___A____________
XM_________AQ_S#@/_ '_AP/^'P'X8/?\<_^OP!__AA?^''PX? ? -'B#C'
XM_Q#_@0__\8_X<>'F '_P!_X<(_X?_^&$/X<>/W '^ /________________
XM______\9__X?__@__^'__P'__A__P ?_CG__C__^/__XC__C__XXX_CC__A_
XM_P#__X#_^A__X!__X__\"/_Z#__H"/\!#_\ ?_@ _\ #____________
XM____________________________U______]_______S__^?__'[_]]___S_
XM_/O__S___?__\__^^__]___U_____________________/[_Z?X__PW_/\?\
XM_^/S^??_#_\_G?W#__/X_\_OYS_X_<?OT?WG_\/_L3___!_S^_//8/_\-_S_
XM=_^__\_N_S^_?GX/\_@?______________________^[__]___S___?__\?_
XM_W___,O_WO__W___/__]W__W__]]]_WW__W__T/__]C__S___G__]___/?__
XM/__\<_]SG_^?___!_\ #____________________________________
XM____[______________________________________________________[
XM_____________________/__^?____W_/__\___S__?___\__?W___/__\__
XM_S___?__\?______\7___]_S___??___]_S______\___S___G__________
XM_________________________________________^/__O______'_______
XM_____________\?___C___________________________]______\ #
XM________________________________________W___________________
XM___________________________________W_____________________?__
XM^_____W_?__]___W__?___]__OY___?__]___W___?__\_______\7___]_W
XM___>____]_W______]___W___G__________________________________
XM_________________^/__W______'____________________\?___C_____
XM______________________]X_____\ #________________________
XM____________________________________________________________
XM_________________________________?__^_____W_?__]___W__?___]_
XM_G^?__?__]___W___O__]_______\7___\_W___N____]_W______]___W__
XM_GX/__________________________________________________/__S__
XM____G____________________\?___C___________________________]P
XM?____\ #________________________________________________
XM____________________________________________________________
XM_________?__^_____W_?__]___W__?___]__C____?__]___W___O__]___
XM____\7___\]W___Q____]_W______]___W___P '____________________
XM____________________________Y_/__Q______G___________________
XM_\?___C___________________________\ ?____\ #____________
XM____________________________________________________________
XM_____________________________________________?__^_____W_?__]
XM_]_W__?___]__C____?__]___W_W_S__]_______\7___\=W________]_W_
XM_____]___W___P #____________________________________________
XM____R>?__Q_____X/____________________\?___A_________________
XM__________\'?____\ #____________________________________
XM____________________________________________________________
XM_____________________O___?____G_O__^_S_[_^?___^__#____O__^__
XM_[_/_\?_^_______\?___^#[________Y_[______^___[___X'[________
XM________________________________________TH___A_____P?_______
XM_____________\____C___________________________^/?____\ #
XM____________________________________________________________
XM_________________________________________________________S__
XM_F____'_S___//_\_\?____/_'____S___/__\\______/______\O____#\
XM________Q_\_______/__\_____[________________________________
XM_________________1___C_____P_____________________]____G_____
XM________________________?____\ #________________________
XM____________________________________________________________
XM_________________________________\___Y____O_\___P___/^_____S
XM_/____\___S___#______S______]_____G_/_______[__/______S___/_
XM_____________________________________________________G___G__
XM___V_____________________[____O____________________________\
X&_____\
X
Xend
END_OF_FILE
# end of 'font-32/Uoldeng22x30rI'
fi
if test -f 'src/cut.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'src/cut.c'\"
else
echo shar: Extracting \"'src/cut.c'\" \(10755 characters\)
sed "s/^X//" >'src/cut.c' <<'END_OF_FILE'
X/* Copyright (c) 1987 Bellcore
X * All Rights Reserved
X * Permission is granted to copy or use this program, EXCEPT that it
X * may not be sold for profit, the copyright notice must be reproduced
X * on copies, and credit should be given to Bellcore where it is due.
X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
X */
X/* $Header: cut.c,v 4.2 88/06/27 11:13:00 bianchi Exp $
X $Source: /tmp/mgrsrc/src/RCS/cut.c,v $
X*/
Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/src/RCS/cut.c,v $$Revision: 4.2 $";
X
X/* cut and paste text */
X
X#include <stdio.h>
X#include "bitmap.h"
X#include "defs.h"
X#include "font.h"
X#include "window.h"
X#include "event.h"
X
X/* stuff global buffer into input stream */
X
Xint
Xpaste()
X {
X if (snarf) {
X do_event(EVENT_PASTE,active,E_MAIN);
X Write(ACTIVE(to_fd),snarf,strlen(snarf));
X#ifdef DEBUG
X dprintf(y)(stderr,"%s: Pasting [%s]\n",ACTIVE(tty), snarf?snarf:"EMPTY");
X#endif
X }
X#ifdef DEBUG
X else {
X dprintf(y)(stderr,"%s: Nothing to paste\n",ACTIVE(tty));
X }
X#endif
X }
X
X/* cut text from a window, put in global buffer */
X
X
X#define MAXROWS 64 /* greatest char height */
X#define MAXCOLS 32 /* widest char (bits in u-long) */
X
XBITMAP *glyph; /* spot for glyph comparison */
Xunsigned long data[MAXROWS]; /* bit data for glyph */
XBITMAP *check; /* other spot for glyph comparison */
Xunsigned long data2[MAXROWS]; /* bit data for other glyph */
X
Xstatic struct entry **table; /* hash table */
X
X/* sweep out and cut text */
X
Xint
Xcut()
X {
X register int i,j;
X register WINDOW *win = active; /* window to cut text from */
X int count; /* # of snarfed chars */
X int errors = 0; /* number of misses */
X int cols=1, rows=0; /* rows and cols swept */
X int col,row; /* starting col and row */
X int maxcol; /* # of cols in row */
X int x,y; /* bit position in bitmap */
X int hcode; /* hash code */
X int button; /* button from move_mouse */
X char c; /* matched char */
X char *pntr; /* current char in line */
X struct entry *entry; /* current hash table entry */
X char *line; /* buffer to receive text */
X char get_match(),*malloc();
X char *to_tabs(), *fixline();
X
X /* return immediately if window is not snarffable */
X
X if (W(flags) & W_SNARFABLE ==0)
X return(0);
X
X /* initialize comparison registers */
X
X glyph = bit_alloc(32,FSIZE(high),data,1);
X check = bit_alloc(32,FSIZE(high),data2,1);
X bit_blit(check,0,0,32,FSIZE(high),BIT_CLR,NULL_DATA,0,0);
X
X /* build hash table */
X
X if ((table = W(font)->table) == NULL) {
X#ifdef DEBUG
X dprintf(C)(stderr,"building cut table\n");
X#endif
X table = W(font)->table =
X (struct entry **) malloc (sizeof (struct entry) * H_SIZE);
X bzero(table, sizeof(struct entry) * H_SIZE);
X
X for(i = FSIZE(start);i<FSIZE(start)+FSIZE(count);i++) {
X if (W(font)->glyph[i] && i >= ' ') {
X hcode = get_hash(W(font)->glyph[i],0,0,FSIZE(wide),FSIZE(high),0);
X enter(hcode,i);
X }
X }
X }
X
X /* find cut region */
X
X SETMOUSEICON(&mouse_cut);
X button = move_mouse(screen,mouse,&mousex,&mousey,0);
X SETMOUSEICON(&mouse_arrow);
X i = get_text(screen,mouse,mousex,mousey,&cols,&rows,win,E_SWTEXTT);
X if (i == 0) {
X do_button(0);
X return(0);
X }
X
X /* find extent of cut region */
X
X col = (mousex-(W(x0)+SUM_BDR+W(text.x)))/FSIZE(wide);
X maxcol = (W(text.wide) ? W(text.wide) : BIT_WIDE(W(window)))/FSIZE(wide);
X row = (mousey-(W(y0)+SUM_BDR+W(text.y)))/FSIZE(high);
X
X if (W(flags)&W_SNARFLINES) { /* snarf lines only */
X#ifdef DEBUG
X dprintf(C)(stderr,"Cutting lines only\n");
X#endif
X col = 0;
X cols = maxcol;
X }
X
X#ifdef DEBUG
X dprintf(C)(stderr,"Cut got %d,%d %d x %d\n",col,row,cols,rows);
X#endif
X
X /* look up characters */
X
X pntr = line = malloc(1+(1+maxcol)*(rows+1)); /* max possible cut */
X switch(rows) {
X case 0: /* 1 row */
X y = W(text.y)+row*FSIZE(high);
X for(x=W(text.x)+col*FSIZE(wide),i=0;i<cols;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X if (col+cols == maxcol && c==' ')
X pntr = fixline(line,pntr);
X break;
X case 1: /* 2 rows */
X y = W(text.y)+row*FSIZE(high);
X for(x=W(text.x)+col*FSIZE(wide),i=0;i<maxcol;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X pntr = fixline(line,pntr);
X
X y += FSIZE(high);
X for(x=W(text.x),i=0;i<col+cols;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X if (col+cols == maxcol && c==' ')
X pntr = fixline(line,pntr);
X break;
X
X default: /* > 2 rows */
X y = W(text.y)+row*FSIZE(high);
X for(x=W(text.x)+col*FSIZE(wide),i=0;i<maxcol;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X pntr = fixline(line,pntr);
X
X for(j=0;j<rows-1;j++) {
X y += FSIZE(high);
X for(x=W(text.x),i=0;i<maxcol;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X pntr = fixline(line,pntr);
X }
X
X y += FSIZE(high);
X for(x=W(text.x),i=0;i<col+cols;i++,x+=FSIZE(wide)) {
X c = get_match(W(window),x,y,FSIZE(wide),FSIZE(high));
X *pntr++ = c ? c : (errors++,C_NOCHAR);
X }
X if (col+cols == maxcol && c==' ')
X pntr = fixline(line,pntr);
X
X break;
X }
X *pntr = '\0';
X bit_destroy(check);
X bit_destroy(glyph);
X
X /* put text into snarf buffer */
X
X count = pntr-line;
X#ifdef DEBUG
X dprintf(C)(stderr,"snarfed %d chars, %d errors\n",count,errors);
X dprintf(C)(stderr,"snarfed [%s]\n",line);
X#endif
X
X if (!(W(flags)&W_SNARFHARD) && errors > 0 || 2*errors > count) {
X oops();
X count = 0;
X }
X else {
X if (W(flags)&W_SNARFTABS)
X to_tabs(col,line,line);
X
X if (snarf && button < BUTTON_SYS) { /* add to cut buffer */
X char *tmp = malloc(strlen(snarf) + strlen(line) +1);
X count += strlen(snarf);
X strcpy(tmp,snarf);
X strcat(tmp,line);
X free(snarf);
X free(line);
X snarf = tmp;
X }
X else if (snarf) { /* replace cut buffer */
X free(snarf);
X snarf = line;
X }
X else /* new cut buffer */
X snarf = line;
X
X /* send snarf events (if any) */
X id_message = W(pid);
X for(win=active;win != (WINDOW *) 0;win=W(next))
X do_event(EVENT_SNARFED,win,E_MAIN);
X }
X do_button(0);
X return(count);
X }
X
X/* given bitmap, get hash code */
X
Xstatic int
Xget_hash(map,x,y,w,h,how)
XBITMAP *map;
Xint x,y,w,h; /* where in map */
Xint how; /* 0-> normal, 1->inverted */
X {
X register unsigned long sum = 0;
X register int i,j;
X bit_blit(glyph,0,0,32,h,BIT_CLR,NULL_DATA,0,0);
X bit_blit(glyph,32-w,0,w,h,how ? BIT_NOT(BIT_SRC) : BIT_SRC,map,x,y);
X for (j=0;j<h;j++)
X sum += data[j]*(j+1);
X return(sum%H_SIZE);
X }
X
X/* enter a glyph into the hash table */
X
Xstatic int
Xenter(item,value)
Xint item;
Xunsigned char value;
X {
X register struct entry *entry;
X char *malloc();
X
X if (table[item] == (struct entry *) 0) {
X table[item] = (struct entry *) malloc(sizeof (struct entry));
X table[item] -> value = value;
X table[item] -> next = (struct entry *) 0;
X }
X else {
X for(entry = table[item];entry->next;entry = entry -> next);
X entry -> next = (struct entry *) malloc(sizeof (struct entry));
X entry -> next -> value = value;
X entry -> next -> next = (struct entry *) 0;
X }
X }
X
X/* find a character match in current font */
X
Xstatic char
Xget_match(map,x,y,w,h)
XBITMAP *map; /* bitmap containing text */
Xint x,y,w,h; /* position of glyph in "map" */
X {
X register struct entry *entry;
X register WINDOW *win = active;
X int code; /* hash code */
X int size = sizeof(long) * h;
X
X code = get_hash(map,x,y,w,h,0); /* leaves char in glyph */
X for(entry=table[code];entry;entry=entry->next) {
X bit_blit(check,32-w,0,w,h,BIT_SRC,W(font)->glyph[entry->value],0,0);
X if (bcmp(data,data2,size)==0) {
X return(entry->value);
X }
X }
X
X /* try inverse video version */
X
X code = get_hash(map,x,y,w,h,1); /* leaves char in glyph */
X for(entry=table[code];entry;entry=entry->next) {
X bit_blit(check,32-w,0,w,h,BIT_SRC,W(font)->glyph[entry->value],0,0);
X if (bcmp(data,data2,size)==0) {
X return(entry->value);
X }
X }
X return('\0');
X }
X
X/* zap a font hash table */
X
Xzap_fhash(fnt)
Xstruct font *fnt;
X {
X register struct entry *entry, *next;
X register int i;
X
X if (fnt->table) {
X for(i=0;i<H_SIZE;i++)
X for(entry=table[i];entry;entry=next) {
X next = entry->next;
X free(entry);
X }
X free(fnt->table);
X }
X }
X
X/* change trailing white space into \n */
X
Xchar *
Xfixline(s,pnt)
Xchar *s;
Xregister char *pnt;
X {
X while (*--pnt == ' ' && pnt > s);
X *++pnt = '\n';
X return(++pnt);
X }
X
X/* change spaces to tabs */
X
Xstatic char *
Xto_tabs(pos,in,out)
Xregister int pos; /* starting col # */
Xregister char *in; /* input str */
Xregister char *out; /* output str - tabs */
X {
X char *s = out; /* start of out str */
X register char c; /* current input char */
X register int spaces = 0; /* # pending spaces */
X
X#ifdef DEBUG
X dprintf(C)(stderr,"-> TABS");
X#endif
X while(pos++,c = *in++) {
X
X if (c=='\n' || c=='\r' || c=='\f') /* reset column counter */
X pos =0;
X
X if (c == ' ') {
X spaces++;
X if (pos && pos%8 == 0) { /* ' ' -> \t */
X c = '\t';
X#ifdef DEBUG
X dprintf(C)(stderr,".");
X#endif
X spaces=0;
X }
X }
X else for(;spaces>0;spaces--) { /* output spaces */
X *out++ = ' ';
X }
X
X if (spaces == 0)
X *out++ = c;
X }
X *out = '\0';
X#ifdef DEBUG
X dprintf(C)(stderr,"\n");
X#endif
X return(s);
X }
X
X/* can't cut, ring bell */
X
Xstatic int
Xoops()
X {
X register WINDOW *win = active;
X
X CLEAR(W(window),BIT_NOT(BIT_DST));
X write(2,"\007",1);
X CLEAR(W(window),BIT_NOT(BIT_DST));
X }
END_OF_FILE
# end of 'src/cut.c'
fi
if test -f 'src/win_stack.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'src/win_stack.c'\"
else
echo shar: Extracting \"'src/win_stack.c'\" \(10948 characters\)
sed "s/^X//" >'src/win_stack.c' <<'END_OF_FILE'
X/* Copyright (c) 1987 Bellcore
X * All Rights Reserved
X * Permission is granted to copy or use this program, EXCEPT that it
X * may not be sold for profit, the copyright notice must be reproduced
X * on copies, and credit should be given to Bellcore where it is due.
X * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
X */
X/* $Header: win_stack.c,v 4.2 88/07/20 10:22:55 sau Exp $
X $Source: /tmp/mgrsrc/src/RCS/win_stack.c,v $
X*/
Xstatic char RCSid_[] = "$Source: /tmp/mgrsrc/src/RCS/win_stack.c,v $$Revision: 4.2 $";
X
X/* push - pop window environment */
X
X#include "bitmap.h"
X#include "font.h"
X#include "defs.h"
X#include "window.h"
X#include "menu.h"
X#include "event.h"
X#include <stdio.h>
X
X#define S(x) (stack->x)
X
X/* push a window on the environment stack */
X
Xint
Xwin_push(win,level)
Xregister WINDOW *win; /* window to push */
Xint level; /* what things to push */
X {
X register WINDOW *stack; /* pushed window goes here */
X register int i,j;
X char *malloc(), *save_line(), *print_stack();
X struct menu_state *menu_copy();
X
X if ((stack = (WINDOW *) malloc(sizeof(WINDOW))) == (WINDOW *) 0)
X return(-1);
X
X if (level == 0)
X level = P_DEFAULT;
X
X#ifdef DEBUG
X dprintf(P)(stderr,"%s Stacking %s\n",
X W(tty),print_stack(level));
X#endif
X
X /* setup stacked window */
X
X *stack = *win; /* structure assignment */
X W(stack) = stack;
X
X /* bcopy(win,stack,sizeof(WINDOW)); */
X
X for(j=0;j<MAXMENU;j++)
X S(menus)[j] = (struct menu_state *) 0;
X for(j=0;j<MAXEVENTS;j++)
X S(events)[j] = (char *) 0;
X for(j=0;j<MAXBITMAPS;j++)
X S(bitmaps)[j] = (BITMAP *) 0;
X S(save) = (BITMAP *) 0;
X S(clip_list) = (char *) 0;
X
X /* setup each pushed item */
X
X for(i=1;i!=P_MAX;i <<= 1)
X switch (level&i) {
X case P_MENU: /* save the menus */
X#ifdef DEBUG
X dprintf(P)(stderr," menus ");
X#endif
X for(j=0;j<MAXMENU;j++)
X if (W(menus)[j] && (level&P_CLEAR)) {
X S(menus)[j] = W(menus)[j];
X W(menus)[j] = (struct menu_state *) 0;
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X else if (W(menus)[j]) {
X S(menus)[j] = menu_copy(W(menus)[j]);
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X#ifdef DEBUG
X dprintf(P)(stderr,"\n");
X#endif
X break;
X case P_EVENT: /* save the events */
X
X#ifdef DEBUG
X dprintf(P)(stderr," events ");
X#endif
X if (IS_EVENT(win,EVENT_STACK))
X EVENT_SET_MASK(win,EVENT_STFLAG);
X
X if (level&P_CLEAR)
X W(event_mask) = IS_EVENT(win,EVENT_STFLAG);
X else
X EVENT_CLEAR_MASK(win,EVENT_STACK);
X
X for(j=0;j<MAXEVENTS;j++)
X if (W(events)[j] && (level&P_CLEAR)) {
X S(events)[j] = W(events)[j];
X W(events)[j] = (char *) 0;
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X else if (W(events)[j]) {
X S(events)[j] = save_line(W(events)[j]);
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X#ifdef DEBUG
X dprintf(P)(stderr,"\n");
X
X#endif
X break;
X case P_BITMAP: /* save the bitmaps */
X#ifdef DEBUG
X dprintf(P)(stderr," bitmaps ");
X#endif
X for(j=0;j<MAXBITMAPS;j++)
X if (W(bitmaps)[j] && level&P_CLEAR) {
X S(bitmaps)[j] = W(bitmaps)[j];
X W(bitmaps)[j] = (BITMAP *) 0;
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X else if (W(bitmaps)[j]) {
X S(bitmaps)[j] = bit_alloc(BIT_WIDE(W(bitmaps)[j]),
X BIT_HIGH(W(bitmaps)[j]),NULL_DATA,
X BIT_DEPTH(W(bitmaps)[j]));
X bit_blit(S(bitmaps)[j],0,0,BIT_WIDE(W(bitmaps)[j]),
X BIT_HIGH(W(bitmaps)[j]),BIT_SRC,W(bitmaps)[j],0,0);
X#ifdef DEBUG
X dprintf(P)(stderr,"%d ",j);
X#endif
X }
X#ifdef DEBUG
X dprintf(P)(stderr,"\n");
X#endif
X break;
X case P_WINDOW: /* save the bit image */
X#ifdef DEBUG
X dprintf(P)(stderr," window\n");
X#endif
X S(save) = bit_alloc(BIT_WIDE(W(border)),BIT_HIGH(W(border)),
X NULL_DATA,DEPTH);
X if (W(save) && !(W(flags)&W_ACTIVE))
X bit_blit(S(save),0,0,BIT_WIDE(W(save)),BIT_HIGH(W(save)),
X BIT_SRC,W(save),0,0);
X else
X bit_blit(S(save),0,0,BIT_WIDE(W(border)),BIT_HIGH(W(border)),
X BIT_SRC,W(border),0,0);
X break;
X case P_POSITION: /* save the window position */
X#ifdef DEBUG
X dprintf(P)(stderr," position\n");
X#endif
X S(esc)[1] = BIT_WIDE(W(border));
X S(esc)[2] = BIT_HIGH(W(border));
X break;
X case P_TEXT: /* save text region */
X if (level&P_CLEAR) {
X W(text).x = 0;
X W(text).y = 0;
X W(text).wide = 0;
X W(text).high = 0;
X }
X break;
X case P_MOUSE: /* save mouse position */
X#ifdef DEBUG
X dprintf(P)(stderr," mouse\n");
X#endif
X S(esc)[3] = mousex;
X S(esc)[4] = mousey;
X break;
X case P_FLAGS: /* save window flags */
X if (level&P_CLEAR) {
X W(flags) &= ~W_SAVE;
X W(flags) |= W_BACKGROUND;
X W(style) = NOCOLOR&BIT_SRC | GETCOLOR(BLACK);
X W(background) = NOCOLOR&W(background) | GETCOLOR(WHITE);
X if (win == active)
X border(win,SUM_BDR-1,1);
X else
X border(win,BLK_BDR,WH_BDR);
X }
X break;
X }
X
X S(code) = level;
X S(window) = (BITMAP *) 0;
X S(border) = (BITMAP *) 0;
X S(snarf) = (char *) 0;
X S(bitmap) = (BITMAP *) 0;
X return(level);
X }
X
X/* pop the window stack */
X
Xint
Xwin_pop(win)
XWINDOW *win; /* window to pop to */
X {
X register int i,j;
X register WINDOW *stack = W(stack); /* window to pop from */
X char *print_stack();
X
X if (stack == (WINDOW *) 0) {
X#ifdef DEBUG
X dprintf(P)(stderr," No environment to pop\n");
X#endif
X return(-1);
X }
X
X#ifdef DEBUG
X dprintf(P)(stderr,"%s popping %s\n",W(tty),print_stack(S(code)));
X#endif
X
X /* pop each item stacked */
X
X for(i=1;i!=P_MAX;i <<= 1)
X switch (S(code)&i) {
X case P_MENU: /* restore the menus */
X#ifdef DEBUG
X dprintf(P)(stderr," menus ");
X#endif
X W(menu[0]) = S(menu[0]);
X W(menu[1]) = S(menu[1]);
X for(j=0;j<MAXMENU;j++) {
X if (W(menus)[j]) {
X#ifdef DEBUG
X dprintf(P)(stderr,"d(%d) ",j);
X#endif
X menu_destroy(W(menus)[j]);
X }
X if (S(menus)[j]) {
X#ifdef DEBUG
X dprintf(P)(stderr,"r(%d) ",j);
X#endif
X W(menus)[j] = S(menus)[j];
X S(menus)[j] = (struct menu_state *) 0;
X }
X else
X W(menus)[j] = (struct menu_state *) 0;
X }
X#ifdef DEBUG
X dprintf(P)(stderr,"\n");
X#endif
X break;
X case P_EVENT: /* restore the events */
X
X#ifdef DEBUG
X dprintf(P)(stderr," events ");
X#endif
X for(j=0;j<MAXEVENTS;j++) {
X if (W(events)[j]) {
X#ifdef DEBUG
X dprintf(P)(stderr,"d(%d) ",j);
X#endif
X free(W(events)[j]);
X }
X W(events)[j] = S(events)[j];
X S(events)[j] = (char *) 0;
X }
X W(event_mask) = S(event_mask);
X#ifdef DEBUG
X dprintf(P)(stderr,"\n");
X#endif
X break;
X case P_CURSOR: /* restore the cursor position */
X W(x) = S(x);
X W(y) = S(y);
X W(gx) = S(gx);
X W(gy) = S(gy);
X break;
X case P_BITMAP: /* restore the bitmaps */
X for(j=0;j<MAXBITMAPS;j++) {
X if (W(bitmaps)[j])
X bit_destroy(W(bitmaps)[j]);
X W(bitmaps)[j] = S(bitmaps)[j];
X S(bitmaps)[j] = (BITMAP *) 0;
X }
X#ifdef DEBUG
X dprintf(P)(stderr," bitmaps\n");
X#endif
X break;
X case P_FONT: /* restore font */
X W(font) = S(font);
X break;
X case P_TEXT: /* restore text region */
X W(text) = S(text);
X break;
X case P_POSITION: /* restore the window position */
X if (win!= active)
X cursor_off();
X ACTIVE_OFF();
X expose(win);
X
X shape(S(x0),S(y0),S(esc)[1],S(esc)[2]);
X
X ACTIVE_ON();
X#ifdef DEBUG
X dprintf(P)(stderr," position\n");
X#endif
X break;
X case P_WINDOW: /* restore the window contents */
X if (W(save))
X bit_destroy(W(save));
X W(save) = bit_alloc(BIT_WIDE(W(border)),BIT_HIGH(W(border)),
X NULL_DATA,DEPTH);
X bit_blit(W(border),0,0,BIT_WIDE(S(save)),BIT_HIGH(S(save)),
X BIT_SRC,S(save),0,0);
X#ifdef DEBUG
X dprintf(P)(stderr," window\n");
X#endif
X break;
X case P_FLAGS: /* restore the window flags */
X W(op) = S(op);
X W(style) = S(style);
X W(background) = S(background);
X W(dup) = S(dup);
X W(flags) = (S(flags)&W_SAVE) | (W(flags)&(~W_SAVE));
X if (win == active)
X border(win,SUM_BDR-1,1);
X else
X border(win,BLK_BDR,WH_BDR);
X#ifdef DEBUG
X dprintf(P)(stderr," flags\n");
X#endif
X break;
X case P_MOUSE: /* save mouse position */
X#ifdef DEBUG
X dprintf(P)(stderr," mouse\n");
X#endif
X mousex =S(esc)[3] ;
X mousey =S(esc)[4] ;
X break;
X }
X#ifdef DEBUG
X dprintf(P)(stderr,"%s\n",S(stack)?"another stack":"no environments stacked");
X#endif
X W(stack) = S(stack);
X unlink_win(stack,0);
X
X return(0);
X }
X
X/* in-implemented window stack manipulation */
X
Xwin_swap(win,x,y)
XWINDOW *win;
Xint x,y; /* entries on stack to swap 1=1st stack entry */
X {
X register int i,j;
X WINDOW *winx, *winy;
X }
END_OF_FILE
# end of 'src/win_stack.c'
fi
echo shar: End of archive 33 \(of 61\).
cp /dev/null ark33isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
55 56 57 58 59 60 61 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 61 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