home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume5 / faces-1.3 / part01 next >
Encoding:
Internet Message Format  |  1989-02-03  |  42.5 KB

  1. Path: xanth!ames!mailrus!cornell!batcomputer!itsgw!steinmetz!uunet!munnari!basser!root
  2. From: richb@sunchat.oz.AU (Rich Burridge)
  3. Newsgroups: comp.sources.misc
  4. Subject: v05i092: faces v1.3 - visual mail/print monitor, Part 1/3
  5. Message-ID: <1702@basser.oz>
  6. Date: 24 Dec 88 02:12:48 GMT
  7. Sender: root@basser.oz
  8. Organization: Sun Microsystems, Sydney
  9. Lines: 1329
  10. Approved: john@cs.su.oz.AU
  11.  
  12. Posting-number: Volume 5, Issue 92
  13. Submitted-By: Rich Burridge <richb@sunchat.oz.AU>
  14. Archive-name: faces-1.3/part01
  15.  
  16. This is the second general release of a face server for monitoring mail
  17. and print jobs. It is based on the Bell Labs v8 vismon program, and this
  18. version is vismon compatible, but is not derived from AT&T sources.
  19.  
  20. This version contains drivers for SunView and NeWS graphics systems.
  21.  
  22. Permission is given to distribute these sources, as long as the
  23. copyright messages are not removed, and no monies are exchanged.
  24.  
  25. See the README and manual page for more details.
  26.  
  27. Save this, and subsequent messages in a new directory, strip off the
  28. beginning down to and including the CUT HERE line, unpack with sh,
  29. then type "make sunview" for the SunView version or "make news" for
  30. the NeWS version. Then install with "make install". Note that you might
  31. need super-user permission to do this successfully. Create your face
  32. directory, hostname sub-directories username ikons/icons, machine and
  33. people tables, and you're set.
  34.  
  35. Note that if you are compiling faces under v3.x of the SunOS, then there
  36. is a line in the Makefile starting with OSTYPE, that needs to be uncommented.
  37.  
  38. If anybody can work out what needs to be done to fix the problem of the
  39. window/icon always moving back to the initial position (see the BUGS section
  40. of the man page), then I'll be very pleased to hear from them.
  41.  
  42. If you already have your face scanned in and iconised and would like to
  43. add it to the library I'm building up, please feel free to email it to me.
  44.  
  45. Bugs, flames and suggestions to me please.
  46.  
  47.  
  48. Acknowledgements.
  49.  
  50. Thanks go to Guy Harris for the basis of the latest manual page, Dave
  51. Lemke for many excellent suggestions including the animated postscript
  52. faces, to Andrew Nicholson for help with some of the trickier NeWS code,
  53. to Dan Heller for writing the 'watch' program which was consulted
  54. in the early days, to Rob Pike for sending me a copy of the
  55. Pike/Presotto paper "Face the Nation", which I used to get vismon
  56. compatibility, and to everybody else who suggested enhancements, and
  57. fixed bugs in the previous version.
  58.  
  59.     Rich Burridge - December 1988.
  60.  
  61. ------CUT HERE------CUT HERE------
  62. #! /bin/sh
  63. # this is a shell archive, meaning:
  64. # 1. Remove everything above the #! /bin/sh line
  65. # 2. Save the resulting text in a file.
  66. # 3. Execute the file with /bin/sh to create the files:
  67. #    README
  68. #    faces.1
  69. #    faces.ps
  70. #    machine.tab
  71. #    people.tab
  72. #    Makefile
  73. #    extern.h
  74. #    faces.h
  75. #    patchlevel.h
  76. #    noface.icon
  77. #    nomail.icon
  78. #    noprint.icon
  79. #    nopaper.icon
  80. # This archive created: Sun Dec 11 14:57:20 EST 1988
  81. #
  82. #
  83. export PATH; PATH=/bin:$PATH
  84. #
  85. if [ -f README ]
  86. then
  87. echo shar: will not over-write existing file README
  88. else
  89. echo shar: extracting 'README',     2703 characters
  90. cat > README <<'Funky_Stuff'
  91.  
  92. README for faces, the visual mail and print monitor.
  93.  
  94. Version 1.3 December 1988.
  95.  
  96. Permission is given to distribute these sources, as long as the
  97. copyright messages are not removed, and no monies are exchanged. 
  98.  
  99. This is the second general release of a "faces" server for
  100. monitoring mail or print jobs.
  101.  
  102. It contains graphical interfaces for SunView and NeWS. The X11 and
  103. blit versions are being worked on. Expect them in the near future.
  104.  
  105. Faces has three different modes of operation:
  106.  
  107. The default will monitor for new mail. Only the last ten messages are
  108. displayed. In its iconic form, it is also possible to display the timestamp
  109. of each message, and the open window format can give the username.
  110.  
  111. The second choice is to monitor the whole of a mail file. The icon and open
  112. window display the appropriate faces, and dynamically change size as a new
  113. check is made and if the mail file has altered size. In the iconic form, a
  114. timestamp of the last message plus the number of mail messages from this
  115. person are optional display parameters.
  116.  
  117. The final option allows this program to monitor a given print queue.
  118. This will generate a single face icon showing the job at the top of the print
  119. queue, and a text message will display the number of messages to be printed.
  120. Opening the window will show all the jobs in the queue with the owners' name
  121. and the size of the job in bytes.
  122.  
  123. Faces is based on the AT&T v8 face server called vismon, but is not derived
  124. from vismon sources. With this version comes vismon compatibility. Note
  125. that this has resulted in a few changes from the way faces v1.1 worked.
  126. Please see the manual pages for details.
  127.  
  128. There is a face directory, and under that are directories which are hostnames.
  129. Under that are username directories, and this is where the face images are
  130. placed. The face images are currently stored in one of three ways:
  131.  
  132.   1.   NeWS .ps format, called face.ps.
  133.   2.   Sun icon format, called sun.icon.
  134.   3.   Blit ikon format, called 48x48x1.
  135.  
  136. The NeWS .ps allow for animation with the users' face. These files are
  137. drawn when the rest of the static faces have been displayed. They will be
  138. redrawn every time the mail or print queue is recheck or when the faces
  139. window or icon is damaged. See the manual page for details on the
  140. conditions imposed on these NeWS .ps files.
  141.  
  142. By default, after every sixty seconds, faces will recheck the mail file or
  143. the print queue. If the mail spool file has changed size, it will produce a
  144. chain of records for which it has face icons.
  145.  
  146. I welcome bug reports and suggestions for improvements.
  147.  
  148.     Rich.
  149.  
  150. Rich Burridge,          DOMAIN: richb@sunaus.oz.au
  151. PHONE: +61 2 413 2666   UUCP:   {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
  152. Funky_Stuff
  153. len=`wc -c < README`
  154. if [ $len !=     2703 ] ; then
  155. echo error: README was $len bytes long, should have been     2703
  156. fi
  157. fi # end of overwriting check
  158. if [ -f faces.1 ]
  159. then
  160. echo shar: will not over-write existing file faces.1
  161. else
  162. echo shar: extracting 'faces.1',     6804 characters
  163. cat > faces.1 <<'Funky_Stuff'
  164. .\" @(#)faces.1 1.2 88/12/11
  165. .TH FACES 1L "2 December 1988"
  166. .SH NAME
  167. faces \- visual mail and print face server for the Sun workstation
  168. .SH SYNOPSIS
  169. .B "faces
  170. [
  171. .B \-P
  172. .I printer
  173. ]
  174. [
  175. .B \-a
  176. ]
  177. [
  178. .B \-b
  179. .I background
  180. ]
  181. [
  182. .B \-f
  183. .I facedir
  184. ]
  185. [
  186. .B \-i
  187. ]
  188. [
  189. .B \-n
  190. ]
  191. [
  192. .B \-p
  193. .I period
  194. ]
  195. [
  196. .B \-s
  197. .I spoolfile
  198. ]
  199. [
  200. .B \-t
  201. ]
  202. [
  203. .B \-u
  204. ]
  205. [
  206. .B \-v
  207. ]
  208. [
  209. .B \-Wi
  210. ]
  211. [
  212. .B \-Wp
  213. .I x y
  214. ]
  215. [
  216. .B \-WP
  217. .I x y
  218. ]
  219. .SH DESCRIPTION
  220. .B faces
  221. is a window based tool for monitoring mail or print queues. It contains
  222. graphical interfaces for SunView and NeWS. It has three different modes
  223. of operation:
  224. .LP
  225. The default will monitor for new mail. Only the last ten messages are
  226. displayed. In its iconic form, it is also possible to display the timestamp
  227. of each message, and the open window format can give the username.
  228. .LP
  229. The second choice is to monitor the whole of a mail file. The icon and open
  230. window display the appropriate faces, and dynamically change size as a new
  231. check is made and if the mail file has altered size. In the iconic form, a
  232. timestamp of the last message plus the number of mail messages from this
  233. person are optional display parameters.
  234. .LP
  235. The final option allows this program to monitor a given print queue.
  236. This will generate a single face icon showing the job at the top of the print
  237. queue, and a text message will display the number of messages to be printed.
  238. Opening the window will show all the jobs in the queue with the owners' name
  239. and the size of the job in bytes.
  240. .LP
  241. There are special displays for no mail, no faces found, no print jobs, and
  242. no paper in the printer.
  243. .LP
  244. .B faces
  245. is based on the AT&T v8 program
  246. .B vismon.
  247. This program is not derived from
  248. .B vismon
  249. source.
  250. .LP
  251. There is a special faces directory containing a fixed three-level hierarchy,
  252. which by default is
  253. .I /usr/local/faces.
  254. The first level is a machine name, the second level a user name, and the
  255. third level is the actual face image, which can be stored in three formats.
  256. If the file is named
  257. .I 48x48x1
  258. then it is a Blit ikon, and if it is called
  259. .I sun.icon
  260. then the image is stored in Sun icon format, and if the file is named
  261. .I face.ps
  262. then it contains executable NeWS code.
  263. .LP
  264. To access the face for a mail name
  265. .I machine!uid
  266. take the result of the first successful open from the following list of files:
  267. .LP
  268.     /usr/local/faces/machine/uid/face.ps
  269. .br
  270.     /usr/local/faces/machine/uid/sun.icon
  271. .br
  272.     /usr/local/faces/machine/uid/48x48x1
  273. .br
  274.     /usr/local/faces/misc./uid/face.ps
  275. .br
  276.     /usr/local/faces/misc./uid/sun.icon
  277. .br
  278.     /usr/local/faces/misc./uid/48x48x1
  279. .br
  280.     /usr/local/faces/machine/unknown/face.ps
  281. .br
  282.     /usr/local/faces/machine/unknown/sun.icon
  283. .br
  284.     /usr/local/faces/machine/unknown/48x48x1
  285. .br
  286.     /usr/local/faces/misc./unknown/face.ps
  287. .br
  288.     /usr/local/faces/misc./unknown/sun.icon
  289. .br
  290.     /usr/local/faces/misc./unknown/48x48x1
  291. .LP
  292. The directory
  293. .I misc.
  294. hold faces for generic users such as
  295. .I root
  296. and
  297. .I uucp.
  298. .LP
  299. Faces information is administered by a pair of ASCII files that associate
  300. related machines and faces. The machine table
  301. .I machine.tab
  302. attaches machines to communities; the line
  303. .LP
  304.     stard=sunaus
  305. .LP
  306. puts the machine
  307. .I stard
  308. in community
  309. .I sunaus.
  310. The people table associates a community/alias pair, with a real username.
  311. .LP
  312.     sunaus/rburridge=richb
  313. .LP
  314. causes the alias
  315. .I rburridge
  316. to be translated into the real username
  317. .I richb
  318. for the community
  319. .I sunaus
  320. .LP
  321. Domain name structure would be handled in the same way. For example:
  322. .LP
  323.     sunaus.sun.oz=sunaus
  324. .LP
  325. would map the full domain name in the community
  326. .I sunaus.
  327. .LP
  328. If the faces directory hierarchy is not found, then a blank face image
  329. will be used.
  330. .LP
  331. Note that you still need to use
  332. .I mailtool
  333. or some other mail reading utility to actually read the mail that this program
  334. monitors;
  335. .I faces
  336. simply displays who the mail is from.
  337. .LP
  338. When new mail arrives,
  339. .B faces
  340. will beep and flash appropriately, depending upon the set parameters in
  341. the users
  342. .I .mailrc
  343. file.
  344. .LP
  345. If you are using the NeWS version and creating face images of the
  346. .I face.ps
  347. form, then the following points should be noted:
  348. .LP
  349.     All graphics operations should be performed on the unit square.
  350. .br
  351.     The final image will be translated to a 64 x 64 square image at
  352. .br
  353.     the appropriate position in the faces display.
  354. .br
  355. .SH OPTIONS
  356. .TP
  357. .BI \-P " printer"
  358. Printer name to monitor. If this and a mail spool file are given with the -s
  359. option,
  360. .B faces
  361. will monitor the print queue.
  362. .TP
  363. .B \-a
  364. Monitor the whole of the specified mail file. The icon and open window display
  365. the appropriate faces, and dynamically change size as a new check is made and
  366. if the mail file has altered size.
  367. .TP
  368. .BI \-b " background"
  369. Sun icon file containing an alternate background pattern. The default is
  370. root grey.
  371. .TP
  372. .BI \-f " facedir"
  373. Use an alternate name for the faces directory. The default is
  374. .BR /usr/local/faces .
  375. .TP
  376. .B \-i
  377. Invert the faces images before displaying them. For use by people who
  378. started SunView with the
  379. .B \-i
  380. option.
  381. .TP
  382. .B \-n
  383. Do not display the number of messages from this person. The default is to
  384. display, and a count is shown at the bottom right corner of the face for
  385. this person.
  386. .TP
  387. .BI \-p " period"
  388. The period in seconds before the mail spool file or the print queue is
  389. scanned again for new mail. The default is 60 seconds.
  390. .TP
  391. .BI \-s " spoolfile"
  392. Use an alternate mail spool file to monitor. The default is
  393. .BI /var/spool/mail/ username
  394. where
  395. .I username
  396. is the name of the user currently logged in.
  397. .TP
  398. .B \-t
  399. Do not display a timestamp of the last message from this person. The
  400. default is to display, and a timestamp is shown at the bottom left
  401. corner of the face for this person.
  402. .TP
  403. .B \-u
  404. Do not display the username on the face icon. The default is to display,
  405. and the username will appear over the face icon, when the window is
  406. opened.
  407. .TP
  408. .B \-v
  409. Print the version number of this release of the
  410. .B faces
  411. program.
  412. .TP
  413. .B \-Wi
  414. Start the
  415. .B faces
  416. program up in iconic form. SunView automatically uses this flag, but the
  417. NeWS version will also.
  418. .TP
  419. .BI \-Wp " x y"
  420. Start the open window position at
  421. .I x y
  422. .TP
  423. .BI \-WP " x y"
  424. Start the icon position at
  425. .I x y
  426. .SH FILES
  427. .TP
  428. .B /var/spool/mail
  429. directory for system mailboxes
  430. .TP
  431. .B /.mailrc
  432. mail startup file
  433. .TP
  434. .B /usr/local/faces
  435. main directory containing the face icons.
  436. .TP
  437. .B /usr/local/faces/people.tab
  438. people/file equivalences
  439. .TP
  440. .B /usr/local/faces/machine.tab
  441. machine/community equivalences
  442. .SH BUGS
  443. The machine and people table lookup is hopelessly inefficient and
  444. will need to be improved as the faces database gets larger.
  445. .br
  446. If the window/icon for the NeWS version is moved, then the window or
  447. icon is redrawn at the original position.
  448. .SH AUTHOR
  449. Rich Burridge,        DOMAIN: richb@sunaus.oz.au
  450. .nf
  451. PHONE: +61 2 413 2666   UUCP:   {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
  452. .fi
  453. Funky_Stuff
  454. len=`wc -c < faces.1`
  455. if [ $len !=     6804 ] ; then
  456. echo error: faces.1 was $len bytes long, should have been     6804
  457. fi
  458. fi # end of overwriting check
  459. if [ -f faces.ps ]
  460. then
  461. echo shar: will not over-write existing file faces.ps
  462. else
  463. echo shar: extracting 'faces.ps',     3760 characters
  464. cat > faces.ps <<'Funky_Stuff'
  465.  
  466. %  These are NeWS dependent graphics routines used by faces.
  467. %
  468. %  @(#)faces.ps 1.3 88/12/11
  469. %
  470. %  Copyright (c) Rich Burridge - Sun Microsystems Australia.
  471. %                                All rights reserved.
  472. %
  473. %  Permission is given to distribute these sources, as long as the
  474. %  copyright messages are not removed, and no monies are exchanged.
  475. %
  476. %  No responsibility is taken for any errors or inaccuracies inherent
  477. %  either to the comments or the code of this program, but if reported
  478. %  to me, then an attempt will be made to fix them.
  479.  
  480.  
  481. /ClearBox    % x y width height canvas => -
  482. {
  483.   setcanvas rectpath 0 setgray fill
  484. } def
  485.  
  486.  
  487. /DoPixrects     % width height canvas => -
  488. {
  489.   dup setcanvas 3 1 roll
  490.   0 0 4 -2 roll rectpath reshapecanvas
  491. } def
  492.  
  493.  
  494. /ExecFile       % psfile width height x y => -
  495. {
  496.   Frame /Iconic? get
  497.     { Frame /IconCanvas   get }
  498.     { Frame /ClientCanvas get } ifelse
  499.   setcanvas translate scale (r) file cvx exec
  500. } def
  501.  
  502.  
  503. /InitFont       % - => -
  504. {
  505.   /Font /Courier findfont 7 scalefont def
  506. } def
  507.  
  508.  
  509. /MakeFrame       % wx wy width height ix iy iconic => -
  510. {
  511.   [ /IsIcon /IconY /IconX /FrameHeight /FrameWidth /FrameY /FrameX ]
  512.   { exch def } forall
  513.  
  514.   /DIED 100 def
  515.   /PAINTED 101 def
  516.   /ClientHeight FrameHeight 10 sub def
  517.   /ClientWidth FrameWidth 10 sub def
  518.   /IconHeight FrameHeight def
  519.   /IconWidth FrameWidth def
  520.  
  521.   /PR framebuffer newcanvas def
  522.   PR /Transparent false put
  523.   PR /Mapped false put
  524.   PR /Retained true put
  525.  
  526.   /MPR framebuffer newcanvas def
  527.   MPR /Transparent false put
  528.   MPR /Mapped false put
  529.   MPR /Retained true put
  530.  
  531.   /Frame framebuffer /new DefaultWindow send def
  532.     {
  533.       /IconX IconX def
  534.       /IconY IconY def
  535.       /BorderTop 5 def
  536.       /BorderLeft 5 def
  537.       /BorderBottom 5 def
  538.       /BorderRight 5 def
  539.       /ControlSize 0 def
  540.       /ForkPaintClient? false def
  541.       /destroy
  542.         {
  543.           DIED typedprint
  544.           DestroyFrame DestroyClient
  545.         } def
  546.       /flipiconic
  547.         {
  548.           PAINTED typedprint
  549.           /unmap self send
  550.           /Iconic? Iconic? not def
  551.           IconX null eq {
  552.             FrameX FrameY FrameHeight add IconHeight sub /move self send
  553.           } if
  554.           ZoomProc
  555.           /map self send
  556.         } def
  557.       /PaintClient
  558.         {
  559.           gsave
  560.             1 fillcanvas
  561.             ClientWidth ClientHeight scale
  562.             0 setgray
  563.             Invert PR imagemaskcanvas
  564.           grestore
  565.         } def
  566.       /PaintIcon
  567.         {
  568.           gsave
  569.             1 fillcanvas
  570.             IconWidth IconHeight scale
  571.             0 setgray
  572.             Invert MPR imagemaskcanvas
  573.           grestore
  574.         } def
  575.     } Frame send
  576.   IsIcon 1 eq { /flipiconic Frame send } if
  577. } def
  578.  
  579.  
  580. /MakeText    % string x y canvas => -
  581. {
  582.   setcanvas Font setfont 1 setgray moveto show
  583. } def
  584.  
  585.  
  586. /MoveImage     % srccanvas width height x y destcanvas => -
  587. {
  588.   setcanvas
  589.   gsave
  590.     translate scale imagecanvas
  591.   grestore
  592. } def
  593.  
  594.  
  595. /SetBackground   % - => -
  596. {
  597.   PR setcanvas
  598.   0.88 fillcanvas
  599.   5 setrasteropcode clippath fill
  600.   MPR setcanvas
  601.   0.88 fillcanvas
  602.   5 setrasteropcode clippath fill
  603. } def
  604.  
  605.  
  606. /ShiftImage      % dx dy width height canvas => -
  607. {
  608.   setcanvas 0 0 4 -2 roll rectpath copyarea
  609. } def
  610.  
  611.  
  612. /ShowDisplay     % framewidth frameheight iconwidth iconheight => -
  613. {
  614.   [ /IconHeight /IconWidth /ClientHeight /ClientWidth ] { exch def } forall
  615.  
  616.   /FrameHeight ClientHeight 10 add def
  617.   /FrameWidth ClientWidth 10 add def
  618.  
  619.   FrameX FrameY
  620.   FrameWidth FrameHeight /reshape Frame send
  621.  
  622.   Frame /IconWidth IconWidth put
  623.   Frame /IconHeight IconHeight put
  624.   /ShapeIconCanvas Frame send
  625.   /painticon Frame send
  626.  
  627.   Frame /ClientHeight ClientHeight put
  628.   Frame /ClientWidth ClientWidth put
  629.   /ShapeClientCanvas Frame send
  630.   /paintclient Frame send
  631.   /map Frame send
  632. } def
  633. Funky_Stuff
  634. len=`wc -c < faces.ps`
  635. if [ $len !=     3760 ] ; then
  636. echo error: faces.ps was $len bytes long, should have been     3760
  637. fi
  638. fi # end of overwriting check
  639. if [ -f machine.tab ]
  640. then
  641. echo shar: will not over-write existing file machine.tab
  642. else
  643. echo shar: extracting 'machine.tab',      383 characters
  644. cat > machine.tab <<'Funky_Stuff'
  645. stard=sunaus
  646. extra=sunaus
  647. sunchat=sunaus
  648. garfield=sunaus
  649. tom=sunaus
  650. felix=sunaus
  651. sunk=sunaus
  652. sunsa=sunaus
  653. misaus=sunaus
  654. maverick=sunaus
  655. misaus1=sunaus
  656. nimbin=sunaus
  657. redgum=sunaus
  658. palette=sunaus
  659. sunwa=sunaus
  660. sunact=sunaus
  661. basset=basser
  662. castor.cs.su.oz=basser
  663. cluster.cs.su.oz=basser
  664. orwell=basser
  665. sarad=basser
  666. sasha=basser
  667. sunrise=basser
  668. gris=softway
  669. softway.sw.oz=softway
  670. arakis=sun
  671. Funky_Stuff
  672. len=`wc -c < machine.tab`
  673. if [ $len !=      383 ] ; then
  674. echo error: machine.tab was $len bytes long, should have been      383
  675. fi
  676. fi # end of overwriting check
  677. if [ -f people.tab ]
  678. then
  679. echo shar: will not over-write existing file people.tab
  680. else
  681. echo shar: extracting 'people.tab',     1663 characters
  682. cat > people.tab <<'Funky_Stuff'
  683. sunaus/rallen=bob
  684. sunaus/ballen=bob
  685. sunaus/bbaker=bruceb
  686. sunaus/mbosch=mike
  687. sunaus/eddy=eddie
  688. sunaus/eevans=eddie
  689. sunaus/ggrell=grell
  690. sunaus/gene=grell
  691. sunaus/jingall=johni
  692. sunaus/ijeffery=ian
  693. sunaus/glynne=gjl
  694. sunaus/tmcentee=tim
  695. sunaus/jnoonan=johnn
  696. sunaus/apappas=arie
  697. sunaus/jennie=jenny
  698. sunaus/jrendell=jenny
  699. sunaus/gsearle=gjs
  700. sunaus/gsitters=greg
  701. sunaus/bscott=brad
  702. sunaus/rstewart=ruth
  703. sunaus/jteasdale=jim
  704. sunaus/loraine=lori
  705. sunaus/lorraine=lori
  706. sunaus/lunicomb=lori
  707. sunaus/pvrbancich=paula
  708. sunaus/swoodhead=simon
  709. sunaus/jy=yo
  710. sunaus/jyoung=yo
  711. sunaus/rboden=richard
  712. sunaus/rbodin=richard
  713. sunaus/rburridge=richb
  714. sunaus/rich=richb
  715. sunaus/mcunningham=mary
  716. sunaus/sduchesne=sue
  717. sunaus/mfredericks=max
  718. sunaus/mfredricks=max
  719. sunaus/bgeneralis=bill
  720. sunaus/shulbert=susanh
  721. sunaus/susan=susanh
  722. sunaus/gmason=gregm
  723. sunaus/vmickan=val
  724. sunaus/trogge=tony
  725. sunaus/andy=aspiers
  726. sunaus/bwiggins=bruce
  727. sunaus/ryeap=ron
  728. sunaus/cbreen=colinb
  729. sunaus/rdesalis=roger
  730. sunaus/mfort=markf
  731. sunaus/mark=markg
  732. sunaus/mgurvis=markg
  733. sunaus/mnegri=manuel
  734. sunaus/npettitt=noel
  735. sunaus/jraine=john
  736. sunaus/paul=paulr
  737. sunaus/prosham=paulr
  738. sunaus/gsweigert=geo
  739. sunaus/rbowman=robb
  740. sunaus/bbowman=robb
  741. sunaus/krees=kim
  742. sunaus/mikes=mslee
  743. sunaus/gshepherd=george
  744. sunaus/aweller=andrew
  745. sunaus/kbeavan=kevin
  746. sunaus/rbradford=rhonda
  747. sunaus/ckeith=colin
  748. sunaus/mmccann=mmc
  749. sunaus/ksterry=kaylene
  750. sunaus/rwilliams=rex
  751. sunaus/gdonin=gary
  752. sunaus/dshea=dennis
  753. sunaus/doshea=dennis
  754. sunaus/hprotoolis=harry
  755. sunaus/rschrader=robert
  756. sunaus/bschrader=robert
  757. sunaus/bobs=robert
  758. sunaus/jvermeulen=jeff
  759. sunaus/MAILER-DAEMON=mailer-daemon
  760. sunaus/Mailer-Daemon=mailer-daemon
  761. sunaus/mailer-daemon=mailer-daemon
  762. Funky_Stuff
  763. len=`wc -c < people.tab`
  764. if [ $len !=     1663 ] ; then
  765. echo error: people.tab was $len bytes long, should have been     1663
  766. fi
  767. fi # end of overwriting check
  768. if [ -f Makefile ]
  769. then
  770. echo shar: will not over-write existing file Makefile
  771. else
  772. echo shar: extracting 'Makefile',     4323 characters
  773. cat > Makefile <<'Funky_Stuff'
  774. #
  775. #  Makefile for faces, an icon face server, plus associated software.
  776. #
  777. #  @(#)Makefile 1.1 88/12/04
  778. #
  779. #  Copyright (c) Rich Burridge.
  780. #                Sun Microsystems, Australia - All rights reserved.
  781. #
  782. #  Permission is given to distribute these sources, as long as the
  783. #  copyright messages are not removed, and no monies are exchanged. 
  784. #
  785. #  Version 1.3 - December 1988.
  786. #
  787. #  No responsibility is taken for any errors inherent either
  788. #  to the comments or the code of this program, but if reported
  789. #  to me then an attempt will be made to fix them.
  790. #
  791. #------------------------------------------------------------------
  792. #  There are various command line options with the faces program.
  793. #  They can also be defined at compile time. If they are not present
  794. #  here, then sensible default values are used. The values given
  795. #  below are the defaults, except for the spoolfile name where the
  796. #  default is obtained from the users' passwd entry.
  797. #
  798. #
  799. #  Monitor type (0 = monitor all, 1 = monitor new, 2 = monitor printer).
  800. #
  801. FMONTYPE         = -DFMONTYPE=1
  802. #
  803. #  Alternate background pattern instead of root gray.
  804. #
  805. BACKGROUND       = -DBACKGROUND=\"\"
  806. #
  807. #  Different directory for face icons,
  808. #
  809. FACEDIR          = /usr/local/faces
  810. FACEPARAM        = -DFACEDIR=\"$(FACEDIR)\"
  811. #
  812. #  If nonzero, then display face images in reverse video.
  813. #
  814. INVERT           = -DINVERT=0
  815. #
  816. #  Period in seconds for checking for new mail or print jobs,
  817. #
  818. PERIOD           = -DPERIOD=60
  819. #
  820. #  If nonzero, do not show number of messages on the face icon,
  821. #
  822. DONTSHOWNO       = -DDONTSHOWNO=0
  823. #
  824. #  Alternative spoolfile to monitor,
  825. #  eg:     SPOOLFILE  = -DSPOOLFILE=\"/usr/richb/Mail/pending\"
  826. #
  827. #SPOOLFILE       =
  828. #
  829. #  If nonzero, do not show timestamp on the face icon.
  830. #
  831. DONTSHOWTIME     = -DDONTSHOWTIME=0
  832. #
  833. #  If nonzero, do not show username on the face icon.
  834. #
  835. DONTSHOWUSER     = -DDONTSHOWUSER=0
  836. #-------------------------------------------------------------------
  837.  
  838. VARIABLES       = $(FMONTYPE) $(BACKGROUND) $(FACEPARAM) \
  839.                   $(INVERT) $(PERIOD) $(DONTSHOWNO) $(SPOOLFILE) \
  840.           $(DONTSHOWTIME) $(DONTSHOWUSER)
  841. BINARIES        = ps_faces sv_faces
  842. BINDIR          = /usr/local/bin
  843. FACES           = facedir
  844. LIBDIR          = /usr/local/lib
  845. NEWSFILE        = -DNEWSGIVEN -DNEWSFILE=\"$(LIBDIR)/faces.ps\"
  846. MANDIR          = /usr/man/man$(MANSECT)
  847. MANSECT         = l
  848.  
  849. #
  850. #  If you are compiling faces under v3.x of SunOS, then uncomment this line.
  851. #OSTYPE          = -DSUNOS3.x
  852.  
  853. CFLAGS          = -g $(NEWSFILE) $(OSTYPE) $(VARIABLES)
  854. HDRS            = extern.h faces.h patchlevel.h
  855. IMAGES          = noface.icon nomail.icon noprint.icon nopaper.icon
  856.  
  857. PSLIBS          = $$NEWSHOME/lib/libcps.a
  858. PSOBJS          = get.o main.o mon.o news.o rec.o
  859. PSSRCS          = get.c main.c mon.c news.c rec.c
  860.  
  861. SVLIBS          = -lsuntool -lsunwindow -lpixrect
  862. SVOBJS          = get.o main.o mon.o rec.o sunview.o
  863. SVSRCS          = get.c main.c mon.c rec.c sunview.c
  864.  
  865. OTHERS          = README faces.1 faces.ps machine.tab people.tab Makefile
  866. SRCS            = get.c main.c mon.c news.c rec.c sunview.c
  867.  
  868. all:            sunview news
  869.  
  870. news:           ps_faces
  871.         cp ps_faces faces
  872.  
  873. sunview:        sv_faces
  874.         cp sv_faces faces
  875.  
  876. ps_faces:       $(PSOBJS)
  877.         cc -o ps_faces $(CFLAGS) $(PSOBJS) $(PSLIBS)
  878.  
  879. sv_faces:       $(SVOBJS)
  880.         cc -o sv_faces $(CFLAGS) $(SVOBJS) $(SVLIBS)
  881.  
  882. install:        $(BINARIES)
  883.         install -s -m 751 faces $(BINDIR)
  884.         install -c -m 644 faces.ps $(LIBDIR)
  885.         install -c -m 644 machine.tab $(FACEDIR)
  886.         install -c -m 644 people.tab $(FACEDIR)
  887.         install -c -m 644 faces.1 $(MANDIR)/faces.$(MANSECT)
  888.  
  889. backup:;    cp -r $(SRCS) $(HDRS) $(IMAGES) $(OTHERS) $(FACES) backdir
  890.  
  891. clean:;         rm -f *.o $(BINARIES) faces core
  892.  
  893. lint:;          lint -DNEWSGIVEN -DNEWSFILE=\"$(LIBDIR)/faces.ps\" $(PSSRCS)
  894.         lint $(SVSRCS) $(SVLIBS)
  895.  
  896. shar:;          shar.script $(OTHERS) $(HDRS) $(IMAGES) > archive.1
  897.         shar.script $(SRCS) > archive.2
  898.         shar.script $(FACES) > archive.3
  899.  
  900. create:         SCCS
  901.         -sccs create $(SRCS) $(HDRS) $(IMAGES) $(OTHERS)
  902.  
  903. SCCS:
  904.         mkdir SCCS
  905.         chmod 755 SCCS
  906.  
  907. get.o:          get.c faces.h extern.h patchlevel.h
  908. main.o:         main.c faces.h Makefile
  909. mon.o:          mon.c faces.h extern.h
  910. news.o:         news.c faces.h extern.h
  911. rec.o:          rec.c faces.h extern.h
  912. sunview.o:      sunview.c extern.h $(IMAGES)
  913. Funky_Stuff
  914. len=`wc -c < Makefile`
  915. if [ $len !=     4323 ] ; then
  916. echo error: Makefile was $len bytes long, should have been     4323
  917. fi
  918. fi # end of overwriting check
  919. if [ -f extern.h ]
  920. then
  921. echo shar: will not over-write existing file extern.h
  922. else
  923. echo shar: extracting 'extern.h',     3566 characters
  924. cat > extern.h <<'Funky_Stuff'
  925.  
  926. /*  @(#)extern.h 1.2 88/12/11
  927.  *
  928.  *  Contains the external variable definitions used by faces.
  929.  *
  930.  *  Copyright (c) Rich Burridge.
  931.  *                Sun Microsystems, Australia - All rights reserved.
  932.  *
  933.  *  Permission is given to distribute these sources, as long as the
  934.  *  copyright messages are not removed, and no monies are exchanged. 
  935.  *
  936.  *  No responsibility is taken for any errors or inaccuracies inherent
  937.  *  either to the comments or the code of this program, but if
  938.  *  reported to me then an attempt will be made to fix them.
  939.  */
  940.  
  941. extern char *get_field(), *getname() ;
  942. extern int do_check() ;
  943. struct recinfo *rec_exists() ;
  944.  
  945. extern struct comminfo *communities ;  /* Community alias/username chain. */
  946. extern struct comminfo *clast ;        /* End of chain of community records. */
  947. extern struct machinfo *machines ;     /* Known machine/communities. */
  948. extern struct machinfo *mlast ;        /* End of chain of machine records. */
  949. extern struct psinfo *psrecs ;   /* List of news.ps animation files. */
  950. extern struct psinfo *plast ;    /* End of chain of NeWS animation files. */
  951. extern struct recinfo *recs ;    /* Mail messages being monitored. */
  952. extern struct recinfo *last ;    /* End of the chain of mail records. */
  953. extern struct stat buf ;         /* Buffer for stat call for file existence. */
  954. extern long lastsize ;           /* Last known size of the mail folder. */
  955.  
  956. extern enum gr_type gtype ;  /* Indicates what graphics system is being used. */
  957. extern enum mon_type mtype ; /* What type of monitoring we should do. */
  958.  
  959. extern char bgicon[] ;     /* Alternate background pattern. */
  960. extern char community[] ;  /* Community name ("real" host name). */
  961. extern char facedir[] ;    /* Directory containing face images. */
  962. extern char iconname[] ;   /* Name of the icon file for this person. */
  963. extern char machfile[] ;   /* Name of the machine/community file. */
  964. extern char nextline[] ;   /* Next line from users mail spool file. */
  965. extern char peopfile[] ;   /* Name of the people/username file. */
  966. extern char printer[] ;    /* Printer name to monitor. */
  967. extern char progname[] ;   /* Name of this program. */
  968. extern char spoolfile[] ;  /* Full pathname of users current mail. */
  969.  
  970. extern int beeps ;         /* Number of beeps for arrival of new mail. */
  971. extern int column ;        /* Column number for next icon. */
  972. extern int dontshowno ;    /* Set if no. of messages shouldn't  be shown. */
  973. extern int dontshowtime ;  /* Set if timestamp shouldn't be shown. */
  974. extern int dontshowuser ;  /* Set if username shouldn't be shown. */
  975. extern int facetype ;      /* Type of face file found. */
  976. extern int firsttime ;     /* Zeroised after first mail/printer check. */
  977. extern int flashes ;       /* Number of flashes for arrival of new mail. */
  978. extern int height ;        /* Height in pixels of faces display. */
  979. extern int iconic ;        /* Start as an icon if set. */
  980. extern int invert ;        /* Set if to use reverse video. */
  981. extern int ix ;            /* Initial X position of the icon. */
  982. extern int iy ;            /* Initial Y position of the icon. */
  983. extern int newmail ;       /* Set if there is new mail this time around. */
  984. extern int noicons ;       /* Number of faces this time around. */
  985. extern int period ;        /* Period in seconds for checking new mail. */
  986. extern int row ;           /* Row number for next icon. */
  987. extern int width ;         /* Width in pixels of faces display. */
  988. extern int wx ;            /* Initial X position of the window. */
  989. extern int wy ;            /* Initial Y position of the window. */
  990. Funky_Stuff
  991. len=`wc -c < extern.h`
  992. if [ $len !=     3566 ] ; then
  993. echo error: extern.h was $len bytes long, should have been     3566
  994. fi
  995. fi # end of overwriting check
  996. if [ -f faces.h ]
  997. then
  998. echo shar: will not over-write existing file faces.h
  999. else
  1000. echo shar: extracting 'faces.h',     4482 characters
  1001. cat > faces.h <<'Funky_Stuff'
  1002.  
  1003. /*  @(#)faces.h 1.3 88/12/09
  1004.  *
  1005.  *  Contains all the global definitions used by faces.
  1006.  *
  1007.  *  Copyright (c) Rich Burridge - Sun Microsystems Australia.
  1008.  *                                All rights reserved.
  1009.  *
  1010.  *  Permission is given to distribute these sources, as long as the
  1011.  *  copyright messages are not removed, and no monies are exchanged. 
  1012.  *
  1013.  *  No responsibility is taken for any errors or inaccuracies inherent
  1014.  *  either to the comments or the code of this program, but if
  1015.  *  reported to me then an attempt will be made to fix them.
  1016.  */
  1017.  
  1018. #include <stdio.h>
  1019. #include <sys/fcntl.h>
  1020. #include <sys/types.h>
  1021. #include <sys/file.h>
  1022. #include <sys/stat.h>
  1023. #include <sys/time.h>
  1024. #include <pwd.h>
  1025. #include <strings.h>
  1026.  
  1027. #define  FCLOSE        (void) fclose      /* To make lint happy. */
  1028. #define  FFLUSH        (void) fflush
  1029. #define  FGETS         (void) fgets
  1030. #define  FPRINTF       (void) fprintf
  1031. #define  FSEEK         (void) fseek
  1032. #define  GETHOSTNAME   (void) gethostname
  1033. #define  GET_SUN_ICON  (void) get_sun_icon
  1034. #define  IOCTL         (void) ioctl
  1035. #define  PUTC          (void) putc
  1036. #define  SELECT        (void) select
  1037. #define  SSCANF        (void) sscanf
  1038. #define  SPRINTF       (void) sprintf
  1039. #define  STRCAT        (void) strcat
  1040. #define  STRCPY        (void) strcpy
  1041. #define  STRNCAT       (void) strncat
  1042. #define  STRNCPY       (void) strncpy
  1043. #define  UNLINK        (void) unlink
  1044.  
  1045. /* The types of display. */
  1046. enum disp_type { BOTH, ICON, WINDOW } ;
  1047.  
  1048. /* Field extraction options. */
  1049. enum field_type { HOSTNAME, TIMESTAMP, USERNAME } ;
  1050.  
  1051. /* Different types of possible face images. */
  1052. enum icon_type { NOMAIL, NOPAPER, NOPRINT, ORDINARY } ;
  1053.  
  1054. /* Text justification within face display. */
  1055. enum just_type { LEFT, RIGHT } ;
  1056.  
  1057. /* Different types of file monitoring performed by this program. */
  1058. enum mon_type { MONALL, MONNEW, MONPRINTER } ;
  1059.  
  1060. /* Different graphics systems appropriate one set in gtype. */
  1061. enum gr_type { SUNVIEW, NEWS } ;
  1062.  
  1063. /* Determine order for face type lookup. */
  1064. #define  NEWSTYPE        0
  1065. #define  SUNTYPE         1
  1066. #define  BLITTYPE        2
  1067.  
  1068. /* NeWS return event values. */
  1069. #define  DIED            100  /* Faces has been zapped. */
  1070. #define  PAINTED         101  /* Canvas/Icon needs repainting. */
  1071.  
  1072. #define  BLITHEIGHT      48   /* Maximum number of lines in a blit icon. */
  1073. #define  EQUAL(str,val)  !strncmp(str,val,strlen(val))
  1074. #define  ICONHEIGHT      64   /* Height of individual face icons. */
  1075. #define  ICONWIDTH       64   /* Width of individual face icons. */
  1076. #define  INC             argc-- ; argv++ ;
  1077. #define  MAXLINE         200  /* Maximum length for character strings. */
  1078. #define  MAXTYPES        3    /* Maximum number of different face types. */
  1079. #define  NO_PER_ROW      10   /* Number of faces per row. */
  1080.  
  1081. char *getenv(), *malloc(), *sprintf() ;
  1082.  
  1083. struct machinfo                 /* Machine/community record. */
  1084.   {
  1085.     char *machine ;             /* Machine name. */
  1086.     char *community ;           /* Community it belongs to. */
  1087.     struct machinfo *next ;     /* Pointer to next record. */
  1088.   } ;
  1089.  
  1090. struct comminfo                 /* Community alias/username records. */
  1091.   {
  1092.     char *community ;           /* Community name. */
  1093.     struct peopinfo *people ;   /* Chain of alias/usernames. */
  1094.     struct comminfo *next ;     /* Pointer to next record. */
  1095.   } ;
  1096.  
  1097. struct peopinfo                 /* Username/alias record. */
  1098.   {
  1099.     char *alias ;               /* Alias for this user. */
  1100.     char *username ;            /* Real username. */
  1101.     struct peopinfo *next ;     /* Pointer to next record. */
  1102.   } ;
  1103.  
  1104. struct psinfo                   /* News.ps animation records. */
  1105.   {
  1106.     char *name ;                /* Full pathname of news.ps file. */
  1107.     int row ;                   /* Row number where animation will occur. */
  1108.     int column ;                /* Column number where animation will occur. */
  1109.     struct psinfo *next ;       /* Pointer to next record. */
  1110.   } ;
  1111.  
  1112. struct recinfo                  /* Mail/print information record. */
  1113.   {
  1114.     char *community ;           /* Community name for this person. */
  1115.     char *iconname ;            /* Name of iconfile for this person. */
  1116.     char *username ;            /* User name for this person. */
  1117.     int total ;                 /* Total number of messages/print jobs. */
  1118.     int size ;                  /* Total size in bytes of print job. */
  1119.     char ts[6] ;                /* Latest timestamp for this user. */
  1120.     struct recinfo *next ;      /* Pointer to next record. */
  1121.   } ;
  1122. Funky_Stuff
  1123. len=`wc -c < faces.h`
  1124. if [ $len !=     4482 ] ; then
  1125. echo error: faces.h was $len bytes long, should have been     4482
  1126. fi
  1127. fi # end of overwriting check
  1128. if [ -f patchlevel.h ]
  1129. then
  1130. echo shar: will not over-write existing file patchlevel.h
  1131. else
  1132. echo shar: extracting 'patchlevel.h',      560 characters
  1133. cat > patchlevel.h <<'Funky_Stuff'
  1134.  
  1135. /*  @(#)patchlevel.h 1.1 88/12/04
  1136.  *
  1137.  *  This is the current patch level for this version of faces.
  1138.  *
  1139.  *  Copyright (c) Rich Burridge.
  1140.  *        Sun Microsystems, Australia - All rights reserved.
  1141.  *
  1142.  *  Permission is given to distribute these sources, as long as the
  1143.  *  copyright messages are not removed, and no monies are exchanged. 
  1144.  *
  1145.  *  No responsibility is taken for any errors or inaccuracies inherent
  1146.  *  either to the comments or the code of this program, but if
  1147.  *  reported to me then an attempt will be made to fix them.
  1148.  */
  1149.  
  1150. #define  PATCHLEVEL  0
  1151. Funky_Stuff
  1152. len=`wc -c < patchlevel.h`
  1153. if [ $len !=      560 ] ; then
  1154. echo error: patchlevel.h was $len bytes long, should have been      560
  1155. fi
  1156. fi # end of overwriting check
  1157. if [ -f noface.icon ]
  1158. then
  1159. echo shar: will not over-write existing file noface.icon
  1160. else
  1161. echo shar: extracting 'noface.icon',     1933 characters
  1162. cat > noface.icon <<'Funky_Stuff'
  1163. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1164.  */
  1165.     0x0000,0x1FA0,0x0000,0x0000,0x0000,0x7FFC,0x0000,0x0000,
  1166.     0x0000,0xFEFF,0x0000,0x0000,0x0001,0xBFBF,0xC000,0x0000,
  1167.     0x0001,0xEFFA,0xE000,0x0000,0x0002,0x00FF,0xF800,0x0000,
  1168.     0x0002,0x007F,0xFF80,0x0000,0x0000,0x001F,0x7E00,0x0000,
  1169.     0x000C,0x001F,0xFFC0,0x0000,0x0000,0x0015,0xFFC0,0x0000,
  1170.     0x0030,0x001F,0xFFF0,0x0000,0x0070,0x000F,0xFEB0,0x0000,
  1171.     0x00C0,0x0007,0xFFF8,0x0000,0x00E0,0x0007,0xFFE8,0x0000,
  1172.     0x01E0,0x0003,0xFFF8,0x0000,0x03C0,0x0001,0xFFF8,0x0000,
  1173.     0x03E0,0x0001,0xFFF8,0x0000,0x07C0,0x0000,0xFFF0,0x0000,
  1174.     0x0FF8,0x0000,0xBFF8,0x0000,0x0FE0,0x0000,0xFFF8,0x0000,
  1175.     0x1FF0,0x0000,0x7FF8,0x0000,0x1FF0,0x0000,0xFFF8,0x0000,
  1176.     0x1FF0,0x0000,0xFFF8,0x0000,0x1FD0,0x0000,0xFFF0,0x0000,
  1177.     0x0FE0,0x0001,0xFFF0,0x0000,0x1FA0,0x0000,0x3FF0,0x0000,
  1178.     0x0320,0x0000,0x1FE0,0x0000,0x0B80,0x0000,0x1F80,0x0000,
  1179.     0x0180,0x0000,0x1780,0x0000,0x0080,0x0000,0x1F00,0x0000,
  1180.     0x0000,0x0000,0x1F00,0x0000,0x0180,0x0000,0x0E00,0x0000,
  1181.     0x0380,0x0000,0x1E00,0x0000,0x0180,0x0000,0x0FC0,0x0000,
  1182.     0x0080,0x0000,0x1F80,0x0000,0x01C0,0x0000,0x0F80,0x0000,
  1183.     0x00C0,0x0000,0x7F80,0x0000,0x0040,0x0000,0x7F00,0x0000,
  1184.     0x0060,0x0000,0xCE00,0x0000,0x0004,0x0001,0x6000,0x0000,
  1185.     0x0000,0x0003,0xF800,0x0000,0x0002,0x0001,0xA000,0x0000,
  1186.     0x0000,0x0007,0xC000,0x0000,0x0002,0x000F,0x4000,0x0000,
  1187.     0x0000,0x804B,0xC000,0x0000,0x0002,0xBBFE,0x8000,0x0000,
  1188.     0x0000,0x8FFB,0xC000,0x0000,0x0001,0x7ABF,0xC000,0x0000,
  1189.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1190.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1191.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1192.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1193.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1194.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1195.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1196.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
  1197. Funky_Stuff
  1198. len=`wc -c < noface.icon`
  1199. if [ $len !=     1933 ] ; then
  1200. echo error: noface.icon was $len bytes long, should have been     1933
  1201. fi
  1202. fi # end of overwriting check
  1203. if [ -f nomail.icon ]
  1204. then
  1205. echo shar: will not over-write existing file nomail.icon
  1206. else
  1207. echo shar: extracting 'nomail.icon',     1933 characters
  1208. cat > nomail.icon <<'Funky_Stuff'
  1209. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1210.  */
  1211.     0x0001,0xFFFF,0xFFC0,0x0000,0x0002,0xB000,0x0030,0x0000,
  1212.     0x0003,0x5800,0x0008,0x0000,0x0006,0xADFF,0xFFC8,0x0000,
  1213.     0x0005,0x54FF,0xFFE4,0x0000,0x000A,0xAAFF,0xFFF2,0x0000,
  1214.     0x000D,0x567F,0xFFF2,0x0000,0x000A,0xAA7F,0xFFFA,0x0000,
  1215.     0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB7F,0xFFF9,0x0000,
  1216.     0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF1,0x0000,
  1217.     0x000D,0x5500,0x0001,0x0000,0x000A,0xAB00,0x0001,0x0000,
  1218.     0x000D,0x5500,0xFE01,0x0000,0x000A,0xAB03,0xFF81,0x0000,
  1219.     0x000D,0x5507,0xFFC1,0x0000,0x000A,0xAB0F,0xFFE1,0x0000,
  1220.     0x000D,0x551F,0xFFF1,0x0000,0x000A,0xAB1F,0xFFF1,0x0000,
  1221.     0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
  1222.     0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
  1223.     0x0FFD,0x553F,0xFFF9,0x0000,0x3FFA,0xAB3F,0xFFF9,0x0000,
  1224.     0x7FFD,0x553F,0xFFF9,0x0000,0xFFFA,0xAB3F,0xFFF9,0x0000,
  1225.     0xFFFD,0x551F,0xFFF1,0x0000,0xFFFA,0xAB1F,0xFFF1,0x0000,
  1226.     0xFFFD,0x550F,0xFFE1,0x0000,0xFFFA,0xAB07,0xFFC1,0x0000,
  1227.     0xFFFD,0xD503,0xFF81,0x0000,0xFFFB,0xEB00,0xFE01,0x0000,
  1228.     0x3FFD,0xF500,0x0001,0x0000,0x3FFB,0xFB00,0x0001,0x0000,
  1229.     0x0FFD,0xFD0F,0xFFE1,0x0000,0x0FFB,0xFB1F,0xFFD1,0x0000,
  1230.     0x03FD,0xFD3F,0xF7C9,0x0000,0x00FF,0xFF7F,0xF8C5,0x0000,
  1231.     0x003F,0xFD7F,0xFC45,0x0000,0x001F,0xFF7F,0xFE05,0x0000,
  1232.     0x0007,0xF560,0x3F85,0x0000,0x0003,0xF760,0x0FE5,0x0000,
  1233.     0x0000,0xFD40,0x01F5,0x0000,0x0000,0x3F40,0x00FD,0x0000,
  1234.     0x0000,0x0760,0x003D,0x0000,0x0000,0x03E0,0x000F,0x0000,
  1235.     0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80,
  1236.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x00BB,0xFFFF,0xFFFD,0xF180,
  1237.     0x009B,0xFFFF,0xFFFF,0xFD80,0x009B,0x8FFC,0xBC71,0xFD80,
  1238.     0x00AB,0x77FD,0x5BBD,0xFD80,0x00AB,0x77FD,0x5FBD,0xFD80,
  1239.     0x00B3,0x77FD,0x5C3D,0xFD80,0x00B3,0x77FD,0x5BBD,0xFD80,
  1240.     0x00BB,0x77FD,0x5BBD,0xFD80,0x00BB,0x8FFD,0x5C3D,0xFD80,
  1241.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80,
  1242.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x0000,0x0000,0x0000,0x0000
  1243. Funky_Stuff
  1244. len=`wc -c < nomail.icon`
  1245. if [ $len !=     1933 ] ; then
  1246. echo error: nomail.icon was $len bytes long, should have been     1933
  1247. fi
  1248. fi # end of overwriting check
  1249. if [ -f noprint.icon ]
  1250. then
  1251. echo shar: will not over-write existing file noprint.icon
  1252. else
  1253. echo shar: extracting 'noprint.icon',     1933 characters
  1254. cat > noprint.icon <<'Funky_Stuff'
  1255. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1256.  */
  1257.     0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFFE0,
  1258.     0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
  1259.     0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
  1260.     0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
  1261.     0x0080,0x0000,0x0000,0x0010,0x0080,0x0000,0x0000,0x0010,
  1262.     0x00FF,0xFFFF,0xFFFF,0xFFF0,0x0090,0x0400,0x0000,0x8010,
  1263.     0x0091,0xE400,0x0000,0x8010,0x0092,0x1400,0x1FF8,0x8010,
  1264.     0x0092,0x1400,0x1008,0x8010,0x0092,0x1400,0x1008,0x8010,
  1265.     0x0093,0xF400,0x1FF8,0x8010,0x0092,0xD400,0x1008,0x8010,
  1266.     0x0092,0x1400,0x1FF8,0x8010,0x0091,0xE400,0x0000,0x8020,
  1267.     0x0090,0x0400,0x0000,0x8040,0x00FF,0xFFFF,0xFFFF,0xC080,
  1268.     0x3FFF,0xFFFF,0xFFFF,0xE100,0x3880,0x0000,0x0000,0x7E00,
  1269.     0x3880,0x0000,0x0000,0x1FFC,0x3880,0x0000,0x0000,0x1FFC,
  1270.     0x3F80,0x0FEF,0xEFCF,0xE100,0x0080,0x0000,0x0000,0x01FC,
  1271.     0x0080,0x0FEF,0xEFCF,0xE100,0x0F80,0x0000,0x0000,0x0100,
  1272.     0x0880,0x0FEF,0xEFCF,0xE100,0x0F80,0x0000,0x0000,0x0100,
  1273.     0x0080,0x0000,0x0000,0x0100,0x00FF,0xFFFF,0xFFFF,0xFF00,
  1274.     0x0040,0x0000,0x0000,0x0200,0x0040,0x0000,0x0000,0x0200,
  1275.     0x003F,0xFFFF,0xFFFF,0xFC00,0x001C,0x0000,0x0001,0xC000,
  1276.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1277.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1278.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1279.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1280.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1281.     0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80,
  1282.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xBFF7,0xFF80,
  1283.     0x00FF,0xFFFF,0xFFF7,0xFF80,0x00A7,0x8FFE,0x3C74,0xF180,
  1284.     0x009B,0x77FF,0xBBB3,0x6E80,0x00BB,0x77FF,0xBBB7,0x6F80,
  1285.     0x00BB,0x77FF,0xBBB7,0x7180,0x00BB,0x77FF,0xBBB7,0x7E80,
  1286.     0x00BB,0x77FF,0xBBB3,0x6E80,0x00BB,0x8FFF,0xBC74,0xF180,
  1287.     0x00FF,0xFFFF,0xBFFF,0xFF80,0x00FF,0xFFFD,0xBFFF,0xFF80,
  1288.     0x00FF,0xFFFE,0x7FFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80
  1289. Funky_Stuff
  1290. len=`wc -c < noprint.icon`
  1291. if [ $len !=     1933 ] ; then
  1292. echo error: noprint.icon was $len bytes long, should have been     1933
  1293. fi
  1294. fi # end of overwriting check
  1295. if [ -f nopaper.icon ]
  1296. then
  1297. echo shar: will not over-write existing file nopaper.icon
  1298. else
  1299. echo shar: extracting 'nopaper.icon',     1973 characters
  1300. cat > nopaper.icon <<'Funky_Stuff'
  1301. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1302.  */                                        
  1303.     0xC000,0x0000,0x0000,0x0003,0xE000,0x0000,0x0000,0x0007,
  1304.     0x7000,0x0000,0x0000,0x000E,0x3800,0x0000,0x0000,0x001C,
  1305.     0x1C00,0x0000,0x0000,0x0038,0x0E00,0x0000,0x0000,0x0070,
  1306.     0x0700,0x0000,0x0000,0x00E0,0x0380,0x0000,0x0000,0x01C0,
  1307.     0x01C0,0x0000,0x0000,0x0380,0x00E0,0x0000,0x0000,0x0700,
  1308.     0x0070,0x0000,0x0000,0x0E00,0x0038,0x0000,0x0000,0x1C00,
  1309.     0x001C,0x0000,0x0000,0x3800,0x000E,0x0000,0x0000,0x7000,
  1310.     0x0007,0x0000,0x0000,0xE000,0x0003,0x8000,0x0001,0xC000,
  1311.     0x0001,0xC000,0x0003,0x8000,0x0000,0xE000,0x0007,0x0000,
  1312.     0x0000,0x7000,0x000E,0x0000,0x0000,0x7FFF,0xFFFF,0xC000,
  1313.     0x0000,0xBC00,0x0038,0x2000,0x0001,0x1E00,0x0070,0x1000,
  1314.     0x0002,0x0F00,0x00E0,0x0800,0x0004,0x0780,0x01C0,0x0400,
  1315.     0x0004,0x05C0,0x0380,0x0400,0x0008,0x42E0,0x0700,0x0200,
  1316.     0x0008,0xE270,0x0E00,0x0200,0x0009,0xF238,0x1C00,0x0200,
  1317.     0x0009,0xF21C,0x3800,0x0200,0x0009,0xF20E,0x7000,0x0200,
  1318.     0x0009,0xF207,0xE000,0x0200,0x0009,0xF203,0xC000,0x0200,
  1319.     0x0008,0xE203,0xC000,0x0200,0x0008,0x4207,0xE000,0x0200,
  1320.     0x0004,0x040E,0x7000,0x0400,0x0004,0x041C,0x3800,0x0400,
  1321.     0x0006,0x0838,0x1C00,0x0800,0x0007,0x1070,0x0E00,0x1000,
  1322.     0x0002,0xA0E0,0x0700,0x2000,0x0002,0x7FFF,0xFFFF,0xC000,
  1323.     0x0002,0x0380,0x01C2,0x0000,0x0002,0x0700,0x00E1,0x0000,
  1324.     0x0003,0x0E00,0x0071,0x0000,0x0001,0x1C00,0x0039,0x0000,
  1325.     0x0001,0x3800,0x001C,0x8000,0x0000,0xF000,0x000E,0x8000,
  1326.     0x0000,0xE000,0x0007,0x8000,0x0001,0xC000,0x0003,0x8000,
  1327.     0x0003,0x8000,0x0001,0xC000,0x0007,0x8000,0x0000,0xE000,
  1328.     0x000E,0x4030,0x0000,0x7000,0x001C,0x41FC,0x0000,0x7800,
  1329.     0x0038,0x4F02,0x003C,0x5C00,0x0070,0x5401,0xC1C2,0x2E00,
  1330.     0x00E0,0x6000,0x3F01,0xC700,0x01C0,0x0000,0x0000,0x0380,
  1331.     0x0380,0x0000,0x0000,0x01C0,0x0700,0x0000,0x0000,0x00E0,
  1332.     0x0E00,0x0000,0x0000,0x0070,0x1C00,0x0000,0x0000,0x0038,
  1333.     0x3800,0x0000,0x0000,0x001C,0x7000,0x0000,0x0000,0x000E,
  1334.     0xE000,0x0000,0x0000,0x0007,0xC000,0x0000,0x0000,0x0003
  1335. Funky_Stuff
  1336. len=`wc -c < nopaper.icon`
  1337. if [ $len !=     1973 ] ; then
  1338. echo error: nopaper.icon was $len bytes long, should have been     1973
  1339. fi
  1340. fi # end of overwriting check
  1341.