This program performs a depth-first search to generate and print the file inclusion tree of a specified input file in a tree-like format
This program can be really helpful for debugging and refactoring.
$ itree ipuz-acrostic.c
ipuz-acrostic.c
βββ libipuz-config.h
βββ ipuz-private.h
β βββ ipuz-puzzle.h
β βββ ipuz-crossword.h
β βββ ipuz-cell.h
β βββ ipuz-clue.h
β βββ ipuz-clue-sets.h
βββ acrostic-board-dimensions.h
βββ ipuz-magic.h
βββ ipuz-puzzle.h$ itree app.h --cycle
app.h
βββ app_utils.h
β βββ app_error.h
β βββ app_utils.h (in red)
βββ app_safe.h
β βββ app_input.h
β βββ app_utils.h
βββ app_input.h$ itree app.h --depth 1
app.h
βββ app_utils.h
β βββ app_error.h
βββ app_safe.h
β βββ app_input.h
β βββ app_utils.h
βββ app_input.h$ itree app.h --grep app_safe.h -g app_none.h
app.h
βββ app_utils.h
β βββ app_error.h
β βββ app_utils.h
βββ app_safe.h (in green)
β βββ app_input.h
β βββ app_utils.h
βββ app_input.h$ itree *.h
app.h
βββ app_utils.h
β βββ app_error.h
β βββ app_utils.h
βββ app_safe.h
β βββ app_input.h
β βββ app_utils.h
βββ app_input.h
app_error.h
app_safe.h
app_utils.h
$ itree *.h --independent
app.h
βββ app_utils.h
β βββ app_error.h
β βββ app_utils.h
βββ app_safe.h
β βββ app_input.h
β βββ app_utils.h
βββ app_input.h
app_error.h
βββ app_utils.h
βββ app_error.h
app_safe.h
βββ app_input.h
βββ app_utils.h
βββ app_error.h
βββ app_utils.h
app_utils.h
βββ app_error.h
βββ app_utils.h$ make
$ sudo make install