From 33d33fcf193ec0a187df7c25a3c717d044cf737b Mon Sep 17 00:00:00 2001 From: PatR Date: Wed, 16 Oct 2019 16:19:51 -0700 Subject: [PATCH] fix curses build warning and update fixes36.3 Move a declaration that became mid-block when a preceding 'if () {' got removed to top of block suppress warning about C99 feature. Add new entry for the curses symset change to fixes36.3. --- doc/fixes36.3 | 5 ++++- win/curses/cursmisc.c | 19 ++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 2cc6a5b6e..809ddab65 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.137 $ $NHDT-Date: 1571045295 2019/10/14 09:28:15 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.138 $ $NHDT-Date: 1571267989 2019/10/16 23:19:49 $ 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, @@ -346,6 +346,9 @@ curses: give menus and text windows a minimum size of 5x25 since tiny ones can curses+'perm_invent': since persistent inventory is narrow, strip off "a", "an", or "the" prefix on inventory entries shown there so that a tiny bit more of the interesting portion is visible +curses+'curses': change the curses map display to use new symbol set 'curses' + instead of hard-coded values; it attempts to show IBMgraphics-style + map using DECgraphics characters; DECgraphics can also be used as-is NetHack Community Patches (or Variation) Included diff --git a/win/curses/cursmisc.c b/win/curses/cursmisc.c index df3316679..ab6a3bd45 100644 --- a/win/curses/cursmisc.c +++ b/win/curses/cursmisc.c @@ -463,13 +463,16 @@ curses_is_text(winid wid) } } -/* Replace certain characters with portable drawing characters if - cursesgraphics option is enabled, or special curses handling for - DECgraphics */ +/* convert nethack's DECgraphics encoding into curses' ACS encoding */ int curses_convert_glyph(int ch, int glyph) { - int retch, symbol; + /* The DEC line drawing characters use 0x5f through 0x7e instead + of the much more straightforward 0x60 through 0x7f, possibly + because 0x7f is effectively a control character (Rubout); + nethack ORs 0x80 to flag line drawing--that's stripped below */ + static int decchars[33]; /* for chars 0x5f through 0x7f (95..127) */ + int symbol; /* FIXME? we don't support any special characters in roguesymset */ if (Is_rogue_level(&u.uz)) @@ -483,13 +486,7 @@ curses_convert_glyph(int ch, int glyph) line-drawing characters are specified as lowercase letters (mostly) and a control code is sent to the terminal telling it to switch character sets (that's how the tty interface handles them). - Curses remaps the characters instead. - - The DEC line drawing characters use 0x5f through 0x7e instead - of the much more straightforward 0x60 through 0x7f, possibly - because 0x7f is effectively a control character (Rubout); - nethack ORs 0x80 to flag line drawing--that's stripped below */ - static int decchars[33]; /* for chars 0x5f through 0x7f (95..127) */ + Curses remaps the characters instead. */ /* one-time initialization; some ACS_x aren't compile-time constant */ if (!decchars[0]) { -- 2.50.1