/****************************************************************************
- * Copyright (c) 2001 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2001-2011,2012 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 *
#include <curses.priv.h>
-#if USE_WIDEC_SUPPORT
-
-MODULE_ID("$Id: lib_wunctrl.c,v 1.6 2001/09/22 19:18:02 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.17 2020/02/02 23:34:34 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;
+ wchar_t *result;
+
+ if (wc == 0) {
+ result = 0;
+ } else if (SP_PARM != 0 && Charable(*wc)) {
+ const char *p =
+ NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx
+ (unsigned) _nc_to_char((wint_t)CharOf(*wc)));
- if (Charable(*wc)) {
- const char *p;
- for (p = unctrl(wctob(CharOf(*wc))), sp = str; *p;)
- *sp++ = btowc(*p++);
- return str;
- } else
- return wc->chars;
+ for (wsp = str; *p; ++p) {
+ *wsp++ = (wchar_t) _nc_to_widechar(*p);
+ }
+ *wsp = 0;
+ result = str;
+ } else {
+ result = wc->chars;
+ }
+ return result;
}
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(wchar_t *)
+wunctrl(cchar_t *wc)
+{
+ return NCURSES_SP_NAME(wunctrl) (CURRENT_SCREEN, wc);
+}
#endif