Annotation of 43BSD/contrib/notes/src/mknf.c, revision 1.1.1.1

1.1       root        1: #ifdef RCSIDENT
                      2: static char rcsid[] = "$Header: mknf.c,v 1.7 85/01/18 15:19:42 notes Rel $";
                      3: #endif RCSIDENT
                      4: 
                      5: 
                      6: /*
                      7:  *     This program will initialize an empty notefile. It leaves the
                      8:  *     caller as sole director of the notefile and also as the only
                      9:  *     person with access to the notefile. 
                     10:  *
                     11:  *     Since a notefile does suck up a little disk space, the use of
                     12:  *     this program is limited to the user whose uid matches the
                     13:  *     Notesuid constant. 
                     14:  *
                     15:  *     Original coding:        Rob Kolstad     Winter 1980
                     16:  *     Modified:               Ray Essick      November 1981
                     17:  */
                     18: 
                     19: #define        MAINLINE
                     20: #include       "parms.h"
                     21: #include       "structs.h"
                     22: 
                     23: main (argc, argv)
                     24: char  **argv;                                          /* create a new notesfile */
                     25: {
                     26: 
                     27:     char   *q;
                     28:     int     k;                                         /* arg counter */
                     29:     int     j,
                     30:             Aflag,
                     31:             Oflag,
                     32:             Nflag;                                     /* option flags */
                     33:     char    basedir[WDLEN];
                     34:     char    endname[WDLEN];
                     35: 
                     36:     startup (argc, argv);                              /* common initialization */
                     37: 
                     38:     if (globuid != Notesuid)
                     39:     {
                     40:        printf ("You are not allowed to build notefiles\n");
                     41:        exit (BAD);
                     42:     }
                     43: 
                     44:     if (argc == 1)
                     45:     {
                     46:        printf ("Usage: %s [-aon] topic1 [...]\n", argv[0]);
                     47:        exit (BAD);
                     48:     }
                     49: 
                     50:     Aflag = 0;
                     51:     Oflag = 0;
                     52:     Nflag = 0;
                     53: 
                     54:     for (k = 1; k < argc; k++)
                     55:     {
                     56: 
                     57:        if (argv[k][0] == '-')                          /* options!!! */
                     58:        {
                     59:            j = 1;
                     60:            while (argv[k][j])
                     61:                switch (argv[k][j++])
                     62:                {
                     63:                    case 'a':                           /* anon notes ok */
                     64:                        Aflag = 1;
                     65:                        break;
                     66: 
                     67:                    case 'o':                           /* open notesfile */
                     68:                        Oflag = 1;
                     69:                        break;
                     70: 
                     71:                    case 'n':                           /* network available */
                     72:                        Nflag = 1;
                     73:                        break;
                     74: 
                     75:                    default:                            /* bad news */
                     76:                        fprintf (stderr, "Bad switch: `%c'\n", argv[k][--j]);
                     77:                        exit (BAD);
                     78:                }
                     79:            continue;                                   /* on to the next arguement */
                     80:        }
                     81: 
                     82:        printf ("%s:\t", argv[k]);
                     83:        if (argv[k][0] == '/')                          /* absolute path */
                     84:        {
                     85:            q = rindex (argv[k], '/');                  /* find trailing slash */
                     86:            *q++ = '\0';                                /* break into pieces */
                     87:            strcpy (basedir, argv[k]);
                     88:            strcpy (endname, q);
                     89:            *--q = '/';                                 /* reconnect */
                     90:        }
                     91:        else
                     92:        {
                     93:            strcpy (basedir, Mstdir);                   /* default */
                     94:            strcpy (endname, argv[k]);
                     95:        }
                     96: 
                     97: /*
                     98:  *     Actually make the notesfile in buildnf()
                     99:  */
                    100:        switch (buildnf (endname, basedir, Aflag, Oflag, Nflag))
                    101:        {
                    102:            case 0:                                     /* success */
                    103:                printf ("complete\n");
                    104:                break;
                    105: 
                    106:            case (-1):                                  /* invalid name */
                    107:            case (-2):                                  /* exists */
                    108:            default:                                    /* should be like this */
                    109:                break;                                  /* buildnf does newline */
                    110:        }
                    111: 
                    112:     }
                    113:     exit (GOOD);
                    114: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.