summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* parse: Report errors when failing to add a rootTavian Barnes2020-10-041-1/+5
|
* diag: Factor debug_flag string conversion into its own functionTavian Barnes2020-10-041-25/+21
|
* time: Don't call tzset() on every x{local,gm}time()Tavian Barnes2020-10-011-2/+11
| | | | It turns out tzset() checks /etc/localtime every time you call it.
* dstring: Try to avoid calling vsnprintf() twice in dstrprintf()Tavian Barnes2020-10-011-10/+26
|
* main: Preserve errno over close() in redirect()Tavian Barnes2020-10-011-6/+7
|
* util: Move redirect() and isopen() to main.cTavian Barnes2020-10-013-48/+22
|
* util: Don't rely on bftwTavian Barnes2020-09-304-40/+39
| | | | And rename format_mode() to xstrmode() while I'm at it.
* ctx: Perserve errno better in bfs_ctx_open()Tavian Barnes2020-09-281-0/+7
|
* Rename struct cmdline to bfs_ctxTavian Barnes2020-09-2718-562/+786
| | | | | The API remains similar, with some added accessor functions for lazy initialization of the pwcache and mtab.
* exec: Output a human-readable description of terminating signalsTavian Barnes2020-09-231-1/+5
|
* bftw: Fix bftw_cached_stat() with BFS_STAT_TRYFOLLOWTavian Barnes2020-09-201-1/+5
|
* tests: Add missing ground truthTavian Barnes2020-09-201-0/+12
|
* printf: Format the empty string for %l of non-linksTavian Barnes2020-09-202-9/+15
| | | | It makes a difference if the format specifier has a width.
* stat: Rename bfs_stat_flag to _flagsTavian Barnes2020-09-187-23/+23
| | | | Flags enums should be plural.
* Don't call stat() just to determine symbolic lengthsTavian Barnes2020-09-185-11/+30
| | | | | | | 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.
* util: Make the initial allocation bigger for xreadlinkat()Tavian Barnes2020-09-181-1/+6
| | | | | | | | | Most symlinks are more than 1 character long, so rather than wasting time with 1, 2, 4, ... when we don't have a good guess for the length, start with a bigger one. Credit to https://twitter.com/RichFelker/status/1306321019108556806 for reminding me of this.
* pwcache: Fix an invalid free if strdup()ing the group name failsTavian Barnes2020-09-021-3/+4
|
* pwcache: Work around gr_mem being misaligned on macOSTavian Barnes2020-08-131-3/+14
| | | | C.f. https://github.com/php/php-src/commit/d80f0ff6c0a557d8c993a9d2bd006fb488f6d564
* Implement -xattrnameTavian Barnes2020-08-1312-20/+159
| | | | From macOS find.
* bftw: Make some flag names more explicitTavian Barnes2020-07-294-36/+36
|
* bftw: Rename bftw_typeflag to bftw_type, and make it not a bitmaskTavian Barnes2020-07-299-107/+106
|
* Update default branch to 'main'Tavian Barnes2020-07-101-2/+2
|
* eval: Fix an assertion failure with -D search -sTavian Barnes2020-06-161-0/+1
|
* eval: Fix a segfault with -D search -S edsTavian Barnes2020-06-161-0/+1
|
* Implement exponential deepening searchTavian Barnes2020-06-166-31/+114
|
* bftw: Factor out some of the iterative deepening harnessTavian Barnes2020-06-121-39/+65
|
* bftw: Only do another level of deepening if there are unexplored directoriesTavian Barnes2020-06-121-3/+4
| | | | This makes -S ids about 20% faster on a checkout of the Linux kernel.
* bftw: Make iterative deepening actually do depth-first searchTavian Barnes2020-06-121-15/+21
| | | | | | | | | bftw_stream() was always pushing to the end of the queue, resulting in breadth-first behaviour even when BFTW_DFS was set. This made iterative deepening a "worst of both worlds" with the same memory use as BFS, but much slower due to re-traversals. Fix it by re-using bftw_batch_{start,finish} from bftw_batch().
* tests/trie: New acceptance test for triesTavian Barnes2020-06-093-4/+129
|
* tests/xtimegm: Don't test the year 1900Tavian Barnes2020-06-091-1/+1
| | | | | | | macOS doesn't support negative time_t's that are larger than 32 bits apparently. C.f.: https://stackoverflow.com/a/46335905
* tests: New acceptance test for xtimegm()Tavian Barnes2020-06-093-3/+101
|
* RELEASES.md: Fix a bad issue linkTavian Barnes2020-06-081-2/+2
|
* RELEASES.md: Use short links for issues consistentlyTavian Barnes2020-06-081-4/+11
|
* bfs.1: Add a section on environment variables.Tavian Barnes2020-06-081-0/+51
| | | | Follow-up for #55.
* RELEASES.md: Add explicit hyperlinks for issuesTavian Barnes2020-06-081-2/+5
|
* README.md: Fix extraneous backtickTavian Barnes2020-06-081-2/+2
|
* RELEASES.md: Add some 2.0 release notesTavian Barnes2020-06-082-1/+41
|
* LICENSE: Rename from COPYINGTavian Barnes2020-06-082-1/+1
|
* parse: Color the optimization level differently in dump_cmdline()Tavian Barnes2020-06-071-1/+1
|
* opt: Warn when no side effects are reachableTavian Barnes2020-06-071-4/+4
|
* opt: Dump the command line before optimizing with -D optTavian Barnes2020-06-072-2/+4
|
* parse: Prohibit actions inside -excludeTavian Barnes2020-06-073-1/+28
|
* README: Remove unnecessary single quotes from exampleTavian Barnes2020-06-071-1/+1
|
* Treat -nohidden like -exclude -hiddenTavian Barnes2020-06-076-23/+48
| | | | Fixes #30.
* Implement -exclude, a special form for convenient exclusionsTavian Barnes2020-06-0710-21/+146
| | | | Fixes #8.
* opt: Make sure facts_when_impure sees *all* impure literalsTavian Barnes2020-06-072-3/+11
|
* diag: Unify debug printingTavian Barnes2020-06-0210-156/+262
|
* opt: Add missing #include <unistd.h>Tavian Barnes2020-05-221-0/+1
|
* opt: Track data flow information about predicatesTavian Barnes2020-05-227-37/+280
| | | | | | | | | | This allows us to optimize things like -sparse -o -not -sparse <==> -true and -sparse -a -not -sparse <==> -false
* Makefile: Pass -fsanitize-memory-track-origins for msan buildsTavian Barnes2020-05-221-1/+1
|