X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwidechar%2Flib_slk_wset.c;h=d3a148b1394240f4c685685a903a2b4aa970eace;hp=c76c0f840ed09b42d1d0674fd55543c81aad7736;hb=e348f7adec279f5453349ad13246a952a16e2094;hpb=d1a026123ac051716cdc16278345c1fb5c843b79 diff --git a/ncurses/widechar/lib_slk_wset.c b/ncurses/widechar/lib_slk_wset.c index c76c0f84..d3a148b1 100644 --- a/ncurses/widechar/lib_slk_wset.c +++ b/ncurses/widechar/lib_slk_wset.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2003-2002,2011 Free Software Foundation, Inc. * + * Copyright (c) 2003-2011,2016 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 * @@ -40,23 +40,26 @@ #include #endif -MODULE_ID("$Id: lib_slk_wset.c,v 1.12 2011/05/28 22:46:34 tom Exp $") +MODULE_ID("$Id: lib_slk_wset.c,v 1.14 2016/05/28 23:36:34 tom Exp $") NCURSES_EXPORT(int) slk_wset(int i, const wchar_t *astr, int format) { int result = ERR; - size_t arglen; const wchar_t *str; - char *mystr; mbstate_t state; T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format)); if (astr != 0) { + size_t arglen; + init_mb(state); str = astr; - if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) { + + if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) { + char *mystr; + if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) { str = astr; if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {