1: #define MAINLINE
2: #include "parms.h"
3: #include "structs.h"
4:
5: #ifdef RCSIDENT
6: static char rcsid[] = "$Header: nfpipe.c,v 1.7.0.1 85/10/06 01:41:35 notes Rel $";
7: #endif RCSIDENT
8:
9: /*
10: * nfpipe - allow a user to put this at the end of a pipe
11: * to catch everything that comes at it. The program
12: * merely checks arguement 1 for the name of the notefile,
13: * verifys write permission (exiting if none) and then
14: * places the note into the notefile.
15: * the second arguement is the title to be of the note.
16: * THis can be null in which case the mult routine will insert
17: * a title consisting of the first TITLEN characters or
18: * or so of the note text.
19: *
20: * Original coding: Ray Essick January 1982
21: */
22:
23:
24: main (argc, argv)
25: char **argv;
26: {
27: struct io_f io;
28: struct note_f note;
29: struct daddr_f where;
30: struct auth_f auth;
31: struct id_f unique;
32: char *nfname,
33: *ntitle;
34: int stat,
35: anon,
36: i;
37: char title[TITLEN]; /* title */
38:
39: startup (argc, argv); /* common initialization */
40:
41: if (argc == 1) /* not even a notefile - bad */
42: {
43:
44: printf ("Usage: %s notefile [-t title] [-d] [-a]\n", argv[0]);
45:
46: exit (BAD);
47: }
48: stat = anon = 0; /* set up flags and such */
49: ntitle = NULL; /* empty title */
50: unique.uniqid = 0; /* make mult do assignment */
51: for (i = 1; i < argc; i++)
52: if (argv[i][0] != '-')
53: nfname = argv[i]; /* point notefile name */
54: else
55: switch (argv[i][1])
56: {
57: case 'd':
58: stat = DIRMES; /* enable director message */
59: break;
60:
61: case 't': /* this one is the title */
62: ntitle = argv[++i]; /* grab title */
63: break;
64:
65:
66: case 'a':
67: anon = 1;
68: break;
69:
70: default:
71: printf ("Bad switch: %c\n", argv[i][1]);
72: exit (BAD);
73: }
74:
75: if (init (&io, nfname) < 0)
76: exit (NONF); /* no notefile - leave quickly */
77:
78: if (allow (&io, WRITOK) == 0)
79: {
80: printf ("You haven't write permission\n ");
81: finish (&io);
82: exit (BAD);
83: }
84:
85: if (globuid == Anonuid)
86: {
87: printf ("You have the wrong uid (%d) for notefiles, talk to the system manager\n",
88: globuid);
89: finish (&io);
90: exit (BAD);
91: }
92:
93: #ifndef WRITEARCH /* allowing writes */
94: if ((io.descr.d_stat & ISARCH) && !allow (&io, DRCTOK))
95: {
96: at (0, 10);
97: printf ("Sorry, you can not write in an archive");
98: fflush (stdout);
99: exit (BAD);
100: }
101: #endif WRITEARCH
102:
103: if (allow (&io, DRCTOK) == 0)
104: stat &= NOT DIRMES;
105: if ((io.descr.d_stat & ANONOK) == 0)
106: anon = 0;
107:
108: getname (&auth, anon); /* grab name */
109:
110: gettime (¬e.n_date);
111: if (ntitle == NULL) /* no title given */
112: ntitle = "Through nfpipe";
113: else
114: strclean (ntitle); /* zap control chars */
115:
116: for (i = 0; i < TITLEN; i++)
117: if ((title[i] = *ntitle++) == '\0') /* want assignment */
118: break;
119: title[TITLEN - 1] = '\0'; /* sure it stops */
120: pagein (&io, stdin, &where); /* put it in there */
121: putnote (&io, &where, title, stat, ¬e, &auth, NOPOLICY, LOCKIT, COPYID, System, 1);
122: finish (&io); /* close shop */
123: exit (GOOD);
124: }
Defined functions
main
defined in line
24;
never used
Defined variables
rcsid
defined in line
6;
never used
Defined macros