X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_acs.c;h=c552f253fa61cb50776405e399cdeb930c2fc3a4;hp=5be3659f021f2f8f4728ed148fa01e5296a10ee9;hb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;hpb=2a250f30ac496bb8a383036dcbd4ec0218c98ac5 diff --git a/ncurses/tinfo/lib_acs.c b/ncurses/tinfo/lib_acs.c index 5be3659f..c552f253 100644 --- a/ncurses/tinfo/lib_acs.c +++ b/ncurses/tinfo/lib_acs.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,7 +39,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_acs.c,v 1.41 2009/10/04 00:26:54 tom Exp $") +MODULE_ID("$Id: lib_acs.c,v 1.47 2018/05/05 17:35:53 tom Exp $") #if BROKEN_LINKER || USE_REENTRANT #define MyBuffer _nc_prescreen.real_acs_map @@ -93,7 +93,7 @@ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) if (real_map != fake_map) { for (j = 1; j < ACS_LEN; ++j) { real_map[j] = 0; - fake_map[j] = A_ALTCHARSET | j; + fake_map[j] = A_ALTCHARSET | (chtype) j; if (SP_PARM) SP_PARM->_screen_acs_map[j] = FALSE; } @@ -166,13 +166,12 @@ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) real_map['E'] = '+'; /* large plus or crossover */ #ifdef USE_TERM_DRIVER - CallDriver_2(SP_PARM, initacs, real_map, fake_map); + CallDriver_2(SP_PARM, td_initacs, real_map, fake_map); #else if (ena_acs != NULL) { - TPUTS_TRACE("ena_acs"); - putp(ena_acs); + NCURSES_PUTP2("ena_acs", ena_acs); } -#if NCURSES_EXT_FUNCS +#if NCURSES_EXT_FUNCS && defined(enter_pc_charset_mode) && defined(exit_pc_charset_mode) /* * Linux console "supports" the "PC ROM" character set by the coincidence * that smpch/rmpch and smacs/rmacs have the same values. ncurses has @@ -189,7 +188,7 @@ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) size_t i; for (i = 1; i < ACS_LEN; ++i) { if (real_map[i] == 0) { - real_map[i] = i; + real_map[i] = (chtype) i; if (real_map != fake_map) { if (SP != 0) SP->_screen_acs_map[i] = TRUE; @@ -206,8 +205,13 @@ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) while (i + 1 < length) { if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) { real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET; - if (SP != 0) + T(("#%d real_map[%s] = %s", + (int) i, + _tracechar(UChar(acs_chars[i])), + _tracechtype(real_map[UChar(acs_chars[i])]))); + if (SP != 0) { SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE; + } } i += 2; }