X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=menu%2Fm_post.c;h=b4b1bc14eb77fc32cb3c72425dd3b116b146333c;hb=b661daf1160a873609d70843999cd46eff25d1f0;hp=c8ccab2ddcb793333d83d5661f4fb328f4a0d04f;hpb=04d942c3d98cf0a929c6afb17be8c10d4ae39af0;p=ncurses.git diff --git a/menu/m_post.c b/menu/m_post.c index c8ccab2d..b4b1bc14 100644 --- a/menu/m_post.c +++ b/menu/m_post.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_post.c,v 1.33 2020/05/24 01:40:20 anonymous.maarten Exp $") +MODULE_ID("$Id: m_post.c,v 1.35 2021/03/27 23:46:29 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnmenu @@ -50,7 +50,7 @@ MODULE_ID("$Id: m_post.c,v 1.33 2020/05/24 01:40:20 anonymous.maarten Exp $") | Return Values : - +--------------------------------------------------------------------------*/ MENU_EXPORT(void) -_nc_Post_Item(const MENU * menu, const ITEM * item) +_nc_Post_Item(const MENU *menu, const ITEM *item) { int i; chtype ch; @@ -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++) { @@ -198,10 +198,10 @@ _nc_Post_Item(const MENU * menu, const ITEM * item) | Return Values : - +--------------------------------------------------------------------------*/ MENU_EXPORT(void) -_nc_Draw_Menu(const MENU * menu) +_nc_Draw_Menu(const MENU *menu) { ITEM *item = menu->items[0]; - ITEM *lasthor, *lastvert; + ITEM *lastvert; ITEM *hitem; int y = 0; chtype s_bkgd; @@ -213,14 +213,16 @@ _nc_Draw_Menu(const MENU * menu) werase(menu->win); wbkgdset(menu->win, s_bkgd); - lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : item; + lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item; do { + ITEM *lasthor; + wmove(menu->win, y, 0); hitem = item; - lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : hitem; + lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem; do { @@ -268,7 +270,7 @@ _nc_Draw_Menu(const MENU * menu) | E_POSTED - Menu already posted +--------------------------------------------------------------------------*/ MENU_EXPORT(int) -post_menu(MENU * menu) +post_menu(MENU *menu) { T((T_CALLED("post_menu(%p)"), (void *)menu)); @@ -283,7 +285,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 +292,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))) @@ -340,7 +342,7 @@ post_menu(MENU * menu) | E_NOT_POSTED - menu is not posted +--------------------------------------------------------------------------*/ MENU_EXPORT(int) -unpost_menu(MENU * menu) +unpost_menu(MENU *menu) { WINDOW *win;