X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_getstr.c;h=21d8baa05c8be0968bb80b1730a8ba637cb2d7b8;hp=274e878873715ab4c483255a9a530b1633179cfd;hb=c04d54322f7835ed42e597967d8fa5471025fcac;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/ncurses/base/lib_getstr.c b/ncurses/base/lib_getstr.c index 274e8788..21d8baa0 100644 --- a/ncurses/base/lib_getstr.c +++ b/ncurses/base/lib_getstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 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 * @@ -39,9 +39,8 @@ */ #include -#include -MODULE_ID("$Id: lib_getstr.c,v 1.25 2006/01/12 00:33:52 tom Exp $") +MODULE_ID("$Id: lib_getstr.c,v 1.29 2009/10/24 21:59:02 tom Exp $") /* * This wipes out the last character, no matter whether it was a tab, control @@ -75,6 +74,7 @@ wgetnstr_events(WINDOW *win, int maxlen, EVENTLIST_1st(_nc_eventlist * evl)) { + SCREEN *sp = _nc_screen_of(win); TTY buf; bool oldnl, oldecho, oldraw, oldcbreak; char erasec; @@ -83,24 +83,24 @@ wgetnstr_events(WINDOW *win, int ch; int y, x; - T((T_CALLED("wgetnstr(%p,%p, %d)"), win, str, maxlen)); + T((T_CALLED("wgetnstr(%p,%p,%d)"), (void *) win, (void *) str, maxlen)); if (!win) returnCode(ERR); - _nc_get_tty_mode(&buf); + NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf); - oldnl = SP->_nl; - oldecho = SP->_echo; - oldraw = SP->_raw; - oldcbreak = SP->_cbreak; - nl(); - noecho(); - noraw(); - cbreak(); + oldnl = sp->_nl; + oldecho = sp->_echo; + oldraw = sp->_raw; + oldcbreak = sp->_cbreak; + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); - erasec = erasechar(); - killc = killchar(); + erasec = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG); + killc = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG); oldstr = str; getyx(win, y, x); @@ -143,9 +143,9 @@ wgetnstr_events(WINDOW *win, } } else if (ch >= KEY_MIN || (maxlen >= 0 && str - oldstr >= maxlen)) { - beep(); + NCURSES_SP_NAME(beep) (NCURSES_SP_ARG); } else { - *str++ = ch; + *str++ = (char) ch; if (oldecho == TRUE) { int oldy = win->_cury; if (waddch(win, (chtype) ch) == ERR) { @@ -187,12 +187,12 @@ wgetnstr_events(WINDOW *win, /* Restore with a single I/O call, to fix minor asymmetry between * raw/noraw, etc. */ - SP->_nl = oldnl; - SP->_echo = oldecho; - SP->_raw = oldraw; - SP->_cbreak = oldcbreak; + sp->_nl = oldnl; + sp->_echo = oldecho; + sp->_raw = oldraw; + sp->_cbreak = oldcbreak; - _nc_set_tty_mode(&buf); + NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); *str = '\0'; if (ch == ERR)