aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-12-16 10:39:17 +0100
committerTom de Vries <tdevries@suse.de>2023-12-16 10:39:17 +0100
commit14e61dbbbbb50e2b48834ba489942931514e7ff5 (patch)
treea2edd6badb675373ce2b2657b67a276e438aca56
parent86a6f9a9fb112614c15cc17630b29fbc62d3bca5 (diff)
downloadfsf-binutils-gdb-14e61dbbbbb50e2b48834ba489942931514e7ff5.zip
fsf-binutils-gdb-14e61dbbbbb50e2b48834ba489942931514e7ff5.tar.gz
fsf-binutils-gdb-14e61dbbbbb50e2b48834ba489942931514e7ff5.tar.bz2
[gdb/build] Remove dependency on _rl_term_autowrap
Commit deb1ba4e38b ("[gdb/tui] Fix TUI resizing for TERM=ansi") introduced a dependency on readline private variable _rl_term_autowrap. There is precedent for this, but it's something we want to get rid of (PR build/10723). Remove the dependency on _rl_term_autowrap, and instead calculate readline_hidden_cols by comparing the environment variable COLS with cols as returned by rl_get_screen_size. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=10723
-rw-r--r--gdb/utils.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/gdb/utils.c b/gdb/utils.c
index 5ec8c56..9ae9494 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1110,10 +1110,6 @@ static bool filter_initialized = false;
-/* See readline's rlprivate.h. */
-
-extern "C" int _rl_term_autowrap;
-
/* See utils.h. */
int readline_hidden_cols = 0;
@@ -1154,10 +1150,17 @@ init_page_info (void)
(because rl_change_environment defaults to 1)
- may report one less than the detected screen width in
rl_get_screen_size (when _rl_term_autowrap == 0).
- We could set readline_hidden_cols by comparing COLUMNS to cols as
- returned by rl_get_screen_size, but instead simply use
- _rl_term_autowrap. */
- readline_hidden_cols = _rl_term_autowrap ? 0 : 1;
+ We could use _rl_term_autowrap, but we want to avoid introducing
+ another dependency on readline private variables, so set
+ readline_hidden_cols by comparing COLUMNS to cols as returned by
+ rl_get_screen_size. */
+ const char *columns_env_str = getenv ("COLUMNS");
+ gdb_assert (columns_env_str != nullptr);
+ int columns_env_val = atoi (columns_env_str);
+ gdb_assert (columns_env_val != 0);
+ readline_hidden_cols = columns_env_val - cols;
+ gdb_assert (readline_hidden_cols >= 0);
+ gdb_assert (readline_hidden_cols <= 1);
lines_per_page = rows;
chars_per_line = cols + readline_hidden_cols;