X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=menu%2Fm_new.c;h=c20c6651779058b8b3ce2b6a7b7b49cf10c46ce5;hp=b5143e248d4a74f84b3082ad9075783cd51f8eba;hb=0c9774ef662e2137933ac0c79077eaa9c8981357;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;ds=sidebyside diff --git a/menu/m_new.c b/menu/m_new.c index b5143e24..c20c6651 100644 --- a/menu/m_new.c +++ b/menu/m_new.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2006 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 * @@ -28,7 +28,6 @@ /**************************************************************************** * Author: Juergen Pfeifer, 1995,1997 * - * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en * ****************************************************************************/ /*************************************************************************** @@ -38,7 +37,7 @@ #include "menu.priv.h" -MODULE_ID("$Id: m_new.c,v 1.12 2002/07/06 15:22:16 juergen Exp $") +MODULE_ID("$Id: m_new.c,v 1.18 2006/11/04 19:04:06 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnmenu @@ -52,10 +51,12 @@ MODULE_ID("$Id: m_new.c,v 1.12 2002/07/06 15:22:16 juergen Exp $") | Return Values : NULL on error +--------------------------------------------------------------------------*/ NCURSES_EXPORT(MENU *) -new_menu (ITEM ** items) +new_menu(ITEM ** items) { - MENU *menu = (MENU *)calloc(1,sizeof(MENU)); - + int err = E_SYSTEM_ERROR; + MENU *menu = (MENU *) calloc(1, sizeof(MENU)); + + T((T_CALLED("new_menu(%p)"), items)); if (menu) { *menu = _nc_Default_Menu; @@ -64,18 +65,19 @@ new_menu (ITEM ** items) menu->cols = menu->fcols; if (items && *items) { - if (!_nc_Connect_Items(menu,items)) + if (!_nc_Connect_Items(menu, items)) { + err = E_NOT_CONNECTED; free(menu); - menu = (MENU *)0; + menu = (MENU *) 0; } } } if (!menu) - SET_ERROR(E_SYSTEM_ERROR); + SET_ERROR(err); - return(menu); + returnMenu(menu); } /*--------------------------------------------------------------------------- @@ -90,17 +92,18 @@ new_menu (ITEM ** items) | E_POSTED - Menu is already posted +--------------------------------------------------------------------------*/ NCURSES_EXPORT(int) -free_menu (MENU * menu) +free_menu(MENU * menu) { + T((T_CALLED("free_menu(%p)"), menu)); if (!menu) RETURN(E_BAD_ARGUMENT); - - if ( menu->status & _POSTED ) + + if (menu->status & _POSTED) RETURN(E_POSTED); - - if (menu->items) + + if (menu->items) _nc_Disconnect_Items(menu); - + if ((menu->status & _MARK_ALLOCATED) && menu->mark) free(menu->mark);