home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume5 / faces-1.3 / part03 < prev    next >
Text File  |  1989-02-03  |  44KB  |  1,635 lines

  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: v05i094: faces v1.3 - visual mail/print monitor, Part 3/3
  5. Message-ID: <1704@basser.oz>
  6. Date: 24 Dec 88 02:14:48 GMT
  7. Sender: root@basser.oz
  8. Organization: Sun Microsystems, Sydney
  9. Lines: 1623
  10. Approved: john@cs.su.oz.AU
  11.  
  12. Posting-number: Volume 5, Issue 94
  13. Submitted-By: Rich Burridge <richb@sunchat.oz.AU>
  14. Archive-name: faces-1.3/part03
  15.  
  16. ------CUT HERE------CUT HERE------
  17. #! /bin/sh
  18. # this is a shell archive, meaning:
  19. # 1. Remove everything above the #! /bin/sh line
  20. # 2. Save the resulting text in a file.
  21. # 3. Execute the file with /bin/sh to create the files:
  22. #    get.c
  23. #    main.c
  24. #    facedir (directory)
  25. # This archive created: Sun Dec 11 14:57:29 EST 1988
  26. #
  27. #
  28. export PATH; PATH=/bin:$PATH
  29. #
  30. if [ -f get.c ]
  31. then
  32. echo shar: will not over-write existing file get.c
  33. else
  34. echo shar: extracting 'get.c',    10551 characters
  35. cat > get.c <<'Funky_Stuff'
  36. /*LINTLIBRARY*/
  37. #ifndef lint
  38. static char sccsid[] = "@(#)get.c 1.2 88/12/09" ;
  39. #endif
  40.     
  41. /*  Extraction routines used by faces.
  42.  *
  43.  *  Copyright (c) Rich Burridge - Sun Microsystems Australia.
  44.  *                                All rights reserved.
  45.  *
  46.  *  Permission is given to distribute these sources, as long as the
  47.  *  copyright messages are not removed, and no monies are exchanged. 
  48.  *
  49.  *  No responsibility is taken for any errors on inaccuracies inherent
  50.  *  either to the comments or the code of this program, but if reported
  51.  *  to me, then an attempt will be made to fix them.
  52.  */
  53.  
  54. #include "faces.h"
  55. #include "extern.h"
  56. #include "patchlevel.h"
  57.  
  58.  
  59. get_blit_ikon(name, buf)      /* Load blit ikon file. */
  60. char *name ;
  61. unsigned short buf[256] ;
  62. {
  63.   FILE *fin ;
  64.   char *ptr ;
  65.   int i, j, temp ;
  66.  
  67.   if ((fin = fopen(name, "r")) == NULL) return(-1) ;
  68.   for (i = 0; i < BLITHEIGHT; i++)
  69.     {
  70.       FGETS(nextline, MAXLINE, fin) ;
  71.       ptr = nextline ;
  72.       for (j = 0; j < 3; j++)
  73.         {
  74.           while (*ptr == ' ' || *ptr == '\t') ptr++ ;
  75.           SSCANF(ptr,"0x%X",&temp) ;
  76.           buf[i*4+j] = (short) temp ;
  77.           ptr = index(ptr,',') ;
  78.           ptr++ ;         
  79.         }                 
  80.       buf[i*4+3] = 0 ;    
  81.     }
  82.   for (i = BLITHEIGHT; i < ICONHEIGHT; i++)
  83.     for (j = 0; j < 4; j++) buf[i*4+j] = 0 ;
  84.   FCLOSE(fin) ;
  85.   return(0) ;
  86. }
  87.  
  88.  
  89. char *
  90. get_field(ftype,line)      /* Get field option from given line. */
  91. enum field_type ftype ;
  92. char *line ;
  93. {
  94.   char *ptr1, *ptr2 ;
  95.   char str1[5],str2[MAXLINE],str3[4],str4[4],str5[3],str6[9],str7[5] ;
  96.  
  97.   SSCANF(line,"%s %s %s %s %s %s %s",
  98.                str1,str2,str3,str4,str5,str6,str7) ;
  99.   switch ((int) ftype)
  100.     {
  101.       case HOSTNAME  : if ((ptr2 = rindex(str2,'!')) != NULL)
  102.                          {
  103.                            ptr1 = str2 ;
  104.                            *ptr2 = '\0' ;
  105.                            while (ptr2 != ptr1)
  106.                              {
  107.                                *ptr2-- ;
  108.                                if (*ptr2 == '!') return(ptr2+1) ;
  109.                              }
  110.                            return(ptr2) ;
  111.                          }
  112.                        else if ((ptr2 = index(str2,'@')) != NULL)
  113.                          return(ptr2+1) ;
  114.                        else return(NULL) ;
  115.  
  116.       case TIMESTAMP : str6[5] = '\0' ;
  117.                        return(str6) ;
  118.  
  119.       case USERNAME  : if ((ptr2 = rindex(str2,'!')) != NULL)
  120.                          return(ptr2+1) ;
  121.                        else if ((ptr2 = index(str2,'@')) != NULL)
  122.                          {
  123.                            ptr1 = str2 ;
  124.                            *ptr2 = '\0' ;
  125.                            while (ptr2 != ptr1)
  126.                              {
  127.                                *ptr2-- ;
  128.                                if (*ptr2 == '@') return(ptr2+1) ;
  129.                              }
  130.                            return(ptr2) ;
  131.                          }
  132.                        else return(str2) ;
  133.     }
  134. /*NOTREACHED*/
  135. }
  136.  
  137.  
  138. get_icon(dirname, buf)            /* Read in ikon or .icon file. */
  139. char *dirname ;
  140. unsigned short buf[256] ;
  141. {
  142.  
  143. /*  Attempts to open the correct face file.
  144.  *  If the face file is face.ps, then another record is added to the list
  145.  *  of NeWS .ps files to animate at a later time.
  146.  *  If this is 48x48x1 or sun.icon, and the open is successful, then the
  147.  *  face image is read into buf.
  148.  *  -1 is returned on failure.
  149.  */
  150.  
  151.   char *ptr ;
  152.  
  153.   ptr = rindex(dirname,'/') ;     /* Find last slash in iconname. */
  154.   if (EQUAL(ptr+1,"face.ps"))
  155.     if (get_news_icon(dirname) == 0) return NEWSTYPE ;
  156.   if (EQUAL(ptr+1,"sun.icon"))
  157.     if (get_sun_icon(dirname, buf) == 0) return SUNTYPE ;
  158.   if (EQUAL(ptr+1,"48x48x1"))
  159.     if (get_blit_ikon(dirname, buf) == 0) return BLITTYPE ;
  160.   return -1 ;
  161. }
  162.  
  163.  
  164. get_news_icon(name)    /* Create record for news.ps file. */
  165. char *name ;
  166. {
  167.   FILE *fin ;
  168.  
  169.   if (gtype != NEWS) return -1 ;
  170.   if ((fin = fopen(name, "r")) == NULL) return -1 ;
  171.   FCLOSE(fin) ;
  172.   add_ps_rec(row, column, name) ;
  173.   return 0 ;
  174. }
  175.  
  176.  
  177. get_options(argc,argv)    /* Read and process command line options. */
  178. int argc ;
  179. char *argv[] ;
  180. {
  181.   char next[MAXLINE] ;    /* The next command line parameter. */
  182.  
  183.   INC ;
  184.   while (argc > 0)
  185.     {
  186.       if (argv[0][0] == '-')
  187.         switch (argv[0][1])
  188.           {
  189.             case 'P' : mtype = MONPRINTER ;  /* Monitor printer queue. */
  190.                        INC ;
  191.                        getparam(printer, argv, "-P needs printer name") ;
  192.                        break ;
  193.             case 'a' : mtype = MONALL ;      /* Monitor all of the spoolfile. */
  194.                        break ;
  195.             case 'b' : INC ;                 /* Alternate background pattern. */
  196.                        getparam(bgicon, argv, "-b needs background icon") ;
  197.                        break ;
  198.             case 'f' : INC ;                 /* New directory for face icons. */
  199.                        getparam(facedir, argv, "-f needs face directory") ;
  200.                        SPRINTF(machfile, "%s/machine.tab", facedir) ;
  201.                        SPRINTF(peopfile, "%s/people.tab", facedir) ;
  202.                        break ;
  203.             case 'i' : invert = 1 ;          /* Reverse video. */
  204.                        break ;
  205.             case 'n' : dontshowno = 1 ;      /* Don't show number of messages. */
  206.                        break ;
  207.             case 'p' : INC ;                 /* No. of seconds between checks. */
  208.                        getparam(next, argv, "-p needs period time") ;
  209.                        period = atoi(next) ; /* No. of seconds between checks. */
  210.                        break ;
  211.             case 's' : INC ;                 /* Alternative spoolfile. */
  212.                        getparam(spoolfile, argv, "-s needs spool directory") ;
  213.                        break ;
  214.             case 't' : dontshowtime = 1 ;    /* Do not show timestamps. */
  215.                        break ;
  216.             case 'u' : dontshowuser = 1 ;    /* Do not show usernames. */
  217.                        break ;
  218.             case 'v' : FPRINTF(stderr, "%s version 1.3.%1d\n", progname, PATCHLEVEL) ;
  219.                        exit(1) ;
  220.  
  221. /*  SunView windowing arguments. -Wp, -WP and -Wi are used in the NeWS
  222.  *  implementation to initially position the window and icon.
  223.  */
  224.  
  225.             case 'W' : switch (argv[0][2])
  226.                          {
  227.                            case 'H' : break ;   /* -WH, no sub-args follow */
  228.                            case 'i' : iconic = 1 ;
  229.                                       break ;   /* -Wi, start as an icon. */
  230.                            case 'g' :           /* -Wg, set default color. */
  231.                            case 'n' : break ;   /* -Wn, no label at all */
  232.                            case 'h' :           /* -Wh, height */
  233.                            case 'I' :           /* -WI "icon filename" */
  234.                            case 'l' :           /* -Wl "some window label" */
  235.                            case 'L' :           /* -Wl "some icon label" */
  236.                            case 't' :           /* Font filename */
  237.                            case 'T' :           /* Icon font filename */
  238.                            case 'w' : INC ;     /* Width, in columns. */
  239.                                       break ;
  240.                            case 'p' : INC ;     /* -Wp xnum ynum */
  241.                                       getparam(next, argv,
  242.                                                "-Wp needs x coordinate") ;
  243.                                       wx = atoi(next) ;
  244.                                       INC ;
  245.                                       getparam(next, argv,
  246.                                                "-Wp needs y coordinate") ;
  247.                                       wy = atoi(next) ;
  248.                                       break ;
  249.                            case 'P' : INC ;      /* -WP xnum ynum */
  250.                                       getparam(next, argv,
  251.                                                "-WP needs x coordinate") ;
  252.                                       ix = atoi(next) ;
  253.                                       INC ;
  254.                                       getparam(next, argv,
  255.                                                "-WP needs y coordinate") ;
  256.                                       iy = atoi(next) ;
  257.                                       break ;
  258.                            case 's' : INC ; INC ;  /* -Ws xnum ynum */
  259.                                       break ;
  260.                            case 'b' :              /* -Wb r g b (bg color spec) */
  261.                            case 'f' : INC ; INC ; INC ;  /* Same, fg color */
  262.                                       break ;
  263.                            default :  FPRINTF(stderr,"%s: -W%c unknown argument\n",
  264.                                                       progname, argv[0][2]) ;
  265.                                       break ;
  266.                          }
  267.                        break ;
  268.             default  : FPRINTF(stderr, "Usage: %s [-P printer] ", progname) ;
  269.                        FPRINTF(stderr, "[-Wi] [-Wp x y] [-WP x y] ") ;
  270.                        FPRINTF(stderr, "[-b background] [-f facedir] [-i] [-n] ") ;
  271.                        FPRINTF(stderr, "[-p period] [-s spoolfile] [-u] [-t] [-v]\n") ;
  272.                        exit(1) ;
  273.           }
  274.       INC ;
  275.     }
  276. }
  277.  
  278.  
  279. char *
  280. getname()       /* Get users name from passwd entry. */
  281. {
  282.   char *getlogin(), *username ;
  283.   struct passwd *getpwuid(), *pwent ;
  284.  
  285.   if (!(username = getlogin()))
  286.     {
  287.       pwent = getpwuid(getuid()) ;
  288.       username = pwent->pw_name ;
  289.       endpwent() ;                   /* Close the passwd file */
  290.     }
  291.   return username ;
  292. }
  293.  
  294.  
  295. getparam(s, argv, errmes)
  296. char *s, *argv[], *errmes ;
  297. {
  298.   if (*argv != NULL && argv[0][0] != '-') STRCPY(s, *argv) ;
  299.   else
  300.     {
  301.       FPRINTF(stderr,"%s: %s as next argument.\n", progname, errmes) ;
  302.       exit(1) ;
  303.     }
  304. }
  305.  
  306.  
  307. get_sun_icon(name, buf)     /* Load Sun icon file. */
  308. char *name ;
  309. unsigned short buf[256] ;
  310. {
  311.   FILE *fin ;
  312.   char *ptr ;
  313.   int i, j, temp ;
  314.  
  315.   if ((fin = fopen(name, "r")) == NULL) return -1 ;
  316.   FGETS(nextline, MAXLINE, fin) ;        /* Load Sun icon file. */
  317.   FGETS(nextline, MAXLINE, fin) ;
  318.   for (i = 0; i < 32; i++)
  319.     {
  320.       FGETS(nextline, MAXLINE, fin) ;
  321.       ptr = nextline ;
  322.       for (j = 0; j < 8; j++)
  323.         {
  324.           while (*ptr == ' ' || *ptr == '\t') ptr++ ;
  325.           SSCANF(ptr,"0x%X",&temp) ;
  326.           buf[i*8+j] = (short) temp ;
  327.           ptr = index(ptr, ',') ;
  328.           ptr++ ;
  329.         }
  330.     }    
  331.   FCLOSE(fin) ;
  332.   return(0) ;
  333. }
  334. Funky_Stuff
  335. len=`wc -c < get.c`
  336. if [ $len !=    10551 ] ; then
  337. echo error: get.c was $len bytes long, should have been    10551
  338. fi
  339. fi # end of overwriting check
  340. if [ -f main.c ]
  341. then
  342. echo shar: will not over-write existing file main.c
  343. else
  344. echo shar: extracting 'main.c',    10551 characters
  345. cat > main.c <<'Funky_Stuff'
  346. #ifndef lint
  347. static char sccsid[] = "@(#)main.c 1.2 88/12/11" ;
  348. #endif
  349.  
  350. /*  Icon face server for monitoring mail and print jobs.
  351.  *  This program is based on the AT&T v8 mail face server,
  352.  *  vismon, but is not derived from vismon source.
  353.  * 
  354.  *  Copyright (c) Rich Burridge - Sun Microsystems Australia.
  355.  *                                All rights reserved.
  356.  *
  357.  *  Permission is given to distribute these sources, as long as the
  358.  *  copyright messages are not removed, and no monies are exchanged. 
  359.  * 
  360.  *  No responsibility is taken for any errors on inaccuracies inherent
  361.  *  either to the comments or the code of this program, but if reported
  362.  *  to me, then an attempt will be made to fix them.
  363.  */
  364.  
  365. #include "faces.h"
  366.  
  367. char *get_field(), *getname() ;
  368. int do_check() ;
  369. struct recinfo *rec_exists() ;
  370.  
  371. struct comminfo *communities = NULL ;  /* Community alias/username chain. */
  372. struct comminfo *clast = NULL ;     /* End of chain of community records. */
  373. struct machinfo *machines = NULL ;  /* Known machine/communities. */
  374. struct machinfo *mlast = NULL ;     /* End of chain of machine records. */
  375. struct psinfo *psrecs = NULL ;      /* List of news.ps animation files. */
  376. struct psinfo *plast = NULL ;       /* End of chain of NeWS animation files. */
  377. struct recinfo *recs = NULL ;       /* Mail messages being monitored. */
  378. struct recinfo *last = NULL ;       /* End of the chain of mail records. */
  379. struct stat buf ;                   /* Buffer for file existence stat call. */
  380. long lastsize ;                     /* Last known size of the mail folder. */
  381.  
  382. enum gr_type gtype ;     /* Indicates what graphics system is being used. */
  383. enum mon_type mtype ;    /* Type of monitoring operation to do. */
  384.  
  385. char bgicon[MAXLINE] ;           /* Alternate background pattern. */
  386. char community[MAXLINE] ;        /* Community name ("real" host name). */
  387. char facedir[MAXLINE] ;          /* Directory containing face images. */
  388. char fname[MAXTYPES][MAXLINE] ;  /* Array of various face name types. */
  389. char iconname[MAXLINE] ;    /* Name of the icon file for this person. */
  390. char machfile[MAXLINE] ;    /* Name of the machine/community file. */
  391. char nextline[MAXLINE] ;    /* Next line from users mail spool file. */
  392. char peopfile[MAXLINE] ;    /* Name of the people/username file. */
  393. char printer[MAXLINE] ;     /* Printer name to monitor. */
  394. char progname[MAXLINE] ;    /* Name of this program. */
  395. char spoolfile[MAXLINE] ;   /* Full pathname of users current mail. */
  396. char *username ;            /* This users name. */
  397.  
  398. int beeps ;         /* Number of beeps for arrival of new mail. */
  399. int column ;        /* Column number for next icon. */
  400. int dontshowno ;    /* Indicates if number of messages should be displayed. */
  401. int dontshowtime ;  /* Indicates if timestamp for new mail should be shown. */
  402. int dontshowuser ;  /* Indicates if username for new mail should be shown. */
  403. int facetype ;      /* Type of face file found. */
  404. int firsttime ;     /* Zeroised after first mail/printer check. */
  405. int flashes ;       /* Number of flashes for arrival of new mail. */
  406. int height ;        /* Height in pixels of faces display. */
  407. int iconic ;        /* Start as an icon if set. */
  408. int invert ;        /* Set if to use reverse video. */
  409. int ix ;            /* Initial X position of the icon. */
  410. int iy ;            /* Initial Y position of the icon. */
  411. int newmail ;       /* Set if there is new mail this time around. */
  412. int noicons ;       /* Number of faces this time around. */
  413. int period ;        /* Period in seconds for new mail check. */
  414. int row ;           /* Row number for next icon. */
  415. int width ;         /* Width in pixels of faces display. */
  416. int wx ;            /* Initial X position of the window. */
  417. int wy ;            /* Initial Y position of the window. */
  418.  
  419.  
  420. main(argc,argv)
  421. int argc ;
  422. char *argv[] ;
  423. {
  424.   STRCPY(progname,argv[0]) ;    /* Save this programs name. */
  425.   initialise() ;                /* Set default values for various options. */
  426.   get_options(argc,argv) ;      /* Read and process command line options. */
  427.   read_mailrc() ;               /* Get number of flashes and beeps. */
  428.   read_machines() ;             /* Setup up the machine/community chain. */
  429.   read_aliases() ;              /* Setup the hostname alias subchains. */
  430.   if (init_ws_type())           /* Determine window system type. */
  431.     {
  432.       FPRINTF(stderr,"Error initialising window system.\n") ;
  433.       exit(1) ;
  434.     }
  435.   make_icon() ;                 /* Create default faces icon. */
  436.   make_frame(argc,argv) ;       /* Create faces window/icon. */
  437.   do_check() ;                  /* Generate initial faces display. */
  438.   start_tool() ;                /* Start up and display the faces icon. */
  439. }
  440.  
  441.  
  442. a_to_u(community, user, realname)    /* Turn possible alias into username. */
  443. char *community, *user, *realname ;
  444. {
  445.   struct comminfo *ctemp ;
  446.   struct peopinfo *ptemp ;
  447.  
  448.   STRCPY(realname, user) ;      /* In case alias not found. */
  449.   ctemp = communities ;         /* Point to chain of communities. */
  450.   while (ctemp != NULL)
  451.     if (EQUAL(ctemp->community, community))
  452.       {
  453.         ptemp = ctemp->people ;
  454.         while (ptemp != NULL)
  455.           if (EQUAL(ptemp->alias, user))
  456.             {
  457.               STRCPY(realname, ptemp->username) ;
  458.               return ;
  459.             }
  460.           else ptemp = ptemp->next ;
  461.         return ;
  462.       }
  463.     else ctemp = ctemp->next ;
  464. }
  465.  
  466.  
  467. initialise()
  468. {
  469.   lastsize = 0 ;              /* Initial size of spoolfile. */
  470.   firsttime = 1 ;             /* No checks made yet. */
  471.   iconic = 0 ;                /* Initially an open window. */
  472.   STRCPY(fname[BLITTYPE], "48x48x1") ;
  473.   STRCPY(fname[SUNTYPE], "sun.icon") ;
  474.   STRCPY(fname[NEWSTYPE], "face.ps") ;
  475.   wx = wy = ix = iy = 0 ;
  476.  
  477. #ifdef FBMONTYPE
  478.   mtype = FBMONTYPE ;         /* Type of monitoring to do. */
  479. #else
  480.   mtype = MONNEW ;            /* Just monitor new mail by default. */
  481. #endif FBMONTYPE
  482.  
  483. #ifdef BACKGROUND
  484.   STRCPY(bgicon, BACKGROUND) ;          /* Alternate background pattern. */
  485. #else
  486.   STRCPY(bgicon, "") ;                  /* Default is to use root gray. */
  487. #endif BACKGROUND
  488.  
  489. #ifdef FACEDIR
  490.   STRCPY(facedir,FACEDIR) ;  /* Different directory for face icons. */
  491. #else
  492.   STRCPY(facedir,"/usr/local/faces") ;  /* Directory for face icons. */
  493. #endif FACEDIR
  494.  
  495.   SPRINTF(machfile, "%s/machine.tab", facedir) ;
  496.   SPRINTF(peopfile, "%s/people.tab", facedir) ;
  497.  
  498. #ifdef INVERT
  499.   invert = INVERT ;          /* Set indicates reverse video. */
  500. #else
  501.   invert = 0 ;               /* Default is normal video. */
  502. #endif INVERT
  503.  
  504. #ifdef PERIOD
  505.   period = PERIOD ;          /* Period for new mail/print check. */
  506. #else
  507.   period = 60 ;              /* Default time in seconds for new check. */
  508. #endif PERIOD
  509.  
  510. #ifdef DONTSHOWNO
  511.   dontshowno = DONTSHOWNO ;  /* If nonzero, do not show number of messages. */
  512. #else
  513.   dontshowno = 0 ;           /* Show number of messages for this face. */
  514. #endif DONTSHOWNO
  515.  
  516. #ifdef SPOOLFILE
  517.   STRCPY(spoolfile,SPOOLFILE) ;   /* Alternative spoolfile to monitor. */
  518. #else
  519.   username = getname() ;     /* Get users name from passwd entry. */
  520.   SPRINTF(spoolfile,"/usr/spool/mail/%s",username) ;
  521. #endif SPOOLFILE
  522.  
  523. #ifdef DONTSHOWTIME
  524.   dontshowtime = DONTSHOWTIME ;    /* If nonzero, do not show timestamp. */
  525. #else
  526.   dontshowtime = 0 ;         /* Show time stamp for new mail for this face. */
  527. #endif DONTSHOWTIME
  528.  
  529. #ifdef DONTSHOWUSER
  530.   dontshowuser = DONTSHOWUSER ;    /* If nonzero, do not show username. */
  531. #else
  532.   dontshowuser = 0 ;         /* Show username on the face icons. */
  533. #endif DONTSHOWUSER
  534. }
  535.  
  536.  
  537. h_to_c(host, community)        /* Turn hostname into community name. */
  538. char *host, *community ;
  539. {
  540.   struct machinfo *temp ;      /* Pointer to next machine record. */
  541.  
  542.   temp = machines ;            /* Point to list of machine/communitys. */
  543.   if (host[0] == '\0') GETHOSTNAME(community, MAXLINE) ;
  544.   else STRCPY(community, host) ;   /* Copied in case machine name not found. */
  545.   while (temp != NULL)
  546.     {
  547.       if (EQUAL(temp->machine, community))
  548.         {
  549.           STRCPY(community, temp->community) ;
  550.           return ;
  551.         }
  552.       temp = temp->next ;      /* Point to next record. */
  553.     }
  554. }
  555.  
  556.  
  557. make_iconname(community, user)    /* Construct the icon name. */
  558. char *community, *user ;
  559. {
  560.  
  561. /*  Sets up community and user based on the first successful
  562.  *  open from the following list of files:
  563.  *
  564.  *  $(FACEDIR)/community/user/[face.ps, sun.icon, 48x48x1]
  565.  *  $(FACEDIR)/misc./user/[face.ps, sun.icon, 48x48x1]
  566.  *  $(FACEDIR)/community/unknown/[face.ps, sun.icon, 48x48x1]
  567.  *  $(FACEDIR)/misc./unknown/[face.ps, sun.icon, 48x48x1]
  568.  *
  569.  *  If none of these are found, the "blank face" is returned.
  570.  */
  571.  
  572.   int i ;
  573.  
  574.   for (i = 0; i < MAXTYPES; i++)
  575.     {
  576.       SPRINTF(iconname, "%s/%s/%s/%s", facedir, community, user, fname[i]) ;
  577.       if (stat(iconname, &buf) != -1) return ;
  578.     }
  579.  
  580.   for (i = 0; i < MAXTYPES; i++)
  581.     {
  582.       SPRINTF(iconname, "%s/misc./%s/%s", facedir, user, fname[i]) ;
  583.       if (stat(iconname, &buf) != -1)
  584.         {
  585.           STRCPY(community, "misc.") ;
  586.           return ;
  587.         }
  588.     }
  589.  
  590.   for (i = 0; i < MAXTYPES; i++)
  591.     {
  592.       SPRINTF(iconname, "%s/%s/unknown/%s", facedir, community, fname[i]) ;
  593.       if (stat(iconname, &buf) != -1)
  594.         {
  595.           STRCPY(user, "unknown") ;
  596.           return ;
  597.         }
  598.     }
  599.  
  600.   for (i = 0; i < MAXTYPES; i++)
  601.     {
  602.       SPRINTF(iconname, "%s/misc./unknown/%s", facedir, fname[i]) ;
  603.       if (stat(iconname, &buf) != -1)
  604.         {
  605.           STRCPY(community, "misc.") ;
  606.           STRCPY(user, "unknown") ;
  607.           return ;
  608.         }
  609.     }
  610.  
  611. /* The "blank face" should be used, so community and user are nulled. */
  612.  
  613.   community[0] = user[0] = '\0' ;
  614. }
  615.  
  616.  
  617. read_mailrc()                /* Get number of flashes and beeps. */
  618. {
  619.   char mrcname[MAXLINE] ;    /* Full pathname of the .mailrc file. */
  620.   char *ptr ;
  621.   FILE *fd ;
  622.  
  623.   beeps = 0 ;     /* Defaults if .mailrc file not found. */
  624.   flashes = 0 ;
  625.   if (getenv("HOME"))
  626.     {
  627.       SPRINTF(mrcname, "%s/.mailrc", getenv("HOME")) ;
  628.       if ((fd = fopen(mrcname, "r")) == NULL) return ;
  629.       while (fgets(nextline, MAXLINE, fd) != NULL)
  630.         if (EQUAL(nextline, "set"))
  631.           {
  632.             ptr = index(nextline, ' ') ;
  633.             if (EQUAL(ptr+1, "flash"))
  634.               {
  635.                 ptr = index(nextline, '=') ;
  636.                 SSCANF(ptr+1, "%d", &flashes) ;
  637.               }
  638.             else if (EQUAL(ptr+1, "bell"))
  639.               {
  640.                 ptr = index(nextline, '=') ;
  641.                 SSCANF(ptr+1, "%d", &beeps) ;
  642.               }
  643.           }
  644.     }
  645.   FCLOSE(fd) ;
  646. }
  647. Funky_Stuff
  648. len=`wc -c < main.c`
  649. if [ $len !=    10551 ] ; then
  650. echo error: main.c was $len bytes long, should have been    10551
  651. fi
  652. fi # end of overwriting check
  653. if [ -f facedir ]
  654. then
  655. echo shar: can not write a directory over file facedir
  656. else
  657. if [ ! -d facedir ]
  658. then
  659. echo shar: creating directory facedir
  660. mkdir facedir
  661. fi
  662. echo shar: entering directory facedir
  663. cd facedir
  664. if [ -f machine.tab ]
  665. then
  666. echo shar: will not over-write existing file machine.tab
  667. else
  668. echo shar: extracting 'machine.tab',      383 characters
  669. cat > machine.tab <<'Funky_Stuff'
  670. stard=sunaus
  671. extra=sunaus
  672. sunchat=sunaus
  673. garfield=sunaus
  674. tom=sunaus
  675. felix=sunaus
  676. sunk=sunaus
  677. sunsa=sunaus
  678. misaus=sunaus
  679. maverick=sunaus
  680. misaus1=sunaus
  681. nimbin=sunaus
  682. redgum=sunaus
  683. palette=sunaus
  684. sunwa=sunaus
  685. sunact=sunaus
  686. basset=basser
  687. castor.cs.su.oz=basser
  688. cluster.cs.su.oz=basser
  689. orwell=basser
  690. sarad=basser
  691. sasha=basser
  692. sunrise=basser
  693. gris=softway
  694. softway.sw.oz=softway
  695. arakis=sun
  696. Funky_Stuff
  697. len=`wc -c < machine.tab`
  698. if [ $len !=      383 ] ; then
  699. echo error: machine.tab was $len bytes long, should have been      383
  700. fi
  701. fi # end of overwriting check
  702. if [ -f misc. ]
  703. then
  704. echo shar: can not write a directory over file misc.
  705. else
  706. if [ ! -d misc. ]
  707. then
  708. echo shar: creating directory misc.
  709. mkdir misc.
  710. fi
  711. echo shar: entering directory misc.
  712. cd misc.
  713. if [ -f acsnet ]
  714. then
  715. echo shar: can not write a directory over file acsnet
  716. else
  717. if [ ! -d acsnet ]
  718. then
  719. echo shar: creating directory acsnet
  720. mkdir acsnet
  721. fi
  722. echo shar: entering directory acsnet
  723. cd acsnet
  724. if [ -f 48x48x1 ]
  725. then
  726. echo shar: will not over-write existing file 48x48x1
  727. else
  728. echo shar: extracting '48x48x1',     1056 characters
  729. cat > 48x48x1 <<'Funky_Stuff'
  730. 0x0008,0x6000,0x0000,
  731. 0x000C,0x5000,0x0000,
  732. 0x000A,0x4800,0x0000,
  733. 0x000D,0x5400,0x0000,
  734. 0x000A,0xDA00,0x0000,
  735. 0x0005,0x5A00,0x0000,
  736. 0x0002,0xAA00,0x0000,
  737. 0x0001,0x7400,0x0000,
  738. 0x0003,0xE400,0x0000,
  739. 0x0006,0x2600,0x0000,
  740. 0x00FC,0x0A00,0x0000,
  741. 0x0301,0x0600,0x0000,
  742. 0x0700,0x0A00,0x0000,
  743. 0x06C0,0x1600,0x0000,
  744. 0x0300,0x0C00,0x0000,
  745. 0x01FF,0x9400,0x0000,
  746. 0x0001,0xA800,0x0000,
  747. 0x0003,0x1800,0x0000,
  748. 0x0002,0x3000,0x0000,
  749. 0x0006,0x6000,0x0000,
  750. 0x000C,0xA000,0x0000,
  751. 0x0008,0x6000,0x0000,
  752. 0x0018,0xA000,0x0000,
  753. 0x0010,0x6000,0x0000,
  754. 0x03F0,0x2000,0x0000,
  755. 0x0607,0x5000,0x0000,
  756. 0x043C,0x5000,0x0000,
  757. 0x0561,0xD800,0x0000,
  758. 0x076A,0x0800,0x0000,
  759. 0x03EA,0x1400,0x0000,
  760. 0x003E,0x0C00,0x0000,
  761. 0x0010,0x1600,0x0000,
  762. 0x0070,0x0B00,0x0000,
  763. 0x01F0,0x0580,0x0000,
  764. 0x01FF,0x02C0,0x0000,
  765. 0x01F8,0x7160,0x0000,
  766. 0x0080,0xFAB0,0x0000,
  767. 0x00C1,0x8158,0x0000,
  768. 0x0063,0x00AC,0x0000,
  769. 0x003B,0x0056,0x0000,
  770. 0x003E,0x002B,0x0000,
  771. 0x002B,0x0015,0x8000,
  772. 0x0035,0x0002,0xC007,
  773. 0x001B,0x8001,0x600D,
  774. 0x7FF5,0x80C0,0xBFF9,
  775. 0xAFFF,0x80E0,0x5543,
  776. 0xFA00,0x00F8,0x001E,
  777. 0x1FFF,0xFFCF,0xFFF0,
  778. Funky_Stuff
  779. len=`wc -c < 48x48x1`
  780. if [ $len !=     1056 ] ; then
  781. echo error: 48x48x1 was $len bytes long, should have been     1056
  782. fi
  783. fi # end of overwriting check
  784. cd ..
  785. echo shar: done with directory acsnet
  786. fi
  787. if [ -f adm ]
  788. then
  789. echo shar: can not write a directory over file adm
  790. else
  791. if [ ! -d adm ]
  792. then
  793. echo shar: creating directory adm
  794. mkdir adm
  795. fi
  796. echo shar: entering directory adm
  797. cd adm
  798. if [ -f 48x48x1 ]
  799. then
  800. echo shar: will not over-write existing file 48x48x1
  801. else
  802. echo shar: extracting '48x48x1',     1056 characters
  803. cat > 48x48x1 <<'Funky_Stuff'
  804. 0x01FF,0xF801,0xFFF0,
  805. 0x0200,0x17E2,0x0020,
  806. 0x0400,0x2844,0x0050,
  807. 0x0800,0x50BF,0xFFA0,
  808. 0x1000,0xA940,0x0250,
  809. 0x2001,0x5280,0x05A0,
  810. 0x7FFE,0xAD00,0x0A50,
  811. 0x0001,0x5200,0x15F8,
  812. 0x7FFE,0xAC00,0x2A10,
  813. 0x0001,0x57FF,0xD528,
  814. 0x7FFE,0xA801,0x2A50,
  815. 0x0001,0x5002,0xD5A8,
  816. 0x7FFE,0xA805,0x2A50,
  817. 0x0001,0x500A,0xD5A8,
  818. 0x7FFE,0xA815,0x2A50,
  819. 0x0001,0x57EA,0xD5A8,
  820. 0x7FFE,0xA815,0x2A50,
  821. 0x0001,0x57EA,0xD5A8,
  822. 0x7FFE,0xA815,0x2A50,
  823. 0x0001,0x57EA,0xD5A8,
  824. 0x7FFE,0xA815,0x2A50,
  825. 0x0001,0x57EA,0xD5A8,
  826. 0x7FFE,0xA815,0x2A50,
  827. 0x0001,0x57EA,0xD5A8,
  828. 0x7FFE,0xA815,0x2A50,
  829. 0x0001,0x57EA,0xD5A0,
  830. 0x7FFE,0xA815,0x2A40,
  831. 0x0001,0x57EA,0xD580,
  832. 0x7FFE,0xA815,0x2A00,
  833. 0x0001,0x57EA,0xD400,
  834. 0x7FFE,0xA815,0xFFF8,
  835. 0x0001,0x57EA,0x0010,
  836. 0x7FFE,0xA814,0x0028,
  837. 0x0001,0x57E8,0x0057,
  838. 0x7FFE,0xAB10,0x00AB,
  839. 0x0001,0x55E0,0x0155,
  840. 0x7FFE,0xA97F,0xFEA9,
  841. 0x0001,0x5180,0x0151,
  842. 0x7FFE,0xA17F,0xFEA1,
  843. 0x0001,0x4200,0x0142,
  844. 0xFFFF,0x84FF,0xFF84,
  845. 0x8000,0x8880,0x0088,
  846. 0x8520,0x9099,0x2E90,
  847. 0x85A0,0xA0A5,0x24A0,
  848. 0x8560,0xC0A5,0x24C0,
  849. 0x8520,0x8098,0xC480,
  850. 0x4001,0x0040,0x0100,
  851. 0x3FFE,0x003F,0xFE00,
  852. Funky_Stuff
  853. len=`wc -c < 48x48x1`
  854. if [ $len !=     1056 ] ; then
  855. echo error: 48x48x1 was $len bytes long, should have been     1056
  856. fi
  857. fi # end of overwriting check
  858. cd ..
  859. echo shar: done with directory adm
  860. fi
  861. if [ -f bin ]
  862. then
  863. echo shar: can not write a directory over file bin
  864. else
  865. if [ ! -d bin ]
  866. then
  867. echo shar: creating directory bin
  868. mkdir bin
  869. fi
  870. echo shar: entering directory bin
  871. cd bin
  872. if [ -f 48x48x1 ]
  873. then
  874. echo shar: will not over-write existing file 48x48x1
  875. else
  876. echo shar: extracting '48x48x1',     1056 characters
  877. cat > 48x48x1 <<'Funky_Stuff'
  878. 0x0000,0x0000,0x0000,
  879. 0x0000,0x0000,0x0000,
  880. 0x0000,0x0000,0x0000,
  881. 0x0000,0x0000,0x0000,
  882. 0x0000,0x0000,0x0000,
  883. 0x0000,0x0000,0x0000,
  884. 0x0000,0x0000,0x0000,
  885. 0x0000,0x0000,0x0000,
  886. 0x0000,0x0000,0x0000,
  887. 0x0046,0x230C,0x4600,
  888. 0x0049,0x2492,0x4900,
  889. 0x0049,0x2492,0x4900,
  890. 0x0049,0x2492,0x4900,
  891. 0x0046,0x230C,0x4600,
  892. 0x0000,0x0000,0x0000,
  893. 0x0031,0x1862,0x3100,
  894. 0x0049,0x2492,0x4900,
  895. 0x0049,0x2492,0x4900,
  896. 0x0049,0x2492,0x4900,
  897. 0x0031,0x1862,0x3100,
  898. 0x0000,0x0000,0x0000,
  899. 0x0048,0xC48C,0x3100,
  900. 0x0049,0x2492,0x4900,
  901. 0x0049,0x2492,0x4900,
  902. 0x0049,0x2492,0x4900,
  903. 0x0048,0xC48C,0x3100,
  904. 0x0000,0x0000,0x0000,
  905. 0x0031,0x230C,0x4600,
  906. 0x0049,0x2492,0x4900,
  907. 0x0049,0x2492,0x4900,
  908. 0x0049,0x2492,0x4900,
  909. 0x0031,0x230C,0x4600,
  910. 0x0000,0x0000,0x0000,
  911. 0x0046,0x2462,0x3100,
  912. 0x0049,0x2492,0x4900,
  913. 0x0049,0x2492,0x4900,
  914. 0x0049,0x2492,0x4900,
  915. 0x0046,0x2462,0x3100,
  916. 0x0000,0x0000,0x0000,
  917. 0x0000,0x0000,0x0000,
  918. 0x0000,0x0000,0x0000,
  919. 0x0000,0x0000,0x0000,
  920. 0x0000,0x0000,0x0000,
  921. 0x0000,0x0000,0x0000,
  922. 0x0000,0x0000,0x0000,
  923. 0x0000,0x0000,0x0000,
  924. 0x0000,0x0000,0x0000,
  925. 0x0000,0x0000,0x0000,
  926. Funky_Stuff
  927. len=`wc -c < 48x48x1`
  928. if [ $len !=     1056 ] ; then
  929. echo error: 48x48x1 was $len bytes long, should have been     1056
  930. fi
  931. fi # end of overwriting check
  932. cd ..
  933. echo shar: done with directory bin
  934. fi
  935. if [ -f daemon ]
  936. then
  937. echo shar: can not write a directory over file daemon
  938. else
  939. if [ ! -d daemon ]
  940. then
  941. echo shar: creating directory daemon
  942. mkdir daemon
  943. fi
  944. echo shar: entering directory daemon
  945. cd daemon
  946. if [ -f 48x48x1 ]
  947. then
  948. echo shar: will not over-write existing file 48x48x1
  949. else
  950. echo shar: extracting '48x48x1',     1056 characters
  951. cat > 48x48x1 <<'Funky_Stuff'
  952. 0x0000,0x0000,0x0000,
  953. 0x0000,0x0000,0x0000,
  954. 0x0000,0x0000,0x0000,
  955. 0x0000,0x0000,0x0000,
  956. 0x0000,0x0000,0x0000,
  957. 0x0000,0x0000,0x0000,
  958. 0x0000,0x0000,0x0000,
  959. 0x0000,0x0000,0x0000,
  960. 0x0000,0x0000,0x0000,
  961. 0x0000,0x0000,0x0000,
  962. 0x0000,0x0440,0x0000,
  963. 0x0000,0x0820,0x0000,
  964. 0x0000,0x0820,0x0000,
  965. 0x0000,0x0C60,0x1000,
  966. 0x0000,0x0FE0,0x3800,
  967. 0x0000,0x07C0,0x3800,
  968. 0x0004,0x0540,0x7C00,
  969. 0x0014,0x07C0,0x1000,
  970. 0x0054,0x0380,0x1000,
  971. 0x0054,0x03C0,0x1000,
  972. 0x0058,0x07E0,0x1000,
  973. 0x0068,0x0FE1,0xA000,
  974. 0x0008,0x1FF2,0x6000,
  975. 0x000F,0xFFF2,0x2000,
  976. 0x000F,0xF7FA,0x6000,
  977. 0x0004,0x07D9,0xE000,
  978. 0x0002,0x07D8,0x2000,
  979. 0x0002,0x07D8,0x2000,
  980. 0x0002,0x07D8,0x4000,
  981. 0x0001,0x07F8,0x4000,
  982. 0x0001,0x07F0,0x8000,
  983. 0x0001,0x0FEF,0x0000,
  984. 0x0000,0x8FE0,0x0000,
  985. 0x0000,0x9EC0,0x0000,
  986. 0x0000,0x9CC0,0x0000,
  987. 0x0000,0x58E0,0x0000,
  988. 0x0000,0x4C60,0x0000,
  989. 0x0000,0x4420,0x0000,
  990. 0x0000,0x0C60,0x0000,
  991. 0x0000,0x1CE0,0x0000,
  992. 0x0000,0x0000,0x0000,
  993. 0x0000,0x0000,0x0000,
  994. 0x0000,0x0000,0x0000,
  995. 0x0000,0x0000,0x0000,
  996. 0x0000,0x0000,0x0000,
  997. 0x0000,0x0000,0x0000,
  998. 0x0000,0x0000,0x0000,
  999. 0x0000,0x0000,0x0000,
  1000. Funky_Stuff
  1001. len=`wc -c < 48x48x1`
  1002. if [ $len !=     1056 ] ; then
  1003. echo error: 48x48x1 was $len bytes long, should have been     1056
  1004. fi
  1005. fi # end of overwriting check
  1006. cd ..
  1007. echo shar: done with directory daemon
  1008. fi
  1009. if [ -f mailer-daemon ]
  1010. then
  1011. echo shar: can not write a directory over file mailer-daemon
  1012. else
  1013. if [ ! -d mailer-daemon ]
  1014. then
  1015. echo shar: creating directory mailer-daemon
  1016. mkdir mailer-daemon
  1017. fi
  1018. echo shar: entering directory mailer-daemon
  1019. cd mailer-daemon
  1020. if [ -f 48x48x1 ]
  1021. then
  1022. echo shar: will not over-write existing file 48x48x1
  1023. else
  1024. echo shar: extracting '48x48x1',     1056 characters
  1025. cat > 48x48x1 <<'Funky_Stuff'
  1026. 0x0001,0xFFFF,0xFFC0,
  1027. 0x0002,0xB000,0x0030,
  1028. 0x0003,0x5800,0x0008,
  1029. 0x0006,0xADFF,0xFFC8,
  1030. 0x0005,0x54FF,0xFFE4,
  1031. 0x000A,0xAAF7,0xFDF2,
  1032. 0x020D,0x5673,0xF9F2,
  1033. 0x060A,0xAA61,0xF0FA,
  1034. 0x0E0D,0x5568,0xE8F9,
  1035. 0x1E0A,0xAB71,0xF1F9,
  1036. 0x0E0D,0x557F,0xFFF9,
  1037. 0x0A0A,0xAB3F,0xFFF1,
  1038. 0x080D,0x5500,0x0001,
  1039. 0x080A,0xAB00,0x0001,
  1040. 0x080D,0x5500,0x9E01,
  1041. 0x0DEA,0xAB03,0x9F81,
  1042. 0x073D,0x5507,0x83C1,
  1043. 0x001A,0xAB0F,0x81E1,
  1044. 0x001D,0x551F,0x80F1,
  1045. 0x000A,0xAB1F,0x80F1,
  1046. 0x000D,0x553F,0x80F9,
  1047. 0x000A,0xAB3F,0x80F9,
  1048. 0x000D,0x553F,0x80F9,
  1049. 0x000A,0xAB3F,0x80F9,
  1050. 0x0FFD,0x553F,0x81F9,
  1051. 0x3FFA,0xAB3F,0x83F9,
  1052. 0x7FFD,0x553F,0x9FF9,
  1053. 0xFFFA,0xAB3F,0x9FF9,
  1054. 0xFFFD,0x551F,0x9FF1,
  1055. 0xFFFA,0xAB1F,0x9FF1,
  1056. 0xFFFD,0x550F,0x9FE1,
  1057. 0xFFFA,0xAB07,0x9FC1,
  1058. 0xFFFD,0xD503,0x9F81,
  1059. 0x7FFB,0xEB00,0x9E01,
  1060. 0x3FFD,0xF500,0x0001,
  1061. 0x1FFB,0xFB00,0x0001,
  1062. 0x0FFD,0xFD0F,0xFFE1,
  1063. 0x07FB,0xFB1F,0xFFD1,
  1064. 0x01FD,0xFD3F,0xF7C9,
  1065. 0x00FF,0xFF7F,0xF8C5,
  1066. 0x003F,0xFD7F,0xFC45,
  1067. 0x001F,0xFF7F,0xFE05,
  1068. 0x0007,0xF540,0x3F85,
  1069. 0x0003,0xF740,0x0FC5,
  1070. 0x0000,0xFD40,0x01F5,
  1071. 0x0000,0x3F40,0x007D,
  1072. 0x0000,0x0740,0x003D,
  1073. 0x0000,0x01C0,0x000F,
  1074. Funky_Stuff
  1075. len=`wc -c < 48x48x1`
  1076. if [ $len !=     1056 ] ; then
  1077. echo error: 48x48x1 was $len bytes long, should have been     1056
  1078. fi
  1079. fi # end of overwriting check
  1080. cd ..
  1081. echo shar: done with directory mailer-daemon
  1082. fi
  1083. if [ -f net ]
  1084. then
  1085. echo shar: can not write a directory over file net
  1086. else
  1087. if [ ! -d net ]
  1088. then
  1089. echo shar: creating directory net
  1090. mkdir net
  1091. fi
  1092. echo shar: entering directory net
  1093. cd net
  1094. if [ -f 48x48x1 ]
  1095. then
  1096. echo shar: will not over-write existing file 48x48x1
  1097. else
  1098. echo shar: extracting '48x48x1',     1056 characters
  1099. cat > 48x48x1 <<'Funky_Stuff'
  1100. 0x0000,0x0000,0x0000,
  1101. 0x0000,0x0000,0x0000,
  1102. 0x0000,0x0000,0x0000,
  1103. 0x0000,0x0000,0x0000,
  1104. 0x0000,0x0000,0x0000,
  1105. 0x0000,0x0000,0x0000,
  1106. 0x0000,0x0000,0x0000,
  1107. 0x0000,0x0000,0x0000,
  1108. 0x0020,0x0000,0x0000,
  1109. 0x0070,0x0100,0x0000,
  1110. 0x00F8,0x0300,0x0000,
  1111. 0x0020,0x7FFC,0x0000,
  1112. 0x0010,0x8303,0xE200,
  1113. 0x000F,0x0101,0x2600,
  1114. 0x0009,0x0001,0x3F00,
  1115. 0x0009,0x0001,0xE600,
  1116. 0x000F,0x0002,0x0200,
  1117. 0x0010,0x8014,0x0000,
  1118. 0x00A0,0x5018,0x0000,
  1119. 0x00C0,0x301C,0x0000,
  1120. 0x00E0,0x7020,0x0000,
  1121. 0x0000,0x0840,0x4000,
  1122. 0x0000,0x05E0,0xC000,
  1123. 0x0000,0x033F,0xFF00,
  1124. 0x0000,0x1120,0xC000,
  1125. 0x00E0,0x31E0,0x4000,
  1126. 0x00C0,0xFF20,0x0000,
  1127. 0x00A1,0x3010,0x0000,
  1128. 0x001E,0x100E,0x0000,
  1129. 0x0012,0x000C,0x0700,
  1130. 0x0012,0x000A,0x0300,
  1131. 0x001E,0x0001,0x0500,
  1132. 0x00A1,0x0000,0x8800,
  1133. 0x00C0,0x8000,0x9000,
  1134. 0x00E0,0x4101,0xE000,
  1135. 0x0000,0x2181,0x2000,
  1136. 0x0000,0x1FFF,0x2000,
  1137. 0x0000,0x0181,0xE000,
  1138. 0x0000,0x0101,0x0000,
  1139. 0x0000,0x0002,0x0000,
  1140. 0x0000,0x0000,0x0000,
  1141. 0x0000,0x0000,0x0000,
  1142. 0x0000,0x0000,0x0000,
  1143. 0x0000,0x0000,0x0000,
  1144. 0x0000,0x0000,0x0000,
  1145. 0x0000,0x0000,0x0000,
  1146. 0x0000,0x0000,0x0000,
  1147. 0x0000,0x0000,0x0000,
  1148. Funky_Stuff
  1149. len=`wc -c < 48x48x1`
  1150. if [ $len !=     1056 ] ; then
  1151. echo error: 48x48x1 was $len bytes long, should have been     1056
  1152. fi
  1153. fi # end of overwriting check
  1154. cd ..
  1155. echo shar: done with directory net
  1156. fi
  1157. if [ -f root ]
  1158. then
  1159. echo shar: can not write a directory over file root
  1160. else
  1161. if [ ! -d root ]
  1162. then
  1163. echo shar: creating directory root
  1164. mkdir root
  1165. fi
  1166. echo shar: entering directory root
  1167. cd root
  1168. if [ -f 48x48x1 ]
  1169. then
  1170. echo shar: will not over-write existing file 48x48x1
  1171. else
  1172. echo shar: extracting '48x48x1',     1056 characters
  1173. cat > 48x48x1 <<'Funky_Stuff'
  1174. 0x0000,0x0000,0x0000,
  1175. 0x0000,0x0000,0x0000,
  1176. 0x0000,0x0000,0x0000,
  1177. 0x0000,0x0000,0x0000,
  1178. 0x0000,0x0000,0x0000,
  1179. 0x0000,0x0000,0x0000,
  1180. 0x0000,0x0000,0x0000,
  1181. 0x0000,0x0000,0x0000,
  1182. 0x0000,0x1EE4,0x0000,
  1183. 0x0000,0x1B04,0x0000,
  1184. 0x0000,0x1F74,0x0000,
  1185. 0x0000,0x1F64,0x0000,
  1186. 0x0000,0x1FA4,0x0000,
  1187. 0x0000,0x1704,0x0000,
  1188. 0x0000,0x1FE4,0x0000,
  1189. 0x0000,0x1EE4,0x0000,
  1190. 0x0000,0x1FE4,0x0000,
  1191. 0x0000,0x1FE4,0x0000,
  1192. 0x0000,0x1EC4,0x0000,
  1193. 0x0000,0x17F4,0x0000,
  1194. 0x0000,0x37F6,0x0000,
  1195. 0x0000,0x3FEB,0x0000,
  1196. 0x0000,0xFF7F,0x0000,
  1197. 0x0000,0xFF7F,0xE000,
  1198. 0x0001,0xFFE7,0xF000,
  1199. 0x000F,0xE7F1,0x9800,
  1200. 0x001F,0x0631,0xC800,
  1201. 0x0036,0x0C30,0x6400,
  1202. 0x0024,0x1830,0x6600,
  1203. 0x0064,0x3C10,0x2200,
  1204. 0x0064,0x3410,0x2200,
  1205. 0x004C,0x2438,0x7200,
  1206. 0x004E,0x242C,0xDA00,
  1207. 0x004A,0x6424,0x8A00,
  1208. 0x0012,0x4426,0x8800,
  1209. 0x0012,0x4460,0x0000,
  1210. 0x0000,0x0000,0x0000,
  1211. 0x0000,0x0000,0x0000,
  1212. 0x0000,0x0000,0x0000,
  1213. 0x0000,0x0000,0x0000,
  1214. 0x0000,0x0000,0x0000,
  1215. 0x0000,0x0000,0x0000,
  1216. 0x0000,0x0000,0x0000,
  1217. 0x0000,0x0000,0x0000,
  1218. 0x0000,0x0000,0x0000,
  1219. 0x0000,0x0000,0x0000,
  1220. 0x0000,0x0000,0x0000,
  1221. 0x0000,0x0000,0x0000,
  1222. Funky_Stuff
  1223. len=`wc -c < 48x48x1`
  1224. if [ $len !=     1056 ] ; then
  1225. echo error: 48x48x1 was $len bytes long, should have been     1056
  1226. fi
  1227. fi # end of overwriting check
  1228. cd ..
  1229. echo shar: done with directory root
  1230. fi
  1231. if [ -f sys ]
  1232. then
  1233. echo shar: can not write a directory over file sys
  1234. else
  1235. if [ ! -d sys ]
  1236. then
  1237. echo shar: creating directory sys
  1238. mkdir sys
  1239. fi
  1240. echo shar: entering directory sys
  1241. cd sys
  1242. if [ -f 48x48x1 ]
  1243. then
  1244. echo shar: will not over-write existing file 48x48x1
  1245. else
  1246. echo shar: extracting '48x48x1',     1056 characters
  1247. cat > 48x48x1 <<'Funky_Stuff'
  1248. 0x0000,0x0200,0x0000,
  1249. 0x0000,0x0004,0x0000,
  1250. 0x0000,0x080A,0x0000,
  1251. 0x0000,0x008A,0x2000,
  1252. 0x0000,0x016A,0xD000,
  1253. 0x0002,0x0091,0x2000,
  1254. 0x0000,0x0080,0x2000,
  1255. 0x0020,0x004E,0x4000,
  1256. 0x0000,0x439F,0x3800,
  1257. 0x0000,0xA41F,0x0400,
  1258. 0x0088,0xA39F,0x3800,
  1259. 0x0016,0xAD4E,0x4000,
  1260. 0x0009,0x1280,0x2000,
  1261. 0x0008,0x0291,0x2000,
  1262. 0x0004,0xE56A,0xD100,
  1263. 0x0039,0xF38A,0x2000,
  1264. 0x0241,0xF04A,0x0000,
  1265. 0x0039,0xF384,0x0400,
  1266. 0x0004,0xE400,0x0000,
  1267. 0x0008,0x0200,0x2000,
  1268. 0x0009,0x1240,0x0000,
  1269. 0x0016,0xADA0,0x0000,
  1270. 0x0008,0xAAA2,0x0000,
  1271. 0x0000,0xB6AD,0x0000,
  1272. 0x0000,0x4912,0x1000,
  1273. 0x0000,0x0802,0x0000,
  1274. 0x0020,0x04E4,0x0000,
  1275. 0x0200,0x39F3,0x8800,
  1276. 0x0008,0x41F0,0x4000,
  1277. 0x0814,0x39F3,0x8000,
  1278. 0x0114,0x44E4,0x0000,
  1279. 0x12D5,0xA802,0x0800,
  1280. 0x0122,0x4912,0x0000,
  1281. 0x0100,0x56AD,0x0000,
  1282. 0x209C,0x88A2,0x0000,
  1283. 0x073E,0x70A0,0x2000,
  1284. 0x083E,0x0840,0x0000,
  1285. 0x073E,0x7000,0x0000,
  1286. 0x009C,0x8000,0x0000,
  1287. 0x0100,0x4000,0x0000,
  1288. 0x0122,0x4200,0x0000,
  1289. 0x02D5,0xA000,0x0000,
  1290. 0x0114,0x4000,0x0000,
  1291. 0x0014,0x0800,0x0000,
  1292. 0x0008,0x0000,0x0000,
  1293. 0x0000,0x4000,0x0000,
  1294. 0x0000,0x0000,0x0000,
  1295. 0x0000,0x0000,0x0000,
  1296. Funky_Stuff
  1297. len=`wc -c < 48x48x1`
  1298. if [ $len !=     1056 ] ; then
  1299. echo error: 48x48x1 was $len bytes long, should have been     1056
  1300. fi
  1301. fi # end of overwriting check
  1302. cd ..
  1303. echo shar: done with directory sys
  1304. fi
  1305. if [ -f unknown ]
  1306. then
  1307. echo shar: can not write a directory over file unknown
  1308. else
  1309. if [ ! -d unknown ]
  1310. then
  1311. echo shar: creating directory unknown
  1312. mkdir unknown
  1313. fi
  1314. echo shar: entering directory unknown
  1315. cd unknown
  1316. if [ -f 48x48x1 ]
  1317. then
  1318. echo shar: will not over-write existing file 48x48x1
  1319. else
  1320. echo shar: extracting '48x48x1',     1056 characters
  1321. cat > 48x48x1 <<'Funky_Stuff'
  1322. 0x0000,0x01FF,0xC000,
  1323. 0x7C00,0x1FFF,0xE000,
  1324. 0x8200,0xFFFF,0xE000,
  1325. 0x8207,0xFFFF,0xF000,
  1326. 0x620F,0xFFFF,0xFF80,
  1327. 0x040F,0xFFFF,0xFFE0,
  1328. 0x080F,0xFFFF,0xFFF0,
  1329. 0x100F,0xFFFF,0xF7F0,
  1330. 0x2007,0xFFFF,0xF7F0,
  1331. 0x0007,0xFFFF,0x8FE0,
  1332. 0x2007,0xFFFE,0x7F80,
  1333. 0x2007,0xFFF9,0xFE00,
  1334. 0x000D,0xFFE7,0xFE00,
  1335. 0x103E,0x7F9F,0xFE00,
  1336. 0x007F,0x807F,0xFE00,
  1337. 0x20FF,0xFFFF,0xFE00,
  1338. 0x81FF,0xFFFF,0xFE00,
  1339. 0x01FF,0xFFFB,0x8E00,
  1340. 0x81FF,0xFFE1,0xF600,
  1341. 0x21FF,0xFFE7,0xF600,
  1342. 0x09FF,0xFFFF,0x0600,
  1343. 0x00FF,0xFFFC,0x7F80,
  1344. 0x0877,0xF7F0,0x3FC0,
  1345. 0x2007,0xF7E0,0x1FC0,
  1346. 0x0003,0xE7E0,0x7FC0,
  1347. 0x4001,0xC3C3,0xFFC0,
  1348. 0x1000,0x800F,0xFF80,
  1349. 0x0407,0x803F,0xFF80,
  1350. 0x0007,0x83FF,0xFF80,
  1351. 0x00BF,0xFBFF,0xFF80,
  1352. 0x00A0,0x1FFF,0xFF80,
  1353. 0x00BF,0xFFFF,0xFF80,
  1354. 0x0001,0xFFFF,0xFF80,
  1355. 0x0001,0xF7FF,0xF180,
  1356. 0x001F,0xFFFF,0xCFC0,
  1357. 0x007E,0xFFFC,0x3FE0,
  1358. 0x01FF,0x3FC3,0xFFF8,
  1359. 0x07FF,0xDF3F,0xFFFE,
  1360. 0x0FFF,0xF0FF,0xFFFF,
  1361. 0x1FFF,0xCFFF,0xFFFF,
  1362. 0x3FFF,0xDFFF,0xFFFF,
  1363. 0x3FFF,0xD9FF,0xFFFF,
  1364. 0x7FFF,0xD9FF,0xFFFF,
  1365. 0x7FFF,0xDFFF,0xFFFF,
  1366. 0xFFFF,0xBFC0,0x07FF,
  1367. 0xFFFF,0xBFDF,0xF7FF,
  1368. 0xFFFF,0xBFDF,0xF7FF,
  1369. 0xFFFF,0xBFDF,0xF7FF,
  1370. Funky_Stuff
  1371. len=`wc -c < 48x48x1`
  1372. if [ $len !=     1056 ] ; then
  1373. echo error: 48x48x1 was $len bytes long, should have been     1056
  1374. fi
  1375. fi # end of overwriting check
  1376. cd ..
  1377. echo shar: done with directory unknown
  1378. fi
  1379. if [ -f uucp ]
  1380. then
  1381. echo shar: can not write a directory over file uucp
  1382. else
  1383. if [ ! -d uucp ]
  1384. then
  1385. echo shar: creating directory uucp
  1386. mkdir uucp
  1387. fi
  1388. echo shar: entering directory uucp
  1389. cd uucp
  1390. if [ -f 48x48x1 ]
  1391. then
  1392. echo shar: will not over-write existing file 48x48x1
  1393. else
  1394. echo shar: extracting '48x48x1',     1056 characters
  1395. cat > 48x48x1 <<'Funky_Stuff'
  1396. 0x0000,0x0000,0x0000,
  1397. 0x0000,0x0000,0x3FE0,
  1398. 0x0000,0x0000,0xE000,
  1399. 0x0000,0x0001,0x8000,
  1400. 0x0000,0x0003,0x0000,
  1401. 0x0200,0x0007,0xE000,
  1402. 0x0008,0x001E,0x1800,
  1403. 0x1000,0x0074,0x0800,
  1404. 0x0040,0x00C4,0x0800,
  1405. 0x0001,0x0184,0x0800,
  1406. 0x4200,0x0106,0x1800,
  1407. 0x0010,0x0201,0xE000,
  1408. 0x0000,0x0000,0x0000,
  1409. 0x4000,0x0000,0x0000,
  1410. 0x0400,0x0000,0x0000,
  1411. 0x0020,0x3F00,0x0000,
  1412. 0x4400,0xF5C0,0x0000,
  1413. 0x0023,0xAAF0,0x0000,
  1414. 0x020F,0x5558,0x0000,
  1415. 0x003A,0xAAAE,0x0000,
  1416. 0x20F5,0x5557,0x8000,
  1417. 0x03AA,0xAAAA,0xC000,
  1418. 0x0F55,0x5555,0x7000,
  1419. 0x3EAA,0xA0AA,0xBC00,
  1420. 0x7755,0x1F15,0x5600,
  1421. 0xEBAA,0x71CA,0xAB80,
  1422. 0xD5D1,0xC071,0x55E0,
  1423. 0xAAE7,0x001C,0xABB0,
  1424. 0xD57C,0x0007,0x177C,
  1425. 0x6070,0x0011,0xCEEE,
  1426. 0x3FC0,0x0020,0x7DD7,
  1427. 0x0000,0x1140,0x1DAB,
  1428. 0x0000,0x0001,0x0795,
  1429. 0x0000,0x0000,0x01C3,
  1430. 0x0000,0x0004,0x007E,
  1431. 0x0001,0x0020,0x0800,
  1432. 0x0000,0x1100,0x0020,
  1433. 0x0000,0x0000,0x1000,
  1434. 0x0000,0x0000,0x4040,
  1435. 0x0010,0x0000,0x0080,
  1436. 0x0000,0x2004,0x0100,
  1437. 0x0000,0x0110,0x0200,
  1438. 0x0000,0x0000,0x0000,
  1439. 0x0000,0x0000,0x2000,
  1440. 0x0020,0x0002,0x0000,
  1441. 0x0000,0x0020,0x0000,
  1442. 0x0001,0x0400,0x0000,
  1443. 0x0000,0x0000,0x0000,
  1444. Funky_Stuff
  1445. len=`wc -c < 48x48x1`
  1446. if [ $len !=     1056 ] ; then
  1447. echo error: 48x48x1 was $len bytes long, should have been     1056
  1448. fi
  1449. fi # end of overwriting check
  1450. cd ..
  1451. echo shar: done with directory uucp
  1452. fi
  1453. cd ..
  1454. echo shar: done with directory misc.
  1455. fi
  1456. if [ -f people.tab ]
  1457. then
  1458. echo shar: will not over-write existing file people.tab
  1459. else
  1460. echo shar: extracting 'people.tab',     1663 characters
  1461. cat > people.tab <<'Funky_Stuff'
  1462. sunaus/rallen=bob
  1463. sunaus/ballen=bob
  1464. sunaus/bbaker=bruceb
  1465. sunaus/mbosch=mike
  1466. sunaus/eddy=eddie
  1467. sunaus/eevans=eddie
  1468. sunaus/ggrell=grell
  1469. sunaus/gene=grell
  1470. sunaus/jingall=johni
  1471. sunaus/ijeffery=ian
  1472. sunaus/glynne=gjl
  1473. sunaus/tmcentee=tim
  1474. sunaus/jnoonan=johnn
  1475. sunaus/apappas=arie
  1476. sunaus/jennie=jenny
  1477. sunaus/jrendell=jenny
  1478. sunaus/gsearle=gjs
  1479. sunaus/gsitters=greg
  1480. sunaus/bscott=brad
  1481. sunaus/rstewart=ruth
  1482. sunaus/jteasdale=jim
  1483. sunaus/loraine=lori
  1484. sunaus/lorraine=lori
  1485. sunaus/lunicomb=lori
  1486. sunaus/pvrbancich=paula
  1487. sunaus/swoodhead=simon
  1488. sunaus/jy=yo
  1489. sunaus/jyoung=yo
  1490. sunaus/rboden=richard
  1491. sunaus/rbodin=richard
  1492. sunaus/rburridge=richb
  1493. sunaus/rich=richb
  1494. sunaus/mcunningham=mary
  1495. sunaus/sduchesne=sue
  1496. sunaus/mfredericks=max
  1497. sunaus/mfredricks=max
  1498. sunaus/bgeneralis=bill
  1499. sunaus/shulbert=susanh
  1500. sunaus/susan=susanh
  1501. sunaus/gmason=gregm
  1502. sunaus/vmickan=val
  1503. sunaus/trogge=tony
  1504. sunaus/andy=aspiers
  1505. sunaus/bwiggins=bruce
  1506. sunaus/ryeap=ron
  1507. sunaus/cbreen=colinb
  1508. sunaus/rdesalis=roger
  1509. sunaus/mfort=markf
  1510. sunaus/mark=markg
  1511. sunaus/mgurvis=markg
  1512. sunaus/mnegri=manuel
  1513. sunaus/npettitt=noel
  1514. sunaus/jraine=john
  1515. sunaus/paul=paulr
  1516. sunaus/prosham=paulr
  1517. sunaus/gsweigert=geo
  1518. sunaus/rbowman=robb
  1519. sunaus/bbowman=robb
  1520. sunaus/krees=kim
  1521. sunaus/mikes=mslee
  1522. sunaus/gshepherd=george
  1523. sunaus/aweller=andrew
  1524. sunaus/kbeavan=kevin
  1525. sunaus/rbradford=rhonda
  1526. sunaus/ckeith=colin
  1527. sunaus/mmccann=mmc
  1528. sunaus/ksterry=kaylene
  1529. sunaus/rwilliams=rex
  1530. sunaus/gdonin=gary
  1531. sunaus/dshea=dennis
  1532. sunaus/doshea=dennis
  1533. sunaus/hprotoolis=harry
  1534. sunaus/rschrader=robert
  1535. sunaus/bschrader=robert
  1536. sunaus/bobs=robert
  1537. sunaus/jvermeulen=jeff
  1538. sunaus/MAILER-DAEMON=mailer-daemon
  1539. sunaus/Mailer-Daemon=mailer-daemon
  1540. sunaus/mailer-daemon=mailer-daemon
  1541. Funky_Stuff
  1542. len=`wc -c < people.tab`
  1543. if [ $len !=     1663 ] ; then
  1544. echo error: people.tab was $len bytes long, should have been     1663
  1545. fi
  1546. fi # end of overwriting check
  1547. if [ -f sunaus ]
  1548. then
  1549. echo shar: can not write a directory over file sunaus
  1550. else
  1551. if [ ! -d sunaus ]
  1552. then
  1553. echo shar: creating directory sunaus
  1554. mkdir sunaus
  1555. fi
  1556. echo shar: entering directory sunaus
  1557. cd sunaus
  1558. if [ -f richb ]
  1559. then
  1560. echo shar: can not write a directory over file richb
  1561. else
  1562. if [ ! -d richb ]
  1563. then
  1564. echo shar: creating directory richb
  1565. mkdir richb
  1566. fi
  1567. echo shar: entering directory richb
  1568. cd richb
  1569. if [ -f face.ps ]
  1570. then
  1571. echo shar: will not over-write existing file face.ps
  1572. else
  1573. echo shar: extracting 'face.ps',      782 characters
  1574. cat > face.ps <<'Funky_Stuff'
  1575. /Icon findfont 1 scalefont setfont
  1576. .1 .25 .9 .75 rectpath 1 setgray fill
  1577.  
  1578. 0 setgray
  1579. .1 .25 moveto (\056) show .002 sleep
  1580. 1 setgray
  1581. .1 .25 moveto (\056) show
  1582.  
  1583. 0 setgray
  1584. .1 .25 moveto (\057) show .002 sleep
  1585. 1 setgray
  1586. .1 .25 moveto (\057) show
  1587.  
  1588. 0 setgray
  1589. .1 .25 moveto (\060) show .002 sleep
  1590. 1 setgray
  1591. .1 .25 moveto (\060) show
  1592.  
  1593. 0 setgray
  1594. .1 .25 moveto (\061) show .002 sleep
  1595. 1 setgray
  1596. .1 .25 moveto (\061) show
  1597.  
  1598. 0 setgray
  1599. .1 .25 moveto (\062) show .002 sleep
  1600. 1 setgray
  1601. .1 .25 moveto (\062) show
  1602.  
  1603. 0 setgray
  1604. .1 .25 moveto (\061) show .002 sleep
  1605. 1 setgray
  1606. .1 .25 moveto (\061) show
  1607.  
  1608. 0 setgray
  1609. .1 .25 moveto (\060) show .002 sleep
  1610. 1 setgray
  1611. .1 .25 moveto (\060) show
  1612.  
  1613. 0 setgray
  1614. .1 .25 moveto (\057) show .002 sleep
  1615. 1 setgray
  1616. .1 .25 moveto (\057) show
  1617.  
  1618. 0 setgray
  1619. .1 .25 moveto (\056) show
  1620. Funky_Stuff
  1621. len=`wc -c < face.ps`
  1622. if [ $len !=      782 ] ; then
  1623. echo error: face.ps was $len bytes long, should have been      782
  1624. fi
  1625. fi # end of overwriting check
  1626. cd ..
  1627. echo shar: done with directory richb
  1628. fi
  1629. cd ..
  1630. echo shar: done with directory sunaus
  1631. fi
  1632. cd ..
  1633. echo shar: done with directory facedir
  1634. fi
  1635.