home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume17 / mgr / part45 < prev    next >
Encoding:
Internet Message Format  |  1989-01-19  |  46.7 KB

  1. Subject:  v17i046:  MGR, Bellcore window manager, Part45/61
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4.  
  5. Submitted-by: Stephen A. Uhler <sau@bellcore.com>
  6. Posting-number: Volume 17, Issue 46
  7. Archive-name: mgr/part45
  8.  
  9.  
  10.  
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 45 (of 61)."
  19. # Contents:  src/oblit/blit.c
  20. #   icon/Uthinker icon/Utombstone icon/Uumbrella icon/Uveye1
  21. #   icon/Uveye2 icon/Uveye3 icon/Uweird_thing icon/Uyieldsign
  22. #   icon/eye/Ueye icon/eye/Ueye1 icon/eye/Ueye10 icon/eye/Ueye11
  23. #   icon/eye/Ueye12 icon/eye/Ueye13 icon/eye/Ueye14 icon/eye/Ueye15
  24. #   icon/eye/Ueye16 icon/eye/Ueye17 icon/eye/Ueye18 icon/eye/Ueye19
  25. #   icon/eye/Ueye2 icon/eye/Ueye20 icon/eye/Ueye21 icon/eye/Ueye22
  26. #   icon/eye/Ueye23 icon/eye/Ueye24 icon/eye/Ueye3 icon/eye/Ueye4
  27. #   icon/eye/Ueye5 icon/eye/Ueye6 icon/eye/Ueye7 icon/eye/Ueye8
  28. #   icon/eye/Ueye9 menu/Makefile menu/README misc/termcap
  29. # Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:54 1988
  30. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  31. if test -f 'icon/Uthinker' -a "${1}" != "-c" ; then 
  32.   echo shar: Will not clobber existing file \"'icon/Uthinker'\"
  33. else
  34. echo shar: Extracting \"'icon/Uthinker'\" \(210 characters\)
  35. sed "s/^X//" >'icon/Uthinker' <<'END_OF_FILE'
  36. Xbegin 644 thinker
  37. XM>GH@.B! /@   '\   !'@   HX   (.   !!P   (+   'P(  "4!   E%( 
  38. XM $I)   F(8  $O%  !^!(  @ B  (_P@ !P (  0 $  ( .P "&=7  0:JH 
  39. XL"#57 !XJJP U%56 :HJJ@%5A58!JL*K 56=50&K*JL!5=56 :JJO #__^   
  40. Xend
  41. END_OF_FILE
  42. # end of 'icon/Uthinker'
  43. fi
  44. if test -f 'icon/Utombstone' -a "${1}" != "-c" ; then 
  45.   echo shar: Will not clobber existing file \"'icon/Utombstone'\"
  46. else
  47. echo shar: Extracting \"'icon/Utombstone'\" \(212 characters\)
  48. sed "s/^X//" >'icon/Utombstone' <<'END_OF_FILE'
  49. Xbegin 644 tombstone
  50. XM>GH@0"!   _P  !P#@ !@ &  @  0 0  " (   0$   "!    @CX8^$(S&,
  51. XMQ",QC,1#X8^"0S&, D,QC )#-:Q"0    D    ) __\"0    D#__P)    "
  52. XL0/__ D    )    "0    D    )    "0    D    )    "0    G____X"
  53. Xend
  54. END_OF_FILE
  55. # end of 'icon/Utombstone'
  56. fi
  57. if test -f 'icon/Uumbrella' -a "${1}" != "-c" ; then 
  58.   echo shar: Will not clobber existing file \"'icon/Uumbrella'\"
  59. else
  60. echo shar: Extracting \"'icon/Uumbrella'\" \(211 characters\)
  61. sed "s/^X//" >'icon/Uumbrella' <<'END_OF_FILE'
  62. Xbegin 644 umbrella
  63. XM>GH@0"!   "     @   #_@  '__  '__\ #___@!___\ ____@/___X'___
  64. XM_!____P8X<.,$$"!!   @    (    "     @    (    "     @    (  
  65. XL  "     @    (    "     @    <    '(   !W    ?P   '\    ^   
  66. Xend
  67. END_OF_FILE
  68. # end of 'icon/Uumbrella'
  69. fi
  70. if test -f 'icon/Uveye1' -a "${1}" != "-c" ; then 
  71.   echo shar: Will not clobber existing file \"'icon/Uveye1'\"
  72. else
  73. echo shar: Extracting \"'icon/Uveye1'\" \(296 characters\)
  74. sed "s/^X//" >'icon/Uveye1' <<'END_OF_FILE'
  75. Xbegin 644 veye1
  76. XM>GH@4"!                     !_      . X     P &    !  !    "
  77. XM   @   $   0   (!5 (   ("J@(   0%50$  '@*^H"  ( 5[4"X!X +]H1
  78. XMX!XX5_4)X!T@+_H)X!T@5_42<#B0*^HD<#B0%50D<#D("JA(.'$(!5"$.'$,
  79. XM  "$.'#R  "$'. !@ !X'.  8<. '.  $B0 #\  $?X #\  " ( #\  " ( 
  80. X2!X  !^, !X   )* !X   'T 
  81. Xend
  82. END_OF_FILE
  83. # end of 'icon/Uveye1'
  84. fi
  85. if test -f 'icon/Uveye2' -a "${1}" != "-c" ; then 
  86.   echo shar: Will not clobber existing file \"'icon/Uveye2'\"
  87. else
  88. echo shar: Extracting \"'icon/Uveye2'\" \(208 characters\)
  89. sed "s/^X//" >'icon/Uveye2' <<'END_OF_FILE'
  90. Xbegin 644 veye2
  91. XM>GH@0"!   XX   $$   !=   #06  #"(8 ! 4!  @" ( 0  ! (!5 (" JH
  92. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  93. XL$(  A!"  (0/  !X .'#@  2)   $B0  !(D   2)   (4(  $"!   _?@"$
  94. Xend
  95. END_OF_FILE
  96. # end of 'icon/Uveye2'
  97. fi
  98. if test -f 'icon/Uveye3' -a "${1}" != "-c" ; then 
  99.   echo shar: Will not clobber existing file \"'icon/Uveye3'\"
  100. else
  101. echo shar: Extracting \"'icon/Uveye3'\" \(208 characters\)
  102. sed "s/^X//" >'icon/Uveye3' <<'END_OF_FILE'
  103. Xbegin 644 veye3
  104. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  105. XMJ!..%501!"OL$017M!$$+]P1!%?T$00O_!"(5_004"OL"" 56 @ "J@$  50
  106. XL @  ( $  $  P &  " .   0\   "2    D@   )]@  "@V  ! "0  __L!0
  107. Xend
  108. END_OF_FILE
  109. # end of 'icon/Uveye3'
  110. fi
  111. if test -f 'icon/Uweird_thing' -a "${1}" != "-c" ; then 
  112.   echo shar: Will not clobber existing file \"'icon/Uweird_thing'\"
  113. else
  114. echo shar: Extracting \"'icon/Uweird_thing'\" \(214 characters\)
  115. sed "s/^X//" >'icon/Uweird_thing' <<'END_OF_FILE'
  116. Xbegin 644 weird_thing
  117. XM>GH@0"!  !YX  !AA@  @ $  0?@@ (  $ "!F! !$F2( 2H%2 %*92@!2?D
  118. XMH 4@!* %* 2@!2ODH 4L!* %* 2@!* %( A@!A 04 H($$F2" B*41 '"E#@
  119. XL  I0   *4   $D@  !0H   4*   %"@  !0H  'D)X &%"A@& ) &!_^?_C@
  120. Xend
  121. END_OF_FILE
  122. # end of 'icon/Uweird_thing'
  123. fi
  124. if test -f 'icon/Uyieldsign' -a "${1}" != "-c" ; then 
  125.   echo shar: Will not clobber existing file \"'icon/Uyieldsign'\"
  126. else
  127. echo shar: Extracting \"'icon/Uyieldsign'\" \(212 characters\)
  128. sed "s/^X//" >'icon/Uyieldsign' <<'END_OF_FILE'
  129. Xbegin 644 yieldsign
  130. XM>GH@0"! #___\#    Q    "@    8BOH\&(J"(AA2@B(4(N(B)"*"(B(B@B
  131. XM)!(ON\@0   ("   $ 0  " $   @ @  0 $  ( !  "  ( !  !  @  0 ( 
  132. XL " $   0"   $ @   @0   $(    \                              
  133. Xend
  134. END_OF_FILE
  135. # end of 'icon/Uyieldsign'
  136. fi
  137. if test -f 'icon/eye/Ueye' -a "${1}" != "-c" ; then 
  138.   echo shar: Will not clobber existing file \"'icon/eye/Ueye'\"
  139. else
  140. echo shar: Extracting \"'icon/eye/Ueye'\" \(210 characters\)
  141. sed "s/^X//" >'icon/eye/Ueye' <<'END_OF_FILE'
  142. Xbegin 644 eye
  143. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  144. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  145. XL D( ( $D $  V &  " .   0\   "2    D@   )]@  "@V  ! "0  __L!0
  146. Xend
  147. END_OF_FILE
  148. # end of 'icon/eye/Ueye'
  149. fi
  150. if test -f 'icon/eye/Ueye1' -a "${1}" != "-c" ; then 
  151.   echo shar: Will not clobber existing file \"'icon/eye/Ueye1'\"
  152. else
  153. echo shar: Extracting \"'icon/eye/Ueye1'\" \(211 characters\)
  154. sed "s/^X//" >'icon/eye/Ueye1' <<'END_OF_FILE'
  155. Xbegin 644 eye1
  156. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  157. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  158. XL D( ( $D $  V &  " .   0\   "2<   DX@  1 0  (NX  $ 0   _X !0
  159. Xend
  160. END_OF_FILE
  161. # end of 'icon/eye/Ueye1'
  162. fi
  163. if test -f 'icon/eye/Ueye10' -a "${1}" != "-c" ; then 
  164.   echo shar: Will not clobber existing file \"'icon/eye/Ueye10'\"
  165. else
  166. echo shar: Extracting \"'icon/eye/Ueye10'\" \(212 characters\)
  167. sed "s/^X//" >'icon/eye/Ueye10' <<'END_OF_FILE'
  168. Xbegin 644 eye10
  169. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  170. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  171. XL$(  A!"  (0/  !X /'#@  2)   $B0  "$D  ! I   /T(   "!    ?@"$
  172. Xend
  173. END_OF_FILE
  174. # end of 'icon/eye/Ueye10'
  175. fi
  176. if test -f 'icon/eye/Ueye11' -a "${1}" != "-c" ; then 
  177.   echo shar: Will not clobber existing file \"'icon/eye/Ueye11'\"
  178. else
  179. echo shar: Extracting \"'icon/eye/Ueye11'\" \(212 characters\)
  180. sed "s/^X//" >'icon/eye/Ueye11' <<'END_OF_FILE'
  181. Xbegin 644 eye11
  182. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  183. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  184. XL$(  A!"  (0/  !X /'#@  2)   $B0  !(D   A)   7J0  &'"   _?@"$
  185. Xend
  186. END_OF_FILE
  187. # end of 'icon/eye/Ueye11'
  188. fi
  189. if test -f 'icon/eye/Ueye12' -a "${1}" != "-c" ; then 
  190.   echo shar: Will not clobber existing file \"'icon/eye/Ueye12'\"
  191. else
  192. echo shar: Extracting \"'icon/eye/Ueye12'\" \(212 characters\)
  193. sed "s/^X//" >'icon/eye/Ueye12' <<'END_OF_FILE'
  194. Xbegin 644 eye12
  195. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  196. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  197. XL$(  A!"  (0/  !X /'#@  2)   $B0  !(D   2)   (20  $#"   _?@"$
  198. Xend
  199. END_OF_FILE
  200. # end of 'icon/eye/Ueye12'
  201. fi
  202. if test -f 'icon/eye/Ueye13' -a "${1}" != "-c" ; then 
  203.   echo shar: Will not clobber existing file \"'icon/eye/Ueye13'\"
  204. else
  205. echo shar: Extracting \"'icon/eye/Ueye13'\" \(212 characters\)
  206. sed "s/^X//" >'icon/eye/Ueye13' <<'END_OF_FILE'
  207. Xbegin 644 eye13
  208. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  209. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  210. XL! !"0 ( )( !@!L  ' $   /"   Y)   1R0  " B   =T0   @"   '_  @
  211. Xend
  212. END_OF_FILE
  213. # end of 'icon/eye/Ueye13'
  214. fi
  215. if test -f 'icon/eye/Ueye14' -a "${1}" != "-c" ; then 
  216.   echo shar: Will not clobber existing file \"'icon/eye/Ueye14'\"
  217. else
  218. echo shar: Extracting \"'icon/eye/Ueye14'\" \(212 characters\)
  219. sed "s/^X//" >'icon/eye/Ueye14' <<'END_OF_FILE'
  220. Xbegin 644 eye14
  221. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  222. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  223. XL! !"0 ( )( !@!L  ' $   /"   !)   8E,  )R(@ !!.(  ,4$   Y^  @
  224. Xend
  225. END_OF_FILE
  226. # end of 'icon/eye/Ueye14'
  227. fi
  228. if test -f 'icon/eye/Ueye15' -a "${1}" != "-c" ; then 
  229.   echo shar: Will not clobber existing file \"'icon/eye/Ueye15'\"
  230. else
  231. echo shar: Extracting \"'icon/eye/Ueye15'\" \(212 characters\)
  232. sed "s/^X//" >'icon/eye/Ueye15' <<'END_OF_FILE'
  233. Xbegin 644 eye15
  234. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  235. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  236. XL! !"0 ( )( !@!L  '!$   /R   !,@   .(   $!   -_P  $!   !_P  @
  237. Xend
  238. END_OF_FILE
  239. # end of 'icon/eye/Ueye15'
  240. fi
  241. if test -f 'icon/eye/Ueye16' -a "${1}" != "-c" ; then 
  242.   echo shar: Will not clobber existing file \"'icon/eye/Ueye16'\"
  243. else
  244. echo shar: Extracting \"'icon/eye/Ueye16'\" \(212 characters\)
  245. sed "s/^X//" >'icon/eye/Ueye16' <<'END_OF_FILE'
  246. Xbegin 644 eye16
  247. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  248. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  249. XL! !"0 ( )( !@!L  '($   ..    D@  !Q(   @*   /^@   0$   '_  @
  250. Xend
  251. END_OF_FILE
  252. # end of 'icon/eye/Ueye16'
  253. fi
  254. if test -f 'icon/eye/Ueye17' -a "${1}" != "-c" ; then 
  255.   echo shar: Will not clobber existing file \"'icon/eye/Ueye17'\"
  256. else
  257. echo shar: Extracting \"'icon/eye/Ueye17'\" \(212 characters\)
  258. sed "s/^X//" >'icon/eye/Ueye17' <<'END_OF_FILE'
  259. Xbegin 644 eye17
  260. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  261. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  262. XL! !"0 ( )( !@!L  '($   ..   0D@  +3(  ",I   070  #("   ._@ @
  263. Xend
  264. END_OF_FILE
  265. # end of 'icon/eye/Ueye17'
  266. fi
  267. if test -f 'icon/eye/Ueye18' -a "${1}" != "-c" ; then 
  268.   echo shar: Will not clobber existing file \"'icon/eye/Ueye18'\"
  269. else
  270. echo shar: Extracting \"'icon/eye/Ueye18'\" \(212 characters\)
  271. sed "s/^X//" >'icon/eye/Ueye18' <<'END_OF_FILE'
  272. Xbegin 644 eye18
  273. XM>GH@0"!             #^   ' <  &  P "  " !   0 @  " 2H  0%5  
  274. XM$"JH  @WU 0(+VH2"#^T"0@OZ@2(/_0"2"_J!(@WU#D(&JA"$!50A! *H(P@
  275. XL! !"0 ( )( !@!L  '($   ..    F0   )D   "<@  'D(  " ^   _X  @
  276. Xend
  277. END_OF_FILE
  278. # end of 'icon/eye/Ueye18'
  279. fi
  280. if test -f 'icon/eye/Ueye19' -a "${1}" != "-c" ; then 
  281.   echo shar: Will not clobber existing file \"'icon/eye/Ueye19'\"
  282. else
  283. echo shar: Extracting \"'icon/eye/Ueye19'\" \(212 characters\)
  284. sed "s/^X//" >'icon/eye/Ueye19' <<'END_OF_FILE'
  285. Xbegin 644 eye19
  286. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  287. XM!#    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  288. XL#P  > #APX  $B0  !(D   2)   $D(  "&!  ! _@  /P             D
  289. Xend
  290. END_OF_FILE
  291. # end of 'icon/eye/Ueye19'
  292. fi
  293. if test -f 'icon/eye/Ueye2' -a "${1}" != "-c" ; then 
  294.   echo shar: Will not clobber existing file \"'icon/eye/Ueye2'\"
  295. else
  296. echo shar: Extracting \"'icon/eye/Ueye2'\" \(211 characters\)
  297. sed "s/^X//" >'icon/eye/Ueye2' <<'END_OF_FILE'
  298. Xbegin 644 eye2
  299. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  300. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  301. XL D( ( $D $  V &  " .   0\   "2   #*1@ !$3D  1R"  ""C   ?G !0
  302. Xend
  303. END_OF_FILE
  304. # end of 'icon/eye/Ueye2'
  305. fi
  306. if test -f 'icon/eye/Ueye20' -a "${1}" != "-c" ; then 
  307.   echo shar: Will not clobber existing file \"'icon/eye/Ueye20'\"
  308. else
  309. echo shar: Extracting \"'icon/eye/Ueye20'\" \(212 characters\)
  310. sed "s/^X//" >'icon/eye/Ueye20' <<'END_OF_FILE'
  311. Xbegin 644 eye20
  312. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  313. XM!C    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  314. XL#P  > #APX  $B0  !(D   29@  $J4  "%F  ! O   /P             D
  315. Xend
  316. END_OF_FILE
  317. # end of 'icon/eye/Ueye20'
  318. fi
  319. if test -f 'icon/eye/Ueye21' -a "${1}" != "-c" ; then 
  320.   echo shar: Will not clobber existing file \"'icon/eye/Ueye21'\"
  321. else
  322. echo shar: Extracting \"'icon/eye/Ueye21'\" \(212 characters\)
  323. sed "s/^X//" >'icon/eye/Ueye21' <<'END_OF_FILE'
  324. Xbegin 644 eye21
  325. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  326. XM!C    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  327. XL#P  > #APX  $B0  !(D   2)   (20  $"D   _0@   'X            D
  328. Xend
  329. END_OF_FILE
  330. # end of 'icon/eye/Ueye21'
  331. fi
  332. if test -f 'icon/eye/Ueye22' -a "${1}" != "-c" ; then 
  333.   echo shar: Will not clobber existing file \"'icon/eye/Ueye22'\"
  334. else
  335. echo shar: Extracting \"'icon/eye/Ueye22'\" \(212 characters\)
  336. sed "s/^X//" >'icon/eye/Ueye22' <<'END_OF_FILE'
  337. Xbegin 644 eye22
  338. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  339. XM!C    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  340. XL#P  > #APX  $B0  !(D   A)   0*0  #]"    @0   'X            D
  341. Xend
  342. END_OF_FILE
  343. # end of 'icon/eye/Ueye22'
  344. fi
  345. if test -f 'icon/eye/Ueye23' -a "${1}" != "-c" ; then 
  346.   echo shar: Will not clobber existing file \"'icon/eye/Ueye23'\"
  347. else
  348. echo shar: Extracting \"'icon/eye/Ueye23'\" \(212 characters\)
  349. sed "s/^X//" >'icon/eye/Ueye23' <<'END_OF_FILE'
  350. Xbegin 644 eye23
  351. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  352. XM!C    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  353. XL#P  > #APX  $B0  !(D   S)   4J0  #-"   >@0   'X            D
  354. Xend
  355. END_OF_FILE
  356. # end of 'icon/eye/Ueye23'
  357. fi
  358. if test -f 'icon/eye/Ueye24' -a "${1}" != "-c" ; then 
  359.   echo shar: Will not clobber existing file \"'icon/eye/Ueye24'\"
  360. else
  361. echo shar: Extracting \"'icon/eye/Ueye24'\" \(212 characters\)
  362. sed "s/^X//" >'icon/eye/Ueye24' <<'END_OF_FILE'
  363. Xbegin 644 eye24
  364. XM>GH@0"!   ?P   X#@  P &  0  0 (  " $   0"   " @   @0   $,   
  365. XM!C    90   %8    V    ,@   "$   !!    0(   (&   #!0  !02   D
  366. XL#P  > #APX  $B0  !(D   2)   $B0  !):   AI0  /_\            D
  367. Xend
  368. END_OF_FILE
  369. # end of 'icon/eye/Ueye24'
  370. fi
  371. if test -f 'icon/eye/Ueye3' -a "${1}" != "-c" ; then 
  372.   echo shar: Will not clobber existing file \"'icon/eye/Ueye3'\"
  373. else
  374. echo shar: Extracting \"'icon/eye/Ueye3'\" \(211 characters\)
  375. sed "s/^X//" >'icon/eye/Ueye3' <<'END_OF_FILE'
  376. Xbegin 644 eye3
  377. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  378. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  379. XL D( ( $D $  V &  "(.   3\   $R   !'    @(   /^P   ("   #_@!0
  380. Xend
  381. END_OF_FILE
  382. # end of 'icon/eye/Ueye3'
  383. fi
  384. if test -f 'icon/eye/Ueye4' -a "${1}" != "-c" ; then 
  385.   echo shar: Will not clobber existing file \"'icon/eye/Ueye4'\"
  386. else
  387. echo shar: Extracting \"'icon/eye/Ueye4'\" \(211 characters\)
  388. sed "s/^X//" >'icon/eye/Ueye4' <<'END_OF_FILE'
  389. Xbegin 644 eye4
  390. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  391. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  392. XL D( ( $D $  V &  "!.   <<   $D   !(X   4!   %_P  " @   _X !0
  393. Xend
  394. END_OF_FILE
  395. # end of 'icon/eye/Ueye4'
  396. fi
  397. if test -f 'icon/eye/Ueye5' -a "${1}" != "-c" ; then 
  398.   echo shar: Will not clobber existing file \"'icon/eye/Ueye5'\"
  399. else
  400. echo shar: Extracting \"'icon/eye/Ueye5'\" \(211 characters\)
  401. sed "s/^X//" >'icon/eye/Ueye5' <<'END_OF_FILE'
  402. Xbegin 644 eye5
  403. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  404. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  405. XL D( ( $D $  V &  "!.   <<   $D(  !,M   E,0  +H(  $!,  !_< !0
  406. Xend
  407. END_OF_FILE
  408. # end of 'icon/eye/Ueye5'
  409. fi
  410. if test -f 'icon/eye/Ueye6' -a "${1}" != "-c" ; then 
  411.   echo shar: Will not clobber existing file \"'icon/eye/Ueye6'\"
  412. else
  413. echo shar: Extracting \"'icon/eye/Ueye6'\" \(211 characters\)
  414. sed "s/^X//" >'icon/eye/Ueye6' <<'END_OF_FILE'
  415. Xbegin 644 eye6
  416. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (  5("  *
  417. XMJ!  %500("OL$$A7M!"0+]P1(%?T$D O_!$@5_00G"OL"$(56 @A"J@$,050
  418. XL D( ( $D $  V &  "!.   <<   )D   "9   !.0   0G@  'P$   '_ !0
  419. Xend
  420. END_OF_FILE
  421. # end of 'icon/eye/Ueye6'
  422. fi
  423. if test -f 'icon/eye/Ueye7' -a "${1}" != "-c" ; then 
  424.   echo shar: Will not clobber existing file \"'icon/eye/Ueye7'\"
  425. else
  426. echo shar: Extracting \"'icon/eye/Ueye7'\" \(211 characters\)
  427. sed "s/^X//" >'icon/eye/Ueye7' <<'END_OF_FILE'
  428. Xbegin 644 eye7
  429. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  430. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  431. XL$(  A!"  (0/  !X /'#@  2)   $B0  !(D   20@  (8$  $#^   _  "$
  432. Xend
  433. END_OF_FILE
  434. # end of 'icon/eye/Ueye7'
  435. fi
  436. if test -f 'icon/eye/Ueye8' -a "${1}" != "-c" ; then 
  437.   echo shar: Will not clobber existing file \"'icon/eye/Ueye8'\"
  438. else
  439. echo shar: Extracting \"'icon/eye/Ueye8'\" \(211 characters\)
  440. sed "s/^X//" >'icon/eye/Ueye8' <<'END_OF_FILE'
  441. Xbegin 644 eye8
  442. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  443. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  444. XL$(  A!"  (0/  !X /'#@  2)   $B0  !(D   20@  $KT  "'#   _?@"$
  445. Xend
  446. END_OF_FILE
  447. # end of 'icon/eye/Ueye8'
  448. fi
  449. if test -f 'icon/eye/Ueye9' -a "${1}" != "-c" ; then 
  450.   echo shar: Will not clobber existing file \"'icon/eye/Ueye9'\"
  451. else
  452. echo shar: Extracting \"'icon/eye/Ueye9'\" \(211 characters\)
  453. sed "s/^X//" >'icon/eye/Ueye9' <<'END_OF_FILE'
  454. Xbegin 644 eye9
  455. XM>GH@0"!             !_   #@.  #  8 !  !  @  ( 0  ! (!5 (" JH
  456. XM"! 55 0@*^H"(%>U D0OVA%(5_4)2"_Z"217]1(2*^HD$A54) D*J$@0A5"$
  457. XL$(  A!"  (0/  !X /'#@  2)   $B0  !(D   A)   0,(  #^!    ?@"$
  458. Xend
  459. END_OF_FILE
  460. # end of 'icon/eye/Ueye9'
  461. fi
  462. if test -f 'menu/Makefile' -a "${1}" != "-c" ; then 
  463.   echo shar: Will not clobber existing file \"'menu/Makefile'\"
  464. else
  465. echo shar: Extracting \"'menu/Makefile'\" \(243 characters\)
  466. sed "s/^X//" >'menu/Makefile' <<'END_OF_FILE'
  467. X# makefile for demos 
  468. X
  469. X#INSDIR= /usr/mgr/bin
  470. X
  471. XMENUS= mail_menu more_menu shell_menu vi_menu
  472. XSTART = .
  473. X
  474. Xall small:    $(ALL)
  475. X
  476. Xsmallinstall:
  477. X
  478. Xinstall:
  479. X
  480. Xclean clobber:
  481. X
  482. Xlist:
  483. X    @for i in Makefile README $(MENUS); do \
  484. X        echo "${START}/$$i"; \
  485. X    done    
  486. END_OF_FILE
  487. # end of 'menu/Makefile'
  488. fi
  489. if test -f 'menu/README' -a "${1}" != "-c" ; then 
  490.   echo shar: Will not clobber existing file \"'menu/README'\"
  491. else
  492. echo shar: Extracting \"'menu/README'\" \(175 characters\)
  493. sed "s/^X//" >'menu/README' <<'END_OF_FILE'
  494. XFiles in this directory contain mgr menus.  The menus are loaded with
  495. Xthe "menu" command.   The <name>.out files are pre-compiled menus.  
  496. XThe are loaded via "cat <name>.out"
  497. END_OF_FILE
  498. # end of 'menu/README'
  499. fi
  500. if test -f 'misc/termcap' -a "${1}" != "-c" ; then 
  501.   echo shar: Will not clobber existing file \"'misc/termcap'\"
  502. else
  503. echo shar: Extracting \"'misc/termcap'\" \(273 characters\)
  504. sed "s/^X//" >'misc/termcap' <<'END_OF_FILE'
  505. Xpx|mgr|SAU winow manager teminal emulator:\
  506. X    :am:li#24:co#80:bs:cl=^L:ce=\Ec:cd=\EC:\
  507. X    :cm=\E%r%d,%dM:cs=\E%d,%dt:\
  508. X    :al=\Ea:dl=\Ed:ta=^I:\
  509. X    :AL=\E%da:DL=\E%dd: \
  510. X    :ic=\EA:dc=\EE:\
  511. X    :up=\Eu:do=\Ef:nd=\Er:\
  512. X    :so=\Ei:se=\En:vs=\EV:ve=\Ev:\
  513. X    :ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:
  514. END_OF_FILE
  515. # end of 'misc/termcap'
  516. fi
  517. if test -f 'src/oblit/blit.c' -a "${1}" != "-c" ; then 
  518.   echo shar: Will not clobber existing file \"'src/oblit/blit.c'\"
  519. else
  520. echo shar: Extracting \"'src/oblit/blit.c'\" \(26880 characters\)
  521. sed "s/^X//" >'src/oblit/blit.c' <<'END_OF_FILE'
  522. X/*                        Copyright (c) 1987 Bellcore
  523. X *                            All Rights Reserved
  524. X *       Permission is granted to copy or use this program, EXCEPT that it
  525. X *       may not be sold for profit, the copyright notice must be reproduced
  526. X *       on copies, and credit should be given to Bellcore where it is due.
  527. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  528. X */
  529. X/*    $Header: blit.c,v 4.1 88/06/21 13:07:59 bianchi Exp $
  530. X    $Source: /tmp/mgrsrc/src/oblit/RCS/blit.c,v $
  531. X*/
  532. Xstatic char    RCSid_[] = "$Source: /tmp/mgrsrc/src/oblit/RCS/blit.c,v $$Revision: 4.1 $";
  533. X
  534. X/*  SUN-2 bitblit code */
  535. X
  536. X#include "bitmap.h"
  537. X
  538. X/*
  539. X * your standard unrolled-loop (I don't think this buys much)
  540. X */
  541. X
  542. X#define LOOP(n,s) {                \
  543. X    register int cnt;                \
  544. X    for (cnt=(n); cnt>=16; cnt-=16) {        \
  545. X       s;s;s;s;s;s;s;s;s;s;s;s;s;s;s;s;        \
  546. X       }                    \
  547. X    switch (cnt) {                \
  548. X       case 15: s; case 14: s; case 13: s; case 12: s;    \
  549. X       case 11: s; case 10: s; case  9: s; case  8: s;    \
  550. X       case  7: s; case  6: s; case  5: s; case  4: s;    \
  551. X       case  3: s; case  2: s; case  1: s;         \
  552. X       }                        \
  553. X    }
  554. X
  555. X/*
  556. X * A funny unrolled-loop: even and odd cases differ
  557. X */
  558. X
  559. X#define LOOP2(n,s1,s2) {                 \
  560. X    register int cnt;                    \
  561. X    for (cnt=(n); cnt>=16; cnt-=16)    {        \
  562. X       s1;s2;s1;s2;s1;s2;s1;s2;s1;s2;s1;s2;s1;s2;s1;s2;    \
  563. X       }                        \
  564. X    switch (cnt) {                    \
  565. X       case 15: s1;s2; case 13: s1;s2; case 11: s1;s2;     \
  566. X       case  9: s1;s2; case  7: s1;s2; case  5: s1;s2;    \
  567. X       case  3: s1;s2; case  1: s1;            \
  568. X          break;                    \
  569. X       case 14: s1;s2; case 12: s1;s2; case 10: s1;s2;    \
  570. X       case  8: s1;s2; case  6: s1;s2; case  4: s1;s2;    \
  571. X       case  2: s1;s2; case  0: src=srcx;        \
  572. X       }                        \
  573. X    }
  574. X
  575. X#define lsrc    ((unsigned long *)src)
  576. X#define lsrcx    ((unsigned long *)srcx)
  577. X
  578. X/*
  579. X *  General memory-to-memory rasterop
  580. X */
  581. X
  582. Xmem_rop(dest, dx, dy, width, height, func, source, sx, sy)
  583. Xint sx, sy, dx, dy;        /* properly clipped source and dest */
  584. Xint width, height;        /* rectangle to be transferred */
  585. XBITMAP *source, *dest;        /* bit map pointers */
  586. Xint func;            /* rasterop function */
  587. X
  588. X{
  589. X   int dwwidth = BIT_LINE(dest);
  590. X   int swwidth = 0;
  591. X   int xs, ys;
  592. X   int xd, yd;
  593. X   unsigned short *sbase = (unsigned short *) 0;
  594. X   unsigned short *dbase = (dest->data);
  595. X
  596. X   /* clipping, should already be done ? */
  597. X
  598. X   {
  599. X      register int t;
  600. X
  601. X      if (width < 0)
  602. X     dx += width, width = -width;
  603. X      if (height < 0)
  604. X     dy += height, height = -height;
  605. X      if (dx < 0) {
  606. X     if (source)
  607. X        sx -= dx;
  608. X     width += dx, dx = 0;
  609. X      }
  610. X
  611. X      if (dy < 0) {
  612. X     if (source)
  613. X        sy -= dy;
  614. X     height += dy, dy = 0;
  615. X      }
  616. X
  617. X      if (source) {
  618. X     if (sx < 0)
  619. X        dx -= sx, width += sx, sx = 0;
  620. X     if (sy < 0)
  621. X        dy -= sy, height += sy, sy = 0;
  622. X     if ((t = sx + width - source->wide) > 0)
  623. X        width -= t;
  624. X     if ((t = sy + height - source->high) > 0)
  625. X        height -= t;
  626. X
  627. X     swwidth = BIT_LINE(source);
  628. X     xs = sx + source->x0, ys = sy + source->y0;
  629. X     sbase = (source->data);
  630. X      }
  631. X
  632. X      if ((t = dx + width - dest->wide) > 0)
  633. X     width -= t;
  634. X      if ((t = dy + height - dest->high) > 0)
  635. X     height -= t;
  636. X
  637. X      if (width < 1 || height < 1)
  638. X     return;
  639. X   }
  640. X
  641. X   /*********/
  642. X
  643. X   xd = dx + dest->x0, yd = dy + dest->y0;
  644. X   func = OPCODE(func);
  645. X
  646. X   if (!source) {        /* no source bitmap */
  647. X
  648. X      register unsigned long *dst =
  649. X      (unsigned long *) (dbase + yd * dwwidth + (xd >> 4));
  650. X      register unsigned int mask1 =
  651. X      ((unsigned long) 0xFFFFFFFF) >> (xd & 15);
  652. X      register unsigned int h_cnt =
  653. X      ((xd + width - 1) - ((xd & ~15)) >> 5) + 1;
  654. X      register unsigned int mask2 =
  655. X      0xFFFFFFFF << (31 - (((xd + width - 1) - (xd & ~15)) & 31));
  656. X      register unsigned int d_incr =
  657. X      (dwwidth << 1) - (h_cnt << 2);
  658. X      register unsigned int v_cnt;
  659. X
  660. X      if (h_cnt > 1)        /* multi-line bitblit */
  661. X     switch (func) {    /* no source */
  662. X        case OPCODE(0):
  663. X        case OPCODE(~(DST | SRC)):
  664. X        case OPCODE(DST & ~SRC):
  665. X        case OPCODE(~SRC):    /* no source multi-word blit */
  666. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  667. X          *dst++ = *dst & ~mask1;
  668. X          LOOP((h_cnt) - 2, *dst++ = 0);
  669. X          *dst++ = *dst & ~mask2;
  670. X          (int) dst += d_incr;
  671. X           }
  672. X
  673. X           break;
  674. X        case OPCODE(~DST & SRC):
  675. X        case OPCODE(~DST):
  676. X        case OPCODE(DST ^ SRC):
  677. X        case OPCODE(~(DST & SRC)):    /* no source multi-word blit */
  678. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  679. X          *dst++ = *dst ^ mask1;
  680. X          LOOP((h_cnt) - 2, *dst++ = ~*dst);
  681. X          *dst++ = *dst ^ mask2;
  682. X          (int) dst += d_incr;
  683. X           }
  684. X
  685. X           break;
  686. X        case OPCODE(SRC):
  687. X        case OPCODE(~DST | SRC):
  688. X        case OPCODE(DST | SRC):
  689. X        case OPCODE(~0):    /* no source multi-word blit */
  690. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  691. X          *dst++ = ((*dst) | (mask1));
  692. X          LOOP((h_cnt) - 2, *dst++ = ~0);
  693. X          *dst++ = ((*dst) | (mask2));
  694. X          (int) dst += d_incr;
  695. X           }
  696. X
  697. X           break;
  698. X     }
  699. X
  700. X      else {            /* single line bit-blit */
  701. X     mask1 &= mask2;
  702. X     switch (func) {    /* no source */
  703. X        case OPCODE(0):
  704. X        case OPCODE(~(DST | SRC)):
  705. X        case OPCODE(DST & ~SRC):
  706. X        case OPCODE(~SRC):    /* no source single-word blit */
  707. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  708. X          *dst++ = *dst & ~mask1;
  709. X          (int) dst += d_incr;
  710. X           }
  711. X
  712. X           break;
  713. X        case OPCODE(~DST & SRC):
  714. X        case OPCODE(~DST):
  715. X        case OPCODE(DST ^ SRC):
  716. X        case OPCODE(~(DST & SRC)):    /* no source single-word blit */
  717. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  718. X          *dst++ = *dst ^ mask1;
  719. X          (int) dst += d_incr;
  720. X           }
  721. X
  722. X           break;
  723. X        case OPCODE(SRC):
  724. X        case OPCODE(~DST | SRC):
  725. X        case OPCODE(DST | SRC):
  726. X        case OPCODE(~0):    /* no source single-word blit */
  727. X           for (v_cnt = height; v_cnt > 0; v_cnt--) {
  728. X          *dst++ = ((*dst) | (mask1));
  729. X          (int) dst += d_incr;
  730. X           }
  731. X
  732. X           break;
  733. X     }
  734. X
  735. X      }
  736. X
  737. X   }
  738. X
  739. X   /* source (op) dest bitmap */
  740. X
  741. X   else {
  742. X      unsigned int lmask =
  743. X      0xFFFF >> (xd & 15);    /* mask for left edge */
  744. X      unsigned int h_cnt =
  745. X      ((xd + width - 1) >> 4) - (xd >> 4) + 1;    /* shorts in dest */
  746. X      unsigned int rmask =
  747. X      0xFFFF << (15 - ((xd + width - 1) & 15));    /* mask for right edge */
  748. X
  749. X      register unsigned short *src =
  750. X      sbase + ys * swwidth + (xs >> 4);    /* source */
  751. X      register unsigned short *srcx;    /* source alternate */
  752. X      register unsigned short *dst =
  753. X      dbase + yd * dwwidth + (xd >> 4);    /* destination */
  754. X      register unsigned int mask1, mask2;    /* masks */
  755. X      register unsigned int shift;    /* shift count */
  756. X      int s_incr, d_incr;    /* how to get line to line */
  757. X      int v_cnt;        /* number of lines */
  758. X
  759. X      if ((xs & 15) > (xd & 15))
  760. X     shift = 16 - (xs & 15) + (xd & 15);
  761. X      else
  762. X     shift = (xd & 15) - (xs & 15), src -= 1;
  763. X
  764. X      if (yd < ys)
  765. X     s_incr = swwidth, d_incr = dwwidth;    /* top to bottom */
  766. X      else
  767. X     s_incr = -swwidth, d_incr = -dwwidth,
  768. X        src += (height - 1) * swwidth,
  769. X        dst += (height - 1) * dwwidth;    /* bottom to top */
  770. X
  771. X      if (xd < xs) {        /* left to right */
  772. X     s_incr -= h_cnt + 1, d_incr -= h_cnt;
  773. X     if (h_cnt > 1) {
  774. X        mask1 = lmask, mask2 = rmask;
  775. X        {
  776. X           switch (func) {
  777. X          case OPCODE(~(DST | SRC)):    /* left->right multi-word blit */
  778. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  779. X            srcx = src;
  780. X            srcx++;
  781. X            *dst++ = ~(*dst | *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  782. X            LOOP2((h_cnt) - 2, *dst++ = ~(*dst | *lsrcx++ >> shift), *dst++ = ~(*dst | *lsrc++ >> shift));
  783. X            *dst++ = ~(*dst | *lsrc++ >> shift) & mask2 | *dst & ~mask2;
  784. X            src += s_incr;
  785. X            dst += d_incr;
  786. X             }
  787. X
  788. X             break;
  789. X          case OPCODE(DST & ~SRC):    /* left->right multi-word blit */
  790. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  791. X            srcx = src;
  792. X            srcx++;
  793. X            *dst++ = *dst & ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  794. X            LOOP2((h_cnt) - 2, *dst++ = *dst & ~*lsrcx++ >> shift, *dst++ = *dst & ~*lsrc++ >> shift);
  795. X            *dst++ = *dst & ~*lsrc++ >> shift & mask2 | *dst & ~mask2;
  796. X            src += s_incr;
  797. X            dst += d_incr;
  798. X             }
  799. X
  800. X             break;
  801. X          case OPCODE(~SRC):    /* left->right multi-word blit */
  802. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  803. X            srcx = src;
  804. X            srcx++;
  805. X            *dst++ = ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  806. X            LOOP2((h_cnt) - 2, *dst++ = ~*lsrcx++ >> shift, *dst++ = ~*lsrc++ >> shift);
  807. X            *dst++ = ~*lsrc++ >> shift & mask2 | *dst & ~mask2;
  808. X            src += s_incr;
  809. X            dst += d_incr;
  810. X             }
  811. X
  812. X             break;
  813. X          case OPCODE(~DST & SRC):    /* left->right multi-word blit */
  814. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  815. X            srcx = src;
  816. X            srcx++;
  817. X            *dst++ = ~*dst & *lsrc++ >> shift & mask1 | *dst & ~mask1;
  818. X            LOOP2((h_cnt) - 2, *dst++ = ~*dst & *lsrcx++ >> shift, *dst++ = ~*dst & *lsrc++ >> shift);
  819. X            *dst++ = ~*dst & *lsrc++ >> shift & mask2 | *dst & ~mask2;
  820. X            src += s_incr;
  821. X            dst += d_incr;
  822. X             }
  823. X
  824. X             break;
  825. X          case OPCODE(DST ^ SRC):    /* left->right multi-word blit */
  826. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  827. X            srcx = src;
  828. X            srcx++;
  829. X            *dst++ = *dst ^ *lsrc++ >> shift & mask1 | *dst & ~mask1;
  830. X            LOOP2((h_cnt) - 2, *dst++ = *dst ^ *lsrcx++ >> shift, *dst++ = *dst ^ *lsrc++ >> shift);
  831. X            *dst++ = *dst ^ *lsrc++ >> shift & mask2 | *dst & ~mask2;
  832. X            src += s_incr;
  833. X            dst += d_incr;
  834. X             }
  835. X
  836. X             break;
  837. X          case OPCODE(~(DST & SRC)):    /* left->right multi-word blit */
  838. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  839. X            srcx = src;
  840. X            srcx++;
  841. X            *dst++ = ~(*dst & *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  842. X            LOOP2((h_cnt) - 2, *dst++ = ~(*dst & *lsrcx++ >> shift), *dst++ = ~(*dst & *lsrc++ >> shift));
  843. X            *dst++ = ~(*dst & *lsrc++ >> shift) & mask2 | *dst & ~mask2;
  844. X            src += s_incr;
  845. X            dst += d_incr;
  846. X             }
  847. X
  848. X             break;
  849. X          case OPCODE(DST & SRC):    /* left->right multi-word blit */
  850. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  851. X            srcx = src;
  852. X            srcx++;
  853. X            *dst++ = *dst & *lsrc++ >> shift & mask1 | *dst & ~mask1;
  854. X            LOOP2((h_cnt) - 2, *dst++ = *dst & *lsrcx++ >> shift, *dst++ = *dst & *lsrc++ >> shift);
  855. X            *dst++ = *dst & *lsrc++ >> shift & mask2 | *dst & ~mask2;
  856. X            src += s_incr;
  857. X            dst += d_incr;
  858. X             }
  859. X
  860. X             break;
  861. X          case OPCODE(~(DST ^ SRC)):    /* left->right multi-word blit */
  862. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  863. X            srcx = src;
  864. X            srcx++;
  865. X            *dst++ = ~(*dst ^ *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  866. X            LOOP2((h_cnt) - 2, *dst++ = ~(*dst ^ *lsrcx++ >> shift), *dst++ = ~(*dst ^ *lsrc++ >> shift));
  867. X            *dst++ = ~(*dst ^ *lsrc++ >> shift) & mask2 | *dst & ~mask2;
  868. X            src += s_incr;
  869. X            dst += d_incr;
  870. X             }
  871. X
  872. X             break;
  873. X          case OPCODE(DST | ~SRC):    /* left->right multi-word blit */
  874. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  875. X            srcx = src;
  876. X            srcx++;
  877. X            *dst++ = *dst | ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  878. X            LOOP2((h_cnt) - 2, *dst++ = *dst | ~*lsrcx++ >> shift, *dst++ = *dst | ~*lsrc++ >> shift);
  879. X            *dst++ = *dst | ~*lsrc++ >> shift & mask2 | *dst & ~mask2;
  880. X            src += s_incr;
  881. X            dst += d_incr;
  882. X             }
  883. X
  884. X             break;
  885. X          case OPCODE(SRC):    /* left->right multi-word blit */
  886. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  887. X            srcx = src;
  888. X            srcx++;
  889. X            *dst++ = *lsrc++ >> shift & mask1 | *dst & ~mask1;
  890. X            LOOP2((h_cnt) - 2, *dst++ = *lsrcx++ >> shift, *dst++ = *lsrc++ >> shift);
  891. X            *dst++ = *lsrc++ >> shift & mask2 | *dst & ~mask2;
  892. X            src += s_incr;
  893. X            dst += d_incr;
  894. X             }
  895. X
  896. X             break;
  897. X          case OPCODE(~DST | SRC):    /* left->right multi-word blit */
  898. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  899. X            srcx = src;
  900. X            srcx++;
  901. X            *dst++ = ~*dst | *lsrc++ >> shift & mask1 | *dst & ~mask1;
  902. X            LOOP2((h_cnt) - 2, *dst++ = ~*dst | *lsrcx++ >> shift, *dst++ = ~*dst | *lsrc++ >> shift);
  903. X            *dst++ = ~*dst | *lsrc++ >> shift & mask2 | *dst & ~mask2;
  904. X            src += s_incr;
  905. X            dst += d_incr;
  906. X             }
  907. X
  908. X             break;
  909. X          case OPCODE(DST | SRC):    /* left->right multi-word blit */
  910. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  911. X            srcx = src;
  912. X            srcx++;
  913. X            *dst++ = *dst | *lsrc++ >> shift & mask1 | *dst & ~mask1;
  914. X            LOOP2((h_cnt) - 2, *dst++ = *dst | *lsrcx++ >> shift, *dst++ = *dst | *lsrc++ >> shift);
  915. X            *dst++ = *dst | *lsrc++ >> shift & mask2 | *dst & ~mask2;
  916. X            src += s_incr;
  917. X            dst += d_incr;
  918. X             }
  919. X
  920. X             break;    /* these should never be called - use no source case */
  921. X          case OPCODE(0):    /* left->right multi-word blit */
  922. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  923. X            *dst++ = 0 & mask1 | *dst & ~mask1;
  924. X            LOOP2((h_cnt) - 2, *dst++ = 0, *dst++ = 0);
  925. X            *dst++ = 0 & mask2 | *dst & ~mask2;
  926. X            dst += d_incr;
  927. X             }
  928. X
  929. X             break;
  930. X          case OPCODE(~DST):    /* left->right multi-word blit */
  931. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  932. X            *dst++ = ~*dst & mask1 | *dst & ~mask1;
  933. X            LOOP2((h_cnt) - 2, *dst++ = ~*dst, *dst++ = ~*dst);
  934. X            *dst++ = ~*dst & mask2 | *dst & ~mask2;
  935. X            dst += d_incr;
  936. X             }
  937. X
  938. X             break;
  939. X          case OPCODE(~0):    /* left->right multi-word blit */
  940. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  941. X            *dst++ = ~0 & mask1 | *dst & ~mask1;
  942. X            LOOP2((h_cnt) - 2, *dst++ = ~0, *dst++ = ~0);
  943. X            *dst++ = ~0 & mask2 | *dst & ~mask2;
  944. X            dst += d_incr;
  945. X             }
  946. X
  947. X             break;
  948. X          case OPCODE(DST):
  949. X             break;
  950. X           }
  951. X
  952. X        }
  953. X
  954. X     }
  955. X
  956. X     else {
  957. X        mask1 = lmask & rmask;
  958. X        {
  959. X           switch (func) {
  960. X          case OPCODE(~(DST | SRC)):    /* left->right single-word blit */
  961. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  962. X            srcx = src;
  963. X            srcx++;
  964. X            *dst++ = ~(*dst | *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  965. X            src += s_incr;
  966. X            dst += d_incr;
  967. X             }
  968. X
  969. X             break;
  970. X          case OPCODE(DST & ~SRC):    /* left->right single-word blit */
  971. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  972. X            srcx = src;
  973. X            srcx++;
  974. X            *dst++ = *dst & ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  975. X            src += s_incr;
  976. X            dst += d_incr;
  977. X             }
  978. X
  979. X             break;
  980. X          case OPCODE(~SRC):    /* left->right single-word blit */
  981. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  982. X            srcx = src;
  983. X            srcx++;
  984. X            *dst++ = ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  985. X            src += s_incr;
  986. X            dst += d_incr;
  987. X             }
  988. X
  989. X             break;
  990. X          case OPCODE(~DST & SRC):    /* left->right single-word blit */
  991. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  992. X            srcx = src;
  993. X            srcx++;
  994. X            *dst++ = ~*dst & *lsrc++ >> shift & mask1 | *dst & ~mask1;
  995. X            src += s_incr;
  996. X            dst += d_incr;
  997. X             }
  998. X
  999. X             break;
  1000. X          case OPCODE(DST ^ SRC):    /* left->right single-word blit */
  1001. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1002. X            srcx = src;
  1003. X            srcx++;
  1004. X            *dst++ = *dst ^ *lsrc++ >> shift & mask1 | *dst & ~mask1;
  1005. X            src += s_incr;
  1006. X            dst += d_incr;
  1007. X             }
  1008. X
  1009. X             break;
  1010. X          case OPCODE(~(DST & SRC)):    /* left->right single-word blit */
  1011. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1012. X            srcx = src;
  1013. X            srcx++;
  1014. X            *dst++ = ~(*dst & *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  1015. X            src += s_incr;
  1016. X            dst += d_incr;
  1017. X             }
  1018. X
  1019. X             break;
  1020. X          case OPCODE(DST & SRC):    /* left->right single-word blit */
  1021. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1022. X            srcx = src;
  1023. X            srcx++;
  1024. X            *dst++ = *dst & *lsrc++ >> shift & mask1 | *dst & ~mask1;
  1025. X            src += s_incr;
  1026. X            dst += d_incr;
  1027. X             }
  1028. X
  1029. X             break;
  1030. X          case OPCODE(~(DST ^ SRC)):    /* left->right single-word blit */
  1031. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1032. X            srcx = src;
  1033. X            srcx++;
  1034. X            *dst++ = ~(*dst ^ *lsrc++ >> shift) & mask1 | *dst & ~mask1;
  1035. X            src += s_incr;
  1036. X            dst += d_incr;
  1037. X             }
  1038. X
  1039. X             break;
  1040. X          case OPCODE(DST | ~SRC):    /* left->right single-word blit */
  1041. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1042. X            srcx = src;
  1043. X            srcx++;
  1044. X            *dst++ = *dst | ~*lsrc++ >> shift & mask1 | *dst & ~mask1;
  1045. X            src += s_incr;
  1046. X            dst += d_incr;
  1047. X             }
  1048. X
  1049. X             break;
  1050. X          case OPCODE(SRC):    /* left->right single-word blit */
  1051. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1052. X            srcx = src;
  1053. X            srcx++;
  1054. X            *dst++ = *lsrc++ >> shift & mask1 | *dst & ~mask1;
  1055. X            src += s_incr;
  1056. X            dst += d_incr;
  1057. X             }
  1058. X
  1059. X             break;
  1060. X          case OPCODE(~DST | SRC):    /* left->right single-word blit */
  1061. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1062. X            srcx = src;
  1063. X            srcx++;
  1064. X            *dst++ = ~*dst | *lsrc++ >> shift & mask1 | *dst & ~mask1;
  1065. X            src += s_incr;
  1066. X            dst += d_incr;
  1067. X             }
  1068. X
  1069. X             break;
  1070. X          case OPCODE(DST | SRC):    /* left->right single-word blit */
  1071. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1072. X            srcx = src;
  1073. X            srcx++;
  1074. X            *dst++ = *dst | *lsrc++ >> shift & mask1 | *dst & ~mask1;
  1075. X            src += s_incr;
  1076. X            dst += d_incr;
  1077. X             }
  1078. X
  1079. X             break;    /* these should never be called - use no source case */
  1080. X          case OPCODE(0):    /* left->right single-word blit */
  1081. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1082. X            *dst++ = 0 & mask1 | *dst & ~mask1;
  1083. X            dst += d_incr;
  1084. X             }
  1085. X
  1086. X             break;
  1087. X          case OPCODE(~DST):    /* left->right single-word blit */
  1088. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1089. X            *dst++ = ~*dst & mask1 | *dst & ~mask1;
  1090. X            dst += d_incr;
  1091. X             }
  1092. X
  1093. X             break;
  1094. X          case OPCODE(~0):    /* left->right single-word blit */
  1095. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1096. X            *dst++ = ~0 & mask1 | *dst & ~mask1;
  1097. X            dst += d_incr;
  1098. X             }
  1099. X
  1100. X             break;
  1101. X          case OPCODE(DST):
  1102. X             break;
  1103. X           }
  1104. X
  1105. X        }
  1106. X
  1107. X     }
  1108. X
  1109. X      }
  1110. X
  1111. X      else {            /* right to left */
  1112. X     s_incr += h_cnt + 1, d_incr += h_cnt;
  1113. X     src += h_cnt - 1, dst += h_cnt - 1;
  1114. X     if (h_cnt > 1) {
  1115. X        mask1 = rmask, mask2 = lmask;
  1116. X        {
  1117. X           switch (func) {
  1118. X          case OPCODE(~(DST | SRC)):    /* right->left multi-word blit */
  1119. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1120. X            srcx = src;
  1121. X            srcx--;
  1122. X            *dst-- = ~(*dst | *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1123. X            LOOP2((h_cnt) - 2, *dst-- = ~(*dst | *lsrcx-- >> shift), *dst-- = ~(*dst | *lsrc-- >> shift));
  1124. X            *dst-- = ~(*dst | *lsrc-- >> shift) & mask2 | *dst & ~mask2;
  1125. X            src += s_incr;
  1126. X            dst += d_incr;
  1127. X             }
  1128. X
  1129. X             break;
  1130. X          case OPCODE(DST & ~SRC):    /* right->left multi-word blit */
  1131. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1132. X            srcx = src;
  1133. X            srcx--;
  1134. X            *dst-- = *dst & ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1135. X            LOOP2((h_cnt) - 2, *dst-- = *dst & ~*lsrcx-- >> shift, *dst-- = *dst & ~*lsrc-- >> shift);
  1136. X            *dst-- = *dst & ~*lsrc-- >> shift & mask2 | *dst & ~mask2;
  1137. X            src += s_incr;
  1138. X            dst += d_incr;
  1139. X             }
  1140. X
  1141. X             break;
  1142. X          case OPCODE(~SRC):    /* right->left multi-word blit */
  1143. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1144. X            srcx = src;
  1145. X            srcx--;
  1146. X            *dst-- = ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1147. X            LOOP2((h_cnt) - 2, *dst-- = ~*lsrcx-- >> shift, *dst-- = ~*lsrc-- >> shift);
  1148. X            *dst-- = ~*lsrc-- >> shift & mask2 | *dst & ~mask2;
  1149. X            src += s_incr;
  1150. X            dst += d_incr;
  1151. X             }
  1152. X
  1153. X             break;
  1154. X          case OPCODE(~DST & SRC):    /* right->left multi-word blit */
  1155. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1156. X            srcx = src;
  1157. X            srcx--;
  1158. X            *dst-- = ~*dst & *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1159. X            LOOP2((h_cnt) - 2, *dst-- = ~*dst & *lsrcx-- >> shift, *dst-- = ~*dst & *lsrc-- >> shift);
  1160. X            *dst-- = ~*dst & *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1161. X            src += s_incr;
  1162. X            dst += d_incr;
  1163. X             }
  1164. X
  1165. X             break;
  1166. X          case OPCODE(DST ^ SRC):    /* right->left multi-word blit */
  1167. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1168. X            srcx = src;
  1169. X            srcx--;
  1170. X            *dst-- = *dst ^ *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1171. X            LOOP2((h_cnt) - 2, *dst-- = *dst ^ *lsrcx-- >> shift, *dst-- = *dst ^ *lsrc-- >> shift);
  1172. X            *dst-- = *dst ^ *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1173. X            src += s_incr;
  1174. X            dst += d_incr;
  1175. X             }
  1176. X
  1177. X             break;
  1178. X          case OPCODE(~(DST & SRC)):    /* right->left multi-word blit */
  1179. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1180. X            srcx = src;
  1181. X            srcx--;
  1182. X            *dst-- = ~(*dst & *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1183. X            LOOP2((h_cnt) - 2, *dst-- = ~(*dst & *lsrcx-- >> shift), *dst-- = ~(*dst & *lsrc-- >> shift));
  1184. X            *dst-- = ~(*dst & *lsrc-- >> shift) & mask2 | *dst & ~mask2;
  1185. X            src += s_incr;
  1186. X            dst += d_incr;
  1187. X             }
  1188. X
  1189. X             break;
  1190. X          case OPCODE(DST & SRC):    /* right->left multi-word blit */
  1191. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1192. X            srcx = src;
  1193. X            srcx--;
  1194. X            *dst-- = *dst & *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1195. X            LOOP2((h_cnt) - 2, *dst-- = *dst & *lsrcx-- >> shift, *dst-- = *dst & *lsrc-- >> shift);
  1196. X            *dst-- = *dst & *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1197. X            src += s_incr;
  1198. X            dst += d_incr;
  1199. X             }
  1200. X
  1201. X             break;
  1202. X          case OPCODE(~(DST ^ SRC)):    /* right->left multi-word blit */
  1203. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1204. X            srcx = src;
  1205. X            srcx--;
  1206. X            *dst-- = ~(*dst ^ *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1207. X            LOOP2((h_cnt) - 2, *dst-- = ~(*dst ^ *lsrcx-- >> shift), *dst-- = ~(*dst ^ *lsrc-- >> shift));
  1208. X            *dst-- = ~(*dst ^ *lsrc-- >> shift) & mask2 | *dst & ~mask2;
  1209. X            src += s_incr;
  1210. X            dst += d_incr;
  1211. X             }
  1212. X
  1213. X             break;
  1214. X          case OPCODE(DST | ~SRC):    /* right->left multi-word blit */
  1215. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1216. X            srcx = src;
  1217. X            srcx--;
  1218. X            *dst-- = *dst | ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1219. X            LOOP2((h_cnt) - 2, *dst-- = *dst | ~*lsrcx-- >> shift, *dst-- = *dst | ~*lsrc-- >> shift);
  1220. X            *dst-- = *dst | ~*lsrc-- >> shift & mask2 | *dst & ~mask2;
  1221. X            src += s_incr;
  1222. X            dst += d_incr;
  1223. X             }
  1224. X
  1225. X             break;
  1226. X          case OPCODE(SRC):    /* right->left multi-word blit */
  1227. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1228. X            srcx = src;
  1229. X            srcx--;
  1230. X            *dst-- = *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1231. X            LOOP2((h_cnt) - 2, *dst-- = *lsrcx-- >> shift, *dst-- = *lsrc-- >> shift);
  1232. X            *dst-- = *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1233. X            src += s_incr;
  1234. X            dst += d_incr;
  1235. X             }
  1236. X
  1237. X             break;
  1238. X          case OPCODE(~DST | SRC):    /* right->left multi-word blit */
  1239. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1240. X            srcx = src;
  1241. X            srcx--;
  1242. X            *dst-- = ~*dst | *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1243. X            LOOP2((h_cnt) - 2, *dst-- = ~*dst | *lsrcx-- >> shift, *dst-- = ~*dst | *lsrc-- >> shift);
  1244. X            *dst-- = ~*dst | *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1245. X            src += s_incr;
  1246. X            dst += d_incr;
  1247. X             }
  1248. X
  1249. X             break;
  1250. X          case OPCODE(DST | SRC):    /* right->left multi-word blit */
  1251. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1252. X            srcx = src;
  1253. X            srcx--;
  1254. X            *dst-- = *dst | *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1255. X            LOOP2((h_cnt) - 2, *dst-- = *dst | *lsrcx-- >> shift, *dst-- = *dst | *lsrc-- >> shift);
  1256. X            *dst-- = *dst | *lsrc-- >> shift & mask2 | *dst & ~mask2;
  1257. X            src += s_incr;
  1258. X            dst += d_incr;
  1259. X             }
  1260. X
  1261. X             break;    /* these should never be called - use no source case */
  1262. X          case OPCODE(0):    /* right->left multi-word blit */
  1263. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1264. X            *dst-- = 0 & mask1 | *dst & ~mask1;
  1265. X            LOOP2((h_cnt) - 2, *dst-- = 0, *dst-- = 0);
  1266. X            *dst-- = 0 & mask2 | *dst & ~mask2;
  1267. X            dst += d_incr;
  1268. X             }
  1269. X
  1270. X             break;
  1271. X          case OPCODE(~DST):    /* right->left multi-word blit */
  1272. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1273. X            *dst-- = ~*dst & mask1 | *dst & ~mask1;
  1274. X            LOOP2((h_cnt) - 2, *dst-- = ~*dst, *dst-- = ~*dst);
  1275. X            *dst-- = ~*dst & mask2 | *dst & ~mask2;
  1276. X            dst += d_incr;
  1277. X             }
  1278. X
  1279. X             break;
  1280. X          case OPCODE(~0):    /* right->left multi-word blit */
  1281. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1282. X            *dst-- = ~0 & mask1 | *dst & ~mask1;
  1283. X            LOOP2((h_cnt) - 2, *dst-- = ~0, *dst-- = ~0);
  1284. X            *dst-- = ~0 & mask2 | *dst & ~mask2;
  1285. X            dst += d_incr;
  1286. X             }
  1287. X
  1288. X             break;
  1289. X          case OPCODE(DST):
  1290. X             break;
  1291. X           }
  1292. X
  1293. X        }
  1294. X
  1295. X     }
  1296. X
  1297. X     else {
  1298. X        mask1 = lmask & rmask;
  1299. X        {
  1300. X           switch (func) {
  1301. X          case OPCODE(~(DST | SRC)):    /* right->left single-word blit */
  1302. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1303. X            srcx = src;
  1304. X            srcx--;
  1305. X            *dst-- = ~(*dst | *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1306. X            src += s_incr;
  1307. X            dst += d_incr;
  1308. X             }
  1309. X
  1310. X             break;
  1311. X          case OPCODE(DST & ~SRC):    /* right->left single-word blit */
  1312. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1313. X            srcx = src;
  1314. X            srcx--;
  1315. X            *dst-- = *dst & ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1316. X            src += s_incr;
  1317. X            dst += d_incr;
  1318. X             }
  1319. X
  1320. X             break;
  1321. X          case OPCODE(~SRC):    /* right->left single-word blit */
  1322. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1323. X            srcx = src;
  1324. X            srcx--;
  1325. X            *dst-- = ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1326. X            src += s_incr;
  1327. X            dst += d_incr;
  1328. X             }
  1329. X
  1330. X             break;
  1331. X          case OPCODE(~DST & SRC):    /* right->left single-word blit */
  1332. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1333. X            srcx = src;
  1334. X            srcx--;
  1335. X            *dst-- = ~*dst & *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1336. X            src += s_incr;
  1337. X            dst += d_incr;
  1338. X             }
  1339. X
  1340. X             break;
  1341. X          case OPCODE(DST ^ SRC):    /* right->left single-word blit */
  1342. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1343. X            srcx = src;
  1344. X            srcx--;
  1345. X            *dst-- = *dst ^ *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1346. X            src += s_incr;
  1347. X            dst += d_incr;
  1348. X             }
  1349. X
  1350. X             break;
  1351. X          case OPCODE(~(DST & SRC)):    /* right->left single-word blit */
  1352. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1353. X            srcx = src;
  1354. X            srcx--;
  1355. X            *dst-- = ~(*dst & *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1356. X            src += s_incr;
  1357. X            dst += d_incr;
  1358. X             }
  1359. X
  1360. X             break;
  1361. X          case OPCODE(DST & SRC):    /* right->left single-word blit */
  1362. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1363. X            srcx = src;
  1364. X            srcx--;
  1365. X            *dst-- = *dst & *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1366. X            src += s_incr;
  1367. X            dst += d_incr;
  1368. X             }
  1369. X
  1370. X             break;
  1371. X          case OPCODE(~(DST ^ SRC)):    /* right->left single-word blit */
  1372. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1373. X            srcx = src;
  1374. X            srcx--;
  1375. X            *dst-- = ~(*dst ^ *lsrc-- >> shift) & mask1 | *dst & ~mask1;
  1376. X            src += s_incr;
  1377. X            dst += d_incr;
  1378. X             }
  1379. X
  1380. X             break;
  1381. X          case OPCODE(DST | ~SRC):    /* right->left single-word blit */
  1382. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1383. X            srcx = src;
  1384. X            srcx--;
  1385. X            *dst-- = *dst | ~*lsrc-- >> shift & mask1 | *dst & ~mask1;
  1386. X            src += s_incr;
  1387. X            dst += d_incr;
  1388. X             }
  1389. X
  1390. X             break;
  1391. X          case OPCODE(SRC):    /* right->left single-word blit */
  1392. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1393. X            srcx = src;
  1394. X            srcx--;
  1395. X            *dst-- = *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1396. X            src += s_incr;
  1397. X            dst += d_incr;
  1398. X             }
  1399. X
  1400. X             break;
  1401. X          case OPCODE(~DST | SRC):    /* right->left single-word blit */
  1402. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1403. X            srcx = src;
  1404. X            srcx--;
  1405. X            *dst-- = ~*dst | *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1406. X            src += s_incr;
  1407. X            dst += d_incr;
  1408. X             }
  1409. X
  1410. X             break;
  1411. X          case OPCODE(DST | SRC):    /* right->left single-word blit */
  1412. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1413. X            srcx = src;
  1414. X            srcx--;
  1415. X            *dst-- = *dst | *lsrc-- >> shift & mask1 | *dst & ~mask1;
  1416. X            src += s_incr;
  1417. X            dst += d_incr;
  1418. X             }
  1419. X
  1420. X             break;    /* these should never be called - use no source case */
  1421. X          case OPCODE(0):    /* right->left single-word blit */
  1422. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1423. X            *dst-- = 0 & mask1 | *dst & ~mask1;
  1424. X            dst += d_incr;
  1425. X             }
  1426. X
  1427. X             break;
  1428. X          case OPCODE(~DST):    /* right->left single-word blit */
  1429. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1430. X            *dst-- = ~*dst & mask1 | *dst & ~mask1;
  1431. X            dst += d_incr;
  1432. X             }
  1433. X
  1434. X             break;
  1435. X          case OPCODE(~0):    /* right->left single-word blit */
  1436. X             for (v_cnt = height; v_cnt > 0; v_cnt--) {
  1437. X            *dst-- = ~0 & mask1 | *dst & ~mask1;
  1438. X            dst += d_incr;
  1439. X             }
  1440. X
  1441. X             break;
  1442. X          case OPCODE(DST):
  1443. X             break;
  1444. X           }
  1445. X
  1446. X        }
  1447. X
  1448. X     }
  1449. X
  1450. X      }
  1451. X
  1452. X   }
  1453. X
  1454. X}
  1455. END_OF_FILE
  1456. # end of 'src/oblit/blit.c'
  1457. fi
  1458. echo shar: End of archive 45 \(of 61\).
  1459. cp /dev/null ark45isdone
  1460. MISSING=""
  1461. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1462.     21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
  1463.     38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
  1464.     55 56 57 58 59 60 61 ; do
  1465.     if test ! -f ark${I}isdone ; then
  1466.     MISSING="${MISSING} ${I}"
  1467.     fi
  1468. done
  1469. if test "${MISSING}" = "" ; then
  1470.     echo You have unpacked all 61 archives.
  1471.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1472. else
  1473.     echo You still need to unpack the following archives:
  1474.     echo "        " ${MISSING}
  1475. fi
  1476. ##  End of shell archive.
  1477. exit 0
  1478.