Commit | Line | Data |
---|---|---|
840fc587 SL |
1 | #ifndef lint |
2 | static char *sccsid ="@(#)biff.c 4.2 (Berkeley) %G%"; | |
3 | #endif | |
c68204ea BJ |
4 | /* |
5 | * biff | |
6 | */ | |
7 | ||
8 | #include <sys/types.h> | |
840fc587 | 9 | #include <sys/stat.h> |
c68204ea BJ |
10 | #include <stdio.h> |
11 | ||
12 | char *ttyname(); | |
13 | ||
14 | main(argc, argv) | |
15 | int argc; | |
16 | char **argv; | |
17 | { | |
18 | char *cp = ttyname(2); | |
19 | struct stat stb; | |
20 | ||
21 | argc--, argv++; | |
22 | if (cp == 0) | |
23 | fprintf(stderr, "Where are you?\n"), exit(1); | |
24 | if (stat(cp, &stb) < 0) | |
25 | perror(cp), exit(1); | |
26 | if (argc == 0) { | |
27 | printf("is %s\n", stb.st_mode&0100 ? "y" : "n"); | |
28 | exit((stb.st_mode&0100) ? 0 : 1); | |
29 | } | |
30 | switch (argv[0][0]) { | |
31 | ||
32 | case 'y': | |
33 | if (chmod(cp, stb.st_mode|0100) < 0) | |
34 | perror(cp); | |
35 | break; | |
36 | ||
37 | case 'n': | |
38 | if (chmod(cp, stb.st_mode&~0100) < 0) | |
39 | perror(cp); | |
40 | break; | |
41 | ||
42 | default: | |
43 | fprintf(stderr, "usage: biff [y] [n]\n"); | |
44 | } | |
45 | exit((stb.st_mode&0100) ? 0 : 1); | |
46 | } |