ncurses 6.3 - patch 20211127
[ncurses.git] / ncurses / widechar / lib_wunctrl.c
index b9f8d6a5e0f180cfefca5bcbebee5ff228167253..155da22926ba81556a2a2bd54943dab534258e0b 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 2001-2007,2009 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>
 
-MODULE_ID("$Id: lib_wunctrl.c,v 1.13 2009/04/18 19:06:55 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
 
 NCURSES_EXPORT(wchar_t *)
 NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc)
 {
     static wchar_t str[CCHARW_MAX + 1], *wsp;
+    wchar_t *result;
 
-    if (Charable(*wc)) {
+    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)));
 
        for (wsp = str; *p; ++p) {
-           *wsp++ = _nc_to_widechar(*p);
+           *wsp++ = (wchar_t) _nc_to_widechar(*p);
        }
        *wsp = 0;
-       return str;
-    } else
-       return wc->chars;
+       result = str;
+    } else {
+       result = wc->chars;
+    }
+    return result;
 }
 
 #if NCURSES_SP_FUNCS