aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-11Redo NOFORK plumbing so commands like eval/unset can access/edit shell state.Rob Landley
2020-03-11fdlength: device size is reported in bytes, not blocks.Elliott Hughes
The shift was a remnant from when BLKGETSIZE (which measures in blocks) was being used on Linux. The Mac has two separate ioctls for block count and block size, which we're already multiplying together. And on Linux we're using BLKGETSIZE64, which returns a result in bytes, not blocks. So lose the shift.
2020-03-11vi: don't keep fd open unnecessarily.Elliott Hughes
As soon as mmap() is done, we can close the fd. xmmap() also will exit rather than return failure so we can remove that check, and fdlength() will fall back to lseek() so there's no need to have the fallback in vi itself. Spotted because the `TT.fd = 0` in linelist_unload() seemed suspicious; -1 would have been more natural.
2020-03-11Fix Mac build.Elliott Hughes
The recent re-enablement of the BLKGETSIZE64 code broke the Mac build. Use the equivalent <sys/disk.h> ioctl() pair instead.
2020-03-10modinfo: various fixes.Elliott Hughes
I came here because the new -Wno-unreachable-code-loop-increment warning didn't like the for loop on line 86. That loop is indeed not necessary. Use strend() to do a string suffix match. Use memmem() to search. It's available on macOS and Android by default, but it's behind _GNU_SOURCE for glibc, so add that to portability.h. Output the tags in the same order as the Debian modinfo. I've left "parmtype" in even though the Debian modinfo doesn't output it at all. Also fix the tests so that they work on a device that has modules for multiple kernels installed (like my laptop) --- make sure that the two modules we pick come from the same kernel.
2020-03-09Next round of shell plumbing: variable expansion with $IFS.Rob Landley
Not entirely debugged, but more or less there-ish.
2020-03-08cp: fix -D (--parents) (REWORK MINIMAL FIX)Jarno Mäkipää
add: test for -D fix: b/c/d/FILE not copying into a/ with -D option dirname() is not needed when handling FLAG(D) since filename under src or dest should not be changed. github.com/landley/toybox/issues/165
2020-03-06Yet more shell tests.Rob Landley
2020-03-05Fix 'for i in one two three; do echo =$i=; done'Rob Landley
2020-03-03Remove another command sub-option.Rob Landley
The question "how does this toybox command behave" should have an answer, not "it depends". (Also, --preserve at the start of a paragraph was confusing config2help.c into thinking it was an option paragraph.)
2020-03-02More cross.sh tweaks.Rob Landley
2020-03-02Move "scripts/cross.sh all" log files into root/log.Rob Landley
2020-03-02Check that cross compiler is there, not linker, before building native.Rob Landley
It builds binutils first, so ld being there doesn't mean cc finished.
2020-03-02Say command name before test result with txpect too.Rob Landley
2020-03-02Update the LP64 section.Rob Landley
2020-03-02Switch to FLAG() macros.Rob Landley
2020-03-02Merge realpath into readlink, use xabspath() instead of libc realpath().Rob Landley
2020-03-02Work around gcc trying to be "helpful" again.Rob Landley
2020-03-01Park Ju Hyung pointed out the fast path of fdlength() was commented out.Rob Landley
(Update to the 64 bit API while we're there. And yes, I checked in the kernel, it's 512 byte units.)
2020-03-01readelf: various fixes.Elliott Hughes
Add -e, and stop documenting no-op -W. Fix sign issues, and add a few extra sanity checks. Redo the BE/LE 16/32/64 reading. Remove the NOSPACE=1 from the -l test, and fix the -l code to match the binutils output. Most usefully, this fixes the weird way the NULL section's empty name would cause misalignment in the section to segment mapping output. Add a test for -s (symbol table).
2020-03-01Snapshot of variable resolution implementation. Not remotely load bearing yet.Rob Landley
2020-02-29Fix a couple of shell tests.Elliott Hughes
These didn't work on a system where readlink is a symlink to toybox, ironically.
2020-02-29More shell tests.Rob Landley
2020-02-28vi: Rearrange functions, add o, O, IJarno Mäkipää
Place function calls in order so that there is no unneeded declarations, clear some whitespace stuff. Add few commands that are commonly used. cleanup: reorganize functions cleanup: some whitespace stuff add: vi_o vi_O vi_I fix: stop at edges when h and l fix: fix dd not updating screen fix: render after all delete moves
2020-02-28Some compilers get upset if ? : produces different types.Rob Landley
2020-02-27chattr: allow `chattr =`.Elliott Hughes
Also fix another bug where we were testing `set` twice. Fixes https://github.com/landley/toybox/issues/172.
2020-02-26More sh tests.Rob Landley
2020-02-26Fix bugs reported by anatasluo: min/range/max were out of order,Rob Landley
min/max weren't being calculated, only print summary when we recieved at least one reply packet. And switch to FLAG() macros.
2020-02-26Fix xclearenv() breakage pointed out by Derrick Pallas.Rob Landley
Toybox doesn't modify inherited environ[] (the same way we don't modify our inherited argv[]), so instead of freeing our allocated environ[] when we want to clear it we need to allocate a new environ[] in the else path (at a length compatible with the existing plumbing's add stride), set the first entry of _that_ to 0, and set toys.envc = 1 to record it's an alloced environ.
2020-02-25Shell ! testsRob Landley
2020-02-25Fix off by one error that treats bit 31 as negative (so ls --color setsRob Landley
all the bits). While we're at it, make LL be ULL so bit 63 doesn't have the same problem.
2020-02-25ps: widen pid_t fields.Elliott Hughes
My desktop and laptop have a pid_max of 262144 now.
2020-02-24Fix fuzz to output lines that didn't match patch context.Rob Landley
(It was outputting the patch hunk where it went, which reverted the context.)
2020-02-22Make ASAN=1 affect the HOSTCC-built tools too.Elliott Hughes
Bug: https://github.com/landley/toybox/issues/169
2020-02-22mkflags: fix a sscanf buffer off-by-one.Elliott Hughes
Sadly, the compilers don't even catch this common mistake if you use sscanf_s(3). Luckily, ASan does.
2020-02-20Fix bitrot in macos_miniconfig.Elliott Hughes
2020-02-17More sh tests.Rob Landley
2020-02-17Rename config symbol now that we've worked around the worst of the breakage.Rob Landley
2020-02-17Work around kernel build bug where "make distclean" doesn't work in cp -sfRRob Landley
directory. Downside: this modifies (distcleans) the source directory for an out of tree build, but the alternative is (sometimes subtle) build breaks.
2020-02-17Tighten up build script a little.Rob Landley
2020-02-17For "cross.sh all" announce each target in title bar.Rob Landley
2020-02-17Fix musl-cross-make nommu build (at least for sh2eb).Rob Landley
2020-02-14Tests for upcoming sh plumbing.Rob Landley
2020-02-11Fix wget version concat segfault.Denys Nykula
2020-02-11chattr: fix exit status, redo the tests.Elliott Hughes
The e2fsprogs chattr(1) returns failure when it fails to do what was asked of it, and so should we. Fixing this then reveals a lot of issues with the tests that were being accidentally swept under the carpet. The bulk of this patch is going through all the tests, removing the duplicates and making the remaining tests more thorough. I've tested this on ext4 and f2fs on a variety of 4.x and 5.x kernel versions (but nothing older). We might need to reduce the list of attribtues we try to toggle, but the more thorough tests use well-supported attributes. I've also fixed the -R test to actually involve a directory hierarchy.
2020-02-10Factor out readfd()Rob Landley
2020-02-06vi: fix pointer pos when at end of lineJarno Mäkipää
Going to $ made draw_page render cursor to wrong line
2020-02-06Basic parenthetical subshell support.Rob Landley
2020-02-06chattr: improve error messages.Elliott Hughes
When chattr fails in production, it helps to see what it was trying to do. Reuse the lsattr format but without the '-'s. Only read the flags if we have any intention of changing them: `chattr -p 123` has no reason to read the flags. Only write the flags back if they actually change: `chattr +a` shouldn't do anything if that flag is already set, for example. Switch -p and -v to perror_msg() instead of perror_exit() in case they're used with -R. (I suspect that the uses of DIRTREE_ABORT are mistakes given -R, but I'll leave them until I actually hit this.)
2020-02-06Remove old GNU style `' quoting.Elliott Hughes
Even GNU don't pretend they're still on 1970s terminals where ` and ' were a matching pair any more.