tui: Fix newterm call for older ncurses

Message ID 1415107885-18095-1-git-send-email-simon.marchi@ericsson.com
State Committed
Headers

Commit Message

Simon Marchi Nov. 4, 2014, 1:31 p.m. UTC
  Older versions of ncurses' newterm can't take NULL for their ofp and ifp
parameters. Newer versions can, and they fall back on stdout/stdin if
that is the case.

This patch explicitely passes stdout/stdin to the call to newterm to
avoid segfaulting with older ncurses.

Reference: https://sourceware.org/ml/gdb-patches/2014-11/msg00055.html

gdb/Changelog:

2014-11-04  Simon Marchi  <simon.marchi@ericsson.com>

	* tui/tui.c (tui_enable): Pass pass stdout and stdin to newterm.
---
 gdb/tui/tui.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Pedro Alves Nov. 4, 2014, 7:08 p.m. UTC | #1
On 11/04/2014 01:31 PM, Simon Marchi wrote:
> Older versions of ncurses' newterm can't take NULL for their ofp and ifp
> parameters. Newer versions can, and they fall back on stdout/stdin if
> that is the case.
> 
> This patch explicitely passes stdout/stdin to the call to newterm to

"explicitly"

> avoid segfaulting with older ncurses.
> 
> Reference: https://sourceware.org/ml/gdb-patches/2014-11/msg00055.html
> 

OK.

> gdb/Changelog:
> 
> 2014-11-04  Simon Marchi  <simon.marchi@ericsson.com>
> 
> 	* tui/tui.c (tui_enable): Pass pass stdout and stdin to newterm.

Double "pass".

Thanks,
Pedro Alves
  
Simon Marchi Nov. 4, 2014, 7:17 p.m. UTC | #2
On 2014-11-04 02:08 PM, Pedro Alves wrote:
> On 11/04/2014 01:31 PM, Simon Marchi wrote:
>> Older versions of ncurses' newterm can't take NULL for their ofp and ifp
>> parameters. Newer versions can, and they fall back on stdout/stdin if
>> that is the case.
>>
>> This patch explicitely passes stdout/stdin to the call to newterm to
> 
> "explicitly"
> 
>> avoid segfaulting with older ncurses.
>>
>> Reference: https://sourceware.org/ml/gdb-patches/2014-11/msg00055.html
>>
> 
> OK.
> 
>> gdb/Changelog:
>>
>> 2014-11-04  Simon Marchi  <simon.marchi@ericsson.com>
>>
>> 	* tui/tui.c (tui_enable): Pass pass stdout and stdin to newterm.
> 
> Double "pass".
> 
> Thanks,
> Pedro Alves

Pushed with the fixes to the commit message and ChangeLog, thanks.
  

Patch

diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index cb85fb0..12ddab3 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -424,7 +424,7 @@  tui_enable (void)
       if (!ui_file_isatty (gdb_stdout))
 	error (_("Cannot enable the TUI when output is not a terminal"));
 
-      s = newterm (NULL, NULL, NULL);
+      s = newterm (NULL, stdout, stdin);
       if (s == NULL)
 	{
 	  error (_("Cannot enable the TUI: error opening terminal [TERM=%s]"),