diff options
author | 2010-07-01 21:28:01 +0000 | |
---|---|---|
committer | 2010-07-01 21:28:01 +0000 | |
commit | 43aaf1ebdfa00737d89559da7279edfe426fce46 (patch) | |
tree | dc5edb784a6afc1c354b3b537ade8f69c0d2b98f | |
parent | Implement vs{,un}lock_device and use it for physio. (diff) | |
download | wireguard-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.c | 107 | ||||
-rw-r--r-- | usr.bin/tip/cu.c | 26 | ||||
-rw-r--r-- | usr.bin/tip/hunt.c | 7 | ||||
-rw-r--r-- | usr.bin/tip/log.c | 6 | ||||
-rw-r--r-- | usr.bin/tip/remote.c | 130 | ||||
-rw-r--r-- | usr.bin/tip/tip.c | 59 | ||||
-rw-r--r-- | usr.bin/tip/tip.h | 57 | ||||
-rw-r--r-- | usr.bin/tip/tipout.c | 22 | ||||
-rw-r--r-- | usr.bin/tip/value.c | 32 |
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); |