summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-01-30 16:06:55 -0500
committerJakob Kaivo <jkk@ung.org>2024-01-30 16:06:55 -0500
commit2e962793b28baca1dc9980d91b7d9791b2aaa198 (patch)
tree7d39ea846f0d966ce4e2fbee9f1827cbf3ce30a9
parent178bc0e627d6fa3be9d18d40ba8828604ce71134 (diff)
update safety checks
-rw-r--r--src/wchar/btowc.c2
-rw-r--r--src/wchar/fgetwc.c2
-rw-r--r--src/wchar/fgetws.c4
-rw-r--r--src/wchar/fputwc.c2
-rw-r--r--src/wchar/fputws.c2
-rw-r--r--src/wchar/fwide.c4
-rw-r--r--src/wchar/fwprintf.c2
-rw-r--r--src/wchar/fwprintf_s.c3
-rw-r--r--src/wchar/fwscanf.c2
-rw-r--r--src/wchar/fwscanf_s.c3
-rw-r--r--src/wchar/getwc.c2
-rw-r--r--src/wchar/getwchar.c2
-rw-r--r--src/wchar/mbrlen.c2
-rw-r--r--src/wchar/mbrtowc.c2
-rw-r--r--src/wchar/mbsinit.c2
-rw-r--r--src/wchar/mbsrtowcs.c2
-rw-r--r--src/wchar/mbsrtowcs_s.c3
-rw-r--r--src/wchar/putwc.c2
-rw-r--r--src/wchar/putwchar.c2
-rw-r--r--src/wchar/snwprintf_s.c3
-rw-r--r--src/wchar/swprintf.c2
-rw-r--r--src/wchar/swprintf_s.c3
-rw-r--r--src/wchar/swscanf.c2
-rw-r--r--src/wchar/swscanf_s.c3
-rw-r--r--src/wchar/ungetwc.c2
-rw-r--r--src/wchar/vfwprintf.c2
-rw-r--r--src/wchar/vfwprintf_s.c2
-rw-r--r--src/wchar/vfwscanf.c2
-rw-r--r--src/wchar/vfwscanf_s.c3
-rw-r--r--src/wchar/vsnwprintf_s.c3
-rw-r--r--src/wchar/vswprintf.c2
-rw-r--r--src/wchar/vswprintf_s.c3
-rw-r--r--src/wchar/vswscanf.c2
-rw-r--r--src/wchar/vswscanf_s.c3
-rw-r--r--src/wchar/vwprintf.c2
-rw-r--r--src/wchar/vwprintf_s.c3
-rw-r--r--src/wchar/vwscanf.c2
-rw-r--r--src/wchar/vwscanf_s.c3
-rw-r--r--src/wchar/wcrtomb.c2
-rw-r--r--src/wchar/wcrtomb_s.c3
-rw-r--r--src/wchar/wcscat.c2
-rw-r--r--src/wchar/wcscat_s.c3
-rw-r--r--src/wchar/wcschr.c2
-rw-r--r--src/wchar/wcscmp.c4
-rw-r--r--src/wchar/wcscoll.c2
-rw-r--r--src/wchar/wcscpy.c2
-rw-r--r--src/wchar/wcscpy_s.c3
-rw-r--r--src/wchar/wcscspn.c4
-rw-r--r--src/wchar/wcsftime.c2
-rw-r--r--src/wchar/wcslen.c8
-rw-r--r--src/wchar/wcsncat.c2
-rw-r--r--src/wchar/wcsncat_s.c3
-rw-r--r--src/wchar/wcsncmp.c4
-rw-r--r--src/wchar/wcsncpy.c2
-rw-r--r--src/wchar/wcsncpy_s.c3
-rw-r--r--src/wchar/wcsnlen_s.c3
-rw-r--r--src/wchar/wcspbrk.c2
-rw-r--r--src/wchar/wcsrchr.c2
-rw-r--r--src/wchar/wcsrtombs.c2
-rw-r--r--src/wchar/wcsrtombs_s.c3
-rw-r--r--src/wchar/wcsspn.c2
-rw-r--r--src/wchar/wcsstr.c2
-rw-r--r--src/wchar/wcstod.c2
-rw-r--r--src/wchar/wcstof.c2
-rw-r--r--src/wchar/wcstok.c2
-rw-r--r--src/wchar/wcstok_s.c3
-rw-r--r--src/wchar/wcstol.c2
-rw-r--r--src/wchar/wcstold.c2
-rw-r--r--src/wchar/wcstoll.c2
-rw-r--r--src/wchar/wcstoul.c2
-rw-r--r--src/wchar/wcstoull.c2
-rw-r--r--src/wchar/wcswcs.c2
-rw-r--r--src/wchar/wcswidth.c2
-rw-r--r--src/wchar/wcsxfrm.c2
-rw-r--r--src/wchar/wctob.c2
-rw-r--r--src/wchar/wcwidth.c2
-rw-r--r--src/wchar/wmemchr.c4
-rw-r--r--src/wchar/wmemcmp.c2
-rw-r--r--src/wchar/wmemcpy.c2
-rw-r--r--src/wchar/wmemcpy_s.c3
-rw-r--r--src/wchar/wmemmove.c4
-rw-r--r--src/wchar/wmemmove_s.c3
-rw-r--r--src/wchar/wmemset.c2
-rw-r--r--src/wchar/wprintf.c2
-rw-r--r--src/wchar/wprintf_s.c3
-rw-r--r--src/wchar/wscanf.c2
-rw-r--r--src/wchar/wscanf_s.c3
87 files changed, 182 insertions, 36 deletions
diff --git a/src/wchar/btowc.c b/src/wchar/btowc.c
index aa23463a..96cd29b1 100644
--- a/src/wchar/btowc.c
+++ b/src/wchar/btowc.c
@@ -6,6 +6,8 @@
wint_t btowc(int c)
{
+ SIGNAL_SAFE(0);
+
char *l = setlocale(LC_CTYPE, NULL);
if (!strcmp(l, "C") || !strcmp(l, "POSIX")) {
diff --git a/src/wchar/fgetwc.c b/src/wchar/fgetwc.c
index 593c121a..a334ae5a 100644
--- a/src/wchar/fgetwc.c
+++ b/src/wchar/fgetwc.c
@@ -7,6 +7,8 @@
wint_t fgetwc(FILE * stream)
{
+ SIGNAL_SAFE(0);
+
char mbr[MB_LEN_MAX+1] = {0};
mbstate_t ps = 0;
wint_t wc = 0;
diff --git a/src/wchar/fgetws.c b/src/wchar/fgetws.c
index 69990116..5a1b71aa 100644
--- a/src/wchar/fgetws.c
+++ b/src/wchar/fgetws.c
@@ -2,10 +2,12 @@
#include <wchar.h>
#include <stdio.h>
-#include "_assert.h"
+#include "_safety.h"
wchar_t * fgetws(wchar_t * restrict s, int n, FILE * restrict stream)
{
+ SIGNAL_SAFE(0);
+
ASSERT_NONNULL(s);
ASSERT_NONNULL(stream);
diff --git a/src/wchar/fputwc.c b/src/wchar/fputwc.c
index 07855cc1..afbefedb 100644
--- a/src/wchar/fputwc.c
+++ b/src/wchar/fputwc.c
@@ -8,6 +8,8 @@
wint_t fputwc(wchar_t c, FILE * stream)
{
+ SIGNAL_SAFE(0);
+
char mbs[MB_LEN_MAX+1] = {0};
mbstate_t ps = 0;
size_t len = wcrtomb(mbs, c, &ps);
diff --git a/src/wchar/fputws.c b/src/wchar/fputws.c
index 3bb8e8d8..b06f73a1 100644
--- a/src/wchar/fputws.c
+++ b/src/wchar/fputws.c
@@ -5,6 +5,8 @@
int fputws(const wchar_t * restrict s, FILE * restrict stream)
{
+ SIGNAL_SAFE(0);
+
const wchar_t *p = s;
while (*p != L'\0') {
if (fputwc(*p, stream) == EOF) {
diff --git a/src/wchar/fwide.c b/src/wchar/fwide.c
index 372a811f..9623d956 100644
--- a/src/wchar/fwide.c
+++ b/src/wchar/fwide.c
@@ -3,10 +3,12 @@
#include <wchar.h>
#include <stdio.h>
#include "stdio/_stdio.h"
-#include "_assert.h"
+#include "_safety.h"
int fwide(FILE * stream, int mode)
{
+ SIGNAL_SAFE(0);
+
ASSERT_NONNULL(stream);
if (stream->orientation == 0) {
diff --git a/src/wchar/fwprintf.c b/src/wchar/fwprintf.c
index ddcf4fe7..f3ee6f9c 100644
--- a/src/wchar/fwprintf.c
+++ b/src/wchar/fwprintf.c
@@ -6,6 +6,8 @@
int fwprintf(FILE * restrict stream, const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vfwprintf(stream, format, ap);
diff --git a/src/wchar/fwprintf_s.c b/src/wchar/fwprintf_s.c
index ae271c2d..8a4544a4 100644
--- a/src/wchar/fwprintf_s.c
+++ b/src/wchar/fwprintf_s.c
@@ -5,7 +5,8 @@
int fwprintf_s(FILE * restrict stream, const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vfwprintf_s(stream, format, ap);
diff --git a/src/wchar/fwscanf.c b/src/wchar/fwscanf.c
index 229b70f4..46cd0b23 100644
--- a/src/wchar/fwscanf.c
+++ b/src/wchar/fwscanf.c
@@ -11,6 +11,8 @@
int fwscanf(FILE * restrict stream, const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vfwscanf(stream, format, ap);
diff --git a/src/wchar/fwscanf_s.c b/src/wchar/fwscanf_s.c
index 7188f3cf..239c23c3 100644
--- a/src/wchar/fwscanf_s.c
+++ b/src/wchar/fwscanf_s.c
@@ -5,7 +5,8 @@
int fwscanf_s(FILE * restrict stream, const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vfwscanf_s(stream, format, ap);
diff --git a/src/wchar/getwc.c b/src/wchar/getwc.c
index 173f4c36..8b0a2674 100644
--- a/src/wchar/getwc.c
+++ b/src/wchar/getwc.c
@@ -5,6 +5,8 @@
wint_t getwc(FILE * stream)
{
+ SIGNAL_SAFE(0);
+
return fgetwc(stream);
}
diff --git a/src/wchar/getwchar.c b/src/wchar/getwchar.c
index 4e9105f9..fd0f29e9 100644
--- a/src/wchar/getwchar.c
+++ b/src/wchar/getwchar.c
@@ -5,6 +5,8 @@
wint_t getwchar(void)
{
+ SIGNAL_SAFE(0);
+
return getwc(stdin);
}
diff --git a/src/wchar/mbrlen.c b/src/wchar/mbrlen.c
index 8290e6ec..4489ad83 100644
--- a/src/wchar/mbrlen.c
+++ b/src/wchar/mbrlen.c
@@ -4,6 +4,8 @@
size_t mbrlen(const char * restrict s, size_t n, mbstate_t * restrict ps)
{
+ SIGNAL_SAFE(0);
+
static mbstate_t internal = 0;
return mbrtowc(NULL, s, n, ps != NULL ? ps : &internal);
}
diff --git a/src/wchar/mbrtowc.c b/src/wchar/mbrtowc.c
index 647b5e98..56a50a11 100644
--- a/src/wchar/mbrtowc.c
+++ b/src/wchar/mbrtowc.c
@@ -4,6 +4,8 @@
size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n, mbstate_t * restrict ps)
{
+ SIGNAL_SAFE(0);
+
(void)ps; (void)pwc; (void)n;
if (s == NULL) {
diff --git a/src/wchar/mbsinit.c b/src/wchar/mbsinit.c
index 590ce2e6..52640483 100644
--- a/src/wchar/mbsinit.c
+++ b/src/wchar/mbsinit.c
@@ -4,6 +4,8 @@
int mbsinit(const mbstate_t * ps)
{
+ SIGNAL_SAFE(0);
+
if (ps == NULL || *ps == 0) {
return 1;
}
diff --git a/src/wchar/mbsrtowcs.c b/src/wchar/mbsrtowcs.c
index dc8bde58..2a97cc83 100644
--- a/src/wchar/mbsrtowcs.c
+++ b/src/wchar/mbsrtowcs.c
@@ -4,6 +4,8 @@
size_t mbsrtowcs(wchar_t * restrict dst, const char * restrict src, size_t len, mbstate_t * restrict ps)
{
+ SIGNAL_SAFE(0);
+
(void)dst; (void)src; (void)len; (void)ps;
return 0;
}
diff --git a/src/wchar/mbsrtowcs_s.c b/src/wchar/mbsrtowcs_s.c
index 7284a0fe..11beee78 100644
--- a/src/wchar/mbsrtowcs_s.c
+++ b/src/wchar/mbsrtowcs_s.c
@@ -7,7 +7,8 @@ errno_t mbsrtowcs_s(size_t * restrict retval,
const char ** restrict src, rsize_t len,
mbstate_t * restrict ps)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/putwc.c b/src/wchar/putwc.c
index 87d58b04..8da6931e 100644
--- a/src/wchar/putwc.c
+++ b/src/wchar/putwc.c
@@ -5,6 +5,8 @@
wint_t putwc(wchar_t c, FILE * stream)
{
+ SIGNAL_SAFE(0);
+
return fputwc(c, stream);
}
diff --git a/src/wchar/putwchar.c b/src/wchar/putwchar.c
index 386b6913..ac61a572 100644
--- a/src/wchar/putwchar.c
+++ b/src/wchar/putwchar.c
@@ -5,6 +5,8 @@
wint_t putwchar(wchar_t c)
{
+ SIGNAL_SAFE(0);
+
return putwc(c, stdout);
}
diff --git a/src/wchar/snwprintf_s.c b/src/wchar/snwprintf_s.c
index 402da30b..ea0a090f 100644
--- a/src/wchar/snwprintf_s.c
+++ b/src/wchar/snwprintf_s.c
@@ -4,7 +4,8 @@
int snwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vsnwprintf_s(s, n, format, ap);
diff --git a/src/wchar/swprintf.c b/src/wchar/swprintf.c
index a3aa6c45..6cc546c3 100644
--- a/src/wchar/swprintf.c
+++ b/src/wchar/swprintf.c
@@ -5,6 +5,8 @@
int swprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vswprintf(s, n, format, ap);
diff --git a/src/wchar/swprintf_s.c b/src/wchar/swprintf_s.c
index abadca9e..24468e30 100644
--- a/src/wchar/swprintf_s.c
+++ b/src/wchar/swprintf_s.c
@@ -5,7 +5,8 @@
int swprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format,
...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vswprintf_s(s, n, format, ap);
diff --git a/src/wchar/swscanf.c b/src/wchar/swscanf.c
index 8885a143..3897662c 100644
--- a/src/wchar/swscanf.c
+++ b/src/wchar/swscanf.c
@@ -10,6 +10,8 @@
int swscanf(const wchar_t * restrict s, const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vswscanf(s, format, ap);
diff --git a/src/wchar/swscanf_s.c b/src/wchar/swscanf_s.c
index 754650a4..1ec64523 100644
--- a/src/wchar/swscanf_s.c
+++ b/src/wchar/swscanf_s.c
@@ -4,7 +4,8 @@
int swscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vswscanf_s(s, format, ap);
diff --git a/src/wchar/ungetwc.c b/src/wchar/ungetwc.c
index 028de61a..c055b9f4 100644
--- a/src/wchar/ungetwc.c
+++ b/src/wchar/ungetwc.c
@@ -5,6 +5,8 @@
wint_t ungetwc(wint_t c, FILE * stream)
{
+ SIGNAL_SAFE(0);
+
(void)c; (void)stream;
return -1;
}
diff --git a/src/wchar/vfwprintf.c b/src/wchar/vfwprintf.c
index d9cf9b8e..89e4c6b5 100644
--- a/src/wchar/vfwprintf.c
+++ b/src/wchar/vfwprintf.c
@@ -8,6 +8,8 @@
int vfwprintf(FILE * restrict stream, const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
int ret = 0;
struct io_options opt = {0};
opt.fnname = "vfwprintf";
diff --git a/src/wchar/vfwprintf_s.c b/src/wchar/vfwprintf_s.c
index 61a5358c..fff95aa7 100644
--- a/src/wchar/vfwprintf_s.c
+++ b/src/wchar/vfwprintf_s.c
@@ -5,6 +5,8 @@
int vfwprintf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
struct io_options opt = {
.fnname = __func__,
.stream = stream,
diff --git a/src/wchar/vfwscanf.c b/src/wchar/vfwscanf.c
index b86b531b..e727b0c8 100644
--- a/src/wchar/vfwscanf.c
+++ b/src/wchar/vfwscanf.c
@@ -10,6 +10,8 @@
int vfwscanf(FILE * restrict stream, const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
int ret = 0;
struct io_options opt = {0};
opt.fnname = __func__;
diff --git a/src/wchar/vfwscanf_s.c b/src/wchar/vfwscanf_s.c
index d9b6f147..3cebc5d1 100644
--- a/src/wchar/vfwscanf_s.c
+++ b/src/wchar/vfwscanf_s.c
@@ -5,7 +5,8 @@
int vfwscanf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
// also maybe this one
}
diff --git a/src/wchar/vsnwprintf_s.c b/src/wchar/vsnwprintf_s.c
index 56c69cc7..eb7a98fa 100644
--- a/src/wchar/vsnwprintf_s.c
+++ b/src/wchar/vsnwprintf_s.c
@@ -2,7 +2,8 @@
int vsnwprintf_s(whcar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
// the actual function
}
diff --git a/src/wchar/vswprintf.c b/src/wchar/vswprintf.c
index 34d23296..e9229399 100644
--- a/src/wchar/vswprintf.c
+++ b/src/wchar/vswprintf.c
@@ -6,6 +6,8 @@
int vswprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
int ret = 0;
struct io_options opt = {0};
opt.fnname = "vswprintf";
diff --git a/src/wchar/vswprintf_s.c b/src/wchar/vswprintf_s.c
index c789b448..14410341 100644
--- a/src/wchar/vswprintf_s.c
+++ b/src/wchar/vswprintf_s.c
@@ -5,7 +5,8 @@
int vswprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
// wait
}
diff --git a/src/wchar/vswscanf.c b/src/wchar/vswscanf.c
index a6574e9b..c28bd64f 100644
--- a/src/wchar/vswscanf.c
+++ b/src/wchar/vswscanf.c
@@ -9,6 +9,8 @@
int vswscanf(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
int ret = 0;
struct io_options opt = {0};
opt.fnname = __func__;
diff --git a/src/wchar/vswscanf_s.c b/src/wchar/vswscanf_s.c
index 3b2dd6a4..8f5bf60e 100644
--- a/src/wchar/vswscanf_s.c
+++ b/src/wchar/vswscanf_s.c
@@ -5,7 +5,8 @@
int vswscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
// fmemopen(a stream)
// vfwscanf_s(that stream)
// wcscpy(the results)
diff --git a/src/wchar/vwprintf.c b/src/wchar/vwprintf.c
index d3a42e72..e1ab1741 100644
--- a/src/wchar/vwprintf.c
+++ b/src/wchar/vwprintf.c
@@ -5,6 +5,8 @@
int vwprintf(const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
return vfwprintf(stdout, format, arg);
}
diff --git a/src/wchar/vwprintf_s.c b/src/wchar/vwprintf_s.c
index a67c9239..231a224c 100644
--- a/src/wchar/vwprintf_s.c
+++ b/src/wchar/vwprintf_s.c
@@ -5,7 +5,8 @@
int vwprintf_s(const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
return vfwprintf_s(stdout, format, arg);
}
diff --git a/src/wchar/vwscanf.c b/src/wchar/vwscanf.c
index 8278e820..d5d83df2 100644
--- a/src/wchar/vwscanf.c
+++ b/src/wchar/vwscanf.c
@@ -6,6 +6,8 @@
int vwscanf(const wchar_t * restrict format, va_list arg)
{
+ SIGNAL_SAFE(0);
+
return vfwscanf(stdin, format, arg);
}
diff --git a/src/wchar/vwscanf_s.c b/src/wchar/vwscanf_s.c
index d795ce96..86e9cf92 100644
--- a/src/wchar/vwscanf_s.c
+++ b/src/wchar/vwscanf_s.c
@@ -5,7 +5,8 @@
int vwscanf_s(const wchar_t * restrict format, va_list arg)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
return vwscanf_s(stdin, format, arg);
}
diff --git a/src/wchar/wcrtomb.c b/src/wchar/wcrtomb.c
index bfad86ef..beff6457 100644
--- a/src/wchar/wcrtomb.c
+++ b/src/wchar/wcrtomb.c
@@ -5,6 +5,8 @@
size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps)
{
+ SIGNAL_SAFE(0);
+
char buf[MB_LEN_MAX+1];
if (s == NULL) {
s = buf;
diff --git a/src/wchar/wcrtomb_s.c b/src/wchar/wcrtomb_s.c
index 898da3fd..9248a6e7 100644
--- a/src/wchar/wcrtomb_s.c
+++ b/src/wchar/wcrtomb_s.c
@@ -5,7 +5,8 @@
errno_t wcrtomb_s(size_t * restrict retval, char * restrict s, rsize_t smax,
wchar_t wc, mbstate_t * restrict ps)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcscat.c b/src/wchar/wcscat.c
index 24fb008c..2674e218 100644
--- a/src/wchar/wcscat.c
+++ b/src/wchar/wcscat.c
@@ -4,6 +4,8 @@
wchar_t * wcscat(wchar_t * restrict s1, const wchar_t * restrict s2)
{
+ SIGNAL_SAFE(0);
+
wcscpy(s1 + wcslen(s1), s2);
return s1;
}
diff --git a/src/wchar/wcscat_s.c b/src/wchar/wcscat_s.c
index b762d219..e7f091d3 100644
--- a/src/wchar/wcscat_s.c
+++ b/src/wchar/wcscat_s.c
@@ -4,7 +4,8 @@
errno_t wcscat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcschr.c b/src/wchar/wcschr.c
index 2a23d8b6..7fdecb89 100644
--- a/src/wchar/wcschr.c
+++ b/src/wchar/wcschr.c
@@ -4,6 +4,8 @@
wchar_t * wcschr(const wchar_t * s, wchar_t c)
{
+ SIGNAL_SAFE(0);
+
while (*s) {
if (*s == c) {
return (wchar_t*) s;
diff --git a/src/wchar/wcscmp.c b/src/wchar/wcscmp.c
index 01d282fc..6693cc63 100644
--- a/src/wchar/wcscmp.c
+++ b/src/wchar/wcscmp.c
@@ -1,10 +1,12 @@
#if 0
#include <wchar.h>
-#include "_assert.h"
+#include "_safety.h"
int wcscmp(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
ASSERT_NONNULL(s1);
ASSERT_NONNULL(s2);
diff --git a/src/wchar/wcscoll.c b/src/wchar/wcscoll.c
index 83fd39e8..4386b525 100644
--- a/src/wchar/wcscoll.c
+++ b/src/wchar/wcscoll.c
@@ -4,6 +4,8 @@
int wcscoll(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
/*
wchar_t *collated_s1 = s1;
wchar_t *collated_s2 = s2;
diff --git a/src/wchar/wcscpy.c b/src/wchar/wcscpy.c
index cc1985a9..ce366198 100644
--- a/src/wchar/wcscpy.c
+++ b/src/wchar/wcscpy.c
@@ -4,6 +4,8 @@
wchar_t * wcscpy(wchar_t * restrict s1, const wchar_t * restrict s2)
{
+ SIGNAL_SAFE(0);
+
return wcsncpy(s1, s2, wcslen(s2));
}
diff --git a/src/wchar/wcscpy_s.c b/src/wchar/wcscpy_s.c
index f3c9206d..927bba74 100644
--- a/src/wchar/wcscpy_s.c
+++ b/src/wchar/wcscpy_s.c
@@ -4,7 +4,8 @@
errno_t wcscpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcscspn.c b/src/wchar/wcscspn.c
index 5c063a47..5b5db5f3 100644
--- a/src/wchar/wcscspn.c
+++ b/src/wchar/wcscspn.c
@@ -1,10 +1,12 @@
#if 0
#include <wchar.h>
-#include "_assert.h"
+#include "_safety.h"
size_t wcscspn(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
size_t i;
ASSERT_NONNULL(s1);
diff --git a/src/wchar/wcsftime.c b/src/wchar/wcsftime.c
index 398d8c55..e04eb966 100644
--- a/src/wchar/wcsftime.c
+++ b/src/wchar/wcsftime.c
@@ -4,6 +4,8 @@
size_t wcsftime(wchar_t * restrict s, size_t maxsize, const wchar_t * restrict format, const struct tm * restrict timeptr)
{
+ SIGNAL_SAFE(0);
+
(void)s; (void)maxsize; (void)format; (void)timeptr;
return 0;
}
diff --git a/src/wchar/wcslen.c b/src/wchar/wcslen.c
index ca04fa0a..a59c8f17 100644
--- a/src/wchar/wcslen.c
+++ b/src/wchar/wcslen.c
@@ -1,9 +1,10 @@
-#if 0
-
#include <wchar.h>
+#include "_safety.h"
size_t wcslen(const wchar_t * s)
{
+ SIGNAL_SAFE(0);
+
size_t l = 0;
while (s[l] != L'\0') {
l++;
@@ -14,6 +15,3 @@ size_t wcslen(const wchar_t * s)
/*
STDC(199409)
*/
-
-
-#endif
diff --git a/src/wchar/wcsncat.c b/src/wchar/wcsncat.c
index f2085747..8cda3694 100644
--- a/src/wchar/wcsncat.c
+++ b/src/wchar/wcsncat.c
@@ -4,6 +4,8 @@
wchar_t * wcsncat(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
wcsncpy(s1 + wcslen(s1), s2, n);
/* ensure trailing nul */
return s1;
diff --git a/src/wchar/wcsncat_s.c b/src/wchar/wcsncat_s.c
index 93cdbf10..68ee5456 100644
--- a/src/wchar/wcsncat_s.c
+++ b/src/wchar/wcsncat_s.c
@@ -4,7 +4,8 @@
errno_t wcsncat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcsncmp.c b/src/wchar/wcsncmp.c
index 14efdb51..0caa5a9e 100644
--- a/src/wchar/wcsncmp.c
+++ b/src/wchar/wcsncmp.c
@@ -1,10 +1,12 @@
#if 0
#include <wchar.h>
-#include "_assert.h"
+#include "_safety.h"
int wcsncmp(const wchar_t * s1, const wchar_t * s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
ASSERT_NONNULL(s1);
diff --git a/src/wchar/wcsncpy.c b/src/wchar/wcsncpy.c
index 4a33779a..2c595575 100644
--- a/src/wchar/wcsncpy.c
+++ b/src/wchar/wcsncpy.c
@@ -4,6 +4,8 @@
wchar_t * wcsncpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
int nul = 0;
for (i = 0; i < n; i++) {
diff --git a/src/wchar/wcsncpy_s.c b/src/wchar/wcsncpy_s.c
index 9748a65b..a875b14c 100644
--- a/src/wchar/wcsncpy_s.c
+++ b/src/wchar/wcsncpy_s.c
@@ -4,7 +4,8 @@
errno_t wcsncpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcsnlen_s.c b/src/wchar/wcsnlen_s.c
index d42fa1fb..b83f9530 100644
--- a/src/wchar/wcsnlen_s.c
+++ b/src/wchar/wcsnlen_s.c
@@ -4,7 +4,8 @@
size_t wcsnlen_s( const wchar_t *ws, size_t maxlen)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
return 0;
}
diff --git a/src/wchar/wcspbrk.c b/src/wchar/wcspbrk.c
index 155bbdf5..fb72904c 100644
--- a/src/wchar/wcspbrk.c
+++ b/src/wchar/wcspbrk.c
@@ -4,6 +4,8 @@
wchar_t * wcspbrk(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
int i;
for (i = 0; s1[i] != L'\0'; i++) {
if (wcschr(s2, s1[i]) != NULL) {
diff --git a/src/wchar/wcsrchr.c b/src/wchar/wcsrchr.c
index 7d9e9a50..6614e723 100644
--- a/src/wchar/wcsrchr.c
+++ b/src/wchar/wcsrchr.c
@@ -4,6 +4,8 @@
wchar_t * wcsrchr(const wchar_t * s, wchar_t c)
{
+ SIGNAL_SAFE(0);
+
wchar_t *last = NULL;
while (*s) {
if (*s == c) {
diff --git a/src/wchar/wcsrtombs.c b/src/wchar/wcsrtombs.c
index b51b3a8b..82a38ff9 100644
--- a/src/wchar/wcsrtombs.c
+++ b/src/wchar/wcsrtombs.c
@@ -4,6 +4,8 @@
size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps)
{
+ SIGNAL_SAFE(0);
+
(void)dst; (void)src; (void)len; (void)ps;
return 0;
}
diff --git a/src/wchar/wcsrtombs_s.c b/src/wchar/wcsrtombs_s.c
index 5ae76e42..61d04df0 100644
--- a/src/wchar/wcsrtombs_s.c
+++ b/src/wchar/wcsrtombs_s.c
@@ -7,7 +7,8 @@ errno_t wcsrtombs_s(size_t * restrict retval,
const wchar_t ** restrict src, rsize_t len,
mbstate_t * restrict ps)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcsspn.c b/src/wchar/wcsspn.c
index 162c141b..ebf30980 100644
--- a/src/wchar/wcsspn.c
+++ b/src/wchar/wcsspn.c
@@ -4,6 +4,8 @@
size_t wcsspn(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
size_t i;
for (i = 0; s1[i] != L'\0'; i++) {
if (wcschr(s2, s1[i]) == NULL) {
diff --git a/src/wchar/wcsstr.c b/src/wchar/wcsstr.c
index 12bc2cfd..84b4020b 100644
--- a/src/wchar/wcsstr.c
+++ b/src/wchar/wcsstr.c
@@ -4,6 +4,8 @@
wchar_t * wcsstr(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
(void)s2;
return (wchar_t*)s1;
}
diff --git a/src/wchar/wcstod.c b/src/wchar/wcstod.c
index f0e0cbc8..b5be3bcf 100644
--- a/src/wchar/wcstod.c
+++ b/src/wchar/wcstod.c
@@ -4,6 +4,8 @@
double wcstod(const wchar_t * restrict nptr, wchar_t ** restrict endptr)
{
+ SIGNAL_SAFE(0);
+
(void)nptr; (void)endptr;
return 0.0;
}
diff --git a/src/wchar/wcstof.c b/src/wchar/wcstof.c
index b6784dd9..abea9395 100644
--- a/src/wchar/wcstof.c
+++ b/src/wchar/wcstof.c
@@ -4,6 +4,8 @@
float wcstof(const wchar_t * restrict nptr, wchar_t ** restrict endptr)
{
+ SIGNAL_SAFE(0);
+
(void)nptr; (void)endptr;
return 0;
}
diff --git a/src/wchar/wcstok.c b/src/wchar/wcstok.c
index 83841c1d..484053d2 100644
--- a/src/wchar/wcstok.c
+++ b/src/wchar/wcstok.c
@@ -4,6 +4,8 @@
wchar_t * wcstok(wchar_t * restrict s1, const wchar_t * restrict s2, wchar_t ** restrict ptr)
{
+ SIGNAL_SAFE(0);
+
(void)s1; (void)s2; (void)ptr;
return s1;
}
diff --git a/src/wchar/wcstok_s.c b/src/wchar/wcstok_s.c
index b9418e7c..2d0e3b53 100644
--- a/src/wchar/wcstok_s.c
+++ b/src/wchar/wcstok_s.c
@@ -5,7 +5,8 @@
wchar_t *wcstok_s(wchar_t * restrict s1, rsize_t * restrict s1max,
const wchar_t * restrict s2, wchar_t ** restrict ptr)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcstol.c b/src/wchar/wcstol.c
index 256b0fee..414429ac 100644
--- a/src/wchar/wcstol.c
+++ b/src/wchar/wcstol.c
@@ -9,6 +9,8 @@
long int wcstol(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
{
+ SIGNAL_SAFE(0);
+
long int ret = 0;
long int max = LONG_MAX;
long int min = LONG_MIN;
diff --git a/src/wchar/wcstold.c b/src/wchar/wcstold.c
index 4f717147..bf0304b6 100644
--- a/src/wchar/wcstold.c
+++ b/src/wchar/wcstold.c
@@ -4,6 +4,8 @@
long double wcstold(const wchar_t * restrict nptr, wchar_t ** restrict endptr)
{
+ SIGNAL_SAFE(0);
+
(void)nptr; (void)endptr;
return 0;
}
diff --git a/src/wchar/wcstoll.c b/src/wchar/wcstoll.c
index 1cad9376..5a86a745 100644
--- a/src/wchar/wcstoll.c
+++ b/src/wchar/wcstoll.c
@@ -9,6 +9,8 @@
long long int wcstoll(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
{
+ SIGNAL_SAFE(0);
+
long long int ret = 0;
long long int max = LLONG_MAX;
long long int min = LLONG_MIN;
diff --git a/src/wchar/wcstoul.c b/src/wchar/wcstoul.c
index eef920c9..e7be6154 100644
--- a/src/wchar/wcstoul.c
+++ b/src/wchar/wcstoul.c
@@ -9,6 +9,8 @@
unsigned long int wcstoul(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
{
+ SIGNAL_SAFE(0);
+
unsigned long int ret = 0;
unsigned long int max = ULONG_MAX;
unsigned long int min = 0;
diff --git a/src/wchar/wcstoull.c b/src/wchar/wcstoull.c
index ef838036..26d61460 100644
--- a/src/wchar/wcstoull.c
+++ b/src/wchar/wcstoull.c
@@ -9,6 +9,8 @@
unsigned long long int wcstoull(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
{
+ SIGNAL_SAFE(0);
+
unsigned long long int ret = 0;
unsigned long long int max = ULLONG_MAX;
unsigned long long int min = 0;
diff --git a/src/wchar/wcswcs.c b/src/wchar/wcswcs.c
index f9dcae5f..c4541af9 100644
--- a/src/wchar/wcswcs.c
+++ b/src/wchar/wcswcs.c
@@ -12,6 +12,8 @@
wchar_t * wcswcs(const wchar_t * s1, const wchar_t * s2)
{
+ SIGNAL_SAFE(0);
+
return wcsstr(s1, s2);
}
diff --git a/src/wchar/wcswidth.c b/src/wchar/wcswidth.c
index c10bf4c7..3aadc89b 100644
--- a/src/wchar/wcswidth.c
+++ b/src/wchar/wcswidth.c
@@ -7,6 +7,8 @@
int wcswidth(const wchar_t * wcsptr, size_t n)
{
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wcsxfrm.c b/src/wchar/wcsxfrm.c
index 9982aa8d..c025ee7e 100644
--- a/src/wchar/wcsxfrm.c
+++ b/src/wchar/wcsxfrm.c
@@ -4,6 +4,8 @@
size_t wcsxfrm(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
(void)s1; (void)s2; (void)n;
return 0;
}
diff --git a/src/wchar/wctob.c b/src/wchar/wctob.c
index 5608a672..14ccf18c 100644
--- a/src/wchar/wctob.c
+++ b/src/wchar/wctob.c
@@ -7,6 +7,8 @@
int wctob(wint_t c)
{
+ SIGNAL_SAFE(0);
+
char *l = setlocale(LC_CTYPE, NULL);
if (!strcmp(l, "C") || !strcmp(l, "POSIX")) {
diff --git a/src/wchar/wcwidth.c b/src/wchar/wcwidth.c
index e562233c..62ad08bb 100644
--- a/src/wchar/wcwidth.c
+++ b/src/wchar/wcwidth.c
@@ -7,6 +7,8 @@
int wcwidth(wchar_t wc)
{
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wmemchr.c b/src/wchar/wmemchr.c
index dcbf0d1d..f6ab1f25 100644
--- a/src/wchar/wmemchr.c
+++ b/src/wchar/wmemchr.c
@@ -1,10 +1,12 @@
#if 0
#include <wchar.h>
-#include "_assert.h"
+#include "_safety.h"
wchar_t * wmemchr(const wchar_t * s, wchar_t c, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
ASSERT_NONNULL(s);
diff --git a/src/wchar/wmemcmp.c b/src/wchar/wmemcmp.c
index 97be69fe..693211d1 100644
--- a/src/wchar/wmemcmp.c
+++ b/src/wchar/wmemcmp.c
@@ -4,6 +4,8 @@
int wmemcmp(const wchar_t * s1, const wchar_t * s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
for (i = 0; i < n; i++) {
diff --git a/src/wchar/wmemcpy.c b/src/wchar/wmemcpy.c
index f2e56ead..b45912a2 100644
--- a/src/wchar/wmemcpy.c
+++ b/src/wchar/wmemcpy.c
@@ -4,6 +4,8 @@
wchar_t * wmemcpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
for (i = 0; i < n; i++) {
s1[i] = s2[i];
diff --git a/src/wchar/wmemcpy_s.c b/src/wchar/wmemcpy_s.c
index 36b90e3c..28ce1f0f 100644
--- a/src/wchar/wmemcpy_s.c
+++ b/src/wchar/wmemcpy_s.c
@@ -4,7 +4,8 @@
errno_t wmemcpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wmemmove.c b/src/wchar/wmemmove.c
index 0c391377..7e6425ab 100644
--- a/src/wchar/wmemmove.c
+++ b/src/wchar/wmemmove.c
@@ -2,10 +2,12 @@
#include <wchar.h>
#include <stdlib.h>
-#include "_assert.h"
+#include "_safety.h"
wchar_t * wmemmove(wchar_t * s1, const wchar_t * s2, size_t n)
{
+ SIGNAL_SAFE(0);
+
ASSERT_NONNULL(s1);
ASSERT_NONNULL(s2);
diff --git a/src/wchar/wmemmove_s.c b/src/wchar/wmemmove_s.c
index fb108314..7ce61e30 100644
--- a/src/wchar/wmemmove_s.c
+++ b/src/wchar/wmemmove_s.c
@@ -4,7 +4,8 @@
errno_t wmemmove_s(whcar_t *s1, rsize_t s1max, const wchar_t *s2, rsize_t n)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
}
/*
diff --git a/src/wchar/wmemset.c b/src/wchar/wmemset.c
index 65245a77..6bf8e38b 100644
--- a/src/wchar/wmemset.c
+++ b/src/wchar/wmemset.c
@@ -4,6 +4,8 @@
wchar_t * wmemset(wchar_t * s, wchar_t c, size_t n)
{
+ SIGNAL_SAFE(0);
+
size_t i;
for (i = 0; i < n; i++) {
s[i] = c;
diff --git a/src/wchar/wprintf.c b/src/wchar/wprintf.c
index fed68cc0..84e349e2 100644
--- a/src/wchar/wprintf.c
+++ b/src/wchar/wprintf.c
@@ -5,6 +5,8 @@
int wprintf(const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vwprintf(format, ap);
diff --git a/src/wchar/wprintf_s.c b/src/wchar/wprintf_s.c
index 45e97719..3b95197c 100644
--- a/src/wchar/wprintf_s.c
+++ b/src/wchar/wprintf_s.c
@@ -4,7 +4,8 @@
int wprintf_s(const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vwprintf_s(format, ap);
diff --git a/src/wchar/wscanf.c b/src/wchar/wscanf.c
index ae1362b7..80dfdbd1 100644
--- a/src/wchar/wscanf.c
+++ b/src/wchar/wscanf.c
@@ -5,6 +5,8 @@
int wscanf(const wchar_t * restrict format, ...)
{
+ SIGNAL_SAFE(0);
+
/*
va_list ap;
va_start(ap, format);
diff --git a/src/wchar/wscanf_s.c b/src/wchar/wscanf_s.c
index 6dfafc90..f66ae5ee 100644
--- a/src/wchar/wscanf_s.c
+++ b/src/wchar/wscanf_s.c
@@ -4,7 +4,8 @@
int wscanf_s(const wchar_t * restrict format, ...)
{
- __C_EXT(1, 201112L);
+ SIGNAL_SAFE(0);
+
va_list ap;
va_start(ap, format);
int ret = vwscanf_s(format, ap);