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

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.71 $ $NHDT-Date: 1561457861 2019/06/25 10:17:41 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.72 $ $NHDT-Date: 1561681080 2019/06/28 00:18:00 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -156,6 +156,8 @@ curses: when map window was clipped, the 'scrollbars' shown to indicate which
"*--------------" for horizontal (and comparable '*' with multiple '|'
underneath for vertical) when it meant to show "---******------" if
the 2nd and 3rd fifths (for example) were currently within view
curses: support users's setting for erase char and kill char when getting a
line of input with 'popup_dialog' Off (already supported for popup On)
curses+'perm_invent': entries were wrapping without any control; usually not
noticeable because next entry overwrote, but visible for final entry
when whole inventory fit within the available height; looked ok with

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 options.c $NHDT-Date: 1561427671 2019/06/25 01:54:31 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.366 $ */
/* NetHack 3.6 options.c $NHDT-Date: 1561682566 2019/06/28 00:42:46 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.367 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -678,7 +678,7 @@ initoptions()
void
initoptions_init()
{
#if defined(UNIX) || defined(VMS)
#if (defined(UNIX) || defined(VMS)) && defined(TTY_GRAPHICS)
char *opts;
#endif
int i;

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();

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';