From 34992338178abc47897f10ce4fb12d204e682b14 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 7 Jan 1999 09:55:57 +0000 Subject: Update. 1999-01-07 Ulrich Drepper * sysdeps/i386/bits/select.h (__FD_ZERO): Remove early clobbers from c and D register output. 1999-01-07 Philip Blundell * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Fix bug in last change. 1999-01-07 Ulrich Drepper * sysdeps/unix/sysv/linux/alpha/bits/types.h: Correct type for __fsfilcnt_t. Patch by Bruce Elliott . 1999-01-05 Andreas Schwab * manual/conf.texi: Remove pointers from first @node. Move old @node spec inside comment. * manual/lang.texi: Likewise. * manual/libc-texinfo.sh: Also find `@node.*Top' in a comment. * manual/stdio.texi: Fix typo. 1999-01-04 Andreas Schwab * wcsmbs/btowc.c: Accept all values in the range [SCHAR_MIN .. UCHAR_MAX]. Local var buf renamed to result and its type changed from char[] to wchar_t to get proper alignment. * posix/fnmatch.c: Also cast the arguments of the other ctype functions to unsigned char. 1999-01-07 Ulrich Drepper * Rules: Add rules for empty.{o,os,op} back. --- wcsmbs/btowc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'wcsmbs/btowc.c') diff --git a/wcsmbs/btowc.c b/wcsmbs/btowc.c index b6a682897b..bac99e8547 100644 --- a/wcsmbs/btowc.c +++ b/wcsmbs/btowc.c @@ -1,6 +1,6 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Ulrich Drepper, + Contributed by Ulrich Drepper , 1996. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -22,13 +22,14 @@ #include #include #include +#include wint_t __btowc (c) int c; { - char buf[sizeof (wchar_t)]; + wchar_t result; struct gconv_step_data data; char inbuf[1]; const char *inptr = inbuf; @@ -37,11 +38,11 @@ __btowc (c) /* If the parameter does not fit into one byte or it is the EOF value we can give the answer now. */ - if (c < -128 || c > 127 || c == EOF) + if (c < SCHAR_MIN || c > UCHAR_MAX || c == EOF) return WEOF; /* Tell where we want the result. */ - data.outbuf = (char *) buf; + data.outbuf = (char *) &result; data.outbufend = data.outbuf + sizeof (wchar_t); data.invocation_counter = 0; data.internal_use = 1; @@ -62,8 +63,8 @@ __btowc (c) /* The conversion failed. */ if (status != GCONV_OK && status != GCONV_FULL_OUTPUT && status != GCONV_EMPTY_INPUT) - return WEOF; + result = WEOF; - return *(wchar_t *)buf; + return result; } weak_alias (__btowc, btowc) -- cgit 1.4.1