aboutsummaryrefslogtreecommitdiff
path: root/toys/posix/df.c
AgeCommit message (Collapse)Author
2021-02-20Fix df on macOS.Elliott Hughes
On Linux, struct statvfs' f_bsize and f_frsize seem to be interchangeable. On macOS, they're wildly different. f_bsize is the "preferred length of I/O requests for files on this file system" (corresponding to statfs::f_iosize), and f_frsize is the "size in bytes of the minimum unit of allocation on this file system" (corresponding to statfs::f_bsize. POSIX appears to say nothing about the interpretation of these fields, but man7.org's statvfs(2) page is quite clear that statvfs::f_blocks, for example, is in units of f_frsize, not f_bsize. This is the only place in the tree where we use statvfs::f_bsize (other than the stat(1) output that's supposed to be f_bsize and that has a corresponding f_frsize dual anyway. I've removed the Apple-specific #define f_frsize in portability.h because that seems to have been from my previous attempt to understand what was going on here. The output of the relevant stat(1) fields on macOS are the same before/after this patch. This makes toybox df's output match the system's df on a MacBook Pro running macOS 11.2.1. Tested on a Raspberry Pi 400 running Linux too, where I see no change in the output before/after this patch.
2021-02-17Teach df /dev/node to reliably show rdev even when devtmpfs is mountedRob Landley
more recently than the resulting mount point.
2021-02-16Only error once for each "df nonexistent"Rob Landley
2021-02-16Let df -a show overmounted filesystems.Rob Landley
2021-02-14Redo df plumbing a bit.Rob Landley
2021-02-14Cleanup pass on df.Rob Landley
2020-05-30Ethan Sommer pointed out an unnecessary return.Rob Landley
2020-03-02Merge realpath into readlink, use xabspath() instead of libc realpath().Rob Landley
2020-02-02Canonicalize the usage: lines for the POSIX toys.Elliott Hughes
This only touches 24 of the 68 toys/posix/ files --- the others were already canonical. Potentially contentious, so worth stating explicitly, is that there were 8 matches for "COMMAND..." amongst all existing help output, with 7 matches for various inconsistent variants involving something with "ARG", so I resolved that in favor of using "COMMAND..." (which is also shorter overall, and avoids nested []s).
2018-12-04Clean up some --help formatting.Elliott Hughes
Be consistent about upper versus lower case. (Upper seems to have the majority, so I went with that, though I'm happy to provide the opposite patch as long as we're consistent!) Be consistent about using \t. (Though saving a few bytes seems like it might be better done in the code that generates help.h rather than directly in the source, since tabs make careful ASCII art layout hard enough that we regularly have things misaligned.) Remove trailing periods (most of which seem to have been added by me). Always use the US "human readable" rather than my British "human-readable", and be more consistent about declaring whether we're showing multiples of 1000 or 1024. Just say "verbose" rather than adding a useless "mode" or "output".
2018-08-31Convert option style.Rob Landley
2017-11-16Minor tweaks.Rob Landley
2017-11-16Add "df -i".Elliott Hughes
Also switch to u64 for calculations. Some FUSE file systems have inode counts large enough to overflow s64.
2017-05-26Be more consistent about periods in help text.Elliott Hughes
2017-02-09Document df -aRob Landley
2017-02-03Fix operator precedence error in df.Elliott Hughes
2015-10-22Auto-size df columns.Elliott Hughes
On Android, the filesystem column is pretty wide. Actually measure the widths.
2015-09-08Squish a warning in pending.Rob Landley
2015-09-06Switch HR_SI to HR_1000, make binary the default, make HR_B only affect bytes,Rob Landley
and update the tests.
2015-09-05df -h and -H.Elliott Hughes
This doesn't address the lack of support for a variable-width "Filesystems" column, but it doesn't make the current situation any worse either. This is the last of the missing -h options. The other commands with -h also have --si, but only for df did it get a corresponding short option (and I've never personally used --si on du or ls, so let's wait until someone actually cares).
2015-04-04To ensure that toybox can be installed alongside busybox withoutPaul Barker
confusing update-alternatives, the paths of the links installed by toybox should match those installed by busybox. This is accomplished by changing the flags of a few tools within toybox.
2015-03-01Patches from Elliott Hughes to fix various printf() format strings.Rob Landley
(Don't specify the space flag when it's the default behavior. The ifconfig stuff was actual bugs.)
2014-11-25Variant of a patch from Ashwini Sharma, making df /dev/node work and ↵Rob Landley
tweaking the spacing. I didn't apply the POSIXLY_CORRECT gnuism because it's a can of worms (as would be LSB_CORRECT), and you can presumably alias df="df -P" if you want that. Possibly in future I should factor out the "readahead and align columns based on measuring the largest value in each" code from ls and apply it here.
2014-05-29Switch mtab_list to doubly linked so we can traverse in either order. ↵Rob Landley
Convert umount and df. Add dlist_terminate() to break lists for traversal in either direction.
2014-03-16Clarify an unclear comment pointed out by Steve Long.Rob Landley
2014-02-04Tweak help text.Rob Landley
2013-08-30Allow getmountlist to read fstab too.Rob Landley
2013-08-16Normalize df menu entry and tweak help text.Rob Landley
2013-05-10Convert getmountlist() to xgetmountlist().Rob Landley
2013-01-02Have error_msg() and friends set TT.exitval to 1 if it's still 0, clean out ↵Rob Landley
other places that were setting it that no longer need to.
2012-11-13Reindent to two spaces per level. Remove vi: directives that haven't worked ↵Rob Landley
right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style. The actual code should be the same afterward, this is just cosmetic refactoring.
2012-11-10On 32 bit platforms %ld doesn't match uint64_t, so do long long and %lld ↵Rob Landley
(rather than deal with verbose PRIu64 nonsense).
2012-11-08Change df percentage calculation to match posix, spotted by Roy Tam.Rob Landley
2012-10-26Follow symlinks to get actual device name, getmountlist() reverses order for ↵Rob Landley
us now, detect stdout to full device.
2012-10-08New build infrastructure to generate FLAG_ macros and TT alias, #define ↵Rob Landley
FOR_commandname before #including toys.h to trigger it. Rename DEFINE_GLOBALS() to just GLOBALS() (because I could never remember if it was DECLARE_GLOBALS). Convert existing commands to use new infrastructure, and replace optflag constants with FLAG_ macros where appropriate.
2012-08-25Regularize command headers, update links to standards documents.Rob Landley
2012-08-25Move commands into "posix", "lsb", and "other" menus/directories.Rob Landley