]> granicus.if.org Git - nethack/commitdiff
Remove experimental Unicode support.
authorSean Hunt <scshunt@csclub.uwaterloo.ca>
Sat, 14 Feb 2015 20:02:50 +0000 (15:02 -0500)
committerPasi Kallinen <paxed@alt.org>
Tue, 17 Mar 2015 16:46:45 +0000 (18:46 +0200)
This reverts commit 7f0f43e6f98bccab20db7ab3cb509fdbe60a7b2b and some related
subsequent commits.

This compiles, but I have not done extensive testing.

Conflicts:
include/config.h
include/decl.h
include/extern.h
include/global.h
include/tradstdc.h
include/wintty.h
src/drawing.c
src/files.c
src/hacklib.c
src/mapglyph.c
src/options.c
sys/winnt/nttty.c
win/tty/getline.c
win/tty/topl.c
win/tty/wintty.c

22 files changed:
dat/symbols
include/config.h
include/decl.h
include/extern.h
include/flag.h
include/global.h
include/ntconf.h
include/rm.h
include/tradstdc.h
include/wintty.h
src/decl.c
src/drawing.c
src/files.c
src/hacklib.c
src/mapglyph.c
src/options.c
src/pager.c
src/pline.c
sys/winnt/nttty.c
win/tty/getline.c
win/tty/topl.c
win/tty/wintty.c

index 8f396582bdf5784156c006d07727d3376bdb2077..108d761d128d4cb3b440d1dc282089d0df6f8ab4 100644 (file)
@@ -201,10 +201,6 @@ start: RogueEpyx
        S_food: \x05                    # club (as in cards)                    
        S_potion: \xad                  # upside down '!'
        S_scroll: \x0e                  # musical note
-#      S_armor: \x5b
-#      S_ring: \x3d
-#      S_amulet: \x0c
-#      S_tool: \x28
        S_wand: \xe7                    # greek tau
        S_coin: \x0f                    # yes it's the same as gems
        S_gem: \x0f                     # fancy '*'
@@ -397,131 +393,3 @@ start: NHAccess
        S_explode9: \047
 finish
 
-start: Unicode_US
-       Description: Unicode symbols similar to code page 437
-       Restrictions: Unicode
-       S_vwall:     U+2502             # box drawings light vertical
-       S_hwall:     U+2500             # box drawings light horizontal
-       S_tlcorn:    U+250C             # box drawings light down and right
-       S_trcorn:    U+2510             # box drawings light down and left
-       S_blcorn:    U+2514             # box drawings light up and right
-       S_brcorn:    U+2518             # box drawings light up and left
-       S_crwall:    U+253C             # box drawings light up and left
-       S_tuwall:    U+2534             # box drawings light up and horizontal
-       S_tdwall:    U+252C             # box drawings light down and horizontal
-       S_tlwall:    U+2524             # box drawings light vertical and left
-       S_trwall:    U+251C             # box drawings light vertical and right
-       S_ndoor:     U+2556             # box drawings down double and left single
-       S_vodoor:    U+25A0             # black square
-       S_hodoor:    U+25A0             # black square
-       S_bars:      U+2261             # identical to
-       S_tree:      U+00B1             # plus-minus sign
-       S_room:      U+00B7             # middle dot
-       S_corr:      U+2591             # light shade
-       S_litcorr:   U+2592             # medium shade
-       S_fountain:  U+2320             # top half integral 
-       S_pool:      U+2248             # almost equal to
-       S_ice:       U+00B7             # middle dot
-       S_lava:      U+2248             # almost equal to
-       S_vodbridge: U+00B7             # middle dot
-       S_hodbridge: U+00B7             # middle dot
-       S_water:     U+2248             # almost equal to
-       S_vbeam:     U+2502             # box drawings light vertical
-       S_hbeam:     U+2500             # box drawings light horizontal
-       S_sw_ml:     U+2502             # box drawings light vertical
-       S_sw_mr:     U+2502             # box drawings light vertical
-       S_explode4:  U+2502             # box drawings light vertical
-       S_explode6:  U+2502             # box drawings light vertical
-finish
-
-start: Unicode_non_US
-       Description: If default OEM CP for non-Unicode programs is not 437 or 850
-       Restrictions: Unicode
-       S_vwall:    U+2502              # box drawings light vertical
-       S_hwall:    U+2500              # box drawings light horizontal
-       S_tlcorn:   U+250C              # box drawings light down and right
-       S_trcorn:   U+2510              # box drawings light down and left
-       S_blcorn:   U+2514              # box drawings light up and right
-       S_brcorn:   U+2518              # box drawings light up and left
-       S_crwall:   U+253C              # box drawings light up and left
-       S_tuwall:   U+2534              # box drawings light up and horizontal
-       S_tdwall:   U+252C              # box drawings light down and horizontal
-       S_tlwall:   U+2524              # box drawings light vertical and left
-       S_trwall:   U+251C              # box drawings light vertical and right
-       S_vodoor:   U+25A0              # black square
-       S_hodoor:   U+25A0              # black square
-       S_corr:     U+2591              # light shade
-       S_litcorr:  U+2592              # medium shade
-       S_vbeam:    U+2502              # box drawings light vertical
-       S_hbeam:    U+2500              # box drawings light horizontal
-       S_sw_ml:    U+2502              # box drawings light vertical
-       S_sw_mr:    U+2502              # box drawings light vertical
-       S_explode4: U+2502              # box drawings light vertical
-       S_explode6: U+2502              # box drawings light vertical
-       S_coin:     U+20AC              # euro
-finish
-
-start: UnicodeRogueEpyx
-       Description: Unicode Rogue level symbols
-       Restrictions: Unicode
-       Restrictions: Rogue
-       Color: Yes
-       S_weapon:       U+2191          # up arrow
-       S_armor:        U+25d9          # Vert rect with o
-       S_ring:         U+2642          # circle with arrow
-       S_amulet:       U+2640          # "female" symbol
-       S_food:         U+2663          # club (as in cards)                    
-       S_potion:       U+00a1          # upside down '!'
-       S_scroll:       U+266a          # musical note
-       S_wand:         U+03c4          # greek tau
-       S_coin:         U+263c          # yes it's the same as gems
-       S_gem:          U+263c          # fancy '*'
-       S_rock:         U+0060          # grave accent
-       S_ball:         U+0030          # digit 0
-       S_chain:        U+005f          # low line
-       S_venom:        U+002e          # full stop
-       S_book:         U+002b          # + sign
-       S_vwall:        U+2551          # all walls now use
-       S_hwall:        U+2550          #   double line graphics
-       S_tlcorn:       U+2554          # box drawing double down and right 
-       S_trcorn:       U+2557          # box drawing double down and left 
-       S_blcorn:       U+255a          # box drawing double up and right 
-       S_brcorn:       U+255d          # box drawing double up and left 
-       S_crwall:       U+256c          # box drawing double vertical and horizontal 
-       S_tuwall:       U+2569          # box drawing double up and horizontal 
-       S_tdwall:       U+2566          # box drawing double down and horizontal 
-       S_tlwall:       U+2563          # box drawing double vertical and left 
-       S_trwall:       U+2560          # box drawing double vertical and right 
-       S_ndoor:        U+256c          # box drawing double vertical and horizontal 
-       S_vodoor:       U+256c          # box drawing double vertical and horizontal 
-       S_hodoor:       U+256c          # box drawing double vertical and horizontal 
-       S_room:         U+00b7          # centered dot 
-       S_corr:         U+2592          # medium shade
-       S_litcorr:      U+2593          # dark shade
-       S_upstair:      U+001e          # Greek Xi 
-       S_dnstair:      U+001f 
-       S_arrow_trap:   U+2666          # diamond (cards) 
-       S_dart_trap:    U+2666
-       S_falling_rock_trap: U+2666
-       S_squeaky_board: U+2666
-       S_bear_trap:    U+2666
-       S_land_mine:    U+2666
-       S_rolling_boulder_trap: U+2666
-       S_sleeping_gas_trap: U+2666
-       S_rust_trap:    U+2666
-       S_fire_trap:    U+2666 
-       S_pit:          U+2666
-       S_spiked_pit:   U+2666 
-       S_hole:         U+2666
-       S_trap_door:    U+2666
-       S_teleportation_trap: U+2666 
-       S_level_teleporter: U+2666
-       S_magic_portal: U+2666 
-       S_web:          U+2666 
-       S_statue_trap:  U+2666 
-       S_magic_trap:   U+2666
-       S_anti_magic_trap: U+2666 
-       S_polymorph_trap: U+2666
-       S_human:        U+263a          # face
-finish
-
index 3bddda18ba0a46c4e9b4f345c5f18b7757c79215..c13b2dd01d4f698cb8acad5d313e8e19f77660c6 100644 (file)
  */
 #endif /* CHDIR */
 
-/*
- * Enable some UNICODE support.
- */
-/*#define UNICODE_SUPPORT */           /* master on/off for any unicode support    */
 
 
 /*
index 92f1e824036dfc09c8e1bef7c10451c0152aa1ba..f9d4a7b7c56ad21e2f8572e8c64e21cdd26e4505 100644 (file)
@@ -320,7 +320,6 @@ E NEARDATA winid WIN_MESSAGE;
 E NEARDATA winid WIN_STATUS;
 #endif
 E NEARDATA winid WIN_MAP, WIN_INVEN;
-E nhwchar toplines[];
 
 /* pline (et al) for a single string argument (suppress compiler warning) */
 #define pline1(cstr) pline("%s", cstr)
@@ -331,6 +330,7 @@ E nhwchar toplines[];
 #define Sprintf1(buf, cstr) Sprintf(buf, "%s", cstr)
 #define panic1(cstr) panic("%s", cstr)
 
+E char toplines[];
 #ifndef TCAP_H
 E struct tc_gbl_data { /* also declared in tcap.h */
     char *tc_AS, *tc_AE;       /* graphics start and end (tty font swapping) */
index bfd3613260b1e851e3b1bc494d6a90b9ffc184d5..c3004a0a04c3825373816d1349a659bcd8341451 100644 (file)
@@ -731,7 +731,6 @@ E void FDECL(check_recordfile, (const char *));
 E void NDECL(read_wizkit);
 E int FDECL(read_sym_file, (int));
 E int FDECL(parse_sym_line, (char *,int));
-E int FDECL(sym_val, (const char *));
 E void FDECL(paniclog, (const char *, const char *));
 E int FDECL(validate_prefix_locations, (char *));
 #ifdef SELECTSAVED
@@ -846,20 +845,6 @@ E int NDECL(phase_of_the_moon);
 E boolean NDECL(friday_13th);
 E int NDECL(night);
 E int NDECL(midnight);
-#ifdef UNICODE_WIDEWINPORT
-E nhwchar *FDECL(nhwstrncpy, (nhwchar *,const char *,size_t));
-E nhwchar *FDECL(nhwncpy, (nhwchar *,const nhwchar *,size_t));
-E nhwchar *FDECL(nhwcpy, (nhwchar *,const nhwchar *));
-E nhwchar *FDECL(nhwstrcpy, (nhwchar *,const char *));
-E char *FDECL(strnhwcpy, (char *,const nhwchar *));
-E nhwchar *FDECL(nhwstrcat, (nhwchar *,const char *));
-E nhwchar *FDECL(nhwcat, (nhwchar *,const nhwchar *));
-E nhwchar *FDECL(nhwindex, (const nhwchar *,int));
-E size_t FDECL(nhwlen, (const nhwchar *));
-E int FDECL(nhwcmp, (const nhwchar *,const nhwchar *));
-E int FDECL(nhwncmp, (const nhwchar *,const nhwchar *,int));
-E int FDECL(nhwstrcmp, (const nhwchar *,const char *));
-#endif
 
 /* ### invent.c ### */
 
@@ -1587,6 +1572,7 @@ E int FDECL(load_symset, (const char *,int));
 E void FDECL(parsesymbols, (char *));
 E struct symparse *FDECL(match_sym, (char *));
 E void NDECL(set_playmode);
+E int FDECL(sym_val, (char *));
 
 /* ### pager.c ### */
 
index 2b5d2c3ee8f2312574d9e291a79643355747c097..de2b63e84d5bbe79f88097eb986d740803c2d7e5 100644 (file)
@@ -198,8 +198,6 @@ struct instance_flags {
        boolean  rlecomp;       /* run-length comp of levels when writing savefile */
        uchar    num_pad_mode;
        boolean  echo;          /* 1 to echo characters */
-       boolean  unicodecapable;        /* unicode support is possible on platform */
-       boolean  unicodedisp;   /* unicode support is turned on */
 #if 0
        boolean  DECgraphics;   /* use DEC VT-xxx extended character set */
        boolean  IBMgraphics;   /* use IBM extended character set */
index e3292e24356f211937c1eec0f9e4298d3b181532..6179409bb7806203cb43c5534c6c64689413c6b2 100644 (file)
@@ -65,41 +65,10 @@ typedef xchar       boolean;                /* 0 or 1 */
 #endif
 
 /*
- * UNICODE_SUPPORT
- * Unicode/wide character related support.
+ * type nhsym: loadable symbols go into this type
  */
-#ifdef UNICODE_SUPPORT
-# define UNICODE_DRAWING       /* store drawing symbols in wchar_t data type     */
-# define UNICODE_WIDEWINPORT   /* store and render wide chars in window port     */
-/*# define UNICODE_PLAYERTEXT*/        /* not implemented - player input in wide chars */
-#include <limits.h>
-#include <wchar.h>
-#else
-# undef UNICODE_DRAWING
-# undef UNICODE_WIDEWINPORT
-# undef UNICODE_PLAYERTEXT     
-#endif
-
-#if defined(UNICODE_DRAWING)
-typedef wchar_t nhsym;         /* nhsym is wide char */
-#else
 typedef uchar nhsym;
-#endif
 
-#if defined(UNICODE_WIDEWINPORT)
-typedef wchar_t nhwchar;       /* nhwchar (window port char) is wide char */
-#else
-typedef char nhwchar;
-#endif
-
-#if 0
-/* Not Implemented presently */
-#if defined(UNICODE_PLAYERTEXT)
-typedef wchar_t nhptext;       /* player input is wide char */
-#else
-typedef char nhptext;
-#endif
-#endif
 
 #ifndef STRNCMPI
 # ifndef __SASC_60             /* SAS/C already shifts to stricmp */
index 4ad1a6e739668cd217c9c64ee97639db4adc2c4d..95a506635891757b3b16d2269c36892e4e59689b 100644 (file)
@@ -193,11 +193,6 @@ extern void NDECL(toggle_mouse_support);
 extern void FDECL(map_subkeyvalue, (char *));
 extern void NDECL(load_keyboard_handler);
 extern void NDECL(raw_clear_screen);
-# ifdef UNICODE_WIDEWINPORT
-extern void FDECL(xputc, (NHWCHAR_P));
-# else
-extern void FDECL(xputc, (int));
-# endif
 #endif
 
 #include <fcntl.h>
index 2fa3da6b6bc949e6c4335e5fe6d43962d1f3e52a..c007f6a4f300364356ce1277e256c1f48598dc36 100644 (file)
@@ -227,13 +227,6 @@ struct symdef {
 #endif
 };
 
-/*
- * Graphics sets for display symbols
- */
-#define PRIMARY                0       /* primary graphics         */
-#define ROGUESET       1       /* rogue graphics           */
-#define NUM_GRAPHICS   2
-
 struct symparse {
        unsigned range;
 #define SYM_CONTROL    1       /* start/finish markers */
@@ -260,18 +253,25 @@ struct symsetentry {
        Bitfield(nocolor,1);         /* don't use color if set               */
        Bitfield(primary,1);         /* restricted for use as primary set    */
        Bitfield(rogue,1);           /* restricted for use as rogue lev set  */
-       Bitfield(unicode,1);         /* restricted for use as a unicode set  */
        /* 5 free bits */
 };
 
+/*
+ * Graphics sets for display symbols
+ */
+#define DEFAULT_GRAPHICS 0     /* regular characters: '-', '+', &c */
+#define PRIMARY                0       /* primary graphics set        */
+#define ROGUESET       1       /* rogue graphics set          */
+#define NUM_GRAPHICS   2
+
 /*
  * special symbol set handling types ( for invoking callbacks, etc.)
  * Must match the order of the known_handlers strings
  * in drawing.c
  */
-#define H_UNK          0
-#define H_IBM          1
-#define H_DEC          2
+#define H_UNK  0
+#define H_IBM  1
+#define H_DEC  2
 
 extern const struct symdef defsyms[MAXPCHARS]; /* defaults */
 extern const struct symdef def_warnsyms[WARNCOUNT];
index 480ea7878617445db3802f32bfe7be781bceefbc..dc75bc3932437c666d9e560178dc850c69fecfdd 100644 (file)
@@ -257,7 +257,6 @@ typedef genericptr genericptr_t;    /* (void *) or (char *) */
 #  define BOOLEAN_P boolean
 # endif
 # define ALIGNTYP_P aligntyp
-# define NHWCHAR_P nhwchar
 #else
 # ifdef WIDENED_PROTOTYPES
 #  define CHAR_P int
@@ -267,14 +266,6 @@ typedef genericptr genericptr_t;   /* (void *) or (char *) */
 #  define SHORT_P int
 #  define BOOLEAN_P int
 #  define ALIGNTYP_P int
-#  if defined(UNICODE_WIDEWINPORT) && defined(WCHAR_MAX)
-#   if WCHAR_MAX >= INT_MAX
-#    define NHWCHAR_P nhwchar
-#   endif
-#  endif
-#  ifndef NHWCHAR_P
-#   define NHWCHAR_P int
-#  endif
 # else
    /* Neither widened nor unwidened prototypes.  Argument list expansion
     * by FDECL/VDECL always empty; all xxx_P vanish so defs aren't needed. */
index a2ed1e0093bd4c6ee593144ccca17773252569f1..507804a9f982da93ef499376fb04018754469aec 100644 (file)
@@ -35,8 +35,8 @@ struct WinDesc {
                                /* maxcol is also used by WIN_MESSAGE for */
                                /* tracking the ^P command */
     short *datlen;             /* allocation size for *data */
-    nhwchar **data;            /* window data [row][column] */
-    nhwchar *morestr;          /* string to display instead of default */
+    char **data;               /* window data [row][column] */
+    char *morestr;             /* string to display instead of default */
     tty_menu_item *mlist;      /* menu information (MENU) */
     tty_menu_item **plist;     /* menu page pointers (MENU) */
     short plist_size;          /* size of allocated plist (MENU) */
@@ -88,7 +88,7 @@ extern struct WinDesc *wins[MAXWIN];
 extern struct DisplayDesc *ttyDisplay; /* the tty display descriptor */
 
 extern char morc;              /* last character typed to xwaitforspace */
-extern nhwchar defmorestr[];   /* default --more-- prompt */
+extern char defmorestr[];      /* default --more-- prompt */
 
 /* port specific external function references */
 
@@ -109,9 +109,7 @@ E void NDECL(tty_shutdown);
  * actually would be expanded. So here, we have to make an exception. */
 E void FDECL(xputc, (int));
 #else
-# ifndef WIN32CON
 E void FDECL(xputc, (CHAR_P));
-# endif
 #endif
 E void FDECL(xputs, (const char *));
 #if defined(SCREEN_VGA) || defined(SCREEN_8514)
@@ -154,10 +152,10 @@ E int FDECL(has_color,(int color));
 
 /* ### topl.c ### */
 
-E void FDECL(addtopl, (const nhwchar *));
+E void FDECL(addtopl, (const char *));
 E void NDECL(more);
-E void FDECL(update_topl, (const nhwchar *));
-E void FDECL(putsyms, (const nhwchar *));
+E void FDECL(update_topl, (const char *));
+E void FDECL(putsyms, (const char*));
 
 /* ### wintty.c ### */
 #ifdef CLIPPING
@@ -167,9 +165,6 @@ E void FDECL(docorner, (int, int));
 E void NDECL(end_glyphout);
 E void FDECL(g_putch, (int));
 E void FDECL(win_tty_init, (int));
-#ifdef UNICODE_WIDEWINPORT
-E void FDECL(u_putch, (nhwchar));
-#endif
 
 /* external declarations */
 E void FDECL(tty_init_nhwindows, (int *, char **));
index f7601bda0f407032abb2e86469d554527dce9230..6c83f0f143bc68aca6b33503436e30779a0d9d00 100644 (file)
@@ -262,8 +262,7 @@ NEARDATA winid WIN_MESSAGE = WIN_ERR;
 NEARDATA winid WIN_STATUS = WIN_ERR;
 #endif
 NEARDATA winid WIN_MAP = WIN_ERR, WIN_INVEN = WIN_ERR;
-nhwchar toplines[TBUFSZ];
-
+char toplines[TBUFSZ];
 /* Windowing stuff that's really tty oriented, but present for all ports */
 struct tc_gbl_data tc_gbl_data = { 0,0, 0,0 }; /* AS,AE, LI,CO */
 
index 7fb0d461a7d74028741d8f80e9a91f6ef9f7bc4d..a5cc10d4650d35bfa509492c012975e1ff74bceb 100644 (file)
@@ -24,8 +24,8 @@ struct symsetentry symset[NUM_GRAPHICS];
 int currentgraphics = 0;
 
 nhsym showsyms[SYM_MAX] = DUMMY;       /* symbols to be displayed */
-nhsym l_syms[SYM_MAX]   = DUMMY;       /* loaded symbols          */
-nhsym r_syms[SYM_MAX]   = DUMMY;       /* rogue symbols           */
+nhsym l_syms[SYM_MAX] = DUMMY;         /* loaded symbols          */
+nhsym r_syms[SYM_MAX] = DUMMY;         /* rogue symbols           */
 
 nhsym warnsyms[WARNCOUNT]  = DUMMY;  /* the current warning display symbols */
 const char invisexplain[] = "remembered, unseen, creature";
@@ -525,7 +525,6 @@ boolean name_too;
        /* initialize restriction bits */
        symset[which_set].primary = 0;
        symset[which_set].rogue   = 0;
-       symset[which_set].unicode = 0;
 
        if (name_too) {
            if (symset[which_set].name)
@@ -563,7 +562,6 @@ const char *known_handling[] = {
 const char *known_restrictions[] = {
        "primary",
        "rogue",
-       "unicode",
        (const char *)0,
 };
 
index cb7363399c6efd6180d9db952245d4cce9e2100c..7ba1805476d14073a87a4dc0705a278ed4e43c55 100644 (file)
@@ -2607,7 +2607,7 @@ parse_sym_line(buf, which_set)
 char *buf;
 int which_set;
 {
-       int val;
+       int val, i;
        struct symparse *symp = (struct symparse *)0;
        char *bufp, *commentp, *altp;
 
@@ -2657,7 +2657,6 @@ int which_set;
                return 0;
 
        if (!symset[which_set].name) {
-           int i;
            /* A null symset name indicates that we're just
               building a pick-list of possible symset
               values from the file, so only do that */
@@ -2682,7 +2681,6 @@ int which_set;
                    /* initialize restriction bits */
                    tmpsp->primary = 0;
                    tmpsp->rogue   = 0;
-                   tmpsp->unicode = 0;
                    break;
                 case 2:
                    /* handler type identified */
@@ -2705,17 +2703,14 @@ int which_set;
                 case 5:
                    /* restrictions: xxxx*/
                    tmpsp = symset_list; /* most recent symset */
-                   i = 0;
-                   while (known_restrictions[i]) {
+                    for (i = 0; known_restrictions[i]; ++i) {
                        if (!strcmpi(known_restrictions[i], bufp)) {
                            switch(i) {
                                case  0: tmpsp->primary = 1; break;
                                case  1: tmpsp->rogue   = 1; break;
-                               case  2: tmpsp->unicode = 1; break;
                            }
                            break;      /* while loop */
                        }
-                       i++;
                    }
                    break;
                }
@@ -2732,7 +2727,7 @@ int which_set;
                                chosen_symset_start = TRUE;
                                /* these init_*() functions clear symset fields too */
                                if (which_set == ROGUESET) init_r_symbols();
-                               else if (which_set == PRIMARY)  init_l_symbols();
+                                else if (which_set == PRIMARY)  init_l_symbols();
                            }
                            break;
                    case 1:
@@ -2771,23 +2766,12 @@ int which_set;
                                                 break;
                                        case  1: symset[which_set].rogue   = 1;
                                                 break;
-                                       case  2: symset[which_set].unicode = 1;
-                                                break;
                                    }
                                    break;      /* while loop */
                                    }
                                    n++;
                                }
-                               /* Don't allow unicode set if code can't handle it */
-                               if (symset[which_set].unicode &&
-                                               !iflags.unicodedisp) {
-                                   if (chosen_symset_start)
-                                       chosen_symset_end = FALSE;
-                                   chosen_symset_start = FALSE;
-                                   if (which_set == ROGUESET) init_r_symbols();
-                                   else if (which_set == PRIMARY)  init_l_symbols();
-                               }
-                           }
+                           }
                            break;
                }
            } else {            /* !SYM_CONTROL */
@@ -2821,72 +2805,6 @@ int which_set;
        }
 }
 
-/*
- *  Produces a single integer value.
- */
-int
-sym_val(cp)
-const char *cp;
-{
-    unsigned int cval = 0;
-    int        meta = 0, dcount = 0;
-    const char *dp, *hex = "00112233445566778899aAbBcCdDeEfF";
-
-    while (*cp)
-    {
-       if (*cp == '\\' && index("mM", cp[1])) {
-               meta = 1;
-               cp += 2;
-       }
-       if ((*cp == 'U' || *cp == 'u') && cp[1] == '+' && index(hex, cp[2]))
-       {
-           dcount = 0;
-           cp++;
-           for (++cp; *cp && (dp = index(hex, *cp)) && (dcount++ < 4); cp++)
-               cval = (unsigned int)((cval * 16) +
-                       ((unsigned int)(dp - hex) / 2));
-       }
-       else if (*cp == '\\' && index("0123456789xXoO", cp[1]))
-       {
-           dcount = 0;
-           cp++;
-           if (*cp == 'x' || *cp == 'X')
-               for (++cp; *cp && (dp = index(hex, *cp)) && (dcount++ < 4); cp++)
-                   cval = (unsigned int)((cval * 16) +
-                           ((unsigned int)(dp - hex) / 2));
-           else if (*cp == 'o' || *cp == 'O')
-               for (++cp; *cp && (index("01234567",*cp)) && (dcount++ < 5); cp++)
-                   cval = (cval * 8) + (unsigned int)(*cp - '0');
-           else
-               for (; *cp && (index("0123456789",*cp)) && (dcount++ < 5); cp++)
-                   cval = (cval * 10) + (unsigned int)(*cp - '0');
-       }
-       else if (*cp == '\\')           /* C-style character escapes */
-       {
-           switch (*++cp)
-           {
-           case '\\': cval = '\\'; break;
-           case 'n': cval = '\n'; break;
-           case 't': cval = '\t'; break;
-           case 'b': cval = '\b'; break;
-           case 'r': cval = '\r'; break;
-           default: cval = (unsigned int)*cp;
-           }
-           cp++;
-       }
-       else if (*cp == '^')            /* expand control-character syntax */
-       {
-           cval = (unsigned int)(*++cp & 0x1f);
-           cp++;
-       }
-       else
-           cval = (unsigned int)*cp++;
-       if (meta)
-           cval |= 0x80;
-    }
-    return cval;
-}
-
 /* ----------  END CONFIG FILE HANDLING ----------- */
 
 /* ----------  BEGIN SCOREBOARD CREATION ----------- */
index 398b96dd4609025585f067412db6301f55c6cbce..4565f6d65c0abfbf398001f4df44a80c075b2cf8 100644 (file)
@@ -768,192 +768,4 @@ midnight()
        return(getlt()->tm_hour == 0);
 }
 
-#ifdef UNICODE_WIDEWINPORT
-nhwchar *
-nhwstrncpy(dest, strSource, cnt)
-nhwchar *dest;
-const char *strSource;
-size_t cnt;
-{
-       nhwchar *d = dest;
-       const char *s = strSource;
-       size_t dcnt = 0;
-
-       while(*s && dcnt < cnt) {
-           *d++ = (nhwchar)*s++;
-           dcnt++;
-       }
-       if (dcnt < cnt) *d = 0;
-       return dest;
-}
-
-nhwchar *
-nhwncpy(dest, src, cnt)
-nhwchar *dest;
-const nhwchar *src;
-size_t cnt;
-{
-       nhwchar *d = dest;
-       const nhwchar *s = src;
-       size_t dcnt = 0;
-
-       while(*s && dcnt < cnt) {
-           *d++ = *s++;
-           dcnt++;
-       }
-       if (dcnt < cnt) *d = 0;
-       return dest;
-}
-
-nhwchar *
-nhwcpy(dest, src)
-nhwchar *dest;
-const nhwchar *src;
-{
-       nhwchar *d = dest;
-       const nhwchar *s = src;
-
-       while(*s) {
-           *d++ = *s++;
-       }
-       *d = 0;
-       return dest;
-}
-
-nhwchar *
-nhwstrcpy(dest, strSource)
-nhwchar *dest;
-const char *strSource;
-{
-       nhwchar *d = dest;
-       const char *s = strSource;
-
-       while(*s) {
-           *d++ = *s++;
-       }
-       *d = 0;
-       return dest;
-}
-
-char *
-strnhwcpy(strDest, src)
-char *strDest;
-const nhwchar *src;
-{
-       char *d = strDest;
-       const nhwchar *s = src;
-
-       while(*s) {
-           *d++ = (char)*s++;
-       }
-       *d = 0;
-       return strDest;
-}
-
-nhwchar *
-nhwstrcat(dest, strSource)
-nhwchar *dest;
-const char *strSource;
-{
-       nhwchar *d = dest;
-       const char *s = strSource;
-
-       while(*d) d++;
-       while(*s) {
-           *d++ = *s++;
-       }
-       *d = 0;
-       return dest;
-}
-
-nhwchar *
-nhwcat(dest, src)
-nhwchar *dest;
-const nhwchar *src;
-{
-       nhwchar *d = dest;
-       const nhwchar *s = src;
-
-       while(*d) d++;
-       while(*s) {
-           *d++ = *s++;
-       }
-       *d = 0;
-       return dest;
-}
-
-nhwchar *
-nhwindex(ss, c)
-const nhwchar *ss;
-int c;
-{
-       const nhwchar *s = ss;
-
-       while (*s) {
-           if (*s == c) return (nhwchar *)s;
-           s++;
-       }
-       if (*s == c) return (nhwchar *)s;
-       return (nhwchar *)0;
-}
-
-size_t nhwlen(src)
-const nhwchar *src;
-{
-       register size_t dl = 0;
-
-       while(*src++) dl++;
-       return dl;
-}
-
-int
-nhwcmp(s1, s2) /* case sensitive comparison */
-register const nhwchar *s1, *s2;
-{
-    register nhwchar t1, t2;
-
-    for (;;) {
-       if (!*s2) return (*s1 != 0);    /* s1 >= s2 */
-       else if (!*s1) return -1;       /* s1  < s2 */
-       t1 = *s1++;
-       t2 = *s2++;
-       if (t1 != t2) return (t1 > t2) ? 1 : -1;
-    }
-    return 0;                          /* s1 == s2 */
-}
-
-int
-nhwncmp(s1, s2, n)     /* case sensitive counted nhwchar (wide string) comparison */
-    register const nhwchar *s1, *s2;
-    register int n; /*(should probably be size_t, which is usually unsigned)*/
-{
-    register nhwchar t1, t2;
-
-    while (n--) {
-       if (!*s2) return (*s1 != 0);    /* s1 >= s2 */
-       else if (!*s1) return -1;       /* s1  < s2 */
-       t1 = *s1++;
-       t2 = *s2++;
-       if (t1 != t2) return (t1 > t2) ? 1 : -1;
-    }
-    return 0;                          /* s1 == s2 */
-}
-
-int
-nhwstrcmp(s1, s2)
-register const nhwchar *s1;
-const char *s2;
-{
-    register nhwchar t1, t2;
-
-    for (;;) {
-       if (!*s2) return (*s1 != 0);    /* s1 >= s2 */
-       else if (!*s1) return -1;       /* s1  < s2 */
-       t1 = *s1++;
-       t2 = (nhwchar)*s2++;
-       if (t1 != t2) return (t1 > t2) ? 1 : -1;
-    }
-    return 0;                          /* s1 == s2 */
-}
-#endif
 /*hacklib.c*/
index c00d6f8ad0a059b0cc2e7fa77141b79d7298efed..e44265d3a861a1efe654de72889548419cf0bd30 100644 (file)
@@ -225,7 +225,6 @@ int glyph;
        return encbuf;
 }
 
-#ifndef UNICODE_WIDEWINPORT
 /*
  * This differs from putstr() because the str parameter can
  * contain a sequence of characters representing:
@@ -267,12 +266,25 @@ genl_putmixed(window, attr, str)
                            gv = (int)((gv * 16) + ((int)(dp - hex) / 2));
                        so = mapglyph(gv, &ch, &oc, &os, 0, 0);
                        *put++ = showsyms[so];
-                       continue;
                    } else {
                        /* possible forgery - leave it the way it is */
                        cp = save_cp;
                    }
                    break;
+# if 0
+               case 'S':       /* symbol offset */
+                   dcount = 0;
+                   for (++cp; *cp && (dp = index(hex, *cp)) && (dcount++ < 4); cp++)
+                       rndchk = (int)((rndchk * 16) + ((int)(dp - hex) / 2));
+
+                   if (rndchk == context.rndencode) {
+                       dcount = 0;
+                       for (; *cp && (dp = index(hex, *cp)) && (dcount++ < 2); cp++)
+                           so = (int)((so * 16) + ((int)(dp - hex) / 2));
+                   }
+                   *put++ = showsyms[so];
+                   break;
+# endif
                case '\\':
                    break;
                }
@@ -283,5 +295,4 @@ genl_putmixed(window, attr, str)
        /* now send it to the normal putstr */
        putstr(window, attr, buf);
 }
-#endif /*!UNICODE_WIDEWINPORT*/
 /*mapglyph.c*/
index 97378888aae0cbf735329ad0272fec4e3d1b1cb0..1c63c5ed5e16b8c7b5c79c4df2ea4a89796c9948 100644 (file)
@@ -198,9 +198,6 @@ static struct Bool_Opt
        {"tombstone",&flags.tombstone, TRUE, SET_IN_GAME},
        {"toptenwin",&iflags.toptenwin, FALSE, SET_IN_GAME},
        {"travel", &flags.travelcmd, TRUE, SET_IN_GAME},
-#ifdef UNICODE_SUPPORT
-       {"unicode", &iflags.unicodedisp, FALSE, SET_IN_GAME},
-#endif
 #ifdef WIN32CON
        {"use_inverse",   &iflags.wc_inverse, TRUE, SET_IN_GAME},               /*WC*/
 #else
@@ -605,9 +602,6 @@ initoptions_init()
        iflags.msg_history = 20;
 #ifdef TTY_GRAPHICS
        iflags.prevmsg_window = 's';
-#  if defined(UNIX) && defined(UNICODE_WIDEWINPORT)
-       iflags.unicodecapable = TRUE;
-#  endif
 #endif
        iflags.menu_headings = ATR_INVERSE;
 
@@ -2514,7 +2508,7 @@ goodfruit:
                boolean badflag = FALSE;
                if (duplicate) complain_about_duplicate(opts,1);
                if (!negated) {
-                   for (i = PRIMARY; i <= ROGUESET; ++i) { 
+                   for (i = 0; i < NUM_GRAPHICS; ++i) { 
                        if (symset[i].name)
                            badflag = TRUE;
                        else {
@@ -3359,7 +3353,7 @@ boolean setinitial,setfromfile;
            || !strcmp("roguesymset", optname)) {
        menu_item *symset_pick = (menu_item *)0;
        boolean primaryflag = (*optname == 's'),
-                 rogueflag = (*optname == 'r'),
+               rogueflag = (*optname == 'r'),
                ready_to_switch = FALSE,
                nothing_to_do = FALSE;
        int res;
@@ -3384,8 +3378,7 @@ boolean setinitial,setfromfile;
                sl = symset_list;
                while (sl) {
                    /* check restrictions */
-                   if ((!rogueflag && sl->rogue)     ||
-                       (!iflags.unicodedisp && sl->unicode) ||
+                   if ((!rogueflag && sl->rogue)  ||
                        (!primaryflag && sl->primary)) {
                        sl = sl->next;
                        continue;
@@ -3398,8 +3391,8 @@ boolean setinitial,setfromfile;
                }
                if (!setcount) {
                        pline("There are no appropriate %ssymbol sets available.",
-                                 (rogueflag) ? "rogue level " :
-                               (primaryflag) ? "primary "     :
+                               (rogueflag)   ? "rogue level " :
+                               (primaryflag) ? "primary " :
                                "");
                        return TRUE;
                }
@@ -3415,7 +3408,6 @@ boolean setinitial,setfromfile;
                while (sl) {
                    /* check restrictions */
                    if ((!rogueflag && sl->rogue) ||
-                       (!iflags.unicodedisp && sl->unicode) ||
                        (!primaryflag && sl->primary)) {
                        sl = sl->next;
                        continue;
@@ -3502,7 +3494,7 @@ boolean setinitial,setfromfile;
        if(rogueflag)
            init_r_symbols();
        else
-            init_l_symbols();
+           init_l_symbols();
 
        if (symset[which_set].name) {
            if (read_sym_file(which_set))
@@ -3568,14 +3560,9 @@ char *buf;
 #endif
 #ifdef BACKWARD_COMPAT
        else if (!strcmp(optname, "boulder"))
-               Sprintf(buf,
-# ifdef UNICODE_DRAWING
-                           "\\x%04X",
-# else
-                           "%c",
-# endif
-                       iflags.bouldersym ? iflags.bouldersym :
-                        showsyms[(int)objects[BOULDER].oc_class + SYM_OFF_O]);
+               Sprintf(buf, "%c", iflags.bouldersym ?
+                       iflags.bouldersym :
+                       showsyms[(int)objects[BOULDER].oc_class + SYM_OFF_O]);
 #endif
        else if (!strcmp(optname, "catname"))
                Sprintf(buf, "%s", catname[0] ? catname : none);
@@ -4034,6 +4021,15 @@ char *buf;
        return (struct symparse *)0;
 }
 
+int sym_val(strval)
+char *strval;
+{
+       char buf[QBUFSZ];
+       buf[0] = '\0';
+       escapes(strval, buf);
+       return (int)*buf;
+}
+
 /* data for option_help() */
 static const char *opt_intro[] = {
        "",
index 4d734e5ef7933ad62c6e53213b30329af95c73c9..4e8008c1be7860b41e213331960b988e54b66c74 100644 (file)
@@ -571,7 +571,7 @@ do_look(mode, click_cc)
        for (i = 0; i < MAXMCLASSES; i++) {
            if (sym == ((from_screen || clicklook) ?
                        showsyms[i + SYM_OFF_M] : def_monsyms[i].sym) &&
-                       def_monsyms[i].explain) {
+               def_monsyms[i].explain) {
                need_to_look = TRUE;
                if (!found) {
                    Sprintf(out_str, "%s        %s",
index bd80a040fd27d05b09df1812accd678ea4f9a1f1..3ee998684a15345d48b76c971754c77af198ddbc 100644 (file)
@@ -76,11 +76,7 @@ pline VA_DECL(const char *, line)
            return;
        }
 #ifndef MAC
-# ifdef UNICODE_WIDEWINPORT
-       if (no_repeat && !nhwstrcmp(toplines, line))
-# else
-       if (no_repeat && !strcmp(toplines, line))
-# endif
+       if (no_repeat && !strcmp(line, toplines))
            return;
 #endif /* MAC */
        if (vision_full_recalc) vision_recalc(0);
index a0f9d95fe82bcd04fa4a031e1a625f82bafa7a0e..9b9b186bc1035d45bb7390ff593eeabeb3c67945 100644 (file)
@@ -64,6 +64,9 @@ int GUILaunched;
 extern int redirect_stdout;
 static BOOL FDECL(CtrlHandler, (DWORD));
 
+/* Flag for whether unicode is supported */
+static boolean has_unicode;
+
 #ifdef PORT_DEBUG
 static boolean display_cursor_info = FALSE;
 #endif
@@ -146,12 +149,6 @@ static void NDECL(init_ttycolor);
 # endif
 static void NDECL(really_move_cursor);
 
-#ifdef UNICODE_WIDEWINPORT
-void FDECL(xputc_core,(NHWCHAR_P));
-#else
-void FDECL(xputc_core,(int));
-#endif
-
 #define MAX_OVERRIDES  256
 unsigned char key_overrides[MAX_OVERRIDES];
 
@@ -199,14 +196,11 @@ const char *s;
 void
 setftty()
 {
-       static int cp = 0;
-       if (!cp) cp = GetConsoleOutputCP();
-       /* SetConsoleOutputCP(1250); */
 #ifdef CHANGE_COLOR
        if (altered_palette) adjust_palette();
 #endif
        start_screen();
-       iflags.unicodecapable = ((GetVersion() & 0x80000000) == 0);
+       has_unicode = ((GetVersion() & 0x80000000) == 0);
 }
 
 void
@@ -457,61 +451,24 @@ int x,y;
        ttyDisplay->cury = y;
 }
 
-#ifdef UNICODE_WIDEWINPORT
-#define T(x) L##x
-#else
-#define T(x) x
-#endif
-
 void
-xputc_core(ich)
-#ifdef UNICODE_WIDEWINPORT
-nhwchar ich;
-#else
-int ich;
-#endif
+xputc_core(ch)
+char ch;
 {
-       static uchar c[2] = {0,0};
-       char ch = (char)ich;
-
-#if 0
-       /*EURO symbol*/
-       if (ich == 0x20AC) {
-               if (!c[0]) {
-                       wchar_t t[2]={0x20ac, 0x0000};
-                       int cp = GetConsoleOutputCP();
-                       (void) WideCharToMultiByte(cp,
-                                      0,
-                                      t, 1,
-                                      c, 2,
-                                       (LPCSTR)0,
-                                       (LPBOOL)0);
-               }
-               ich = (nhwchar)c[0];
-       }
-#endif
-#ifdef UNICODE_WIDEWINPORT
-       switch(ich) {
-#else
        switch(ch) {
-#endif
-           case T('\n'):
+           case '\n':
                        cursor.Y++;
                        /* fall through */
-           case T('\r'):
+           case '\r':
                        cursor.X = 1;
                        break;
-           case T('\b'):
+           case '\b':
                        cursor.X--;
                        break;
            default:
                        WriteConsoleOutputAttribute(hConOut,&attr,1,
                                                        cursor,&acount);
-                       if (iflags.unicodedisp) {
-#ifdef UNICODE_WIDEWINPORT
-                               WriteConsoleOutputCharacterW(hConOut,&ich,1,
-                                               cursor,&ccount);
-#else
+                       if (has_unicode) {
                                /* Avoid bug in ANSI API on WinNT */
                                WCHAR c2[2];
                                int rc;
@@ -522,7 +479,6 @@ int ich;
                                       c2, 2);
                                WriteConsoleOutputCharacterW(hConOut,c2,rc,
                                                cursor,&ccount);
-#endif
                        }
                        else {
                                WriteConsoleOutputCharacterA(hConOut,&ch,1,
@@ -534,11 +490,7 @@ int ich;
 
 void
 xputc(ch)
-#ifdef UNICODE_WIDEWINPORT
-nhwchar ch;
-#else
-int ch;
-#endif
+char ch;
 {
        cursor.X = ttyDisplay->curx;
        cursor.Y = ttyDisplay->cury;
@@ -569,8 +521,8 @@ const char *s;
  * for win32. It is used for glyphs only, not text.
  */
 void
-g_putch(in_sym)
-int in_sym;
+g_putch(in_ch)
+int in_ch;
 {
        /* CP437 to Unicode mapping according to the Unicode Consortium */
        static const WCHAR cp437[] =
@@ -608,18 +560,12 @@ int in_sym;
                0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
                0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
        };
-       uchar ch = (uchar)in_sym;
+       unsigned char ch = (unsigned char)in_ch;
 
        cursor.X = ttyDisplay->curx;
        cursor.Y = ttyDisplay->cury;
        WriteConsoleOutputAttribute(hConOut,&attr,1,cursor,&acount);
-#ifdef UNICODE_DRAWING
-       if (symset[currentgraphics].name && 
-               symset[currentgraphics].unicode && iflags.unicodedisp)
-           WriteConsoleOutputCharacterW(hConOut,(LPCWSTR)&in_sym,1,cursor,&ccount);
-       else
-#endif
-       if (SYMHANDLING(H_IBM))
+       if (has_unicode)
            WriteConsoleOutputCharacterW(hConOut,&cp437[ch],1,cursor,&ccount);
        else
            WriteConsoleOutputCharacterA(hConOut,&ch,1,cursor,&ccount);
index 2dd90ae3fb507a41b70bcc7f1704f95302b52b31..4a2d8c25131aacfea40f9db47fc38380510e2cee 100644 (file)
@@ -24,25 +24,6 @@ extern int NDECL(extcmd_via_menu);   /* cmd.c */
 
 extern char erase_char, kill_char;     /* from appropriate tty.c file */
 
-/* cloned from topl.c, but not identical
- */
-#ifdef UNICODE_WIDEWINPORT
-    /* nhwchar is wchar; data from core needs narrow-to-wide conversion;
-       data going back to core needs wide-to-narrow conversion; data
-       used within tty routines typically needs wide-to-wide awareness */
-STATIC_VAR nhwchar     getl_wbuf[BUFSZ];
-STATIC_VAR char                getl_nbuf[BUFSZ];
-#define T(x) L##x
-#define Waddtopl(str)          addtopl(nhwstrcpy(getl_wbuf,str))
-#define Wputsyms(str)          putsyms(nhwstrcpy(getl_wbuf,str))
-#define NWstrcpy(wdst,src)     nhwstrcpy(wdst,src)     /* narrow-to-wide */
-#else  /*!UNICODE_WIDEWINPORT*/
-    /* nhwchar is char; no conversions needed */
-#define T(x) x
-#define Waddtopl(str)          addtopl(str)
-#define Wputsyms(str)          putsyms(str)
-#endif /*?UNICODE_WIDEWINPORT*/
-
 /*
  * Read a line closed with '\n' into the array char bufp[BUFSZ].
  * (The '\n' is not stored. The string is closed with a '\0'.)
@@ -76,12 +57,7 @@ getlin_hook_proc hook;
        *obufp = 0;
        for(;;) {
                (void) fflush(stdout);
-#ifdef UNICODE_WIDEWINPORT
-               Strcat(strcat(strcpy(getl_nbuf, query), " "), obufp);
-               (void)NWstrcpy(toplines, getl_nbuf);
-#else
                Strcat(strcat(strcpy(toplines, query), " "), obufp);
-#endif
                c = pgetchar();
                if (c == '\033' || c == EOF) {
                    obufp[0] = '\033';
@@ -100,10 +76,10 @@ getlin_hook_proc hook;
                        ttyDisplay->inread = sav;
                        tty_clear_nhwindow(WIN_MESSAGE);
                        cw->maxcol = cw->maxrow;
-                       Waddtopl(query);
-                       Waddtopl(T(" "));
+                       addtopl(query);
+                       addtopl(" ");
                        *bufp = 0;
-                       Waddtopl(obufp);
+                       addtopl(obufp);
                    } else {
                        if (!doprev)
                            (void) tty_doprev_message();/* need two initially */
@@ -115,10 +91,10 @@ getlin_hook_proc hook;
                    tty_clear_nhwindow(WIN_MESSAGE);
                    cw->maxcol = cw->maxrow;
                    doprev = 0;
-                   Waddtopl(query);
-                   Waddtopl(T(" "));
+                   addtopl(query);
+                   addtopl(" ");
                    *bufp = 0;
-                   Waddtopl(obufp);
+                   addtopl(obufp);
                }
                if(c == erase_char || c == '\b') {
                        if(bufp != obufp) {
@@ -128,11 +104,11 @@ getlin_hook_proc hook;
 #endif /* NEWAUTOCOMP */
                                bufp--;
 #ifndef NEWAUTOCOMP
-                               putsyms(T("\b \b"));/* putsym converts \b */
+                               putsyms("\b \b");/* putsym converts \b */
 #else /* NEWAUTOCOMP */
-                               putsyms(T("\b"));
-                               for (i = bufp; *i; ++i) putsyms(T(" "));
-                               for (; i > bufp; --i) putsyms(T("\b"));
+                               putsyms("\b");
+                               for (i = bufp; *i; ++i) putsyms(" ");
+                               for (; i > bufp; --i) putsyms("\b");
                                *bufp = 0;
 #endif /* NEWAUTOCOMP */
                        } else  tty_nhbell();
@@ -155,21 +131,21 @@ getlin_hook_proc hook;
 #endif /* NEWAUTOCOMP */
                        *bufp = c;
                        bufp[1] = 0;
-                       Wputsyms(bufp);
+                       putsyms(bufp);
                        bufp++;
                        if (hook && (*hook)(obufp)) {
-                           Wputsyms(bufp);
+                           putsyms(bufp);
 #ifndef NEWAUTOCOMP
                            bufp = eos(bufp);
 #else /* NEWAUTOCOMP */
                            /* pointer and cursor left where they were */
-                           for (i = bufp; *i; ++i) putsyms(T("\b"));
+                           for (i = bufp; *i; ++i) putsyms("\b");
                        } else if (i > bufp) {
                            char *s = i;
 
                            /* erase rest of prior guess */
-                           for (; i > bufp; --i) putsyms(T(" "));
-                           for (; s > bufp; --s) putsyms(T("\b"));
+                           for (; i > bufp; --i) putsyms(" ");
+                           for (; s > bufp; --s) putsyms("\b");
 #endif /* NEWAUTOCOMP */
                        }
                } else if(c == kill_char || c == '\177') { /* Robert Viduya */
@@ -177,11 +153,11 @@ getlin_hook_proc hook;
 #ifndef NEWAUTOCOMP
                        while(bufp != obufp) {
                                bufp--;
-                               putsyms(T("\b \b"));
+                               putsyms("\b \b");
                        }
 #else /* NEWAUTOCOMP */
-                       for (; *bufp; ++bufp) putsyms(T(" "));
-                       for (; bufp != obufp; --bufp) putsyms(T("\b \b"));
+                       for (; *bufp; ++bufp) putsyms(" ");
+                       for (; bufp != obufp; --bufp) putsyms("\b \b");
                        *bufp = 0;
 #endif /* NEWAUTOCOMP */
                } else
@@ -192,8 +168,6 @@ getlin_hook_proc hook;
        clear_nhwindow(WIN_MESSAGE);    /* clean up after ourselves */
 }
 
-#undef T
-
 void
 xwaitforspace(s)
 register const char *s;        /* chars allowed besides return */
index 3efb5269626247fb89ca060d5efea7bfe751c21b..db307b73aa29162fac4893528820bb5539e76d55 100644 (file)
@@ -1,5 +1,4 @@
-/* NetHack 3.5 topl.c  $NHDT-Date$  $NHDT-Branch$:$NHDT-Revision$ */
-/* NetHack 3.5 topl.c  $Date: 2012/01/23 06:29:37 $  $Revision: 1.24 $ */
+/* NetHack 3.5 topl.c  $NHDT-Date: 1425081315 2015/02/27 23:55:15 $  $NHDT-Branch: (no branch, rebasing scshunt-unconditionals) $:$NHDT-Revision: 1.24 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
 #define C(c)   (0x1f & (c))
 #endif
 
-/* use caution with this stuff; it's very easy to get things mixed up...
- */
-#ifdef UNICODE_WIDEWINPORT
-    /* nhwchar is wchar; data from core needs narrow-to-wide conversion;
-       data going back to core needs wide-to-narrow conversion; data
-       used within tty routines typically needs wide-to-wide awareness */
-STATIC_VAR nhwchar     topl_wbuf[BUFSZ];
-STATIC_VAR char                topl_nbuf[BUFSZ];
-#define T(x) L##x
-#define DoGputch(x) ((x) >= 0x80)
-#define Waddtopl(str)          addtopl(nhwstrcpy(topl_wbuf,str))
-#define Wputstr(win,atr,wstr)  putstr(win,atr,strnhwcpy(topl_nbuf,wstr))
-#define Windex(wstr,wchr)      nhwindex(wstr,wchr)
-#define Wstrlen(wstr)          (int)nhwlen(wstr)
-#define NWstrcpy(wdst,src)     nhwstrcpy(wdst,src)     /* narrow-to-wide */
-#define WNstrcpy(dst,wsrc)     strnhwcpy(dst,wsrc)     /* wide-to-narrow */
-#define WWstrcpy(wdst,wsrc)    nhwcpy(wdst,wsrc)       /* wide-to-wide */
-#define WWstrcat(wdst,wsrc)    nhwcat(wdst,wsrc)
-#define WWstrncpy(wdst,wsrc,ln nhwncpy(wdst,wsrc,ln)
-#define WWstrncmp(wst1,wst2,ln)        nhwncmp(wst1,wst2,ln)
-#else  /*!UNICODE_WIDEWINPORT*/
-    /* nhwchar is char; no conversions needed */
-#define T(x) x
-#define DoGputch(x) ((x) & 0x80)
-#define Waddtopl(str)          addtopl(str)
-#define Wputstr(win,atr,str)   putstr(win,atr,str)
-#define Windex(wstr,wchr)      index(wstr,wchr)
-#define Wstrlen(wstr)          (int)strlen(wstr)
-#define NWstrcpy(wdst,src)     strcpy(wdst,src)
-#define WNstrcpy(dst,wsrc)     strcpy(dst,wsrc)
-#define WWstrcpy(wdst,wsrc)    strcpy(wdst,wsrc)
-#define WWstrcat(wdst,wsrc)    strcat(wdst,wsrc)
-#define WWstrncpy(wdst,wsrc,ln)        strncpy(wdst,wsrc,ln)
-#define WWstrncmp(wst1,wst2,ln)        strncmp(wst1,wst2,ln)
-#endif /*?UNICODE_WIDEWINPORT*/
-
-STATIC_DCL void FDECL(redotoplin, (const nhwchar*));
-STATIC_DCL void FDECL(topl_putsym, (NHWCHAR_P));
+STATIC_DCL void FDECL(redotoplin, (const char*));
+STATIC_DCL void FDECL(topl_putsym, (CHAR_P));
 STATIC_DCL void NDECL(remember_topl);
 STATIC_DCL void FDECL(removetopl, (int));
 STATIC_DCL void FDECL(msghistory_snapshot, (BOOLEAN_P));
@@ -62,9 +25,9 @@ int
 tty_doprev_message()
 {
     register struct WinDesc *cw = wins[WIN_MESSAGE];
+
     winid prevmsg_win;
     int i;
-
     if ((iflags.prevmsg_window != 's') && !ttyDisplay->inread) { /* not single */
         if(iflags.prevmsg_window == 'f') { /* full */
             prevmsg_win = create_nhwindow(NHW_MENU);
@@ -73,11 +36,11 @@ tty_doprev_message()
             cw->maxcol = cw->maxrow;
             i = cw->maxcol;
             do {
-               if (cw->data[i] && *cw->data[i])
-                   Wputstr(prevmsg_win, 0, cw->data[i]);
+                if(cw->data[i] && strcmp(cw->data[i], "") )
+                    putstr(prevmsg_win, 0, cw->data[i]);
                 i = (i + 1) % cw->rows;
             } while (i != cw->maxcol);
-           Wputstr(prevmsg_win, 0, toplines);
+            putstr(prevmsg_win, 0, toplines);
             display_nhwindow(prevmsg_win, TRUE);
             destroy_nhwindow(prevmsg_win);
         } else if (iflags.prevmsg_window == 'c') {             /* combination */
@@ -104,12 +67,11 @@ tty_doprev_message()
                     cw->maxcol = cw->maxrow;
                     i = cw->maxcol;
                     do {
-                       if (cw->data[i] && *cw->data[i])
-                           Wputstr(prevmsg_win, 0, cw->data[i]);
+                        if(cw->data[i] && strcmp(cw->data[i], "") )
+                            putstr(prevmsg_win, 0, cw->data[i]);
                         i = (i + 1) % cw->rows;
                     } while (i != cw->maxcol);
-
-                   Wputstr(prevmsg_win, 0, toplines);
+                    putstr(prevmsg_win, 0, toplines);
                     display_nhwindow(prevmsg_win, TRUE);
                     destroy_nhwindow(prevmsg_win);
                 }
@@ -121,11 +83,11 @@ tty_doprev_message()
             prevmsg_win = create_nhwindow(NHW_MENU);
             putstr(prevmsg_win, 0, "Message History");
             putstr(prevmsg_win, 0, "");
-           Wputstr(prevmsg_win, 0, toplines);
+            putstr(prevmsg_win, 0, toplines);
             cw->maxcol=cw->maxrow-1;
             if(cw->maxcol < 0) cw->maxcol = cw->rows-1;
             do {
-               Wputstr(prevmsg_win, 0, cw->data[cw->maxcol]);
+                putstr(prevmsg_win, 0, cw->data[cw->maxcol]);
                 cw->maxcol--;
                 if (cw->maxcol < 0) cw->maxcol = cw->rows-1;
                 if (!cw->data[cw->maxcol])
@@ -156,19 +118,19 @@ tty_doprev_message()
 }
 
 STATIC_OVL void
-redotoplin(symstr)
-    const nhwchar *symstr;
+redotoplin(str)
+    const char *str;
 {
        int otoplin = ttyDisplay->toplin;
        home();
-       if (DoGputch(*symstr)) {
+       if(*str & 0x80) {
                /* kludge for the / command, the only time we ever want a */
                /* graphics character on the top line */
-               g_putch((int)*symstr++);
+               g_putch((int)*str++);
                ttyDisplay->curx++;
        }
        end_glyphout(); /* in case message printed during graphics output */
-       putsyms(symstr);
+       putsyms(str);
        cl_end();
        ttyDisplay->toplin = 1;
        if(ttyDisplay->cury && otoplin != 3)
@@ -180,25 +142,25 @@ remember_topl()
 {
     register struct WinDesc *cw = wins[WIN_MESSAGE];
     int idx = cw->maxrow;
-    unsigned len;
+    unsigned len = strlen(toplines) + 1;
 
     if ((cw->flags & WIN_LOCKHISTORY) || !*toplines) return;
 
-    len = Wstrlen(toplines) + 1;
+
     if (len > (unsigned)cw->datlen[idx]) {
        if (cw->data[idx]) free(cw->data[idx]);
        len += (8 - (len & 7));         /* pad up to next multiple of 8 */
-       cw->data[idx] = (nhwchar *)alloc(sizeof(nhwchar) * len);
+       cw->data[idx] = (char *)alloc(len);
        cw->datlen[idx] = (short)len;
     }
-    (void)WWstrcpy(cw->data[idx], toplines);
+    Strcpy(cw->data[idx], toplines);
     *toplines = '\0';
     cw->maxcol = cw->maxrow = (idx + 1) % cw->rows;
 }
 
 void
 addtopl(s)
-const nhwchar *s;
+const char *s;
 {
     register struct WinDesc *cw = wins[WIN_MESSAGE];
 
@@ -219,8 +181,7 @@ more()
 
     if(ttyDisplay->toplin) {
        tty_curs(BASE_WINDOW, cw->curx+1, cw->cury);
-       if(cw->curx >= CO - 8)
-               topl_putsym(T('\n'));
+       if(cw->curx >= CO - 8) topl_putsym('\n');
     }
 
     if(flags.standout)
@@ -249,22 +210,22 @@ more()
 
 void
 update_topl(bp)
-       register const nhwchar *bp;
+       register const char *bp;
 {
-       register nhwchar *tl, *otl;
+       register char *tl, *otl;
        register int n0;
        int notdied = 1;
        struct WinDesc *cw = wins[WIN_MESSAGE];
 
        /* If there is room on the line, print message on same line */
        /* But messages like "You die..." deserve their own line */
-       n0 = Wstrlen(bp);
+       n0 = strlen(bp);
        if ((ttyDisplay->toplin == 1 || (cw->flags & WIN_STOP)) &&
            cw->cury == 0 &&
-           n0 + Wstrlen(toplines) + 3 < CO-8 &&  /* room for --More-- */
-           (notdied = WWstrncmp(bp, T("You die"), 7))) {
-               (void)WWstrcat(toplines, T("  "));
-               (void)WWstrcat(toplines, bp);
+           n0 + (int)strlen(toplines) + 3 < CO-8 &&  /* room for --More-- */
+           (notdied = strncmp(bp, "You die", 7))) {
+               Strcat(toplines, "  ");
+               Strcat(toplines, bp);
                cw->curx += 2;
                if(!(cw->flags & WIN_STOP))
                    addtopl(bp);
@@ -277,7 +238,7 @@ update_topl(bp)
            }
        }
        remember_topl();
-       (void)WWstrncpy(toplines, bp, TBUFSZ);
+       (void) strncpy(toplines, bp, TBUFSZ);
        toplines[TBUFSZ - 1] = 0;
 
        for(tl = toplines; n0 >= CO; ){
@@ -285,11 +246,11 @@ update_topl(bp)
            for(tl+=CO-1; tl != otl && !isspace(*tl); --tl) ;
            if(tl == otl) {
                /* Eek!  A huge token.  Try splitting after it. */
-               tl = Windex(otl, T(' '));
+               tl = index(otl, ' ');
                if (!tl) break;    /* No choice but to spit it out whole. */
            }
-           *tl++ = T('\n');
-           n0 = Wstrlen(tl);
+           *tl++ = '\n';
+           n0 = strlen(tl);
        }
        if(!notdied) cw->flags &= ~WIN_STOP;
        if(!(cw->flags & WIN_STOP)) redotoplin(toplines);
@@ -298,21 +259,21 @@ update_topl(bp)
 STATIC_OVL
 void
 topl_putsym(c)
-    nhwchar c;
+    char c;
 {
     register struct WinDesc *cw = wins[WIN_MESSAGE];
 
     if(cw == (struct WinDesc *) 0) panic("Putsym window MESSAGE nonexistant");
        
     switch(c) {
-    case T('\b'):
+    case '\b':
        if(ttyDisplay->curx == 0 && ttyDisplay->cury > 0)
            tty_curs(BASE_WINDOW, CO, (int)ttyDisplay->cury-1);
        backsp();
        ttyDisplay->curx--;
        cw->curx = ttyDisplay->curx;
        return;
-    case T('\n'):
+    case '\n':
        cl_end();
        ttyDisplay->curx = 0;
        ttyDisplay->cury++;
@@ -323,7 +284,7 @@ topl_putsym(c)
        break;
     default:
        if(ttyDisplay->curx == CO-1)
-           topl_putsym(T('\n')); /* 1 <= curx <= CO; avoid CO */
+           topl_putsym('\n'); /* 1 <= curx <= CO; avoid CO */
 #ifdef WIN32CON
     (void) putchar(c);
 #endif
@@ -337,11 +298,11 @@ topl_putsym(c)
 }
 
 void
-putsyms(symstr)
-    const nhwchar *symstr;
+putsyms(str)
+    const char *str;
 {
-    while(*symstr)
-       topl_putsym(*symstr++);
+    while(*str)
+       topl_putsym(*str++);
 }
 
 STATIC_OVL void
@@ -349,8 +310,7 @@ removetopl(n)
 register int n;
 {
     /* assume addtopl() has been done, so ttyDisplay->toplin is already set */
-    while (n-- > 0)
-       putsyms(T("\b \b"));
+    while (n-- > 0) putsyms("\b \b");
 }
 
 extern char erase_char;                /* from xxxtty.c; don't need kill_char */
@@ -413,7 +373,7 @@ char def;
                    ttyDisplay->inread = sav;
                    tty_clear_nhwindow(WIN_MESSAGE);
                    cw->maxcol = cw->maxrow;
-                   Waddtopl(prompt);
+                   addtopl(prompt);
                } else {
                    if(!doprev)
                        (void) tty_doprev_message(); /* need two initially */
@@ -429,7 +389,7 @@ char def;
                tty_clear_nhwindow(WIN_MESSAGE);
                cw->maxcol = cw->maxrow;
                doprev = 0;
-               Waddtopl(prompt);
+               addtopl(prompt);
                q = '\0';       /* force another loop iteration */
                continue;
            }
@@ -450,14 +410,13 @@ char def;
                tty_nhbell();
                q = (char)0;
            } else if (q == '#' || digit_ok) {
-               char z;
-               nhwchar digit_string[2];
+               char z, digit_string[2];
                int n_len = 0;
                long value = 0;
-               addtopl(T("#")),  n_len++;
-               digit_string[1] = (nhwchar)0;
+               addtopl("#"),  n_len++;
+               digit_string[1] = '\0';
                if (q != '#') {
-                   digit_string[0] = (nhwchar)q;
+                   digit_string[0] = q;
                    addtopl(digit_string),  n_len++;
                    value = q - '0';
                    q = '#';
@@ -467,7 +426,7 @@ char def;
                    if (digit(z)) {
                        value = (10 * value) + (z - '0');
                        if (value < 0) break;   /* overflow: try again */
-                       digit_string[0] = (nhwchar)z;
+                       digit_string[0] = z;
                        addtopl(digit_string),  n_len++;
                    } else if (z == 'y' || index(quitchars, z)) {
                        if (z == '\033')  value = -1;   /* abort */
@@ -492,7 +451,7 @@ char def;
 
        if (q != '#') {
                Sprintf(rtmp, "%c", q);
-               Waddtopl(rtmp);
+               addtopl(rtmp);
        }
     clean_up:
        ttyDisplay->inread--;
@@ -505,7 +464,7 @@ char def;
 }
 
 /* shared by tty_getmsghistory() and tty_putmsghistory() */
-static nhwchar **snapshot_mesgs = 0;
+static char **snapshot_mesgs = 0;
 
 /* collect currently available message history data into a sequential array;
    optionally, purge that data from the active circular buffer set as we go */
@@ -513,7 +472,7 @@ STATIC_OVL void
 msghistory_snapshot(purge)
 boolean purge;         /* clear message history buffer as we copy it */
 {
-    nhwchar *mesg;
+    char *mesg;
     int i, inidx, outidx;
     struct WinDesc *cw;
 
@@ -528,24 +487,24 @@ boolean purge;            /* clear message history buffer as we copy it */
        history updating to take place because that could clobber them */
     if (!purge) cw->flags |= WIN_LOCKHISTORY;
 
-    snapshot_mesgs = (nhwchar **)alloc((cw->rows + 1) * sizeof (nhwchar *));
+    snapshot_mesgs = (char **)alloc((cw->rows + 1) * sizeof (char *));
     outidx = 0;
     inidx = cw->maxrow;
     for (i = 0; i < cw->rows; ++i) {
-       snapshot_mesgs[i] = (nhwchar *)0;
+       snapshot_mesgs[i] = (char *)0;
        mesg = cw->data[inidx];
        if (mesg && *mesg) {
            snapshot_mesgs[outidx++] = mesg;
            if (purge) {
                /* we're taking this pointer away; subsequest history
                   updates will eventually allocate a new one to replace it */
-               cw->data[inidx] = (nhwchar *)0;
+               cw->data[inidx] = (char *)0;
                cw->datlen[inidx] = 0;
            }
        }
        inidx = (inidx + 1) % cw->rows;
     }
-    snapshot_mesgs[cw->rows] = (nhwchar *)0;   /* sentinel */
+    snapshot_mesgs[cw->rows] = (char *)0;      /* sentinel */
 
     /* for a destructive snapshot, history is now completely empty */
     if (purge) cw->maxcol = cw->maxrow = 0;
@@ -565,7 +524,7 @@ boolean purged;     /* True: took history's pointers, False: just cloned them */
                free((genericptr_t)snapshot_mesgs[i]);
        }
 
-       free((genericptr_t)snapshot_mesgs), snapshot_mesgs = (nhwchar **)0;
+       free((genericptr_t)snapshot_mesgs), snapshot_mesgs = (char **)0;
 
        /* history can resume being updated at will now... */
        if (!purged) wins[WIN_MESSAGE]->flags &= ~WIN_LOCKHISTORY;
@@ -587,7 +546,7 @@ tty_getmsghistory(init)
 boolean init;
 {
     static int nxtidx;
-    nhwchar *nextmesg;
+    char *nextmesg;
     char *result = 0;
 
     if (init) {
@@ -598,11 +557,7 @@ boolean init;
     if (snapshot_mesgs) {
        nextmesg = snapshot_mesgs[nxtidx++];
        if (nextmesg) {
-#ifdef UNICODE_WIDEWINPORT
-           result = WNstrcpy(topl_nbuf, nextmesg);     /* wide-to-narrow */
-#else
            result = (char *)nextmesg;
-#endif
        } else {
            free_msghistory_snapshot(FALSE);
        }
@@ -648,12 +603,12 @@ boolean restoring_msghist;
     if (msg) {
        /* move most recent message to history, make this become most recent */
        remember_topl();
-       (void)NWstrcpy(toplines, msg);                  /* narrow-to-wide */
+       Strcpy(toplines, msg);
     } else if (snapshot_mesgs) {
        /* done putting arbitrary messages in; put the snapshot ones back */
        for (idx = 0; snapshot_mesgs[idx]; ++idx) {
            remember_topl();
-           (void)WWstrcpy(toplines, snapshot_mesgs[idx]);  /* wide-to-wide */
+           Strcpy(toplines, snapshot_mesgs[idx]);
        }
        /* now release the snapshot */
        free_msghistory_snapshot(TRUE);
index d4c921501ea23f3e3f6ffb12a5d94317784e5308..a526897b734515d5fcea600d64856611cf1b4216 100644 (file)
@@ -43,11 +43,6 @@ extern char mapped_menu_cmds[]; /* from options.c */
 /* this is only needed until tty_status_* routines are written */
 extern NEARDATA winid WIN_STATUS;
 
-#ifdef UNICODE_WIDEWINPORT
-void FDECL(tty_putmixed,(winid,int,const char *));
-void FDECL(tty_putstr_core,(winid,int,const nhwchar *));
-#endif
-
 /* Interface definition, for windows.c */
 struct window_procs tty_procs = {
     "tty",
@@ -75,11 +70,7 @@ struct window_procs tty_procs = {
     tty_destroy_nhwindow,
     tty_curs,
     tty_putstr,
-#ifdef UNICODE_WIDEWINPORT
-    tty_putmixed,
-#else
     genl_putmixed,
-#endif
     tty_display_file,
     tty_start_menu,
     tty_add_menu,
@@ -151,12 +142,7 @@ static char obuf[BUFSIZ];  /* BUFSIZ is defined in stdio.h */
 #endif
 
 static char winpanicstr[] = "Bad window id %d";
-#ifdef UNICODE_WIDEWINPORT
-nhwchar defmorestr[] = L"--More--";
-#else
-nhwchar defmorestr[] = "--More--";
-#endif
-nhwchar emptysym[1] = {0};
+char defmorestr[] = "--More--";
 
 #ifdef CLIPPING
 # if defined(USE_TILES) && defined(MSDOS)
@@ -196,11 +182,8 @@ STATIC_DCL void FDECL(process_menu_window, (winid,struct WinDesc *));
 STATIC_DCL void FDECL(process_text_window, (winid,struct WinDesc *));
 STATIC_DCL tty_menu_item *FDECL(reverse, (tty_menu_item *));
 STATIC_DCL const char * FDECL(compress_str, (const char *));
-STATIC_DCL void FDECL(tty_putsym, (winid, int, int, NHWCHAR_P));
+STATIC_DCL void FDECL(tty_putsym, (winid, int, int, CHAR_P));
 STATIC_DCL char *FDECL(copy_of, (const char *));
-#ifdef UNICODE_WIDEWINPORT
-STATIC_DCL nhwchar *FDECL(nhwchar_copy_of, (const nhwchar *));
-#endif
 STATIC_DCL void FDECL(bail, (const char *));   /* __attribute__((noreturn)) */
 
 /*
@@ -295,11 +278,7 @@ if(wc_tracelogf)
                    for(i=WIN_INVEN; i < MAXWIN; i++)
                        if(wins[i] && wins[i]->active) {
                            /* cop-out */
-#ifdef UNICODE_WIDEWINPORT
-                           addtopl(L"Press Return to continue: ");
-#else
                            addtopl("Press Return to continue: ");
-#endif
                            break;
                        }
                (void) fflush(stdout);
@@ -1120,24 +1099,24 @@ tty_create_nhwindow(type)
 
     if(newwin->maxrow) {
        newwin->data =
-               (nhwchar **) alloc(sizeof(nhwchar *) * (unsigned)newwin->maxrow);
+               (char **) alloc(sizeof(char *) * (unsigned)newwin->maxrow);
        newwin->datlen =
                (short *) alloc(sizeof(short) * (unsigned)newwin->maxrow);
        if(newwin->maxcol) {
            for (i = 0; i < newwin->maxrow; i++) {
-               newwin->data[i] = (nhwchar *) alloc(sizeof(nhwchar) * (unsigned)newwin->maxcol);
+               newwin->data[i] = (char *) alloc((unsigned)newwin->maxcol);
                newwin->datlen[i] = newwin->maxcol;
            }
        } else {
            for (i = 0; i < newwin->maxrow; i++) {
-               newwin->data[i] = (nhwchar *) 0;
+               newwin->data[i] = (char *) 0;
                newwin->datlen[i] = 0;
            }
        }
        if(newwin->type == NHW_MESSAGE)
            newwin->maxrow = 0;
     } else {
-       newwin->data = (nhwchar **)0;
+       newwin->data = (char **)0;
        newwin->datlen = (short *)0;
     }
 
@@ -1175,12 +1154,12 @@ free_window_info(cw, free_data)
        for(i=0; i<cw->maxrow; i++)
            if(cw->data[i]) {
                free((genericptr_t)cw->data[i]);
-               cw->data[i] = (nhwchar *)0;
+               cw->data[i] = (char *)0;
                if (cw->datlen) cw->datlen[i] = 0;
            }
        if (free_data) {
            free((genericptr_t)cw->data);
-           cw->data = (nhwchar **)0;
+           cw->data = (char **)0;
            if (cw->datlen) free((genericptr_t)cw->datlen);
            cw->datlen = (short *)0;
            cw->rows = 0;
@@ -1254,25 +1233,15 @@ dmore(cw, s)
     register struct WinDesc *cw;
     const char *s;                     /* valid responses */
 {
-#ifdef UNICODE_WIDEWINPORT
-    char buf[BUFSZ];
-#endif
-    const nhwchar *prompt = cw->morestr ? cw->morestr : defmorestr;
-
+    const char *prompt = cw->morestr ? cw->morestr : defmorestr;
     int offset = (cw->type == NHW_TEXT) ? 1 : 2;
 
     tty_curs(BASE_WINDOW,
             (int)ttyDisplay->curx + offset, (int)ttyDisplay->cury);
     if(flags.standout)
        standoutbeg();
-#ifdef UNICODE_WIDEWINPORT
-    strnhwcpy(buf, prompt);
-    xputs(buf);
-    ttyDisplay->curx += strlen(buf);    
-#else
     xputs(prompt);
     ttyDisplay->curx += strlen(prompt);
-#endif
     if(flags.standout)
        standoutend();
 
@@ -1387,13 +1356,13 @@ struct WinDesc *cw;
     long count;
     int n, curr_page, page_lines;
     boolean finished, counting, reset_count;
-    char *cp, *rp, resp[QBUFSZ], gacc[QBUFSZ];
-    nhwchar *msave, *morestr;
+    char *cp, *rp, resp[QBUFSZ], gacc[QBUFSZ],
+        *msave, *morestr;
 
     curr_page = page_lines = 0;
     page_start = page_end = 0;
     msave = cw->morestr;       /* save the morestr */
-    cw->morestr = morestr = (nhwchar*) alloc(sizeof(nhwchar) * (unsigned) QBUFSZ);
+    cw->morestr = morestr = (char*) alloc((unsigned) QBUFSZ);
     counting = FALSE;
     count = 0L;
     reset_count = TRUE;
@@ -1510,41 +1479,20 @@ struct WinDesc *cw;
            Strcat(resp, gacc);                 /* group accelerators */
            Strcat(resp, mapped_menu_cmds);
 
-           if (cw->npages > 1) {
-#ifdef UNICODE_WIDEWINPORT
-               char buf[BUFSZ];
-               Sprintf(buf, "(%d of %d)",
-                       curr_page + 1, (int) cw->npages);
-               (void)nhwstrcpy(cw->morestr, buf);
-#else
+           if (cw->npages > 1)
                Sprintf(cw->morestr, "(%d of %d)",
                        curr_page + 1, (int) cw->npages);
-#endif
-           } else if (msave) {
-#ifdef UNICODE_WIDEWINPORT
-               (void)nhwcpy(cw->morestr, msave);
-#else
+           else if (msave)
                Strcpy(cw->morestr, msave);
-#endif
-           } else {
-#ifdef UNICODE_WIDEWINPORT
-               (void)nhwcpy(cw->morestr, defmorestr);
-#else
+           else
                Strcpy(cw->morestr, defmorestr);
-#endif
-           }
+
            tty_curs(window, 1, page_lines);
            cl_end();
            dmore(cw, resp);
        } else {
            /* just put the cursor back... */
-           tty_curs(window, 
-#ifdef UNICODE_WIDEWINPORT
-                       (int) nhwlen(cw->morestr) + 2,
-#else
-                       (int) strlen(cw->morestr) + 2, 
-#endif
-                       page_lines);
+           tty_curs(window, (int) strlen(cw->morestr) + 2, page_lines);
            xwaitforspace(resp);
        }
 
@@ -1708,7 +1656,7 @@ winid window;
 struct WinDesc *cw;
 {
     int i, n, attr;
-    register nhwchar *cp;
+    register char *cp;
 
     for (n = 0, i = 0; i < cw->maxrow; i++) {
        if (!cw->offx && (n + cw->offy == ttyDisplay->rows - 1)) {
@@ -1746,11 +1694,7 @@ struct WinDesc *cw;
                    *cp && (int) ttyDisplay->curx < (int) ttyDisplay->cols;
                    cp++, ttyDisplay->curx++)
 #endif
-#ifdef UNICODE_WIDEWINPORT
-               u_putch(*cp);
-#else
                (void) putchar(*cp);
-#endif
            term_end_attr(attr);
        }
     }
@@ -1996,7 +1940,7 @@ STATIC_OVL void
 tty_putsym(window, x, y, ch)
     winid window;
     int x, y;
-    nhwchar ch;
+    char ch;
 {
     register struct WinDesc *cw = 0;
 
@@ -2008,11 +1952,7 @@ tty_putsym(window, x, y, ch)
     case NHW_MAP:
     case NHW_BASE:
        tty_curs(window, x, y);
-#ifdef UNICODE_WIDEWINPORT
-       u_putch(ch);
-#else
        (void) putchar(ch);
-#endif
        ttyDisplay->curx++;
        cw->curx++;
        break;
@@ -2055,14 +1995,9 @@ tty_putstr(window, attr, str)
     const char *str;
 {
     register struct WinDesc *cw = 0;
-#ifdef UNICODE_WIDEWINPORT
-    nhwchar symbuf[BUFSZ];
-    register const nhwchar *symstr = symbuf;
-#else
-    register const nhwchar *nb;
-    register nhwchar *ob;
+    register char *ob;
+    register const char *nb;
     register int i, j, n0;
-#endif
 
     /* Assume there's a real problem if the window is missing --
      * probably a panic message
@@ -2077,52 +2012,21 @@ tty_putstr(window, attr, str)
        return;
     if(cw->type != NHW_MESSAGE)
        str = compress_str(str);
-#if defined(USER_SOUNDS) && defined(WIN32CON)
-    else 
-       play_sound_for_message(str);
-#endif
-
-#ifdef UNICODE_WIDEWINPORT
-    nhwstrcpy(symbuf, str);
-    tty_putstr_core(window, attr, symstr);
-}
-
-void
-tty_putstr_core(window, attr, symstr)
-    winid window;
-    int attr;
-    const nhwchar *symstr;
-{
-    register struct WinDesc *cw = wins[window];
-    register const nhwchar *nb;
-    register nhwchar *ob;
-    register int i, j, n0;
-#endif
 
     ttyDisplay->lastwin = window;
 
     switch(cw->type) {
     case NHW_MESSAGE:
        /* really do this later */
-#ifdef UNICODE_WIDEWINPORT
-       update_topl(symstr);
-#else
-       update_topl(str);
+#if defined(USER_SOUNDS) && defined(WIN32CON)
+       play_sound_for_message(str);
 #endif
+       update_topl(str);
        break;
 
     case NHW_STATUS:
        ob = &cw->data[cw->cury][j = cw->curx];
        if(context.botlx) *ob = 0;
-#ifdef UNICODE_WIDEWINPORT
-       if(!cw->cury && (int)nhwlen(symstr) >= CO) {
-           /* the characters before "St:" are unnecessary */
-           nb = nhwindex(symstr, L':');
-           if(nb && nb > symstr+2)
-               symstr = nb - 2;
-       }
-       nb = symstr;
-#else
        if(!cw->cury && (int)strlen(str) >= CO) {
            /* the characters before "St:" are unnecessary */
            nb = index(str, ':');
@@ -2130,8 +2034,6 @@ tty_putstr_core(window, attr, symstr)
                str = nb - 2;
        }
        nb = str;
-#endif
-
        for(i = cw->curx+1, n0 = cw->cols; i < n0; i++, nb++) {
            if(!*nb) {
                if(*ob || context.botlx) {
@@ -2146,31 +2048,19 @@ tty_putstr_core(window, attr, symstr)
            if(*ob) ob++;
        }
 
-#ifdef UNICODE_WIDEWINPORT
-       (void) nhwncpy(&cw->data[cw->cury][j], symstr, cw->cols - j - 1);
-#else
        (void) strncpy(&cw->data[cw->cury][j], str, cw->cols - j - 1);
-#endif
-       cw->data[cw->cury][cw->cols-1] = (nhwchar)0; /* null terminate */
+       cw->data[cw->cury][cw->cols-1] = '\0'; /* null terminate */
        cw->cury = (cw->cury+1) % 2;
        cw->curx = 0;
        break;
     case NHW_MAP:
        tty_curs(window, cw->curx+1, cw->cury);
        term_start_attr(attr);
-#ifdef UNICODE_WIDEWINPORT
-       while(*symstr && (int) ttyDisplay->curx < (int) ttyDisplay->cols-1) {
-           u_putch(*symstr);
-           symstr++;
-           ttyDisplay->curx++;
-       }
-#else
        while(*str && (int) ttyDisplay->curx < (int) ttyDisplay->cols-1) {
            (void) putchar(*str);
            str++;
            ttyDisplay->curx++;
        }
-#endif
        cw->curx = 0;
        cw->cury++;
        term_end_attr(attr);
@@ -2178,23 +2068,14 @@ tty_putstr_core(window, attr, symstr)
     case NHW_BASE:
        tty_curs(window, cw->curx+1, cw->cury);
        term_start_attr(attr);
-#ifdef UNICODE_WIDEWINPORT
-       while (*symstr) {
-#else
        while (*str) {
-#endif
            if ((int) ttyDisplay->curx >= (int) ttyDisplay->cols-1) {
                cw->curx = 0;
                cw->cury++;
                tty_curs(window, cw->curx+1, cw->cury);
            }
-#ifdef UNICODE_WIDEWINPORT
-           u_putch(*symstr);
-           symstr++;
-#else
            (void) putchar(*str);
            str++;
-#endif
            ttyDisplay->curx++;
        }
        cw->curx = 0;
@@ -2221,10 +2102,10 @@ tty_putstr_core(window, attr, symstr)
        }
        /* always grows one at a time, but alloc 12 at a time */
        if(cw->cury >= cw->rows) {
-           nhwchar **tmp;
+           char **tmp;
 
            cw->rows += 12;
-           tmp = (nhwchar **) alloc(sizeof(nhwchar *) * (unsigned)cw->rows);
+           tmp = (char **) alloc(sizeof(char *) * (unsigned)cw->rows);
            for(i=0; i<cw->maxrow; i++)
                tmp[i] = cw->data[i];
            if(cw->data)
@@ -2236,19 +2117,10 @@ tty_putstr_core(window, attr, symstr)
        }
        if(cw->data[cw->cury])
            free((genericptr_t)cw->data[cw->cury]);
-#ifdef UNICODE_WIDEWINPORT
-       n0 = nhwlen(symstr) + 1;
-#else
        n0 = strlen(str) + 1;
-#endif
-
-       ob = cw->data[cw->cury] = (nhwchar *)alloc(sizeof(nhwchar) * ((unsigned)n0 + 1));
-       *ob++ = (nhwchar)(attr + 1);    /* avoid nuls, for convenience */
-#ifdef UNICODE_WIDEWINPORT
-       (void)nhwcpy(ob, symstr);
-#else
+       ob = cw->data[cw->cury] = (char *)alloc((unsigned)n0 + 1);
+       *ob++ = (char)(attr + 1);       /* avoid nuls, for convenience */
        Strcpy(ob, str);
-#endif
 
        if(n0 > cw->maxcol)
            cw->maxcol = n0;
@@ -2256,19 +2128,11 @@ tty_putstr_core(window, attr, symstr)
            cw->maxrow = cw->cury;
        if(n0 > CO) {
            /* attempt to break the line */
-#ifdef UNICODE_WIDEWINPORT
-           for(i = CO-1; i && symstr[i] != L' ' && symstr[i] != L'\n';)
-#else
            for(i = CO-1; i && str[i] != ' ' && str[i] != '\n';)
-#endif
                i--;
            if(i) {
-               cw->data[cw->cury-1][++i] = (nhwchar)0;
-#ifdef UNICODE_WIDEWINPORT
-               tty_putstr_core(window, attr, &symstr[i]);
-#else
+               cw->data[cw->cury-1][++i] = '\0';
                tty_putstr(window, attr, &str[i]);
-#endif
            }
 
        }
@@ -2276,60 +2140,6 @@ tty_putstr_core(window, attr, symstr)
     }
 }
 
-#ifdef UNICODE_WIDEWINPORT
-/*
- * This differs from putstr() because the str parameter can
- * contain a sequence of characters representing:
- *        \GXXXXNNNN   a glyph value, encoded by encglyph().
- *
- */
-void
-tty_putmixed(window, attr, str)
-    winid window;
-    int attr;
-    const char *str;
-{
-       nhwchar wbuf[BUFSZ];
-       const char *cp = str;
-       nhwchar *put = wbuf;
-       while (*cp) {
-           if (*cp == '\\') {
-               int rndchk = 0, so = 0, gv = 0, ch, oc, dcount;
-               unsigned os;
-               const char *dp, *hex = "00112233445566778899aAbBcCdDeEfF";
-               const char *save_cp = cp;
-               
-               cp++;
-               switch(*cp) {
-               case 'G':       /* glyph value \GXXXXNNNN*/
-                   dcount = 0;
-                   for (++cp; *cp && (dp = index(hex, *cp)) && (dcount++ < 4); cp++)
-                       rndchk = (int)((rndchk * 16) + ((int)(dp - hex) / 2));
-
-                   if (rndchk == context.rndencode) {
-                       dcount = 0;
-                       for (; *cp && (dp = index(hex, *cp)) && (dcount++ < 4); cp++)
-                           gv = (int)((gv * 16) + ((int)(dp - hex) / 2));
-                       so = mapglyph(gv, &ch, &oc, &os, 0, 0);
-                       *put++ = (nhwchar)showsyms[so];
-                       continue;
-                   } else {
-                       /* possible forgery - leave it the way it is */
-                       cp = save_cp;
-                   }
-                   break;
-               case '\\':
-                   break;
-               }
-           }
-           *put++ = (nhwchar)*cp++;
-       }
-       *put = (nhwchar)0;
-       /* now send it to tty_putstr_core() */
-       tty_putstr_core(window, attr, wbuf);
-}
-#endif /*UNICODE_WIDEWINPORT*/
-
 void
 tty_display_file(fname, complain)
 const char *fname;
@@ -2515,7 +2325,7 @@ tty_end_menu(window, prompt)
     /* Reverse the list so that items are in correct order. */
     cw->mlist = reverse(cw->mlist);
 
-    /* Put the prompt at the beginning of the menu. */
+    /* Put the promt at the beginning of the menu. */
     if (prompt) {
        anything any;
 
@@ -2567,19 +2377,10 @@ tty_end_menu(window, prompt)
        /* produce the largest demo string */
        Sprintf(buf, "(%d of %d) ", cw->npages, cw->npages);
        len = strlen(buf);
-#ifdef UNICODE_WIDEWINPORT
-       cw->morestr = nhwchar_copy_of(emptysym);
-#else
        cw->morestr = copy_of("");
-#endif
     } else {
-#ifdef UNICODE_WIDEWINPORT
-       cw->morestr = nhwchar_copy_of(L"(end) ");
-       len = nhwlen(cw->morestr);
-#else
        cw->morestr = copy_of("(end) ");
        len = strlen(cw->morestr);
-#endif
     }
 
     if (len > (int)ttyDisplay->cols) {
@@ -2699,11 +2500,7 @@ tty_wait_synch()
     } else {
        tty_display_nhwindow(WIN_MAP, FALSE);
        if(ttyDisplay->inmore) {
-#ifdef UNICODE_WIDEWINPORT
-           addtopl(L"--More--");
-#else
            addtopl("--More--");
-#endif
            (void) fflush(stdout);
        } else if(ttyDisplay->inread > program_state.gameover) {
            /* this can only happen if we were reading and got interrupted */
@@ -2775,58 +2572,6 @@ end_glyphout()
 #endif
 }
 
-#ifdef UNICODE_WIDEWINPORT
-/*
- * Parts of u_putch() were contributed by Adam Wozniak, 2005.
- */
-void
-u_putch(sym)
-nhwchar sym;
-{
-    unsigned long unicode = sym;
-    if (!iflags.unicodedisp)
-       putchar((char)sym);
-    else {
-#if defined(UNIX) || defined(VMS)
-       /* send utf8 to display */
-       if (unicode < 0x80) {
-               (void) putchar(unicode);
-       } else if (unicode < 0x00000800) {
-               (void) putchar(0xC0 | (unicode >> 6));
-               (void) putchar(0x80 | (unicode & 0x3F));
-       } else if (unicode < 0x00010000) {
-               (void) putchar(0xE0 | (unicode >> 12));
-               (void) putchar(0x80 | ((unicode >> 6) & 0x3F));
-               (void) putchar(0x80 | (unicode & 0x3F));
-       } else if (unicode < 0x00200000) {
-               (void) putchar(0xF0 | (unicode >> 18));
-               (void) putchar(0x80 | ((unicode >> 12) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 6) & 0x3F));
-               (void) putchar(0x80 | (unicode & 0x3F));
-       } else if (unicode < 0x04000000) {
-               (void) putchar(0xF8 | (unicode >> 24));
-               (void) putchar(0x80 | ((unicode >> 18) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 12) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 6) & 0x3F));
-               (void) putchar(0x80 | (unicode & 0x3F));
-       } else {
-               (void) putchar(0xFC | (unicode >> 30));
-               (void) putchar(0x80 | ((unicode >> 24) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 18) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 12) & 0x3F));
-               (void) putchar(0x80 | ((unicode >> 6) & 0x3F));
-               (void) putchar(0x80 | (unicode & 0x3F));
-       }
-#else
-       /* it is assumed that whatever is being substituted for
-          putchar() can handle unicode characters directly at
-          this point (nttty's xputc() for example) */
-       (void) putchar(sym);
-#endif
-    }
-}
-#endif /*UNICODE_WIDEWINPORT*/
-
 #ifndef WIN32
 void
 g_putch(in_ch)
@@ -2835,11 +2580,6 @@ int in_ch;
     register char ch = (char)in_ch;
 
 # if defined(ASCIIGRAPH) && !defined(NO_TERMS)
-#  if defined(UNICODE_WIDEWINPORT) && defined(UNICODE_DRAWING)
-    if (iflags.unicodedisp && symset[currentgraphics].name) {
-       u_putch(in_ch);
-    } else
-#  endif
     if (SYMHANDLING(H_IBM) || iflags.eight_bit_tty) {
        /* IBM-compatible displays don't need other stuff */
        (void) putchar(ch);
@@ -2923,9 +2663,9 @@ tty_print_glyph(window, x, y, glyph)
     xchar x, y;
     int glyph;
 {
-    int ch, idx;
+    int ch;
     boolean reverse_on = FALSE;
-    int        color;
+    int            color;
     unsigned special;
     
 #ifdef CLIPPING
@@ -2935,7 +2675,7 @@ tty_print_glyph(window, x, y, glyph)
     }
 #endif
     /* map glyph to character and color */
-    idx = mapglyph(glyph, &ch, &color, &special, x, y);
+    (void)mapglyph(glyph, &ch, &color, &special, x, y);
 
     /* Move the cursor. */
     tty_curs(window, x,y);
@@ -2968,11 +2708,6 @@ tty_print_glyph(window, x, y, glyph)
     if (iflags.grmode && iflags.tile_view)
       xputg(glyph,ch,special);
     else
-#endif
-#if defined(UNICODE_WIDEWINPORT) && defined(UNICODE_DRAWING)
-    if (iflags.unicodedisp && symset[currentgraphics].name)
-       g_putch(showsyms[idx]); /* use the unicode symset */
-    else
 #endif
        g_putch(ch);            /* print the character */
 
@@ -3127,15 +2862,6 @@ copy_of(s)
     return strcpy((char *) alloc((unsigned) (strlen(s) + 1)), s);
 }
 
-# ifdef UNICODE_WIDEWINPORT
-STATIC_OVL nhwchar *
-nhwchar_copy_of(s)
-    const nhwchar *s;
-{
-    if (!s) s = emptysym;
-    return nhwcpy((nhwchar *) alloc(sizeof(nhwchar) * (unsigned) (nhwlen(s) + 1)), s);
-}
-# endif /*UNICODE_WIDEWINPORT*/
 #endif /* TTY_GRAPHICS */
 
 /*wintty.c*/