X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwidechar%2Flib_get_wstr.c;h=bbfbbbd24c2dbb6a06e0a449a345592e6b7f72e6;hp=bf39aa1a188bf26f801c2c4a2e4dbd28636c5e98;hb=7a6bbc8cf41c5186d46accc3d08622dc86526b34;hpb=55ccd2b959766810cf7db8d1c4462f338ce0afc8;ds=inline diff --git a/ncurses/widechar/lib_get_wstr.c b/ncurses/widechar/lib_get_wstr.c index bf39aa1a..bbfbbbd2 100644 --- a/ncurses/widechar/lib_get_wstr.c +++ b/ncurses/widechar/lib_get_wstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. * + * Copyright (c) 2002-2004,2008 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 * @@ -38,9 +38,8 @@ */ #include -#include -MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $") +MODULE_ID("$Id: lib_get_wstr.c,v 1.11 2008/11/16 00:19:59 juergen Exp $") static int wadd_wint(WINDOW *win, wint_t *src) @@ -48,7 +47,7 @@ wadd_wint(WINDOW *win, wint_t *src) cchar_t tmp; wchar_t wch[2]; - wch[0] = *src; + wch[0] = (wchar_t) (*src); wch[1] = 0; setcchar(&tmp, wch, A_NORMAL, 0, NULL); return wadd_wch(win, &tmp); @@ -86,6 +85,7 @@ WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed) NCURSES_EXPORT(int) wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) { + SCREEN *sp = _nc_screen_of(win); TTY buf; bool oldnl, oldecho, oldraw, oldcbreak; wint_t erasec; @@ -102,17 +102,17 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) _nc_get_tty_mode(&buf); - oldnl = SP->_nl; - oldecho = SP->_echo; - oldraw = SP->_raw; - oldcbreak = SP->_cbreak; + oldnl = sp->_nl; + oldecho = sp->_echo; + oldraw = sp->_raw; + oldcbreak = sp->_cbreak; nl(); noecho(); noraw(); cbreak(); - erasec = erasechar(); - killc = killchar(); + erasec = (wint_t) erasechar(); + killc = (wint_t) killchar(); getyx(win, y, x); @@ -209,10 +209,10 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) /* 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; (void) _nc_set_tty_mode(&buf);