about summary refs log tree commit diff
path: root/lr.c
Commit message (Collapse)AuthorAgeFilesLines
* add -P for $'...' escaping, verify UTF-8 filenamesLeah Neukirchen2017-11-241-17/+92
| | | | Closes #1.
* print_format: add escapes for octal and hex bytesLeah Neukirchen2017-11-191-2/+27
|
* callback: free unregistered fileinfo immediatelyLeah Neukirchen2017-11-131-5/+7
|
* set sensible default widths for -ULeah Neukirchen2017-11-131-0/+10
|
* traverse: avoid out of bounds readLeah Neukirchen2017-11-131-1/+1
|
* add action 'skip' which is always falseLeah Neukirchen2017-11-121-0/+5
|
* revert making prune be falseLeah Neukirchen2017-11-121-2/+2
| | | | | This makes things more confusing in the end (and is not how find(1) works either).
* fitree_walk: don't crash on empty treeLeah Neukirchen2017-11-121-0/+2
|
* replace use of <search.h> (tsearch etc.) with own tree implementationLeah Neukirchen2017-11-101-127/+242
| | | | | | | | tsearch(3) can be terribly inefficient on some systems, degrading to linear search. This AA-tree implementation is not measurably slower than e.g. musl's AVL tree implementation. Meanwhile, get rid of the silly tsearch API.
* replace GNU-extension tdestroy(3) with something portableLeah Neukirchen2017-11-081-3/+7
|
* fix -1 and -ALeah Neukirchen2017-11-081-2/+2
|
* make prune evaluate to falseLeah Neukirchen2017-11-081-1/+1
|
* add ternary (conditional) operatorLeah Neukirchen2017-11-081-4/+32
|
* new option -B for breadth first searchLeah Neukirchen2017-11-081-11/+55
| | | | | | | | We use two trees and add the newly found files to the other one, then loop until no more files are found. prune, -t, -L and -x work, depth needs a slight hack; loop detection and -U doesn't work.
* free fileinfo when -U is usedLeah Neukirchen2017-11-081-3/+15
|
* callback: use ino_t for entry count.Leah Neukirchen2017-11-081-2/+3
|
* define PATH_MAX to a sensible upper bound if undefinedLeah Neukirchen2017-11-071-0/+5
|
* readlin: check if buffer is too smallLeah Neukirchen2017-11-071-2/+2
|
* scan_filesystems: on Linux, try /proc/mounts if _PATH_MOUNTED does not existLeah Neukirchen2017-11-041-0/+2
| | | | (Discovered on WSL 1703)
* eval: clean up codeLeah Neukirchen2017-11-031-11/+11
|
* scan_filesystems: support DragonFlyBSDLeah Neukirchen2017-10-171-1/+1
|
* add -e REGEX as a shortcut to filter basenamesLeah Neukirchen2017-09-201-32/+39
|
* recurse: guard DT_DIR optimizationLeah Neukirchen2017-09-171-0/+4
|
* detect when stat(2)-ing all files is not neededLeah Neukirchen2017-09-171-32/+83
| | | | | | | | | | | For plain file listing, no stat(2) information is needed; inspect the format string and ordering options to ensure this is true. We assume any custom test implies needing to stat for now. recurse detects in opendir/readdir whether to recurse on DT_DIR etc. This massively speeds up listing large trees, making lr -U almost as fast as plain GNU find(1).
* recurse: lstat on symlink loops, don't failLeah Neukirchen2017-09-171-1/+2
|
* lr: hyperlink_on: print hostname and use RFC3986-style URI encodingLeah Neukirchen2017-09-121-4/+34
|
* add -X for OSC 8 hyperlinksLeah Neukirchen2017-09-121-1/+42
|
* styleLeah Neukirchen2017-08-311-40/+40
|
* print_format: cleanupLeah Neukirchen2017-08-291-4/+4
|
* style: consistent castsLeah Neukirchen2017-08-291-7/+7
|
* recurse: need special case for "lr /"Leah Neukirchen2017-08-291-1/+2
|
* print_format: use snprintf for bounded strcpyLeah Neukirchen2017-08-291-1/+1
|
* print_format: compute time_t difference as longLeah Neukirchen2017-08-291-4/+5
|
* xattr_string: return empty static stringLeah Neukirchen2017-08-291-2/+4
|
* add strop negationsLeah Neukirchen2017-08-211-0/+19
|
* lr: add action "color <num>" to override colorsLeah Neukirchen2017-07-271-0/+16
|
* lr: breaking change: swap meaning of -QLeah Neukirchen2017-07-271-10/+14
| | | | This is a bit unfortunate, but the better behavior in the long run.
* lr: use setlocale.Leah Neukirchen2017-07-191-0/+3
| | | | | | | | This will enable date stamp formatting for %A, %C, %T as known from date(1). Note that LC_COLLATE and LC_CTYPE is not respected, as we continue to use strcmp. Closes #12.
* lr: print errors and return status 1 when a toplevel argument cannot be stat'edLeah Neukirchen2017-07-131-4/+14
|
* lr: fix output of empty stringLeah Neukirchen2017-06-201-2/+5
|
* lr: add -C to allow coloring of filesLeah Neukirchen2017-06-201-8/+45
|
* lr: allow empty string for .Leah Neukirchen2017-06-201-7/+11
|
* lr: support @file to read file names from fileLeah Neukirchen2017-06-201-0/+9
|
* lr: set prefixl to 0 when reading from stdinLeah Neukirchen2017-06-201-1/+5
|
* LeahizeLeah Neukirchen2017-04-251-1/+1
|
* parse_error: portably declare noreturnChristian Neukirchen2016-08-301-1/+11
| | | | Squelches many clang-analyzer false positives.
* lr: argument '-' means read files from standard inputChristian Neukirchen2016-07-241-1/+36
|
* print_format: use 4 digits for the age in daysChristian Neukirchen2016-06-031-1/+1
|
* store result of getopt in int, to not break on architectures with unsigned charsChristian Neukirchen2016-05-201-2/+1
|
* parse_strcmp: rearrange to check for token =~ before =Christian Neukirchen2016-03-311-7/+7
|