Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue,  6 Sep 2016 17:09:39 -0400
From: Daniel Sabogal <dsabogalcc@...il.com>
To: musl@...ts.openwall.com
Subject: [PATCH] add missing *_unlocked and wcsftime_l prototypes to wchar.h

these functions had been implemented, but prototypes were not made available
---
 include/wchar.h               | 12 ++++++++++++
 src/stdio/getwchar.c          |  2 --
 src/stdio/getwchar_unlocked.c |  8 ++++++++
 src/stdio/putwchar.c          |  2 --
 src/stdio/putwchar_unlocked.c |  8 ++++++++
 5 files changed, 28 insertions(+), 4 deletions(-)
 create mode 100644 src/stdio/getwchar_unlocked.c
 create mode 100644 src/stdio/putwchar_unlocked.c

diff --git a/include/wchar.h b/include/wchar.h
index 0167dce..58818f6 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -136,6 +136,18 @@ size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const s
 
 #undef iswdigit
 
+#if defined(_GNU_SOURCE)
+wint_t fgetwc_unlocked (FILE *);
+wint_t getwc_unlocked (FILE *);
+wint_t getwchar_unlocked (void);
+wint_t fputwc_unlocked (wchar_t, FILE *);
+wint_t putwc_unlocked (wchar_t, FILE *);
+wint_t putwchar_unlocked (wchar_t);
+wchar_t *fgetws_unlocked (wchar_t *__restrict, int, FILE *__restrict);
+int fputws_unlocked (const wchar_t *__restrict, FILE *__restrict);
+size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t);
+#endif
+
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)  || defined(_BSD_SOURCE)
 FILE *open_wmemstream(wchar_t **, size_t *);
diff --git a/src/stdio/getwchar.c b/src/stdio/getwchar.c
index bd89e0e..77a9dc1 100644
--- a/src/stdio/getwchar.c
+++ b/src/stdio/getwchar.c
@@ -5,5 +5,3 @@ wint_t getwchar(void)
 {
 	return fgetwc(stdin);
 }
-
-weak_alias(getwchar, getwchar_unlocked);
diff --git a/src/stdio/getwchar_unlocked.c b/src/stdio/getwchar_unlocked.c
new file mode 100644
index 0000000..1d00567
--- /dev/null
+++ b/src/stdio/getwchar_unlocked.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include "stdio_impl.h"
+#include <wchar.h>
+
+wint_t getwchar_unlocked(void)
+{
+	return fgetwc_unlocked(stdin);
+}
diff --git a/src/stdio/putwchar.c b/src/stdio/putwchar.c
index b249c4a..7575384 100644
--- a/src/stdio/putwchar.c
+++ b/src/stdio/putwchar.c
@@ -5,5 +5,3 @@ wint_t putwchar(wchar_t c)
 {
 	return fputwc(c, stdout);
 }
-
-weak_alias(putwchar, putwchar_unlocked);
diff --git a/src/stdio/putwchar_unlocked.c b/src/stdio/putwchar_unlocked.c
new file mode 100644
index 0000000..6817f9e
--- /dev/null
+++ b/src/stdio/putwchar_unlocked.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include "stdio_impl.h"
+#include <wchar.h>
+
+wint_t putwchar_unlocked(wchar_t c)
+{
+	return fputwc_unlocked(c, stdout);
+}
-- 
2.10.0

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.