aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2019-10-17ls: Ensure file names are separated by 2 spacesAndrew Ilijic
We need two spaces between filenames because that is the convention followed by other implementations. More importantly, if we do not have two spaces, certain Unicode file names cause filenames to run together. In Unicode, combining characters come before the character they modify. If a filename ends in a combining character, the combining character attaches to the space that follows it, causing the space not to be visible. Having a two-space gap stops the above issue from happening. For context and a bit more information, see mailing list link below. https://www.mail-archive.com/toybox@lists.landley.net/msg05986.html
2019-10-15In-passing cleanup and add a NOP -P.Rob Landley
2019-10-14Make cmp work with 1 argument (implicit - as second argument).Rob Landley
2019-10-14losetup: Fix null-termination of src string instead of dest after copyAlessio Balsini
The function loopback_setup(), after copying the loopback device name with xstrncpy(), ensures the null-termination of the string by forcing its last byte to 0. Unfortunately, this operation: - was probably intended to null-terminate dest instead; - does not affect the program execution because src is free()d right after; - if the size of src is smaller than the offset of the written zero, it modifies an unknown byte in the heap. Drop the null-termination line to fix the issue: xstrcpy() automatically null-terminates dest, or fails if the size of src is bigger than the the requested number of bytes to copy. Signed-off-by: Alessio Balsini <balsini@android.com>
2019-10-12Don't need the second variable, and put the comment back.Rob Landley
2019-10-12Fix argless find segfault.Denys Nykula
Inline array becomes garbage outside the if.
2019-10-12hostname: fix error reporting.Elliott Hughes
The <netdb.h> functions have their own errno :-(
2019-10-09xargs: various fixes.Elliott Hughes
Don't run the command with no arguments if we run out of input but have already run the command at least once. The implementation of "run the command at least once (unless -r was supplied)" wasn't taking into account whether or not this was our first time round the loop. Fix the exit value, and the -- already documented but not implemented -- behavior if a child exits with status 255. Also extend the tests to cover these cases, plus cases I broke while coming up with the fix. Add more tests to convince myself that we've correctly interpreted how -s is supposed to behave, and fix the corner cases at the bottom end of the range. This fixes some issues we were seeing trying to build the Android SDK for (and more importantly, on) macOS.
2019-10-09ls: fix seqfault on broken localeJarno Mäkipää
When user builds toybox CFG_TOYBOX_I18N disabled and tries to list folder contents with multibyte characters other than UTF-8 ls might seqfault since wcrtomb returns -1 while locale set to fi_FI-UTF-8 disable CFG_TOYBOX_I18N touch őőőőaaőő ls
2019-10-09vi: fixesJarno Mäkipää
fix: force redraw after :set (no)list fix: force redraw after insert fix: split on zero cursor position fix: yank and push with utf-8 content
2019-10-08Add dnsdomainname, fix "hostname -d" segfault on machine with no domain name,Rob Landley
and cleanup hostname to only call gethostname() once. It passes the one test in test_hostname, if that helps.
2019-10-08Add arch command.Rob Landley
2019-10-04vi: Scroll unmodified lines using escape codesJarno Mäkipää
Scroll visual buffer up and down using standard escapes when content has not changed, instead of redrawing every keypress. Sidescroll now moves all the lines instead of only cursor one. Side scrolling long lines unfortunately causes redraw to whole screen. -Jarno
2019-10-04ln.c: add -t to synopsis.Elliott Hughes
We're inconsistent about whether the option help below should be just `-t` or `-t DIR`, but the majority of commands _don't_ repeat their argument, so I've left that as-is for now.
2019-10-04readlink: add missing line, plus a test.Elliott Hughes
I must have lost this line somehow when I moved the patch from my AOSP tree to a toybox tree. (But the ln tests passed on the host because I was using coreutils ln there :-( )
2019-10-04file.c: add -s to synopsis and fix case consistency.Elliott Hughes
2019-10-04Fix extracting old tarballs, not just -tv of them.Rob Landley
2019-10-03Improve support for extracting older tarball formats.Rob Landley
2019-10-02readlink: support multiple arguments.Elliott Hughes
Required by the new `ln -t` test if it's to pass on an all-toybox system :-)
2019-10-01Add rmdir --ignore-fail-on-non-emptyEthan Sommer
2019-09-30Add ln -tEthan Sommer
2019-09-26Max 2 arguments with -TRob Landley
2019-09-26hexedit: fix scrolling on legacy terminalsJarno Mäkipää
Thanks for James McMechan for pointing this out. Using esc[1L and esc[1M escapes with cursor jump to 1, 1 to make scrolling effect instead of S and T fixes scrolling inside Linux terminal and tmux -Jarno
2019-09-25Add ln -TRob Landley
2019-09-25Use FLAG macrosRob Landley
2019-09-23noop gzip -n.Denys Nykula
Add mock gzip -n to satisfy pkgsrc.
2019-09-23Call ftpget from wgetDenys Nykula
Branch wget to xexec ftpget given an ftp url. Rename the output flag -O like in other wgets. Add mock wget --no-check-certificate to satisfy pkgsrc. Ifdef the version output in wget because the nonexistent constant fails single builds and mkroot.
2019-09-23Fix ftpget downloadDenys Nykula
Investigate why downloads always freeze when I call ftpget. Trace it to a refactor leaving two REST and zero RETR.
2019-09-22vi: Added yankJarno Mäkipää
Added: yank and push Rewrote: delete operations Minor cleanups: Rewrote delete operations to use one delete function instead of having separate behavior here and there. Now delete and yank both always move cursor and then clip the whole cursor area into yank register. For example x is just ld or jd depeding are we right edge or not, and dd is jd with some special flags etc. Now only default yank register is implemented, but implemeting yank register list should be trivial since cmd execution already passes register char.
2019-09-20rm.c: use FLAG().Elliott Hughes
2019-09-19vi: changes to buffer drawingJarno Mäkipää
Replaced: draw_str_until with lib/crunch_str() where possible Removed: Unused char draw functions. Implemented: crunch_nstr() which is crunch_str with additional check for byte length, this can be used to draw substrings or non null terminated strings. (This can be moved to lib/ if its useful for others) Reimplemented: Buffer drawing without line wrapping. Now too long lines are drawn with @ in end. And cursor line scrolls left and right when hitting right margin point. This will simplify buffer handling alot. Linewrapping can be reimplemented later if needed but will add complexity Implemented: set list and set nolist ex commands, set list will show escape codes such as tabs Fix: Bug on splitting 2 lines, split was 1 byte off.
2019-09-19Basename can have suffixes starting with a dash.Rob Landley
2019-09-18Get exit code right when command intercepts signal, make timeout useRob Landley
xwaitpid(), fix off by one in xwaitpid().
2019-09-18Fix tar creation with hole at end.Rob Landley
The "gratuitous extra entry" is only gratuitous when there isn't a hole. (Which we can detect and not include but then we wouldn't match other implementations.)
2019-09-17Allow --tmpdir's argument to be optional.Rob Landley
2019-09-17Implement -s.Rob Landley
2019-09-16Ahem, -newerXY is in _find_, not in _file_.Rob Landley
2019-09-16bug: tar tvf blah.tar.xz was running xz when it meant xzcat.Rob Landley
2019-09-15Fix failing test.Rob Landley
2019-09-15The ! changes I meant to check in last time were applied ot the wrong dir.Rob Landley
(oops.)
2019-09-15Fix tar files that end sparse (need to call truncate), and display/exportRob Landley
length of sparse files properly.
2019-09-14Add -newerXYRob Landley
2019-09-13timeout: fix exit status for sneaky subprocesses.Elliott Hughes
There's nothing to stop a subprocess from catching our SIGTERM on timeout and exiting, causing us to incorrectly report that it didn't time out. Android's ART has a utility that does exactly this. Explicitly catch this case, and add corresponding tests. Bug: http://b/141007616
2019-09-12Minor cleanup.Rob Landley
2019-09-11Add NOP -f, -g#, and --no-backup-if-mismatch options.Rob Landley
(All ignored, because they disable stuff we don't do.)
2019-09-11Add q123 exit code, add Q, fix "sed ' ! '" bad error message.Rob Landley
2019-09-09ls: fix spacing of -lZ and --full-time.Elliott Hughes
Two more spacing bugs here, one before the security context for -Z, and one after the size with --full-time. Before: $ ./toybox ls -lZ --full-time Config. -rw-r----- 1 enh primarygroup? 56162019-09-07 21:09:32.892215100 -0700 Config.in After: $ ./toybox ls -lZ --full-time Config. -rw-r----- 1 enh primarygroup ? 5616 2019-09-07 21:09:32.892215100 -0700 Config.in
2019-09-09vi: added support for tabsJarno Mäkipää
Add: tabs, follows tabstop variable currently hardcoded to 8. Should be adjustable with :set tabstop N according to man page fix: search, issue with searching substring that is more left than cursor position on following lines.
2019-09-08make "for i in" work.Rob Landley
2019-09-07host: cope with large DNS responses.Elliott Hughes
DNS responses were limited to 512 bytes back when they were UDP only, but if you have a TCP connection you can get up to 64KiB. Also use the existing constant for the size of rrname. Also update the help text. Also consistently use `sizeof(T)` rather than `sizeof T`. Also use consistently use `ARRAY_LEN`. Fixes #56. Test: `toybox host value.testing.express`