Merge branch 'master' into NetHack-3.7

This commit is contained in:
nhmall
2019-06-27 23:15:46 -04:00
4 changed files with 28 additions and 9 deletions
+13
View File
@@ -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
View File
@@ -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';