Skip to content

Releases: tavianator/bfs

Version 1.1

22 Jul 17:37
1.1
Compare
Choose a tag to compare
  • Implemented some primaries from NetBSD find:
    • -exit [STATUS] (like -quit, but with an optional explicit exit status)
    • -printx (escape special characters for xargs)
    • -rm (alias for -delete)
  • Warn if -prune will have no effect due to -depth
  • Handle y/n prompts according to the user's locale
  • Prompt the user to correct typos without having to re-run bfs
  • Fixed handling of paths longer than PATH_MAX
  • Fixed spurious "Inappropriate ioctl for device" errors when redirecting -exec ... + output
  • Fixed the handling of paths that treat a file as a directory (e.g. a/b/c where a/b is a regular file)
  • Fixed an expression optimizer bug that broke command lines like bfs -name '*' -o -print

Version 1.0.2

16 Jun 00:39
1.0.2
Compare
Choose a tag to compare

Bugfix release.

  • Fixed handling of \0 inside -printf format strings
  • Fixed -perm interpretation of permcopy actions (e.g. u=rw,g=r)

Version 1.0.1

17 May 23:21
1.0.1
Compare
Choose a tag to compare

Bugfix release.

  • Portability fixes that mostly affect GNU Hurd
  • Implemented -D exec
  • Made -quit not disable the implicit -print

Version 1.0

01 May 19:10
1.0
Compare
Choose a tag to compare

This is the first release of bfs with support for all of GNU find's primitives.

Changes since 0.96:

  • Implemented -fstype
  • Implemented -exec/-execdir ... +
  • Implemented BSD's -X
  • Fixed the tests under Bash 3 (mostly for macOS)
  • Some minor optimizations and fixes

Version 0.96

11 Mar 21:51
0.96
Compare
Choose a tag to compare

73/76 GNU find features supported.

  • Implemented -nouser and -nogroup
  • Implemented -printf and -fprintf
  • Implemented -ls and -fls
  • Implemented -type with multiple types at once (e.g. -type f,d,l)
  • Fixed 32-bit builds
  • Fixed -lname on "symlinks" in Linux /proc
  • Fixed -quit to take effect as soon as it's reached
  • Stopped redirecting standard input from /dev/null for -ok and -okdir, as that violates POSIX
  • Many test suite improvements

Version 0.88

21 Dec 03:19
0.88
Compare
Choose a tag to compare

67/76 GNU find features supported.

  • Fixed the build on macOS, and some other UNIXes
  • Implemented -regex, -iregex, -regextype, and BSD's -E
  • Implemented -x (same as -mount/-xdev) from BSD
  • Implemented -mnewer (same as -newer) from BSD
  • Implemented -depth N from BSD
  • Implemented -sparse from FreeBSD
  • Implemented the T and P suffices for -size, for BSD compatibility
  • Added support for -gid NAME and -uid NAME as in BSD

Version 0.84.1

02 Dec 16:12
0.84.1
Compare
Choose a tag to compare

Bugfix release.

  • Fixed #7 again
  • Like GNU find, don't print warnings by default if standard input is not a terminal
  • Redirect standard input from /dev/null for -ok and -okdir
  • Skip . when -delete'ing
  • Fixed -execdir when the root path has no slashes
  • Fixed -execdir in /
  • Support -perm +MODE for symbolic modes
  • Fixed the build on FreeBSD

Version 0.84

29 Oct 20:43
0.84
Compare
Choose a tag to compare

64/76 GNU find features supported.

  • Spelling suggestion improvements
  • Handle --
  • (Untested) support for exotic file types like doors, ports, and whiteouts
  • Improved robustness in the face of closed std{in,out,err}
  • Fixed the build on macOS
  • Implement -ignore_readdir_race, -noignore_readdir_race
  • Implement -perm

0.82

04 Sep 18:35
0.82
Compare
Choose a tag to compare

62/76 GNU find features supported.

  • Rework optimization levels
    • -O1
      • Simple boolean simplification
    • -O2
      • Purity-based optimizations, allowing side-effect-free tests like -name or -type to be moved or removed
    • -O3 (default):
      • Re-order tests to reduce the expected cost (TODO)
    • -O4
      • Aggressive optimizations that may have surprising effects on warning/error messages and runtime, but should not otherwise affect the results
    • -Ofast:
      • Always the highest level, currently the same as -O4
  • Color files with multiple hard links correctly
  • Treat -, ), and , as paths when required to by POSIX
    • ) and , are only supported before the expression begins
  • Implement -D opt
  • Implement -D rates
  • Implement -fprint
  • Implement -fprint0
  • Implement BSD's -f
  • Suggest fixes for typo'd arguments

0.79

01 Jun 21:37
0.79
Compare
Choose a tag to compare
  • Remove an errant debug printf() from -used
  • Implement the {} ; variants of -exec, -execdir, -ok, and -okdir