Date: Sun, 27 Jan 2002 13:11:25 -0700 From: Chad David <davidc@acns.ab.ca> To: Alexey Zelkin <phantom@FreeBSD.ORG> Cc: Chad David <davidc@acns.ab.ca>, "Andrey A. Chernov" <ache@nagual.pp.ru>, "Brian F. Feldman" <green@FreeBSD.ORG>, Bruce Evans <bde@zeta.org.au>, arch@FreeBSD.ORG Subject: Re: strtod() Message-ID: <20020127131125.B42735@colnta.acns.ab.ca> In-Reply-To: <20020127171925.A14791@phantom.cris.net>; from phantom@FreeBSD.ORG on Sun, Jan 27, 2002 at 05:19:25PM %2B0200 References: <20020126162924.A7726@colnta.acns.ab.ca> <200201270453.g0R4rwi92912@green.bikeshed.org> <20020127070421.GA13415@nagual.pp.ru> <20020127003719.A38420@colnta.acns.ab.ca> <20020127171925.A14791@phantom.cris.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 27, 2002 at 05:19:25PM +0200, Alexey Zelkin wrote:
> hi,
>
> On Sun, Jan 27, 2002 at 12:37:19AM -0700, Chad David wrote:
>
> > The attached patch fixes this case, and probably others. Comments?
> >
> > Index: localeconv.c
> > ===================================================================
> > RCS file: /mnt1/ncvs/src/lib/libc/locale/localeconv.c,v
> > retrieving revision 1.3
> > diff -u -d -r1.3 localeconv.c
> > --- localeconv.c 10 Feb 2001 02:00:56 -0000 1.3
> ^^^^^^^^^^^
> > +++ localeconv.c 27 Jan 2002 07:28:51 -0000
> ^^^^^^^^^^^
>
> You current seems too old. And I'd suggest to update it first before
> making tests. At the begining of the last year many locale oriented things
> were changed.
>
Just this one file (as I mentioned in my last email) :(.
The differences between 1.3 are pretty minor though, and they do not
affect this.
colnta->cvs diff -ud -r 1.3 localeconv.c
Index: localeconv.c
===================================================================
RCS file: /mnt1/ncvs/src/lib/libc/locale/localeconv.c,v
retrieving revision 1.3
retrieving revision 1.9
diff -u -d -r1.3 -r1.9
--- localeconv.c 10 Feb 2001 02:00:56 -0000 1.3
+++ localeconv.c 20 Dec 2001 15:30:02 -0000 1.9
[cut copyright]
@@ -29,11 +36,13 @@
#if 0
static char sccsid[] = "@(#)localeconv.c 8.1 (Berkeley) 6/4/93";
#endif
-static char rcsid[] = "$FreeBSD: src/lib/libc/locale/localeconv.c,v 1.3 2001/02/10 02:00:56 ache Exp $";
+static char rcsid[] =
+ "$FreeBSD: src/lib/libc/locale/localeconv.c,v 1.9 2001/12/20 15:30:02 phantom Exp $";
#endif /* LIBC_SCCS and not lint */
#include <locale.h>
#include <stdlib.h>
+#include <limits.h>
#include "lmonetary.h"
#include "lnumeric.h"
@@ -51,7 +60,10 @@
static char
cnv(char *str) {
- return (char)strtol(str, NULL, 0);
+ int i = strtol(str, NULL, 10);
+ if (i == -1)
+ i = CHAR_MAX;
+ return (char)i;
}
This change here detected that strtol() was failing, but didn't fix errno.
--
Chad David davidc@acns.ab.ca
www.FreeBSD.org davidc@freebsd.org
ACNS Inc. Calgary, Alberta Canada
Fourthly, The constant breeders, beside the gain of eight shillings
sterling per annum by the sale of their children, will be rid of the
charge of maintaining them after the first year. - Johnathan Swift
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020127131125.B42735>
