aboutsummaryrefslogtreecommitdiff
path: root/toys/posix/ls.c
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-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-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-04ls: fix -Z, add a test.Elliott Hughes
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
2019-09-04DIRTREE_STATLESS doesn't have to test 3 stat fields, it sets a flagRob Landley
2019-08-30ls: fix recent regression.Elliott Hughes
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.
2019-08-26Try to make ls failure more graceful. Print ? ? ? entries instead of error msg.Rob Landley
Tweak DIRTREE_STATLESS so it returns zero stat for any error (I'm testing that dev, ino, and blksize are all zero), and fill in file type from readdir()
2019-05-13Use FLAG() macros in lsRob Landley
2019-03-02Improve help consistency.Elliott Hughes
More consistent tense, capitalization, and punctuation. A few commands were missing an introductory line, so I copied those from the first comment line.
2019-01-08ls: Fix -t to also sort by st_mtim.tv_nsec.Peter Collingbourne
2018-08-26Convert more commands to the new option/GLOBALS code style.Rob Landley
2018-08-26Remove ls sub-option: always support --color.Rob Landley
(Well, when you say --color or "alias ls='ls --color=auto'" in your shell.)
2017-12-11An incomplete list of deviations from posix (it's a start).Rob Landley
2017-04-19Add ls -ll (with --full-time as a compatibility synonym) to show nanoseconds.Rob Landley
(And, for some reason, timezone. Individual files have timezones?)
2017-04-12Default to -b rather than -q when output is to a tty.Rob Landley
2017-04-11Silence a broken warning by hitting it with a rock.Rob Landley
2017-04-08Fix the ls -m test (which is just a whitespace issue, but eh).Rob Landley
While we're at it, ls -m wordwrap was one column early.
2017-01-28Add missing `static`s and remove an unused function.Elliott Hughes
2017-01-28Whitespace.Rob Landley
2016-10-09Izabera pointed out that ls defaults to -q when output is a tty.Rob Landley
2016-09-14Fix ls -lh.Elliott Hughes
The recent refactoring broke ls -lh by multiplying all sizes by 0 rather than 1.
2016-08-27Make "LC_ALL=C ls -Cs --color" produce the same output on toybox and ubuntu.Rob Landley
(Two spaces padding between columns, and -k is hardwired on.)
2016-08-27Remove some redundancy and unnecessary xprintf().Rob Landley
(We should use xprintf and similar to flush and check if stdout went away once per line. No point flushing partway through a line, so in ls only use it on things outputting a newline char.)
2016-08-27Fix ls -sh.Elliott Hughes
-h should apply to -s too. (Previously it only applied to the "total" line in -s output.)
2016-08-13Move getusername/getgroupname to lib. (Return name or string representationRob Landley
of number, but never NULL. Both returned in static buffer good through next call.)
2016-05-20Add bufgetgrgid()Rob Landley
2016-04-21Have dirtree_recurse() take the new dirfd as an argument.Rob Landley
2016-03-15Add ls -b and make ls -q work with utf8.Rob Landley
2016-03-07Cleanup pass on the dirtree infrastructure, in preparation for making rm -rRob Landley
handle infinite depth. Fix docs, tweak dirtree_handle_callback() semantics, remove dirtree_start() and don't export dirtree_handle_callback(), instead offer dirtree_flagread(). (dirtree_read() is a wrapper around dirtree_flagread passing 0 for flags.)
2016-03-02For years the man pages have said to #include <sys/types.h> to getRob Landley
major/minor/makedev, but glibc has vowed to break existing programs (https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html) and replace it with _another_ non-standard header (not in posix or lsb), so let's just add functions to lib/ that do the transform ourselves.
2016-01-15Command line files without paths were attempting to use stdin as their dirfd,Rob Landley
(because ls uses nonstandard directory recursion which collates all the command line arguments under a fake top node, which needs more thorough initialization).
2016-01-08The sense of -L was flipped.Elliott Hughes
2016-01-05Add error_msg_raw() and friends, replace error_msg("%s", s) uses, enable formatRob Landley
checking, and fix up format checking complaints. Added out(type, value) function to stat to avoid a zillion printf typecasts.
2015-12-30make "ls -m | cat" assume 80 columns.Rob Landley
2015-12-12Add a useless memset (under CFG_TOYBOX_DEBUG) to shut up valgrind.Rob Landley
Valgrind complains that we add uninitalized memory to totals[] fields we never read from. (If we didn't set it in entrylen() we don't use it during display, they're testing the same flags), but valgrind doesn't understand that.
2015-12-06Rename dirtree->data to dirfd, and don't store symlink length in it.Rob Landley
2015-10-27Use the /proc/self/fd/%d workaround for O_PATH not letting you read xattrs,Rob Landley
inspired by: https://android-review.googlesource.com/#/c/152663/4/libc/bionic/fgetxattr.cpp
2015-10-27Fix ls error message for chmod -r directories.Rob Landley
Also, if you mkdir "$(echo -e "one\ntwo"); chmod -r one*; ls -q one* it honors -q.
2015-09-05ls -h support.Elliott Hughes
It turns out that people are anticipating the switch to toybox ls from toolbox ls on the assumption that this will finally bring -h support. Let's not disappoint. I've merged two existing buffers in listfiles whose uses didn't overlap into one. It may be possible to cram this into toybuf with the other stuff, but it didn't seem worth the extra complexity for 64B of stack, especially since we were already living with that for time formatting anyway.
2015-08-31ls -l user/group/security context should be left-aligned.Elliott Hughes
Right-aligned looks pretty good to me, but it's not what anyone else does.
2015-08-08Fix ls -l user/group field ordering.Elliott Hughes
It's user then group, not the other way round.
2015-06-23Don't segfault if none of the file arguments to ls exists.Rob Landley
2015-06-23Don't depend on malloc(0) to return non-null.Rob Landley
2015-06-23Fix ls so spacing is right for ls -l, -o, -g, -og, -ogZ, -lZ, -gZ, and -oZ.Rob Landley
2015-05-21ls -lZ wasn't putting a space before the xattr output.Rob Landley
2015-05-19Adapted patch from José Bollo to do the "tonight we're gonna api likeRob Landley
it's 1999 and every path ever is from cwd or root" api versions for sockets and as a fallback of the open fails. There are still some holes (symlink to socket with -L will give you info about the symlink, not the socket, and symlink to a file you can't open will give you info about the symlink, not the file) but the correct fix is to make O_PATH work in the kernel for the LSM functions. (If we can read this data by path, we should be able to read it by O_PATH. We should not need two codepaths for this.)
2015-05-18Switch id over to new infrastructure, switch id to use FORCE_FLAGS, andRob Landley
make lib/lsm.h auto-include from toys.h.
2015-05-18Fix "ls -Z . toys" segfaulting, because preprocessing skipped.Rob Landley
strwidth() got called on ->extra which was NULL. Had some other bad effects ala "ls -sk file1 file2 file3" ignored the -k. This should fix that too.
2015-05-18Recent commit broke ls -R (test reversed), and "ls -R singledir" shouldRob Landley
show label: at the start (yes, even "ls -R" in an empty dir).
2015-05-18More ls -Z upgrading. Move TOYBOX_SELINUX and TOYBOX_SMACK support fromRob Landley
portability.h to new lib/lsm.h. Update ls.c to use it. Fix "ls . toys" (two directories when one is . or ..), which was filtering out the . as something we shouldn't recurse into even though it was explicitly listed on the command line. For some reason "ls -Z . toys" is still segfaulting though (but "ls -Z ." isn't), need to figure out why...