The first group of patches refactor the printout to breakup excessively long print_route function and the last few implement JSON and color output format for routes.
The one thing that maybe controversial is changing the default json output format to be compact. The value of JSON is for programattic output therefore pretty-printing should be an option. One change I didn't make (but considered) is not calling fflush after every single entry. When dumping millions of routes, letting stdio buffer output would be a performance win. Stephen Hemminger (16): iproute: refactor printing flags iproute: make printing icmpv6 a function iproute: make printing IPv4 cache flags a function iproute: refactor cacheinfo printing iproute: refactor metrics print iproute: refactor printing flow info iproute2: refactor newdst, gateway and via printing iproute: refactor multipath print iproute: refactor printing of interface iproute: whitespace fixes iproute: don't do assignment in condition iproute: make flush a separate function iproute: implement JSON and color output json: make pretty printing optional man: add documentation for json and pretty flags json: fix newline at end of array include/json_print.h | 2 + include/utils.h | 4 + ip/ip.c | 7 +- ip/iproute.c | 943 ++++++++++++++++++++++++++++++--------------------- lib/json_print.c | 5 +- lib/json_writer.c | 5 + man/man8/ip.8 | 18 +- man/man8/tc.8 | 3 +- tc/tc.c | 3 + 9 files changed, 598 insertions(+), 392 deletions(-) -- 2.15.1