This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH] wrap #ifdef for C99 around iswspace and mbrtowc in vfscanf.c
- From: Jeff Johnston <jjohnstn at redhat dot com>
- To: litb_devel at web dot de
- Cc: newlib at sources dot redhat dot com
- Date: Wed, 15 Oct 2008 15:40:05 -0400
- Subject: Re: [PATCH] wrap #ifdef for C99 around iswspace and mbrtowc in vfscanf.c
- References: <200810111220.07286.litb_devel@web.de>
Hello,
Unfortunately the WANT_IO_C99_FORMATS flag was added to keep additional
formats like %C from
eating up space in the existing printf/scanf family. Support for %lc
and %ls was already in
place by then and so putting the logic under that flag may cause
existing platform applications to
fail as only a few platforms have that flag turned on.
I have made a fix to the code to check the ELIX level flag that is
provided in newlib.h. If defined and
less than 2, then the code is #ifdef'd out.
-- Jeff J.
litb_devel@web.de wrote:
Hello List,
while working on my port of newlib, i got undefined references to those
functions. That happened because i compile newlib using EL/IX level 1, which
causes them not to be defined.
I wrapped the portion that prints wide characters/strings with
_WANT_IO_C99_FORMATS, just like it's already done while parsing the format
string. Please be kind, it's my first patch/diff for newlib. :)
have fun, litb.
Index: libc/stdio/vfscanf.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/stdio/vfscanf.c,v
retrieving revision 1.40
diff -r1.40 vfscanf.c
824a825
#ifdef _WANT_IO_C99_FORMATS
863c864,866
< else if (flags & SUPPRESS)
---
else
#endif /* _WANT_IO_C99_FORMATS */
if (flags & SUPPRESS)
952a956
#ifdef _WANT_IO_C99_FORMATS
1001c1005,1007
< else if (flags & SUPPRESS)
---
else
#endif /* _WANT_IO_C99_FORMATS */
if (flags & SUPPRESS)