aboutsummaryrefslogtreecommitdiff
path: root/toys
diff options
context:
space:
mode:
Diffstat (limited to 'toys')
-rw-r--r--toys/other/mix.c24
-rw-r--r--toys/other/mkpasswd.c25
-rw-r--r--toys/other/modinfo.c12
-rw-r--r--toys/other/oneit.c4
-rw-r--r--toys/other/shred.c20
-rw-r--r--toys/other/stat.c4
-rw-r--r--toys/other/swapon.c5
-rw-r--r--toys/other/switch_root.c8
-rw-r--r--toys/other/timeout.c13
-rw-r--r--toys/other/xxd.c6
-rw-r--r--toys/posix/grep.c27
-rw-r--r--toys/posix/uniq.c14
12 files changed, 72 insertions, 90 deletions
diff --git a/toys/other/mix.c b/toys/other/mix.c
index 845aac1f..d0f65618 100644
--- a/toys/other/mix.c
+++ b/toys/other/mix.c
@@ -24,10 +24,8 @@ config MIX
#include <linux/soundcard.h>
GLOBALS(
- long right;
- long level;
- char *dev;
- char *chan;
+ long r, l;
+ char *d, *c;
)
void mix_main(void)
@@ -35,31 +33,31 @@ void mix_main(void)
const char *channels[SOUND_MIXER_NRDEVICES] = SOUND_DEVICE_NAMES;
int mask, channel = -1, level, fd;
- if (!TT.dev) TT.dev = "/dev/mixer";
- fd = xopen(TT.dev, O_RDWR|O_NONBLOCK);
+ if (!TT.d) TT.d = "/dev/mixer";
+ fd = xopen(TT.d, O_RDWR|O_NONBLOCK);
xioctl(fd, SOUND_MIXER_READ_DEVMASK, &mask);
for (channel = 0; channel < SOUND_MIXER_NRDEVICES; channel++) {
if ((1<<channel) & mask) {
- if (TT.chan) {
- if (!strcmp(channels[channel], TT.chan)) break;
+ if (TT.c) {
+ if (!strcmp(channels[channel], TT.c)) break;
} else if (toys.optflags & FLAG_l) break;
else printf("%s\n", channels[channel]);
}
}
if (!(toys.optflags & (FLAG_c|FLAG_l))) return;
- else if (channel == SOUND_MIXER_NRDEVICES) error_exit("bad -c '%s'", TT.chan);
+ else if (channel == SOUND_MIXER_NRDEVICES) error_exit("bad -c '%s'", TT.c);
if (!(toys.optflags & FLAG_l)) {
xioctl(fd, MIXER_READ(channel), &level);
if (level > 0xFF)
xprintf("%s:%s = left:%d\t right:%d\n",
- TT.dev, channels[channel], level>>8, level & 0xFF);
- else xprintf("%s:%s = %d\n", TT.dev, channels[channel], level);
+ TT.d, channels[channel], level>>8, level & 0xFF);
+ else xprintf("%s:%s = %d\n", TT.d, channels[channel], level);
} else {
- level = TT.level;
- if (!(toys.optflags & FLAG_r)) level = TT.right | (level<<8);
+ level = TT.l;
+ if (!(toys.optflags & FLAG_r)) level = TT.r | (level<<8);
xioctl(fd, MIXER_WRITE(channel), &level);
}
diff --git a/toys/other/mkpasswd.c b/toys/other/mkpasswd.c
index fe1bd26f..b4151363 100644
--- a/toys/other/mkpasswd.c
+++ b/toys/other/mkpasswd.c
@@ -25,9 +25,8 @@ config MKPASSWD
#include "toys.h"
GLOBALS(
- long pfd;
- char *method;
- char *salt;
+ long P;
+ char *m, *S;
)
void mkpasswd_main(void)
@@ -35,27 +34,27 @@ void mkpasswd_main(void)
char salt[MAX_SALT_LEN] = {0,};
int i;
- if (!TT.method) TT.method = "des";
+ if (!TT.m) TT.m = "des";
if (toys.optc == 2) {
- if (TT.salt) error_exit("duplicate salt");
- TT.salt = toys.optargs[1];
+ if (TT.S) error_exit("duplicate salt");
+ TT.S = toys.optargs[1];
}
- if (-1 == (i = get_salt(salt, TT.method))) error_exit("bad -m");
- if (TT.salt) {
- char *s = TT.salt;
+ if (-1 == (i = get_salt(salt, TT.m))) error_exit("bad -m");
+ if (TT.S) {
+ char *s = TT.S;
// In C locale, isalnum() means [A-Za-Z0-0]
while (isalnum(*s) || *s == '.' || *s == '/') s++;
if (*s) error_exit("salt not in [./A-Za-z0-9]");
- snprintf(salt+i, sizeof(salt)-i, "%s", TT.salt);
+ snprintf(salt+i, sizeof(salt)-i, "%s", TT.S);
}
// Because read_password() doesn't have an fd argument
- if (TT.pfd) {
- if (dup2(TT.pfd, 0) == -1) perror_exit("fd");
- close(TT.pfd);
+ if (TT.P) {
+ if (dup2(TT.P, 0) == -1) perror_exit("fd");
+ close(TT.P);
}
// If we haven't got a password on the command line, read it from tty or FD
diff --git a/toys/other/modinfo.c b/toys/other/modinfo.c
index 1178d675..d631b3b3 100644
--- a/toys/other/modinfo.c
+++ b/toys/other/modinfo.c
@@ -20,17 +20,15 @@ config MODINFO
#include "toys.h"
GLOBALS(
- char *field;
- char *knam;
- char *base;
+ char *F, *k, *b;
long mod;
)
static void output_field(char *field, char *value)
{
- if (!TT.field) xprintf("%s:%*c", field, 15-(int)strlen(field), ' ');
- else if (strcmp(TT.field, field)) return;
+ if (!TT.F) xprintf("%s:%*c", field, 15-(int)strlen(field), ' ');
+ else if (strcmp(TT.F, field)) return;
xprintf("%s", value);
xputc((toys.optflags & FLAG_0) ? 0 : '\n');
}
@@ -111,8 +109,8 @@ void modinfo_main(void)
if (uname(&uts) < 0) perror_exit("bad uname");
if (snprintf(toybuf, sizeof(toybuf), "%s/lib/modules/%s",
- (toys.optflags & FLAG_b) ? TT.base : "",
- (toys.optflags & FLAG_k) ? TT.knam : uts.release) >= sizeof(toybuf))
+ (toys.optflags & FLAG_b) ? TT.b : "",
+ (toys.optflags & FLAG_k) ? TT.k : uts.release) >= sizeof(toybuf))
perror_exit("basedir/kernrelease too long");
dirtree_read(toybuf, check_module);
}
diff --git a/toys/other/oneit.c b/toys/other/oneit.c
index 681eb12f..2ee21768 100644
--- a/toys/other/oneit.c
+++ b/toys/other/oneit.c
@@ -32,7 +32,7 @@ config ONEIT
#include <sys/reboot.h>
GLOBALS(
- char *console;
+ char *c;
)
// The minimum amount of work necessary to get ctrl-c and such to work is:
@@ -97,7 +97,7 @@ void oneit_main(void)
for (i=0; i<3; i++) {
close(i);
// Remember, O_CLOEXEC is backwards for xopen()
- xopen_stdio(TT.console ? TT.console : "/dev/tty0", O_RDWR|O_CLOEXEC);
+ xopen_stdio(TT.c ? TT.c : "/dev/tty0", O_RDWR|O_CLOEXEC);
}
// Can't xexec() here, we vforked so we don't want to error_exit().
diff --git a/toys/other/shred.c b/toys/other/shred.c
index 680320ec..1bac75c5 100644
--- a/toys/other/shred.c
+++ b/toys/other/shred.c
@@ -30,22 +30,20 @@ config SHRED
#include "toys.h"
GLOBALS(
- long offset;
- long iterations;
- long size;
+ long o, n, s;
)
void shred_main(void)
{
char **try;
- if (!(toys.optflags & FLAG_n)) TT.iterations++;
+ if (!(toys.optflags & FLAG_n)) TT.n++;
// We don't use loopfiles() here because "-" isn't stdin, and want to
// respond to files we can't open via chmod.
for (try = toys.optargs; *try; try++) {
- off_t pos = 0, len = TT.size;
+ off_t pos = 0, len = TT.s;
int fd = open(*try, O_RDWR), iter = 0, throw;
// do -f chmod if necessary
@@ -72,19 +70,19 @@ void shred_main(void)
if (pos >= len) {
pos = -1;
- if (++iter == TT.iterations && (toys.optargs && FLAG_z)) {
+ if (++iter == TT.n && (toys.optargs && FLAG_z)) {
memset(toybuf, 0, sizeof(toybuf));
continue;
}
- if (iter >= TT.iterations) break;
+ if (iter >= TT.n) break;
}
- if (pos < TT.offset) {
- if (TT.offset != lseek(fd, TT.offset, SEEK_SET)) {
+ if (pos < TT.o) {
+ if (TT.o != lseek(fd, TT.o, SEEK_SET)) {
perror_msg_raw(*try);
break;
}
- pos = TT.offset;
+ pos = TT.o;
}
// Determine length, read random data if not zeroing, write.
@@ -93,7 +91,7 @@ void shred_main(void)
if (toys.optflags & FLAG_x)
if (len-pos < throw) throw = len-pos;
- if (iter != TT.iterations) xgetrandom(toybuf, throw, 0);
+ if (iter != TT.n) xgetrandom(toybuf, throw, 0);
if (throw != writeall(fd, toybuf, throw)) perror_msg_raw(*try);
pos += throw;
}
diff --git a/toys/other/stat.c b/toys/other/stat.c
index a1233650..f571857a 100644
--- a/toys/other/stat.c
+++ b/toys/other/stat.c
@@ -40,7 +40,7 @@ config STAT
#include "toys.h"
GLOBALS(
- char *fmt;
+ char *c;
union {
struct stat st;
@@ -182,7 +182,7 @@ void stat_main(void)
"Access: (0%a/%A)\tUid: (%5u/%8U)\tGid: (%5g/%8G)\n"
"Access: %x\nModify: %y\nChange: %z";
- if (toys.optflags & FLAG_c) format = TT.fmt;
+ if (toys.optflags & FLAG_c) format = TT.c;
for (i = 0; toys.optargs[i]; i++) {
int L = toys.optflags & FLAG_L;
diff --git a/toys/other/swapon.c b/toys/other/swapon.c
index 0d65040a..2eb5b93c 100644
--- a/toys/other/swapon.c
+++ b/toys/other/swapon.c
@@ -13,13 +13,14 @@ config SWAPON
Enable swapping on a given device/file.
-d Discard freed SSD pages
+ -p Priority (highest priority areas allocated first)
*/
#define FOR_swapon
#include "toys.h"
GLOBALS(
- long priority;
+ long p;
)
void swapon_main(void)
@@ -28,7 +29,7 @@ void swapon_main(void)
int flags = (toys.optflags&FLAG_d)*0x70000;
if (toys.optflags)
- flags |= SWAP_FLAG_PREFER | (TT.priority << SWAP_FLAG_PRIO_SHIFT);
+ flags |= SWAP_FLAG_PREFER | (TT.p << SWAP_FLAG_PRIO_SHIFT);
if (swapon(*toys.optargs, flags))
perror_exit("Couldn't swapon '%s'", *toys.optargs);
diff --git a/toys/other/switch_root.c b/toys/other/switch_root.c
index acbae2bb..eb1e2b0c 100644
--- a/toys/other/switch_root.c
+++ b/toys/other/switch_root.c
@@ -22,7 +22,7 @@ config SWITCH_ROOT
#include <sys/vfs.h>
GLOBALS(
- char *console;
+ char *c;
dev_t rootdev;
)
@@ -78,8 +78,8 @@ void switch_root_main(void)
goto panic;
}
- if (TT.console && -1 == (console = open(TT.console, O_RDWR))) {
- perror_msg("bad console '%s'", TT.console);
+ if (TT.c && -1 == (console = open(TT.c, O_RDWR))) {
+ perror_msg("bad console '%s'", TT.c);
goto panic;
}
@@ -104,7 +104,7 @@ void switch_root_main(void)
goto panic;
}
- if (TT.console) {
+ if (TT.c) {
int i;
for (i=0; i<3; i++) if (console != i) dup2(console, i);
if (console>2) close(console);
diff --git a/toys/other/timeout.c b/toys/other/timeout.c
index b903c3ec..51e3a7e3 100644
--- a/toys/other/timeout.c
+++ b/toys/other/timeout.c
@@ -28,8 +28,7 @@ config TIMEOUT
#include "toys.h"
GLOBALS(
- char *s_signal;
- char *k_timeout;
+ char *s, *k;
int nextsig;
pid_t pid;
@@ -43,8 +42,8 @@ static void handler(int i)
fprintf(stderr, "timeout pid %d signal %d\n", TT.pid, TT.nextsig);
kill(TT.pid, TT.nextsig);
- if (TT.k_timeout) {
- TT.k_timeout = 0;
+ if (TT.k) {
+ TT.k = 0;
TT.nextsig = SIGKILL;
xsignal(SIGALRM, handler);
TT.itv.it_value = TT.ktv;
@@ -66,11 +65,11 @@ void timeout_main(void)
{
// Parse early to get any errors out of the way.
xparsetimeval(*toys.optargs, &TT.itv.it_value);
- if (TT.k_timeout) xparsetimeval(TT.k_timeout, &TT.ktv);
+ if (TT.k) xparsetimeval(TT.k, &TT.ktv);
TT.nextsig = SIGTERM;
- if (TT.s_signal && -1 == (TT.nextsig = sig_to_num(TT.s_signal)))
- error_exit("bad -s: '%s'", TT.s_signal);
+ if (TT.s && -1 == (TT.nextsig = sig_to_num(TT.s)))
+ error_exit("bad -s: '%s'", TT.s);
if (!(TT.pid = XVFORK())) xexec(toys.optargs+1);
else {
diff --git a/toys/other/xxd.c b/toys/other/xxd.c
index 80892fb5..99321eef 100644
--- a/toys/other/xxd.c
+++ b/toys/other/xxd.c
@@ -35,11 +35,7 @@ config XXD
#include "toys.h"
GLOBALS(
- long s;
- long g;
- long o;
- long l;
- long c;
+ long s, g, o, l, c;
)
static void do_xxd(int fd, char *name)
diff --git a/toys/posix/grep.c b/toys/posix/grep.c
index c63c1f87..f0332cee 100644
--- a/toys/posix/grep.c
+++ b/toys/posix/grep.c
@@ -4,11 +4,11 @@
*
* See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
*
- * TODO: --color
+ * TODO: --color
*
* Posix doesn't even specify -r, documenting deviations from it is silly.
-USE_GREP(NEWTOY(grep, "S(exclude)*M(include)*C#B#A#ZzEFHIabhinorsvwclqe*f*m#x[!wx][!EFw]", TOYFLAG_BIN))
+USE_GREP(NEWTOY(grep, "S(exclude)*M(include)*ZzEFHIabhinorsvwclqe*f*C#B#A#m#x[!wx][!EFw]", TOYFLAG_BIN))
USE_EGREP(OLDTOY(egrep, grep, TOYFLAG_BIN))
USE_FGREP(OLDTOY(fgrep, grep, TOYFLAG_BIN))
@@ -64,14 +64,8 @@ config FGREP
#include <regex.h>
GLOBALS(
- long m;
- struct arg_list *f;
- struct arg_list *e;
- long a;
- long b;
- long c;
- struct arg_list *M;
- struct arg_list *S;
+ long m, A, B, C;
+ struct arg_list *f, *e, *M, *S;
char indelim, outdelim;
int found;
@@ -85,6 +79,7 @@ static void outline(char *line, char dash, char *name, long lcount, long bcount,
if (!line || (lcount && (toys.optflags&FLAG_n)))
printf("%ld%c", lcount, line ? dash : TT.outdelim);
if (bcount && (toys.optflags&FLAG_b)) printf("%ld%c", bcount-1, dash);
+// Support embedded NUL bytes in output
if (line) xprintf("%.*s%c", trim, line, TT.outdelim);
}
@@ -246,7 +241,7 @@ static void do_grep(int fd, char *name)
}
outline(line, ':', name, lcount, bcount, -1);
- if (TT.a) after = TT.a+1;
+ if (TT.A) after = TT.A+1;
} else outline(start+matches.rm_so, ':', name, lcount, bcount,
matches.rm_eo-matches.rm_so);
}
@@ -258,16 +253,16 @@ static void do_grep(int fd, char *name)
if (mmatch) mcount++;
else {
- int discard = (after || TT.b);
+ int discard = (after || TT.B);
if (after && --after) {
outline(line, '-', name, lcount, 0, -1);
discard = 0;
}
- if (discard && TT.b) {
+ if (discard && TT.B) {
dlist_add(&dlb, line);
line = 0;
- if (++before>TT.b) {
+ if (++before>TT.B) {
struct double_list *dl;
dl = dlist_pop(&dlb);
@@ -389,8 +384,8 @@ void grep_main(void)
// Grep exits with 2 for errors
toys.exitval = 2;
- if (!TT.a) TT.a = TT.c;
- if (!TT.b) TT.b = TT.c;
+ if (!TT.A) TT.A = TT.C;
+ if (!TT.B) TT.B = TT.C;
TT.indelim = '\n' * !(toys.optflags&FLAG_z);
TT.outdelim = '\n' * !(toys.optflags&FLAG_Z);
diff --git a/toys/posix/uniq.c b/toys/posix/uniq.c
index 114fc19b..78c82544 100644
--- a/toys/posix/uniq.c
+++ b/toys/posix/uniq.c
@@ -28,16 +28,14 @@ config UNIQ
#include "toys.h"
GLOBALS(
- long maxchars;
- long nchars;
- long nfields;
+ long w, s, f;
long repeats;
)
static char *skip(char *str)
{
- long nchars = TT.nchars, nfields = TT.nfields;
+ long nchars = TT.s, nfields = TT.f;
// Skip fields first
while (nfields--) {
@@ -77,7 +75,7 @@ void uniq_main(void)
char *t1, *t2;
// If requested get the chosen fields + character offsets.
- if (TT.nfields || TT.nchars) {
+ if (TT.f || TT.s) {
t1 = skip(thisline);
t2 = skip(prevline);
} else {
@@ -85,10 +83,10 @@ void uniq_main(void)
t2 = prevline;
}
- if (TT.maxchars == 0)
+ if (!TT.w)
diff = !(toys.optflags & FLAG_i) ? strcmp(t1, t2) : strcasecmp(t1, t2);
- else diff = !(toys.optflags & FLAG_i) ? strncmp(t1, t2, TT.maxchars)
- : strncasecmp(t1, t2, TT.maxchars);
+ else diff = !(toys.optflags & FLAG_i) ? strncmp(t1, t2, TT.w)
+ : strncasecmp(t1, t2, TT.w);
if (!diff) TT.repeats++;
else {