diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2002-06-20 16:09:31 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2002-06-20 16:09:31 +0000 |
| commit | d26cb6597ecd1c6b612d0159651cd607f9003a09 (patch) | |
| tree | f020f619a7025f007bb716175723b31a7f6283c6 | |
| parent | 5e2f130a7693ad7f607a8d0cfc47965ba214837f (diff) | |
| download | PROJ-d26cb6597ecd1c6b612d0159651cd607f9003a09.tar.gz PROJ-d26cb6597ecd1c6b612d0159651cd607f9003a09.zip | |
removed strtod, reimplement non-GPL strtod cover within dmstor.c
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1024 4e78687f-474d-0410-85f9-8d5e500ac6b2
| -rw-r--r-- | src/Makefile.am | 2 | ||||
| -rw-r--r-- | src/Makefile.in | 6 | ||||
| -rw-r--r-- | src/dmstor.c | 33 | ||||
| -rw-r--r-- | src/projects.h | 4 |
4 files changed, 40 insertions, 5 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 2fde67e6..659494aa 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -58,7 +58,7 @@ libproj_la_SOURCES = \ \ nad_cvt.c nad_init.c nad_intr.c emess.c emess.h \ pj_apply_gridshift.c pj_datums.c pj_datum_set.c pj_transform.c \ - geocent.c geocent.h strtod.c pj_utils.c + geocent.c geocent.h pj_utils.c install-exec-local: diff --git a/src/Makefile.in b/src/Makefile.in index 70b21d96..b89097b8 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -96,7 +96,7 @@ lib_LTLIBRARIES = libproj.la libproj_la_LDFLAGS = -version-info 3:1:3 -libproj_la_SOURCES = projects.h pj_list.h PJ_aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c PJ_nsper.c PJ_nzmg.c PJ_ortho.c PJ_stere.c PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c PJ_imw_p.c PJ_krovak.c PJ_lcc.c PJ_mpoly.c PJ_poly.c PJ_rpoly.c PJ_sconics.c PJ_cass.c PJ_cc.c PJ_cea.c PJ_eqc.c PJ_gall.c PJ_labrd.c PJ_lsat.c PJ_merc.c PJ_mill.c PJ_ocea.c PJ_omerc.c PJ_somerc.c PJ_tcc.c PJ_tcea.c PJ_tmerc.c PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c PJ_chamb.c PJ_hammer.c PJ_lagrng.c PJ_larr.c PJ_lask.c PJ_nocol.c PJ_ob_tran.c PJ_oea.c PJ_tpeqd.c PJ_vandg.c PJ_vandg2.c PJ_vandg4.c PJ_wag7.c PJ_boggs.c PJ_collg.c PJ_crast.c PJ_denoy.c PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gn_sinu.c PJ_goode.c PJ_hatano.c PJ_loxim.c PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c PJ_sts.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c PJ_wag3.c PJ_wink1.c PJ_wink2.c pj_latlong.c aasincos.c adjlon.c bch2bps.c bchgen.c biveval.c dmstor.c mk_cheby.c pj_auth.c pj_deriv.c pj_ell_set.c pj_ellps.c pj_errno.c pj_factors.c pj_fwd.c pj_init.c pj_inv.c pj_list.c pj_malloc.c pj_mlfn.c pj_msfn.c pj_open_lib.c pj_param.c pj_phi2.c pj_pr_list.c pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_zpoly1.c rtodms.c vector1.c pj_release.c nad_cvt.c nad_init.c nad_intr.c emess.c emess.h pj_apply_gridshift.c pj_datums.c pj_datum_set.c pj_transform.c geocent.c geocent.h strtod.c pj_utils.c +libproj_la_SOURCES = projects.h pj_list.h PJ_aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c PJ_nsper.c PJ_nzmg.c PJ_ortho.c PJ_stere.c PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c PJ_imw_p.c PJ_krovak.c PJ_lcc.c PJ_mpoly.c PJ_poly.c PJ_rpoly.c PJ_sconics.c PJ_cass.c PJ_cc.c PJ_cea.c PJ_eqc.c PJ_gall.c PJ_labrd.c PJ_lsat.c PJ_merc.c PJ_mill.c PJ_ocea.c PJ_omerc.c PJ_somerc.c PJ_tcc.c PJ_tcea.c PJ_tmerc.c PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c PJ_chamb.c PJ_hammer.c PJ_lagrng.c PJ_larr.c PJ_lask.c PJ_nocol.c PJ_ob_tran.c PJ_oea.c PJ_tpeqd.c PJ_vandg.c PJ_vandg2.c PJ_vandg4.c PJ_wag7.c PJ_boggs.c PJ_collg.c PJ_crast.c PJ_denoy.c PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gn_sinu.c PJ_goode.c PJ_hatano.c PJ_loxim.c PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c PJ_sts.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c PJ_wag3.c PJ_wink1.c PJ_wink2.c pj_latlong.c aasincos.c adjlon.c bch2bps.c bchgen.c biveval.c dmstor.c mk_cheby.c pj_auth.c pj_deriv.c pj_ell_set.c pj_ellps.c pj_errno.c pj_factors.c pj_fwd.c pj_init.c pj_inv.c pj_list.c pj_malloc.c pj_mlfn.c pj_msfn.c pj_open_lib.c pj_param.c pj_phi2.c pj_pr_list.c pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_zpoly1.c rtodms.c vector1.c pj_release.c nad_cvt.c nad_init.c nad_intr.c emess.c emess.h pj_apply_gridshift.c pj_datums.c pj_datum_set.c pj_transform.c geocent.c geocent.h pj_utils.c mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = proj_config.h @@ -132,7 +132,7 @@ pj_mlfn.lo pj_msfn.lo pj_open_lib.lo pj_param.lo pj_phi2.lo \ pj_pr_list.lo pj_qsfn.lo pj_strerrno.lo pj_tsfn.lo pj_units.lo \ pj_zpoly1.lo rtodms.lo vector1.lo pj_release.lo nad_cvt.lo nad_init.lo \ nad_intr.lo emess.lo pj_apply_gridshift.lo pj_datums.lo pj_datum_set.lo \ -pj_transform.lo geocent.lo strtod.lo pj_utils.lo +pj_transform.lo geocent.lo pj_utils.lo PROGRAMS = $(bin_PROGRAMS) proj_OBJECTS = proj.o gen_cheb.o p_series.o @@ -199,7 +199,7 @@ DEP_FILES = .deps/PJ_aea.P .deps/PJ_aeqd.P .deps/PJ_airy.P \ .deps/pj_phi2.P .deps/pj_pr_list.P .deps/pj_qsfn.P .deps/pj_release.P \ .deps/pj_strerrno.P .deps/pj_transform.P .deps/pj_tsfn.P \ .deps/pj_units.P .deps/pj_utils.P .deps/pj_zpoly1.P .deps/proj.P \ -.deps/rtodms.P .deps/strtod.P .deps/vector1.P +.deps/rtodms.P .deps/vector1.P SOURCES = $(libproj_la_SOURCES) $(proj_SOURCES) $(nad2nad_SOURCES) $(nad2bin_SOURCES) $(geod_SOURCES) $(cs2cs_SOURCES) OBJECTS = $(libproj_la_OBJECTS) $(proj_OBJECTS) $(nad2nad_OBJECTS) $(nad2bin_OBJECTS) $(geod_OBJECTS) $(cs2cs_OBJECTS) diff --git a/src/dmstor.c b/src/dmstor.c index 44ce5e37..e4b6064a 100644 --- a/src/dmstor.c +++ b/src/dmstor.c @@ -6,6 +6,8 @@ static const char SCCSID[]="@(#)dmstor.c 4.4 93/06/16 GIE REL"; #include <string.h> #include <ctype.h> +static double proj_strtod(const char *nptr, char **endptr); + /* following should be sufficient for all but the rediculous */ #define MAX_WORK 64 static const char @@ -76,3 +78,34 @@ dmstor(const char *is, char **rs) { *rs = (char *)is + (s - work); return v; } + +static double +proj_strtod(const char *nptr, char **endptr) + +{ + char c, *cp = nptr; + double result; + + /* + * Scan for characters which cause problems with VC++ strtod() + */ + while ((c = *cp) != '\0') { + if (c == 'd' || c == 'D') { + + /* + * Found one, so NUL it out, call strtod(), + * then restore it and return + */ + *cp = '\0'; + result = strtod(nptr, endptr); + *cp = c; + return result; + } + ++cp; + } + + /* no offending characters, just handle normally */ + + return strtod(nptr, endptr); +} + diff --git a/src/projects.h b/src/projects.h index 54f01155..fe602c08 100644 --- a/src/projects.h +++ b/src/projects.h @@ -28,6 +28,9 @@ ****************************************************************************** * * $Log$ + * Revision 1.11 2002/06/20 16:09:31 warmerda + * removed strtod, reimplement non-GPL strtod cover within dmstor.c + * * Revision 1.10 2002/06/13 14:06:49 warmerda * Removed incorrect labelling of 3PARAM and 7PARAM as Molodensky. * @@ -285,7 +288,6 @@ struct CTABLE { }; /* procedure prototypes */ double dmstor(const char *, char **); -double proj_strtod( const char *, char ** ); void set_rtodms(int, int); char *rtodms(char *, double, int, int); double adjlon(double); |
