home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume17 / mgr / part36 < prev    next >
Text File  |  1989-01-19  |  42KB  |  1,269 lines

  1. Subject:  v17i037:  MGR, Bellcore window manager, Part36/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 37
  7. Archive-name: mgr/part36
  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 36 (of 61)."
  19. # Contents:  demo/icon/mail_icons.h demo/misc/maze.c src/Makefile
  20. # Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:45 1988
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'demo/icon/mail_icons.h' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'demo/icon/mail_icons.h'\"
  24. else
  25. echo shar: Extracting \"'demo/icon/mail_icons.h'\" \(12881 characters\)
  26. sed "s/^X//" >'demo/icon/mail_icons.h' <<'END_OF_FILE'
  27. X/*                        Copyright (c) 1987 Bellcore
  28. X *                            All Rights Reserved
  29. X *       Permission is granted to copy or use this program, EXCEPT that it
  30. X *       may not be sold for profit, the copyright notice must be reproduced
  31. X *       on copies, and credit should be given to Bellcore where it is due.
  32. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  33. X */
  34. X/*    $Header: mail_icons.h,v 4.1 88/06/21 14:00:02 bianchi Exp $
  35. X    $Source: /tmp/mgrsrc/demo/icon/RCS/mail_icons.h,v $
  36. X*/
  37. Xstatic char    h_mail_icons_[] = "$Source: /tmp/mgrsrc/demo/icon/RCS/mail_icons.h,v $$Revision: 4.1 $";
  38. X
  39. X
  40. X/* icon: mbox_closed */
  41. X
  42. Xunsigned char mbox_closed_data[] = {
  43. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  44. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  45. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  46. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  47. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  48. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  49. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  50. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  51. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  52. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 
  53. X   0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x27, 0x00, 
  54. X   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x80, 0x00, 0x00, 0x00, 0x80, 
  55. X   0x00, 0x00, 0x30, 0x4e, 0x38, 0x00, 0x00, 0x80, 0x00, 0x00, 0x20, 0x46, 
  56. X   0x30, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x20, 0x45, 0x50, 0xa3, 0x90, 0x40, 
  57. X   0x00, 0x00, 0x3c, 0x44, 0x91, 0x11, 0x10, 0x40, 0x00, 0x00, 0x3c, 0x44, 
  58. X   0x91, 0x11, 0x10, 0x40, 0x00, 0x00, 0xe4, 0x44, 0x11, 0xf1, 0x10, 0x40, 
  59. X   0x00, 0x00, 0xe4, 0x44, 0x11, 0x11, 0x12, 0x40, 0x00, 0x00, 0x24, 0x44, 
  60. X   0x11, 0x11, 0x1c, 0x40, 0x00, 0x00, 0x24, 0x44, 0x11, 0x13, 0x80, 0x40, 
  61. X   0x00, 0x00, 0x24, 0x44, 0x11, 0x38, 0x01, 0xc0, 0x00, 0x00, 0x24, 0x44, 
  62. X   0x13, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x30, 0x44, 0x38, 0x00, 0x70, 0x00, 
  63. X   0x00, 0x00, 0x18, 0x4e, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x0c, 0x40, 
  64. X   0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0x0f, 0xc0, 0x00, 0x00, 
  65. X   0x00, 0x00, 0x03, 0x40, 0x78, 0x40, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc1, 
  66. X   0xc4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x24, 0x40, 0x00, 0x00, 
  67. X   0x00, 0x00, 0x00, 0x78, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  68. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 
  69. X   0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  70. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 
  71. X   0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 
  72. X   0xa4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x24, 0x40, 0x00, 0x00, 
  73. X   0x00, 0x00, 0x00, 0x2d, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 
  74. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x24, 0x43, 0x00, 0x00, 
  75. X   0x00, 0x00, 0x00, 0x05, 0xa4, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 
  76. X   0xe4, 0x6c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x64, 0xf0, 0x40, 0x00, 
  77. X   0x00, 0x00, 0x00, 0x20, 0x64, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  78. X   0x25, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 
  79. X   0x00, 0x00, 0x00, 0x00, 0x35, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  80. X   0x1e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
  81. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  82. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  83. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  84. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  85. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  86. X   };
  87. X
  88. Xstruct icon mbox_closed = {
  89. X   "mbox_closed",1,64,64,mbox_closed_data};
  90. X
  91. X
  92. X/* icon: mbox_full */
  93. X
  94. Xunsigned char mbox_full_data[] = {
  95. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  96. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  97. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  98. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  99. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  100. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  101. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  102. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  103. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  104. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 
  105. X   0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x37, 0x00, 
  106. X   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x80, 0x00, 0x00, 0x00, 0x80, 
  107. X   0x00, 0x00, 0x7f, 0x8e, 0x38, 0x00, 0x00, 0x80, 0x00, 0x3f, 0xff, 0xc6, 
  108. X   0x30, 0x40, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x45, 0x50, 0xa3, 0x90, 0x40, 
  109. X   0x00, 0x26, 0x41, 0xc4, 0x91, 0x11, 0x10, 0x40, 0x00, 0x20, 0xab, 0x44, 
  110. X   0x91, 0x11, 0x10, 0x40, 0x00, 0x10, 0x1c, 0xc4, 0x11, 0xf1, 0x10, 0x40, 
  111. X   0x00, 0x13, 0xe0, 0xc4, 0x11, 0x11, 0x12, 0x40, 0x00, 0x7c, 0x01, 0x44, 
  112. X   0x11, 0x11, 0x1c, 0x40, 0x00, 0x60, 0x02, 0x44, 0x11, 0x13, 0x80, 0x40, 
  113. X   0x00, 0x7f, 0xfc, 0x44, 0x11, 0x38, 0x01, 0xc0, 0x00, 0x40, 0x00, 0x44, 
  114. X   0x13, 0x80, 0x0f, 0x00, 0x00, 0x60, 0x00, 0x44, 0x38, 0x00, 0x70, 0x00, 
  115. X   0x00, 0x20, 0x03, 0xce, 0x00, 0x07, 0x80, 0x00, 0x00, 0x20, 0x0e, 0x40, 
  116. X   0x00, 0x78, 0x00, 0x00, 0x00, 0x20, 0xf6, 0x40, 0x0f, 0xc0, 0x00, 0x00, 
  117. X   0x00, 0x27, 0x83, 0x40, 0x78, 0x40, 0x00, 0x00, 0x00, 0x38, 0x01, 0xc1, 
  118. X   0xc4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x24, 0x40, 0x00, 0x00, 
  119. X   0x00, 0x00, 0x00, 0x78, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  120. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 
  121. X   0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  122. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 
  123. X   0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 
  124. X   0xa4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x24, 0x40, 0x00, 0x00, 
  125. X   0x00, 0x00, 0x00, 0x2d, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 
  126. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x24, 0x43, 0x00, 0x00, 
  127. X   0x00, 0x00, 0x00, 0x05, 0xa4, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 
  128. X   0xe4, 0x6c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x64, 0xf0, 0x40, 0x00, 
  129. X   0x00, 0x00, 0x00, 0x20, 0x64, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  130. X   0x25, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 
  131. X   0x00, 0x00, 0x00, 0x00, 0x35, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  132. X   0x1e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
  133. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  134. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  135. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  136. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  137. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  138. X   };
  139. X
  140. Xstruct icon mbox_full = {
  141. X   "mbox_full",1,64,64,mbox_full_data};
  142. X
  143. X
  144. X/* icon: mbox_open */
  145. X
  146. Xunsigned char mbox_open_data[] = {
  147. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  148. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  149. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  150. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  151. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  152. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  153. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  154. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  155. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  156. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 
  157. X   0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x27, 0x00, 
  158. X   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2d, 0x80, 0x00, 0x00, 0x00, 0x80, 
  159. X   0x00, 0x00, 0x3a, 0x8e, 0x38, 0x00, 0x00, 0x80, 0x00, 0x00, 0x35, 0x46, 
  160. X   0x30, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x3a, 0xc5, 0x50, 0xa3, 0x90, 0x40, 
  161. X   0x00, 0x00, 0x35, 0x44, 0x91, 0x11, 0x10, 0x40, 0x00, 0x00, 0x3a, 0xc4, 
  162. X   0x91, 0x11, 0x10, 0x40, 0x00, 0x00, 0x35, 0x44, 0x11, 0xf1, 0x10, 0x40, 
  163. X   0x00, 0x00, 0x3a, 0xc4, 0x11, 0x11, 0x12, 0x40, 0x00, 0x00, 0x35, 0x44, 
  164. X   0x11, 0x11, 0x1c, 0x40, 0x00, 0x00, 0x3a, 0xc4, 0x11, 0x13, 0x80, 0x40, 
  165. X   0x00, 0x00, 0x35, 0x44, 0x11, 0x38, 0x01, 0xc0, 0x00, 0x00, 0x3a, 0xc4, 
  166. X   0x13, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x35, 0x44, 0x38, 0x00, 0x70, 0x00, 
  167. X   0x00, 0x00, 0x1a, 0xce, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x4d, 0x40, 
  168. X   0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xc0, 0x0f, 0xc0, 0x00, 0x00, 
  169. X   0x00, 0x00, 0xb3, 0x40, 0x78, 0x40, 0x00, 0x00, 0x00, 0x01, 0x99, 0xc1, 
  170. X   0xc4, 0x40, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x86, 0x24, 0x40, 0x00, 0x00, 
  171. X   0x00, 0x03, 0x06, 0x78, 0x24, 0x40, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 
  172. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x06, 0x01, 0x80, 0x24, 0x40, 0x00, 0x00, 
  173. X   0x00, 0x04, 0x01, 0x80, 0x24, 0x40, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x80, 
  174. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x24, 0x40, 0x00, 0x00, 
  175. X   0x00, 0x08, 0x03, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x29, 
  176. X   0xa4, 0x40, 0x00, 0x00, 0x00, 0x04, 0x06, 0x19, 0x24, 0x40, 0x00, 0x00, 
  177. X   0x00, 0x06, 0x0c, 0x2d, 0x24, 0x40, 0x00, 0x00, 0x00, 0x03, 0x38, 0x77, 
  178. X   0x24, 0x40, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0x24, 0x43, 0x00, 0x00, 
  179. X   0x00, 0x00, 0x00, 0x05, 0xa4, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 
  180. X   0xe4, 0x6c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x64, 0xf0, 0x40, 0x00, 
  181. X   0x00, 0x00, 0x00, 0x20, 0x64, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  182. X   0x25, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 
  183. X   0x00, 0x00, 0x00, 0x00, 0x35, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  184. X   0x1e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
  185. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  186. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  187. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  188. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  189. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  190. X   };
  191. X
  192. Xstruct icon mbox_open = {
  193. X   "mbox_open",1,64,64,mbox_open_data};
  194. X
  195. X
  196. X/* icon: mbox_zip */
  197. X
  198. Xunsigned char mbox_zip_data[] = {
  199. X   0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf8, 0x00, 
  200. X   0x00, 0x00, 0x0f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x00, 
  201. X   0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 
  202. X   0x00, 0x03, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00, 
  203. X   0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 
  204. X   0x00, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xe0, 
  205. X   0x00, 0xff, 0xff, 0xff, 0xf0, 0x1e, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x21, 
  206. X   0x03, 0xff, 0x87, 0xff, 0xf8, 0x06, 0x07, 0xf8, 0x07, 0xff, 0xf8, 0x78, 
  207. X   0x07, 0x80, 0x07, 0xff, 0xfd, 0x80, 0x0e, 0x00, 0x07, 0xff, 0xfe, 0x00, 
  208. X   0x18, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 
  209. X   0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 
  210. X   0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 
  211. X   0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 
  212. X   0x00, 0x00, 0x7f, 0xdf, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9e, 0x00, 0x00, 
  213. X   0x00, 0x01, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x1a, 0x00, 0x00, 
  214. X   0x00, 0x07, 0xfc, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 
  215. X   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  216. X   0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 
  217. X   0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  218. X   0x00, 0x60, 0x30, 0x41, 0x98, 0x00, 0x20, 0x70, 0x70, 0xe1, 0x98, 0x04, 
  219. X   0x20, 0x78, 0xf0, 0xe1, 0x98, 0x04, 0xf8, 0x7d, 0xf1, 0xb1, 0x98, 0x1f, 
  220. X   0x70, 0x6f, 0xb1, 0xb1, 0x98, 0x0e, 0x50, 0x67, 0x33, 0xf9, 0x98, 0x0a, 
  221. X   0x88, 0x62, 0x33, 0xf9, 0x98, 0x11, 0x00, 0x60, 0x37, 0x0d, 0x9f, 0xc0, 
  222. X   0x00, 0x60, 0x36, 0x0d, 0x9f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  223. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 
  224. X   0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 
  225. X   };
  226. X
  227. Xstruct icon mbox_zip = {
  228. X   "mbox_zip",1,48,52,mbox_zip_data};
  229. X
  230. END_OF_FILE
  231. # end of 'demo/icon/mail_icons.h'
  232. fi
  233. if test -f 'demo/misc/maze.c' -a "${1}" != "-c" ; then 
  234.   echo shar: Will not clobber existing file \"'demo/misc/maze.c'\"
  235. else
  236. echo shar: Extracting \"'demo/misc/maze.c'\" \(12767 characters\)
  237. sed "s/^X//" >'demo/misc/maze.c' <<'END_OF_FILE'
  238. X/*                        Copyright (c) 1987 Bellcore
  239. X *                            All Rights Reserved
  240. X *       Permission is granted to copy or use this program, EXCEPT that it
  241. X *       may not be sold for profit, the copyright notice must be reproduced
  242. X *       on copies, and credit should be given to Bellcore where it is due.
  243. X *       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  244. X */
  245. X/* mgr version */
  246. X/* ************************************************************ *\
  247. X
  248. X    maze.c        
  249. X
  250. X    Author: JGosling
  251. X    Information Technology Center
  252. X    Carnegie-Mellon University
  253. X
  254. X    (c) Copyright IBM Corporation, 1985
  255. X    Written: 28.July.1984
  256. X
  257. X
  258. X\* ************************************************************ */
  259. X
  260. Xstatic char rcsid[] = "$Header: maze.c,v 4.2 88/06/22 14:37:47 bianchi Exp $";
  261. Xstatic char IBMid[] = "(c) Copyright IBM Corporation, 1985";
  262. X
  263. X/* ************************************************************ */
  264. X/*                                */
  265. X/*    $Log:    maze.c,v $
  266. X * Revision 4.2  88/06/22  14:37:47  bianchi
  267. X * remove version.h
  268. X * 
  269. X * Revision 4.1  88/06/21  13:42:38  bianchi
  270. X * convert copyright notice to public distribution form
  271. X * 
  272. X * Revision 2.1  88/01/19  18:00:58  bianchi
  273. X * add ckmgrterm()
  274. X * 
  275. X * Revision 1.2  87/12/18  09:28:28  bianchi
  276. X * add copyright
  277. X * 
  278. X * Revision 1.1  87/07/27  16:29:27  bianchi
  279. X * initial version
  280. X * 
  281. X * Revision 1.2  85/01/29  02:42:30  peterson
  282. X * . Add standard header and copyright
  283. X *                             */
  284. X/*                                */
  285. X/* ************************************************************ */
  286. X
  287. X/* A simple maze wars game to test out user level graphics */
  288. X
  289. X#include <stdio.h>
  290. X#include "term.h"
  291. X#include <errno.h>
  292. X#include <sys/types.h>
  293. X#include <sys/socket.h>
  294. X#include <netinet/in.h>
  295. X#include <netdb.h>
  296. X#include <arpa/inet.h>
  297. X
  298. Xint errno;
  299. X
  300. Xint Redraw = 1;
  301. Xint debug = 0;
  302. Xint _func = -1;
  303. X
  304. X#define dprintf        if(debug)fprintf
  305. X#define SERVER    "mazewar"
  306. X
  307. X#define M_func(n)    (_func!=n ? (m_func(n),_func=n) : 0)
  308. X
  309. X#define MazeWidth 15
  310. X#define MazeHeight (sizeof MazeWalls/MazeWidth)
  311. Xchar MazeWalls[] = {
  312. X1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
  313. X1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
  314. X1,1,0,1,0,1,0,1,1,1,0,1,1,0,1,
  315. X1,0,0,1,1,1,0,0,1,0,0,0,0,1,1,
  316. X1,0,1,0,0,0,1,1,1,0,1,1,0,0,1,
  317. X1,0,1,0,1,1,0,0,0,0,1,0,1,0,1,
  318. X1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,
  319. X1,1,0,1,0,1,1,0,1,1,0,0,1,0,1,
  320. X1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,
  321. X1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,
  322. X1,0,0,0,1,0,0,0,0,0,1,1,0,1,1,
  323. X1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,
  324. X1,0,0,0,1,0,0,0,1,1,1,1,0,1,1,
  325. X1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,
  326. X1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
  327. X};
  328. X/*
  329. Xchar MazeWalls[] = {
  330. X1,1,1,1,1,1,1,1,1,1,
  331. X1,0,0,0,0,0,0,0,0,1,
  332. X1,0,1,1,1,0,1,1,0,1,
  333. X1,0,0,1,0,0,0,0,1,1,
  334. X1,1,1,1,0,1,1,0,0,1,
  335. X1,0,0,0,0,1,0,1,0,1,
  336. X1,1,0,1,1,1,0,0,0,1,
  337. X1,1,0,1,1,0,0,1,0,1,
  338. X1,0,0,0,0,0,1,1,0,1,
  339. X1,1,1,1,1,1,1,1,1,1,
  340. X};
  341. X*/
  342. X
  343. Xstruct DirectionOffsets {
  344. X    char left, right, forward, backward;
  345. X} DirectionOffsets[4] = {
  346. X    { -1, 1, -MazeWidth, MazeWidth }, /* facing up */
  347. X    { -MazeWidth, MazeWidth, 1, -1 }, /* facing right */
  348. X    { 1, -1, MazeWidth, -MazeWidth }, /* facing down */
  349. X    { MazeWidth, -MazeWidth, -1, 1 }  /* facing left */
  350. X};
  351. X
  352. Xstruct state {
  353. X    int id;
  354. X    short position, direction;
  355. X};
  356. X
  357. Xstruct state me, him;
  358. X#define HashSize 47
  359. Xstruct state others[HashSize];
  360. X
  361. Xstruct state *SlotsUsed[HashSize];
  362. Xint NOthers;
  363. X
  364. Xint direction = 1;
  365. Xint position = MazeWidth+1;
  366. Xint BogyDistance = 999;
  367. Xstruct state *BogyId;
  368. Xint BogyRDir;
  369. X
  370. Xint swidth, sheight;
  371. Xint fwidth, fheight;
  372. X
  373. Xint displaystate[MazeWidth+1];
  374. Xint MaxDepth;
  375. X
  376. Xcx, cy;
  377. X
  378. X#define ForwardFrom(p) ((p)+DirectionOffsets[direction].forward)
  379. X#define BackwardFrom(p) ((p)+DirectionOffsets[direction].backward)
  380. X#define LeftFrom(p) ((p)+DirectionOffsets[direction].left)
  381. X#define RightFrom(p) ((p)+DirectionOffsets[direction].right)
  382. X
  383. X#define At(p) MazeWalls[p]
  384. X#define AtForward(p) MazeWalls[ForwardFrom(p)]
  385. X#define AtBackward(p) MazeWalls[BackwardFrom(p)]
  386. X#define AtLeft(p) MazeWalls[LeftFrom(p)]
  387. X#define AtRight(p) MazeWalls[RightFrom(p)]
  388. X
  389. XDrawFrom (p, w, h)
  390. Xregister    p; {
  391. X    int     depth = 0;
  392. X    int     nmax = 0;
  393. X    if (BogyId) {
  394. X    DrawEye (BogyDistance, BogyRDir);
  395. X    BogyDistance = 9999;
  396. X    BogyId = 0;
  397. X    }
  398. X    M_func(B_INVERT);
  399. X    while (!At (p) || depth <= MaxDepth) {
  400. X    register    iw = w * 4 / 5;
  401. X    register    ih = h * 4 / 5;
  402. X    register    ThisMask = 0;
  403. X    register    DoMask;
  404. X    if (depth && BogyId == 0) {
  405. X        register struct state **f;
  406. X        for (f = SlotsUsed; *f; f++)
  407. X        if ((*f) -> position == p) {
  408. X            DrawEye (depth, BogyRDir = (*f) -> direction - direction);
  409. X            BogyDistance = depth;
  410. X            BogyId = *f;
  411. X        }
  412. X    }
  413. X    if (!At (p)) {
  414. X        nmax = depth;
  415. X        if (AtLeft (p))
  416. X        ThisMask |= 1 << 0;
  417. X        if (AtRight (p))
  418. X        ThisMask |= 1 << 1;
  419. X        if (AtForward (p))
  420. X        ThisMask |= 1 << 2;
  421. X        if (!AtLeft (p) && AtForward (LeftFrom (p)))
  422. X        ThisMask |= 1 << 3;
  423. X        if (!AtRight (p) && AtForward (RightFrom (p)))
  424. X        ThisMask |= 1 << 4;
  425. X        if (((AtRight (p) + AtForward (p) + AtRight (ForwardFrom (p))) & 1)
  426. X            || (AtRight (p) && AtForward (p)))
  427. X        ThisMask |= 1 << 5;
  428. X        if (((AtLeft (p) + AtForward (p) + AtLeft (ForwardFrom (p))) & 1)
  429. X            || (AtLeft (p) && AtForward (p)))
  430. X        ThisMask |= 1 << 6;
  431. X        p = ForwardFrom (p);
  432. X    }
  433. X    DoMask = depth > MaxDepth ? ThisMask : displaystate[depth] ^ ThisMask;
  434. X    displaystate[depth] = ThisMask;
  435. X
  436. X/****************************************************************/
  437. X
  438. X    if (DoMask & (1 << 0)) {
  439. X        m_go (cx - w + 1, cy - h + 1);
  440. X        m_draw (cx - iw, cy - ih);
  441. X        m_go (cx - w + 1, cy + h - 1);
  442. X        m_draw (cx - iw, cy + ih);
  443. X    }
  444. X    if (DoMask & (1 << 1)) {
  445. X        m_go (cx + w - 1, cy - h + 1);
  446. X        m_draw (cx + iw, cy - ih);
  447. X        m_go (cx + w - 1, cy + h - 1);
  448. X        m_draw (cx + iw, cy + ih);
  449. X    }
  450. X    if (DoMask & (1 << 2)) {
  451. X        m_go (cx - iw, cy - ih);
  452. X        m_draw (cx + iw, cy - ih);
  453. X        m_go (cx - iw, cy + ih);
  454. X        m_draw (cx + iw, cy + ih);
  455. X    }
  456. X    if (DoMask & (1 << 3)) {
  457. X        m_go (cx - w + 1, cy - ih);
  458. X        m_draw (cx - iw, cy - ih);
  459. X        m_go (cx - w + 1, cy + ih);
  460. X        m_draw (cx - iw, cy + ih);
  461. X    }
  462. X    if (DoMask & (1 << 4)) {
  463. X        m_go (cx + w - 1, cy - ih);
  464. X        m_draw (cx + iw, cy - ih);
  465. X        m_go (cx + w - 1, cy + ih);
  466. X        m_draw (cx + iw, cy + ih);
  467. X    }
  468. X    if (DoMask & (1 << 5)) {
  469. X        m_go (cx + iw, cy - ih);
  470. X        m_draw (cx + iw, cy + ih);
  471. X    }
  472. X    if (DoMask & (1 << 6)) {
  473. X        m_go (cx - iw, cy - ih);
  474. X        m_draw (cx - iw, cy + ih);
  475. X    }
  476. X    w = iw;
  477. X    h = ih;
  478. X    depth++;
  479. X    }
  480. X    MaxDepth = nmax;
  481. X}
  482. X
  483. XFlagRedraw () {
  484. X    Redraw++;
  485. X}
  486. X
  487. XCanSee (him) {
  488. X    register    p;
  489. X    register    depth = 1;
  490. X    for (p = position; ((p = ForwardFrom (p)), p>0 && p<MazeWidth*MazeWidth && !At (p)); depth++)
  491. X    if (p == him)
  492. X        return depth;
  493. X    return 0;
  494. X}
  495. X
  496. XDrawEye (depth, rdir) {
  497. X    register    r = cy < cx ? cy : cx;
  498. X    register    sr;
  499. X    while (--depth >= 0)
  500. X    r = r * 4 / 5;
  501. X    sr = r / 3;
  502. X    m_go (cx - sr, cy - r);
  503. X    m_draw (cx + sr, cy - r);
  504. X    m_draw (cx + r, cy - sr);
  505. X    m_draw (cx + r, cy + sr);
  506. X    m_draw (cx + sr, cy + r);
  507. X    m_draw (cx - sr, cy + r);
  508. X    m_draw (cx - r, cy + sr);
  509. X    m_draw (cx - r, cy - sr);
  510. X    m_draw (cx - sr, cy - r);
  511. X    while (rdir < 0)
  512. X    rdir += 4;
  513. X    switch (rdir) {
  514. X    case 2: 
  515. X        m_go (cx - r, cy);
  516. X        m_draw (cx, cy - sr);
  517. X        m_draw (cx + r, cy);
  518. X        m_draw (cx, cy + sr);
  519. X        m_draw (cx - r, cy);
  520. X        break;
  521. X    case 3: 
  522. X        m_go (cx - r, cy - sr);
  523. X        m_draw (cx, cy);
  524. X        m_draw (cx - r, cy + sr);
  525. X        break;
  526. X    case 1: 
  527. X        m_go (cx + r, cy - sr);
  528. X        m_draw (cx, cy);
  529. X        m_draw (cx + r, cy + sr);
  530. X        break;
  531. X    }
  532. X}
  533. X
  534. XDrawMaze (xo, yo, width, height) {
  535. X    register    x,
  536. X                y;
  537. X    M_func(B_OR);
  538. X    for (x = 0; x < MazeWidth; x++)
  539. X    for (y = 0; y < MazeHeight; y++)
  540. X        if (At (y * MazeWidth + x))
  541. X                m_bitwrite(xo + x * width / MazeWidth,
  542. X            yo + y * height / MazeHeight,
  543. X            (x + 1) * width / MazeWidth - x * width / MazeWidth ,
  544. X            (y + 1) * height / MazeHeight - y * height / MazeHeight );
  545. X}
  546. X
  547. XDrawAllArrows () {
  548. X    register struct state **f;
  549. X    DrawArrow (position,direction);
  550. X    for (f = SlotsUsed; *f; f++)
  551. X    DrawArrow ((*f)->position,(*f)->direction);
  552. X}
  553. X
  554. XDrawArrow (position, direction) {
  555. X    static char *arrow[4] = {
  556. X    "^", ">", "v", "<"
  557. X    };
  558. X    register    x = position % MazeWidth;
  559. X    register    y = position / MazeWidth;
  560. X    M_func(B_XOR);
  561. X    m_moveprint ((((x << 1) + 1) * swidth / MazeWidth) >> 1,
  562. X        ((((y << 1) + 1) * cy / MazeHeight) >> 1) + cy * 2 + (fheight>>1),
  563. X        arrow[direction]);
  564. X    m_movecursor(0,0);
  565. X}
  566. X
  567. XUpdateOther () {
  568. X    register struct state  *s = &others[him.id % HashSize];
  569. X    register dist;
  570. X    while (s -> id && s -> id != him.id) {
  571. X    s--;
  572. X    if (s < others)
  573. X        s = others + HashSize - 1;
  574. X    }
  575. X    M_func(B_XOR);
  576. X    if (s -> id == 0)
  577. X    SlotsUsed[NOthers++] = s;
  578. X    else {
  579. X    DrawArrow (s -> position, s -> direction);
  580. X    if (s == BogyId) {
  581. X        DrawEye (BogyDistance, BogyRDir);
  582. X        BogyDistance = 9999;
  583. X        BogyId = 0;
  584. X    }
  585. X    }
  586. X    if ((dist = CanSee (him.position)) && dist<BogyDistance) {
  587. X    BogyDistance = dist;
  588. X    BogyId = s;
  589. X    DrawEye (BogyDistance, BogyRDir = him.direction - direction);
  590. X    }
  591. X    *s = him;
  592. X    DrawArrow (s -> position, s -> direction);
  593. X}
  594. X
  595. Xstruct sockaddr_in  sin, sout;
  596. X
  597. Xint     RecvSocket,
  598. X        SendSocket,
  599. X        rmask;
  600. X
  601. Xmain( argc, argv )
  602. Xint    argc;
  603. Xchar    *argv[];
  604. X{
  605. X    char *getenv();
  606. X    int net;
  607. X    struct hostent *hp;
  608. X    struct servent *sp;
  609. X    struct netent  *np;
  610. X    char host[32];
  611. X    int id;
  612. X
  613. X    ckmgrterm( *argv );
  614. X
  615. X    if (getenv("DEBUG")) {
  616. X       debug++;
  617. X       }
  618. X
  619. X    m_setup(0);
  620. X    m_push(P_FLAGS|P_EVENT);
  621. X    m_setmode(M_ABS);
  622. X    m_setmode(M_OVERSTRIKE);
  623. X    M_func(B_SRC);
  624. X    m_setevent(REDRAW,"R");
  625. X    m_setevent(RESHAPE,"R");
  626. X    m_ttyset();
  627. X    m_setraw();
  628. X    m_setnoecho();
  629. X
  630. X    if ((RecvSocket = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
  631. X       perror("recv socket");
  632. X    if ((SendSocket = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
  633. X       perror("send socket");
  634. X
  635. X    rmask = (1 << fileno (m_termin)) | (1 << RecvSocket);
  636. X    gethostname(host,sizeof(host)-1);
  637. X    if ((hp=gethostbyname(host)) == NULL)
  638. X       perror("gethostbyname");
  639. X    if ((sp=getservbyname(SERVER,"udp")) ==0)
  640. X       perror("Unknown service");
  641. X    net = inet_netof(*((struct in_addr *)hp->h_addr));
  642. X    id = inet_lnaof(*((struct in_addr *)hp->h_addr));
  643. X
  644. X    sin.sin_family = hp->h_addrtype;
  645. X    if (sp>0) {
  646. X        sin.sin_port = sp->s_port;
  647. X        sin.sin_addr = inet_makeaddr(net,INADDR_ANY);
  648. X        setsockopt (RecvSocket, SOL_SOCKET, SO_REUSEADDR, 0, 0);
  649. X        sout = sin;
  650. X        }
  651. X
  652. X    dprintf(stderr,"host: %s port: %ld, network %d service: %s\n",
  653. X           hp->h_name, sp->s_port, net, sp->s_name);
  654. X    if (bind (RecvSocket, &sin, sizeof sin) < 0)
  655. X    perror ("bind");
  656. X
  657. X    me.id = (getpid () << 16) + id;
  658. X
  659. X    FlagRedraw ();
  660. X    while (1) {
  661. X        me.position = position;
  662. X        me.direction = direction;
  663. X        if (sp>0 && sendto (SendSocket, (char *) &me, sizeof me, 0, &sout, sizeof sout)
  664. X                        != sizeof me)
  665. X        perror ("sendto");
  666. X            else
  667. X                dprintf(stderr,"Sent %d %d %d\n",
  668. X                        me.id,me.direction,me.position);
  669. X    if (Redraw) {
  670. X            get_size(0,0,&swidth,&sheight);
  671. X            get_font(&fwidth,&fheight);
  672. X        M_func(B_SET);
  673. X        cx = swidth / 2;
  674. X        cy = sheight / 3;
  675. X        m_clear();
  676. X        DrawMaze (0, 2 * cy, swidth, cy);
  677. X        Redraw = 0;
  678. X        MaxDepth = -1;
  679. X    }
  680. X    DrawFrom (position, cx, cy);
  681. X    M_func(B_OR);
  682. X    DrawAllArrows ();
  683. X    {
  684. X        register    op = position;
  685. X        register    c;
  686. X        while (1) {
  687. X        int     raction = rmask;
  688. X        m_flush();
  689. X                dprintf(stderr,"Select %x...",raction); fflush(stderr);
  690. X        select (32, &raction, 0, 0, 0);
  691. X                dprintf(stderr," got %x\n",raction);
  692. X        if ((raction & (1 << RecvSocket))
  693. X            && read (RecvSocket, (char *)&him, sizeof him) == sizeof him) {
  694. X                    dprintf(stderr,"Got %d (%d) %d %d\n",
  695. X                            him.id,me.id,him.direction,him.position);
  696. X            if (him.id != me.id && him.direction < 4)
  697. X            UpdateOther ();
  698. X        }
  699. X        else
  700. X            perror ("read");
  701. X        if (Redraw || (raction & (1 << fileno (m_termin))))
  702. X            break;
  703. X        };
  704. X        if (!Redraw) {
  705. X        c = getc (m_termin);
  706. X            M_func(B_OR);
  707. X        DrawAllArrows ();
  708. X        }
  709. X        else
  710. X        if (errno != EINTR)
  711. X            break;
  712. X        else {
  713. X            errno = 0;
  714. X            continue;
  715. X        }
  716. X        switch (c & 0177) {
  717. X        case ' ': 
  718. X        case 'f': 
  719. X        case '8': 
  720. X            position = ForwardFrom (position);
  721. X            break;
  722. X        case 'l': 
  723. X        case '4': 
  724. X            if (--direction < 0)
  725. X            direction = 3;
  726. X            break;
  727. X        case 'r': 
  728. X        case '6': 
  729. X            if (++direction > 3)
  730. X            direction = 0;
  731. X            break;
  732. X        case 'b': 
  733. X        case '2': 
  734. X            position = BackwardFrom (position);
  735. X            break;
  736. X                case 'R':
  737. X                    FlagRedraw();
  738. X                    break;
  739. X        case 'q': 
  740. X        case 3:     /* ^C */
  741. X            m_ttyreset();
  742. X                    m_clear();
  743. X                    m_pop();
  744. X            exit (1);
  745. X            break;
  746. X        }
  747. X        if (At (position))
  748. X        position = op;
  749. X    }
  750. X    }
  751. X}
  752. END_OF_FILE
  753. # end of 'demo/misc/maze.c'
  754. fi
  755. if test -f 'src/Makefile' -a "${1}" != "-c" ; then 
  756.   echo shar: Will not clobber existing file \"'src/Makefile'\"
  757. else
  758. echo shar: Extracting \"'src/Makefile'\" \(13038 characters\)
  759. sed "s/^X//" >'src/Makefile' <<'END_OF_FILE'
  760. X#                        Copyright (c) 1987 Bellcore
  761. X#                            All Rights Reserved
  762. X#       Permission is granted to copy or use this program, EXCEPT that it
  763. X#       may not be sold for profit, the copyright notice must be reproduced
  764. X#       on copies, and credit should be given to Bellcore where it is due.
  765. X#       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  766. X
  767. X#    $Header: Makefile,v 4.17 88/08/24 15:55:00 bianchi Exp $
  768. X#    $Source: /tmp/mgrsrc/src/RCS/Makefile,v $
  769. X
  770. X#
  771. X#    compile flags:
  772. X#      WHO:        muck utmp file so "who" works
  773. X#      VI        code for vi mouse hack
  774. X#      DEBUG        turns on lots of debugging code (for -d option)
  775. X#      FASTMOUSE    xor mouse track
  776. X#      BUCKEY    for keyboard operated "mouse" commands
  777. X#      PRIORITY    for priority window scheduling instead of 
  778. X#            round-robin; the active window gets higher priority
  779. X#      CUT        for cut/paste (don't use)
  780. X#      ALIGN        forces window alignment for fast scrolling
  781. X#            use with non-pixrect version only
  782. X#      ALIGN32    bitmaps are aligned on 32 instead of 16 bit boundaries.
  783. X#                    use with new bit_blit code
  784. X#      WEIRD        does weird thing on window reshapes
  785. X#      KILL        kills windows upon tty i/o errors
  786. X#
  787. X#      MALLOC    for malloc debugging code - you supply the malloc
  788. X#
  789. X#      SHRINK    use only some of the screen (define [XYWH]0 too)
  790. X#
  791. X#      NOSTACK    don't permit event stacking 
  792. X#
  793. X#      BELL        really ring the bell (works on at least sun 3's)
  794. X#            You need to do a "mknod /dev/bell c 12 2"
  795. X#
  796. X#      KBD        read mgr input from the sun kbd, instead of stdin
  797. X#            This permits redirection of console msgs to a window
  798. X#
  799. X#      FRACCHAR    fractional character movement stuff (experimental)
  800. X#
  801. X#      XMENU        extended menu stuff (experimental)
  802. X#
  803. X#        Standard compile flags
  804. XMGR=mgr
  805. XBLITDIR=blit
  806. XDDEP = -DALIGN
  807. XBIT_LIB =   $(BLITDIR)/blitlib.a
  808. XOTHERLIB =
  809. XINCL = ../lib
  810. XMACHDEP_H =
  811. XMACHDEP_C = fast_scroll.c
  812. XMACHDEP_O = fast_scroll.o
  813. XVER = 3.2
  814. X#
  815. X# built-in path names:
  816. X#
  817. X###########################################
  818. XINSROOT=/usr/mgr
  819. XFLAG = -O
  820. X###########################################
  821. XSTART=.
  822. XDSAME = -DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DBELL \
  823. X            -DKBD -DALIGN32 -DFRACCHAR
  824. X#    FONTDIR:    where to find font files  (default: /usr/mgr/font)
  825. X#    ICONDIR:    where to find icons      (default: /usr/mgr/icon)
  826. XPATHFLAGS = -DFONTDIR=\"$(INSROOT)/font\" -DICONDIR=\"$(INSROOT)/icon\"
  827. X#
  828. XDFLAGS = $(DSAME) $(DDEP)
  829. XCFLAGS = $(FLAG) $(DFLAGS) $(PATHFLAGS) -I$(BLITDIR) -I$(INCL)
  830. XFONT_LIB = ../font
  831. XDEFAULT_FONT = $(FONT_LIB)/default.fnt
  832. XINSDIR = $(INSROOT)/bin
  833. XCPIO=src.cpio
  834. XTAR=src.tar
  835. XDEPEND = make.depend
  836. XLOG=make.log
  837. XALLMGRS= mgr color_mgr nmgr omgr pix_mgr mgr-test
  838. XALLDOTFILES= .mgr-test .color_mgr .nmgr .omgr .pix_mgr .mgr-o
  839. X
  840. XPORTCFILES = \
  841. X    Write.c bitmaphead.c bitmapread.c border.c \
  842. X    cut.c data.c debug_flags.c destroy.c \
  843. X    do_buckey.c do_button.c do_event.c do_menu.c down_load.c \
  844. X    erase_win.c font_subs.c get_font.c get_info.c get_menus.c \
  845. X    get_rect.c get_text.c getshell.c graph_subs.c intersect.c \
  846. X    kbd.c mgr.c mouse_get.c move.c move_box.c new_window.c print.c \
  847. X    put_window.c scroll.c set_mode.c shape.c sigdata.c startup.c \
  848. X    subs.c update.c utmp.c win_make.c win_stack.c win_subs.c \
  849. X    write_ok.c 
  850. X
  851. XCFILES = $(PORTCFILES) $(MACHDEP_C)
  852. X
  853. XOFILES = \
  854. X    Write.o bitmaphead.o bitmapread.o border.o \
  855. X    cut.o data.o debug_flags.o destroy.o \
  856. X    do_buckey.o do_button.o do_event.o do_menu.o down_load.o \
  857. X    erase_win.o font_subs.o get_font.o get_info.o get_menus.o \
  858. X    get_rect.o get_text.o getshell.o graph_subs.o intersect.o \
  859. X    kbd.o mgr.o mouse_get.o move.o move_box.o new_window.o print.o \
  860. X    put_window.o scroll.o set_mode.o shape.o sigdata.o startup.o \
  861. X    subs.o update.o utmp.o win_make.o win_stack.o win_subs.o \
  862. X    write_ok.o \
  863. X    $(MACHDEP_O)
  864. X
  865. XHFILES = \
  866. X    $(INCL)/dump.h $(INCL)/window.h \
  867. X    clip.h copyright.h default_font.h defines.h defs.h event.h \
  868. X    font.h icons-16.h icons-32.h menu.h \
  869. X    $(MACHDEP_H)
  870. X
  871. XOTHER = \
  872. X    Makefile \
  873. X    copyright.c \
  874. X    compile_font.c dependencies
  875. X
  876. X############################################################################
  877. Xall:    $(MGR) 
  878. X
  879. X############################################################################
  880. X# color mgr, for sun 3/60, sun3/110 and sun-roadrunner
  881. Xcolor:
  882. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DBELL -DKBD \
  883. X            -DCOLOR -DFASTMOUSE" \
  884. X        INSROOT=$(INSROOT) \
  885. X        DDEP= \
  886. X        MACHDEP_C= MACHDEP_H= MACHDEP_O= \
  887. X        OTHERLIB=-lpixrect \
  888. X        BLITDIR=pixrect \
  889. X        FLAG=$(FLAG) \
  890. X        MGR=color_mgr \
  891. X        VER=2.2
  892. X
  893. X############################################################################
  894. Xinstallcolor:
  895. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DBELL -DKBD \
  896. X            -DCOLOR -DFASTMOUSE" \
  897. X        INSROOT=$(INSROOT) \
  898. X        DDEP= \
  899. X        MACHDEP_C= MACHDEP_H= MACHDEP_O= \
  900. X        BLITDIR=pixrect \
  901. X        OTHERLIB=-lpixrect \
  902. X        FLAG=$(FLAG) \
  903. X        MGR=color_mgr \
  904. X        VER=2.2 \
  905. X        install
  906. X
  907. X############################################################################
  908. X# sun 3's production release (no debugging code, optimized)
  909. Xprod:
  910. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DKILL -DCUT -DALIGN \
  911. X            -DALIGN32 -DBELL -DKBD -DFRACCHAR"  \
  912. X        INSROOT=$(INSROOT) \
  913. X        FLAG=-O \
  914. X        MGR=mgr-o
  915. X
  916. X############################################################################
  917. X# sun 3's (68020 based) next (test) release
  918. Xexp:
  919. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DALIGN \
  920. X            -DALIGN32 -DBELL -DKBD -DFRACCHAR -DXMENU"  \
  921. X        INSROOT=$(INSROOT) \
  922. X        FLAG=$(FLAG) \
  923. X        MGR=nmgr
  924. X
  925. X############################################################################
  926. X# sun 3's (68020 based) pre release 3.4
  927. Xold:
  928. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DALIGN"  \
  929. X        INSROOT=$(INSROOT) \
  930. X        FLAG=$(FLAG) \
  931. X        MGR=omgr
  932. X
  933. X############################################################################
  934. X# sun 2's (68010 based)
  935. Xsun2:
  936. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DBELL -DKBD \
  937. X               -DALIGN" \
  938. X        INSROOT=$(INSROOT) \
  939. X        FLAG=$(FLAG) \
  940. X        BLITDIR=oblit
  941. X
  942. X############################################################################
  943. X# sun 2's (68010 based) running pre-3.4 releases (i.e. 1.0)
  944. Xoldsun2:
  945. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DALIGN" \
  946. X        INSROOT=$(INSROOT) \
  947. X        FLAG=$(FLAG) \
  948. X        BLITDIR=oblit
  949. X
  950. X############################################################################
  951. Xpixlib:
  952. X    $(MAKE) DSAME="-DWHO -DVI -DBUCKEY -DDEBUG -DKILL -DCUT -DBELL -DKBD" \
  953. X        INSROOT=$(INSROOT) \
  954. X        DDEP= MACHDEP_C= MACHDEP_H= MACHDEP_O= \
  955. X        BLITDIR=pixrect OTHERLIB=-lpixrect \
  956. X        FLAG=$(FLAG) \
  957. X        MGR=pix_mgr \
  958. X        VER=2.2
  959. X
  960. X########################################################################
  961. X
  962. Xfast:    gang $(MGR)
  963. X
  964. X#        Placing $(HFILES) and $(CFILES) in the dependency list let's us
  965. X#        see which files actually caused the rebuild in the $(LOG).
  966. X#        Other than that, and checking for their existence, they are not
  967. X#        needed for the actual build of mgr.
  968. X
  969. X$(MGR):    .$(MGR) $(HFILES) $(CFILES) $(OFILES) copyright.o version.o FRClibrary
  970. X    -rm -f mgr
  971. X    -mv $(MGR) _$(MGR)
  972. X    $(CC) $(LFLAGS) $(FLAG) -o $(MGR) $(MALLOC) $(OFILES) version.o copyright.o \
  973. X        $(BIT_LIB) $(OTHERLIB)
  974. X    @date >> $(LOG)
  975. X    echo "changed $?" >> $(LOG)
  976. X    @size $(MGR)
  977. X    @echo "$(MGR) on `date`" > .done
  978. X    -ln $(MGR) mgr
  979. X
  980. X.PRECIOUS: .$(MGR)
  981. X
  982. X.$(MGR) gang:    default_font.h icons.h
  983. X    rm -f $(OFILES) $(ALLDOTFILES) copyright.o icons.h .done
  984. X    $(MAKE) BLITDIR=$(BLITDIR) icons.h
  985. X    touch .$(MGR)
  986. X    $(CC) -c $(CFLAGS) $(PORTCFILES)
  987. X
  988. Xdefault_font.h:
  989. X        make compile_font
  990. X        ./compile_font < $(DEFAULT_FONT) default_font \
  991. X                 > default_font.h
  992. X
  993. Xcompile_font:    compile_font.o
  994. X        $(CC) $(LFLAGS) -o compile_font compile_font.o
  995. X
  996. X# pick the icon file with appropriate alignment 
  997. X#    set up a link to the proper font directory as well
  998. X
  999. Xicons.h:
  1000. X        -rm icons.h
  1001. X        -rm ../font    
  1002. X        @if [ x$(BLITDIR) = xblit ]; \
  1003. X        then \
  1004. X            echo 'Creating 32-bit aligned mouse icons'; \
  1005. X            ln -s icons-32.h icons.h; \
  1006. X            echo 'Setting links to 32-bit fonts'; \
  1007. X            ln -s `pwd`/../font-32 ../font; \
  1008. X        else \
  1009. X            echo 'Setting links to 16-bit fonts'; \
  1010. X            ln -s `pwd`/../font-16 ../font; \
  1011. X            echo 'Creating 16-bit aligned mouse icons'; \
  1012. X            ln -s icons-16.h icons.h; \
  1013. X        fi
  1014. X        
  1015. X#    create mgr version information
  1016. X
  1017. Xversion.c:    $(OFILES)
  1018. X        echo "/* compilation info for $(MGR) */"     > version.c
  1019. X        @echo " "                    >> version.c
  1020. X        @echo "char *version[]={"            >> version.c
  1021. X        @echo "   \"$(VER)\",\"`hostname`\",\"`date`\",">> version.c
  1022. X        @echo "   \"`echo $(DFLAGS) | sed 's/-D//g'`\",">> version.c
  1023. X        @echo "   \"$(INSROOT)\","            >> version.c
  1024. X        @echo "   \"`whoami`\","            >> version.c
  1025. X        @echo "   \"`strings /vmunix | grep 'Release'`\",">> version.c
  1026. X        @echo "   };"                    >> version.c 
  1027. X
  1028. X# The optimizer botches on this one
  1029. X
  1030. Xfast_scroll.o:    fast_scroll.c
  1031. X        $(CC) -c -I$(BLITDIR) fast_scroll.c
  1032. X
  1033. X#    put copyright data into text segment
  1034. Xcopyright.o:    copyright.c copyright.h
  1035. X        $(CC) -c $(FLAG) $(DFLAGS) -I$(BLITDIR) -R copyright.c
  1036. X
  1037. X$(BLITDIR)/blitlib.a FRClibrary:
  1038. X        cd $(BLITDIR); $(MAKE) FLAG=$(FLAG) blitlib.a
  1039. X#        make blit library avaliable to the applications
  1040. X        -rm -f $(INCL)/blitlib.a $(INCL)/bitmap.h
  1041. X        -ln -s `pwd`/$(BLITDIR)/blitlib.a $(INCL)/blitlib.a
  1042. X        -ln -s `pwd`/$(BLITDIR)/bitmap.h $(INCL)/bitmap.h
  1043. X
  1044. X$(LOG):        
  1045. X        echo "MGR version log > $(LOG)
  1046. X
  1047. Xclean:        
  1048. X        rm -f *.o version.c $(ALLDOTFILES) .done
  1049. X        cd blit; $(MAKE) clean
  1050. X        cd oblit; $(MAKE) clean
  1051. X        cd pixrect; $(MAKE) clean
  1052. X
  1053. Xclobber:
  1054. X        rm -f compile_font $(ALLMGRS)
  1055. X
  1056. Xinstall:    .done $(INSDIR) /dev/bwtwo0
  1057. X        cd $(INSDIR);  rm -f $(MGR)
  1058. X        cp $(MGR) $(INSDIR)
  1059. X        -/etc/chown root $(INSDIR)/$(MGR)  && \
  1060. X         chmod u+s,go-w $(INSDIR)/$(MGR)
  1061. X
  1062. X.done:
  1063. X        @echo "No MGR available to install"
  1064. X
  1065. X$(INSDIR):
  1066. X        mkdir $@
  1067. X
  1068. X/dev/bwtwo0:
  1069. X        -/bin/su root -c 'cd /dev;  MAKEDEV bwtwo0'
  1070. X
  1071. Xtar:        
  1072. X        tar cf $(TAR) `make list`
  1073. X        
  1074. Xdepend:    
  1075. X        dependencies `$(MAKE) list` > $(DEPEND)
  1076. X        echo " header file dependencies written to $(DEPEND)"
  1077. X
  1078. Xlist:
  1079. X    @for i in $(HFILES) $(CFILES) $(OTHER); do \
  1080. X        echo "$(START)/$$i"; \
  1081. X    done    
  1082. X    @for i in blit oblit pixrect; do \
  1083. X        echo "${START}/$$i";\
  1084. X        if [ -d $$i ]; then \
  1085. X             cd $$i; $(MAKE) START=${START}/$$i list; cd ..;\
  1086. X        fi \
  1087. X    done    
  1088. X
  1089. Xcpio:
  1090. X    make -s list  |  sort -u  |  cpio -ocv > $(CPIO)
  1091. X
  1092. X
  1093. X# header file dependencies go here 
  1094. X
  1095. XWrite.o: \
  1096. X    Write.c
  1097. X
  1098. Xbitmaphead.o: \
  1099. X    bitmaphead.c $(INCL)/dump.h $(BLITDIR)/bitmap.h
  1100. X
  1101. Xbitmapread.o: \
  1102. X    bitmapread.c $(INCL)/dump.h $(BLITDIR)/bitmap.h
  1103. X
  1104. Xborder.o: \
  1105. X    border.c $(BLITDIR)/bitmap.h defs.h defines.h
  1106. X
  1107. Xcopyright.c:    copyright.h
  1108. X
  1109. Xcopyright.o: \
  1110. X    $(BLITDIR)/bitmap.h
  1111. X
  1112. Xcut.o: \
  1113. X    cut.c $(BLITDIR)/bitmap.h defs.h defines.h font.h $(INCL)/window.h \
  1114. X    event.h
  1115. X
  1116. Xdata.o: \
  1117. X    data.c $(BLITDIR)/bitmap.h defs.h defines.h font.h icons.h
  1118. X
  1119. Xdebug_flags.o: \
  1120. X    debug_flags.c
  1121. X
  1122. Xdestroy.o: \
  1123. X    destroy.c $(BLITDIR)/bitmap.h defs.h defines.h font.h event.h
  1124. X
  1125. Xdo_buckey.o: \
  1126. X    do_buckey.c $(BLITDIR)/bitmap.h defs.h defines.h font.h \
  1127. X    event.h
  1128. X
  1129. Xdo_button.o: \
  1130. X    do_button.c $(BLITDIR)/bitmap.h menu.h defs.h defines.h \
  1131. X    font.h event.h
  1132. X
  1133. Xdo_event.o: \
  1134. X    do_event.c $(BLITDIR)/bitmap.h defs.h defines.h font.h event.h
  1135. X
  1136. Xdo_menu.o: \
  1137. X    do_menu.c $(BLITDIR)/bitmap.h menu.h defs.h defines.h font.h
  1138. X
  1139. Xdown_load.o: \
  1140. X    down_load.c $(BLITDIR)/bitmap.h font.h defs.h defines.h \
  1141. X    menu.h event.h $(INCL)/window.h
  1142. X
  1143. Xerase_win.o: \
  1144. X    erase_win.c $(BLITDIR)/bitmap.h defs.h defines.h
  1145. X
  1146. Xfont_subs.o: \
  1147. X    font_subs.c $(BLITDIR)/bitmap.h font.h default_font.h $(INCL)/window.h
  1148. X
  1149. Xget_font.o: \
  1150. X    get_font.c $(BLITDIR)/bitmap.h font.h
  1151. X
  1152. Xget_info.o: \
  1153. X    get_info.c $(BLITDIR)/bitmap.h font.h defs.h defines.h menu.h \
  1154. X    event.h $(INCL)/window.h
  1155. X
  1156. Xget_menus.o: \
  1157. X    get_menus.c $(BLITDIR)/bitmap.h menu.h font.h
  1158. X
  1159. Xget_rect.o: \
  1160. X    get_rect.c $(BLITDIR)/bitmap.h defs.h defines.h
  1161. X
  1162. Xget_text.o: \
  1163. X    get_text.c $(BLITDIR)/bitmap.h defs.h defines.h font.h event.h
  1164. X
  1165. Xgetshell.o: \
  1166. X    getshell.c $(BLITDIR)/bitmap.h defs.h defines.h
  1167. X
  1168. Xgraph_subs.o: \
  1169. X    graph_subs.c $(BLITDIR)/bitmap.h
  1170. X
  1171. Xintersect.o: \
  1172. X    intersect.c $(BLITDIR)/bitmap.h defs.h defines.h
  1173. X
  1174. Xkbd.o: \
  1175. X    kbd.c $(BLITDIR)/bitmap.h defs.h defines.h
  1176. X
  1177. Xmgr.o: \
  1178. X    mgr.c $(BLITDIR)/bitmap.h defs.h defines.h menu.h font.h \
  1179. X    event.h
  1180. X
  1181. Xmouse_get.o: \
  1182. X    mouse_get.c
  1183. X
  1184. Xmove.o: \
  1185. X    move.c $(BLITDIR)/bitmap.h defs.h defines.h event.h
  1186. X
  1187. Xmove_box.o: \
  1188. X    move_box.c $(BLITDIR)/bitmap.h defs.h defines.h
  1189. X
  1190. Xnew_window.o: \
  1191. X    new_window.c $(BLITDIR)/bitmap.h defs.h defines.h font.h \
  1192. X    menu.h
  1193. X
  1194. Xprint.o: \
  1195. X    print.c
  1196. X
  1197. Xput_window.o: \
  1198. X    put_window.c $(BLITDIR)/bitmap.h font.h defs.h defines.h \
  1199. X    menu.h event.h $(INCL)/window.h clip.h
  1200. X
  1201. Xscroll.o: \
  1202. X    scroll.c $(BLITDIR)/bitmap.h defs.h defines.h clip.h
  1203. X
  1204. Xset_mode.o: \
  1205. X    set_mode.c
  1206. X
  1207. Xshape.o: \
  1208. X    shape.c $(BLITDIR)/bitmap.h defs.h defines.h font.h event.h
  1209. X
  1210. Xsigdata.o: \
  1211. X    sigdata.c
  1212. X
  1213. Xstartup.o: \
  1214. X    startup.c $(BLITDIR)/bitmap.h defs.h defines.h
  1215. X
  1216. Xsubs.o: \
  1217. X    subs.c $(BLITDIR)/bitmap.h font.h defs.h defines.h event.h
  1218. X
  1219. Xupdate.o: \
  1220. X    update.c $(BLITDIR)/bitmap.h defs.h defines.h clip.h
  1221. X
  1222. Xutmp.o: \
  1223. X    utmp.c
  1224. X
  1225. Xwin_make.o: \
  1226. X    win_make.c $(BLITDIR)/bitmap.h font.h defs.h defines.h $(INCL)/window.h \
  1227. X    event.h
  1228. X
  1229. Xwin_stack.o: \
  1230. X    win_stack.c $(BLITDIR)/bitmap.h font.h defs.h defines.h \
  1231. X    $(INCL)/window.h menu.h event.h
  1232. X
  1233. Xwin_subs.o: \
  1234. X    win_subs.c $(BLITDIR)/bitmap.h font.h defs.h defines.h $(INCL)/window.h \
  1235. X    clip.h
  1236. X
  1237. Xwrite_ok.o: \
  1238. X    write_ok.c defines.h
  1239. X
  1240. Xfast_scroll.o: \
  1241. X    fast_scroll.c $(BLITDIR)/bitmap.h
  1242. X
  1243. Xcompile_font.o: \
  1244. X    compile_font.c $(BLITDIR)/bitmap.h font.h
  1245. X
  1246. END_OF_FILE
  1247. # end of 'src/Makefile'
  1248. fi
  1249. echo shar: End of archive 36 \(of 61\).
  1250. cp /dev/null ark36isdone
  1251. MISSING=""
  1252. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1253.     21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
  1254.     38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
  1255.     55 56 57 58 59 60 61 ; do
  1256.     if test ! -f ark${I}isdone ; then
  1257.     MISSING="${MISSING} ${I}"
  1258.     fi
  1259. done
  1260. if test "${MISSING}" = "" ; then
  1261.     echo You have unpacked all 61 archives.
  1262.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1263. else
  1264.     echo You still need to unpack the following archives:
  1265.     echo "        " ${MISSING}
  1266. fi
  1267. ##  End of shell archive.
  1268. exit 0
  1269.