home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume13 / faces-1.4.5 / part05 < prev    next >
Text File  |  1990-07-02  |  36KB  |  1,244 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v13i074: Faces v1.4.5: a visual list monitor for mail etc.. (Part 5 of 7).
  3. from: rburridge@Sun.COM (Rich Burridge)
  4. Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5.  
  6. Posting-number: Volume 13, Issue 74
  7. Submitted-by: rburridge@Sun.COM (Rich Burridge)
  8. Archive-name: faces-1.4.5/part05
  9.  
  10. ------CUT HERE------faces.part5------CUT HERE------
  11. #! /bin/sh
  12. # this is a shell archive, meaning:
  13. # 1. Remove everything above the #! /bin/sh line
  14. # 2. Save the resulting text in a file.
  15. # 3. Execute the file with /bin/sh to create the files:
  16. #    faces.1
  17. #    face_update.1
  18. #    faces_cps.cps
  19. #    face_update
  20. #    noface.icon
  21. #    nomail.icon
  22. #    noprint.icon
  23. #    nopaper.icon
  24. #    nousers.icon
  25. # This archive created: Fri Jun 29 10:45:15 EST 1990
  26. #
  27. #
  28. export PATH; PATH=/bin:$PATH
  29. #
  30. if [ -f faces.1 ]
  31. then
  32. echo shar: will not over-write existing file faces.1
  33. else
  34. echo shar: extracting 'faces.1',    11202 characters
  35. cat > faces.1 <<'Funky_Stuff'
  36. .\" @(#)faces.1 1.12 90/06/26
  37. .\" tbl faces.1 | nroff -man
  38. .TH FACES 1 "26 June 1990"
  39. .SH NAME
  40. faces \- visual mail, user and print face server.
  41. .SH SYNOPSIS
  42. .B "faces
  43. [
  44. .B \-H
  45. .I hostname
  46. ]
  47. [
  48. .B \-MH
  49. ]
  50. [
  51. .B \-P
  52. .I printer
  53. ]
  54. [
  55. .B \-U
  56. ]
  57. [
  58. .B \-a
  59. ]
  60. [
  61. .B \-b
  62. .I background
  63. ]
  64. [
  65. .B \-c
  66. .I columns
  67. ]
  68. [
  69. .B \-d
  70. .I display
  71. ]
  72. [
  73. .B \-e
  74. .I program
  75. ]
  76. [
  77. .B \-f
  78. .I facedir
  79. ]
  80. [
  81. .B \-g
  82. .I geometry
  83. ]
  84. [
  85. .B \-h
  86. .I height
  87. ]
  88. [
  89. .B \-i
  90. ]
  91. [
  92. .B \-n
  93. ]
  94. [
  95. .B \-p
  96. .I period
  97. ]
  98. [
  99. .B \-s
  100. .I spoolfile
  101. ]
  102. [
  103. .B \-t
  104. ]
  105. [
  106. .B \-u
  107. ]
  108. [
  109. .B \-v
  110. ]
  111. [
  112. .B \-w
  113. .I width
  114. ]
  115. [
  116. .B \-Wi
  117. ]
  118. [
  119. .B \-Wp
  120. .I x y
  121. ]
  122. [
  123. .B \-WP
  124. .I x y
  125. ]
  126. .SH DESCRIPTION
  127. .B faces
  128. is a window based tool for visual monitoring lists. Typically it is used to
  129. monitor mail, print queues or users on a system.. It contains graphical
  130. interfaces for NeWS, SunView, XView and X11. It has five different modes of
  131. operation:
  132. .LP
  133. The default (no
  134. .BR -a ,
  135. .BR -H ,
  136. .BR -P
  137. or
  138. .B -e
  139. arguments)
  140. will monitor for new mail. By default, only the last ten
  141. messages are displayed. Using the left mouse button it is possible to
  142. toggle the text in the faces window. This will either be the username
  143. or the time the mail message arrived. You can clear this area to the
  144. background pattern by hitting the Delete key. The icon shows the image
  145. of the last message to arrive.
  146. .LP
  147. The second choice
  148. .RB ( -a )
  149. is to monitor the whole of a mail file. The open window will
  150. automatically adjust it's size to correctly show the face icons. The
  151. open window options are the username or the timestamp and number of
  152. message from that user. The icon will display the image of the last
  153. message, and a count of the total number of messages in the spool
  154. file or mail folder.
  155. .LP
  156. The third option
  157. .RB ( -P )
  158. allows this program to monitor a given print queue.
  159. This will generate a single face icon showing the job at the top of the
  160. print queue, and the text message will display the printer name plus the
  161. number of jobs to be printed. Opening the window will show images of all
  162. the jobs in the queue. The text on each image can be toggled, choices
  163. being the owners' name and the size of the job in bytes.
  164. .LP
  165. With the fourth mode
  166. .RB ( -H ),
  167. you can monitor who is logged in a machine.
  168. For each user, a face image is displayed. Text can be either the username
  169. or the time they logged on. The iconic form displays the total number of users.
  170. .LP
  171. Finally
  172. you can specify a program or shell script to run
  173. .RB ( -e ).
  174. The standard output
  175. from this program will be read by the faces program, and the appropriate faces
  176. displayed using the information provided. The format of this face information
  177. is given in the faces manual page.
  178. .LP
  179. There are special displays for no mail, no faces found, no print jobs,
  180. no paper in the printer, and no users logged into a machine.
  181. .SH OPTIONS
  182. .TP 12
  183. .BI \-H " hostname"
  184. Name of the machine to monitor. Faces will be displayed for each user
  185. logged in.
  186. .TP
  187. .B \-MH
  188. Used when the user is using MH to read mail. MH can shrink the mail
  189. spoolfile and the default mail monitoring facility within
  190. .I faces
  191. adjusts accordingly.
  192. .TP
  193. .BI \-P " printer"
  194. Printer name to monitor. If this and a mail spool file are given with the -s
  195. option,
  196. .B faces
  197. will monitor the print queue.
  198. .TP
  199. .B \-U
  200. Automatically send mail to a special mail alias, to update the
  201. .I faces
  202. database when a new X-Face: record is read. By default this special alias
  203. is
  204. .I facemaker.
  205. This should be aliased (see
  206. .IR aliases(7) )
  207. to:
  208. .br
  209. facemaker:    "|/usr/local/bin/face_update"
  210. .br
  211. By default the
  212. .I face_update
  213. shell script will not overwriting existing ikons in the faces database.
  214. Overwriting will take place if the -w option is specified.
  215. You should also note that the installation of this mail alias is not done
  216. automatically, as this might be considered a security risk on some systems.
  217. .TP
  218. .B \-a
  219. Monitor the whole of the specified mail file. The icon and open window display
  220. the appropriate faces, and dynamically change size as a new check is made and
  221. if the mail file has altered size.
  222. .TP
  223. .BI \-b " background"
  224. Sun icon file containing an alternate background pattern. The default is
  225. root grey.
  226. .TP
  227. .BI \-c " columns"
  228. Number of columns of face images in each row. By default this is 10.
  229. .TP
  230. .BI \-d " display"
  231. Used with the X11 variant of faces to give a display type.
  232. .TP
  233. .BI \-e " program"
  234. Name of the user program to run. This program or shell script will generate
  235. lines which the faces program will read, and then display the appropriate
  236. face images. The format of these input records is described in a previous
  237. section.
  238. .TP
  239. .BI \-f " facedir"
  240. If specified, then this directory is searched first for face images. If
  241. they are not found, then the default face directory will be searched.
  242. The default face directory is
  243. .BR /usr/local/faces .
  244. .TP
  245. .BI \-g " geometry"
  246. Used with the X11 variant of faces to give geometry information.
  247. .TP
  248. .BI \-h " height"
  249. The height of each face image in pixels. Note that this is the height of
  250. the area allocated to each image, and not necessarily the height of the
  251. displayed image inside.
  252. .TP
  253. .B \-i
  254. Invert the faces images before displaying them. For use by people who
  255. started SunView with the
  256. .B \-i
  257. option.
  258. .TP
  259. .B \-n
  260. Do not display the number of messages from this person. The default is to
  261. display, and a count is shown at the bottom right corner of the face for
  262. this person.
  263. .TP
  264. .BI \-p " period"
  265. The period in seconds before the mail spool file or the print queue is
  266. scanned again for new mail. The default is 60 seconds.
  267. .TP
  268. .BI \-s " spoolfile"
  269. Use an alternate mail spool file to monitor. The default is
  270. .BI /var/spool/mail/ username
  271. where
  272. .I username
  273. is the name of the user currently logged in.
  274. .TP
  275. .B \-t
  276. Do not display a timestamp of the last message from this person. The
  277. default is to display, and a timestamp is shown at the bottom left
  278. corner of the face for this person.
  279. .TP
  280. .B \-u
  281. Do not display the username on the face icon. The default is to display,
  282. and the username will appear over the face icon, when the window is
  283. opened.
  284. .TP
  285. .B \-v
  286. Print the version number of this release of the
  287. .B faces
  288. program.
  289. .TP
  290. .BI \-w " width"
  291. The width of each face image in pixels. Note that this is the width of
  292. the area allocated to each image, and not necessarily the width of the
  293. displayed image inside.
  294. .TP
  295. .B \-Wi
  296. Start the
  297. .B faces
  298. program up in iconic form. SunView automatically uses this flag, but the
  299. NeWS version will also.
  300. .TP
  301. .BI \-Wp " x y"
  302. Start the open window position at
  303. .I x y
  304. .TP
  305. .BI \-WP " x y"
  306. Start the icon position at
  307. .I x y
  308. .SH "FACE FORMATS"
  309. There is a special faces directory containing a fixed three-level hierarchy,
  310. which by default is
  311. .IR /usr/local/faces .
  312. The first level is a machine name, the second level a user name, and the
  313. third level is the actual face image, which can be stored in four formats.
  314. If the file is named
  315. .I 48x48x1
  316. then it is a Blit ikon, if it is called
  317. .I sun.icon
  318. then the image is stored in Sun icon format, if the file is named
  319. .I face.xbm
  320. then it is an X11 xbm formatted image, and if the file is called 
  321. .I face.ps
  322. then it contains executable NeWS code. Multiple formats can be stored
  323. in the same username directory, and the one used will depend upon which
  324. graphics interface is currently being used. If the
  325. .I username
  326. level is a plain file (not a directory) it is assumed to be a
  327. Blit icon.
  328. .LP
  329. To access the face for the mail name
  330. .I machine!uid
  331. take the result of the first successful open from the following list of files:
  332. .RS 6
  333. /usr/local/faces/machine/uid/iconname
  334. .br
  335. /usr/local/faces/misc./uid/iconname
  336. .br
  337. /usr/local/faces/machine/unknown/iconname
  338. .br
  339. /usr/local/faces/misc./unknown/iconname
  340. .RE
  341. If the
  342. .B -f
  343. argument is specified the given directory is searched before
  344. .IR /usr/local/faces .
  345. The iconname above, consists of the following choices, in the given order:
  346. .TS
  347. r1 c1 l1 l1 l1 l1 .
  348. NeWS    -    face.ps,    sun.icon,    48x48x1,    face.xbm
  349. SunView    -    sun.icon,    48x48x1,    face.xbm
  350. X11    -    face.xbm,    sun.icon,    48x48x1
  351. .TE
  352. Domain names are now fully supported. For example, if mail arrives from
  353. .I foo@a.b.c
  354. then
  355. .I faces
  356. will use the directories
  357. .IR a.b.c ,
  358. .I b.c
  359. and
  360. .I c
  361. .RE for the machine name:
  362. The directory
  363. .I misc.
  364. hold faces for generic users such as
  365. .I root
  366. and
  367. .I uucp.
  368. If the faces directory hierarchy is not found, then a blank face image
  369. will be used.
  370. .LP
  371. Faces information is administered by a pair of ASCII files in the faces
  372. directory that associate related machines and faces. The machine table
  373. .I machine.tab
  374. attaches machines to communities; the line
  375. .RS 6
  376. stard=sunaus
  377. .RE
  378. puts the machine
  379. .I stard
  380. in community
  381. .I sunaus.
  382. The people table associates a community/alias pair, with a real username.
  383. .RS 6
  384. sunaus/rburridge=richb
  385. .RE
  386. causes the alias
  387. .I rburridge
  388. to be translated into the real username
  389. .I richb
  390. for the community
  391. .I sunaus
  392. .LP
  393. Note that you still need to use
  394. .I mailtool
  395. or some other mail reading utility to actually read the mail that this program
  396. monitors;
  397. .I faces
  398. simply displays who the mail is from.
  399. .LP
  400. When new mail arrives,
  401. .B faces
  402. will beep and flash appropriately, depending upon the set parameters in
  403. the users
  404. .I .mailrc
  405. file.
  406. .LP
  407. If you are using the NeWS version and creating face images of the
  408. .I face.ps
  409. form, then the following points should be noted:
  410. All graphics operations should be performed on the unit square; and
  411. the final image will be translated to a 64 x 64 square image at
  412. the appropriate position in the faces display.
  413. .LP
  414. If you are using the
  415. .B \-e
  416. option, then the user program or shell script should firstly generate a
  417. single record with the following fixed format, beginning at column 1:
  418. .RS 6
  419. Cols=mm Rows=nn
  420. .RE
  421. where mm is the size in columns for the faces window and icon, and
  422. nn is the size in rows. A window will be generated with these dimensions.
  423. .LP
  424. This record is followed by the face information records, which are again
  425. in fixed format. As well as providing the username and hostname, there are
  426. four other fields which can be filled in, which denote what is displayed
  427. on the left or the right sides of the bottom area of the window and icon
  428. displays. The format for these records is:
  429. .TS
  430. center, box;
  431. l c c
  432. l n n .
  433. Description    Start column    Number of columns.
  434. _
  435. username    1    20
  436. hostname    21    20
  437. window left    41    10
  438. window right    51    10
  439. icon left      61    10
  440. icon right    71    10
  441. .TE
  442. .LP
  443. Any of these fields may be left blank. There are also four special usernames,
  444. which will display the appropriate standard icons. These are
  445. .B "NOMAIL, NOPAPER, NOPRINT "
  446. and
  447. .B "NOUSERS."
  448. .SH "SEE ALSO"
  449. mail(1), elm(1), mush(1), aliases(7).
  450. .SH FILES
  451. .TP 30
  452. .B /var/spool/mail
  453. directory for system mailboxes
  454. .TP
  455. .B /.face
  456. the users compressed face image
  457. .TP
  458. .B /.mailrc
  459. mail startup file
  460. .TP
  461. .B /usr/local/faces
  462. main directory containing the face icons.
  463. .TP
  464. .B /usr/local/faces/people.tab
  465. people/file equivalences
  466. .TP
  467. .B /usr/local/faces/machine.tab
  468. machine/community equivalences
  469. .SH HISTORY
  470. .I faces
  471. is based on the Bell Labs Edition 8 program
  472. .IR vismon(9) .
  473. This program is not derived from
  474. .I vismon
  475. source.
  476. .SH BUGS
  477. The machine and people table lookup is hopelessly inefficient and
  478. will need to be improved as the faces database gets larger.
  479. .SH AUTHOR
  480. .TS
  481. l r1 l .
  482. Rich Burridge,    Internet:    richb@Aus.Sun.COM
  483. PHONE: +61 2 413 2666    ACSnet:    richb@sunaus.sun.oz.au
  484. .TE
  485. Funky_Stuff
  486. len=`wc -c < faces.1`
  487. if [ $len !=    11202 ] ; then
  488. echo error: faces.1 was $len bytes long, should have been    11202
  489. fi
  490. fi # end of overwriting check
  491. if [ -f face_update.1 ]
  492. then
  493. echo shar: will not over-write existing file face_update.1
  494. else
  495. echo shar: extracting 'face_update.1',     1775 characters
  496. cat > face_update.1 <<'Funky_Stuff'
  497. .\" @(#)face_update.1 1.2 90/06/26
  498. .TH FACE_UPDATE 1L "25 June 1990"
  499. .SH NAME
  500. faces \- automatic faces database update script.
  501. .SH SYNOPSIS
  502. .B "face_update
  503. [
  504. .B \-o
  505. ]
  506. [
  507. .B \-w
  508. ]
  509. .SH DESCRIPTION
  510. .B face_update
  511. is a shell script for automatically updating the
  512. .B faces
  513. database with "on-the-fly" faces. When
  514. .B faces
  515. is run with the -U option, every time that a new "on-the-fly" face is found,
  516. it is mailed to a special mail alias which by default is
  517. .I facemaker.
  518. There would be a special entry in the
  519. .I /etc/aliases
  520. file for
  521. .I facemaker.
  522. Something like:
  523. .LP
  524.     "|/usr/local/bin/face_update"
  525. .LP
  526. This mail message has a certain format. The Subject line contains the file
  527. in the database to be updated. The body of the mail message is 48 lines in
  528. Blit ikon (48x48x1) format. Depending upon command line options, this new
  529. faces is included in the
  530. .I faces
  531. database.
  532. .B face_update
  533. will also perform various tests on the mail message to ensure it is a valid
  534. update.
  535. .LP
  536. An entry will be written in the
  537. .I /var/log/facelog
  538. log file upon completion. This entry will consist of a timestamp, the name
  539. of the user who sent the update, the ikon that was updated, and the status
  540. of the update (whether it was successful or not).
  541. .LP
  542. Note that the log file (
  543. .I /var/log/facelog)
  544. needs to be created and owned by
  545. .I daemon
  546. with permissions of 0644.
  547. .SH OPTIONS
  548. .TP
  549. .B \-o
  550. This is to allow ikons to be stored in the "old" style format, where the
  551. username was the ikon, and not a directory where the icons were kept.
  552. .TP
  553. .B \-w
  554. If the given ikon is already present in the database, this option will allow
  555. it to be overwritten. By default this doesn't happen.
  556. .SH FILES
  557. .TP
  558. .B /var/log/facelog
  559. log file for all ikon updates.
  560. .SH SEE ALSO
  561. faces(1)
  562. .SH AUTHOR
  563. Hal Stern    Sun Microsystems Inc.
  564. Funky_Stuff
  565. len=`wc -c < face_update.1`
  566. if [ $len !=     1775 ] ; then
  567. echo error: face_update.1 was $len bytes long, should have been     1775
  568. fi
  569. fi # end of overwriting check
  570. if [ -f faces_cps.cps ]
  571. then
  572. echo shar: will not over-write existing file faces_cps.cps
  573. else
  574. echo shar: extracting 'faces_cps.cps',     5301 characters
  575. cat > faces_cps.cps <<'Funky_Stuff'
  576.  
  577. %  These are NeWS dependent graphics routines used by faces.
  578. %
  579. %  @(#)faces_cps.cps 1.1 90/06/24
  580. %
  581. %  Copyright (c) Rich Burridge - Sun Microsystems Australia.
  582. %                                All rights reserved.
  583. %
  584. %  Date        Vers    Who            What
  585. %  ===========================================================================
  586. %  90Jun23  1.8.2   PMLashley    Converted to a cps file
  587. %
  588. %
  589. %  Modifications to MakeFrame and ShowDisplay by Neil Crellin and
  590. %  Mark Andrews {neilc,marka}@natmlab.dms.oz.au to fix the (0,0)
  591. %  redraw bug.
  592. %
  593. %  Permission is given to distribute these sources, as long as the
  594. %  copyright messages are not removed, and no monies are exchanged.
  595. %
  596. %  No responsibility is taken for any errors or inaccuracies inherent
  597. %  either to the comments or the code of this program, but if reported
  598. %  to me, then an attempt will be made to fix them.
  599.  
  600.    cdef ps_clearbox(int x, int y, int width, int height, postscript cv)
  601.        cv setcanvas
  602.        x y width height rectpath 0 setgray fill
  603.  
  604.  
  605.    cdef ps_dopixrects(int width, int height, postscript cv)
  606.        cv setcanvas
  607.        0 0 width height rectpath
  608.        cv reshapecanvas
  609.  
  610.  
  611.    cdef ps_execfile(string psfile, int width, int height, int x, int y)
  612.        /Iconic? Frame send {
  613.        /IconCanvas Frame send setcanvas
  614.        } {
  615.        /ClientCanvas Frame send setcanvas
  616.        } ifelse
  617.  
  618.        x y translate
  619.        width height scale
  620.        psfile (r) file cvx exec
  621.        
  622.  
  623.  
  624.    cdef ps_initfont()
  625.        /Font /Courier findfont 7 scalefont def
  626.  
  627.  
  628.  
  629.    cdef ps_makeframe(int FrameX, int FrameY, int FrameWidth, int FrameHeight,
  630.        int IconX, int IconY, int IsIcon)
  631.        
  632.        /DIED            100                 def
  633.        /PAINTED            101                 def
  634.        /LEFTDOWN        102                 def
  635.        /ClientHeight    FrameHeight 10 sub  def
  636.        /ClientWidth     FrameWidth 10 sub   def
  637.        /IconHeight      FrameHeight         def
  638.        /IconWidth       FrameWidth          def
  639.        
  640.        /PR framebuffer /new ClassCanvas send def
  641.        {
  642.        /Transparent false promote
  643.        /Mapped false promote
  644.        /Retained true promote
  645.        } PR send
  646.        
  647.        /MPR framebuffer /new ClassCanvas send def
  648.        {
  649.        /Transparent false promote
  650.        /Mapped false promote
  651.        /Retained true promote
  652.        } MPR send
  653.        
  654.        /Frame framebuffer /new DefaultWindow send def
  655.        {
  656.        /IconX   IconX   def
  657.        /IconY   IconY   def
  658.        /FrameX  FrameX  def
  659.        /FrameY  FrameY  def
  660.        /BorderTop 5 def
  661.        /BorderLeft 5 def
  662.        /BorderBottom 5 def
  663.        /BorderRight 5 def
  664.        /ControlSize 0 def
  665.        /ForkPaintClient? false def
  666.  
  667.        /destroy {
  668.            DIED typedprint
  669.            DestroyFrame DestroyClient
  670.        } installmethod
  671.  
  672.        /flipiconic {
  673.            PAINTED typedprint
  674.            /unmap self send
  675.            /Iconic? Iconic? not def
  676.            IconX null eq {
  677.            FrameX FrameY FrameHeight add IconHeight sub /move self send
  678.            } if
  679.            ZoomProc
  680.            /map self send
  681.        } installmethod
  682.  
  683.        /PaintClient {
  684.            gsave
  685.            1 fillcanvas
  686.            ClientWidth ClientHeight scale
  687.            0 setgray
  688.            Invert PR imagemaskcanvas
  689.            grestore
  690.        } installmethod
  691.  
  692.        /PaintIcon {
  693.            gsave
  694.            clippath pathbbox pop pop translate
  695.            1 fillcanvas
  696.            IconWidth IconHeight scale
  697.            0 setgray
  698.            Invert MPR imagemaskcanvas
  699.            grestore
  700.        } installmethod
  701.  
  702.        /ShapeIconCanvas {
  703.            gsave
  704.            ParentCanvas setcanvas
  705.            IconX null eq IconY null eq or {
  706.            0 0
  707.            } {
  708.            IconX IconY
  709.            } ifelse
  710.            
  711.            IconWidth IconHeight IconPath IconCanvas reshapecanvas
  712.            grestore
  713.        } installmethod
  714.  
  715.        /ForkFrameEventMgr {
  716.            ClientMenu null ne {
  717.            FrameInterests /ClientMenuEvent
  718.            MenuButton { /showat ClientMenu send }
  719.            /DownTransition ClientCanvas
  720.            eventmgrinterest put
  721.            } if
  722.  
  723.            FrameInterests /CheckTheMailDrooper
  724.            PointButton { LEFTDOWN typedprint }
  725.            /DownTransition ClientCanvas
  726.            eventmgrinterest put
  727.            /FrameEventMgr FrameInterests forkeventmgr def
  728.        } installmethod
  729.  
  730.        /ShowDisplay {   %  cw  ch  iw  ih  =>  -
  731.            /IconHeight      exch    promote
  732.            /IconWidth       exch    promote
  733.            /ClientHeight    exch    promote
  734.            /ClientWidth     exch    promote
  735.  
  736.            FrameX FrameY
  737.            ClientWidth 10 add  ClientWidth 10 add
  738.            reshape
  739.            
  740.            ShapeIconCanvas
  741.            painticon
  742.            
  743.            ShapeClientCanvas
  744.            paintclient
  745.            map
  746.        } installmethod
  747.        } Frame send
  748.  
  749.        IsIcon 1 eq { /flipiconic Frame send } if
  750.  
  751.  
  752.    cdef ps_maketext(string str, int x, int y, postscript cv)
  753.        cv setcanvas
  754.        Font setfont
  755.        1 setgray
  756.        x y moveto
  757.        str show
  758.  
  759.  
  760.    cdef ps_moveimage(postscript src, int width, int height, int x, int y, postscript dest)
  761.        dest setcanvas
  762.        gsave
  763.            x y translate
  764.            width height scale
  765.            src imagecanvas
  766.        grestore
  767.  
  768.  
  769.    cdef ps_shiftimage(int dx, int width, int height, postscript cv)
  770.        cv setcanvas
  771.        0 0 width height rectpath
  772.        dx 0 copyarea
  773.  
  774.  
  775.    cdef ps_showdisplay(int cw, int ch, int iw, int ih)
  776.        cw ch iw ih /ShowDisplay Frame send
  777.  
  778.    cdef ps_buildicon(string name, int width, int height, cstring data)
  779.        name cvlit width height 1 {} { data } buildimage def
  780. Funky_Stuff
  781. len=`wc -c < faces_cps.cps`
  782. if [ $len !=     5301 ] ; then
  783. echo error: faces_cps.cps was $len bytes long, should have been     5301
  784. fi
  785. fi # end of overwriting check
  786. if [ -f face_update ]
  787. then
  788. echo shar: will not over-write existing file face_update
  789. else
  790. echo shar: extracting 'face_update',     3905 characters
  791. cat > face_update <<'Funky_Stuff'
  792. #! /bin/sh
  793. #
  794. #  Script to automatically update the faces database with a new X-Face: image.
  795. #
  796. #  Usage: face_update [-o] [-w]
  797. #
  798. #  -o  -  use "old" updating method of saving the ikon as the username.
  799. #
  800. #  -w  -  will allow the face_update script to automaticaly overwrite
  801. #         existing ikon files.
  802. #
  803. #  Copyright (c) Hal Stern - Sun Microsystems Inc - June 1990.
  804. #
  805. #  Permission is given to distribute these sources, as long as the
  806. #  copyright messages are not removed, and no monies are exchanged.
  807. #
  808. #  No responsibility is taken for any errors inherent either
  809. #  to the comments or the code of this program, but if reported
  810. #  to me then an attempt will be made to fix them.
  811. #
  812. #-----------------------------------------------------------------------------
  813. #
  814. #    face_update    1.3    6/26/90 15:41:26
  815. #
  816. #    failure()
  817. #    shell routine to handle various failures
  818. #    and send a note back to the sender explaining
  819. #    what happened
  820.  
  821. failure() {
  822.     ( 
  823.     echo "" 
  824.     echo "The Face Update server was not able to process"
  825.     echo "your request because "
  826.     echo $reason
  827.     echo ""
  828.     ) | fmt | Mail -s "Face update failed" $sender 
  829.     rm -f /tmp/facereply.$$ /tmp/face.$$ /tmp/facebits.$$
  830.     if [ ! -z "$LOGFILE" ]
  831.     then
  832.         echo `date` $sender '    ' update failed for $facefile >> $LOGFILE
  833.     fi
  834.     exit 0
  835. }
  836. #
  837. #    name of the logfile, if you don't want to log
  838. #    changes, make this an empty string, ie
  839. #    LOGFILE=""
  840. #
  841. LOGFILE=/var/log/facelog
  842.  
  843. #    save the incoming message in a tmp file for
  844. #    parsing later
  845.  
  846. cat - > /tmp/face.$$
  847.  
  848. #    parse command line arguments    
  849.  
  850. overwrite=""
  851. oldstyle=""
  852.  
  853. while [ $# != 0 ]
  854. do
  855.     case $1 in
  856.     -w)
  857.         overwrite=yes
  858.         ;;
  859.     -o)
  860.         oldstyle=yes
  861.         ;;
  862.     *)
  863.         ;;
  864.     esac
  865.     shift
  866. done
  867.  
  868. #    find out who sent this request, and the file name
  869. #    where the face is to be deposited
  870.  
  871. sender=`fgrep 'From ' /tmp/face.$$ | awk -F' ' '{print $2}'`
  872. if [ -z "$sender" ]
  873. then    
  874.     sender=root
  875. fi
  876.  
  877. facefile=`fgrep 'Subject:' /tmp/face.$$ | awk -F':' '{print $2}' | sed -e 's@ @@g'`
  878. if [ -z "$facefile" ]
  879. then
  880.     reason="it is missing a Subject line"
  881.     failure
  882. fi
  883.  
  884. #    overwriting check
  885. if [ -f $facefile ] && [ -z "$overwrite" ]
  886. then
  887.     reason="it cannot overwrite existing file $facefile"
  888.     failure
  889. fi
  890.  
  891. #    extract the "interesting" part of the file.
  892. #    i'm assuming here that almost all RFC822 headers have
  893. #    colons in them, so it will speed up the egrep by removing
  894. #    obvious mail headers first
  895.  
  896. fgrep -v ':' /tmp/face.$$ |
  897.     egrep '0x[0-9A-F]*,0x[0-9A-F]*,0x[0-9A-F]*' > /tmp/facebits.$$
  898.  
  899. #    count the number of lines that are in 48x48x1 format
  900. linecnt=`wc -l /tmp/facebits.$$ | awk '{print $1}' | sed -e 's@ @@g'`
  901.  
  902. #    if this file doesn't contain a good image, complain
  903.  
  904. if [ "$linecnt" != "48" ]
  905. then
  906.     reason="the submitted icon did not contain a 48x48x1 file"
  907.     failure
  908. fi
  909.  
  910. #    get the various directory names for the user, machine and
  911. #    top-level face archive
  912.  
  913. userdir=`dirname $facefile`
  914. username=`basename $userdir`
  915. hostdir=`dirname $userdir`
  916. hostname=`basename $hostdir`
  917. facedir=`dirname $hostdir`
  918.  
  919. if [ ! -d $facedir ]
  920. then
  921.     reason="the face directory $facedir does not exist"
  922.     failure
  923. fi
  924.  
  925. #    if any of these don't exist, create them if we can
  926. #    this allows on-the-fly face addition for new hosers or
  927. #    machines
  928.  
  929. for d in $hostdir $userdir
  930. do
  931.     if [ -f $d ]
  932.     then
  933.         break
  934.     fi
  935.  
  936.     if [ ! -d $d ]
  937.     then
  938.         if [ $d = $userdir ] && [ ! -z "$oldstyle" ]
  939.         then
  940.             :
  941.         else
  942.             mkdir $d 2>/dev/null
  943.             if [ $? != 0 ]
  944.             then
  945.                 reason="the server could not create directory $d"
  946.                 failure
  947.             fi
  948.         fi
  949.     fi
  950. done
  951.  
  952. if [ -f "$userdir" ]
  953. then
  954.     facefile=$userdir
  955. fi
  956.  
  957. #    if we're overwriting, at least save the old file
  958.  
  959. if [ -f $facefile ]
  960. then
  961.     mv $facefile ${facefile}-
  962. fi
  963.  
  964. #    tuck the new file in place, clean up the mess, and 
  965. #    send an acknowledgement
  966.  
  967. cp /tmp/facebits.$$ $facefile
  968. rm -f /tmp/face.$$ /tmp/facebits.$$
  969. #Mail -s "Face update succeeded" $sender
  970. if [ ! -z "$LOGFILE" ]
  971. then
  972.     echo `date` $sender '    ' face update succeeded for $facefile >> $LOGFILE
  973. fi
  974. exit 0
  975. Funky_Stuff
  976. len=`wc -c < face_update`
  977. if [ $len !=     3905 ] ; then
  978. echo error: face_update was $len bytes long, should have been     3905
  979. fi
  980. fi # end of overwriting check
  981. if [ -f noface.icon ]
  982. then
  983. echo shar: will not over-write existing file noface.icon
  984. else
  985. echo shar: extracting 'noface.icon',     1933 characters
  986. cat > noface.icon <<'Funky_Stuff'
  987. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  988.  */
  989.     0x0000,0x1FA0,0x0000,0x0000,0x0000,0x7FFC,0x0000,0x0000,
  990.     0x0000,0xFEFF,0x0000,0x0000,0x0001,0xBFBF,0xC000,0x0000,
  991.     0x0001,0xEFFA,0xE000,0x0000,0x0002,0x00FF,0xF800,0x0000,
  992.     0x0002,0x007F,0xFF80,0x0000,0x0000,0x001F,0x7E00,0x0000,
  993.     0x000C,0x001F,0xFFC0,0x0000,0x0000,0x0015,0xFFC0,0x0000,
  994.     0x0030,0x001F,0xFFF0,0x0000,0x0070,0x000F,0xFEB0,0x0000,
  995.     0x00C0,0x0007,0xFFF8,0x0000,0x00E0,0x0007,0xFFE8,0x0000,
  996.     0x01E0,0x0003,0xFFF8,0x0000,0x03C0,0x0001,0xFFF8,0x0000,
  997.     0x03E0,0x0001,0xFFF8,0x0000,0x07C0,0x0000,0xFFF0,0x0000,
  998.     0x0FF8,0x0000,0xBFF8,0x0000,0x0FE0,0x0000,0xFFF8,0x0000,
  999.     0x1FF0,0x0000,0x7FF8,0x0000,0x1FF0,0x0000,0xFFF8,0x0000,
  1000.     0x1FF0,0x0000,0xFFF8,0x0000,0x1FD0,0x0000,0xFFF0,0x0000,
  1001.     0x0FE0,0x0001,0xFFF0,0x0000,0x1FA0,0x0000,0x3FF0,0x0000,
  1002.     0x0320,0x0000,0x1FE0,0x0000,0x0B80,0x0000,0x1F80,0x0000,
  1003.     0x0180,0x0000,0x1780,0x0000,0x0080,0x0000,0x1F00,0x0000,
  1004.     0x0000,0x0000,0x1F00,0x0000,0x0180,0x0000,0x0E00,0x0000,
  1005.     0x0380,0x0000,0x1E00,0x0000,0x0180,0x0000,0x0FC0,0x0000,
  1006.     0x0080,0x0000,0x1F80,0x0000,0x01C0,0x0000,0x0F80,0x0000,
  1007.     0x00C0,0x0000,0x7F80,0x0000,0x0040,0x0000,0x7F00,0x0000,
  1008.     0x0060,0x0000,0xCE00,0x0000,0x0004,0x0001,0x6000,0x0000,
  1009.     0x0000,0x0003,0xF800,0x0000,0x0002,0x0001,0xA000,0x0000,
  1010.     0x0000,0x0007,0xC000,0x0000,0x0002,0x000F,0x4000,0x0000,
  1011.     0x0000,0x804B,0xC000,0x0000,0x0002,0xBBFE,0x8000,0x0000,
  1012.     0x0000,0x8FFB,0xC000,0x0000,0x0001,0x7ABF,0xC000,0x0000,
  1013.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1014.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1015.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1016.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1017.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1018.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1019.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  1020.     0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
  1021. Funky_Stuff
  1022. len=`wc -c < noface.icon`
  1023. if [ $len !=     1933 ] ; then
  1024. echo error: noface.icon was $len bytes long, should have been     1933
  1025. fi
  1026. fi # end of overwriting check
  1027. if [ -f nomail.icon ]
  1028. then
  1029. echo shar: will not over-write existing file nomail.icon
  1030. else
  1031. echo shar: extracting 'nomail.icon',     1933 characters
  1032. cat > nomail.icon <<'Funky_Stuff'
  1033. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1034.  */
  1035.     0x0001,0xFFFF,0xFFC0,0x0000,0x0002,0xB000,0x0030,0x0000,
  1036.     0x0003,0x5800,0x0008,0x0000,0x0006,0xADFF,0xFFC8,0x0000,
  1037.     0x0005,0x54FF,0xFFE4,0x0000,0x000A,0xAAFF,0xFFF2,0x0000,
  1038.     0x000D,0x567F,0xFFF2,0x0000,0x000A,0xAA7F,0xFFFA,0x0000,
  1039.     0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB7F,0xFFF9,0x0000,
  1040.     0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF1,0x0000,
  1041.     0x000D,0x5500,0x0001,0x0000,0x000A,0xAB00,0x0001,0x0000,
  1042.     0x000D,0x5500,0xFE01,0x0000,0x000A,0xAB03,0xFF81,0x0000,
  1043.     0x000D,0x5507,0xFFC1,0x0000,0x000A,0xAB0F,0xFFE1,0x0000,
  1044.     0x000D,0x551F,0xFFF1,0x0000,0x000A,0xAB1F,0xFFF1,0x0000,
  1045.     0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
  1046.     0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000,
  1047.     0x0FFD,0x553F,0xFFF9,0x0000,0x3FFA,0xAB3F,0xFFF9,0x0000,
  1048.     0x7FFD,0x553F,0xFFF9,0x0000,0xFFFA,0xAB3F,0xFFF9,0x0000,
  1049.     0xFFFD,0x551F,0xFFF1,0x0000,0xFFFA,0xAB1F,0xFFF1,0x0000,
  1050.     0xFFFD,0x550F,0xFFE1,0x0000,0xFFFA,0xAB07,0xFFC1,0x0000,
  1051.     0xFFFD,0xD503,0xFF81,0x0000,0xFFFB,0xEB00,0xFE01,0x0000,
  1052.     0x3FFD,0xF500,0x0001,0x0000,0x3FFB,0xFB00,0x0001,0x0000,
  1053.     0x0FFD,0xFD0F,0xFFE1,0x0000,0x0FFB,0xFB1F,0xFFD1,0x0000,
  1054.     0x03FD,0xFD3F,0xF7C9,0x0000,0x00FF,0xFF7F,0xF8C5,0x0000,
  1055.     0x003F,0xFD7F,0xFC45,0x0000,0x001F,0xFF7F,0xFE05,0x0000,
  1056.     0x0007,0xF560,0x3F85,0x0000,0x0003,0xF760,0x0FE5,0x0000,
  1057.     0x0000,0xFD40,0x01F5,0x0000,0x0000,0x3F40,0x00FD,0x0000,
  1058.     0x0000,0x0760,0x003D,0x0000,0x0000,0x03E0,0x000F,0x0000,
  1059.     0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80,
  1060.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x00BB,0xFFFF,0xFFFD,0xF180,
  1061.     0x009B,0xFFFF,0xFFFF,0xFD80,0x009B,0x8FFC,0xBC71,0xFD80,
  1062.     0x00AB,0x77FD,0x5BBD,0xFD80,0x00AB,0x77FD,0x5FBD,0xFD80,
  1063.     0x00B3,0x77FD,0x5C3D,0xFD80,0x00B3,0x77FD,0x5BBD,0xFD80,
  1064.     0x00BB,0x77FD,0x5BBD,0xFD80,0x00BB,0x8FFD,0x5C3D,0xFD80,
  1065.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80,
  1066.     0x00FF,0xFFFF,0xFFFF,0xFF80,0x0000,0x0000,0x0000,0x0000
  1067. Funky_Stuff
  1068. len=`wc -c < nomail.icon`
  1069. if [ $len !=     1933 ] ; then
  1070. echo error: nomail.icon was $len bytes long, should have been     1933
  1071. fi
  1072. fi # end of overwriting check
  1073. if [ -f noprint.icon ]
  1074. then
  1075. echo shar: will not over-write existing file noprint.icon
  1076. else
  1077. echo shar: extracting 'noprint.icon',     1997 characters
  1078. cat > noprint.icon <<'Funky_Stuff'
  1079. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1080.  */
  1081.     0x0000,0x0000,0x4008,0x0000,
  1082.     0x0000,0x0000,0x0008,0x0000,
  1083.     0x0058,0x7001,0xC38B,0x0E00,
  1084.     0x0064,0x8800,0x444C,0x9100,
  1085.     0x0044,0x8800,0x4448,0x9000,
  1086.     0x0044,0x8800,0x4448,0x8E00,
  1087.     0x0044,0x8800,0x4448,0x8100,
  1088.     0x0044,0x8800,0x444C,0x9100,
  1089.     0x0044,0x7000,0x438B,0x0E00,
  1090.     0x0000,0x0000,0x4000,0x0000,
  1091.     0x0000,0x0002,0x4000,0x0000,
  1092.     0x0000,0x0001,0x8000,0x0000,
  1093.     0x0000,0x0000,0x0000,0x0000,
  1094.     0x00FF,0xFFFF,0xFFFF,0xFFE0,
  1095.     0x0080,0x0000,0x0000,0x0010,
  1096.     0x0080,0x0000,0x0000,0x0010,
  1097.     0x0080,0x0000,0x0000,0x0010,
  1098.     0x0080,0x0000,0x0000,0x0010,
  1099.     0x0080,0x0000,0x0000,0x0010,
  1100.     0x0080,0x0000,0x0000,0x0010,
  1101.     0x0080,0x0000,0x0000,0x0010,
  1102.     0x0080,0x0000,0x0000,0x0010,
  1103.     0x00FF,0xFFFF,0xFFFF,0xFFF0,
  1104.     0x0090,0x0400,0x0000,0x8010,
  1105.     0x0091,0xE400,0x0000,0x8010,
  1106.     0x0092,0x1400,0x1FF8,0x8010,
  1107.     0x0092,0x1400,0x1008,0x8010,
  1108.     0x0092,0x1400,0x1008,0x8010,
  1109.     0x0093,0xF400,0x1FF8,0x8010,
  1110.     0x0092,0xD400,0x1008,0x8010,
  1111.     0x0092,0x1400,0x1FF8,0x8010,
  1112.     0x0091,0xE400,0x0000,0x8020,
  1113.     0x0090,0x0400,0x0000,0x8040,
  1114.     0x00FF,0xFFFF,0xFFFF,0xC080,
  1115.     0x3FFF,0xFFFF,0xFFFF,0xE100,
  1116.     0x3880,0x0000,0x0000,0x7E00,
  1117.     0x3880,0x0000,0x0000,0x1FFC,
  1118.     0x3880,0x0000,0x0000,0x1FFC,
  1119.     0x3F80,0x0FEF,0xEFCF,0xE100,
  1120.     0x0080,0x0000,0x0000,0x01FC,
  1121.     0x0080,0x0FEF,0xEFCF,0xE100,
  1122.     0x0F80,0x0000,0x0000,0x0100,
  1123.     0x0880,0x0FEF,0xEFCF,0xE100,
  1124.     0x0F80,0x0000,0x0000,0x0100,
  1125.     0x0080,0x0000,0x0000,0x0100,
  1126.     0x00FF,0xFFFF,0xFFFF,0xFF00,
  1127.     0x0040,0x0000,0x0000,0x0200,
  1128.     0x0040,0x0000,0x0000,0x0200,
  1129.     0x003F,0xFFFF,0xFFFF,0xFC00,
  1130.     0x001C,0x0000,0x0001,0xC000,
  1131.     0x0000,0x0000,0x0000,0x0000,
  1132.     0x0000,0x0000,0x0000,0x0000,
  1133.     0x0000,0x0000,0x0000,0x0000,
  1134.     0x0000,0x0000,0x0000,0x0000,
  1135.     0x0000,0x0000,0x0000,0x0000,
  1136.     0x0000,0x0000,0x0000,0x0000,
  1137.     0x0000,0x0000,0x0000,0x0000,
  1138.     0x0000,0x0000,0x0000,0x0000,
  1139.     0x0000,0x0000,0x0000,0x0000,
  1140.     0x0000,0x0000,0x0000,0x0000,
  1141.     0x0000,0x0000,0x0000,0x0000,
  1142.     0x0000,0x0000,0x0000,0x0000,
  1143.     0x0000,0x0000,0x0000,0x0000,
  1144.     0x0000,0x0000,0x0000,0x0000
  1145. Funky_Stuff
  1146. len=`wc -c < noprint.icon`
  1147. if [ $len !=     1997 ] ; then
  1148. echo error: noprint.icon was $len bytes long, should have been     1997
  1149. fi
  1150. fi # end of overwriting check
  1151. if [ -f nopaper.icon ]
  1152. then
  1153. echo shar: will not over-write existing file nopaper.icon
  1154. else
  1155. echo shar: extracting 'nopaper.icon',     1973 characters
  1156. cat > nopaper.icon <<'Funky_Stuff'
  1157. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1158.  */                                        
  1159.     0xC000,0x0000,0x0000,0x0003,0xE000,0x0000,0x0000,0x0007,
  1160.     0x7000,0x0000,0x0000,0x000E,0x3800,0x0000,0x0000,0x001C,
  1161.     0x1C00,0x0000,0x0000,0x0038,0x0E00,0x0000,0x0000,0x0070,
  1162.     0x0700,0x0000,0x0000,0x00E0,0x0380,0x0000,0x0000,0x01C0,
  1163.     0x01C0,0x0000,0x0000,0x0380,0x00E0,0x0000,0x0000,0x0700,
  1164.     0x0070,0x0000,0x0000,0x0E00,0x0038,0x0000,0x0000,0x1C00,
  1165.     0x001C,0x0000,0x0000,0x3800,0x000E,0x0000,0x0000,0x7000,
  1166.     0x0007,0x0000,0x0000,0xE000,0x0003,0x8000,0x0001,0xC000,
  1167.     0x0001,0xC000,0x0003,0x8000,0x0000,0xE000,0x0007,0x0000,
  1168.     0x0000,0x7000,0x000E,0x0000,0x0000,0x7FFF,0xFFFF,0xC000,
  1169.     0x0000,0xBC00,0x0038,0x2000,0x0001,0x1E00,0x0070,0x1000,
  1170.     0x0002,0x0F00,0x00E0,0x0800,0x0004,0x0780,0x01C0,0x0400,
  1171.     0x0004,0x05C0,0x0380,0x0400,0x0008,0x42E0,0x0700,0x0200,
  1172.     0x0008,0xE270,0x0E00,0x0200,0x0009,0xF238,0x1C00,0x0200,
  1173.     0x0009,0xF21C,0x3800,0x0200,0x0009,0xF20E,0x7000,0x0200,
  1174.     0x0009,0xF207,0xE000,0x0200,0x0009,0xF203,0xC000,0x0200,
  1175.     0x0008,0xE203,0xC000,0x0200,0x0008,0x4207,0xE000,0x0200,
  1176.     0x0004,0x040E,0x7000,0x0400,0x0004,0x041C,0x3800,0x0400,
  1177.     0x0006,0x0838,0x1C00,0x0800,0x0007,0x1070,0x0E00,0x1000,
  1178.     0x0002,0xA0E0,0x0700,0x2000,0x0002,0x7FFF,0xFFFF,0xC000,
  1179.     0x0002,0x0380,0x01C2,0x0000,0x0002,0x0700,0x00E1,0x0000,
  1180.     0x0003,0x0E00,0x0071,0x0000,0x0001,0x1C00,0x0039,0x0000,
  1181.     0x0001,0x3800,0x001C,0x8000,0x0000,0xF000,0x000E,0x8000,
  1182.     0x0000,0xE000,0x0007,0x8000,0x0001,0xC000,0x0003,0x8000,
  1183.     0x0003,0x8000,0x0001,0xC000,0x0007,0x8000,0x0000,0xE000,
  1184.     0x000E,0x4030,0x0000,0x7000,0x001C,0x41FC,0x0000,0x7800,
  1185.     0x0038,0x4F02,0x003C,0x5C00,0x0070,0x5401,0xC1C2,0x2E00,
  1186.     0x00E0,0x6000,0x3F01,0xC700,0x01C0,0x0000,0x0000,0x0380,
  1187.     0x0380,0x0000,0x0000,0x01C0,0x0700,0x0000,0x0000,0x00E0,
  1188.     0x0E00,0x0000,0x0000,0x0070,0x1C00,0x0000,0x0000,0x0038,
  1189.     0x3800,0x0000,0x0000,0x001C,0x7000,0x0000,0x0000,0x000E,
  1190.     0xE000,0x0000,0x0000,0x0007,0xC000,0x0000,0x0000,0x0003
  1191. Funky_Stuff
  1192. len=`wc -c < nopaper.icon`
  1193. if [ $len !=     1973 ] ; then
  1194. echo error: nopaper.icon was $len bytes long, should have been     1973
  1195. fi
  1196. fi # end of overwriting check
  1197. if [ -f nousers.icon ]
  1198. then
  1199. echo shar: will not over-write existing file nousers.icon
  1200. else
  1201. echo shar: extracting 'nousers.icon',     1933 characters
  1202. cat > nousers.icon <<'Funky_Stuff'
  1203. /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  1204.  */
  1205.     0x0000,0x0000,0x0000,0x0000,0x0000,0x001F,0xFC00,0x0000,
  1206.     0x0000,0x01FF,0xFFC0,0x0000,0x0000,0x0FFF,0xFFF8,0x0000,
  1207.     0x0000,0x3FFF,0xFFFE,0x0000,0x0000,0xFFFF,0xFFFF,0x8000,
  1208.     0x0001,0xFFFF,0xFFFF,0xC000,0x0007,0xFFFF,0xFFFF,0xF000,
  1209.     0x000F,0xFFFF,0xFFFF,0xF800,0x001F,0xFFF0,0x07FF,0xFC00,
  1210.     0x003F,0xFF00,0x007F,0xFE00,0x007F,0xFC00,0x001F,0xFF00,
  1211.     0x00FF,0xF000,0x0007,0xFF80,0x01FF,0xF800,0x0003,0xFFC0,
  1212.     0x01FF,0xFC00,0x0000,0xFFC0,0x03FF,0xFE00,0x0000,0x7FE0,
  1213.     0x07FE,0x3F00,0x0000,0x1FF0,0x07E0,0x9F80,0x0000,0x51F0,
  1214.     0x0FE8,0xC1C0,0x0000,0xC5F8,0x0F8F,0x54E0,0x000A,0xBC78,
  1215.     0x1F35,0xE6F0,0x0019,0xEB3C,0x1F56,0xBA78,0x0017,0x5ABC,
  1216.     0x1C66,0xDF3C,0x003E,0xD98C,0x3DBA,0xF998,0x0067,0xD76E,
  1217.     0x3CBB,0xAEC3,0xE05D,0x774E,0x38EF,0xF7EC,0x1AFB,0xFDC6,
  1218.     0x3B7F,0x7D70,0x06AF,0xBFB6,0x795D,0xDDE0,0x03EE,0xEEA7,
  1219.     0x7C6F,0x77C0,0x017B,0xBD8F,0x7DBF,0xBE80,0x00DF,0x7F6F,
  1220.     0x7CAE,0xEB1E,0x3C75,0xDD4F,0x7E3B,0xFD33,0x666F,0xF71F,
  1221.     0x7EDF,0x5F21,0x427E,0xBEDF,0x7E51,0xEE2D,0x5A35,0xE29F,
  1222.     0x7F06,0xAE2D,0xDA35,0x583F,0x7F82,0x8223,0xE220,0x50FF,
  1223.     0x7F80,0x023F,0xFE20,0x00FF,0x7F80,0x0207,0xF028,0x01FF,
  1224.     0x3FC0,0x0207,0xF02C,0x01FE,0x3FC0,0x0203,0xE02E,0x01FE,
  1225.     0x3FC0,0x0231,0xC62F,0x01FE,0x3FE0,0x0178,0x0F4F,0x83FE,
  1226.     0x1FE0,0x016C,0x1B5F,0xC3FC,0x1FF0,0x0133,0xE65F,0xE7FC,
  1227.     0x1FF0,0x0098,0x0C9F,0xF7FC,0x0FF8,0x004F,0xF93F,0xFFF8,
  1228.     0x0FFC,0x0060,0x037F,0xFFF8,0x07FC,0x0030,0x067F,0xFFF0,
  1229.     0x07FE,0x000C,0x18FF,0xFFF0,0x03FF,0x0003,0xE03F,0xFFE0,
  1230.     0x01FF,0x8000,0x001F,0xFFC0,0x01FF,0xE000,0x000F,0xFFC0,
  1231.     0x00FF,0xF000,0x0007,0xFF80,0x0FFF,0xFFFF,0xFFFF,0xFFF0,
  1232.     0x0FFF,0xFFFF,0xFFFF,0xFFF0,0x0A78,0xFFDD,0xC78E,0x9E30,
  1233.     0x09B7,0x7FDD,0xBB76,0x6DD0,0x0BB7,0x7FDD,0xBF76,0xFDF0,
  1234.     0x0BB7,0x7FDD,0xC706,0xFE30,0x0BB7,0x7FDD,0xFB7E,0xFFD0,
  1235.     0x0BB7,0x7FD9,0xBB76,0xFDD0,0x0BB8,0xFFE5,0xC78E,0xFE30,
  1236.     0x0FFF,0xFFFF,0xFFFF,0xFFF0,0x0FFF,0xFFFF,0xFFFF,0xFFF0
  1237. Funky_Stuff
  1238. len=`wc -c < nousers.icon`
  1239. if [ $len !=     1933 ] ; then
  1240. echo error: nousers.icon was $len bytes long, should have been     1933
  1241. fi
  1242. fi # end of overwriting check
  1243.  
  1244.