diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-04-08 15:39:59 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-04-08 15:39:59 +0000 |
commit | 7d428150a7d1d60a127906c29520b4554147ced1 (patch) | |
tree | 887b0cfafce298ee955bcc4a591d38af2778b7f8 /ncurses-5.9/ncurses/widechar/lib_key_name.c | |
parent | 2011-04-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-addon-packages-7d428150a7d1d60a127906c29520b4554147ced1.tar.bz2 |
2011-04-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* bit: Update to ncurses-5.9.
* ncurses-5.9/ANNOUNCE, ncurses-5.9/AUTHORS, ncurses-5.9/INSTALL,
ncurses-5.9/MANIFEST, ncurses-5.9/Makefile.in,
ncurses-5.9/Makefile.os2, ncurses-5.9/NEWS, ncurses-5.9/README,
ncurses-5.9/README.MinGW, ncurses-5.9/README.emx, ncurses-5.9/TO-DO,
ncurses-5.9/aclocal.m4, ncurses-5.9/announce.html.in,
ncurses-5.9/config.guess, ncurses-5.9/config.sub,
ncurses-5.9/configure, ncurses-5.9/configure.in,
ncurses-5.9/convert_configure.pl, ncurses-5.9/dist.mk,
ncurses-5.9/install-sh, ncurses-5.9/mk-0th.awk,
ncurses-5.9/mk-1st.awk, ncurses-5.9/mk-2nd.awk,
ncurses-5.9/mk-dlls.sh.in, ncurses-5.9/mk-hdr.awk,
ncurses-5.9/Ada95/Makefile.in, ncurses-5.9/Ada95/README,
ncurses-5.9/Ada95/TODO, ncurses-5.9/Ada95/aclocal.m4,
ncurses-5.9/Ada95/configure, ncurses-5.9/Ada95/configure.in,
ncurses-5.9/Ada95/make-tar.sh, ncurses-5.9/Ada95/mk-1st.awk,
ncurses-5.9/Ada95/doc/Makefile.in, ncurses-5.9/Ada95/gen/Makefile.in,
ncurses-5.9/Ada95/gen/adacurses-config.in,
ncurses-5.9/Ada95/gen/gen.c, ncurses-5.9/Ada95/gen/html.m4,
ncurses-5.9/Ada95/gen/normal.m4, ncurses-5.9/Ada95/gen/table.m4,
ncurses-5.9/Ada95/gen/terminal_interface-curses-aux.ads.m4,
Diffstat (limited to 'ncurses-5.9/ncurses/widechar/lib_key_name.c')
-rw-r--r-- | ncurses-5.9/ncurses/widechar/lib_key_name.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/ncurses-5.9/ncurses/widechar/lib_key_name.c b/ncurses-5.9/ncurses/widechar/lib_key_name.c new file mode 100644 index 0000000..b2ad50d --- /dev/null +++ b/ncurses-5.9/ncurses/widechar/lib_key_name.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright (c) 2007 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 * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_key_name.c +** +** The routine key_name(). +** +*/ + +#include <curses.priv.h> + +MODULE_ID("$Id$") + +NCURSES_EXPORT(NCURSES_CONST char *) +key_name(wchar_t c) +{ + cchar_t my_cchar; + wchar_t *my_wchars; + size_t len; + + /* FIXME: move to _nc_globals */ + static char result[MB_LEN_MAX + 1]; + + memset(&my_cchar, 0, sizeof(my_cchar)); + my_cchar.chars[0] = c; + my_cchar.chars[1] = L'\0'; + + my_wchars = wunctrl(&my_cchar); + len = wcstombs(result, my_wchars, sizeof(result) - 1); + if (isEILSEQ(len) || (len == 0)) { + return 0; + } + + result[len] = '\0'; + return result; +} |