Age | Commit message (Collapse) | Author |
|
Include all the signals, not just the POSIX ones.
In particular, improve support for real-time signals. My attempt to
switch AOSP builds over to toybox timeout got reverted when I broke the
ART build bots which use SIGRTMIN+2.
Also fix `kill -l 3` to show "QUIT" and `kill -l QUIT` to show "3".
Also make the `kill -l` output include numbers and names, and format it
to look better on a 80x24 tty, because it's always August 1978 somewhere.
|
|
This patch adds a BSD version of xgetmountlist (for the path ==
NULL case only), tested on macOS. It also papers over the differences
between macOS' and Linux's xattr APIs. For once I think the macOS
one is better. The imitation of mknodat I've had to write swings
things back in Linux's favor though.
BSD calls f_frsize by the name f_iosize instead. (FWIW, it looks
like this is meaningless on Linux and actually meaningful on macOS.)
I've added one #if to toys/ --- I'm calling pathconf in stat.c to
work around the absence of f_namelen, and have left a TODO with an
explanation. I'm not sure what the best fix is here, so punting.
No-one can agree what f_fsid is, even if they're all basically the
same, so work around the `val` versus `__val` issue between macOS
and Linux.
With this patch, it's now possible to build cp/mv/install and stat
for macOS too. (Which completes the set of "toybox commands currently
used on Linux as part of the AOSP build" if you ignore stuff that
deals with processes, which I doubt we'll ever be able to support
for lack of any API.)
|
|
These are Android specific, so not really helping the outside
community, and are getting more and more Android dependencies to work
correctly, so let's drop these from toybox and build them within
Android.
Change-Id: Ic6022f1f506e10868c61f55d64fa4e7c1b14eba2
|
|
We'd documented find %Z but not implemented it. We'd neither documented
nor implemented stat's corresponding %C (they'd already taken %Z for
ctime, which is ironic because %c/%C sounds more obvious than %z/%Z for
that to me).
|
|
Yeah, it's twice the size and two codepaths, but seekable is the common
case, it won't work in pipelines without a non-seek codepath, and the
performance penalty not using seek on large files is a enormous.
|
|
|
|
|
|
|
|
|
|
This only implements the format specifiers that I've seen used in the
wild (which is actually a significant fraction of the total supported by
findutils' find). The most obvious gap is in the time support. I'm happy
to add more, but didn't want to add stuff "just because".
I'd say %A@, %C@, and -- for SELinux users -- %Z are probably the most
plausibly useful formats still missing. I don't think the human-readable
date formatting is particularly useful unless someone's seen it actually
used in the wild. The %T+ "full ISO" format being the most likely
exception to that.
Anyway, this is enough for me get started building AOSP with toybox find.
|
|
Used quite a lot, especially with `--exclude-dir=.git`.
|
|
Copy-and-paste mistake from the regular output.
Bug: http://b/133502489
|
|
into a structure passed as arguments, add x prefix to functions that can fail,
add overflow test.
|
|
Factor out the inotify code and add a kqueue equivalent.
Specifically tested on macOS 10.14, but I assume this works for other
BSDs too, given that I worked from the FreeBSD man page...
|
|
out of scope), but the AOSP build airlock doesn't provide bzcat and friends.
So tar needs to be able to use both: check for *zcat first, and fall back to
"compressor -d" if it's not there.
|
|
Found trying to build the aosp_cf_x86_phone-userdebug target. The good
news is that the targets that I knew were using tar with sparse files
all pass now.
|
|
|
|
|
|
|
|
There's no possible use for this, but debian's tar produces it, so...
|
|
And fix tar cv to produce output to stderr when archive going to stdout.
|
|
Add test to show failure case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Iterate over MANPATH and ordered sections using a manpath() helper
equivalent of indenting logic of man x, man 1 x, and man -k each with a
strsep loop.
|
|
And remove a "nine princes in amber" themed name I missed.
|
|
Instead have one target string and fill it out from start to finish writing
to each location once.
|
|
(This and `git clone` is how I use the latest man7.org pages all the
time instead of my system's man pages.)
|
|
This is what GNU tar does, so Android's build system jail allows
bzip2, gzip, and xz, but not bzcat, zcat, and xzcat.
Why the function? Because auto-detection works by setting toyflags, so
we need to make sure we test the flags late, so it's either two copies
of this or a function.
|
|
|
|
POSIX finally gave us a way to use echo in a portable way despite
differences of opinion about whether to default interpretation of escape
sequences to on or off: -e enables and -E disables (as already
implemented by busybox and coreutils).
http://austingroupbugs.net/view.php?id=1222
|
|
Exec -k value as regex on basename, and on the first content line
outside a tag or on a referenced see-other, whichever appears earlier.
Reuse zcat choice as a function when looping over files. Fix \-\- and
glob.h include leftover. Handle man-pages example newlines. Clarify the
todos, naming package and issue. Remaining items are more of a wishlist
than a plan. Remove `<1>2` because it doesn't let `-k .` work, please
look into that.
|
|
|
|
|
|
|
|
The permissions preservation test still fails for me, but that seems to
be because my environment changed: it's failing because of my umask.
I'll fix that in a separate patch, since it's unrelated.
|
|
Also fix the non-tty output.
Also tweak our output so the tests pass with TEST_HOST=1 too.
|
|
Commit 9448c33944651c1644ffbd0f52cf9d43cae19599 broke ELF note parsing,
because the bounds checking was off. Fix that but also generalize it so
that we won't need note-specific bounds checking in future.
|
|
Reimplemented to command mode execution to follow vi cmd pattern.
(REG)[COUNT0]{CMD}[COUNT1]<MOV>(SYM)
Most of the moves can be executed intependently or before command,
some require character after. (possibly with utf8)
Some of the commands do not require move, such as D, J, dd, yy, x...
There is also tons of special cases where move behaves differently
depending on command. For example 1cw and 1ce appear to be the same
but 1dw and 1de are not...
Most of the operations still need reimplementing and lots of cleanup
in order them to behave correctly
refactored word move to work with utf-8
|
|
|
|
|
|
|
|
There's probably more to do, but it seems usable at this point.
|