Module Name:    src
Committed By:   christos
Date:           Mon Dec 16 19:40:50 UTC 2024

Modified Files:
        src/external/gpl3/gdb/dist/gdb/tui: tui-winsource.c

Log Message:
Add macros so that the getmax{x,y} functions work like ncurses (don't core
dump on NULL window, but return -1)


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c
diff -u src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c:1.7 src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c:1.8
--- src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c:1.7	Sun Dec 15 11:21:57 2024
+++ src/external/gpl3/gdb/dist/gdb/tui/tui-winsource.c	Mon Dec 16 14:40:50 2024
@@ -41,6 +41,10 @@
 #include "tui/tui-location.h"
 #include "gdb_curses.h"
 
+/* ncurses returns -1, but BSD segfaults; the code assumes ncurses */
+#define tui_getmaxx(w)	((w) ? getmaxx (w) : -1)
+#define tui_getmaxy(w)	((w) ? getmaxy (w) : -1)
+
 /* Function to display the "main" routine.  */
 void
 tui_display_main ()
@@ -316,7 +320,7 @@ tui_source_window_base::refresh_window (
      the screen, potentially creating a flicker.  */
   wnoutrefresh (handle.get ());
 
-  int pad_width = m_pad.get () ? getmaxx (m_pad.get ()) : 0;
+  int pad_width = tui_getmaxx (m_pad.get ());
   int left_margin = this->left_margin ();
   int view_width = this->view_width ();
   int content_width = m_max_length;
@@ -365,10 +369,10 @@ tui_source_window_base::show_source_cont
   /* If the required pad width is wider than the previously requested pad
      width, then we might want to grow the pad.  */
   if (required_pad_width > m_pad_requested_width
-      || required_pad_height > getmaxy (m_pad.get ()))
+      || required_pad_height > tui_getmaxy (m_pad.get ()))
     {
       /* The current pad width.  */
-      int pad_width = m_pad == nullptr ? 0 : getmaxx (m_pad.get ());
+      int pad_width = m_pad == nullptr ? 0 : tui_getmaxx (m_pad.get ());
 
       gdb_assert (pad_width <= m_pad_requested_width);
 
@@ -377,7 +381,7 @@ tui_source_window_base::show_source_cont
 	 bigger pad.  There's no point asking again, so we'll just make so
 	 with the pad we currently have.  */
       if (pad_width == m_pad_requested_width
-	  || required_pad_height > getmaxy (m_pad.get ()))
+	  || required_pad_height > tui_getmaxy (m_pad.get ()))
 	{
 	  pad_width = required_pad_width;
 
@@ -399,7 +403,7 @@ tui_source_window_base::show_source_cont
 
       m_pad_requested_width = required_pad_width;
       tui_debug_printf ("requested width %d, allocated width %d",
-			required_pad_width, getmaxx (m_pad.get ()));
+			required_pad_width, tui_getmaxx (m_pad.get ()));
     }
 
   gdb_assert (m_pad != nullptr);
@@ -534,7 +538,7 @@ tui_source_window_base::validate_scroll_
     m_horizontal_offset = 0;
 
   int content_width = m_max_length;
-  int pad_width = getmaxx (m_pad.get ());
+  int pad_width = tui_getmaxx (m_pad.get ());
   int view_width = this->view_width ();
 
   tui_debug_printf ("pad_width = %d, view_width = %d, content_width = %d",

Reply via email to