]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/widechar/lib_slk_wset.c
ncurses 6.2 - patch 20210206
[ncurses.git] / ncurses / widechar / lib_slk_wset.c
index 89275567557be5c6a3e24ec60c1da0bef9bb9c80..5aa75ff962f0efb9662e27952fc1547c0f1a5ac0 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 2003-2002,2011 Free Software Foundation, Inc.              *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <wctype.h>
 #endif
 
 #include <wctype.h>
 #endif
 
-MODULE_ID("$Id: lib_slk_wset.c,v 1.13 2011/10/22 15:52:20 tom Exp $")
+MODULE_ID("$Id: lib_slk_wset.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_wset(int i, const wchar_t *astr, int format)
 {
     int result = ERR;
 
 NCURSES_EXPORT(int)
 slk_wset(int i, const wchar_t *astr, int format)
 {
     int result = ERR;
-    size_t arglen;
     const wchar_t *str;
     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) {
     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;
        init_mb(state);
        str = astr;
+
        if ((arglen = wcsrtombs(NULL, &str, (size_t) 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) {
            if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
                str = astr;
                if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {