PDCurses provides an alternative implementation of the curses library standard in addition to tinycurses. Where tinycurses is really tiny, PDCurses is more complete and provides virtually unlimited windows and the full API. The PDCurses code is brought in "vanilla", with all local changes residing in curses/pdcurses-backend/ In addition to a curses library, this change also provides libpanel (as part of the PDCurses code), and libform and libmenu which were derived from ncurses-5.9. As they rely on ncurses internals (and PDCurses is not ncurses), more changes were required for these libraries to work. The build system is extended to install the right set of header files depending on the selected curses implementation. Change-Id: I9e5b920f94b6510da01da2f656196a993170d1c5 Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/106 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marcj303@gmail.com>
		
			
				
	
	
		
			552 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			552 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /****************************************************************************
 | |
|  * Copyright (c) 1999-2005,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            *
 | |
|  * "Software"), to deal in the Software without restriction, including      *
 | |
|  * without limitation the rights to use, copy, modify, merge, publish,      *
 | |
|  * distribute, distribute with modifications, sublicense, and/or sell       *
 | |
|  * copies of the Software, and to permit persons to whom the Software is    *
 | |
|  * furnished to do so, subject to the following conditions:                 *
 | |
|  *                                                                          *
 | |
|  * The above copyright notice and this permission notice shall be included  *
 | |
|  * in all copies or substantial portions of the Software.                   *
 | |
|  *                                                                          *
 | |
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
 | |
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
 | |
|  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
 | |
|  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
 | |
|  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
 | |
|  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
 | |
|  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
 | |
|  *                                                                          *
 | |
|  * Except as contained in this notice, the name(s) of the above copyright   *
 | |
|  * holders shall not be used in advertising or otherwise to promote the     *
 | |
|  * sale, use or other dealings in this Software without prior written       *
 | |
|  * authorization.                                                           *
 | |
|  ****************************************************************************/
 | |
| 
 | |
| /****************************************************************************
 | |
|  *  Author: Thomas E. Dickey        1996-2005,2010                          *
 | |
|  ****************************************************************************/
 | |
| /* LINTLIBRARY */
 | |
| 
 | |
| /* ./m_attribs.c */
 | |
| 
 | |
| #include <menu.priv.h>
 | |
| 
 | |
| #undef set_menu_fore
 | |
| int	set_menu_fore(
 | |
| 		MENU	*menu, 
 | |
| 		chtype	attr)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_fore
 | |
| chtype	menu_fore(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(chtype *)0); }
 | |
| 
 | |
| #undef set_menu_back
 | |
| int	set_menu_back(
 | |
| 		MENU	*menu, 
 | |
| 		chtype	attr)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_back
 | |
| chtype	menu_back(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(chtype *)0); }
 | |
| 
 | |
| #undef set_menu_grey
 | |
| int	set_menu_grey(
 | |
| 		MENU	*menu, 
 | |
| 		chtype	attr)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_grey
 | |
| chtype	menu_grey(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(chtype *)0); }
 | |
| 
 | |
| /* ./m_cursor.c */
 | |
| 
 | |
| #undef _nc_menu_cursor_pos
 | |
| int	_nc_menu_cursor_pos(
 | |
| 		const MENU *menu, 
 | |
| 		const ITEM *item, 
 | |
| 		int	*pY, 
 | |
| 		int	*pX)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef pos_menu_cursor
 | |
| int	pos_menu_cursor(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_driver.c */
 | |
| 
 | |
| #undef _nc_Match_Next_Character_In_Item_Name
 | |
| int	_nc_Match_Next_Character_In_Item_Name(
 | |
| 		MENU	*menu, 
 | |
| 		int	ch, 
 | |
| 		ITEM	**item)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_driver
 | |
| int	menu_driver(
 | |
| 		MENU	*menu, 
 | |
| 		int	c)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_format.c */
 | |
| 
 | |
| #undef set_menu_format
 | |
| int	set_menu_format(
 | |
| 		MENU	*menu, 
 | |
| 		int	rows, 
 | |
| 		int	cols)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_format
 | |
| void	menu_format(
 | |
| 		const MENU *menu, 
 | |
| 		int	*rows, 
 | |
| 		int	*cols)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| /* ./m_global.c */
 | |
| 
 | |
| #undef _nc_Default_Menu
 | |
| MENU	_nc_Default_Menu;
 | |
| #undef _nc_Default_Item
 | |
| ITEM	_nc_Default_Item;
 | |
| 
 | |
| #undef _nc_Connect_Items
 | |
| NCURSES_BOOL _nc_Connect_Items(
 | |
| 		MENU	*menu, 
 | |
| 		ITEM	**items)
 | |
| 		{ return(*(NCURSES_BOOL *)0); }
 | |
| 
 | |
| #undef _nc_Disconnect_Items
 | |
| void	_nc_Disconnect_Items(
 | |
| 		MENU	*menu)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef _nc_Calculate_Text_Width
 | |
| int	_nc_Calculate_Text_Width(
 | |
| 		const TEXT *item)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef _nc_Calculate_Item_Length_and_Width
 | |
| void	_nc_Calculate_Item_Length_and_Width(
 | |
| 		MENU	*menu)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef _nc_Link_Items
 | |
| void	_nc_Link_Items(
 | |
| 		MENU	*menu)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef _nc_Show_Menu
 | |
| void	_nc_Show_Menu(
 | |
| 		const MENU *menu)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef _nc_New_TopRow_and_CurrentItem
 | |
| void	_nc_New_TopRow_and_CurrentItem(
 | |
| 		MENU	*menu, 
 | |
| 		int	new_toprow, 
 | |
| 		ITEM	*new_current_item)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| /* ./m_hook.c */
 | |
| 
 | |
| #undef set_menu_init
 | |
| int	set_menu_init(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Hook func)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_init
 | |
| Menu_Hook menu_init(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(Menu_Hook *)0); }
 | |
| 
 | |
| #undef set_menu_term
 | |
| int	set_menu_term(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Hook func)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_term
 | |
| Menu_Hook menu_term(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(Menu_Hook *)0); }
 | |
| 
 | |
| #undef set_item_init
 | |
| int	set_item_init(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Hook func)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_init
 | |
| Menu_Hook item_init(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(Menu_Hook *)0); }
 | |
| 
 | |
| #undef set_item_term
 | |
| int	set_item_term(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Hook func)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_term
 | |
| Menu_Hook item_term(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(Menu_Hook *)0); }
 | |
| 
 | |
| /* ./m_item_cur.c */
 | |
| 
 | |
| #undef set_current_item
 | |
| int	set_current_item(
 | |
| 		MENU	*menu, 
 | |
| 		ITEM	*item)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef current_item
 | |
| ITEM	*current_item(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(ITEM **)0); }
 | |
| 
 | |
| #undef item_index
 | |
| int	item_index(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_item_nam.c */
 | |
| 
 | |
| #undef item_name
 | |
| const char *item_name(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(const char **)0); }
 | |
| 
 | |
| #undef item_description
 | |
| const char *item_description(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(const char **)0); }
 | |
| 
 | |
| /* ./m_item_new.c */
 | |
| 
 | |
| #undef new_item
 | |
| ITEM	*new_item(
 | |
| 		const char *name, 
 | |
| 		const char *description)
 | |
| 		{ return(*(ITEM **)0); }
 | |
| 
 | |
| #undef free_item
 | |
| int	free_item(
 | |
| 		ITEM	*item)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef set_menu_mark
 | |
| int	set_menu_mark(
 | |
| 		MENU	*menu, 
 | |
| 		const char *mark)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_mark
 | |
| const char *menu_mark(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(const char **)0); }
 | |
| 
 | |
| /* ./m_item_opt.c */
 | |
| 
 | |
| #undef set_item_opts
 | |
| int	set_item_opts(
 | |
| 		ITEM	*item, 
 | |
| 		Item_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_opts_off
 | |
| int	item_opts_off(
 | |
| 		ITEM	*item, 
 | |
| 		Item_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_opts_on
 | |
| int	item_opts_on(
 | |
| 		ITEM	*item, 
 | |
| 		Item_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_opts
 | |
| Item_Options item_opts(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(Item_Options *)0); }
 | |
| 
 | |
| /* ./m_item_top.c */
 | |
| 
 | |
| #undef set_top_row
 | |
| int	set_top_row(
 | |
| 		MENU	*menu, 
 | |
| 		int	row)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef top_row
 | |
| int	top_row(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_item_use.c */
 | |
| 
 | |
| #undef set_item_userptr
 | |
| int	set_item_userptr(
 | |
| 		ITEM	*item, 
 | |
| 		void	*userptr)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_userptr
 | |
| void	*item_userptr(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(void **)0); }
 | |
| 
 | |
| /* ./m_item_val.c */
 | |
| 
 | |
| #undef set_item_value
 | |
| int	set_item_value(
 | |
| 		ITEM	*item, 
 | |
| 		NCURSES_BOOL value)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef item_value
 | |
| NCURSES_BOOL item_value(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(NCURSES_BOOL *)0); }
 | |
| 
 | |
| /* ./m_item_vis.c */
 | |
| 
 | |
| #undef item_visible
 | |
| NCURSES_BOOL item_visible(
 | |
| 		const ITEM *item)
 | |
| 		{ return(*(NCURSES_BOOL *)0); }
 | |
| 
 | |
| /* ./m_items.c */
 | |
| 
 | |
| #undef set_menu_items
 | |
| int	set_menu_items(
 | |
| 		MENU	*menu, 
 | |
| 		ITEM	**items)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_items
 | |
| ITEM	**menu_items(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(ITEM ***)0); }
 | |
| 
 | |
| #undef item_count
 | |
| int	item_count(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_new.c */
 | |
| 
 | |
| #undef new_menu_sp
 | |
| MENU	*new_menu_sp(
 | |
| 		SCREEN	*sp, 
 | |
| 		ITEM	**items)
 | |
| 		{ return(*(MENU **)0); }
 | |
| 
 | |
| #undef new_menu
 | |
| MENU	*new_menu(
 | |
| 		ITEM	**items)
 | |
| 		{ return(*(MENU **)0); }
 | |
| 
 | |
| #undef free_menu
 | |
| int	free_menu(
 | |
| 		MENU	*menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_opts.c */
 | |
| 
 | |
| #undef set_menu_opts
 | |
| int	set_menu_opts(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_opts_off
 | |
| int	menu_opts_off(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_opts_on
 | |
| int	menu_opts_on(
 | |
| 		MENU	*menu, 
 | |
| 		Menu_Options opts)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_opts
 | |
| Menu_Options menu_opts(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(Menu_Options *)0); }
 | |
| 
 | |
| /* ./m_pad.c */
 | |
| 
 | |
| #undef set_menu_pad
 | |
| int	set_menu_pad(
 | |
| 		MENU	*menu, 
 | |
| 		int	pad)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_pad
 | |
| int	menu_pad(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_pattern.c */
 | |
| 
 | |
| #undef menu_pattern
 | |
| char	*menu_pattern(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(char **)0); }
 | |
| 
 | |
| #undef set_menu_pattern
 | |
| int	set_menu_pattern(
 | |
| 		MENU	*menu, 
 | |
| 		const char *p)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_post.c */
 | |
| 
 | |
| #undef _nc_Post_Item
 | |
| void	_nc_Post_Item(
 | |
| 		const MENU *menu, 
 | |
| 		const ITEM *item)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef _nc_Draw_Menu
 | |
| void	_nc_Draw_Menu(
 | |
| 		const MENU *menu)
 | |
| 		{ /* void */ }
 | |
| 
 | |
| #undef post_menu
 | |
| int	post_menu(
 | |
| 		MENU	*menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef unpost_menu
 | |
| int	unpost_menu(
 | |
| 		MENU	*menu)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_req_name.c */
 | |
| 
 | |
| #undef menu_request_name
 | |
| const char *menu_request_name(
 | |
| 		int	request)
 | |
| 		{ return(*(const char **)0); }
 | |
| 
 | |
| #undef menu_request_by_name
 | |
| int	menu_request_by_name(
 | |
| 		const char *str)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_scale.c */
 | |
| 
 | |
| #undef scale_menu
 | |
| int	scale_menu(
 | |
| 		const MENU *menu, 
 | |
| 		int	*rows, 
 | |
| 		int	*cols)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_spacing.c */
 | |
| 
 | |
| #undef set_menu_spacing
 | |
| int	set_menu_spacing(
 | |
| 		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, 
 | |
| 		int	*s_col)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| /* ./m_sub.c */
 | |
| 
 | |
| #undef set_menu_sub
 | |
| int	set_menu_sub(
 | |
| 		MENU	*menu, 
 | |
| 		WINDOW	*win)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_sub
 | |
| WINDOW	*menu_sub(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(WINDOW **)0); }
 | |
| 
 | |
| /* ./m_trace.c */
 | |
| 
 | |
| #undef _nc_retrace_item
 | |
| ITEM	*_nc_retrace_item(
 | |
| 		ITEM	*code)
 | |
| 		{ return(*(ITEM **)0); }
 | |
| 
 | |
| #undef _nc_retrace_item_ptr
 | |
| ITEM	**_nc_retrace_item_ptr(
 | |
| 		ITEM	**code)
 | |
| 		{ return(*(ITEM ***)0); }
 | |
| 
 | |
| #undef _nc_retrace_item_opts
 | |
| Item_Options _nc_retrace_item_opts(
 | |
| 		Item_Options code)
 | |
| 		{ return(*(Item_Options *)0); }
 | |
| 
 | |
| #undef _nc_retrace_menu
 | |
| MENU	*_nc_retrace_menu(
 | |
| 		MENU	*code)
 | |
| 		{ return(*(MENU **)0); }
 | |
| 
 | |
| #undef _nc_retrace_menu_hook
 | |
| Menu_Hook _nc_retrace_menu_hook(
 | |
| 		Menu_Hook code)
 | |
| 		{ return(*(Menu_Hook *)0); }
 | |
| 
 | |
| #undef _nc_retrace_menu_opts
 | |
| Menu_Options _nc_retrace_menu_opts(
 | |
| 		Menu_Options code)
 | |
| 		{ return(*(Menu_Options *)0); }
 | |
| 
 | |
| /* ./m_userptr.c */
 | |
| 
 | |
| #undef set_menu_userptr
 | |
| int	set_menu_userptr(
 | |
| 		MENU	*menu, 
 | |
| 		void	*userptr)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_userptr
 | |
| void	*menu_userptr(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(void **)0); }
 | |
| 
 | |
| /* ./m_win.c */
 | |
| 
 | |
| #undef set_menu_win
 | |
| int	set_menu_win(
 | |
| 		MENU	*menu, 
 | |
| 		WINDOW	*win)
 | |
| 		{ return(*(int *)0); }
 | |
| 
 | |
| #undef menu_win
 | |
| WINDOW	*menu_win(
 | |
| 		const MENU *menu)
 | |
| 		{ return(*(WINDOW **)0); }
 |