summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@sudo.ws>2023-03-25 16:27:44 -0600
committerTodd C. Miller <Todd.Miller@sudo.ws>2023-03-25 16:27:44 -0600
commit63024d1acd46e4f07adb3c03bb42f59f895fd4b0 (patch)
tree2dfe34689b2c41b5e749b872cc514cc8b1f00a4f
parent679e1cfc2e48eb7d30dfeefc962b3763f40acbf5 (diff)
downloadsudo-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.c16
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",