home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
minnie.tuhs.org
/
unixen.tar
/
unixen
/
PDP-11
/
Distributions
/
ucb
/
spencer_2bsd.tar.gz
/
2bsd.tar
/
upgrade
/
src
/
setenv.c
< prev
next >
Wrap
C/C++ Source or Header
|
1980-02-17
|
876b
|
47 lines
#include <retrofit.h>
#include <stdio.h>
/*
* Simulate version 7 setenv in version 6 using htmp.
*/
struct htmp {
int uid;
char home[28];
int ttytype;
} hentry;
main(argc, argv)
char **argv;
{
int t;
argc--, argv++;
if (argc != 2 || strcmp(argv[0], "TERM") && strcmp(argv[0], "HOME")) {
fprintf(stderr, "Usage: setenv TERM type\nor: setenv HOME dir\n");
exit(1);
}
t = ttyn(2);
if (t == 'x') {
fprintf(stderr, "Unit 2 not teletype.\n");
exit(1);
}
if (hget(t) < 0) {
fprintf(stderr, "Can't access data base.\n");
exit(1);
}
if (!strcmp(argv[0], "TERM")) {
char buf[512];
if (tgetent(buf, argv[1]) <= 0) {
fprintf(stderr, "Unknown terminal type.\n");
exit(1);
}
hsettype(buf[0] | (buf[1] << 8));
} else
hsethome(argv[1]);
hsetuid(getuid());
if (hput(t) < 0) {
fprintf(stderr, "Can't update data base.\n");
exit(1);
}
}