From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24090 invoked by alias); 20 Jul 2005 10:17:30 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 24049 invoked by uid 22791); 20 Jul 2005 10:17:26 -0000 Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Wed, 20 Jul 2005 10:17:26 +0000 Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1]) by sunsite.mff.cuni.cz (8.13.1/8.13.1) with ESMTP id j6KAHLs8026704; Wed, 20 Jul 2005 12:17:21 +0200 Received: (from jakub@localhost) by sunsite.mff.cuni.cz (8.13.1/8.13.1/Submit) id j6KAHKBp026703; Wed, 20 Jul 2005 12:17:20 +0200 Date: Wed, 20 Jul 2005 10:17:00 -0000 From: Jakub Jelinek To: Ulrich Drepper Cc: Glibc hackers Subject: [PATCH] __fxprintf tweaks Message-ID: <20050720101720.GW4740@sunsite.mff.cuni.cz> Reply-To: Jakub Jelinek Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-SW-Source: 2005-07/txt/msg00035.txt.bz2 Hi! psignal.c in 2 places used wrong order of wide and narrow literals, e.g. __fxprintf (NULL, L"%s%s%s\n", "%s%s%s\n", s, colon, _(desc)); But IMHO by using 2 format strings in the source (that really needs to be identical apart from the L modifier) is too error-prone and GCC will be checking just the narrow fmt string and not the wide fmt string. I see 2 possibilities, one (proposed by Roland) is to create a macro #define __fxprintf(stream, fmt, ...) \ ___fxprintf(stream, fmt, L##fmt , ## __VA_ARGS__) (where although just fmt would be checked, we'd be reasonably sure wfmt is the same string). The second one is implemented in the patch below, assumes only ASCII chars are used in __fxprintf (which is the case and __fxprintf is glibc's internal function) and for efficiency that they aren't too long either (usually just a few chars). In my x86-64 build, it makes __fxprintf itself ~ 180 bytes longer, but saves ~ 600 bytes in .rodata section and another ~ 600 bytes in .text section in __fxprintf callers (as they don't need to pass one extra argument). The first solution would use basically identical patch except the first 2 files. 2005-07-20 Jakub Jelinek * include/stdio.h (__fxprintf): Remove wfmt argument. * stdio-common/fxprintf.c: Include assert.h, ctype.h and wchar.h. (__fxprintf): Remove wfmt argument, create wfmt format string on the fly from fmt. * argp/argp-fmtstream.c: Adjust all __fxprintf callers. * argp/argp-help.c: Likewise. * assert/assert-perr.c: Likewise. * assert/assert.c: Likewise. * gmon/gmon.c: Likewise. * inet/rcmd.c: Likewise. * malloc/obstack.c: Likewise. * misc/error.c: Likewise. * misc/getpass.c: Likewise. * posix/getopt.c: Likewise. * resolv/res_hconf.c: Likewise. * stdio-common/perror.c: Likewise. * stdio-common/psignal.c: Likewise. * stdlib/fmtmsg.c: Likewise. * sunrpc/auth_unix.c: Likewise. * sunrpc/clnt_perr.c: Likewise. * sunrpc/clnt_tcp.c: Likewise. * sunrpc/clnt_udp.c: Likewise. * sunrpc/clnt_unix.c: Likewise. * sunrpc/svc_simple.c: Likewise. * sunrpc/svc_tcp.c: Likewise. * sunrpc/svc_udp.c: Likewise. * sunrpc/svc_unix.c: Likewise. * sunrpc/xdr.c: Likewise. * sunrpc/xdr_array.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_ref.c: Likewise. * sysdeps/generic/wordexp.c: Likewise. --- libc/include/stdio.h.jj 2005-07-20 08:35:30.000000000 +0200 +++ libc/include/stdio.h 2005-07-20 11:15:41.000000000 +0200 @@ -79,8 +79,8 @@ extern int __ftrylockfile (FILE *__strea extern int __getc_unlocked (FILE *__fp); extern wint_t __getwc_unlocked (FILE *__fp); -extern int __fxprintf (FILE *__fp, const char *__fmt, const wchar_t *__wfmt, - ...) __attribute__ ((__format__ (__printf__, 2, 4))); +extern int __fxprintf (FILE *__fp, const char *__fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); extern __const char *__const _sys_errlist_internal[] attribute_hidden; extern int _sys_nerr_internal attribute_hidden; --- libc/stdio-common/fxprintf.c.jj 2005-07-20 01:38:37.000000000 +0200 +++ libc/stdio-common/fxprintf.c 2005-07-20 11:20:55.000000000 +0200 @@ -17,22 +17,34 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include +#include #include #include +#include int -__fxprintf (FILE *fp, const char *fmt, const wchar_t *wfmt, ...) +__fxprintf (FILE *fp, const char *fmt, ...) { if (fp == NULL) fp = stderr; va_list ap; - va_start (ap, wfmt); + va_start (ap, fmt); int res; if (_IO_fwide (fp, 0) > 0) - res = __vfwprintf (fp, wfmt, ap); + { + size_t len = strlen (fmt) + 1, i; + wchar_t wfmt[len]; + for (i = 0; i < len; ++i) + { + assert (isascii (fmt[i])); + wfmt[i] = fmt[i]; + } + res = __vfwprintf (fp, wfmt, ap); + } else res = _IO_vfprintf (fp, fmt, ap); --- libc/posix/getopt.c.jj 2005-07-20 10:32:47.000000000 +0200 +++ libc/posix/getopt.c 2005-07-20 11:05:56.000000000 +0200 @@ -576,7 +576,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -651,7 +651,7 @@ _getopt_internal_r (int argc, char *cons ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -688,7 +688,7 @@ _getopt_internal_r (int argc, char *cons ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -762,7 +762,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -825,7 +825,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -873,7 +873,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -942,7 +942,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -984,7 +984,7 @@ _getopt_internal_r (int argc, char *cons ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -1023,7 +1023,7 @@ _getopt_internal_r (int argc, char *cons ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -1094,7 +1094,7 @@ _getopt_internal_r (int argc, char *cons int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); --- libc/malloc/obstack.c.jj 2005-07-20 10:32:44.000000000 +0200 +++ libc/malloc/obstack.c 2005-07-20 11:06:04.000000000 +0200 @@ -410,7 +410,7 @@ print_and_abort (void) happen because the "memory exhausted" message appears in other places like this and the translation should be reused instead of creating a very similar string which requires a separate translation. */ - (void) __fxprintf (NULL, "%s\n", L"%s\n", _("memory exhausted")); + (void) __fxprintf (NULL, "%s\n", _("memory exhausted")); exit (obstack_exit_failure); } --- libc/inet/rcmd.c.jj 2005-07-20 10:32:43.000000000 +0200 +++ libc/inet/rcmd.c 2005-07-20 11:07:18.000000000 +0200 @@ -138,11 +138,9 @@ rcmd_af(ahost, rport, locuser, remuser, error = getaddrinfo(*ahost, num, &hints, &res); if (error) { if (error == EAI_NONAME && *ahost != NULL) - __fxprintf(NULL, "%s: Unknown host\n", - L"%s: Unknown host\n", *ahost); + __fxprintf(NULL, "%s: Unknown host\n", *ahost); else __fxprintf(NULL, "rcmd: getaddrinfo: %s\n", - L"rcmd: getaddrinfo: %s\n", gai_strerror(error)); return -1; @@ -155,7 +153,7 @@ rcmd_af(ahost, rport, locuser, remuser, free (ahostbuf); ahostbuf = strdup (res->ai_canonname); if (ahostbuf == NULL) { - __fxprintf(NULL, "%s", L"%s", + __fxprintf(NULL, "%s", _("rcmd: Cannot allocate memory\n")); return -1; } @@ -171,11 +169,10 @@ rcmd_af(ahost, rport, locuser, remuser, s = rresvport_af(&lport, ai->ai_family); if (s < 0) { if (errno == EAGAIN) - __fxprintf(NULL, "%s", L"%s", _("\ + __fxprintf(NULL, "%s", _("\ rcmd: socket: All ports in use\n")); else - __fxprintf(NULL, "rcmd: socket: %m\n", - L"rcmd: socket: %m\n"); + __fxprintf(NULL, "rcmd: socket: %m\n"); __sigsetmask(oldmask); freeaddrinfo(res); @@ -203,7 +200,7 @@ rcmd: socket: All ports in use\n")); if (__asprintf (&buf, _("connect to address %s: "), paddr) >= 0) { - __fxprintf(NULL, "%s", L"%s", buf); + __fxprintf(NULL, "%s", buf); free (buf); } __set_errno (oerrno); @@ -215,7 +212,7 @@ rcmd: socket: All ports in use\n")); NI_NUMERICHOST); if (__asprintf (&buf, _("Trying %s...\n"), paddr) >= 0) { - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); } continue; @@ -228,7 +225,7 @@ rcmd: socket: All ports in use\n")); continue; } freeaddrinfo(res); - (void)__fxprintf(NULL, "%s: %s\n", L"%s: %s\n", *ahost, + (void)__fxprintf(NULL, "%s: %s\n", *ahost, __strerror_r(errno, errbuf, sizeof (errbuf))); __sigsetmask(oldmask); return -1; @@ -252,7 +249,7 @@ rcmd: socket: All ports in use\n")); if (__asprintf (&buf, _("\ rcmd: write (setting up stderr): %m\n")) >= 0) { - __fxprintf(NULL, "%s", L"%s", buf); + __fxprintf(NULL, "%s", buf); free (buf); } (void)__close(s2); @@ -271,7 +268,7 @@ rcmd: poll (setting up stderr): %m\n")) && __asprintf(&buf, _("\ poll: protocol failure in circuit setup\n")) >= 0)) { - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); } (void)__close(s2); @@ -292,8 +289,7 @@ poll: protocol failure in circuit setup\ } (void)__close(s2); if (s3 < 0) { - (void)__fxprintf(NULL, "rcmd: accept: %m\n", - L"rcmd: accept: %m\n"); + (void)__fxprintf(NULL, "rcmd: accept: %m\n"); lport = 0; goto bad; } @@ -305,7 +301,7 @@ poll: protocol failure in circuit setup\ if (__asprintf(&buf, _("\ socket: protocol failure in circuit setup\n")) >= 0) { - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); } goto bad2; @@ -331,7 +327,7 @@ socket: protocol failure in circuit setu || (n != 0 && __asprintf(&buf, "rcmd: %s: %m\n", *ahost) >= 0)) { - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); } goto bad2; --- libc/stdlib/fmtmsg.c.jj 2005-07-20 10:32:48.000000000 +0200 +++ libc/stdlib/fmtmsg.c 2005-07-20 11:07:26.000000000 +0200 @@ -155,7 +155,6 @@ fmtmsg (long int classification, const c int do_tag = (print & tag_mask) && tag != MM_NULLTAG; if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", - L"%s%s%s%s%s%s%s%s%s%s\n", do_label ? label : "", do_label && (do_severity | do_text | do_action | do_tag) ? ": " : "", --- libc/sunrpc/clnt_perr.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/clnt_perr.c 2005-07-20 11:07:52.000000000 +0200 @@ -155,7 +155,7 @@ libc_hidden_def (clnt_sperror) void clnt_perror (CLIENT * rpch, const char *msg) { - (void) __fxprintf (NULL, "%s", L"%s", clnt_sperror (rpch, msg)); + (void) __fxprintf (NULL, "%s", clnt_sperror (rpch, msg)); } libc_hidden_def (clnt_perror) @@ -284,7 +284,7 @@ libc_hidden_def (clnt_sperrno) void clnt_perrno (enum clnt_stat num) { - (void) __fxprintf (NULL, "%s", L"%s", clnt_sperrno (num)); + (void) __fxprintf (NULL, "%s", clnt_sperrno (num)); } @@ -327,7 +327,7 @@ libc_hidden_def (clnt_spcreateerror) void clnt_pcreateerror (const char *msg) { - (void) __fxprintf (NULL, "%s", L"%s", clnt_spcreateerror (msg)); + (void) __fxprintf (NULL, "%s", clnt_spcreateerror (msg)); } struct auth_errtab --- libc/sunrpc/svc_tcp.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/svc_tcp.c 2005-07-20 11:08:40.000000000 +0200 @@ -176,8 +176,7 @@ svctcp_create (int sock, u_int sendsize, xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT)); if (r == NULL || xprt == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("svctcp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("svctcp_create: out of memory\n")); mem_free (r, sizeof (*r)); mem_free (xprt, sizeof (SVCXPRT)); return NULL; @@ -215,7 +214,7 @@ makefd_xprt (int fd, u_int sendsize, u_i cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn)); if (xprt == (SVCXPRT *) NULL || cd == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", + (void) __fxprintf (NULL, "%s", _("svc_tcp: makefd_xprt: out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (cd, sizeof (struct tcp_conn)); --- libc/sunrpc/xdr_array.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/xdr_array.c 2005-07-20 11:10:03.000000000 +0200 @@ -105,8 +105,7 @@ xdr_array (xdrs, addrp, sizep, maxsize, *addrp = target = mem_alloc (nodesize); if (target == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("xdr_array: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("xdr_array: out of memory\n")); return FALSE; } __bzero (target, nodesize); --- libc/sunrpc/clnt_unix.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/clnt_unix.c 2005-07-20 11:09:29.000000000 +0200 @@ -125,8 +125,7 @@ clntunix_create (struct sockaddr_un *rad if (h == NULL || ct == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", L"%s", - _("clntunix_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("clntunix_create: out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; --- libc/sunrpc/svc_unix.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/svc_unix.c 2005-07-20 11:08:20.000000000 +0200 @@ -173,7 +173,7 @@ svcunix_create (int sock, u_int sendsize xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT)); if (r == NULL || xprt == NULL) { - __fxprintf (NULL, "%s", L"%s", _("svcunix_create: out of memory\n")); + __fxprintf (NULL, "%s", _("svcunix_create: out of memory\n")); mem_free (r, sizeof (*r)); mem_free (xprt, sizeof (SVCXPRT)); return NULL; @@ -211,7 +211,7 @@ makefd_xprt (int fd, u_int sendsize, u_i cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn)); if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL) { - (void) __fxprintf (NULL, "%s", L"%s", + (void) __fxprintf (NULL, "%s", _("svc_unix: makefd_xprt: out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (cd, sizeof (struct unix_conn)); --- libc/sunrpc/clnt_udp.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/clnt_udp.c 2005-07-20 11:10:17.000000000 +0200 @@ -136,8 +136,7 @@ clntudp_bufcreate (struct sockaddr_in *r if (cl == NULL || cu == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", L"%s", - _("clntudp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("clntudp_create: out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; --- libc/sunrpc/auth_unix.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/auth_unix.c 2005-07-20 11:09:55.000000000 +0200 @@ -111,8 +111,7 @@ authunix_create (char *machname, uid_t u if (auth == NULL || au == NULL) { no_memory: - (void) __fxprintf (NULL, "%s", L"%s", - _("authunix_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("authunix_create: out of memory\n")); mem_free (auth, sizeof (*auth)); mem_free (au, sizeof (*au)); return NULL; --- libc/sunrpc/svc_udp.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/svc_udp.c 2005-07-20 11:09:21.000000000 +0200 @@ -149,8 +149,7 @@ svcudp_bufcreate (sock, sendsz, recvsz) buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4); if (xprt == NULL || su == NULL || buf == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("svcudp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("svcudp_create: out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (su, sizeof (*su)); mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4); @@ -172,7 +171,7 @@ svcudp_bufcreate (sock, sendsz, recvsz) + sizeof(struct cmsghdr) + sizeof (struct in_pktinfo)) > sizeof (xprt->xp_pad)) { - (void) __fxprintf (NULL,"%s", L"%s", _("\ + (void) __fxprintf (NULL,"%s", _("\ svcudp_create: xp_pad is too small for IP_PKTINFO\n")); return NULL; } @@ -402,7 +401,7 @@ svcudp_destroy (xprt) #define SPARSENESS 4 /* 75% sparse */ #define CACHE_PERROR(msg) \ - (void) __fxprintf(NULL, "%s\n", L"%s\n", msg) + (void) __fxprintf(NULL, "%s\n", msg) #define ALLOC(type, size) \ (type *) mem_alloc((unsigned) (sizeof(type) * (size))) --- libc/sunrpc/clnt_tcp.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/clnt_tcp.c 2005-07-20 11:08:02.000000000 +0200 @@ -128,8 +128,7 @@ clnttcp_create (struct sockaddr_in *radd if (h == NULL || ct == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", L"%s", - _("clnttcp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("clnttcp_create: out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; --- libc/sunrpc/xdr.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/xdr.c 2005-07-20 11:09:47.000000000 +0200 @@ -563,8 +563,7 @@ xdr_bytes (xdrs, cpp, sizep, maxsize) } if (sp == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("xdr_bytes: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("xdr_bytes: out of memory\n")); return FALSE; } /* fall into ... */ @@ -716,8 +715,7 @@ xdr_string (xdrs, cpp, maxsize) *cpp = sp = (char *) mem_alloc (nodesize); if (sp == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("xdr_string: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("xdr_string: out of memory\n")); return FALSE; } sp[size] = 0; --- libc/sunrpc/svc_simple.c.jj 2005-07-20 10:32:49.000000000 +0200 +++ libc/sunrpc/svc_simple.c 2005-07-20 11:08:52.000000000 +0200 @@ -125,7 +125,7 @@ registerrpc (u_long prognum, u_long vers err_out: if (buf == NULL) return -1; - (void) __fxprintf (NULL, "%s", L"%s", buf); + (void) __fxprintf (NULL, "%s", buf); free (buf); return -1; } @@ -184,7 +184,7 @@ universal (struct svc_req *rqstp, SVCXPR err_out2: if (buf == NULL) exit (1); - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); exit (1); } --- libc/sunrpc/xdr_rec.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/xdr_rec.c 2005-07-20 11:07:37.000000000 +0200 @@ -153,8 +153,7 @@ xdrrec_create (XDR *xdrs, u_int sendsize if (rstrm == NULL || buf == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", - _("xdrrec_create: out of memory\n")); + (void) __fxprintf (NULL, "%s", _("xdrrec_create: out of memory\n")); mem_free (rstrm, sizeof (RECSTREAM)); mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT); /* --- libc/sunrpc/xdr_ref.c.jj 2005-07-20 10:32:50.000000000 +0200 +++ libc/sunrpc/xdr_ref.c 2005-07-20 11:09:02.000000000 +0200 @@ -82,7 +82,7 @@ xdr_reference (xdrs, pp, size, proc) *pp = loc = (caddr_t) mem_alloc (size); if (loc == NULL) { - (void) __fxprintf (NULL, "%s", L"%s", + (void) __fxprintf (NULL, "%s", _("xdr_reference: out of memory\n")); return FALSE; } --- libc/sysdeps/generic/wordexp.c.jj 2005-07-20 10:32:51.000000000 +0200 +++ libc/sysdeps/generic/wordexp.c 2005-07-20 11:10:28.000000000 +0200 @@ -1798,7 +1798,7 @@ envsubst: if (str[0] == '\0') str = _("parameter null or not set"); - __fxprintf (NULL, "%s: %s\n", L"%s: %s\n", env, str); + __fxprintf (NULL, "%s: %s\n", env, str); } if (free_value) --- libc/argp/argp-help.c.jj 2005-07-20 10:32:42.000000000 +0200 +++ libc/argp/argp-help.c 2005-07-20 11:10:53.000000000 +0200 @@ -1769,7 +1769,7 @@ __argp_error (const struct argp_state *s if (__asprintf (&buf, fmt, ap) < 0) buf = NULL; - __fxprintf (stream, "%s: %s\n", L"%s: %s\n", + __fxprintf (stream, "%s: %s\n", state ? state->name : __argp_short_program_name (), buf); free (buf); @@ -1821,7 +1821,7 @@ __argp_failure (const struct argp_state #endif #ifdef _LIBC - __fxprintf (stream, "%s", L"%s", + __fxprintf (stream, "%s", state ? state->name : __argp_short_program_name ()); #else fputs_unlocked (state ? state->name : __argp_short_program_name (), @@ -1839,7 +1839,7 @@ __argp_failure (const struct argp_state if (__asprintf (&buf, fmt, ap) < 0) buf = NULL; - __fxprintf (stream, ": %s", L": %s", buf); + __fxprintf (stream, ": %s", buf); free (buf); #else @@ -1857,7 +1857,7 @@ __argp_failure (const struct argp_state char buf[200]; #ifdef _LIBC - __fxprintf (stream, ": %s", L": %s", + __fxprintf (stream, ": %s", __strerror_r (errnum, buf, sizeof (buf))); #else putc_unlocked (':', stream); --- libc/argp/argp-fmtstream.c.jj 2005-07-20 10:32:41.000000000 +0200 +++ libc/argp/argp-fmtstream.c 2005-07-20 11:11:14.000000000 +0200 @@ -102,8 +102,7 @@ __argp_fmtstream_free (argp_fmtstream_t if (fs->p > fs->buf) { #ifdef USE_IN_LIBIO - __fxprintf (fs->stream, "%.*s", L"%.*s", - (int) (fs->p - fs->buf), fs->buf); + __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); #else fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); #endif @@ -292,7 +291,7 @@ __argp_fmtstream_update (argp_fmtstream_ /* Output the first line so we can use the space. */ { #ifdef _LIBC - __fxprintf (fs->stream, "%.*s\n", L"%.*s\n", + __fxprintf (fs->stream, "%.*s\n", (int) (nl - fs->buf), fs->buf); #else if (nl > fs->buf) @@ -359,8 +358,7 @@ __argp_fmtstream_ensure (struct argp_fmt __argp_fmtstream_update (fs); #ifdef _LIBC - __fxprintf (fs->stream, "%.*s", L"%.*s", - (int) (fs->p - fs->buf), fs->buf); + __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); wrote = fs->p - fs->buf; #else wrote = fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); --- libc/assert/assert.c.jj 2005-07-20 10:32:42.000000000 +0200 +++ libc/assert/assert.c 2005-07-20 11:11:22.000000000 +0200 @@ -61,7 +61,7 @@ __assert_fail (const char *assertion, co assertion) >= 0) { /* Print the message. */ - (void) __fxprintf (NULL, "%s", L"%s", buf); + (void) __fxprintf (NULL, "%s", buf); (void) fflush (stderr); /* We have to free the buffer since the application might catch the --- libc/assert/assert-perr.c.jj 2005-07-20 10:32:42.000000000 +0200 +++ libc/assert/assert-perr.c 2005-07-20 11:14:06.000000000 +0200 @@ -61,7 +61,7 @@ __assert_perror_fail (int errnum, __strerror_r (errnum, errbuf, sizeof errbuf)) >= 0) { /* Print the message. */ - (void) __fxprintf (NULL, "%s", L"%s", buf); + (void) __fxprintf (NULL, "%s", buf); (void) fflush (stderr); /* We have to free the buffer since the appplication might catch the --- libc/stdio-common/perror.c.jj 2005-07-20 10:32:48.000000000 +0200 +++ libc/stdio-common/perror.c 2005-07-20 11:14:20.000000000 +0200 @@ -37,7 +37,7 @@ perror_internal (FILE *fp, const char *s errstring = __strerror_r (errnum, buf, sizeof buf); - (void) __fxprintf (fp, "%s%s%s\n", L"%s%s%s\n", s, colon, errstring); + (void) __fxprintf (fp, "%s%s%s\n", s, colon, errstring); } --- libc/stdio-common/psignal.c.jj 2005-07-20 10:32:48.000000000 +0200 +++ libc/stdio-common/psignal.c 2005-07-20 11:15:14.000000000 +0200 @@ -47,17 +47,16 @@ psignal (int sig, const char *s) colon = ": "; if (sig >= 0 && sig < NSIG && (desc = INTUSE(_sys_siglist)[sig]) != NULL) - (void) __fxprintf (NULL, L"%s%s%s\n", "%s%s%s\n", s, colon, _(desc)); + (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _(desc)); else { char *buf; if (__asprintf (&buf, _("%s%sUnknown signal %d\n"), s, colon, sig) < 0) - (void) __fxprintf (NULL, "%s%s%s\n", L"%s%s%s\n", - s, colon, _("Unknown signal")); + (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _("Unknown signal")); else { - (void) __fxprintf (NULL, L"%s", "%s", buf); + (void) __fxprintf (NULL, "%s", buf); free (buf); } --- libc/gmon/gmon.c.jj 2005-07-20 10:32:43.000000000 +0200 +++ libc/gmon/gmon.c 2005-07-20 11:15:26.000000000 +0200 @@ -344,7 +344,6 @@ write_gmon (void) char buf[300]; int errnum = errno; __fxprintf (NULL, "_mcleanup: gmon.out: %s\n", - L"_mcleanup: gmon.out: %s\n", __strerror_r (errnum, buf, sizeof buf)); return; } --- libc/resolv/res_hconf.c.jj 2005-07-20 10:32:48.000000000 +0200 +++ libc/resolv/res_hconf.c 2005-07-20 11:16:14.000000000 +0200 @@ -150,7 +150,7 @@ arg_service_list (const char *fname, int fname, line_num, start) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -164,7 +164,7 @@ arg_service_list (const char *fname, int fname, line_num, SERVICE_MAX) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -187,7 +187,7 @@ arg_service_list (const char *fname, int fname, line_num) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -223,7 +223,7 @@ arg_trimdomain_list (const char *fname, fname, line_num, TRIMDOMAINS_MAX) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -244,7 +244,7 @@ arg_trimdomain_list (const char *fname, fname, line_num) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -302,7 +302,7 @@ arg_bool (const char *fname, int line_nu fname, line_num, args) < 0) return 0; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return 0; @@ -345,7 +345,7 @@ parse_line (const char *fname, int line_ fname, line_num, start) < 0) return; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); return; @@ -370,7 +370,7 @@ parse_line (const char *fname, int line_ fname, line_num, str) < 0) break; - __fxprintf (NULL, "%s", L"%s", buf); + __fxprintf (NULL, "%s", buf); free (buf); } --- libc/misc/getpass.c.jj 2005-07-20 10:32:44.000000000 +0200 +++ libc/misc/getpass.c 2005-07-20 11:17:17.000000000 +0200 @@ -91,7 +91,7 @@ getpass (prompt) tty_changed = 0; /* Write the prompt. */ - __fxprintf (out, "%s", L"%s", prompt); + __fxprintf (out, "%s", prompt); fflush_unlocked (out); /* Read the password. */ @@ -106,7 +106,7 @@ getpass (prompt) buf[nread - 1] = '\0'; if (tty_changed) /* Write the newline that was not echoed. */ - __fxprintf (out, "%c", L"%c", '\n'); + __fxprintf (out, "\n"); } } --- libc/misc/error.c.jj 2005-07-20 10:32:44.000000000 +0200 +++ libc/misc/error.c 2005-07-20 11:16:40.000000000 +0200 @@ -158,7 +158,7 @@ print_errno_message (int errnum) #endif #if _LIBC - __fxprintf (NULL, ": %s", L": %s", s); + __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif @@ -243,7 +243,7 @@ error_tail (int status, int errnum, cons if (errnum) print_errno_message (errnum); # if _LIBC - __fxprintf (NULL, "\n", L"\n"); + __fxprintf (NULL, "\n"); # else putc ('\n', stderr); # endif @@ -291,7 +291,7 @@ error (status, errnum, message, va_alist else { #if _LIBC - __fxprintf (NULL, "%s: ", L"%s: ", program_name); + __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif @@ -374,7 +374,7 @@ error_at_line (status, errnum, file_name else { #if _LIBC - __fxprintf (NULL, "%s:", L"%s: ", program_name); + __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif @@ -383,7 +383,7 @@ error_at_line (status, errnum, file_name if (file_name != NULL) { #if _LIBC - __fxprintf (NULL, "%s:%d: ", L"%s:%d: ", file_name, line_number); + __fxprintf (NULL, "%s:%d: ", file_name, line_number); #else fprintf (stderr, "%s:%d: ", file_name, line_number); #endif Jakub