aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2021-02-07Remove unused function.Rob Landley
Ethan Sommer noticed that chown is using chgrp_main() due to OLDTOY, so the wrapper function isn't needed.
2021-02-07Add lots of "static" annotations, make a couple things use FLAG() macros, etc.Rob Landley
2021-02-06netstat: various fixes.Elliott Hughes
Avoid fgets() into toybuf other than to skip header lines, preferring fscanf() or xgetline() instead. Remove the early returns if we fail to skip a header line (fixes #62). Fix `netstat -xl` which was previously broken (because only -a would include listening sockets). Fix a variety of formatting issues, bringing the diff between toybox netstat and net-tools netstat down (which was what I used for testing). Use FLAG() more consistently.
2021-02-06Cleanup pass on netstat.Rob Landley
2021-02-03Cleanup pass on modprobe.Rob Landley
I need to set up a test environment for this...
2021-02-01Minor tweak.Rob Landley
2021-02-01rm: Check file existence with lstat() explicitly if "-f" is specifiedYi-Yo Chiang
Instead of unlink() && check errno, call lstat() explicitly to check file existence if "-f" is specified. There is a regression when if the path to be removed is nonexistence and within a readonly filesystem, then unlink() could set the EROFS errno instead of ENOENT, thus screwing up the output of `rm`.
2021-02-01The new TEST_GLUE config symbol for [ ] can't have TOYBOX prefixRob Landley
or else singlemake enables it for all commands. (I was trying to move it out of the command namespace, but it's not a global config option either...)
2021-01-31Yank TODO note-to-self accidentally checked in, and fix "make test" standalone.Rob Landley
2021-01-31Elliott wants the test->[ symlink back. Enable when either sh or test enabled.Rob Landley
2021-01-30Fix a couple of test regressions from last commit adding function() plumbing.Rob Landley
2021-01-28toysh: start of function call logic.Rob Landley
2021-01-28Shut gcc's "is not actually used uninitialized" false positive warnings up.Rob Landley
2021-01-26A few more getty cleanups.Rob Landley
2021-01-26getty/telnet/tftpd: minor cleanup.Elliott Hughes
Remove STDIN_FILENO and use FLAG(). Use xsetspeed() rather than have a duplicate table. Inline getty's print_prompt(). There's still a lot of cleanup needed here, in particular use of toybuf and removal of the inappropriately-named HOSTNAME_SIZE (and ideally sharing that logic with login(1) which already contains a better implementation of it).
2021-01-23Fix grep bug where -f /dev/null added "" regex matching everything,Rob Landley
and address TODO where -z was still splitting patterns on \n
2021-01-15Cleanup base32 slightly.Rob Landley
2021-01-13Fix "date -I" segfault and teach lib/args.c that "I(opt):;" short opt withRob Landley
no argument returns NULL same as --opt without =
2021-01-07new toy: base32Moritz Röhrich
Add new toy `base32`. Add tests for `base32`. base32 is added by adapting the base64 encode/decode function to also do base32 encoding/decoding. Then their respective main functions set up the global parameter `n` to be the number of bits used in the encoding (5 for base32 and 6 for base64) and `align` to align the result to a certain length via padding. These are deliberately kept as parameters to enable future expansion for other bases easily.
2021-01-06seq: always xwrite.Elliott Hughes
Pointed out by the compiler combined with glibc's use of __attribute__((__warn_unused_result__)) on write().
2020-12-26toysh: fix break/continueRob Landley
2020-12-25toysh fixes and testsRob Landley
2020-12-19Fix (( )) quote termination.Rob Landley
2020-12-19FS_ENCRYPT_FL introduced too recently to depend on, use constant.Rob Landley
Note: can't put in portability.h because it's a linux/ include.
2020-12-18seq.c: fix itoa for INT_MIN in case itoa gets used elsewhere.Elliott Hughes
It can't actually be used for INT_MIN in the current context because the `dd += increment` on line 100 means that even if "last" is INT_MIN, we won't take the fast path because INT_MIN - 1 isn't representable.
2020-12-16chmod.c: mask out the file type bits.Elliott Hughes
The kernel will do this for us on both Linux and macOS, but error messages are a bit misleading if we don't do it ourselves --- it can look as if the failure is because of the type bits.
2020-12-15Speed up count: use 64k block size, update display at most 4x/second.Rob Landley
2020-12-15Implement set, trace support, and function call context stack.Rob Landley
2020-12-12Speed up seq: use toybuf for block writes and add an integer fast path.Rob Landley
2020-12-11The "fall back to C.UTF-8" check was backwards, and make TOYFLAG_LINEBUFRob Landley
configurable.
2020-12-07Rename randbuf and hook up -sRob Landley
2020-12-07Promote pwgen.Rob Landley
2020-12-07Cleanup pwgen as described on the list.Rob Landley
http://lists.landley.net/pipermail/toybox-landley.net/2020-December/012169.html
2020-12-07sed: add 'x' flag to the 's' command.Elliott Hughes
The GNU tar manual, when talking about the `tar --transform` option that I need to implement, describes the 'x' flag by saying "regexp is an extended regular expression (see section 'Extended regular expressions' in GNU sed)". Only it turns out that even the latest GNU sed doesn't actually have that flag. It's unique to `tar --transform`. That link is just telling you that the sed manual will explain extended regular expressions, not that GNU sed also supports the 'x' flag. So I don't know whether we want this in toybox sed after all. (It made sense that sed would have such a flag, but no sed that I know of actually does.)
2020-12-06unicode: new toy.Elliott Hughes
Based loosely on the Plan9/Inferno utility, and a convenient way to go back and forth between code points and utf8 sequences. This patch also fixes a couple of bugs in wctoutf8 (and the tests for this toy effectively serve as unit tests for wctoutf8/utf8towc).
2020-12-06Remove CONFIG_TOYBOX_I18N and just always support utf8.Rob Landley
2020-12-05Fix find empty argument handling and add test.Rob Landley
2020-12-05new toy: Add pwgenMoritz Röhrich
Add new toy `pwgen`. A usefule password generation utility.
2020-12-05tr: fix pathological flushing.Elliott Hughes
The AOSP build doesn't use tr (or anything that's still in pending), but the kernel folks have been more aggressive. They found that tr's pathological flushing was adding minutes to their build times. Just removing the fflush() made tr significantly faster for my trivial test, but still slow, with all the time going into stdio. Rewriting the loop to modify toybuf in place and then do one write per read made most of the difference, but special-casing the "neither -d nor -s" case made a measurable difference too on a Xeon. Bug: http://b/174773617
2020-11-27toysh: Adjust $0 for scripts.Rob Landley
2020-11-25Luke Frankart pointed out a typo (0x111 should be 0111). Fix and updateRob Landley
tests to catch this. While there add -k to test sticky bit.
2020-11-25Fix help text to explain why o+s isn't +t, add test +s not setting +t.Rob Landley
2020-11-22Minor cleanup.Rob Landley
2020-11-18Fix microcom to set serial device's terminal correctly.Rob Landley
Can't use the same set_terminal() logic as ptys because it not displaying data, it should just accurately copy it.
2020-11-17Fix printenv -0 (broken by the lib/args.c 0 prefix change).Rob Landley
2020-11-17Tweak date.c.Rob Landley
2020-11-16Factor out do_source(), fpathopen(), and prompt_getline().Rob Landley
Use 0 optstr prefix, fix bug initializing toys.envc one too low.
2020-11-15date: add --iso and the %:z output format.Elliott Hughes
I didn't know until implementing this that --iso is actually called --iso-8601 and that GNU date will actually accept any prefix. --iso-8 works fine too. I've assumed that --iso (that I always used) and --iso-8601 (as given in the documentation) are the only two that matter.
2020-11-14Allow 0 prefix to optstr to include argv[0] in optargs[0].Rob Landley
2020-11-12readelf: harden against invalid input.Elliott Hughes
I also promised to fix readelf. Where in file(1) I made no attempt to say what was bad (or even to change `goto bad` to explicitly say that *anything* was bad), I believe that readelf is much more likely to be shown invalid ELF files, and that it would be useful to have some clue as to what's wrong. Relatedly, this patch removes all existing error_exit() calls in case it's being used on multiple files. Again, this survived ~24hrs of AFL++ trying to blow its house down. Test: ~/AFLplusplus/afl-fuzz -i tests/files/elf -o fuzz-out -- ./readelf -a @@