To show only relevant diffs of ip and ipv6 variants help message print routines needs to be unified and improved.
Get rid of print_usage() and usage() wrappers: use single function to output help message. As side effect we return -1 from parse function instead of calling exit(2) in case of "... tunnel <help|garbage>" is found. Additionally we get pointer to @struct link_util and can directly access ->id information to prepare customized help message. Split calls to fprintf() two group: one that contains format string with specifiers (thus requiring parameters) and another one that does not. This helps compiler to optimize calls to fprintf() with fputs() when no format specifiers in string. Do not use fputs() directly to keep code formatting nice. After this series applied following diffs: # diff -urN ip/link_gre{,6}.c # diff -urN ip/link_vti{,6}.c # diff -urN ip/link_ip{,6}tnl.c in scope of help print routines reduced to necessary minimum. Tested minimally by compiling and executing "ip link help <kind>" and "ip link add type help" commands. Looks correct. See individual patch description for more information. Reviews, commands and suggestions are welcome. v3 Address commit message format issues and checkpatch in link_vti6.c v2 Dropped function prefix changes from the series: this is not strictly relared change and should be done separately. Thanks, Serhii Serhey Popovych (3): vti/vti6: Unify vti_print_help() gre/gre6: Unify gre_print_help() iptnl/ip6tnl: Unify iptunnel_print_help() ip/link_gre.c | 73 ++++++++++++++++++++------------------------ ip/link_gre6.c | 74 +++++++++++++++++++++------------------------ ip/link_ip6tnl.c | 45 ++++++++++++++-------------- ip/link_iptnl.c | 88 ++++++++++++++++++++++++++---------------------------- ip/link_vti.c | 42 +++++++++++--------------- ip/link_vti6.c | 34 ++++++++++----------- 6 files changed, 166 insertions(+), 190 deletions(-) -- 1.7.10.4