diff options
Diffstat (limited to 'menu')
| -rw-r--r-- | menu/Makefile.in | 17 | ||||
| -rw-r--r-- | menu/READ.ME | 6 | ||||
| -rw-r--r-- | menu/llib-lmenu | 98 | ||||
| -rw-r--r-- | menu/llib-lmenut | 98 | ||||
| -rw-r--r-- | menu/llib-lmenutw | 98 | ||||
| -rw-r--r-- | menu/llib-lmenuw | 98 | ||||
| -rw-r--r-- | menu/m_attribs.c | 38 | ||||
| -rw-r--r-- | menu/m_cursor.c | 10 | ||||
| -rw-r--r-- | menu/m_driver.c | 18 | ||||
| -rw-r--r-- | menu/m_format.c | 7 | ||||
| -rw-r--r-- | menu/m_global.c | 48 | ||||
| -rw-r--r-- | menu/m_hook.c | 44 | ||||
| -rw-r--r-- | menu/m_item_cur.c | 16 | ||||
| -rw-r--r-- | menu/m_item_nam.c | 12 | ||||
| -rw-r--r-- | menu/m_item_new.c | 34 | ||||
| -rw-r--r-- | menu/m_item_opt.c | 28 | ||||
| -rw-r--r-- | menu/m_item_top.c | 16 | ||||
| -rw-r--r-- | menu/m_item_val.c | 18 | ||||
| -rw-r--r-- | menu/m_item_vis.c | 8 | ||||
| -rw-r--r-- | menu/m_items.c | 18 | ||||
| -rw-r--r-- | menu/m_new.c | 18 | ||||
| -rw-r--r-- | menu/m_pad.c | 14 | ||||
| -rw-r--r-- | menu/m_pattern.c | 12 | ||||
| -rw-r--r-- | menu/m_post.c | 64 | ||||
| -rw-r--r-- | menu/m_req_name.c | 15 | ||||
| -rw-r--r-- | menu/m_scale.c | 10 | ||||
| -rw-r--r-- | menu/m_sub.c | 12 | ||||
| -rw-r--r-- | menu/m_win.c | 12 |
28 files changed, 455 insertions, 432 deletions
diff --git a/menu/Makefile.in b/menu/Makefile.in index fb13eb07c8ef..b623bf0eed82 100644 --- a/menu/Makefile.in +++ b/menu/Makefile.in @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.70 2020/08/29 14:50:45 tom Exp $ +# $Id: Makefile.in,v 1.71 2021/07/03 15:45:33 tom Exp $ ############################################################################## -# Copyright 2020 Thomas E. Dickey # +# Copyright 2020,2021 Thomas E. Dickey # # Copyright 1998-2015,2018 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # @@ -136,6 +136,19 @@ AUTO_SRC = \ ../include/mf_common.h ################################################################################ + +@MAKE_PHONY@.PHONY : all +@MAKE_PHONY@.PHONY : clean +@MAKE_PHONY@.PHONY : distclean +@MAKE_PHONY@.PHONY : install +@MAKE_PHONY@.PHONY : install.libs +@MAKE_PHONY@.PHONY : libs +@MAKE_PHONY@.PHONY : mostlyclean +@MAKE_PHONY@.PHONY : realclean +@MAKE_PHONY@.PHONY : sources +@MAKE_PHONY@.PHONY : uninstall +@MAKE_PHONY@.PHONY : uninstall.libs + all \ libs \ install :: $(AUTO_SRC) $(LIBRARIES) diff --git a/menu/READ.ME b/menu/READ.ME index e790f4308624..8c78037764e0 100644 --- a/menu/READ.ME +++ b/menu/READ.ME @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright 2020 Thomas E. Dickey -- +-- Copyright 2020,2021 Thomas E. Dickey -- -- Copyright 1998-2003,2006 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: READ.ME,v 1.10 2020/02/02 23:34:34 tom Exp $ +-- $Id: READ.ME,v 1.11 2021/06/17 21:20:30 tom Exp $ ------------------------------------------------------------------------------- This is a clone of the menu library that is available with typical @@ -37,7 +37,7 @@ a 386 based SVR4 implementation (ESIX). The development environment was and is an ELF based Linux system. -For things that still need doing, see the TO-DO file in the top-level +For things that still need doing, see the TO-DO file in the top-level directory. Juergen Pfeifer diff --git a/menu/llib-lmenu b/menu/llib-lmenu index 7a5a41b9a72c..67f6822376e6 100644 --- a/menu/llib-lmenu +++ b/menu/llib-lmenu @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2010,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #undef set_menu_fore int set_menu_fore( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -49,7 +49,7 @@ chtype menu_fore( #undef set_menu_back int set_menu_back( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -60,7 +60,7 @@ chtype menu_back( #undef set_menu_grey int set_menu_grey( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -73,9 +73,9 @@ chtype menu_grey( #undef _nc_menu_cursor_pos int _nc_menu_cursor_pos( - const MENU *menu, - const ITEM *item, - int *pY, + const MENU *menu, + const ITEM *item, + int *pY, int *pX) { return(*(int *)0); } @@ -88,14 +88,14 @@ int pos_menu_cursor( #undef _nc_Match_Next_Character_In_Item_Name int _nc_Match_Next_Character_In_Item_Name( - MENU *menu, - int ch, + MENU *menu, + int ch, ITEM **item) { return(*(int *)0); } #undef menu_driver int menu_driver( - MENU *menu, + MENU *menu, int c) { return(*(int *)0); } @@ -103,15 +103,15 @@ int menu_driver( #undef set_menu_format int set_menu_format( - MENU *menu, - int rows, + MENU *menu, + int rows, int cols) { return(*(int *)0); } #undef menu_format void menu_format( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { /* void */ } @@ -124,7 +124,7 @@ ITEM _nc_Default_Item; #undef _nc_Connect_Items NCURSES_BOOL _nc_Connect_Items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(NCURSES_BOOL *)0); } @@ -155,8 +155,8 @@ void _nc_Show_Menu( #undef _nc_New_TopRow_and_CurrentItem void _nc_New_TopRow_and_CurrentItem( - MENU *menu, - int new_toprow, + MENU *menu, + int new_toprow, ITEM *new_current_item) { /* void */ } @@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem( #undef set_menu_init int set_menu_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -175,7 +175,7 @@ Menu_Hook menu_init( #undef set_menu_term int set_menu_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -186,7 +186,7 @@ Menu_Hook menu_term( #undef set_item_init int set_item_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -197,7 +197,7 @@ Menu_Hook item_init( #undef set_item_term int set_item_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -210,7 +210,7 @@ Menu_Hook item_term( #undef set_current_item int set_current_item( - MENU *menu, + MENU *menu, ITEM *item) { return(*(int *)0); } @@ -240,7 +240,7 @@ const char *item_description( #undef new_item ITEM *new_item( - const char *name, + const char *name, const char *description) { return(*(ITEM **)0); } @@ -251,7 +251,7 @@ int free_item( #undef set_menu_mark int set_menu_mark( - MENU *menu, + MENU *menu, const char *mark) { return(*(int *)0); } @@ -264,19 +264,19 @@ const char *menu_mark( #undef set_item_opts int set_item_opts( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_off int item_opts_off( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_on int item_opts_on( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } @@ -289,7 +289,7 @@ Item_Options item_opts( #undef set_top_row int set_top_row( - MENU *menu, + MENU *menu, int row) { return(*(int *)0); } @@ -302,7 +302,7 @@ int top_row( #undef set_item_userptr int set_item_userptr( - ITEM *item, + ITEM *item, void *userptr) { return(*(int *)0); } @@ -315,7 +315,7 @@ void *item_userptr( #undef set_item_value int set_item_value( - ITEM *item, + ITEM *item, NCURSES_BOOL value) { return(*(int *)0); } @@ -335,7 +335,7 @@ NCURSES_BOOL item_visible( #undef set_menu_items int set_menu_items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(int *)0); } @@ -353,7 +353,7 @@ int item_count( #undef new_menu_sp MENU *new_menu_sp( - SCREEN *sp, + SCREEN *sp, ITEM **items) { return(*(MENU **)0); } @@ -371,19 +371,19 @@ int free_menu( #undef set_menu_opts int set_menu_opts( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_off int menu_opts_off( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_on int menu_opts_on( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } @@ -396,7 +396,7 @@ Menu_Options menu_opts( #undef set_menu_pad int set_menu_pad( - MENU *menu, + MENU *menu, int pad) { return(*(int *)0); } @@ -414,7 +414,7 @@ char *menu_pattern( #undef set_menu_pattern int set_menu_pattern( - MENU *menu, + MENU *menu, const char *p) { return(*(int *)0); } @@ -422,7 +422,7 @@ int set_menu_pattern( #undef _nc_Post_Item void _nc_Post_Item( - const MENU *menu, + const MENU *menu, const ITEM *item) { /* void */ } @@ -457,8 +457,8 @@ int menu_request_by_name( #undef scale_menu int scale_menu( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { return(*(int *)0); } @@ -466,17 +466,17 @@ int scale_menu( #undef set_menu_spacing int set_menu_spacing( - MENU *menu, - int s_desc, - int s_row, + MENU *menu, + int s_desc, + int s_row, int s_col) { return(*(int *)0); } #undef menu_spacing int menu_spacing( - const MENU *menu, - int *s_desc, - int *s_row, + const MENU *menu, + int *s_desc, + int *s_row, int *s_col) { return(*(int *)0); } @@ -484,7 +484,7 @@ int menu_spacing( #undef set_menu_sub int set_menu_sub( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } @@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts( #undef set_menu_userptr int set_menu_userptr( - MENU *menu, + MENU *menu, void *userptr) { return(*(int *)0); } @@ -542,7 +542,7 @@ void *menu_userptr( #undef set_menu_win int set_menu_win( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } diff --git a/menu/llib-lmenut b/menu/llib-lmenut index 1d348c09d2bb..0a0d05947222 100644 --- a/menu/llib-lmenut +++ b/menu/llib-lmenut @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 2010,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #undef set_menu_fore int set_menu_fore( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -49,7 +49,7 @@ chtype menu_fore( #undef set_menu_back int set_menu_back( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -60,7 +60,7 @@ chtype menu_back( #undef set_menu_grey int set_menu_grey( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -73,9 +73,9 @@ chtype menu_grey( #undef _nc_menu_cursor_pos int _nc_menu_cursor_pos( - const MENU *menu, - const ITEM *item, - int *pY, + const MENU *menu, + const ITEM *item, + int *pY, int *pX) { return(*(int *)0); } @@ -88,14 +88,14 @@ int pos_menu_cursor( #undef _nc_Match_Next_Character_In_Item_Name int _nc_Match_Next_Character_In_Item_Name( - MENU *menu, - int ch, + MENU *menu, + int ch, ITEM **item) { return(*(int *)0); } #undef menu_driver int menu_driver( - MENU *menu, + MENU *menu, int c) { return(*(int *)0); } @@ -103,15 +103,15 @@ int menu_driver( #undef set_menu_format int set_menu_format( - MENU *menu, - int rows, + MENU *menu, + int rows, int cols) { return(*(int *)0); } #undef menu_format void menu_format( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { /* void */ } @@ -124,7 +124,7 @@ ITEM _nc_Default_Item; #undef _nc_Connect_Items NCURSES_BOOL _nc_Connect_Items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(NCURSES_BOOL *)0); } @@ -155,8 +155,8 @@ void _nc_Show_Menu( #undef _nc_New_TopRow_and_CurrentItem void _nc_New_TopRow_and_CurrentItem( - MENU *menu, - int new_toprow, + MENU *menu, + int new_toprow, ITEM *new_current_item) { /* void */ } @@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem( #undef set_menu_init int set_menu_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -175,7 +175,7 @@ Menu_Hook menu_init( #undef set_menu_term int set_menu_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -186,7 +186,7 @@ Menu_Hook menu_term( #undef set_item_init int set_item_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -197,7 +197,7 @@ Menu_Hook item_init( #undef set_item_term int set_item_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -210,7 +210,7 @@ Menu_Hook item_term( #undef set_current_item int set_current_item( - MENU *menu, + MENU *menu, ITEM *item) { return(*(int *)0); } @@ -240,7 +240,7 @@ const char *item_description( #undef new_item ITEM *new_item( - const char *name, + const char *name, const char *description) { return(*(ITEM **)0); } @@ -251,7 +251,7 @@ int free_item( #undef set_menu_mark int set_menu_mark( - MENU *menu, + MENU *menu, const char *mark) { return(*(int *)0); } @@ -264,19 +264,19 @@ const char *menu_mark( #undef set_item_opts int set_item_opts( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_off int item_opts_off( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_on int item_opts_on( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } @@ -289,7 +289,7 @@ Item_Options item_opts( #undef set_top_row int set_top_row( - MENU *menu, + MENU *menu, int row) { return(*(int *)0); } @@ -302,7 +302,7 @@ int top_row( #undef set_item_userptr int set_item_userptr( - ITEM *item, + ITEM *item, void *userptr) { return(*(int *)0); } @@ -315,7 +315,7 @@ void *item_userptr( #undef set_item_value int set_item_value( - ITEM *item, + ITEM *item, NCURSES_BOOL value) { return(*(int *)0); } @@ -335,7 +335,7 @@ NCURSES_BOOL item_visible( #undef set_menu_items int set_menu_items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(int *)0); } @@ -353,7 +353,7 @@ int item_count( #undef new_menu_sp MENU *new_menu_sp( - SCREEN *sp, + SCREEN *sp, ITEM **items) { return(*(MENU **)0); } @@ -371,19 +371,19 @@ int free_menu( #undef set_menu_opts int set_menu_opts( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_off int menu_opts_off( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_on int menu_opts_on( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } @@ -396,7 +396,7 @@ Menu_Options menu_opts( #undef set_menu_pad int set_menu_pad( - MENU *menu, + MENU *menu, int pad) { return(*(int *)0); } @@ -414,7 +414,7 @@ char *menu_pattern( #undef set_menu_pattern int set_menu_pattern( - MENU *menu, + MENU *menu, const char *p) { return(*(int *)0); } @@ -422,7 +422,7 @@ int set_menu_pattern( #undef _nc_Post_Item void _nc_Post_Item( - const MENU *menu, + const MENU *menu, const ITEM *item) { /* void */ } @@ -457,8 +457,8 @@ int menu_request_by_name( #undef scale_menu int scale_menu( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { return(*(int *)0); } @@ -466,17 +466,17 @@ int scale_menu( #undef set_menu_spacing int set_menu_spacing( - MENU *menu, - int s_desc, - int s_row, + MENU *menu, + int s_desc, + int s_row, int s_col) { return(*(int *)0); } #undef menu_spacing int menu_spacing( - const MENU *menu, - int *s_desc, - int *s_row, + const MENU *menu, + int *s_desc, + int *s_row, int *s_col) { return(*(int *)0); } @@ -484,7 +484,7 @@ int menu_spacing( #undef set_menu_sub int set_menu_sub( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } @@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts( #undef set_menu_userptr int set_menu_userptr( - MENU *menu, + MENU *menu, void *userptr) { return(*(int *)0); } @@ -542,7 +542,7 @@ void *menu_userptr( #undef set_menu_win int set_menu_win( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } diff --git a/menu/llib-lmenutw b/menu/llib-lmenutw index 1d348c09d2bb..0a0d05947222 100644 --- a/menu/llib-lmenutw +++ b/menu/llib-lmenutw @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 2010,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #undef set_menu_fore int set_menu_fore( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -49,7 +49,7 @@ chtype menu_fore( #undef set_menu_back int set_menu_back( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -60,7 +60,7 @@ chtype menu_back( #undef set_menu_grey int set_menu_grey( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -73,9 +73,9 @@ chtype menu_grey( #undef _nc_menu_cursor_pos int _nc_menu_cursor_pos( - const MENU *menu, - const ITEM *item, - int *pY, + const MENU *menu, + const ITEM *item, + int *pY, int *pX) { return(*(int *)0); } @@ -88,14 +88,14 @@ int pos_menu_cursor( #undef _nc_Match_Next_Character_In_Item_Name int _nc_Match_Next_Character_In_Item_Name( - MENU *menu, - int ch, + MENU *menu, + int ch, ITEM **item) { return(*(int *)0); } #undef menu_driver int menu_driver( - MENU *menu, + MENU *menu, int c) { return(*(int *)0); } @@ -103,15 +103,15 @@ int menu_driver( #undef set_menu_format int set_menu_format( - MENU *menu, - int rows, + MENU *menu, + int rows, int cols) { return(*(int *)0); } #undef menu_format void menu_format( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { /* void */ } @@ -124,7 +124,7 @@ ITEM _nc_Default_Item; #undef _nc_Connect_Items NCURSES_BOOL _nc_Connect_Items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(NCURSES_BOOL *)0); } @@ -155,8 +155,8 @@ void _nc_Show_Menu( #undef _nc_New_TopRow_and_CurrentItem void _nc_New_TopRow_and_CurrentItem( - MENU *menu, - int new_toprow, + MENU *menu, + int new_toprow, ITEM *new_current_item) { /* void */ } @@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem( #undef set_menu_init int set_menu_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -175,7 +175,7 @@ Menu_Hook menu_init( #undef set_menu_term int set_menu_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -186,7 +186,7 @@ Menu_Hook menu_term( #undef set_item_init int set_item_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -197,7 +197,7 @@ Menu_Hook item_init( #undef set_item_term int set_item_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -210,7 +210,7 @@ Menu_Hook item_term( #undef set_current_item int set_current_item( - MENU *menu, + MENU *menu, ITEM *item) { return(*(int *)0); } @@ -240,7 +240,7 @@ const char *item_description( #undef new_item ITEM *new_item( - const char *name, + const char *name, const char *description) { return(*(ITEM **)0); } @@ -251,7 +251,7 @@ int free_item( #undef set_menu_mark int set_menu_mark( - MENU *menu, + MENU *menu, const char *mark) { return(*(int *)0); } @@ -264,19 +264,19 @@ const char *menu_mark( #undef set_item_opts int set_item_opts( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_off int item_opts_off( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_on int item_opts_on( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } @@ -289,7 +289,7 @@ Item_Options item_opts( #undef set_top_row int set_top_row( - MENU *menu, + MENU *menu, int row) { return(*(int *)0); } @@ -302,7 +302,7 @@ int top_row( #undef set_item_userptr int set_item_userptr( - ITEM *item, + ITEM *item, void *userptr) { return(*(int *)0); } @@ -315,7 +315,7 @@ void *item_userptr( #undef set_item_value int set_item_value( - ITEM *item, + ITEM *item, NCURSES_BOOL value) { return(*(int *)0); } @@ -335,7 +335,7 @@ NCURSES_BOOL item_visible( #undef set_menu_items int set_menu_items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(int *)0); } @@ -353,7 +353,7 @@ int item_count( #undef new_menu_sp MENU *new_menu_sp( - SCREEN *sp, + SCREEN *sp, ITEM **items) { return(*(MENU **)0); } @@ -371,19 +371,19 @@ int free_menu( #undef set_menu_opts int set_menu_opts( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_off int menu_opts_off( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_on int menu_opts_on( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } @@ -396,7 +396,7 @@ Menu_Options menu_opts( #undef set_menu_pad int set_menu_pad( - MENU *menu, + MENU *menu, int pad) { return(*(int *)0); } @@ -414,7 +414,7 @@ char *menu_pattern( #undef set_menu_pattern int set_menu_pattern( - MENU *menu, + MENU *menu, const char *p) { return(*(int *)0); } @@ -422,7 +422,7 @@ int set_menu_pattern( #undef _nc_Post_Item void _nc_Post_Item( - const MENU *menu, + const MENU *menu, const ITEM *item) { /* void */ } @@ -457,8 +457,8 @@ int menu_request_by_name( #undef scale_menu int scale_menu( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { return(*(int *)0); } @@ -466,17 +466,17 @@ int scale_menu( #undef set_menu_spacing int set_menu_spacing( - MENU *menu, - int s_desc, - int s_row, + MENU *menu, + int s_desc, + int s_row, int s_col) { return(*(int *)0); } #undef menu_spacing int menu_spacing( - const MENU *menu, - int *s_desc, - int *s_row, + const MENU *menu, + int *s_desc, + int *s_row, int *s_col) { return(*(int *)0); } @@ -484,7 +484,7 @@ int menu_spacing( #undef set_menu_sub int set_menu_sub( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } @@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts( #undef set_menu_userptr int set_menu_userptr( - MENU *menu, + MENU *menu, void *userptr) { return(*(int *)0); } @@ -542,7 +542,7 @@ void *menu_userptr( #undef set_menu_win int set_menu_win( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } diff --git a/menu/llib-lmenuw b/menu/llib-lmenuw index 6ad96140a5b0..d5566d489696 100644 --- a/menu/llib-lmenuw +++ b/menu/llib-lmenuw @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 2002-2010,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #undef set_menu_fore int set_menu_fore( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -49,7 +49,7 @@ chtype menu_fore( #undef set_menu_back int set_menu_back( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -60,7 +60,7 @@ chtype menu_back( #undef set_menu_grey int set_menu_grey( - MENU *menu, + MENU *menu, chtype attr) { return(*(int *)0); } @@ -73,9 +73,9 @@ chtype menu_grey( #undef _nc_menu_cursor_pos int _nc_menu_cursor_pos( - const MENU *menu, - const ITEM *item, - int *pY, + const MENU *menu, + const ITEM *item, + int *pY, int *pX) { return(*(int *)0); } @@ -88,14 +88,14 @@ int pos_menu_cursor( #undef _nc_Match_Next_Character_In_Item_Name int _nc_Match_Next_Character_In_Item_Name( - MENU *menu, - int ch, + MENU *menu, + int ch, ITEM **item) { return(*(int *)0); } #undef menu_driver int menu_driver( - MENU *menu, + MENU *menu, int c) { return(*(int *)0); } @@ -103,15 +103,15 @@ int menu_driver( #undef set_menu_format int set_menu_format( - MENU *menu, - int rows, + MENU *menu, + int rows, int cols) { return(*(int *)0); } #undef menu_format void menu_format( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { /* void */ } @@ -124,7 +124,7 @@ ITEM _nc_Default_Item; #undef _nc_Connect_Items NCURSES_BOOL _nc_Connect_Items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(NCURSES_BOOL *)0); } @@ -155,8 +155,8 @@ void _nc_Show_Menu( #undef _nc_New_TopRow_and_CurrentItem void _nc_New_TopRow_and_CurrentItem( - MENU *menu, - int new_toprow, + MENU *menu, + int new_toprow, ITEM *new_current_item) { /* void */ } @@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem( #undef set_menu_init int set_menu_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -175,7 +175,7 @@ Menu_Hook menu_init( #undef set_menu_term int set_menu_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -186,7 +186,7 @@ Menu_Hook menu_term( #undef set_item_init int set_item_init( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -197,7 +197,7 @@ Menu_Hook item_init( #undef set_item_term int set_item_term( - MENU *menu, + MENU *menu, Menu_Hook func) { return(*(int *)0); } @@ -210,7 +210,7 @@ Menu_Hook item_term( #undef set_current_item int set_current_item( - MENU *menu, + MENU *menu, ITEM *item) { return(*(int *)0); } @@ -240,7 +240,7 @@ const char *item_description( #undef new_item ITEM *new_item( - const char *name, + const char *name, const char *description) { return(*(ITEM **)0); } @@ -251,7 +251,7 @@ int free_item( #undef set_menu_mark int set_menu_mark( - MENU *menu, + MENU *menu, const char *mark) { return(*(int *)0); } @@ -264,19 +264,19 @@ const char *menu_mark( #undef set_item_opts int set_item_opts( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_off int item_opts_off( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } #undef item_opts_on int item_opts_on( - ITEM *item, + ITEM *item, Item_Options opts) { return(*(int *)0); } @@ -289,7 +289,7 @@ Item_Options item_opts( #undef set_top_row int set_top_row( - MENU *menu, + MENU *menu, int row) { return(*(int *)0); } @@ -302,7 +302,7 @@ int top_row( #undef set_item_userptr int set_item_userptr( - ITEM *item, + ITEM *item, void *userptr) { return(*(int *)0); } @@ -315,7 +315,7 @@ void *item_userptr( #undef set_item_value int set_item_value( - ITEM *item, + ITEM *item, NCURSES_BOOL value) { return(*(int *)0); } @@ -335,7 +335,7 @@ NCURSES_BOOL item_visible( #undef set_menu_items int set_menu_items( - MENU *menu, + MENU *menu, ITEM **items) { return(*(int *)0); } @@ -353,7 +353,7 @@ int item_count( #undef new_menu_sp MENU *new_menu_sp( - SCREEN *sp, + SCREEN *sp, ITEM **items) { return(*(MENU **)0); } @@ -371,19 +371,19 @@ int free_menu( #undef set_menu_opts int set_menu_opts( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_off int menu_opts_off( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } #undef menu_opts_on int menu_opts_on( - MENU *menu, + MENU *menu, Menu_Options opts) { return(*(int *)0); } @@ -396,7 +396,7 @@ Menu_Options menu_opts( #undef set_menu_pad int set_menu_pad( - MENU *menu, + MENU *menu, int pad) { return(*(int *)0); } @@ -414,7 +414,7 @@ char *menu_pattern( #undef set_menu_pattern int set_menu_pattern( - MENU *menu, + MENU *menu, const char *p) { return(*(int *)0); } @@ -422,7 +422,7 @@ int set_menu_pattern( #undef _nc_Post_Item void _nc_Post_Item( - const MENU *menu, + const MENU *menu, const ITEM *item) { /* void */ } @@ -457,8 +457,8 @@ int menu_request_by_name( #undef scale_menu int scale_menu( - const MENU *menu, - int *rows, + const MENU *menu, + int *rows, int *cols) { return(*(int *)0); } @@ -466,17 +466,17 @@ int scale_menu( #undef set_menu_spacing int set_menu_spacing( - MENU *menu, - int s_desc, - int s_row, + MENU *menu, + int s_desc, + int s_row, int s_col) { return(*(int *)0); } #undef menu_spacing int menu_spacing( - const MENU *menu, - int *s_desc, - int *s_row, + const MENU *menu, + int *s_desc, + int *s_row, int *s_col) { return(*(int *)0); } @@ -484,7 +484,7 @@ int menu_spacing( #undef set_menu_sub int set_menu_sub( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } @@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts( #undef set_menu_userptr int set_menu_userptr( - MENU *menu, + MENU *menu, void *userptr) { return(*(int *)0); } @@ -542,7 +542,7 @@ void *menu_userptr( #undef set_menu_win int set_menu_win( - MENU *menu, + MENU *menu, WINDOW *win) { return(*(int *)0); } diff --git a/menu/m_attribs.c b/menu/m_attribs.c index 5cd94d342475..a9275d08049e 100644 --- a/menu/m_attribs.c +++ b/menu/m_attribs.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_attribs.c,v 1.19 2020/07/04 19:44:58 tom Exp $") +MODULE_ID("$Id: m_attribs.c,v 1.20 2021/06/17 21:20:30 tom Exp $") /* Macro to redraw menu if it is posted and changed */ #define Refresh_Menu(menu) \ @@ -73,69 +73,69 @@ MENU_EXPORT(chtype) NCURSES_API menu_ ## name (const MENU * menu)\ } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_fore(MENU *menu, chtype attr) -| +| | Description : Set the attribute for selectable items. In single- | valued menus this is used to highlight the current | item ((i.e. where the cursor is), in multi-valued | menus this is used to highlight the selected items. | | Return Values : E_OK - success -| E_BAD_ARGUMENT - an invalid value has been passed +| E_BAD_ARGUMENT - an invalid value has been passed +--------------------------------------------------------------------------*/ GEN_MENU_ATTR_SET_FCT(fore) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : chtype menu_fore(const MENU* menu) -| +| | Description : Return the attribute used for selectable items that | are current (single-valued menu) or selected (multi- -| valued menu). +| valued menu). | | Return Values : Attribute value +--------------------------------------------------------------------------*/ GEN_MENU_ATTR_GET_FCT(fore) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_back(MENU *menu, chtype attr) -| +| | Description : Set the attribute for selectable but not yet selected | items. | -| Return Values : E_OK - success +| Return Values : E_OK - success | E_BAD_ARGUMENT - an invalid value has been passed +--------------------------------------------------------------------------*/ GEN_MENU_ATTR_SET_FCT(back) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : chtype menu_back(const MENU *menu) -| +| | Description : Return the attribute used for selectable but not yet -| selected items. +| selected items. | | Return Values : Attribute value +--------------------------------------------------------------------------*/ GEN_MENU_ATTR_GET_FCT(back) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_grey(MENU *menu, chtype attr) -| +| | Description : Set the attribute for unselectable items. | | Return Values : E_OK - success -| E_BAD_ARGUMENT - an invalid value has been passed +| E_BAD_ARGUMENT - an invalid value has been passed +--------------------------------------------------------------------------*/ GEN_MENU_ATTR_SET_FCT(grey) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : chtype menu_grey(const MENU *menu) -| +| | Description : Return the attribute used for non-selectable items | | Return Values : Attribute value diff --git a/menu/m_cursor.c b/menu/m_cursor.c index 8cf15ce51335..b9b301d3eb90 100644 --- a/menu/m_cursor.c +++ b/menu/m_cursor.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2009,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_cursor.c,v 1.25 2020/12/12 00:38:02 tom Exp $") +MODULE_ID("$Id: m_cursor.c,v 1.26 2021/03/27 23:46:29 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnmenu @@ -83,7 +83,6 @@ _nc_menu_cursor_pos(const MENU *menu, const ITEM *item, int *pY, int *pX) MENU_EXPORT(int) pos_menu_cursor(const MENU *menu) { - WINDOW *win, *sub; int x = 0, y = 0; int err = _nc_menu_cursor_pos(menu, (ITEM *)0, &y, &x); @@ -91,8 +90,9 @@ pos_menu_cursor(const MENU *menu) if (E_OK == err) { - win = Get_Menu_UserWin(menu); - sub = menu->usersub ? menu->usersub : win; + WINDOW *win = Get_Menu_UserWin(menu); + WINDOW *sub = menu->usersub ? menu->usersub : win; + assert(win && sub); if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0)) diff --git a/menu/m_driver.c b/menu/m_driver.c index b1d7c3541b53..cf2ef2fe05c6 100644 --- a/menu/m_driver.c +++ b/menu/m_driver.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2012,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_driver.c,v 1.36 2020/12/12 00:38:02 tom Exp $") +MODULE_ID("$Id: m_driver.c,v 1.37 2021/03/27 23:46:29 tom Exp $") /* Macros */ @@ -220,7 +220,7 @@ menu_driver(MENU *menu, int c) int result = E_OK; ITEM *item; - int my_top_row, rdiff; + int my_top_row; T((T_CALLED("menu_driver(%p,%d)"), (void *)menu, c)); @@ -239,6 +239,8 @@ menu_driver(MENU *menu, int c) if ((c > KEY_MAX) && (c <= MAX_MENU_COMMAND)) { + int rdiff; + if (!((c == REQ_BACK_PATTERN) || (c == REQ_NEXT_MATCH) || (c == REQ_PREV_MATCH))) { @@ -489,16 +491,20 @@ menu_driver(MENU *menu, int c) } else if (wenclose(sub, event.y, event.x)) { /* Inside the area we try to find the hit item */ - int i, x, y, err; + int x, y; ry = event.y; rx = event.x; if (wmouse_trafo(sub, &ry, &rx, FALSE)) { + int i; + for (i = 0; i < menu->nitems; i++) { - err = _nc_menu_cursor_pos(menu, menu->items[i], - &y, &x); + int err = _nc_menu_cursor_pos(menu, + menu->items[i], + &y, &x); + if (E_OK == err) { if ((ry == y) && diff --git a/menu/m_format.c b/menu/m_format.c index 848de0b21118..65adfc6bfcb0 100644 --- a/menu/m_format.c +++ b/menu/m_format.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_format.c,v 1.21 2020/12/12 00:38:02 tom Exp $") +MODULE_ID("$Id: m_format.c,v 1.22 2021/03/27 23:46:29 tom Exp $") #define minimum(a,b) ((a)<(b) ? (a): (b)) @@ -59,7 +59,6 @@ MODULE_ID("$Id: m_format.c,v 1.21 2020/12/12 00:38:02 tom Exp $") MENU_EXPORT(int) set_menu_format(MENU *menu, int rows, int cols) { - int total_rows, total_cols; T((T_CALLED("set_menu_format(%p,%d,%d)"), (void *)menu, rows, cols)); @@ -68,6 +67,8 @@ set_menu_format(MENU *menu, int rows, int cols) if (menu) { + int total_rows, total_cols; + if (menu->status & _POSTED) RETURN(E_POSTED); diff --git a/menu/m_global.c b/menu/m_global.c index 2e5211468a86..4bc8ef8fc8c1 100644 --- a/menu/m_global.c +++ b/menu/m_global.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * 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 * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_global.c,v 1.32 2020/12/12 00:38:02 tom Exp $") +MODULE_ID("$Id: m_global.c,v 1.34 2023/09/16 16:39:26 tom Exp $") static char mark[] = "-"; /* *INDENT-OFF* */ @@ -113,12 +113,12 @@ 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; @@ -174,11 +174,12 @@ ResetConnectionInfo(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) @@ -292,23 +293,19 @@ static int 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; } @@ -381,7 +378,7 @@ _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; @@ -444,6 +441,7 @@ _nc_Link_Items(MENU *menu) else { int Number_Of_Rows = menu->rows; + int j; for (j = 0; j < Number_Of_Items; j++) { @@ -506,12 +504,12 @@ _nc_Link_Items(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); @@ -549,13 +547,13 @@ _nc_New_TopRow_and_CurrentItem( int new_toprow, 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); @@ -570,7 +568,7 @@ _nc_New_TopRow_and_CurrentItem( 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; @@ -594,7 +592,7 @@ _nc_New_TopRow_and_CurrentItem( 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; } diff --git a/menu/m_hook.c b/menu/m_hook.c index 916b9fc7ce7d..c7d9fe91af7f 100644 --- a/menu/m_hook.c +++ b/menu/m_hook.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2018-2020,2021 Thomas E. Dickey * * Copyright 1998-2012,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_hook.c,v 1.20 2020/07/04 19:45:16 tom Exp $") +MODULE_ID("$Id: m_hook.c,v 1.21 2021/06/17 21:26:02 tom Exp $") /* "Template" macro to generate function to set application specific hook */ #define GEN_HOOK_SET_FUNCTION( typ, name ) \ @@ -59,9 +59,9 @@ MENU_EXPORT(Menu_Hook) NCURSES_API typ ## _ ## name ( const MENU *menu )\ } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_init(MENU *menu, void (*f)(MENU *)) -| +| | Description : Set user-exit which is called when menu is posted | or just after the top row changes. | @@ -70,11 +70,11 @@ MENU_EXPORT(Menu_Hook) NCURSES_API typ ## _ ## name ( const MENU *menu )\ GEN_HOOK_SET_FUNCTION(menu, init) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : void (*)(MENU *) menu_init(const MENU *menu) -| +| | Description : Return address of user-exit function which is called -| when a menu is posted or just after the top row +| when a menu is posted or just after the top row | changes. | | Return Values : Menu init function address or NULL @@ -82,9 +82,9 @@ GEN_HOOK_SET_FUNCTION(menu, init) GEN_HOOK_GET_FUNCTION(menu, init) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_term (MENU *menu, void (*f)(MENU *)) -| +| | Description : Set user-exit which is called when menu is unposted | or just before the top row changes. | @@ -93,11 +93,11 @@ GEN_HOOK_GET_FUNCTION(menu, init) GEN_HOOK_SET_FUNCTION(menu, term) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : void (*)(MENU *) menu_term(const MENU *menu) -| +| | Description : Return address of user-exit function which is called -| when a menu is unposted or just before the top row +| when a menu is unposted or just before the top row | changes. | | Return Values : Menu finalization function address or NULL @@ -105,9 +105,9 @@ GEN_HOOK_SET_FUNCTION(menu, term) GEN_HOOK_GET_FUNCTION(menu, term) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_item_init (MENU *menu, void (*f)(MENU *)) -| +| | Description : Set user-exit which is called when menu is posted | or just after the current item changes. | @@ -116,11 +116,11 @@ GEN_HOOK_GET_FUNCTION(menu, term) GEN_HOOK_SET_FUNCTION(item, init) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : void (*)(MENU *) item_init (const MENU *menu) -| +| | Description : Return address of user-exit function which is called -| when a menu is posted or just after the current item +| when a menu is posted or just after the current item | changes. | | Return Values : Item init function address or NULL @@ -128,9 +128,9 @@ GEN_HOOK_SET_FUNCTION(item, init) GEN_HOOK_GET_FUNCTION(item, init) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_item_term (MENU *menu, void (*f)(MENU *)) -| +| | Description : Set user-exit which is called when menu is unposted | or just before the current item changes. | @@ -139,11 +139,11 @@ GEN_HOOK_GET_FUNCTION(item, init) GEN_HOOK_SET_FUNCTION(item, term) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : void (*)(MENU *) item_init (const MENU *menu) -| +| | Description : Return address of user-exit function which is called -| when a menu is unposted or just before the current item +| when a menu is unposted or just before the current item | changes. | | Return Values : Item finalization function address or NULL diff --git a/menu/m_item_cur.c b/menu/m_item_cur.c index dcb0be156ac5..ed76518211d8 100644 --- a/menu/m_item_cur.c +++ b/menu/m_item_cur.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_cur.c,v 1.21 2020/12/12 00:38:02 tom Exp $") +MODULE_ID("$Id: m_item_cur.c,v 1.22 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_current_item(MENU *menu, const ITEM *item) -| +| | Description : Make the item the current item | | Return Values : E_OK - success @@ -82,9 +82,9 @@ set_current_item(MENU *menu, ITEM *item) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : ITEM *current_item(const MENU *menu) -| +| | Description : Return the menus current item | | Return Values : Item pointer or NULL if failure @@ -97,9 +97,9 @@ current_item(const MENU *menu) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int item_index(const ITEM *) -| +| | Description : Return the logical index of this item. | | Return Values : The index or ERR if this is an invalid item pointer diff --git a/menu/m_item_nam.c b/menu/m_item_nam.c index 92966270454d..ce74531f0f4c 100644 --- a/menu/m_item_nam.c +++ b/menu/m_item_nam.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_nam.c,v 1.18 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_item_nam.c,v 1.19 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : char *item_name(const ITEM *item) -| +| | Description : Return name of menu item | | Return Values : See above; returns NULL if item is invalid @@ -56,9 +56,9 @@ item_name(const ITEM *item) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : char *item_description(const ITEM *item) -| +| | Description : Returns description of item | | Return Values : See above; Returns NULL if item is invalid diff --git a/menu/m_item_new.c b/menu/m_item_new.c index 4e3f67bacdd0..28b71caf5b07 100644 --- a/menu/m_item_new.c +++ b/menu/m_item_new.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2020-2021 Thomas E. Dickey * * Copyright 1998-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -45,12 +45,12 @@ #endif #endif -MODULE_ID("$Id: m_item_new.c,v 1.37 2021/02/13 19:40:51 tom Exp $") +MODULE_ID("$Id: m_item_new.c,v 1.38 2021/06/17 21:26:02 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : bool Is_Printable_String(const char *s) -| +| | Description : Checks whether or not the string contains only printable | characters. | @@ -98,9 +98,9 @@ Is_Printable_String(const char *s) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : ITEM *new_item(char *name, char *description) -| +| | Description : Create a new item with name and description. Return | a pointer to this new item. | N.B.: an item must(!) have a name. @@ -152,15 +152,15 @@ new_item(const char *name, const char *description) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int free_item(ITEM *item) -| -| Description : Free the allocated storage for this item. +| +| Description : Free the allocated storage for this item. | N.B.: a connected item can't be freed. | | Return Values : E_OK - success | E_BAD_ARGUMENT - invalid value has been passed -| E_CONNECTED - item is still connected to a menu +| E_CONNECTED - item is still connected to a menu +--------------------------------------------------------------------------*/ MENU_EXPORT(int) free_item(ITEM *item) @@ -179,16 +179,16 @@ free_item(ITEM *item) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_mark( MENU *menu, const char *mark ) -| +| | Description : Set the mark string used to indicate the current | item (single-valued menu) or the selected items | (multi-valued menu). -| The mark argument may be NULL, in which case no +| The mark argument may be NULL, in which case no | marker is used. -| This might be a little bit tricky, because this may -| affect the geometry of the menu, which we don't allow +| This might be a little bit tricky, because this may +| affect the geometry of the menu, which we don't allow | if it is already posted. | | Return Values : E_OK - success @@ -260,9 +260,9 @@ set_menu_mark(MENU *menu, const char *mark) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : char *menu_mark(const MENU *menu) -| +| | Description : Return a pointer to the marker string | | Return Values : The marker string pointer or NULL if no marker defined diff --git a/menu/m_item_opt.c b/menu/m_item_opt.c index 985fd2988c37..495e409b601b 100644 --- a/menu/m_item_opt.c +++ b/menu/m_item_opt.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_opt.c,v 1.21 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_item_opt.c,v 1.22 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu -| Function : int set_item_opts(ITEM *item, Item_Options opts) -| +| Facility : libnmenu +| Function : int set_item_opts(ITEM *item, Item_Options opts) +| | Description : Set the options of the item. If there are relevant | changes, the item is connected and the menu is posted, | the menu will be redisplayed. @@ -86,9 +86,9 @@ set_item_opts(ITEM *item, Item_Options opts) } /*--------------------------------------------------------------------------- -| Facility : libnmenu -| Function : int item_opts_off(ITEM *item, Item_Options opts) -| +| Facility : libnmenu +| Function : int item_opts_off(ITEM *item, Item_Options opts) +| | Description : Switch of the options for this item. | | Return Values : E_OK - success @@ -114,9 +114,9 @@ item_opts_off(ITEM *item, Item_Options opts) } /*--------------------------------------------------------------------------- -| Facility : libnmenu -| Function : int item_opts_on(ITEM *item, Item_Options opts) -| +| Facility : libnmenu +| Function : int item_opts_on(ITEM *item, Item_Options opts) +| | Description : Switch on the options for this item. | | Return Values : E_OK - success @@ -143,9 +143,9 @@ item_opts_on(ITEM *item, Item_Options opts) } /*--------------------------------------------------------------------------- -| Facility : libnmenu -| Function : Item_Options item_opts(const ITEM *item) -| +| Facility : libnmenu +| Function : Item_Options item_opts(const ITEM *item) +| | Description : Switch of the options for this item. | | Return Values : Items options diff --git a/menu/m_item_top.c b/menu/m_item_top.c index ee0d17b43dd5..68303c7676b5 100644 --- a/menu/m_item_top.c +++ b/menu/m_item_top.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_top.c,v 1.14 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_item_top.c,v 1.16 2021/06/17 21:11:08 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_top_row(MENU *menu, int row) -| +| | Description : Makes the specified row the top row in the menu | | Return Values : E_OK - success @@ -53,8 +53,6 @@ MODULE_ID("$Id: m_item_top.c,v 1.14 2020/12/12 00:38:08 tom Exp $") MENU_EXPORT(int) set_top_row(MENU *menu, int row) { - ITEM *item; - T((T_CALLED("set_top_row(%p,%d)"), (void *)menu, row)); if (menu) @@ -72,6 +70,8 @@ set_top_row(MENU *menu, int row) if (row != menu->toprow) { + ITEM *item; + if (menu->status & _LINK_NEEDED) _nc_Link_Items(menu); @@ -85,9 +85,9 @@ set_top_row(MENU *menu, int row) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int top_row(const MENU *) -| +| | Description : Return the top row of the menu | | Return Values : The row number or ERR if there is no row diff --git a/menu/m_item_val.c b/menu/m_item_val.c index a5c38e2716dc..3163f4b7216e 100644 --- a/menu/m_item_val.c +++ b/menu/m_item_val.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,17 +38,17 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_val.c,v 1.18 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_item_val.c,v 1.20 2021/06/17 21:11:08 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_item_value(ITEM *item, int value) -| +| | Description : Programmatically set the item's selection value. This is | only allowed if the item is selectable at all and if | it is not connected to a single-valued menu. | If the item is connected to a posted menu, the menu -| will be redisplayed. +| will be redisplayed. | | Return Values : E_OK - success | E_REQUEST_DENIED - not selectable or single valued menu @@ -56,12 +56,10 @@ MODULE_ID("$Id: m_item_val.c,v 1.18 2020/12/12 00:38:08 tom Exp $") MENU_EXPORT(int) set_item_value(ITEM *item, bool value) { - MENU *menu; - T((T_CALLED("set_item_value(%p,%d)"), (void *)item, value)); if (item) { - menu = item->imenu; + MENU *menu = item->imenu; if ((!(item->opt & O_SELECTABLE)) || (menu && (menu->opt & O_ONEVALUE))) @@ -87,9 +85,9 @@ set_item_value(ITEM *item, bool value) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : bool item_value(const ITEM *item) -| +| | Description : Return the selection value of the item | | Return Values : TRUE - if item is selected diff --git a/menu/m_item_vis.c b/menu/m_item_vis.c index 8e409cb864ad..9ae4fdb0a689 100644 --- a/menu/m_item_vis.c +++ b/menu/m_item_vis.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_item_vis.c,v 1.19 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_item_vis.c,v 1.20 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : bool item_visible(const ITEM *item) -| +| | Description : A item is visible if it currently appears in the | subwindow of a posted menu. | diff --git a/menu/m_items.c b/menu/m_items.c index 5b24cb76a01d..ecc5e2f05be0 100644 --- a/menu/m_items.c +++ b/menu/m_items.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2005,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_items.c,v 1.20 2020/12/12 00:38:08 tom Exp $") +MODULE_ID("$Id: m_items.c,v 1.21 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_items(MENU *menu, ITEM **items) -| +| | Description : Sets the item pointer array connected to menu. | | Return Values : E_OK - success @@ -78,9 +78,9 @@ set_menu_items(MENU *menu, ITEM **items) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : ITEM **menu_items(const MENU *menu) -| +| | Description : Returns a pointer to the item pointer array of the menu | | Return Values : NULL on error @@ -93,11 +93,11 @@ menu_items(const MENU *menu) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int item_count(const MENU *menu) -| +| | Description : Get the number of items connected to the menu. If the -| menu pointer is NULL we return -1. +| menu pointer is NULL we return -1. | | Return Values : Number of items or -1 to indicate error. +--------------------------------------------------------------------------*/ diff --git a/menu/m_new.c b/menu/m_new.c index 82c410c6a96a..be175581ba19 100644 --- a/menu/m_new.c +++ b/menu/m_new.c @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_new.c,v 1.26 2021/02/13 19:43:10 tom Exp $") +MODULE_ID("$Id: m_new.c,v 1.27 2021/06/17 21:26:02 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : MENU* _nc_new_menu(SCREEN*, ITEM **items) -| +| | Description : Creates a new menu connected to the item pointer | array items and returns a pointer to the new menu. | The new menu is initialized with the values from the @@ -92,9 +92,9 @@ NCURSES_SP_NAME(new_menu) (NCURSES_SP_DCLx ITEM **items) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : MENU *new_menu(ITEM **items) -| +| | Description : Creates a new menu connected to the item pointer | array items and returns a pointer to the new menu. | The new menu is initialized with the values from the @@ -111,10 +111,10 @@ new_menu(ITEM **items) #endif /*--------------------------------------------------------------------------- -| Facility : libnmenu -| Function : int free_menu(MENU *menu) -| -| Description : Disconnects menu from its associated item pointer +| Facility : libnmenu +| Function : int free_menu(MENU *menu) +| +| Description : Disconnects menu from its associated item pointer | array and frees the storage allocated for the menu. | | Return Values : E_OK - success diff --git a/menu/m_pad.c b/menu/m_pad.c index 88dad151d6ff..008e19a79cdd 100644 --- a/menu/m_pad.c +++ b/menu/m_pad.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_pad.c,v 1.16 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_pad.c,v 1.17 2021/06/17 21:20:30 tom Exp $") /* Macro to redraw menu if it is posted and changed */ #define Refresh_Menu(menu) \ @@ -49,11 +49,11 @@ MODULE_ID("$Id: m_pad.c,v 1.16 2020/12/12 00:38:14 tom Exp $") } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_pad(MENU* menu, int pad) -| +| | Description : Set the character to be used to separate the item name -| from its description. This must be a printable +| from its description. This must be a printable | character. | | Return Values : E_OK - success @@ -79,9 +79,9 @@ set_menu_pad(MENU *menu, int pad) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int menu_pad(const MENU *menu) -| +| | Description : Return the value of the padding character | | Return Values : The pad character diff --git a/menu/m_pattern.c b/menu/m_pattern.c index 58047df218d4..6fbef236f2e6 100644 --- a/menu/m_pattern.c +++ b/menu/m_pattern.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2006,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_pattern.c,v 1.19 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_pattern.c,v 1.20 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : char *menu_pattern(const MENU *menu) -| +| | Description : Return the value of the pattern buffer. | | Return Values : NULL - if there is no pattern buffer allocated @@ -61,9 +61,9 @@ menu_pattern(const MENU *menu) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_pattern(MENU *menu, const char *p) -| +| | Description : Set the match pattern for a menu and position to the | first item that matches. | diff --git a/menu/m_post.c b/menu/m_post.c index bfc633164b49..cb80230433d5 100644 --- a/menu/m_post.c +++ b/menu/m_post.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020-2021,2022 Thomas E. Dickey * * Copyright 1998-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_post.c,v 1.34 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_post.c,v 1.38 2022/09/24 09:38:44 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnmenu @@ -58,7 +58,6 @@ _nc_Post_Item(const MENU *menu, const ITEM *item) int count = 0; bool isfore = FALSE, isback = FALSE, isgrey = FALSE; int name_len; - int desc_len; assert(menu->win); @@ -132,6 +131,7 @@ _nc_Post_Item(const MENU *menu, const ITEM *item) { int m = menu->spc_desc / 2; int cy = -1, cx = -1; + int desc_len; for (ch = ' ', i = 0; i < menu->spc_desc; i++) { @@ -201,9 +201,8 @@ MENU_EXPORT(void) _nc_Draw_Menu(const MENU *menu) { ITEM *item = menu->items[0]; - ITEM *lasthor, *lastvert; + ITEM *lastvert; ITEM *hitem; - int y = 0; chtype s_bkgd; assert(item && menu->win); @@ -215,43 +214,50 @@ _nc_Draw_Menu(const MENU *menu) lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item; - do + if (item != NULL) { - wmove(menu->win, y, 0); - - hitem = item; - lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem; + int y = 0; do { - _nc_Post_Item(menu, hitem); + ITEM *lasthor; - wattron(menu->win, (int)menu->back); - if (((hitem = hitem->right) != lasthor) && hitem) + wmove(menu->win, y, 0); + + hitem = item; + lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem; + + do { - int i, j, cy, cx; - chtype ch = ' '; + _nc_Post_Item(menu, hitem); - getyx(menu->win, cy, cx); - for (j = 0; j < menu->spc_rows; j++) + wattron(menu->win, (int)menu->back); + if (((hitem = hitem->right) != lasthor) && hitem) { - wmove(menu->win, cy + j, cx); - for (i = 0; i < menu->spc_cols; i++) + int i, j, cy, cx; + chtype ch = ' '; + + getyx(menu->win, cy, cx); + for (j = 0; j < menu->spc_rows; j++) { - waddch(menu->win, ch); + wmove(menu->win, cy + j, cx); + for (i = 0; i < menu->spc_cols; i++) + { + waddch(menu->win, ch); + } } + wmove(menu->win, cy, cx + menu->spc_cols); } - wmove(menu->win, cy, cx + menu->spc_cols); } - } - while (hitem && (hitem != lasthor)); - wattroff(menu->win, (int)menu->back); + while (hitem && (hitem != lasthor)); + wattroff(menu->win, (int)menu->back); - item = item->down; - y += menu->spc_rows; + item = item->down; + y += menu->spc_rows; + } + while (item && (item != lastvert)); } - while (item && (item != lastvert)); } /*--------------------------------------------------------------------------- @@ -283,7 +289,6 @@ post_menu(MENU *menu) if (menu->items && *(menu->items)) { - int y; int h = 1 + menu->spc_rows * (menu->rows - 1); WINDOW *win = Get_Menu_Window(menu); @@ -291,7 +296,8 @@ post_menu(MENU *menu) if ((menu->win = newpad(h, menu->width))) { - y = (maxy >= h) ? h : maxy; + int y = (maxy >= h) ? h : maxy; + if (y >= menu->height) y = menu->height; if (!(menu->sub = subpad(menu->win, y, menu->width, 0, 0))) diff --git a/menu/m_req_name.c b/menu/m_req_name.c index 7d1e7bf5d106..c72116fa4aff 100644 --- a/menu/m_req_name.c +++ b/menu/m_req_name.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2012,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,7 +38,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_req_name.c,v 1.25 2020/05/24 01:40:20 anonymous.maarten Exp $") +MODULE_ID("$Id: m_req_name.c,v 1.27 2021/06/17 21:11:08 tom Exp $") #define DATA(s) { s } @@ -66,9 +66,9 @@ static const char request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1][14] = #define A_SIZE (sizeof(request_names)/sizeof(request_names[0])) /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : const char * menu_request_name (int request); -| +| | Description : Get the external name of a menu request. | | Return Values : Pointer to name - on success @@ -88,9 +88,9 @@ menu_request_name(int request) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int menu_request_by_name (const char *str); -| +| | Description : Search for a request with this name. | | Return Values : Request Id - on success @@ -103,12 +103,13 @@ menu_request_by_name(const char *str) to run sequentially through it. */ size_t i = 0; - char buf[16]; T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str))); if (str != 0 && (i = strlen(str)) != 0) { + char buf[16]; + if (i > sizeof(buf) - 2) i = sizeof(buf) - 2; memcpy(buf, str, i); diff --git a/menu/m_scale.c b/menu/m_scale.c index 0067ae76a1c9..9e7f81d515ee 100644 --- a/menu/m_scale.c +++ b/menu/m_scale.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2004,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,14 +38,14 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_scale.c,v 1.13 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_scale.c,v 1.14 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int scale_menu(const MENU *menu) -| +| | Description : Returns the minimum window size necessary for the -| subwindow of menu. +| subwindow of menu. | | Return Values : E_OK - success | E_BAD_ARGUMENT - invalid menu pointer diff --git a/menu/m_sub.c b/menu/m_sub.c index 5f898b0f7766..a055245bf49c 100644 --- a/menu/m_sub.c +++ b/menu/m_sub.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2009,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_sub.c,v 1.15 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_sub.c,v 1.16 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_sub(MENU *menu, WINDOW *win) -| +| | Description : Sets the subwindow of the menu. | | Return Values : E_OK - success @@ -82,9 +82,9 @@ set_menu_sub(MENU *menu, WINDOW *win) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : WINDOW* menu_sub(const MENU *menu) -| +| | Description : Returns a pointer to the subwindow of the menu | | Return Values : NULL on error, otherwise a pointer to the window diff --git a/menu/m_win.c b/menu/m_win.c index 72f72ad0cc90..4bb64e6a6daa 100644 --- a/menu/m_win.c +++ b/menu/m_win.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2009,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -38,12 +38,12 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_win.c,v 1.20 2020/12/12 00:38:14 tom Exp $") +MODULE_ID("$Id: m_win.c,v 1.21 2021/06/17 21:20:30 tom Exp $") /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : int set_menu_win(MENU *menu, WINDOW *win) -| +| | Description : Sets the window of the menu. | | Return Values : E_OK - success @@ -82,9 +82,9 @@ set_menu_win(MENU *menu, WINDOW *win) } /*--------------------------------------------------------------------------- -| Facility : libnmenu +| Facility : libnmenu | Function : WINDOW* menu_win(const MENU*) -| +| | Description : Returns pointer to the window of the menu | | Return Values : NULL on error, otherwise pointer to window |
