X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_acs.c;h=d0bec27c73a3c7d76ded1e7236afc438ec8ea5ae;hp=b7909f05c272515a672e7b1fac70526b48813982;hb=404cc3f5b0751dd219565139f825c5a4d445f651;hpb=7a27c7d49c2e8b4a1ecbe85b4423d647cbc75ea5 diff --git a/ncurses/tinfo/lib_acs.c b/ncurses/tinfo/lib_acs.c index b7909f05..d0bec27c 100644 --- a/ncurses/tinfo/lib_acs.c +++ b/ncurses/tinfo/lib_acs.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 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 * @@ -35,12 +35,16 @@ #include #include /* ena_acs, acs_chars */ -MODULE_ID("$Id: lib_acs.c,v 1.33 2007/04/21 23:31:24 tom Exp $") +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_acs.c,v 1.39 2009/05/10 00:48:29 tom Exp $") #if BROKEN_LINKER || USE_REENTRANT #define MyBuffer _nc_prescreen.real_acs_map -NCURSES_EXPORT_VAR(chtype *) -_nc_acs_map(void) +NCURSES_EXPORT(chtype *) +NCURSES_PUBLIC_VAR(acs_map) (void) { if (MyBuffer == 0) MyBuffer = typeCalloc(chtype, ACS_LEN); @@ -48,7 +52,7 @@ _nc_acs_map(void) } #undef MyBuffer #else -NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] = +NCURSES_EXPORT_VAR (chtype) acs_map[ACS_LEN] = { 0 }; @@ -57,6 +61,9 @@ NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] = NCURSES_EXPORT(void) _nc_init_acs(void) { +#if NCURSES_SP_FUNCS + SCREEN *sp = CURRENT_SCREEN; +#endif chtype *fake_map = acs_map; chtype *real_map = SP != 0 ? SP->_acs_map : fake_map; int j; @@ -72,7 +79,8 @@ _nc_init_acs(void) for (j = 1; j < ACS_LEN; ++j) { real_map[j] = 0; fake_map[j] = A_ALTCHARSET | j; - SP->_screen_acs_map[j] = FALSE; + if (SP) + SP->_screen_acs_map[j] = FALSE; } } else { for (j = 1; j < ACS_LEN; ++j) { @@ -166,13 +174,13 @@ _nc_init_acs(void) /* Show the equivalent mapping, noting if it does not match the * given attribute, whether by re-ordering or duplication. */ - if (_nc_tracing & TRACE_CALLS) { + if (USE_TRACEF(TRACE_CALLS)) { size_t n, m; char show[ACS_LEN * 2 + 1]; for (n = 1, m = 0; n < ACS_LEN; n++) { if (real_map[n] != 0) { show[m++] = (char) n; - show[m++] = ChCharOf(real_map[n]); + show[m++] = (char) ChCharOf(real_map[n]); } } show[m] = 0; @@ -187,6 +195,7 @@ _nc_init_acs(void) ? "DIFF" : "SAME"), _nc_visbuf(show)); + _nc_unlock_global(tracef); } #endif /* TRACE */ }