aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2002-06-20 16:09:31 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2002-06-20 16:09:31 +0000
commitd26cb6597ecd1c6b612d0159651cd607f9003a09 (patch)
treef020f619a7025f007bb716175723b31a7f6283c6
parent5e2f130a7693ad7f607a8d0cfc47965ba214837f (diff)
downloadPROJ-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.am2
-rw-r--r--src/Makefile.in6
-rw-r--r--src/dmstor.c33
-rw-r--r--src/projects.h4
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);