BSD 2 development
[unix-history] / upgrade / src / setenv.c
#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);
}
}