public inbox for [email protected]
help / color / mirror / Atom feedFrom: Alvaro Herrera <[email protected]>
Subject: [PATCH] Tweak xheader_width input parsing
Date: Fri, 19 May 2023 12:58:54 +0200
Don't throw away the previous value when an invalid value is proposed.
Also, change the error messages to not need separate translations.
While at it, change pager_min_lines to also avoid changing the setting
when an invalid value is given.
---
src/bin/psql/command.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 607a57715a3..07c5f026b9b 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -4521,13 +4521,16 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
popt->topt.expanded_header_width_type = PRINT_XHEADER_PAGE;
else
{
- popt->topt.expanded_header_width_type = PRINT_XHEADER_EXACT_WIDTH;
- popt->topt.expanded_header_exact_width = atoi(value);
- if (popt->topt.expanded_header_exact_width == 0)
+ int intval = atoi(value);
+
+ if (intval == 0)
{
pg_log_error("\\pset: allowed xheader_width values are full (default), column, page, or a number specifying the exact width.");
return false;
}
+
+ popt->topt.expanded_header_width_type = PRINT_XHEADER_EXACT_WIDTH;
+ popt->topt.expanded_header_exact_width = intval;
}
}
@@ -4660,8 +4663,9 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
/* set minimum lines for pager use */
else if (strcmp(param, "pager_min_lines") == 0)
{
- if (value)
- popt->topt.pager_min_lines = atoi(value);
+ if (value &&
+ !ParseVariableNum(value, "pager_min_lines", &popt->topt.pager_min_lines))
+ return false;
}
/* disable "(x rows)" footer */
@@ -4727,11 +4731,11 @@ printPsetInfo(const char *param, printQueryOpt *popt)
else if (strcmp(param, "xheader_width") == 0)
{
if (popt->topt.expanded_header_width_type == PRINT_XHEADER_FULL)
- printf(_("Expanded header width is 'full'.\n"));
+ printf(_("Expanded header width is '%s'.\n"), "full");
else if (popt->topt.expanded_header_width_type == PRINT_XHEADER_COLUMN)
- printf(_("Expanded header width is 'column'.\n"));
+ printf(_("Expanded header width is '%s'.\n"), "column");
else if (popt->topt.expanded_header_width_type == PRINT_XHEADER_PAGE)
- printf(_("Expanded header width is 'page'.\n"));
+ printf(_("Expanded header width is '%s'.\n"), "page");
else if (popt->topt.expanded_header_width_type == PRINT_XHEADER_EXACT_WIDTH)
printf(_("Expanded header width is %d.\n"), popt->topt.expanded_header_exact_width);
}
base-commit: 0b8ace8d773257fffeaceda196ed94877c2b74df
--
2.39.2
--7dltxkhfrj6skipq--
view thread (18+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [PATCH] Tweak xheader_width input parsing
In-Reply-To: <no-message-id-1856636@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox