diff options
| author | blymn <blymn@NetBSD.org> | 1999-11-23 11:12:34 +0000 |
|---|---|---|
| committer | blymn <blymn@NetBSD.org> | 1999-11-23 11:12:34 +0000 |
| commit | b68c50bcbecd3e6e991193a29654503abe841ca7 (patch) | |
| tree | 3d7658eb79a05a109d0e8d9ed7912c9006e81d68 /lib/libmenu/userptr.c | |
| parent | 2e175b3f885644bbca8623423ecc730ba6715314 (diff) | |
A curses based menu library.
Diffstat (limited to 'lib/libmenu/userptr.c')
| -rw-r--r-- | lib/libmenu/userptr.c | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/lib/libmenu/userptr.c b/lib/libmenu/userptr.c new file mode 100644 index 00000000000..48af7ae8c59 --- /dev/null +++ b/lib/libmenu/userptr.c @@ -0,0 +1,100 @@ +/* $Id: userptr.c,v 1.1.1.1 1999/11/23 11:12:36 blymn Exp $ */ + +/*- + * Copyright (c) 1998-1999 Brett Lymn (blymn@baea.com.au, brett_lymn@yahoo.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + * derived from this software withough specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + */ + +#include <menu.h> +#include <malloc.h> +#include <strings.h> + +/* the following is defined in menu.c */ +extern MENU _menui_default_menu; + +/* the following is defined in item.c */ +extern ITEM _menui_default_item; + +/* + * Set the item user pointer data + */ +int +set_item_userptr(param_item, userptr) + ITEM *param_item; + char *userptr; +{ + ITEM *item = (param_item != NULL) ? param_item : &_menui_default_item; + + if ((item->userptr = (char *) malloc(strlen(userptr))) == NULL) + return E_SYSTEM_ERROR; + + strcpy(item->userptr, userptr); + + return E_OK; +} + + +/* + * Return the item user pointer + */ +char * +item_userptr(item) + ITEM *item; +{ + if (item == NULL) + return _menui_default_item.userptr; + else + return item->userptr; +} + +/* + * Return the user pointer for the given menu + */ +char * +menu_userptr(menu) + MENU *menu; +{ + if (menu == NULL) + return _menui_default_menu.userptr; + else + return menu->userptr; +} + +/* + * Set the user pointer for the given menu + */ +int +set_menu_userptr(menu, userptr) + MENU *menu; + char *userptr; +{ + + if ((menu->userptr = (char *) malloc(strlen(userptr))) == NULL) + return E_SYSTEM_ERROR; + + strcpy(menu->userptr, userptr); + + return E_OK; +} + |
