diff --git a/dat/symbols b/dat/symbols index 8f396582b..108d761d1 100644 --- a/dat/symbols +++ b/dat/symbols @@ -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 - diff --git a/include/config.h b/include/config.h index 3bddda18b..c13b2dd01 100644 --- a/include/config.h +++ b/include/config.h @@ -315,10 +315,6 @@ */ #endif /* CHDIR */ -/* - * Enable some UNICODE support. - */ -/*#define UNICODE_SUPPORT */ /* master on/off for any unicode support */ /* diff --git a/include/decl.h b/include/decl.h index 92f1e8240..f9d4a7b7c 100644 --- a/include/decl.h +++ b/include/decl.h @@ -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) */ diff --git a/include/extern.h b/include/extern.h index bfd361326..c3004a0a0 100644 --- a/include/extern.h +++ b/include/extern.h @@ -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 ### */ diff --git a/include/flag.h b/include/flag.h index 2b5d2c3ee..de2b63e84 100644 --- a/include/flag.h +++ b/include/flag.h @@ -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 */ diff --git a/include/global.h b/include/global.h index e3292e243..6179409bb 100644 --- a/include/global.h +++ b/include/global.h @@ -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 -#include -#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 */ diff --git a/include/ntconf.h b/include/ntconf.h index 4ad1a6e73..95a506635 100644 --- a/include/ntconf.h +++ b/include/ntconf.h @@ -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 diff --git a/include/rm.h b/include/rm.h index 2fa3da6b6..c007f6a4f 100644 --- a/include/rm.h +++ b/include/rm.h @@ -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]; diff --git a/include/tradstdc.h b/include/tradstdc.h index 480ea7878..dc75bc393 100644 --- a/include/tradstdc.h +++ b/include/tradstdc.h @@ -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. */ diff --git a/include/wintty.h b/include/wintty.h index a2ed1e009..507804a9f 100644 --- a/include/wintty.h +++ b/include/wintty.h @@ -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 **)); diff --git a/src/decl.c b/src/decl.c index f7601bda0..6c83f0f14 100644 --- a/src/decl.c +++ b/src/decl.c @@ -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 */ diff --git a/src/drawing.c b/src/drawing.c index 7fb0d461a..a5cc10d46 100644 --- a/src/drawing.c +++ b/src/drawing.c @@ -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, }; diff --git a/src/files.c b/src/files.c index cb7363399..7ba180547 100644 --- a/src/files.c +++ b/src/files.c @@ -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 ----------- */ diff --git a/src/hacklib.c b/src/hacklib.c index 398b96dd4..4565f6d65 100644 --- a/src/hacklib.c +++ b/src/hacklib.c @@ -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*/ diff --git a/src/mapglyph.c b/src/mapglyph.c index c00d6f8ad..e44265d3a 100644 --- a/src/mapglyph.c +++ b/src/mapglyph.c @@ -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*/ diff --git a/src/options.c b/src/options.c index 97378888a..1c63c5ed5 100644 --- a/src/options.c +++ b/src/options.c @@ -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[] = { "", diff --git a/src/pager.c b/src/pager.c index 4d734e5ef..4e8008c1b 100644 --- a/src/pager.c +++ b/src/pager.c @@ -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", diff --git a/src/pline.c b/src/pline.c index bd80a040f..3ee998684 100644 --- a/src/pline.c +++ b/src/pline.c @@ -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); diff --git a/sys/winnt/nttty.c b/sys/winnt/nttty.c index a0f9d95fe..9b9b186bc 100644 --- a/sys/winnt/nttty.c +++ b/sys/winnt/nttty.c @@ -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); diff --git a/win/tty/getline.c b/win/tty/getline.c index 2dd90ae3f..4a2d8c251 100644 --- a/win/tty/getline.c +++ b/win/tty/getline.c @@ -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 */ diff --git a/win/tty/topl.c b/win/tty/topl.c index 3efb52696..db307b73a 100644 --- a/win/tty/topl.c +++ b/win/tty/topl.c @@ -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. */ @@ -15,44 +14,8 @@ #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); diff --git a/win/tty/wintty.c b/win/tty/wintty.c index d4c921501..a526897b7 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -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; imaxrow; 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; imaxrow; 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*/