diff options
author | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-03-25 16:27:44 -0600 |
---|---|---|
committer | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-03-25 16:27:44 -0600 |
commit | 63024d1acd46e4f07adb3c03bb42f59f895fd4b0 (patch) | |
tree | 2dfe34689b2c41b5e749b872cc514cc8b1f00a4f | |
parent | 679e1cfc2e48eb7d30dfeefc962b3763f40acbf5 (diff) | |
download | sudo-63024d1acd46e4f07adb3c03bb42f59f895fd4b0.tar.gz |
Use sudo_get_ttysize() in help() and usage().
This eliminates a dependency on the user_details global.
-rw-r--r-- | src/parse_args.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/parse_args.c b/src/parse_args.c index dcd12c61f..8e3d62e10 100644 --- a/src/parse_args.c +++ b/src/parse_args.c @@ -711,7 +711,7 @@ usage_out(const char *buf) * The actual usage strings are in sudo_usage.h for configure substitution. */ static void -display_usage(int (*output)(const char *)) +display_usage(int (*output)(const char *), int cols) { struct sudo_lbuf lbuf; const char *uvec[6]; @@ -738,8 +738,7 @@ display_usage(int (*output)(const char *)) * tty width. */ ulen = (int)strlen(getprogname()) + 8; - sudo_lbuf_init(&lbuf, output, ulen, NULL, - user_details.ts_cols); + sudo_lbuf_init(&lbuf, output, ulen, NULL, cols); for (i = 0; uvec[i] != NULL; i++) { sudo_lbuf_append(&lbuf, "usage: %s%s", getprogname(), uvec[i]); sudo_lbuf_print(&lbuf); @@ -753,7 +752,10 @@ display_usage(int (*output)(const char *)) void usage(void) { - display_usage(usage_err); + int rows, cols; + + sudo_get_ttysize(&rows, &cols); + display_usage(usage_err, cols); exit(EXIT_FAILURE); } @@ -790,9 +792,11 @@ help(void) const int indent = 32; const char *pname = getprogname(); bool sudoedit = false; + int rows, cols; debug_decl(help, SUDO_DEBUG_ARGS); - sudo_lbuf_init(&lbuf, usage_out, indent, NULL, user_details.ts_cols); + sudo_get_ttysize(&rows, &cols); + sudo_lbuf_init(&lbuf, usage_out, indent, NULL, cols); if (strcmp(pname, "sudoedit") == 0) { sudoedit = true; sudo_lbuf_append(&lbuf, _("%s - edit files as another user\n\n"), pname); @@ -801,7 +805,7 @@ help(void) } sudo_lbuf_print(&lbuf); - display_usage(usage_out); + display_usage(usage_out, cols); sudo_lbuf_append(&lbuf, "%s", _("\nOptions:\n")); sudo_lbuf_append(&lbuf, " -A, --askpass %s\n", |