Add an option -h to display the help of the tools. This is a common practice so users may expect it to work. Based on a preliminary patch from David Kerns. Signed-off-by: Jean Delvare <jdelvare@xxxxxxx> --- tools/i2cdetect.8 | 6 ++++++ tools/i2cdetect.c | 3 ++- tools/i2cdump.8 | 6 ++++++ tools/i2cdump.c | 3 ++- tools/i2cget.8 | 6 ++++++ tools/i2cget.c | 3 ++- tools/i2cset.8 | 6 ++++++ tools/i2cset.c | 3 ++- 8 files changed, 32 insertions(+), 4 deletions(-) --- i2c-tools.orig/tools/i2cdetect.8 2020-09-17 14:29:28.275299253 +0200 +++ i2c-tools/tools/i2cdetect.8 2022-05-06 16:00:21.370647957 +0200 @@ -18,6 +18,9 @@ i2cdetect \- detect I2C chips .I -V .br .B i2cdetect +.I -h +.br +.B i2cdetect .I -l .SH DESCRIPTION @@ -78,6 +81,9 @@ Display the list of functionalities impl .B "\-V" Display the version and exit. .TP +.B "\-h" +Display the help and exit. +.TP .B "\-l" Output a list of installed busses. --- i2c-tools.orig/tools/i2cdetect.c 2022-05-06 15:53:46.597938799 +0200 +++ i2c-tools/tools/i2cdetect.c 2022-05-06 16:00:48.922977347 +0200 @@ -242,9 +242,10 @@ int main(int argc, char *argv[]) first = 0x00; last = 0x7F; break; + case 'h': case '?': help(); - exit(1); + exit(opt == '?'); } } --- i2c-tools.orig/tools/i2cdump.8 2021-07-22 16:39:29.619547310 +0200 +++ i2c-tools/tools/i2cdump.8 2022-05-06 15:59:58.930379681 +0200 @@ -14,6 +14,9 @@ i2cdump \- examine I2C registers .br .B i2cdump .B -V +.br +.B i2cdump +.B -h .SH DESCRIPTION i2cdump is a small helper program to examine registers @@ -24,6 +27,9 @@ visible through the I2C bus. .B -V Display the version and exit. .TP +.B -h +Display the help and exit. +.TP .B -f Force access to the device even if it is already busy. By default, i2cdump will refuse to access a device which is already under the control of a --- i2c-tools.orig/tools/i2cdump.c 2022-05-06 15:53:46.599938823 +0200 +++ i2c-tools/tools/i2cdump.c 2022-05-06 16:00:53.196028432 +0200 @@ -123,9 +123,10 @@ int main(int argc, char *argv[]) case 'r': range = optarg; break; case 'y': yes = 1; break; case 'a': all_addrs = 1; break; + case 'h': case '?': help(); - exit(1); + exit(opt == '?'); } } --- i2c-tools.orig/tools/i2cget.8 2022-05-03 08:04:39.334978310 +0200 +++ i2c-tools/tools/i2cget.8 2022-05-06 15:58:15.488144365 +0200 @@ -13,6 +13,9 @@ i2cget \- read from I2C/SMBus chip regis .br .B i2cget .B -V +.br +.B i2cget +.B -h .SH DESCRIPTION i2cget is a small helper program to read registers visible through the I2C @@ -23,6 +26,9 @@ bus (or SMBus). .B -V Display the version and exit. .TP +.B -h +Display the help and exit. +.TP .B -f Force access to the device even if it is already busy. By default, i2cget will refuse to access a device which is already under the control of a --- i2c-tools.orig/tools/i2cget.c 2022-05-06 15:53:46.600938834 +0200 +++ i2c-tools/tools/i2cget.c 2022-05-06 16:00:55.894060687 +0200 @@ -192,9 +192,10 @@ int main(int argc, char *argv[]) case 'f': force = 1; break; case 'y': yes = 1; break; case 'a': all_addrs = 1; break; + case 'h': case '?': help(); - exit(1); + exit(opt == '?'); } } --- i2c-tools.orig/tools/i2cset.8 2020-09-17 14:29:28.278299294 +0200 +++ i2c-tools/tools/i2cset.8 2022-05-06 15:58:41.228451225 +0200 @@ -18,6 +18,9 @@ i2cset \- set I2C registers .br .B i2cset .B -V +.br +.B i2cset +.B -h .SH DESCRIPTION i2cset is a small helper program to set registers visible through the I2C @@ -28,6 +31,9 @@ bus. .B -V Display the version and exit. .TP +.B -h +Display the help and exit. +.TP .B -f Force access to the device even if it is already busy. By default, i2cset will refuse to access a device which is already under the control of a --- i2c-tools.orig/tools/i2cset.c 2022-05-06 15:53:46.600938834 +0200 +++ i2c-tools/tools/i2cset.c 2022-05-06 16:00:43.398911306 +0200 @@ -176,9 +176,10 @@ int main(int argc, char *argv[]) case 'm': maskp = optarg; break; case 'r': readback = 1; break; case 'a': all_addrs = 1; break; + case 'h': case '?': help(); - exit(1); + exit(opt == '?'); } } -- Jean Delvare SUSE L3 Support