about summary refs log tree commit diff
path: root/lr.c
Commit message (Collapse)AuthorAgeFilesLines
* print_shquoted: fast-path for unescaped file name outputLeah Neukirchen2019-12-051-1/+7
|
* initialize new.totalLeah Neukirchen2019-12-051-0/+1
|
* only hide directories, other entries can just be droppedLeah Neukirchen2019-03-151-1/+1
|
* define a hidden color and use it for -B so traversal can continueLeah Neukirchen2019-03-151-5/+16
|
* update copyright yearsLeah Neukirchen2019-02-081-1/+1
|
* parse_string: off-by-one for reallocationLeah Neukirchen2019-01-291-1/+1
|
* callback: ensure trailing nul byteLeah Neukirchen2018-08-081-1/+1
|
* print_shquoted: respect QflagLeah Neukirchen2018-04-171-1/+1
|
* bump copyright messageLeah Neukirchen2018-04-051-1/+1
|
* support $NO_COLORLeah Neukirchen2018-01-291-0/+2
| | | | http://no-color.org/
* print file size in groups of three digits when -G is usedLeah Neukirchen2017-11-241-2/+23
| | | | | We use a custom printing function as %'jd is locale-dependent (and not implemented in musl).
* 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
|