Age | Commit message (Collapse) | Author |
|
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.
|
|
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
|
|
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
|
|
and cleanup hostname to only call gethostname() once.
It passes the one test in test_hostname, if that helps.
|
|
|
|
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
|
|
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.
|
|
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 :-( )
|
|
|
|
|
|
|
|
Required by the new `ln -t` test if it's to pass on an all-toybox
system :-)
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Add mock gzip -n to satisfy pkgsrc.
|
|
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.
|
|
Investigate why downloads always freeze when I call ftpget. Trace it to
a refactor leaving two REST and zero RETR.
|
|
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.
|
|
|
|
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.
|
|
|
|
xwaitpid(), fix off by one in xwaitpid().
|
|
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.)
|
|
|
|
|
|
|
|
|
|
|
|
(oops.)
|
|
length of sparse files properly.
|
|
|
|
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
|
|
|
|
(All ignored, because they disable stuff we don't do.)
|
|
|
|
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
|
|
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.
|
|
|
|
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`
|
|
I really needed to be able to edit a file on the device, and this was
the nearest thing handy, and it turns out to be more or less usable for
basic editing, so...
Support cursor keys.
Support :q (since there's currently no record of whether the file's
modified or not, :q is the same as :q!).
Add 'A' to insert at end of line.
Add 'n' to find next after '/'.
Fix backspace all the way to get out of ex command mode.
Fix escape sequences to not hard-code assumptions about the terminal's
default background and foreground colors.
Fix 'spesial' typo for 'special', and remove explicit array sizes.
|
|
If you accidentally configure the sha-3 sums on, but don't enable
libcrypto, you'll get toys that just output md5 sums instead. This patch
doesn't cause a build-time error (my original plan), but does at least
ensure that toybox refuses to include incorrect sha-3 sum
implementations.
|
|
does CLOEXEC (should fix macos build).
|
|
I think when I wrote this I tested the named escapes like \n and hex
escapes, and when I found \x wasn't supported I didn't even think of
octal. And I only learned about \c when I was looking at echo and printf
to compare their escape implementations a few weeks back.
Add the missing escapes and corresponding tests.
Fixes #139.
|
|
This broke a netd test (but sadly in postsubmit rather than presubmit).
Also add a trivial test that would at least have caught this bug.
Bug: http://b/140453237
|
|
|
|
Commit c26870dab3462c6176936384b090df6b9ba46dee broke ls' error
reporting for files that don't exist. `ls $F` is used by some as an
equivalent of `test -e $F`.
This patch also adds a regression test.
|