|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.