Age | Commit message (Collapse) | Author |
|
|
|
and address TODO where -z was still splitting patterns on \n
|
|
|
|
|
|
|
|
no argument returns NULL same as --opt without =
|
|
mksh doesn't support the {a..b} bashism or the ${!name} bashism, causing
the tests to fail on Android.
This works for me on both mksh and bash (both tested on Debian).
|
|
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.
|
|
Pointed out by the compiler combined with glibc's use of
__attribute__((__warn_unused_result__)) on write().
|
|
We need <xlocale.h> for newlocale(3) on macOS, despite it being in POSIX 2008's <locale.h>. musl apparently doesn't have <xlocale.h>, so that's another trick
to teach to portability.h...
|
|
|
|
|
|
|
|
|
|
|
|
Note: can't put in portability.h because it's a linux/ include.
|
|
|
|
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.
|
|
|
|
couldn't handle chmod +s in /tmp. Try to make test_chmod clear out debris
and teach make clean to chmod -R generated before deleting it.
|
|
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.
|
|
|
|
|
|
Unfortunately neither "C.UTF-8" nor "UTF-8" works on *both* OSes...
|
|
|
|
The FEXTRA field, indicated by bit 2 of the flag byte, contains
arbitrary extra data, prefixed by a 16-bit length value. The previous
code skipped over the length, but not the actual contents, breaking
decompression of certain files.
|
|
|
|
|
|
configurable.
|
|
`make macos_defconfig` was grumbling.
|
|
|
|
|
|
|
|
http://lists.landley.net/pipermail/toybox-landley.net/2020-December/012169.html
|
|
mksh doesn't support the =~ extension, so my previous change -- while
fixing the host -- broke Android.
|
|
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.)
|
|
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).
|
|
The rest of `make tests` all pass on a Raspberry Pi 400.
|
|
|
|
|
|
Add new toy `pwgen`.
A usefule password generation utility.
|
|
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
|
|
sed lies to fool autoconf, but also confuses the toybox test suite.
Without this patch we're skipping all "toyonly" tests on both GNU and
toybox sed.
|
|
|
|
Change 5109da9b3e6a898c8e0ad647303a1b375e3d97d3 caused test.test to call
chmod with mode `u+s+s` which passes on the host (where you have a
toybox test but a GNU chmod) but fails on Android where chmod is toybox
too.
Add the missing loop to string_to_mode(), which means this will also
affect other toys, but that seems like a feature (and, for example, GNU
mkdir also accepts a mode like `a=r+w+x`).
|
|
|
|
|
|
|
|
tests to catch this. While there add -k to test sticky bit.
|
|
|