X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwidechar%2Flib_wunctrl.c;h=b9f8d6a5e0f180cfefca5bcbebee5ff228167253;hp=89430e5681ac4d95270e865575bb34ebf54c6433;hb=3996fe0bf797f113d6abc4329cc869951735a4d8;hpb=a8987e73ec254703634802b4f7ee30d3a485524d diff --git a/ncurses/widechar/lib_wunctrl.c b/ncurses/widechar/lib_wunctrl.c index 89430e56..b9f8d6a5 100644 --- a/ncurses/widechar/lib_wunctrl.c +++ b/ncurses/widechar/lib_wunctrl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2001,2003 Free Software Foundation, Inc. * + * Copyright (c) 2001-2007,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,22 +35,31 @@ #include -#if USE_WIDEC_SUPPORT - -MODULE_ID("$Id: lib_wunctrl.c,v 1.7 2003/07/05 17:01:43 tom Exp $") +MODULE_ID("$Id: lib_wunctrl.c,v 1.13 2009/04/18 19:06:55 tom Exp $") NCURSES_EXPORT(wchar_t *) -wunctrl(cchar_t * wc) +NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc) { - static wchar_t str[5], *sp; + static wchar_t str[CCHARW_MAX + 1], *wsp; if (Charable(*wc)) { - const char *p; - for (p = unctrl(_nc_to_char(CharOf(*wc))), sp = str; *p;) - *sp++ = _nc_to_widechar(*p++); + const char *p = + NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx + (unsigned) _nc_to_char((wint_t)CharOf(*wc))); + + for (wsp = str; *p; ++p) { + *wsp++ = _nc_to_widechar(*p); + } + *wsp = 0; return str; } else return wc->chars; } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(wchar_t *) +wunctrl(cchar_t *wc) +{ + return NCURSES_SP_NAME(wunctrl) (CURRENT_SCREEN, wc); +} #endif