X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fbase%2Fresizeterm.c;h=1eca2790fca0389cc28e5d8a52025ae6d595689e;hb=955553313af0a9fa960ec0faba552c0bae4ca65e;hp=daa4ae54ab64bd78432dd561a44edecece0aec46;hpb=fc108369da39ac4082802007d06c52de80392b94;p=ncurses.git diff --git a/ncurses/base/resizeterm.c b/ncurses/base/resizeterm.c index daa4ae54..1eca2790 100644 --- a/ncurses/base/resizeterm.c +++ b/ncurses/base/resizeterm.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2011,2014 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 * @@ -45,7 +45,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: resizeterm.c,v 1.44 2011/09/03 18:29:11 tom Exp $") +MODULE_ID("$Id: resizeterm.c,v 1.47 2014/10/13 08:56:49 tom Exp $") /* * If we're trying to be reentrant, do not want any local statics. @@ -347,7 +347,7 @@ NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); - if (SP_PARM == 0) { + if (SP_PARM == 0 || ToLines <= 0 || ToCols <= 0) { returnCode(ERR); } @@ -397,7 +397,7 @@ NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols; #ifdef USE_TERM_DRIVER - CallDriver_2(SP_PARM, setsize, ToLines, ToCols); + CallDriver_2(SP_PARM, td_setsize, ToLines, ToCols); #else lines = (NCURSES_SIZE_T) ToLines; columns = (NCURSES_SIZE_T) ToCols; @@ -466,7 +466,7 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); - if (SP_PARM != 0) { + if (SP_PARM != 0 && ToLines > 0 && ToCols > 0) { result = OK; SP_PARM->_sig_winch = FALSE; @@ -484,7 +484,6 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols); #if USE_SIGWINCH - safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ clearok(CurScreen(SP_PARM), TRUE); /* screen contents are unknown */ /* ripped-off lines are a special case: if we did not lengthen @@ -514,6 +513,9 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) } #endif } +#if USE_SIGWINCH + safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ +#endif } returnCode(result);