Merge branch 'master' into NetHack-3.7
This commit is contained in:
@@ -9,6 +9,15 @@
|
||||
#include "color.h"
|
||||
#include "wincurs.h"
|
||||
|
||||
/* define this if not linking with <foo>tty.o|.obj for some reason */
|
||||
#ifdef CURSES_DEFINE_ERASE_CHAR
|
||||
char erase_char, kill_char;
|
||||
#else
|
||||
/* defined in sys/<foo>/<foo>tty.o|.obj which gets linked into
|
||||
tty-only, tty+curses, and curses-only binaries */
|
||||
extern char erase_char, kill_char;
|
||||
#endif
|
||||
|
||||
extern long curs_mesg_suppress_turn; /* from cursmesg.c */
|
||||
|
||||
/* Public functions for curses NetHack interface */
|
||||
@@ -183,6 +192,10 @@ curses_init_nhwindows(int *argcp UNUSED,
|
||||
if ((term_rows < 15) || (term_cols < 40)) {
|
||||
panic("Terminal too small. Must be minumum 40 width and 15 height");
|
||||
}
|
||||
/* during line input, deletes the most recently typed character */
|
||||
erase_char = erasechar(); /* <delete>/<rubout> or possibly <backspace> */
|
||||
/* during line input, deletes all typed characters */
|
||||
kill_char = killchar(); /* ^U (back in prehistoric times, '@') */
|
||||
|
||||
curses_create_main_windows();
|
||||
curses_init_mesg_history();
|
||||
|
||||
+10
-6
@@ -9,6 +9,10 @@
|
||||
#include "cursmesg.h"
|
||||
#include <ctype.h>
|
||||
|
||||
/* defined in sys/<foo>/<foo>tty.c or cursmain.c as last resort;
|
||||
set up by curses_init_nhwindows() */
|
||||
extern char erase_char, kill_char;
|
||||
|
||||
/*
|
||||
* Note: references to "More>>" mean ">>", the curses rendition of "--More--".
|
||||
*/
|
||||
@@ -591,19 +595,19 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
|
||||
#else
|
||||
ch = getch();
|
||||
#endif
|
||||
#if 0 /* [erase_char (delete one character) and kill_char (delete all
|
||||
* characters) are from tty and not currently set up for curses] */
|
||||
if (ch == erase_char) {
|
||||
curs_set(0);
|
||||
|
||||
if (erase_char && ch == erase_char) {
|
||||
ch = '\177'; /* match switch-case below */
|
||||
|
||||
/* honor kill_char if it's ^U or similar, but not if it's '@' */
|
||||
} else if (ch == kill_char && (ch < ' ' || ch >= '\177')) { /*ASCII*/
|
||||
} else if (kill_char && ch == kill_char
|
||||
&& (ch < ' ' || ch >= '\177')) { /*ASCII*/
|
||||
if (len == 0) /* nothing to kill; just start over */
|
||||
continue;
|
||||
ch = '\033'; /* get rid of all current input, then start over */
|
||||
}
|
||||
#endif
|
||||
curs_set(0);
|
||||
|
||||
switch (ch) {
|
||||
case ERR: /* should not happen */
|
||||
*answer = '\0';
|
||||
|
||||
Reference in New Issue
Block a user