tree: upgrade 1.8.0 -> 2.0.0

Changelog:
=========
* This started out as a 1.9.0 release but then I got fed up with the abundance
of directory listers (8 in total, 2 each for each output mode).
Nothing is terribly well tested since there are a lot of changes and I would
like to get this out the door finally, please report breakage. This reduced
so much code that all the below additions only resulted in a code base that
is only 54 lines larger than 1.8.0.

* Rolled all the directory listers into 2 functions that call output specific
functions (removes one TODO).

*-R option now recursively calls the emit_tree() function rather than using
system() to re-call tree. Also removes a TODO.

* Adds --info to print information about files/directories from information
found in .info files (removes a maybe do) In HTML output, comments show as
mouse over tooltips, which I imagine will be the most useful use of this "feature".

* Output un-indented JSON on file descriptor 3 ("stddata") automatically if
file descriptor 3 is present (currently Linux only.) Maybe switch to BSON.

* Always HTML escape filenames in HTML output even when -C is used.

* Return a non-zero exit status if there is a failure to open any directory.

* Added --gitignore option to filter out files specified by .gitignore files.
(also reads $GIT_DIR/info/exclude if present.) To facilitate gitignore, adds
support for ** on pattern matching to allow /**/ to match a single /.
This is not well tested and kind of hacked together, so may not work correctly.

* Now also supports multiple -I and -P instances.

* Now prints meta data for the top level directory as well.

* Split spaghetti code in main into individual functions.

* Properly sort --fromfile input

* Make tree colorization use reset (rs code in dir_colors,) not normal color
when resetting attributes

* Honor -n (no color) even if the CLICOLOR_FORCE environment variable is set

* Fix --sort option to not require =

* Defer sorting for --du until the entire sub-directory tree has been processed.

* Optimized makefile, HP/UX support (Osipov, Michael). Note that this changes
the prefix default to /usr/local, which is becoming required for many systems now.

* Renamed (the by now very obsolete) doc/tree.1.fr to doc/tree.fr.1

* Fix JSON string escaping such that it is not using the HTML escaping

* Add --filesfirst option (John A. Fedoruk). Cleaned up sorting code to make
--dirsfirst and --filesfirst top level meta-sorts.

* "arial" not "ariel" (Mark), HTML style-sheet cleaned up in any event.

* Deprecate using local -DLINUX / -DCYGWIN and use the OS provided __linux__ or
__CYGWIN__

* XML/HTML/JSON output needs to be mutually exclusive, last command line switch
wins.

* Make sure we use xmalloc instead of malloc in a number of places

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
wangmy
2021-12-27 22:33:22 +08:00
committed by Khem Raj
parent 05edcb677b
commit 00ee46b5f0
@@ -5,8 +5,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz"
SRC_URI[md5sum] = "715191c7f369be377fc7cc8ce0ccd835"
SRC_URI[sha256sum] = "715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2"
SRC_URI[sha256sum] = "782cd73179f65cfca7f29326f1511306e49e9b11d5b861daa57e13fd7262889f"
# tree's default CFLAGS for Linux
CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"