summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2010-07-01 21:28:01 +0000
committernicm <nicm@openbsd.org>2010-07-01 21:28:01 +0000
commit43aaf1ebdfa00737d89559da7279edfe426fce46 (patch)
treedc5edb784a6afc1c354b3b537ade8f69c0d2b98f
parentImplement vs{,un}lock_device and use it for physio. (diff)
downloadwireguard-openbsd-43aaf1ebdfa00737d89559da7279edfe426fce46.tar.xz
wireguard-openbsd-43aaf1ebdfa00737d89559da7279edfe426fce46.zip
Change variable get/set macros to have better names and drop boolean/character
ones.
-rw-r--r--usr.bin/tip/cmds.c107
-rw-r--r--usr.bin/tip/cu.c26
-rw-r--r--usr.bin/tip/hunt.c7
-rw-r--r--usr.bin/tip/log.c6
-rw-r--r--usr.bin/tip/remote.c130
-rw-r--r--usr.bin/tip/tip.c59
-rw-r--r--usr.bin/tip/tip.h57
-rw-r--r--usr.bin/tip/tipout.c22
-rw-r--r--usr.bin/tip/value.c32
9 files changed, 231 insertions, 215 deletions
diff --git a/usr.bin/tip/cmds.c b/usr.bin/tip/cmds.c
index cc8b6773ba1..a339b6461bc 100644
--- a/usr.bin/tip/cmds.c
+++ b/usr.bin/tip/cmds.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmds.c,v 1.39 2010/07/01 20:30:05 nicm Exp $ */
+/* $OpenBSD: cmds.c,v 1.40 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: cmds.c,v 1.7 1997/02/11 09:24:03 mrg Exp $ */
/*
@@ -89,7 +89,7 @@ getfl(int c)
unlink(copyname);
return;
}
- transfer(buf, sfd, value(EOFREAD));
+ transfer(buf, sfd, vgetstr(EOFREAD));
}
/*
@@ -136,7 +136,7 @@ transfer(char *buf, int fd, char *eofchars)
sig_t f;
char r;
- if (number(value(FRAMESIZE)) > BUFSIZ || number(value(FRAMESIZE)) < 1) {
+ if (vgetnum(FRAMESIZE) > BUFSIZ || vgetnum(FRAMESIZE) < 1) {
printf("framesize must be >= 1 and <= %d\r\n", BUFSIZ);
close(fd);
return;
@@ -173,9 +173,9 @@ transfer(char *buf, int fd, char *eofchars)
continue;
*p++ = c;
- if (c == '\n' && boolean(value(VERBOSE)))
+ if (c == '\n' && vgetnum(VERBOSE))
printf("\r%d", ++ct);
- if ((cnt = (p-buffer)) == number(value(FRAMESIZE))) {
+ if ((cnt = (p-buffer)) == vgetnum(FRAMESIZE)) {
if (write(fd, buffer, cnt) != cnt) {
printf("\r\nwrite error\r\n");
quit = 1;
@@ -187,7 +187,7 @@ transfer(char *buf, int fd, char *eofchars)
if (write(fd, buffer, cnt) != cnt)
printf("\r\nwrite error\r\n");
- if (boolean(value(VERBOSE)))
+ if (vgetnum(VERBOSE))
prtime(" lines transferred in ", time(0)-start);
tcsetattr(0, TCSAFLUSH, &term);
write(tipout_fd, (char *)&ccc, 1);
@@ -226,7 +226,7 @@ pipefile(int c)
} else {
close(pdes[0]);
signal(SIGPIPE, intcopy);
- transfer(buf, pdes[1], value(EOFREAD));
+ transfer(buf, pdes[1], vgetstr(EOFREAD));
signal(SIGPIPE, SIG_DFL);
while ((p = wait(&status)) > 0 && p != cpid)
;
@@ -281,8 +281,8 @@ sendfile(int c)
printf("%s: cannot open\r\n", fname);
return;
}
- transmit(fp, value(EOFWRITE), NULL);
- if (!boolean(value(ECHOCHECK)))
+ transmit(fp, vgetstr(EOFWRITE), NULL);
+ if (!vgetnum(ECHOCHECK))
tcdrain(FD);
}
@@ -306,7 +306,7 @@ transmit(FILE *fp, char *eofchars, char *command)
if (command != NULL) {
for (pc = command; *pc; pc++)
send(*pc);
- if (boolean(value(ECHOCHECK)))
+ if (vgetnum(ECHOCHECK))
read(FD, (char *)&c, 1); /* trailing \n */
else {
tcdrain(FD);
@@ -324,16 +324,16 @@ transmit(FILE *fp, char *eofchars, char *command)
goto out;
if (c == EOF)
goto out;
- if (c == 0177 && !boolean(value(RAWFTP)))
+ if (c == 0177 && !vgetnum(RAWFTP))
continue;
lastc = c;
if (c < 040) {
if (c == '\n') {
- if (!boolean(value(RAWFTP)))
+ if (!vgetnum(RAWFTP))
c = '\r';
} else if (c == '\t') {
- if (!boolean(value(RAWFTP))) {
- if (boolean(value(TABEXPAND))) {
+ if (!vgetnum(RAWFTP)) {
+ if (vgetnum(TABEXPAND)) {
send(' ');
while ((++ccount % 8) != 0)
send(' ');
@@ -341,16 +341,16 @@ transmit(FILE *fp, char *eofchars, char *command)
}
}
} else
- if (!boolean(value(RAWFTP)))
+ if (!vgetnum(RAWFTP))
continue;
}
send(c);
- } while (c != '\r' && !boolean(value(RAWFTP)));
- if (boolean(value(VERBOSE)))
+ } while (c != '\r' && !vgetnum(RAWFTP));
+ if (vgetnum(VERBOSE))
printf("\r%d", ++lcount);
- if (boolean(value(ECHOCHECK))) {
+ if (vgetnum(ECHOCHECK)) {
timedout = 0;
- alarm((unsigned int)number(value(ETIMEOUT)));
+ alarm((unsigned int)vgetnum(ETIMEOUT));
do { /* wait for prompt */
read(FD, (char *)&c, 1);
if (timedout || stop) {
@@ -359,12 +359,12 @@ transmit(FILE *fp, char *eofchars, char *command)
alarm(0);
goto out;
}
- } while ((c&STRIP_PAR) != character(value(PROMPT)));
+ } while ((c&STRIP_PAR) != vgetnum(PROMPT));
alarm(0);
}
}
out:
- if (lastc != '\n' && !boolean(value(RAWFTP)))
+ if (lastc != '\n' && !vgetnum(RAWFTP))
send('\r');
if (eofchars) {
for (pc = eofchars; *pc; pc++)
@@ -373,8 +373,8 @@ out:
stop_t = time(0);
fclose(fp);
signal(SIGINT, f);
- if (boolean(value(VERBOSE))) {
- if (boolean(value(RAWFTP)))
+ if (vgetnum(VERBOSE)) {
+ if (vgetnum(RAWFTP))
prtime(" chars transferred in ", stop_t-start_t);
else
prtime(" lines transferred in ", stop_t-start_t);
@@ -409,7 +409,7 @@ cu_put(int c)
printf("%s: cannot open\r\n", copynamex);
return;
}
- if (boolean(value(ECHOCHECK)))
+ if (vgetnum(ECHOCHECK))
(void)snprintf(line, sizeof(line), "cat>%s\r", argv[1]);
else
(void)snprintf(line, sizeof(line),
@@ -429,16 +429,16 @@ send(int c)
cc = c;
parwrite(FD, &cc, 1);
- if (number(value(CDELAY)) > 0 && c != '\r')
- usleep(number(value(CDELAY)));
- if (!boolean(value(ECHOCHECK))) {
- if (number(value(LDELAY)) > 0 && c == '\r')
- usleep(number(value(LDELAY)));
+ if (vgetnum(CDELAY) > 0 && c != '\r')
+ usleep(vgetnum(CDELAY));
+ if (!vgetnum(ECHOCHECK)) {
+ if (vgetnum(LDELAY) > 0 && c == '\r')
+ usleep(vgetnum(LDELAY));
return;
}
tryagain:
timedout = 0;
- alarm((unsigned int)number(value(ETIMEOUT)));
+ alarm((unsigned int)vgetnum(ETIMEOUT));
read(FD, &cc, 1);
alarm(0);
if (timedout) {
@@ -504,7 +504,7 @@ pipeout(int c)
printf("can't find `%s'\r\n", buf);
exit(0);
}
- if (boolean(value(VERBOSE)))
+ if (vgetnum(VERBOSE))
prtime("away for ", time(0)-start);
write(tipout_fd, (char *)&ccc, 1);
tcsetattr(0, TCSAFLUSH, &term);
@@ -554,7 +554,7 @@ consh(int c)
printf("can't find `%s'\r\n", buf);
exit(0);
}
- if (boolean(value(VERBOSE)))
+ if (vgetnum(VERBOSE))
prtime("away for ", time(0)-start);
write(tipout_fd, (char *)&ccc, 1);
tcsetattr(0, TCSAFLUSH, &term);
@@ -587,11 +587,11 @@ shell(int c)
} else {
signal(SIGQUIT, SIG_DFL);
signal(SIGINT, SIG_DFL);
- if ((cp = strrchr(value(SHELL), '/')) == NULL)
- cp = value(SHELL);
+ if ((cp = strrchr(vgetstr(SHELL), '/')) == NULL)
+ cp = vgetstr(SHELL);
else
cp++;
- execl(value(SHELL), cp, (char *)NULL);
+ execl(vgetstr(SHELL), cp, (char *)NULL);
printf("\r\ncan't execl!\r\n");
exit(1);
}
@@ -610,15 +610,15 @@ setscript(void)
* enable TIPOUT side for dialogue
*/
write(tipout_fd, "S", 1);
- if (boolean(value(SCRIPT)))
- write(tipout_fd, value(RECORD), size(value(RECORD)));
+ if (vgetnum(SCRIPT))
+ write(tipout_fd, vgetstr(RECORD), size(vgetstr(RECORD)));
write(tipout_fd, "\n", 1);
/*
* wait for TIPOUT to finish
*/
read(tipout_fd, &c, 1);
if (c == 'n')
- printf("can't create %s\r\n", value(RECORD));
+ printf("can't create %s\r\n", vgetstr(RECORD));
}
/*
@@ -635,7 +635,7 @@ chdirectory(int c)
if (prompt("[cd] ", dirname, sizeof(dirname))) {
if (stoprompt)
return;
- cp = value(HOME);
+ cp = vgetstr(HOME);
}
if (chdir(cp) < 0)
printf("%s: bad directory\r\n", cp);
@@ -647,7 +647,7 @@ tipabort(char *msg)
{
signal(SIGTERM, SIG_IGN);
kill(tipout_pid, SIGTERM);
- logent(value(HOST), value(DEVICE), "call terminated");
+ logent(vgetstr(HOST), vgetstr(DEVICE), "call terminated");
if (msg != NULL)
printf("\r\n%s", msg);
printf("\r\n[EOT]\r\n");
@@ -662,7 +662,7 @@ finish(int c)
{
char *dismsg;
- if ((dismsg = value(DISCONNECT)) != NULL) {
+ if ((dismsg = vgetstr(DISCONNECT)) != NULL) {
write(FD, dismsg, strlen(dismsg));
sleep(5);
}
@@ -683,11 +683,11 @@ execute(char *s)
{
char *cp;
- if ((cp = strrchr(value(SHELL), '/')) == NULL)
- cp = value(SHELL);
+ if ((cp = strrchr(vgetstr(SHELL), '/')) == NULL)
+ cp = vgetstr(SHELL);
else
cp++;
- execl(value(SHELL), cp, "-c", s, (char *)NULL);
+ execl(vgetstr(SHELL), cp, "-c", s, (char *)NULL);
}
static int
@@ -757,19 +757,19 @@ variable(int c)
}
if (vtable[RECORD].v_flags & V_CHANGED) {
vtable[RECORD].v_flags &= ~V_CHANGED;
- if (boolean(value(SCRIPT)))
+ if (vgetnum(SCRIPT))
setscript();
}
if (vtable[TAND].v_flags & V_CHANGED) {
vtable[TAND].v_flags &= ~V_CHANGED;
- if (boolean(value(TAND)))
+ if (vgetnum(TAND))
tandem("on");
else
tandem("off");
}
if (vtable[LECHO].v_flags & V_CHANGED) {
vtable[LECHO].v_flags &= ~V_CHANGED;
- setboolean(value(HALFDUPLEX), boolean(value(LECHO)));
+ vsetnum(HALFDUPLEX, vgetnum(LECHO));
}
if (vtable[PARITY].v_flags & V_CHANGED) {
vtable[PARITY].v_flags &= ~V_CHANGED;
@@ -777,7 +777,7 @@ variable(int c)
}
if (vtable[HARDWAREFLOW].v_flags & V_CHANGED) {
vtable[HARDWAREFLOW].v_flags &= ~V_CHANGED;
- if (boolean(value(HARDWAREFLOW)))
+ if (vgetnum(HARDWAREFLOW))
hardwareflow("on");
else
hardwareflow("off");
@@ -809,14 +809,13 @@ listvariables(int c)
putchar('\n');
break;
case V_NUMBER:
- printf(" %ld\r\n", number(p->v_value));
+ printf(" %ld\r\n", (long)p->v_value);
break;
case V_BOOL:
- printf(" %s\r\n",
- !boolean(p->v_value) ? "false" : "true");
+ printf(" %s\r\n", p->v_value ? "true" : "false");
break;
case V_CHAR:
- vis(buf, character(p->v_value), VIS_WHITE|VIS_OCTAL, 0);
+ vis(buf, (int)(long)p->v_value, VIS_WHITE|VIS_OCTAL, 0);
printf(" %s\r\n", buf);
break;
}
@@ -865,7 +864,7 @@ hardwareflow(char *option)
void
linedisc(char *option)
{
- int ld = (int)value(LINEDISC);
+ int ld = (int)vgetnum(LINEDISC);
ioctl(FD, TIOCSETD, &ld);
}
@@ -916,7 +915,7 @@ expand(char name[])
}
(void)snprintf(cmdbuf, sizeof(cmdbuf), "echo %s", name);
if ((pid = vfork()) == 0) {
- Shell = value(SHELL);
+ Shell = vgetstr(SHELL);
if (Shell == NULL)
Shell = _PATH_BSHELL;
close(pivec[0]);
diff --git a/usr.bin/tip/cu.c b/usr.bin/tip/cu.c
index dde26179b72..f3f95333fce 100644
--- a/usr.bin/tip/cu.c
+++ b/usr.bin/tip/cu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cu.c,v 1.32 2010/07/01 20:24:19 chl Exp $ */
+/* $OpenBSD: cu.c,v 1.33 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: cu.c,v 1.5 1997/02/11 09:24:05 mrg Exp $ */
/*
@@ -47,10 +47,11 @@ cumain(int argc, char *argv[])
int ch, i, parity, baudrate;
const char *errstr;
static char sbuf[12];
+ char *device;
if (argc < 2)
cuusage();
- setnumber(value(BAUDRATE), DEFBR);
+ vsetnum(BAUDRATE, DEFBR);
parity = 0; /* none */
/*
@@ -83,29 +84,30 @@ getopt:
while ((ch = getopt(argc, argv, "l:s:htoe")) != -1) {
switch (ch) {
case 'l':
- if (value(DEVICE) != NULL) {
+ if (vgetstr(DEVICE) != NULL) {
fprintf(stderr,
"%s: cannot specify multiple -l options\n",
__progname);
exit(3);
}
if (strchr(optarg, '/'))
- value(DEVICE) = optarg;
+ vsetstr(DEVICE, optarg);
else {
- if (asprintf(&value(DEVICE),
+ if (asprintf(&device,
"%s%s", _PATH_DEV, optarg) == -1)
err(3, "asprintf");
+ vsetstr(DEVICE, device);
}
break;
case 's':
baudrate = (int)strtonum(optarg, 0, INT_MAX, &errstr);
if (errstr)
errx(3, "speed is %s: %s", errstr, optarg);
- setnumber(value(BAUDRATE), baudrate);
+ vsetnum(BAUDRATE, baudrate);
break;
case 'h':
- setboolean(value(LECHO), 1);
- setboolean(value(HALFDUPLEX), 1);
+ vsetnum(LECHO, 1);
+ vsetnum(HALFDUPLEX, 1);
break;
case 't':
/* Was for a hardwired dial-up connection. */
@@ -150,7 +152,7 @@ getopt:
* The "cu" host name is used to define the
* attributes of the generic dialer.
*/
- (void)snprintf(sbuf, sizeof(sbuf), "cu%ld", number(value(BAUDRATE)));
+ (void)snprintf(sbuf, sizeof(sbuf), "cu%ld", vgetnum(BAUDRATE));
if ((i = hunt(sbuf)) == 0) {
printf("all ports busy\n");
exit(3);
@@ -174,10 +176,10 @@ getopt:
setparity("none");
break;
}
- setboolean(value(VERBOSE), 0);
- if (ttysetup(number(value(BAUDRATE)))) {
+ vsetnum(VERBOSE, 0);
+ if (ttysetup(vgetnum(BAUDRATE))) {
fprintf(stderr, "%s: unsupported speed %ld\n",
- __progname, number(value(BAUDRATE)));
+ __progname, vgetnum(BAUDRATE));
(void)uu_unlock(uucplock);
exit(3);
}
diff --git a/usr.bin/tip/hunt.c b/usr.bin/tip/hunt.c
index 7885368d37f..0f7b784cd65 100644
--- a/usr.bin/tip/hunt.c
+++ b/usr.bin/tip/hunt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hunt.c,v 1.16 2010/06/29 20:09:39 nicm Exp $ */
+/* $OpenBSD: hunt.c,v 1.17 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: hunt.c,v 1.6 1997/04/20 00:02:10 mellon Exp $ */
/*
@@ -66,8 +66,7 @@ hunt(char *name)
if (setjmp(deadline) == 0) {
alarm(10);
- FD = open(cp, (O_RDWR |
- (boolean(value(DC)) ? O_NONBLOCK : 0)));
+ FD = open(cp, O_RDWR | (vgetnum(DC) ? O_NONBLOCK : 0));
}
alarm(0);
if (FD < 0) {
@@ -78,7 +77,7 @@ hunt(char *name)
struct termios cntrl;
tcgetattr(FD, &cntrl);
- if (!boolean(value(DC)))
+ if (!vgetnum(DC))
cntrl.c_cflag |= HUPCL;
tcsetattr(FD, TCSAFLUSH, &cntrl);
ioctl(FD, TIOCEXCL, 0);
diff --git a/usr.bin/tip/log.c b/usr.bin/tip/log.c
index 106b8060e9e..b92cc81e700 100644
--- a/usr.bin/tip/log.c
+++ b/usr.bin/tip/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.12 2010/06/29 16:44:38 nicm Exp $ */
+/* $OpenBSD: log.c,v 1.13 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: log.c,v 1.4 1994/12/24 17:56:28 cgd Exp $ */
/*
@@ -69,7 +69,7 @@ logent(char *group, char *acu, char *message)
void
loginit(void)
{
- flog = fopen(value(LOG), "a");
+ flog = fopen(vgetstr(LOG), "a");
if (flog == NULL)
- fprintf(stderr, "can't open log file %s.\r\n", value(LOG));
+ fprintf(stderr, "can't open log file %s.\r\n", vgetstr(LOG));
}
diff --git a/usr.bin/tip/remote.c b/usr.bin/tip/remote.c
index 5c4aea68c72..06d7fc41d18 100644
--- a/usr.bin/tip/remote.c
+++ b/usr.bin/tip/remote.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: remote.c,v 1.26 2010/07/01 20:24:19 chl Exp $ */
+/* $OpenBSD: remote.c,v 1.27 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: remote.c,v 1.5 1997/04/20 00:02:45 mellon Exp $ */
/*
@@ -62,13 +62,13 @@ getremcap(char *host)
}
if ((stat = cgetent(&bp, db_array, host)) < 0) {
- if (value(DEVICE) != NULL ||
+ if (vgetstr(DEVICE) != NULL ||
(host[0] == '/' && access(host, R_OK | W_OK) == 0)) {
- value(DEVICE) = host;
- value(HOST) = host;
- if (!number(value(BAUDRATE)))
- setnumber(value(BAUDRATE), DEFBR);
- setnumber(value(FRAMESIZE), DEFFS);
+ vsetstr(DEVICE, host);
+ vsetstr(HOST, host);
+ if (!vgetnum(BAUDRATE))
+ vsetnum(BAUDRATE, DEFBR);
+ vsetnum(FRAMESIZE, DEFFS);
return;
}
switch (stat) {
@@ -89,15 +89,33 @@ getremcap(char *host)
exit(3);
}
- cgetstr(bp, "dv", &value(DEVICE));
- cgetstr(bp, "cm", &value(CONNECT));
- cgetstr(bp, "di", &value(DISCONNECT));
- cgetstr(bp, "el", &value(EOL));
- cgetstr(bp, "ie", &value(EOFREAD));
- cgetstr(bp, "oe", &value(EOFWRITE));
- cgetstr(bp, "ex", &value(EXCEPTIONS));
- cgetstr(bp, "re", &value(RECORD));
- cgetstr(bp, "pa", &value(PARITY));
+ if (cgetstr(bp, "dv", &strval) < 0)
+ strval = NULL;
+ vsetstr(DEVICE, strval);
+ if (cgetstr(bp, "cm", &strval) < 0)
+ strval = NULL;
+ vsetstr(CONNECT, strval);
+ if (cgetstr(bp, "di", &strval) < 0)
+ strval = NULL;
+ vsetstr(DISCONNECT, strval);
+ if (cgetstr(bp, "el", &strval) < 0)
+ strval = NULL;
+ vsetstr(EOL, strval);
+ if (cgetstr(bp, "ie", &strval) < 0)
+ strval = NULL;
+ vsetstr(EOFREAD, strval);
+ if (cgetstr(bp, "oe", &strval) < 0)
+ strval = NULL;
+ vsetstr(EOFWRITE, strval);
+ if (cgetstr(bp, "ex", &strval) < 0)
+ strval = NULL;
+ vsetstr(EXCEPTIONS, strval);
+ if (cgetstr(bp, "re", &strval) < 0)
+ strval = NULL;
+ vsetstr(RECORD, strval);
+ if (cgetstr(bp, "pa", &strval) < 0)
+ strval = NULL;
+ vsetstr(PARITY, strval);
if (cgetstr(bp, "es", &strval) >= 0 && strval != NULL)
vstring("es", strval);
@@ -107,75 +125,75 @@ getremcap(char *host)
vstring("pr", strval);
if (cgetstr(bp, "rc", &strval) >= 0 && strval != NULL)
vstring("rc", strval);
-
- if (!number(value(BAUDRATE))) {
+
+ if (!vgetnum(BAUDRATE)) {
if (cgetnum(bp, "br", &val) == -1)
- setnumber(value(BAUDRATE), DEFBR);
+ vsetnum(BAUDRATE, DEFBR);
else
- setnumber(value(BAUDRATE), val);
+ vsetnum(BAUDRATE, val);
}
- if (!number(value(LINEDISC))) {
+ if (!vgetnum(LINEDISC)) {
if (cgetnum(bp, "ld", &val) == -1)
- setnumber(value(LINEDISC), TTYDISC);
+ vsetnum(LINEDISC, TTYDISC);
else
- setnumber(value(LINEDISC), val);
+ vsetnum(LINEDISC, val);
}
if (cgetnum(bp, "fs", &val) == -1)
- setnumber(value(FRAMESIZE), DEFFS);
+ vsetnum(FRAMESIZE, DEFFS);
else
- setnumber(value(FRAMESIZE), val);
- if (value(DEVICE) == NULL) {
+ vsetnum(FRAMESIZE, val);
+ if (vgetstr(DEVICE) == NULL) {
fprintf(stderr, "%s: missing device spec\n", host);
exit(3);
}
- value(HOST) = host;
+ vsetstr(HOST, host);
if (cgetflag("hd"))
- setboolean(value(HALFDUPLEX), 1);
+ vsetnum(HALFDUPLEX, 1);
if (cgetflag("ra"))
- setboolean(value(RAISE), 1);
+ vsetnum(RAISE, 1);
if (cgetflag("ec"))
- setboolean(value(ECHOCHECK), 1);
+ vsetnum(ECHOCHECK, 1);
if (cgetflag("be"))
- setboolean(value(BEAUTIFY), 1);
+ vsetnum(BEAUTIFY, 1);
if (cgetflag("nb"))
- setboolean(value(BEAUTIFY), 0);
+ vsetnum(BEAUTIFY, 0);
if (cgetflag("sc"))
- setboolean(value(SCRIPT), 1);
+ vsetnum(SCRIPT, 1);
if (cgetflag("tb"))
- setboolean(value(TABEXPAND), 1);
+ vsetnum(TABEXPAND, 1);
if (cgetflag("vb"))
- setboolean(value(VERBOSE), 1);
+ vsetnum(VERBOSE, 1);
if (cgetflag("nv"))
- setboolean(value(VERBOSE), 0);
+ vsetnum(VERBOSE, 0);
if (cgetflag("ta"))
- setboolean(value(TAND), 1);
+ vsetnum(TAND, 1);
if (cgetflag("nt"))
- setboolean(value(TAND), 0);
+ vsetnum(TAND, 0);
if (cgetflag("rw"))
- setboolean(value(RAWFTP), 1);
+ vsetnum(RAWFTP, 1);
if (cgetflag("hd"))
- setboolean(value(HALFDUPLEX), 1);
+ vsetnum(HALFDUPLEX, 1);
if (cgetflag("dc"))
- setboolean(value(DC), 1);
+ vsetnum(DC, 1);
if (cgetflag("hf"))
- setboolean(value(HARDWAREFLOW), 1);
- if (value(RECORD) == NULL)
- value(RECORD) = "tip.record";
- if (value(EXCEPTIONS) == NULL)
- value(EXCEPTIONS) = "\t\n\b\f";
+ vsetnum(HARDWAREFLOW, 1);
+ if (vgetstr(RECORD) == NULL)
+ vsetstr(RECORD, "tip.record");
+ if (vgetstr(EXCEPTIONS) == NULL)
+ vsetstr(EXCEPTIONS, "\t\n\b\f");
if (cgetnum(bp, "dl", &val) == -1)
- setnumber(value(LDELAY), 0);
+ vsetnum(LDELAY, 0);
else
- setnumber(value(LDELAY), val);
+ vsetnum(LDELAY, val);
if (cgetnum(bp, "cl", &val) == -1)
- setnumber(value(CDELAY), 0);
+ vsetnum(CDELAY, 0);
else
- setnumber(value(CDELAY), val);
+ vsetnum(CDELAY, val);
if (cgetnum(bp, "et", &val) == -1)
- setnumber(value(ETIMEOUT), 0);
+ vsetnum(ETIMEOUT, 0);
else
- setnumber(value(ETIMEOUT), val);
+ vsetnum(ETIMEOUT, val);
}
char *
@@ -191,7 +209,7 @@ getremote(char *host)
exit(3);
}
getremcap(host);
- next = value(DEVICE);
+ next = vgetstr(DEVICE);
lookedup++;
}
/*
@@ -201,12 +219,12 @@ getremote(char *host)
if (next == NULL)
return (NULL);
if ((cp = strchr(next, ',')) == NULL) {
- value(DEVICE) = next;
+ vsetstr(DEVICE, next);
next = NULL;
} else {
*cp++ = '\0';
- value(DEVICE) = next;
+ vsetstr(DEVICE, next);
next = cp;
}
- return (value(DEVICE));
+ return (vgetstr(DEVICE));
}
diff --git a/usr.bin/tip/tip.c b/usr.bin/tip/tip.c
index 61c52c48b62..0d18fd87508 100644
--- a/usr.bin/tip/tip.c
+++ b/usr.bin/tip/tip.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tip.c,v 1.47 2010/07/01 20:24:19 chl Exp $ */
+/* $OpenBSD: tip.c,v 1.48 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: tip.c,v 1.13 1997/04/20 00:03:05 mellon Exp $ */
/*
@@ -54,7 +54,7 @@ main(int argc, char *argv[])
int i, pair[2];
/* XXX preserve previous braindamaged behavior */
- setboolean(value(DC), 1);
+ vsetnum(DC, 1);
if (strcmp(__progname, "cu") == 0) {
cumode = 1;
@@ -86,7 +86,7 @@ main(int argc, char *argv[])
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
- setnumber(value(BAUDRATE), atoi(&argv[1][1]));
+ vsetnum(BAUDRATE, atoi(&argv[1][1]));
break;
default:
@@ -116,9 +116,9 @@ main(int argc, char *argv[])
vinit(); /* init variables */
setparity("none"); /* set the parity table */
- if (ttysetup(number(value(BAUDRATE)))) {
+ if (ttysetup(vgetnum(BAUDRATE))) {
fprintf(stderr, "%s: bad baud rate %ld\n", __progname,
- number(value(BAUDRATE)));
+ vgetnum(BAUDRATE));
(void)uu_unlock(uucplock);
exit(3);
}
@@ -157,10 +157,10 @@ cucommon:
(void)signal(SIGALRM, timeout);
- if (value(LINEDISC) != TTYDISC) {
- int ld = (int)value(LINEDISC);
+ if (vgetnum(LINEDISC) != TTYDISC) {
+ int ld = (int)vgetnum(LINEDISC);
ioctl(FD, TIOCSETD, &ld);
- }
+ }
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0) {
(void)uu_unlock(uucplock);
@@ -196,9 +196,9 @@ cucommon:
void
con(void)
{
- if (value(CONNECT) != NULL)
- parwrite(FD, value(CONNECT), size(value(CONNECT)));
- logent(value(HOST), value(DEVICE), "call completed");
+ if (vgetstr(CONNECT) != NULL)
+ parwrite(FD, vgetstr(CONNECT), size(vgetstr(CONNECT)));
+ logent(vgetstr(HOST), vgetstr(DEVICE), "call completed");
}
void
@@ -295,7 +295,7 @@ tipin(void)
* send a SIGEMT before tipout has a chance to set up catching
* it; so wait a second, then setscript()
*/
- if (boolean(value(SCRIPT))) {
+ if (vgetnum(SCRIPT)) {
sleep(1);
setscript();
}
@@ -303,29 +303,29 @@ tipin(void)
while (1) {
gch = getchar()&STRIP_PAR;
/* XXX does not check for EOF */
- if ((gch == character(value(ESCAPE))) && bol) {
+ if (gch == vgetnum(ESCAPE) && bol) {
if (!noesc) {
if (!(gch = escape()))
continue;
}
- } else if (!cumode && gch == character(value(RAISECHAR))) {
- setboolean(value(RAISE), !boolean(value(RAISE)));
+ } else if (!cumode && gch == vgetnum(RAISECHAR)) {
+ vsetnum(RAISE, !vgetnum(RAISE));
continue;
} else if (gch == '\r') {
bol = 1;
ch = gch;
parwrite(FD, &ch, 1);
- if (boolean(value(HALFDUPLEX)))
+ if (vgetnum(HALFDUPLEX))
printf("\r\n");
continue;
- } else if (!cumode && gch == character(value(FORCE)))
- gch = getchar()&STRIP_PAR;
- bol = any(gch, value(EOL));
- if (boolean(value(RAISE)) && islower(gch))
+ } else if (!cumode && gch == vgetnum(FORCE))
+ gch = getchar() & STRIP_PAR;
+ bol = any(gch, vgetstr(EOL));
+ if (vgetnum(RAISE) && islower(gch))
gch = toupper(gch);
ch = gch;
parwrite(FD, &ch, 1);
- if (boolean(value(HALFDUPLEX)))
+ if (vgetnum(HALFDUPLEX))
printf("%c", ch);
}
}
@@ -341,7 +341,7 @@ escape(void)
{
int gch;
esctable_t *p;
- char c = character(value(ESCAPE));
+ char c = vgetnum(ESCAPE);
gch = (getchar()&STRIP_PAR);
/* XXX does not check for EOF */
@@ -428,7 +428,7 @@ help(int c)
printf("%c\r\n", c);
for (p = etable; p->e_char; p++) {
- printf("%2s", ctrl(character(value(ESCAPE))));
+ printf("%2s", ctrl(vgetnum(ESCAPE)));
printf("%-2s %s\r\n", ctrl(p->e_char), p->e_help);
}
}
@@ -446,16 +446,16 @@ ttysetup(int speed)
cfsetspeed(&cntrl, speed);
cntrl.c_cflag &= ~(CSIZE|PARENB);
cntrl.c_cflag |= CS8;
- if (boolean(value(DC)))
+ if (vgetnum(DC))
cntrl.c_cflag |= CLOCAL;
- if (boolean(value(HARDWAREFLOW)))
+ if (vgetnum(HARDWAREFLOW))
cntrl.c_cflag |= CRTSCTS;
cntrl.c_iflag &= ~(ISTRIP|ICRNL);
cntrl.c_oflag &= ~OPOST;
cntrl.c_lflag &= ~(ICANON|ISIG|IEXTEN|ECHO);
cntrl.c_cc[VMIN] = 1;
cntrl.c_cc[VTIME] = 0;
- if (boolean(value(TAND)))
+ if (vgetnum(TAND))
cntrl.c_iflag |= IXOFF;
return (tcsetattr(FD, TCSAFLUSH, &cntrl));
}
@@ -483,6 +483,7 @@ parwrite(int fd, char *buf, size_t n)
if (errno == EIO)
tipabort("Lost carrier.");
/* this is questionable */
+ abort();;//
perror("write");
}
}
@@ -497,9 +498,9 @@ setparity(char *defparity)
char *parity;
extern const unsigned char evenpartab[];
- if (value(PARITY) == NULL)
- value(PARITY) = defparity;
- parity = value(PARITY);
+ if (vgetstr(PARITY) == NULL)
+ vsetstr(PARITY, defparity);
+ parity = vgetstr(PARITY);
if (strcmp(parity, "none") == 0) {
bits8 = 1;
return;
diff --git a/usr.bin/tip/tip.h b/usr.bin/tip/tip.h
index 09d598a1030..af7e45bfcd5 100644
--- a/usr.bin/tip/tip.h
+++ b/usr.bin/tip/tip.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tip.h,v 1.47 2010/07/01 20:30:05 nicm Exp $ */
+/* $OpenBSD: tip.h,v 1.48 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: tip.h,v 1.7 1997/04/20 00:02:46 mellon Exp $ */
/*
@@ -75,37 +75,17 @@ extern value_t vtable[]; /* variable table */
#define V_READONLY 040 /* variable is not writable */
#define V_INIT 0100 /* static data space used for initialization */
-#define value(v) vtable[v].v_value
+#define vgetstr(v) (vtable[v].v_value)
+#define vgetnum(v) ((long)(vtable[v].v_value))
-#define number(v) ((long)(v))
-#define boolean(v) ((short)(long)(v))
-#define character(v) ((char)(long)(v))
+#define vsetstr(v, s) do { \
+ vtable[v].v_value = s; \
+ } while (0)
+#define vsetnum(v, n) do { \
+ vtable[v].v_value = (char *)(long)(n); \
+ } while (0)
-#define setnumber(v,n) do { (v) = (char *)(long)(n); } while (0)
-#define setboolean(v,n) do { (v) = (char *)(long)(n); } while (0)
-#define setcharacter(v,n) do { (v) = (char *)(long)(n); } while (0)
-
-/*
- * Escape command table definitions --
- * lookup in this table is performed when ``escapec'' is recognized
- * at the begining of a line (as defined by the eolmarks variable).
-*/
-
-typedef
- struct {
- char e_char; /* char to match on */
- char *e_help; /* help string */
- void (*e_func)(int); /* command */
- }
- esctable_t;
-
-extern int vflag; /* verbose during reading of .tiprc file */
-extern int noesc; /* no escape `~' char */
-
-/*
- * Definition of indices into variable table so
- * value(DEFINE) turns into a static address.
- */
+/* Variable table indexes. */
enum {
BEAUTIFY = 0,
BAUDRATE,
@@ -145,6 +125,23 @@ enum {
DC
};
+/*
+ * Escape command table definitions --
+ * lookup in this table is performed when ``escapec'' is recognized
+ * at the begining of a line (as defined by the eolmarks variable).
+*/
+
+typedef
+ struct {
+ char e_char; /* char to match on */
+ char *e_help; /* help string */
+ void (*e_func)(int); /* command */
+ }
+ esctable_t;
+
+extern int vflag; /* verbose during reading of .tiprc file */
+extern int noesc; /* no escape `~' char */
+
struct termios term; /* current mode of terminal */
struct termios defterm; /* initial mode of terminal */
struct termios defchars; /* current mode with initial chars */
diff --git a/usr.bin/tip/tipout.c b/usr.bin/tip/tipout.c
index ca3bd6fdc44..65fcec2605b 100644
--- a/usr.bin/tip/tipout.c
+++ b/usr.bin/tip/tipout.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tipout.c,v 1.22 2010/06/29 21:34:50 nicm Exp $ */
+/* $OpenBSD: tipout.c,v 1.23 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: tipout.c,v 1.5 1996/12/29 10:34:12 cgd Exp $ */
/*
@@ -78,17 +78,17 @@ tipout_script(void)
read(tipin_fd, &c, 1);
}
*pline = '\0';
- if (boolean(value(SCRIPT)) && fscript != NULL)
+ if (vgetnum(SCRIPT) && fscript != NULL)
fclose(fscript);
if (pline == line) {
- setboolean(value(SCRIPT), 0);
+ vsetnum(SCRIPT, 0);
reply = 'y';
} else {
if ((fscript = fopen(line, "a")) == NULL)
reply = 'n';
else {
reply = 'y';
- setboolean(value(SCRIPT), 1);
+ vsetnum(SCRIPT, 1);
}
}
write(tipin_fd, &reply, 1);
@@ -107,14 +107,14 @@ tipout_write(char *buf, size_t len)
write(STDOUT_FILENO, buf, len);
- if (boolean(value(SCRIPT)) && fscript != NULL) {
- if (!boolean(value(BEAUTIFY)))
+ if (vgetnum(SCRIPT) && fscript != NULL) {
+ if (!vgetnum(BEAUTIFY))
fwrite(buf, 1, len, fscript);
else {
for (cp = buf; cp < buf + len; cp++) {
if ((*cp >= ' ' && *cp <= '~') ||
- any(*cp, value(EXCEPTIONS)))
- putc(*cp, fscript);
+ any(*cp, vgetstr(EXCEPTIONS)))
+ putc(*cp, fscript);
}
}
}
@@ -177,8 +177,8 @@ tipout(void)
tipout_script();
break;
case 'B': /* toggle beautify */
- flag = !boolean(value(BEAUTIFY));
- setboolean(value(BEAUTIFY), flag);
+ flag = !vgetnum(BEAUTIFY);
+ vsetnum(BEAUTIFY, flag);
break;
}
break;
@@ -203,7 +203,7 @@ tipout(void)
}
fail:
- if (boolean(value(SCRIPT)) && fscript != NULL)
+ if (vgetnum(SCRIPT) && fscript != NULL)
fclose(fscript);
kill(tipin_pid, SIGTERM);
exit(0);
diff --git a/usr.bin/tip/value.c b/usr.bin/tip/value.c
index a31f7979189..75b6737f411 100644
--- a/usr.bin/tip/value.c
+++ b/usr.bin/tip/value.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: value.c,v 1.24 2010/07/01 20:24:19 chl Exp $ */
+/* $OpenBSD: value.c,v 1.25 2010/07/01 21:28:01 nicm Exp $ */
/* $NetBSD: value.c,v 1.6 1997/02/11 09:24:09 mrg Exp $ */
/*
@@ -54,15 +54,15 @@ vinit(void)
/* Read environment variables. */
if (cp = getenv("HOME"))
- value(HOME) = cp;
+ vsetstr(HOME, cp);
if (cp = getenv("SHELL"))
- value(SHELL) = cp;
+ vsetstr(SHELL, cp);
/* Read the .tiprc file in the HOME directory. */
- written = snprintf(file, sizeof(file), "%s/.tiprc", value(HOME));
+ written = snprintf(file, sizeof(file), "%s/.tiprc", vgetstr(HOME));
if (written < 0 || written >= sizeof(file)) {
(void)fprintf(stderr, "Home directory path too long: %s\n",
- value(HOME));
+ vgetstr(HOME));
} else {
if ((fp = fopen(file, "r")) != NULL) {
char *tp;
@@ -101,19 +101,19 @@ vassign(value_t *p, char *v)
p->v_flags &= ~V_INIT;
break;
case V_NUMBER:
- if (number(p->v_value) == number(v))
+ if (p->v_value == v)
return;
- setnumber(p->v_value, number(v));
+ p->v_value = v;
break;
case V_BOOL:
- if (boolean(p->v_value) == (*v != '!'))
+ if ((long)p->v_value == (*v != '!'))
return;
- setboolean(p->v_value, (*v != '!'));
+ p->v_value = (char *)(long)(*v != '!');
break;
case V_CHAR:
- if (character(p->v_value) == *v)
+ if ((char)(long)p->v_value == *v)
return;
- setcharacter(p->v_value, *v);
+ p->v_value = (char *)(long)*v;
}
p->v_flags |= V_CHANGED;
}
@@ -152,7 +152,7 @@ vtoken(char *s)
if ((p = vlookup(s))) {
cp++;
if ((p->v_flags & V_TYPEMASK) == V_NUMBER)
- vassign(p, (char *)atoi(cp));
+ vassign(p, (char *)(long)atoi(cp));
else {
if (strcmp(s, "record") == 0)
cp = expand(cp);
@@ -191,7 +191,7 @@ vprint(value_t *p)
switch (p->v_flags & V_TYPEMASK) {
case V_BOOL:
- if (!boolean(p->v_value)) {
+ if (!p->v_value) {
col++;
putchar('!');
}
@@ -210,14 +210,14 @@ vprint(value_t *p)
case V_NUMBER:
col += 6;
- printf("%s=%-5ld", p->v_name, number(p->v_value));
+ printf("%s=%-5ld", p->v_name, (long)p->v_value);
break;
case V_CHAR:
printf("%s=", p->v_name);
col++;
if (p->v_value) {
- cp = ctrl(character(p->v_value));
+ cp = ctrl((char)(long)p->v_value);
col += size(cp);
printf("%s", cp);
}
@@ -307,7 +307,7 @@ vstring(char *s, char *v)
if (p == 0)
return (1);
if ((p->v_flags & V_TYPEMASK) == V_NUMBER)
- vassign(p, (char *)atoi(v));
+ vassign(p, (char *)(long)atoi(v));
else {
if (strcmp(s, "record") == 0)
v = expand(v);