ncurses 6.2 - patch 20201017
[ncurses.git] / menu / m_cursor.c
index 11011dc12388c6cd656f37cdc087119efbf126d6..fe50667c45b4c35a9af423f5097a71e32883f7b7 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998-2009,2010 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            *
 
 /***************************************************************************
 * Module m_cursor                                                          *
-* Correctly position a menus cursor                                        *
+* Correctly position a menu's cursor                                       *
 ***************************************************************************/
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_cursor.c,v 1.16 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.24 2020/05/24 01:40:20 anonymous.maarten Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -49,25 +50,24 @@ MODULE_ID("$Id: m_cursor.c,v 1.16 2003/10/25 15:23:42 tom Exp $")
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_menu_cursor_pos
-(const MENU* menu, const ITEM* item, int* pY, int* pX)
+MENU_EXPORT(int)
+_nc_menu_cursor_pos(const MENU * menu, const ITEM * item, int *pY, int *pX)
 {
   if (!menu || !pX || !pY)
-    return(E_BAD_ARGUMENT);
+    return (E_BAD_ARGUMENT);
   else
     {
-      if ((ITEM*)0 == item)
+      if ((ITEM *) 0 == item)
        item = menu->curitem;
-      assert(item!=(ITEM*)0);
+      assert(item != (ITEM *) 0);
 
-      if ( !( menu->status & _POSTED ) )
-       return(E_NOT_POSTED);
+      if (!(menu->status & _POSTED))
+       return (E_NOT_POSTED);
 
       *pX = item->x * (menu->spc_cols + menu->itemlen);
       *pY = (item->y - menu->toprow) * menu->spc_rows;
     }
-  return(E_OK);
+  return (E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -80,25 +80,27 @@ _nc_menu_cursor_pos
 |                    E_BAD_ARGUMENT  - invalid menu
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-pos_menu_cursor (const MENU * menu)
+MENU_EXPORT(int)
+pos_menu_cursor(const MENU * menu)
 {
   WINDOW *win, *sub;
-  int x, y;
-  int err = _nc_menu_cursor_pos(menu,(ITEM*)0,&y,&x);
+  int x = 0, y = 0;
+  int err = _nc_menu_cursor_pos(menu, (ITEM *) 0, &y, &x);
 
-  if (E_OK==err)
+  T((T_CALLED("pos_menu_cursor(%p)"), (const void *)menu));
+
+  if (E_OK == err)
     {
-      win = menu->userwin ? menu->userwin : stdscr;
+      win = Get_Menu_UserWin(menu);
       sub = menu->usersub ? menu->usersub : win;
       assert(win && sub);
 
       if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
-       x += ( menu->pindex + menu->marklen - 1);
+       x += (menu->pindex + menu->marklen - 1);
 
-      wmove(sub,y,x);
+      wmove(sub, y, x);
 
-      if ( win != sub )
+      if (win != sub)
        {
          wcursyncup(sub);
          wsyncup(sub);