libncurses: Import https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz changes

Change-Id: I3433d30ca01359fd2e3623ede96b531f0b39cbfa
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/menu/m_global.c b/menu/m_global.c
index fc4103c..4bc8ef8 100644
--- a/menu/m_global.c
+++ b/menu/m_global.c
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc.              *
+ * Copyright 2020-2021,2023 Thomas E. Dickey                                *
+ * Copyright 1998-2012,2014 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,11 +38,11 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_global.c,v 1.28 2014/03/15 20:37:22 tom Exp $")
+MODULE_ID("$Id: m_global.c,v 1.34 2023/09/16 16:39:26 tom Exp $")
 
 static char mark[] = "-";
 /* *INDENT-OFF* */
-NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
+MENU_EXPORT_VAR(MENU) _nc_Default_Menu = {
   16,				  /* Nr. of chars high */
   1,				  /* Nr. of chars wide */
   16,				  /* Nr. of items high */
@@ -53,7 +54,7 @@
   0,				  /* length of widest description */
   1,				  /* length of mark */
   1,				  /* length of one item */
-  1,                              /* Spacing for descriptor */ 
+  1,                              /* Spacing for descriptor */
   1,                              /* Spacing for columns */
   1,                              /* Spacing for rows */
   (char *)0,			  /* buffer used to store match chars */
@@ -68,7 +69,7 @@
   0,				  /* Top row of menu */
   (chtype)A_REVERSE,		  /* Attribute for selection */
   (chtype)A_NORMAL,		  /* Attribute for nonselection */
-  (chtype)A_UNDERLINE,		  /* Attribute for inactive */	
+  (chtype)A_UNDERLINE,		  /* Attribute for inactive */
   ' ',  			  /* Pad character */
   (Menu_Hook)0,			  /* Menu init */
   (Menu_Hook)0,			  /* Menu term */
@@ -77,10 +78,10 @@
   (void *)0,			  /* userptr */
   mark,				  /* mark */
   ALL_MENU_OPTS,                  /* options */
-  0			          /* status */	    
+  0			          /* status */
 };
 
-NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
+MENU_EXPORT_VAR(ITEM) _nc_Default_Item = {
   { (char *)0, 0 },		  /* name */
   { (char *)0, 0 },		  /* description */
   (MENU *)0,		          /* Pointer to parent menu */
@@ -98,26 +99,26 @@
 /* *INDENT-ON* */
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  static void ComputeMaximum_NameDesc_Lenths(MENU *menu)
-|   
+|
 |   Description   :  Calculates the maximum name and description lengths
 |                    of the items connected to the menu
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_INLINE static void
-ComputeMaximum_NameDesc_Lengths(MENU * menu)
+ComputeMaximum_NameDesc_Lengths(MENU *menu)
 {
   unsigned MaximumNameLength = 0;
   unsigned MaximumDescriptionLength = 0;
   ITEM **items;
-  unsigned check;
 
   assert(menu && menu->items);
   for (items = menu->items; *items; items++)
     {
-      check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
+      unsigned check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
+
       if (check > MaximumNameLength)
 	MaximumNameLength = check;
 
@@ -132,16 +133,16 @@
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  static void ResetConnectionInfo(MENU *, ITEM **)
-|   
-|   Description   :  Reset all informations in the menu and the items in
+|
+|   Description   :  Reset all information in the menu and the items in
 |                    the item array that indicates a connection
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_INLINE static void
-ResetConnectionInfo(MENU * menu, ITEM ** items)
+ResetConnectionInfo(MENU *menu, ITEM **items)
 {
   ITEM **item;
 
@@ -149,18 +150,18 @@
   for (item = items; *item; item++)
     {
       (*item)->index = 0;
-      (*item)->imenu = (MENU *) 0;
+      (*item)->imenu = (MENU *)0;
     }
   if (menu->pattern)
     free(menu->pattern);
   menu->pattern = (char *)0;
   menu->pindex = 0;
-  menu->items = (ITEM **) 0;
+  menu->items = (ITEM **)0;
   menu->nitems = 0;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  bool _nc_Connect_Items(MENU *menu, ITEM **items)
 |
 |   Description   :  Connect the items in the item array to the menu.
@@ -170,14 +171,15 @@
 |   Return Values :  TRUE       - successful connection
 |                    FALSE      - connection failed
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-_nc_Connect_Items(MENU * menu, ITEM ** items)
+MENU_EXPORT(bool)
+_nc_Connect_Items(MENU *menu, ITEM **items)
 {
-  ITEM **item;
   unsigned int ItemCount = 0;
 
   if (menu && items)
     {
+      ITEM **item;
+
       for (item = items; *item; item++)
 	{
 	  if ((*item)->imenu)
@@ -218,37 +220,37 @@
 	}
     }
 
-  /* If we fall through to this point, we have to reset all items connection 
+  /* If we fall through to this point, we have to reset all items connection
      and inform about a reject connection */
   ResetConnectionInfo(menu, items);
   return (FALSE);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_Disconnect_Items(MENU *menu)
-|   
+|
 |   Description   :  Disconnect the menus item array from the menu
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Disconnect_Items(MENU * menu)
+MENU_EXPORT(void)
+_nc_Disconnect_Items(MENU *menu)
 {
   if (menu && menu->items)
     ResetConnectionInfo(menu, menu->items);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  int _nc_Calculate_Text_Width(const TEXT * item)
-|   
+|
 |   Description   :  Calculate the number of columns for a TEXT.
 |
 |   Return Values :  the width
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Calculate_Text_Width(const TEXT * item /*FIXME: limit length */ )
+MENU_EXPORT(int)
+_nc_Calculate_Text_Width(const TEXT *item /*FIXME: limit length */ )
 {
 #if USE_WIDEC_SUPPORT
   int result = item->length;
@@ -288,26 +290,22 @@
  */
 #if USE_WIDEC_SUPPORT
 static int
-calculate_actual_width(MENU * menu, bool name)
+calculate_actual_width(MENU *menu, bool name)
 {
   int width = 0;
-  int check = 0;
-  ITEM **items;
 
   assert(menu && menu->items);
 
   if (menu->items != 0)
     {
+      ITEM **items;
+
       for (items = menu->items; *items; items++)
 	{
-	  if (name)
-	    {
-	      check = _nc_Calculate_Text_Width(&((*items)->name));
-	    }
-	  else
-	    {
-	      check = _nc_Calculate_Text_Width(&((*items)->description));
-	    }
+	  int check = (name
+		       ? _nc_Calculate_Text_Width(&((*items)->name))
+		       : _nc_Calculate_Text_Width(&((*items)->description)));
+
 	  if (check > width)
 	    width = check;
 	}
@@ -328,16 +326,16 @@
 #endif
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_Calculate_Item_Length_and_Width(MENU *menu)
-|   
+|
 |   Description   :  Calculate the length of an item and the width of the
 |                    whole menu.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Calculate_Item_Length_and_Width(MENU * menu)
+MENU_EXPORT(void)
+_nc_Calculate_Item_Length_and_Width(MENU *menu)
 {
   int l;
 
@@ -366,21 +364,21 @@
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_Link_Item(MENU *menu)
-|   
+|
 |   Description   :  Statically calculate for every item its four neighbors.
 |                    This depends on the orientation of the menu. This
 |                    static approach simplifies navigation in the menu a lot.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Link_Items(MENU * menu)
+MENU_EXPORT(void)
+_nc_Link_Items(MENU *menu)
 {
   if (menu && menu->items && *(menu->items))
     {
-      int i, j;
+      int i;
       ITEM *item;
       int Number_Of_Items = menu->nitems;
       int col = 0, row = 0;
@@ -407,14 +405,14 @@
 		(cycle ? menu->items[(Last_in_Row >= Number_Of_Items) ?
 				     Number_Of_Items - 1 :
 				     Last_in_Row] :
-		 (ITEM *) 0);
+		 (ITEM *)0);
 
 	      item->right = ((col < (Number_Of_Columns - 1)) &&
 			     ((i + 1) < Number_Of_Items)
 		)?
 		menu->items[i + 1] :
 		(cycle ? menu->items[row * Number_Of_Columns] :
-		 (ITEM *) 0
+		 (ITEM *)0
 		);
 
 	      Last_in_Column = (menu->rows - 1) * Number_Of_Columns + col;
@@ -423,14 +421,14 @@
 		(cycle ? menu->items[(Last_in_Column >= Number_Of_Items) ?
 				     Number_Of_Items - 1 :
 				     Last_in_Column] :
-		 (ITEM *) 0);
+		 (ITEM *)0);
 
 	      item->down = ((i + Number_Of_Columns) < Number_Of_Items)
 		?
 		menu->items[i + Number_Of_Columns] :
 		(cycle ? menu->items[(row + 1) < menu->rows ?
 				     Number_Of_Items - 1 : col] :
-		 (ITEM *) 0);
+		 (ITEM *)0);
 	      item->x = (short)col;
 	      item->y = (short)row;
 	      if (++col == Number_Of_Columns)
@@ -443,6 +441,7 @@
       else
 	{
 	  int Number_Of_Rows = menu->rows;
+	  int j;
 
 	  for (j = 0; j < Number_Of_Items; j++)
 	    {
@@ -455,12 +454,12 @@
 		(cycle ? (Last_in_Column >= Number_Of_Items) ?
 		 menu->items[Last_in_Column - Number_Of_Rows] :
 		 menu->items[Last_in_Column] :
-		 (ITEM *) 0);
+		 (ITEM *)0);
 
 	      item->right = ((i + Number_Of_Rows) < Number_Of_Items)
 		?
 		menu->items[i + Number_Of_Rows] :
-		(cycle ? menu->items[row] : (ITEM *) 0);
+		(cycle ? menu->items[row] : (ITEM *)0);
 
 	      Last_in_Row = col * Number_Of_Rows + (Number_Of_Rows - 1);
 
@@ -470,7 +469,7 @@
 		 menu->items[(Last_in_Row >= Number_Of_Items) ?
 			     Number_Of_Items - 1 :
 			     Last_in_Row] :
-		 (ITEM *) 0);
+		 (ITEM *)0);
 
 	      item->down = (row < (Number_Of_Rows - 1))
 		?
@@ -479,7 +478,7 @@
 			     (col - 1) * Number_Of_Rows + row + 1]) :
 		(cycle ?
 		 menu->items[col * Number_Of_Rows] :
-		 (ITEM *) 0
+		 (ITEM *)0
 		);
 
 	      item->x = (short)col;
@@ -495,22 +494,22 @@
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_Show_Menu(const MENU* menu)
-|   
+|
 |   Description   :  Update the window that is associated with the menu
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Show_Menu(const MENU * menu)
+MENU_EXPORT(void)
+_nc_Show_Menu(const MENU *menu)
 {
-  WINDOW *win;
-  int maxy, maxx;
-
   assert(menu);
   if ((menu->status & _POSTED) && !(menu->status & _IN_DRIVER))
     {
+      WINDOW *win;
+      int maxy, maxx;
+
       /* adjust the internal subwindow to start on the current top */
       assert(menu->sub);
       mvderwin(menu->sub, menu->spc_rows * menu->toprow, 0);
@@ -530,31 +529,31 @@
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_New_TopRow_and_CurrentItem(
-|                            MENU *menu, 
-|                            int new_toprow, 
+|                            MENU *menu,
+|                            int new_toprow,
 |                            ITEM *new_current_item)
-|   
+|
 |   Description   :  Redisplay the menu so that the given row becomes the
 |                    top row and the given item becomes the new current
 |                    item.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
+MENU_EXPORT(void)
 _nc_New_TopRow_and_CurrentItem(
-				MENU * menu,
+				MENU *menu,
 				int new_toprow,
-				ITEM * new_current_item)
+				ITEM *new_current_item)
 {
-  ITEM *cur_item;
-  bool mterm_called = FALSE;
-  bool iterm_called = FALSE;
-
   assert(menu);
   if (menu->status & _POSTED)
     {
+      ITEM *cur_item;
+      bool mterm_called = FALSE;
+      bool iterm_called = FALSE;
+
       if (new_current_item != menu->curitem)
 	{
 	  Call_Hook(menu, itemterm);
@@ -569,7 +568,7 @@
       cur_item = menu->curitem;
       assert(cur_item);
       menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
-			     ? min(menu->rows - menu->frows, new_toprow)
+			     ? Min(menu->rows - menu->frows, new_toprow)
 			     : 0);
       menu->curitem = new_current_item;
 
@@ -593,7 +592,7 @@
   else
     {				/* if we are not posted, this is quite simple */
       menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
-			     ? min(menu->rows - menu->frows, new_toprow)
+			     ? Min(menu->rows - menu->frows, new_toprow)
 			     : 0);
       menu->curitem = new_current_item;
     }