aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2019-02-13sed: fix endless loop in "b loop" test.Elliott Hughes
Very few places actually check for errors from emit, and I actually see the same endless loop from "sed (GNU sed) 4.4" on current Debian, so I'm not sure this isn't Broken As Designed, but an endless loop spewing "short write" (or saying nothing, in the case of GNU sed) really doesn't feel like useful behavior in face of EPIPE, which really isn't going to fix itself. Certainly not being able to run the sed tests to completion is pretty annoying --- which is why, unless we remove this test as invalid, we should probably also add a SKIP_HOST=1 to the "b loop" test. Note that even with this fix you'll see the error twice: sed: short write: Broken pipe sed: short write: Broken pipe Once from the first = command to fail, and then another from the !FLAG(n) flush of the pattern space.
2019-02-12sed: fix substitution of empty capturing groups.Elliott Hughes
The test for \N where N was larger than the number of capturing groups in the regular expression was incorrect, and firing for cases such as matching __(ARM_)?NR_([a-z]*) against __NR_read, where the first group is empty (because it failed to match) but the second group did match "read". Use regex_t's re_nsub for the error check, and treat rm_so == -1 as a signal to just copy nothing into the result. (Found trying to build minijail in AOSP.)
2019-02-11date: some fixes.Elliott Hughes
Add support for more input formats, primarily the ISO formats used by the AOSP build. I've improved/added to the tests a bit to cover these changes, and to explain the reasons for the various remaining test failures (none of which are regressions caused by this patch).
2019-02-11Inline more functions only called once, unwrap wrappers, etc.Rob Landley
2019-02-10Remove unnecessary macros and typedefs, multipliation by sizeof(char), etc.Rob Landley
2019-02-10Inline more macros only used once, replace BcId with struct str_len from lib,Rob Landley
remove more unnecessary typecasts.
2019-02-09Remove more unnecessary macros. Inline bc_parse_exprs[] with the bit orderRob Landley
reversed so the mask is 1<<(x&7) instead of 1<<(7-(x&7)). Can't _quite_ make printString() use unescape() out of lib because \q is a thing?
2019-02-09Remove more useless typecasts, wrappers, and inline a function.Rob Landley
2019-02-09Remove some unnecessary wrappers, indirection, and typecasts.Rob Landley
2019-02-07ps, top: fix VIRT and SHR fields.Elliott Hughes
2019-02-05Promote sntp to net.Rob Landley
2019-02-05Fix some llvm warnings.Rob Landley
I don't know why NDK llvm is complaining about adjtime(), toys.h is #including <sys/time.h> which http://man7.org/linux/man-pages/man3/adjtime.3.html says is the right header...?
2019-02-05Suppress warnings gcc should not be making (and a comment typo).Rob Landley
2019-02-05Fix server loop timeout logic.Rob Landley
2019-02-05Fix server mode and make request timeout 3 tries of 3 seconds (9 sec total).Rob Landley
2019-02-04Reset screen wrap mode (broken by qemu -nographic output).Rob Landley
2019-02-04sort -o: fix behavior when output file is one of the input files.Elliott Hughes
Bug: http://b/123902291
2019-02-04Next round of sntp work: server and multicast modes, actually set time...Rob Landley
2019-02-04who: make the output more like coreutils who.Elliott Hughes
Also add a TODO for the (undocumented, half-finished) -a option.
2019-02-01Fix record-commands and logwrapper.cRob Landley
record-commands: Delete old log, only delete $WRAPDIR at end if path wasn't externally supplied, don't add the rm at the end to the log. logwrapper.c: don't skip filename when measuring space for command line malloc, use argv[0] instead of /proc/self/exe (which is realpath -f).
2019-01-31Sed assumed FLAG(r) was 1 but didn't document it above the NEWTOY line. (oops)Rob Landley
2019-01-30Command logging wrapper to help analyze what commands scripts call and how.Rob Landley
2019-01-28bc: Update to upstream version 1.1.0Gavin Howard
2019-01-25nc: allow immediate reuse of ports.Josh Gao
Set SO_REUSEADDR when listening so that we can immediately reuse ports that are no longer being listened upon, instead of having to wait 60 seconds for the socket to be shutdown after being closed (even on localhost!).
2019-01-25No real need to copy data into variables and do nothing else with it...Rob Landley
2019-01-25OpenEmbedded needs commands installed in specific places.Rob Landley
2019-01-24grep: "tried" should track arguments (not files) that existed, move -o "" testRob Landley
into display function, use unsigned length so output lines can be up to 4g each.
2019-01-24More random in-progress sntp work.Rob Landley
2019-01-22Whitespace: remove tabs from indentation.Elliott Hughes
I accidentally added a tab in xargs.c, so as penance I'll clean up all the tabs.
2019-01-22Fix sigjmp_buf/jmp_buf mismatches.Elliott Hughes
Broke the bionic build: external/toybox/toys/net/netcat.c:188:37: error: incompatible pointer types assigning to 'sigjmp_buf *' (aka 'long (*)[33]') from 'jmp_buf *' (aka 'long (*)[32]') [-Werror,-Wincompatible-pointer-types] if (toys.optflags&FLAG_L) NOEXIT(child = XVFORK()); ^~~~~~~~~~~~~~~~~~~~~~~~ external/toybox/lib/lib.h:375:19: note: expanded from macro 'NOEXIT' #define NOEXIT(x) WOULD_EXIT(_noexit_res, x) ^~~~~~~~~~~~~~~~~~~~~~~~~~ external/toybox/lib/lib.h:367:16: note: expanded from macro 'WOULD_EXIT' toys.rebound = &_noexit; \ ^ ~~~~~~~~ 1 error generated.
2019-01-22Actually calculating/displaying a reasonable time.Rob Landley
Not yet setting, no server/multicast, should validate source address...
2019-01-21Add more comments to ps.c and replace hardcoded value with a macro.Rob Landley
If table grows >64 entries XX needs to change, but it can't be 128 yet because the slot value is a signed char. Currently 59 entries in table...
2019-01-19hostname: fix behavior when in jail.Elliott Hughes
Only -d and -f should cause a DNS lookup. The rest should just act directly on the result of gethostname(3). Encountered with the AOSP buildbots' use of nsjail, but tested with both the Debian hostname and toybox hostname thus: ``` unshare -Uunr sh hostname android-build hostname hostname -s hostname -d hostname -f ``` (Not sure how to add that to the tests.) Also fix a SEGV with -s if the hostname doesn't contain a '.'. Also switch to the FLAG() macro. Also add the missing -s to the synopsis. Bug: http://b/123123255
2019-01-18xargs: make --help match reality.Elliott Hughes
Implement -p, -t, and -r. Add some missing tests. Move -L and -x back to TODO since they're not implemented and I haven't yet even understood what they're supposed to do.
2019-01-18First chunk of sntp code.Rob Landley
2019-01-16Move xsendto() to lib/net.c.Rob Landley
2019-01-14Minor cleanups to patch. (Mostly whitespace and brackets.)Rob Landley
2019-01-13Better support patching files with tabs in the name.Rob Landley
Patch dates are optional these days, and I should properly work back from the end and only peel off properly formatted tab+date, but "tab followed by digit" is probably good enough and nobody's ever complained about just tab. And we still don't support patching filenames with newlines in them...)
2019-01-12Fix cp permissions when copying symlink contents, and add test.Rob Landley
2019-01-12stat: add --format synonym for -c.Elliott Hughes
Used in the AOSP x86 host build.
2019-01-12sed: add -z.Elliott Hughes
Used to construct SELinux policies in the AOSP build. I left loopfiles_lines with its hard-coded '\n' because although cut(1) also has a -z option, I can't find any case where it's used in any of the codebases searchable by me. (And fmt(1), the other user, doesn't even have the option.) YAGNI. Bug: http://b/122744241
2019-01-12patch: add -s to the synopsis line and fix typos.Elliott Hughes
2019-01-11Fix b ending with }Rob Landley
For a definition of "fix" that's even _more_ of a deviation from posix, but matches what debian does...
2019-01-11patch: add -s/--quiet.Elliott Hughes
Used by AOSP build. Also switch to new FLAG macro. Bug: http://b/122739027
2019-01-08modprobe: don't return failure just because we didn't find global config.Elliott Hughes
Without this change, a successful modprobe on Android exits with status 1 because Android doesn't have /etc/modprobe.conf or /etc/modprobe.d/ --- neither of which seem to be required on desktop Linux either.
2019-01-08ls: Fix -t to also sort by st_mtim.tv_nsec.Peter Collingbourne
2019-01-08file: add riscv ELF machine.Elliott Hughes
It's in the Linux 4.20 kernel headers.
2019-01-08more: don't _exit(0) on success.Elliott Hughes
If we do, we won't flush, and we might not output everything.
2019-01-07modprobe: reset errno before ins_mod.Elliott Hughes
Otherwise in verbose mode we output bogus errors instead of `Success`.
2019-01-02Josh Gao said "netcat -l -p 12345" broke:Rob Landley
Previously, when trying to listen on a socket without using one of -4, -6, or -s, we tried to create an AF_UNSPEC socket, which fails.