Use sudo_get_ttysize() in help() and usage().
This eliminates a dependency on the user_details global.
This commit is contained in:
@@ -711,7 +711,7 @@ usage_out(const char *buf)
|
|||||||
* The actual usage strings are in sudo_usage.h for configure substitution.
|
* The actual usage strings are in sudo_usage.h for configure substitution.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
display_usage(int (*output)(const char *))
|
display_usage(int (*output)(const char *), int cols)
|
||||||
{
|
{
|
||||||
struct sudo_lbuf lbuf;
|
struct sudo_lbuf lbuf;
|
||||||
const char *uvec[6];
|
const char *uvec[6];
|
||||||
@@ -738,8 +738,7 @@ display_usage(int (*output)(const char *))
|
|||||||
* tty width.
|
* tty width.
|
||||||
*/
|
*/
|
||||||
ulen = (int)strlen(getprogname()) + 8;
|
ulen = (int)strlen(getprogname()) + 8;
|
||||||
sudo_lbuf_init(&lbuf, output, ulen, NULL,
|
sudo_lbuf_init(&lbuf, output, ulen, NULL, cols);
|
||||||
user_details.ts_cols);
|
|
||||||
for (i = 0; uvec[i] != NULL; i++) {
|
for (i = 0; uvec[i] != NULL; i++) {
|
||||||
sudo_lbuf_append(&lbuf, "usage: %s%s", getprogname(), uvec[i]);
|
sudo_lbuf_append(&lbuf, "usage: %s%s", getprogname(), uvec[i]);
|
||||||
sudo_lbuf_print(&lbuf);
|
sudo_lbuf_print(&lbuf);
|
||||||
@@ -753,7 +752,10 @@ display_usage(int (*output)(const char *))
|
|||||||
void
|
void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
display_usage(usage_err);
|
int rows, cols;
|
||||||
|
|
||||||
|
sudo_get_ttysize(&rows, &cols);
|
||||||
|
display_usage(usage_err, cols);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -790,9 +792,11 @@ help(void)
|
|||||||
const int indent = 32;
|
const int indent = 32;
|
||||||
const char *pname = getprogname();
|
const char *pname = getprogname();
|
||||||
bool sudoedit = false;
|
bool sudoedit = false;
|
||||||
|
int rows, cols;
|
||||||
debug_decl(help, SUDO_DEBUG_ARGS);
|
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) {
|
if (strcmp(pname, "sudoedit") == 0) {
|
||||||
sudoedit = true;
|
sudoedit = true;
|
||||||
sudo_lbuf_append(&lbuf, _("%s - edit files as another user\n\n"), pname);
|
sudo_lbuf_append(&lbuf, _("%s - edit files as another user\n\n"), pname);
|
||||||
@@ -801,7 +805,7 @@ help(void)
|
|||||||
}
|
}
|
||||||
sudo_lbuf_print(&lbuf);
|
sudo_lbuf_print(&lbuf);
|
||||||
|
|
||||||
display_usage(usage_out);
|
display_usage(usage_out, cols);
|
||||||
|
|
||||||
sudo_lbuf_append(&lbuf, "%s", _("\nOptions:\n"));
|
sudo_lbuf_append(&lbuf, "%s", _("\nOptions:\n"));
|
||||||
sudo_lbuf_append(&lbuf, " -A, --askpass %s\n",
|
sudo_lbuf_append(&lbuf, " -A, --askpass %s\n",
|
||||||
|
Reference in New Issue
Block a user