diff --git a/man/libbsd.7 b/man/libbsd.7 index 0521f93..7d58c19 100644 --- a/man/libbsd.7 +++ b/man/libbsd.7 @@ -1,6 +1,6 @@ .\" libbsd man page .\" -.\" Copyright © 2017 Gullem Jover +.\" Copyright © 2017-2018 Gullem Jover .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -24,7 +24,7 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd May 31 2017 +.Dd May 21 2018 .Dt LIBBSD 7 .Os .Sh NAME @@ -143,6 +143,17 @@ Use .Fn getline 3 instead, which is available in many systems and required by .St -p1003.1-2008 . +.It Fn fgetwln +Unportable, requires assistance from the stdio layer. +An implementation has to choose between leaking buffers or being reentrant +for a limited amount of streams (this implementation chose the latter with +a limit of 32). +Use +.Fn fgetwc 3 +instead, which is available in many systems and required by +.St -isoC-99 +and +.St -p1003.1-2001 . .It Fn funopen Unportable, requires assistance from the stdio layer or some hook framework. On GNU systems the diff --git a/src/fgetwln.c b/src/fgetwln.c index aa3f927..1127655 100644 --- a/src/fgetwln.c +++ b/src/fgetwln.c @@ -30,6 +30,8 @@ #include #include +#include "local-link.h" + struct filewbuf { FILE *fp; wchar_t *wbuf; @@ -85,3 +87,6 @@ fgetwln(FILE *stream, size_t *lenp) *lenp = wused; return wused ? fb->wbuf : NULL; } +libbsd_link_warning(fgetwln, + "This function cannot be safely ported, use fgetwc(3) " + "instead, as it is supported by C99 and POSIX.1-2001.")