[comp.sources.unix] v17i034: MGR, Bellcore window manager, Part33/61

rsalz@uunet.uu.net (Rich Salz) (01/26/89)

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
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.