From 2eaad01d335b72f78eb0d6344ac31fce46a82e68 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 19 Apr 2005 20:55:56 +0000 Subject: more symbol escaping better method for discriminating numbers and symbols - by Frank Barknecht svn path=/trunk/; revision=2794 --- externals/grill/pool/readme.txt | 1 + externals/grill/pool/source/pool.cpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/externals/grill/pool/readme.txt b/externals/grill/pool/readme.txt index 42103fa6..df5787c5 100644 --- a/externals/grill/pool/readme.txt +++ b/externals/grill/pool/readme.txt @@ -85,6 +85,7 @@ Version history: - enhanced and optimized atom parsing - escaped symbols (with \) for whitespace support on store and load - escape symbols also with "" to help the load routine +- improved reading of legacy data by Frank Barknecht 0.2.0: - attributes (pool,private,echodir,absdir) diff --git a/externals/grill/pool/source/pool.cpp b/externals/grill/pool/source/pool.cpp index 23f5edbc..c2c0de6a 100644 --- a/externals/grill/pool/source/pool.cpp +++ b/externals/grill/pool/source/pool.cpp @@ -514,7 +514,14 @@ static char *ReadAtom(char *c,A *a) float fres; // first try float +#if 0 if(!issymbol && sscanf(tmp,"%f",&fres) == 1) { +#else + char *endp; + // see if it's a float - thanks to Frank Barknecht + fres = (float)strtod(tmp,&endp); + if(!issymbol && !*endp && endp != tmp) { +#endif if(a) { int ires = (int)fres; // try a cast if(fres == ires) -- cgit v1.2.1