Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-04-16 | Source / Include Folder (#88) | トトも | |
Moved Source Files Into `src` Folder | |||
2022-03-27 | parse: Highlight command line errors | Tavian Barnes | |
2022-03-25 | printf: Switch from a linked list to an array | Tavian Barnes | |
2022-03-12 | Don't shadow standard headers | Tavian Barnes | |
@italic on the AUR stated that bfs from the AUR fails to build on Manjaro. From the build log, it seems like <time.h> doesn't get included properly. I assume it's picking up ./time.h instead. I couldn't reproduce the build issue in the default configuration, but it does fail with EXTRA_CFLAGS="-I." which isn't good. So rename everything with an x prefix to stop clashing. Link: https://aur.archlinux.org/packages/bfs#comment-856102 Link: https://paste.rs/eqR | |||
2021-10-09 | printf: Colorize file names/paths in simple cases | Tavian Barnes | |
2021-10-09 | printf: Take a CFILE, not a FILE | Tavian Barnes | |
2021-06-09 | util: Rename fallthrough to BFS_FALLTHROUGH | Tavian Barnes | |
This avoids shadowing the actually standard name fallthrough. | |||
2021-06-02 | Enable -Wimplicit-fallthrough | Tavian Barnes | |
2021-02-05 | Update copyright dates | Tavian Barnes | |
2021-01-28 | dir: New DIR* facade | Tavian Barnes | |
2020-11-12 | Include what I use | Tavian Barnes | |
Thanks to https://github.com/include-what-you-use/include-what-you-use | |||
2020-11-04 | Enable -Wsign-compare to catch bugs like 726d7801 | Tavian Barnes | |
2020-10-06 | printf: Adjust some calling conventions | Tavian Barnes | |
2020-10-05 | diag: New bfs_perror() function | Tavian Barnes | |
2020-09-30 | util: Don't rely on bftw | Tavian Barnes | |
And rename format_mode() to xstrmode() while I'm at it. | |||
2020-09-27 | Rename struct cmdline to bfs_ctx | Tavian Barnes | |
The API remains similar, with some added accessor functions for lazy initialization of the pwcache and mtab. | |||
2020-09-20 | printf: Format the empty string for %l of non-links | Tavian Barnes | |
It makes a difference if the format specifier has a width. | |||
2020-09-18 | Don't call stat() just to determine symbolic lengths | Tavian Barnes | |
The new bftw_cached_stat() helper gets us stat info if we already have it, but doesn't call stat() if we don't. In that case we just take a guess for the initial length to readlinkat(). This lets us avoid stat() entirely in many cases for -lname and -printf %l. | |||
2020-07-29 | bftw: Rename bftw_typeflag to bftw_type, and make it not a bitmask | Tavian Barnes | |
2020-04-22 | pwcache: Rename from passwd.[ch] | Tavian Barnes | |
2020-02-29 | passwd: Cache the user/group tables | Tavian Barnes | |
This is a significant optimization for conditions that need these tables: Benchmark #1: ./bfs ~/code/linux -nouser >/dev/null Time (mean ± σ): 232.0 ms ± 2.5 ms [User: 44.3 ms, System: 185.0 ms] Range (min … max): 228.7 ms … 238.7 ms 12 runs Benchmark #2: ./bfs-1.6 ~/code/linux -nouser >/dev/null Time (mean ± σ): 1.050 s ± 0.012 s [User: 544.2 ms, System: 500.0 ms] Range (min … max): 1.025 s … 1.063 s 10 runs Benchmark #3: find ~/code/linux -nouser >/dev/null Time (mean ± σ): 1.040 s ± 0.012 s [User: 533.6 ms, System: 500.6 ms] Range (min … max): 1.017 s … 1.054 s 10 runs Summary './bfs ~/code/linux -nouser >/dev/null' ran 4.48 ± 0.07 times faster than 'find ~/code/linux -nouser >/dev/null' 4.52 ± 0.07 times faster than './bfs-1.6 ~/code/linux -nouser >/dev/null' | |||
2020-02-13 | time: Split out time-related functions from util | Tavian Barnes | |
2019-05-05 | bftw: Pass a const struct BFTW * to the callback | Tavian Barnes | |
2019-05-04 | bftw: Add a caching stat() API to struct BFTW | Tavian Barnes | |
2019-05-04 | stat: Unify the flags arguments | Tavian Barnes | |
2019-04-15 | Release 1.41.4 | Tavian Barnes | |
2019-03-06 | bftw: Work around d_type being wrong for bind mounts on Linux | Tavian Barnes | |
C.f. https://savannah.gnu.org/bugs/?54913 C.f. https://lkml.org/lkml/2019/2/11/2027 Fixes https://github.com/tavianator/bfs/issues/37 | |||
2019-02-06 | Turn on -Wstrict-prototypes | Tavian Barnes | |
2019-01-02 | diag: Unify diagnostic formatting | Tavian Barnes | |
This adds a bfs: prefix to error/warning messages for consistency with other command line tools, and leaves only the "error:"/"warning:" part colored like GCC. It also uniformly adds full stops after messages. | |||
2018-12-20 | stat: Unify bfs_stat_time() implementations | Tavian Barnes | |
2018-12-17 | bftw: Move bftw_typeflag conversion out of util | Tavian Barnes | |
Turns out incomplete enum types are a GNU C extension. | |||
2018-09-24 | Update copyright dates | Tavian Barnes | |
2018-08-16 | Add some missing fallthrough comments | Tavian Barnes | |
2018-07-24 | printf: Support all standard strftime() directives | Tavian Barnes | |
2018-07-24 | printf: Support %B, GNU find's undocumented birth time specifier | Tavian Barnes | |
2018-07-24 | stat: Don't assume blocks are 512 bytes | Tavian Barnes | |
POSIX says > The unit for the st_blocks member of the stat structure is not defined > within POSIX.1‐2008. and recommends using DEV_BSIZE from <sys/param.h> if available. Also, for -printf '%S', print 1 instead of NaN for empty files with no blocks. | |||
2018-07-20 | printf: Output ? for errors in %Y | Tavian Barnes | |
2018-01-20 | printf: Add %w and %Wk for file birth times | Tavian Barnes | |
%w and %W were chosen to match the format specifiers for file birth times from stat(1) | |||
2018-01-08 | stat: New wrapper around the stat() family | Tavian Barnes | |
This lets bfs transparently support the new statx() system call on Linux, giving it access to file birth times. | |||
2017-11-13 | color: Implement %m for cfprintf() | Tavian Barnes | |
2017-11-05 | Add support for file birth/creation times on platforms that have it | Tavian Barnes | |
Fixes #19 | |||
2017-09-16 | opt: Separate optimization from parsing | Tavian Barnes | |
2017-08-27 | printf: Save some lines in time specifier parsing | Tavian Barnes | |
2017-07-27 | Re-license under the BSD Zero Clause License | Tavian Barnes | |
2017-07-09 | Handle ENOTDIR the same as ENOENT | Tavian Barnes | |
For a/b/c, ENOTDIR is returned instead of ENOENT if a or b are not directories. Handle this uniformly when detecting broken symlinks, readdir races, etc. | |||
2017-06-10 | printf: Fix embedded nul bytes | Tavian Barnes | |
Fixes #26. | |||
2017-04-29 | Don't parse the mount table until it's needed | Tavian Barnes | |
2017-04-23 | Implement -fstype | Tavian Barnes | |
Fixes #6! | |||
2017-04-08 | Move bftw_typeflag converters to util.c | Tavian Barnes | |
2017-03-11 | Implement -ls and -fls | Tavian Barnes | |