Revision: 4795
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4795&view=rev
Author:   jswhit
Date:     2007-12-28 12:04:31 -0800 (Fri, 28 Dec 2007)

Log Message:
-----------
revert the update to proj 4.6.0

Modified Paths:
--------------
    trunk/toolkits/basemap/src/PJ_gn_sinu.c
    trunk/toolkits/basemap/src/PJ_krovak.c
    trunk/toolkits/basemap/src/PJ_laea.c
    trunk/toolkits/basemap/src/PJ_wag3.c
    trunk/toolkits/basemap/src/emess.c
    trunk/toolkits/basemap/src/geocent.c
    trunk/toolkits/basemap/src/geocent.h
    trunk/toolkits/basemap/src/geod.c
    trunk/toolkits/basemap/src/nad_init.c
    trunk/toolkits/basemap/src/pj_datum_set.c
    trunk/toolkits/basemap/src/pj_factors.c
    trunk/toolkits/basemap/src/pj_gridinfo.c
    trunk/toolkits/basemap/src/pj_gridlist.c
    trunk/toolkits/basemap/src/pj_init.c
    trunk/toolkits/basemap/src/pj_latlong.c
    trunk/toolkits/basemap/src/pj_list.h
    trunk/toolkits/basemap/src/pj_open_lib.c
    trunk/toolkits/basemap/src/pj_release.c
    trunk/toolkits/basemap/src/pj_transform.c
    trunk/toolkits/basemap/src/pj_utils.c
    trunk/toolkits/basemap/src/proj_api.h
    trunk/toolkits/basemap/src/projects.h
    trunk/toolkits/basemap/src/rtodms.c

Modified: trunk/toolkits/basemap/src/PJ_gn_sinu.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_gn_sinu.c     2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/PJ_gn_sinu.c     2007-12-28 20:04:31 UTC (rev 
4795)
@@ -75,6 +75,7 @@
        if (!(P->en = pj_enfn(P->es)))
                E_ERROR_0;
        if (P->es) {
+               P->en = pj_enfn(P->es);
                P->inv = e_inverse;
                P->fwd = e_forward;
        } else {

Modified: trunk/toolkits/basemap/src/PJ_krovak.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_krovak.c      2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/PJ_krovak.c      2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: PJ_krovak.c,v 1.9 2007/03/07 17:32:32 fwarmerdam Exp $
+ * $Id: PJ_krovak.c,v 1.6 2006/09/14 13:10:50 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Implementation of the krovak (Krovak) projection.
@@ -30,15 +30,6 @@
  ******************************************************************************
  *
  * $Log: PJ_krovak.c,v $
- * Revision 1.9  2007/03/07 17:32:32  fwarmerdam
- * remove orphan semicolon.
- *
- * Revision 1.8  2007/03/07 17:28:08  fwarmerdam
- * Make it reasonably clear that this is ellipsoidal in the code.
- *
- * Revision 1.7  2007/03/07 17:25:34  fwarmerdam
- * report krovak as ellipsoidal, not spherical
- *
  * Revision 1.6  2006/09/14 13:10:50  fwarmerdam
  * Add +czech flag to control reversal of signs (bug 1133,147)
  *
@@ -64,9 +55,9 @@
 #include <string.h>
 #include <stdio.h>
 
-PJ_CVSID("$Id: PJ_krovak.c,v 1.9 2007/03/07 17:32:32 fwarmerdam Exp $");       
+PJ_CVSID("$Id: PJ_krovak.c,v 1.6 2006/09/14 13:10:50 fwarmerdam Exp $");       
 
-PROJ_HEAD(krovak, "Krovak") "\n\tPCyl., Ellps.";
+PROJ_HEAD(krovak, "Krovak") "\n\tPCyl., Sph.";
 
 /**
    NOTES: According to EPSG the full Krovak projection method should have
@@ -93,7 +84,7 @@
 
 
 
-FORWARD(e_forward); /* ellipsoid */
+FORWARD(s_forward); /* spheroid */
 /* calculate xy from lat/lon */
 
        char errmess[255];
@@ -162,7 +153,7 @@
 
 
 
-INVERSE(e_inverse); /* ellipsoid */
+INVERSE(s_inverse); /* spheroid */
        /* calculate lat/lon from xy */
 
 /* Constants, identisch wie in der Umkehrfunktion */
@@ -267,14 +258,15 @@
         /* as input and output, instead of lat/long relative to Ferro */
        if (!pj_param(P->params, "tlon_0").i)
             P->lam0 = 0.7417649320975901 - 0.308341501185665;
+; 
 
         /* if scale not set default to 0.9999 */
        if (!pj_param(P->params, "tk").i)
             P->k0 = 0.9999;
 
        /* always the same */
-        P->inv = e_inverse; 
-       P->fwd = e_forward;
+        P->inv = s_inverse; 
+       P->fwd = s_forward;
 
 ENDENTRY(P)
 

Modified: trunk/toolkits/basemap/src/PJ_laea.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_laea.c        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/PJ_laea.c        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -179,14 +179,8 @@
                0. : atan2(xy.x, xy.y);
        return (lp);
 }
-FREEUP;
-    if (P) {
-               if (P->apa)
-                       pj_dalloc(P->apa);
-               pj_dalloc(P);
-       }
-}
-ENTRY1(laea,apa)
+FREEUP; if (P) pj_dalloc(P); }
+ENTRY0(laea)
        double t;
 
        if (fabs((t = fabs(P->phi0)) - HALFPI) < EPS10)

Modified: trunk/toolkits/basemap/src/PJ_wag3.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_wag3.c        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/PJ_wag3.c        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -5,7 +5,7 @@
        double  C_x;
 #define PJ_LIB__
 # include      <projects.h>
-PROJ_HEAD(wag3, "Wagner III") "\n\tPCyl., Sph.\n\tlat_ts=";
+PROJ_HEAD(wag3, "Wagner III") "\n\tPCyl., Sph.";
 #define TWOTHIRD 0.6666666666666666666667
 FORWARD(s_forward); /* spheroid */
        xy.x = P->C_x * lp.lam * cos(TWOTHIRD * lp.phi);

Modified: trunk/toolkits/basemap/src/emess.c
===================================================================
--- trunk/toolkits/basemap/src/emess.c  2007-12-28 19:44:55 UTC (rev 4794)
+++ trunk/toolkits/basemap/src/emess.c  2007-12-28 20:04:31 UTC (rev 4795)
@@ -3,15 +3,6 @@
 static const char SCCSID[]="@(#)emess.c        4.6     94/05/24        GIE     
REL";
 #endif
 
-#ifdef _MSC_VER
-#  ifndef _CRT_SECURE_NO_DEPRECATE
-#    define _CRT_SECURE_NO_DEPRECATE
-#  endif
-#  ifndef _CRT_NONSTDC_NO_DEPRECATE
-#    define _CRT_NONSTDC_NO_DEPRECATE
-#  endif
-#endif
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>

Modified: trunk/toolkits/basemap/src/geocent.c
===================================================================
--- trunk/toolkits/basemap/src/geocent.c        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/geocent.c        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -65,9 +65,6 @@
  *    25-02-97          Original Code
  *
  * $Log: geocent.c,v $
- * Revision 1.7  2007/09/11 20:19:36  fwarmerdam
- * avoid use of static variables to make reentrant
- *
  * Revision 1.6  2006/01/12 22:29:01  fwarmerdam
  * make geocent.c globals static to avoid conflicts
  *
@@ -112,11 +109,29 @@
 
 /***************************************************************************/
 /*
+ *                              GLOBAL DECLARATIONS
+ */
+/* Ellipsoid parameters, default to WGS 84 */
+static double Geocent_a = 6378137.0;     /* Semi-major axis of ellipsoid in 
meters */
+static double Geocent_b = 6356752.3142;  /* Semi-minor axis of ellipsoid       
    */
+
+static double Geocent_a2 = 40680631590769.0;        /* Square of semi-major 
axis */
+static double Geocent_b2 = 40408299984087.05;       /* Square of semi-minor 
axis */
+static double Geocent_e2 = 0.0066943799901413800;   /* Eccentricity squared  */
+static double Geocent_ep2 = 0.00673949675658690300; /* 2nd eccentricity 
squared */
+/*
+ * These state variables are for optimization purposes.  The only function
+ * that should modify them is Set_Geocentric_Parameters.
+ */
+
+
+/***************************************************************************/
+/*
  *                              FUNCTIONS     
  */
 
 
-long pj_Set_Geocentric_Parameters (GeocentricInfo *gi, double a, double b) 
+long pj_Set_Geocentric_Parameters (double a, double b) 
 
 { /* BEGIN Set_Geocentric_Parameters */
 /*
@@ -126,30 +141,29 @@
  *    a  : Semi-major axis, in meters.          (input)
  *    b  : Semi-minor axis, in meters.          (input)
  */
-    long Error_Code = GEOCENT_NO_ERROR;
+  long Error_Code = GEOCENT_NO_ERROR;
 
-    if (a <= 0.0)
-        Error_Code |= GEOCENT_A_ERROR;
-    if (b <= 0.0)
-        Error_Code |= GEOCENT_B_ERROR;
-    if (a < b)
-        Error_Code |= GEOCENT_A_LESS_B_ERROR;
-    if (!Error_Code)
-    {
-        gi->Geocent_a = a;
-        gi->Geocent_b = b;
-        gi->Geocent_a2 = a * a;
-        gi->Geocent_b2 = b * b;
-        gi->Geocent_e2 = (gi->Geocent_a2 - gi->Geocent_b2) / gi->Geocent_a2;
-        gi->Geocent_ep2 = (gi->Geocent_a2 - gi->Geocent_b2) / gi->Geocent_b2;
-    }
-    return (Error_Code);
+  if (a <= 0.0)
+    Error_Code |= GEOCENT_A_ERROR;
+  if (b <= 0.0)
+    Error_Code |= GEOCENT_B_ERROR;
+  if (a < b)
+    Error_Code |= GEOCENT_A_LESS_B_ERROR;
+  if (!Error_Code)
+  {
+    Geocent_a = a;
+    Geocent_b = b;
+    Geocent_a2 = a * a;
+    Geocent_b2 = b * b;
+    Geocent_e2 = (Geocent_a2 - Geocent_b2) / Geocent_a2;
+    Geocent_ep2 = (Geocent_a2 - Geocent_b2) / Geocent_b2;
+  }
+  return (Error_Code);
 } /* END OF Set_Geocentric_Parameters */
 
 
-void pj_Get_Geocentric_Parameters (GeocentricInfo *gi,
-                                   double *a, 
-                                   double *b)
+void pj_Get_Geocentric_Parameters (double *a, 
+                                double *b)
 { /* BEGIN Get_Geocentric_Parameters */
 /*
  * The function Get_Geocentric_Parameters returns the ellipsoid parameters
@@ -159,18 +173,17 @@
  *    b  : Semi-minor axis, in meters.          (output)
  */
 
-    *a = gi->Geocent_a;
-    *b = gi->Geocent_b;
+  *a = Geocent_a;
+  *b = Geocent_b;
 } /* END OF Get_Geocentric_Parameters */
 
 
-long pj_Convert_Geodetic_To_Geocentric (GeocentricInfo *gi,
-                                        double Latitude,
-                                        double Longitude,
-                                        double Height,
-                                        double *X,
-                                        double *Y,
-                                        double *Z) 
+long pj_Convert_Geodetic_To_Geocentric (double Latitude,
+                                     double Longitude,
+                                     double Height,
+                                     double *X,
+                                     double *Y,
+                                     double *Z) 
 { /* BEGIN Convert_Geodetic_To_Geocentric */
 /*
  * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates
@@ -212,10 +225,10 @@
     Sin_Lat = sin(Latitude);
     Cos_Lat = cos(Latitude);
     Sin2_Lat = Sin_Lat * Sin_Lat;
-    Rn = gi->Geocent_a / (sqrt(1.0e0 - gi->Geocent_e2 * Sin2_Lat));
+    Rn = Geocent_a / (sqrt(1.0e0 - Geocent_e2 * Sin2_Lat));
     *X = (Rn + Height) * Cos_Lat * cos(Longitude);
     *Y = (Rn + Height) * Cos_Lat * sin(Longitude);
-    *Z = ((Rn * (1 - gi->Geocent_e2)) + Height) * Sin_Lat;
+    *Z = ((Rn * (1 - Geocent_e2)) + Height) * Sin_Lat;
 
   }
   return (Error_Code);
@@ -236,13 +249,12 @@
 
 #define USE_ITERATIVE_METHOD
 
-void pj_Convert_Geocentric_To_Geodetic (GeocentricInfo *gi,
-                                        double X,
-                                        double Y, 
-                                        double Z,
-                                        double *Latitude,
-                                        double *Longitude,
-                                        double *Height)
+void pj_Convert_Geocentric_To_Geodetic (double X,
+                                     double Y, 
+                                     double Z,
+                                     double *Latitude,
+                                     double *Longitude,
+                                     double *Height)
 { /* BEGIN Convert_Geocentric_To_Geodetic */
 #if !defined(USE_ITERATIVE_METHOD)
 /*
@@ -309,12 +321,12 @@
     Sin_B0 = T0 / S0;
     Cos_B0 = W / S0;
     Sin3_B0 = Sin_B0 * Sin_B0 * Sin_B0;
-    T1 = Z + gi->Geocent_b * gi->Geocent_ep2 * Sin3_B0;
-    Sum = W - gi->Geocent_a * gi->Geocent_e2 * Cos_B0 * Cos_B0 * Cos_B0;
+    T1 = Z + Geocent_b * Geocent_ep2 * Sin3_B0;
+    Sum = W - Geocent_a * Geocent_e2 * Cos_B0 * Cos_B0 * Cos_B0;
     S1 = sqrt(T1*T1 + Sum * Sum);
     Sin_p1 = T1 / S1;
     Cos_p1 = Sum / S1;
-    Rn = gi->Geocent_a / sqrt(1.0 - gi->Geocent_e2 * Sin_p1 * Sin_p1);
+    Rn = Geocent_a / sqrt(1.0 - Geocent_e2 * Sin_p1 * Sin_p1);
     if (Cos_p1 >= COS_67P5)
     {
         *Height = W / Cos_p1 - Rn;
@@ -325,7 +337,7 @@
     }
     else
     {
-        *Height = Z / Sin_p1 + Rn * (gi->Geocent_e2 - 1.0);
+        *Height = Z / Sin_p1 + Rn * (Geocent_e2 - 1.0);
     }
     if (At_Pole == FALSE)
     {
@@ -389,7 +401,7 @@
     RR = sqrt(X*X+Y*Y+Z*Z);
 
 /*     special cases for latitude and longitude */
-    if (P/gi->Geocent_a < genau) {
+    if (P/Geocent_a < genau) {
 
 /*  special case, if P=0. (X=0., Y=0.) */
         At_Pole = TRUE;
@@ -397,9 +409,9 @@
 
 /*  if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis
  *  of ellipsoid (=center of mass), Latitude becomes PI/2 */
-        if (RR/gi->Geocent_a < genau) {
+        if (RR/Geocent_a < genau) {
             *Latitude = PI_OVER_2;
-            *Height   = -gi->Geocent_b;
+            *Height   = -Geocent_b;
             return ;
 
         }
@@ -421,8 +433,8 @@
  */
     CT = Z/RR;
     ST = P/RR;
-    RX = 1.0/sqrt(1.0-gi->Geocent_e2*(2.0-gi->Geocent_e2)*ST*ST);
-    CPHI0 = ST*(1.0-gi->Geocent_e2)*RX;
+    RX = 1.0/sqrt(1.0-Geocent_e2*(2.0-Geocent_e2)*ST*ST);
+    CPHI0 = ST*(1.0-Geocent_e2)*RX;
     SPHI0 = CT*RX;
     iter = 0;
 
@@ -431,12 +443,12 @@
     do
     {
         iter++;
-        RN = gi->Geocent_a/sqrt(1.0-gi->Geocent_e2*SPHI0*SPHI0);
+        RN = Geocent_a/sqrt(1.0-Geocent_e2*SPHI0*SPHI0);
 
 /*  ellipsoidal (geodetic) height */
-        *Height = P*CPHI0+Z*SPHI0-RN*(1.0-gi->Geocent_e2*SPHI0*SPHI0);
+        *Height = P*CPHI0+Z*SPHI0-RN*(1.0-Geocent_e2*SPHI0*SPHI0);
 
-        RK = gi->Geocent_e2*RN/(RN+*Height);
+        RK = Geocent_e2*RN/(RN+*Height);
         RX = 1.0/sqrt(1.0-RK*(2.0-RK)*ST*ST);
         CPHI = ST*(1.0-RK)*RX;
         SPHI = CT*RX;

Modified: trunk/toolkits/basemap/src/geocent.h
===================================================================
--- trunk/toolkits/basemap/src/geocent.h        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/geocent.h        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -92,21 +92,9 @@
 extern "C" {
 #endif
 
-typedef struct 
-{
-    double Geocent_a;        /* Semi-major axis of ellipsoid in meters */
-    double Geocent_b;        /* Semi-minor axis of ellipsoid           */
-    double Geocent_a2;       /* Square of semi-major axis */
-    double Geocent_b2;       /* Square of semi-minor axis */
-    double Geocent_e2;       /* Eccentricity squared  */
-    double Geocent_ep2;      /* 2nd eccentricity squared */
-} GeocentricInfo;
 
-void pj_Init_Geocentric( GeocentricInfo *gi );
-long pj_Set_Geocentric_Parameters( GeocentricInfo *gi, 
-                                   double a, 
-                                   double b);
-
+  long pj_Set_Geocentric_Parameters (double a, 
+                                  double b);
 /*
  * The function Set_Geocentric_Parameters receives the ellipsoid parameters
  * as inputs and sets the corresponding state variables.
@@ -116,10 +104,8 @@
  */
 
 
-void pj_Get_Geocentric_Parameters ( GeocentricInfo *gi,
-                                    double *a, 
-                                    double *b);
-
+  void pj_Get_Geocentric_Parameters (double *a, 
+                                  double *b);
 /*
  * The function Get_Geocentric_Parameters returns the ellipsoid parameters
  * to be used in geocentric coordinate conversions.
@@ -129,13 +115,12 @@
  */
 
 
-long pj_Convert_Geodetic_To_Geocentric ( GeocentricInfo *gi,
-                                         double Latitude,
-                                         double Longitude,
-                                         double Height,
-                                         double *X,
-                                         double *Y,
-                                         double *Z);
+  long pj_Convert_Geodetic_To_Geocentric (double Latitude,
+                                       double Longitude,
+                                       double Height,
+                                       double *X,
+                                       double *Y,
+                                       double *Z);
 /*
  * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates
  * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),
@@ -151,13 +136,12 @@
  */
 
 
-void pj_Convert_Geocentric_To_Geodetic (GeocentricInfo *gi,
-                                        double X,
-                                        double Y, 
-                                        double Z,
-                                        double *Latitude,
-                                        double *Longitude,
-                                        double *Height);
+  void pj_Convert_Geocentric_To_Geodetic (double X,
+                                       double Y, 
+                                       double Z,
+                                       double *Latitude,
+                                       double *Longitude,
+                                       double *Height);
 /*
  * The function Convert_Geocentric_To_Geodetic converts geocentric
  * coordinates (X, Y, Z) to geodetic coordinates (latitude, longitude, 

Modified: trunk/toolkits/basemap/src/geod.c
===================================================================
--- trunk/toolkits/basemap/src/geod.c   2007-12-28 19:44:55 UTC (rev 4794)
+++ trunk/toolkits/basemap/src/geod.c   2007-12-28 20:04:31 UTC (rev 4795)
@@ -2,11 +2,11 @@
 static const char SCCSID[]="@(#)geod.c 4.8     95/09/23        GIE     REL";
 #endif
 /* <<<< Geodesic filter program >>>> */
+# include <ctype.h>
+# include <stdio.h>
 # include "projects.h"
 # include "geodesic.h"
 # include "emess.h"
-# include <ctype.h>
-# include <stdio.h>
 # include <string.h>
 
 # define MAXLINE 200

Modified: trunk/toolkits/basemap/src/nad_init.c
===================================================================
--- trunk/toolkits/basemap/src/nad_init.c       2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/nad_init.c       2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: nad_init.c,v 1.10 2007/09/11 20:16:33 fwarmerdam Exp $
+ * $Id: nad_init.c,v 1.8 2003/03/17 18:56:01 warmerda Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Load datum shift files into memory.
@@ -28,12 +28,6 @@
  ******************************************************************************
  *
  * $Log: nad_init.c,v $
- * Revision 1.10  2007/09/11 20:16:33  fwarmerdam
- *  Improve error recovery if ctable datum shift files fails to load.
- *
- * Revision 1.9  2006/11/17 22:16:30  mloskot
- * Uploaded PROJ.4 port for Windows CE.
- *
  * Revision 1.8  2003/03/17 18:56:01  warmerda
  * implement delayed loading of ctable format files
  *
@@ -59,18 +53,9 @@
 #include <projects.h>
 #include <stdio.h>
 #include <errno.h>
+#include <assert.h>
 #include <string.h>
 
-#ifdef _WIN32_WCE
-/* assert.h includes all Windows API headers and causes 'LP' name clash.
- * Here assert we disable assert() for Windows CE.
- * TODO - mloskot: re-implement porting friendly assert
- */
-# define assert(exp)   ((void)0)
-#else
-# include <assert.h>
-#endif /* _WIN32_WCE */
-
 /************************************************************************/
 /*                          nad_ctable_load()                           */
 /*                                                                      */
@@ -90,15 +75,6 @@
     if( ct->cvs == NULL 
         || fread(ct->cvs, sizeof(FLP), a_size, fid) != a_size )
     {
-        pj_dalloc( ct->cvs );
-        ct->cvs = NULL;
-
-        if( getenv("PROJ_DEBUG") != NULL )
-        {
-            fprintf( stderr, 
-            "ctable loading failed on fread() - binary incompatible?\n" );
-        }
-
         pj_errno = -38;
         return 0;
     }

Modified: trunk/toolkits/basemap/src/pj_datum_set.c
===================================================================
--- trunk/toolkits/basemap/src/pj_datum_set.c   2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_datum_set.c   2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_datum_set.c,v 1.4 2007/11/29 21:06:50 fwarmerdam Exp $
+ * $Id: pj_datum_set.c,v 1.2 2001/04/04 21:13:21 warmerda Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Apply datum definition to PJ structure from initialization string.
@@ -28,12 +28,6 @@
  ******************************************************************************
  *
  * $Log: pj_datum_set.c,v $
- * Revision 1.4  2007/11/29 21:06:50  fwarmerdam
- * make sure we only look for 7 parameters
- *
- * Revision 1.3  2007/01/31 06:41:01  fwarmerdam
- * dont parse more datum parameters than we have room for in datum_params[]
- *
  * Revision 1.2  2001/04/04 21:13:21  warmerda
  * do arcsecond/radian and ppm datum parm transformation in pj_set_datum()
  *
@@ -119,7 +113,7 @@
 
         /* parse out the parameters */
         s = towgs84;
-        for( s = towgs84; *s != '\0' && parm_count < 7; ) 
+        for( s = towgs84; *s != '\0'; ) 
         {
             projdef->datum_params[parm_count++] = atof(s);
             while( *s != '\0' && *s != ',' )

Modified: trunk/toolkits/basemap/src/pj_factors.c
===================================================================
--- trunk/toolkits/basemap/src/pj_factors.c     2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_factors.c     2007-12-28 20:04:31 UTC (rev 
4795)
@@ -20,16 +20,15 @@
                return 1;
        } else { /* proceed */
                errno = pj_errno = 0;
-               if (h < EPS)
-                       h = DEFAULT_H;
-               if (fabs(lp.phi) > (HALFPI - h)) 
-                /* adjust to value around pi/2 where derived still exists*/
-                       lp.phi = lp.phi < 0. ? (-HALFPI+h) : (HALFPI-h);
+               if (fabs(t) <= EPS) /* adjust to pi/2 */
+                       lp.phi = lp.phi < 0. ? -HALFPI : HALFPI;
                else if (P->geoc)
                        lp.phi = atan(P->rone_es * tan(lp.phi));
                lp.lam -= P->lam0;      /* compute del lp.lam */
                if (!P->over)
                        lp.lam = adjlon(lp.lam); /* adjust del longitude */
+               if (h <= 0.)
+                       h = DEFAULT_H;
                if (P->spc)     /* get what projection analytic values */
                        P->spc(lp, P, fac);
                if (((fac->code & (IS_ANAL_XL_YL+IS_ANAL_XP_YP)) !=

Modified: trunk/toolkits/basemap/src/pj_gridinfo.c
===================================================================
--- trunk/toolkits/basemap/src/pj_gridinfo.c    2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_gridinfo.c    2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_gridinfo.c,v 1.8 2006/11/17 22:16:30 mloskot Exp $
+ * $Id: pj_gridinfo.c,v 1.7 2005/07/07 00:16:03 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Functions for handling individual PJ_GRIDINFO's.  Includes
@@ -29,9 +29,6 @@
  ******************************************************************************
  *
  * $Log: pj_gridinfo.c,v $
- * Revision 1.8  2006/11/17 22:16:30  mloskot
- * Uploaded PROJ.4 port for Windows CE.
- *
  * Revision 1.7  2005/07/07 00:16:03  fwarmerdam
  * Fixed debug fprintf syntax per:
  * http://bugzilla.remotesensing.org/show_bug.cgi?id=886
@@ -62,17 +59,8 @@
 #include <string.h>
 #include <math.h>
 #include <errno.h>
+#include <assert.h>
 
-#ifdef _WIN32_WCE
-/* assert.h includes all Windows API headers and causes 'LP' name clash.
- * Here assert we disable assert() for Windows CE.
- * TODO - mloskot: re-implement porting friendly assert
- */
-# define assert(exp)   ((void)0)
-#else
-# include <assert.h>
-#endif /* _WIN32_WCE */
-
 /************************************************************************/
 /*                             swap_words()                             */
 /*                                                                      */

Modified: trunk/toolkits/basemap/src/pj_gridlist.c
===================================================================
--- trunk/toolkits/basemap/src/pj_gridlist.c    2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_gridlist.c    2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_gridlist.c,v 1.5 2006/11/17 22:16:30 mloskot Exp $
+ * $Id: pj_gridlist.c,v 1.4 2005/11/01 05:56:13 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Code to manage the list of currently loaded (cached) PJ_GRIDINFOs
@@ -29,9 +29,6 @@
  ******************************************************************************
  *
  * $Log: pj_gridlist.c,v $
- * Revision 1.5  2006/11/17 22:16:30  mloskot
- * Uploaded PROJ.4 port for Windows CE.
- *
  * Revision 1.4  2005/11/01 05:56:13  fwarmerdam
  * improved error handling if gridcount is zero
  *
@@ -51,17 +48,8 @@
 #include <projects.h>
 #include <string.h>
 #include <math.h>
+#include <assert.h>
 
-#ifdef _WIN32_WCE
-/* assert.h includes all Windows API headers and causes 'LP' name clash.
- * Here assert we disable assert() for Windows CE.
- * TODO - mloskot: re-implement porting friendly assert
- */
-# define assert(exp)   ((void)0)
-#else
-# include <assert.h>
-#endif /* _WIN32_WCE */
-
 static PJ_GRIDINFO *grid_list = NULL;
 
 /* used only by pj_load_nadgrids() and pj_deallocate_grids() */

Modified: trunk/toolkits/basemap/src/pj_init.c
===================================================================
--- trunk/toolkits/basemap/src/pj_init.c        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_init.c        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_init.c,v 1.19 2007/11/26 00:21:59 fwarmerdam Exp $
+ * $Id: pj_init.c,v 1.18 2006/10/12 21:04:39 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Initialize projection object from string definition.  Includes
@@ -30,15 +30,6 @@
  ******************************************************************************
  *
  * $Log: pj_init.c,v $
- * Revision 1.19  2007/11/26 00:21:59  fwarmerdam
- * Modified PJ structure to hold a_orig, es_orig, ellipsoid definition before
- * adjustment for spherical projections.
- * Modified pj_datum_transform() to use the original ellipsoid parameters,
- * not the ones adjusted for spherical projections.
- * Modified pj_datum_transform() to not attempt any datum shift via
- * geocentric coordinates if the source *or* destination are raw ellipsoids
- * (ie. PJD_UNKNOWN).  All per PROJ bug #1602, GDAL bug #2025.
- *
  * Revision 1.18  2006/10/12 21:04:39  fwarmerdam
  * Added experimental +lon_wrap argument to set a "center point" for
  * longitude wrapping of longitude values coming out of pj_transform().
@@ -82,7 +73,7 @@
 #include <string.h>
 #include <errno.h>
 
-PJ_CVSID("$Id: pj_init.c,v 1.19 2007/11/26 00:21:59 fwarmerdam Exp $");
+PJ_CVSID("$Id: pj_init.c,v 1.18 2006/10/12 21:04:39 fwarmerdam Exp $");
 
 extern FILE *pj_open_lib(char *, char *);
 
@@ -291,9 +282,6 @@
        /* set ellipsoid/sphere parameters */
        if (pj_ell_set(start, &PIN->a, &PIN->es)) goto bum_call;
 
-        PIN->a_orig = PIN->a;
-        PIN->es_orig = PIN->es;
-
        PIN->e = sqrt(PIN->es);
        PIN->ra = 1. / PIN->a;
        PIN->one_es = 1. - PIN->es;

Modified: trunk/toolkits/basemap/src/pj_latlong.c
===================================================================
--- trunk/toolkits/basemap/src/pj_latlong.c     2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_latlong.c     2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_latlong.c,v 1.3 2007/11/30 20:02:31 fwarmerdam Exp $
+ * $Id: pj_latlong.c,v 1.2 2000/07/07 06:04:23 warmerda Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Stub projection implementation for lat/long coordinates. We 
@@ -30,9 +30,6 @@
  ******************************************************************************
  *
  * $Log: pj_latlong.c,v $
- * Revision 1.3  2007/11/30 20:02:31  fwarmerdam
- * add latlon and lonlat aliases
- *
  * Revision 1.2  2000/07/07 06:04:23  warmerda
  * added longlat alias
  *
@@ -44,10 +41,8 @@
 /* very loosely based upon DMA code by Bradford W. Drew */
 #define PJ_LIB__
 #include       <projects.h>
-PROJ_HEAD(lonlat, "Lat/long (Geodetic)")  "\n\t";
-PROJ_HEAD(latlon, "Lat/long (Geodetic alias)")  "\n\t";
-PROJ_HEAD(latlong, "Lat/long (Geodetic alias)")  "\n\t";
-PROJ_HEAD(longlat, "Lat/long (Geodetic alias)")  "\n\t";
+PROJ_HEAD(latlong, "Lat/long (Geodetic)")  "\n\t";
+PROJ_HEAD(longlat, "Lat/long (Geodetic)")  "\n\t";
 
 FORWARD(forward);
 
@@ -76,17 +71,3 @@
         P->y0 = 0.0;
        P->inv = inverse; P->fwd = forward;
 ENDENTRY(P)
-
-ENTRY0(latlon)
-        P->is_latlong = 1;
-        P->x0 = 0.0;
-        P->y0 = 0.0;
-       P->inv = inverse; P->fwd = forward;
-ENDENTRY(P)
-
-ENTRY0(lonlat)
-        P->is_latlong = 1;
-        P->x0 = 0.0;
-        P->y0 = 0.0;
-       P->inv = inverse; P->fwd = forward;
-ENDENTRY(P)

Modified: trunk/toolkits/basemap/src/pj_list.h
===================================================================
--- trunk/toolkits/basemap/src/pj_list.h        2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_list.h        2007-12-28 20:04:31 UTC (rev 
4795)
@@ -55,10 +55,8 @@
 PROJ_HEAD(lagrng, "Lagrange")
 PROJ_HEAD(larr, "Larrivee")
 PROJ_HEAD(lask, "Laskowski")
-PROJ_HEAD(lonlat, "Lat/long (Geodetic)")
-PROJ_HEAD(latlon, "Lat/long (Geodetic alias)")
-PROJ_HEAD(latlong, "Lat/long (Geodetic alias)")
-PROJ_HEAD(longlat, "Lat/long (Geodetic alias)")
+PROJ_HEAD(latlong, "Lat/long (Geodetic)")
+PROJ_HEAD(longlat, "Lat/long (Geodetic)")
 PROJ_HEAD(lcc, "Lambert Conformal Conic")
 PROJ_HEAD(lcca, "Lambert Conformal Conic Alternative")
 PROJ_HEAD(leac, "Lambert Equal Area Conic")
@@ -73,6 +71,7 @@
 PROJ_HEAD(merc, "Mercator")
 PROJ_HEAD(mil_os, "Miller Oblated Stereographic")
 PROJ_HEAD(mill, "Miller Cylindrical")
+PROJ_HEAD(mpoly, "Modified Polyconic")
 PROJ_HEAD(moll, "Mollweide")
 PROJ_HEAD(murd1, "Murdoch I")
 PROJ_HEAD(murd2, "Murdoch II")

Modified: trunk/toolkits/basemap/src/pj_open_lib.c
===================================================================
--- trunk/toolkits/basemap/src/pj_open_lib.c    2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_open_lib.c    2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_open_lib.c,v 1.9 2007/07/06 14:58:03 fwarmerdam Exp $
+ * $Id: pj_open_lib.c,v 1.6 2004/09/16 15:14:01 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Implementation of pj_open_lib(), and pj_set_finder().  These
@@ -31,15 +31,6 @@
  ******************************************************************************
  *
  * $Log: pj_open_lib.c,v $
- * Revision 1.9  2007/07/06 14:58:03  fwarmerdam
- * improve searchpath clearning with pj_set_searchpath()
- *
- * Revision 1.8  2007/03/11 17:03:18  fwarmerdam
- * support drive letter prefixes on win32 and related fixes (bug 1499)
- *
- * Revision 1.7  2006/11/17 22:16:30  mloskot
- * Uploaded PROJ.4 port for Windows CE.
- *
  * Revision 1.6  2004/09/16 15:14:01  fwarmerdam
  * * src/pj_open_lib.c: added pj_set_searchpath() provided by Eric Miller.
  *
@@ -54,7 +45,7 @@
 #include <string.h>
 #include <errno.h>
 
-PJ_CVSID("$Id: pj_open_lib.c,v 1.9 2007/07/06 14:58:03 fwarmerdam Exp $");
+PJ_CVSID("$Id: pj_open_lib.c,v 1.6 2004/09/16 15:14:01 fwarmerdam Exp $");
 
 static const char *(*pj_finder)(const char *) = NULL;
 static int path_count = 0;
@@ -80,8 +71,7 @@
 /*                         pj_set_searchpath()                          */
 /*                                                                      */
 /*      Path control for callers that can't practically provide         */
-/*      pj_set_finder() style callbacks.  Call with (0,NULL) as args    */
-/*      to clear the searchpath set.                                    */
+/*      pj_set_finder() style callbacks.                                */
 /************************************************************************/
 
 void pj_set_searchpath ( int count, const char **path )
@@ -99,16 +89,13 @@
         search_path = NULL;
     }
 
-    if( count > 0 )
+    search_path = pj_malloc(sizeof *search_path * count);
+    for (i = 0; i < count; i++)
     {
-        search_path = pj_malloc(sizeof *search_path * count);
-        for (i = 0; i < count; i++)
-        {
-            search_path[i] = pj_malloc(strlen(path[i]) + 1);
-            strcpy(search_path[i], path[i]);
-        }
+        search_path[i] = pj_malloc(strlen(path[i]) + 1);
+        strcpy(search_path[i], path[i]);
     }
-        
+
     path_count = count;
 }
 
@@ -123,16 +110,9 @@
     FILE *fid;
     int n = 0;
     int i;
-#ifdef WIN32
-    static const char dir_chars[] = "/\\";
-#else
-    static const char dir_chars[] = "/";
-#endif
 
-#ifndef _WIN32_WCE
-
     /* check if ~/name */
-    if (*name == '~' && strchr(dir_chars,name[1]) )
+    if (*name == '~' && name[1] == DIR_CHAR)
         if (sysname = getenv("HOME")) {
             (void)strcpy(fname, sysname);
             fname[n = strlen(fname)] = DIR_CHAR;
@@ -143,10 +123,8 @@
             return NULL;
 
     /* or fixed path: /name, ./name or ../name */
-    else if (strchr(dir_chars,*name)
-             || (*name == '.' && strchr(dir_chars,name[1])) 
-             || (!strncmp(name, "..", 2) && strchr(dir_chars,name[2]))
-             || (name[1] == ':' && strchr(dir_chars,name[2])) )
+    else if (*name == DIR_CHAR || (*name == '.' && name[1] == DIR_CHAR) ||
+             (!strncmp(name, "..", 2) && name[2] == DIR_CHAR) )
         sysname = name;
 
     /* or try to use application provided file finder */
@@ -185,7 +163,4 @@
                  fid == NULL ? "failed" : "succeeded" );
 
     return(fid);
-#else
-    return NULL;
-#endif /* _WIN32_WCE */
 }

Modified: trunk/toolkits/basemap/src/pj_release.c
===================================================================
--- trunk/toolkits/basemap/src/pj_release.c     2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_release.c     2007-12-28 20:04:31 UTC (rev 
4795)
@@ -2,7 +2,7 @@
 
 #include <projects.h>
 
-char const pj_release[]="Rel. 4.6.0, 21 Dec 2007";
+char const pj_release[]="Rel. 4.5.0, 22 Oct 2006";
 
 const char *pj_get_release()
 

Modified: trunk/toolkits/basemap/src/pj_transform.c
===================================================================
--- trunk/toolkits/basemap/src/pj_transform.c   2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_transform.c   2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_transform.c,v 1.24 2007/12/03 15:48:20 fwarmerdam Exp $
+ * $Id: pj_transform.c,v 1.20 2006/10/12 21:04:39 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Perform overall coordinate system to coordinate system 
@@ -30,24 +30,6 @@
  ******************************************************************************
  *
  * $Log: pj_transform.c,v $
- * Revision 1.24  2007/12/03 15:48:20  fwarmerdam
- * Improve WGS84 ES precision to avoid unnecesary transformation (#1531)
- *
- * Revision 1.23  2007/11/26 00:21:59  fwarmerdam
- * Modified PJ structure to hold a_orig, es_orig, ellipsoid definition before
- * adjustment for spherical projections.
- * Modified pj_datum_transform() to use the original ellipsoid parameters,
- * not the ones adjusted for spherical projections.
- * Modified pj_datum_transform() to not attempt any datum shift via
- * geocentric coordinates if the source *or* destination are raw ellipsoids
- * (ie. PJD_UNKNOWN).  All per PROJ bug #1602, GDAL bug #2025.
- *
- * Revision 1.22  2007/09/11 20:32:25  fwarmerdam
- * mark the transient error array const
- *
- * Revision 1.21  2007/09/11 20:19:36  fwarmerdam
- * avoid use of static variables to make reentrant
- *
  * Revision 1.20  2006/10/12 21:04:39  fwarmerdam
  * Added experimental +lon_wrap argument to set a "center point" for
  * longitude wrapping of longitude values coming out of pj_transform().
@@ -128,14 +110,14 @@
 #include <math.h>
 #include "geocent.h"
 
-PJ_CVSID("$Id: pj_transform.c,v 1.24 2007/12/03 15:48:20 fwarmerdam Exp $");
+PJ_CVSID("$Id: pj_transform.c,v 1.20 2006/10/12 21:04:39 fwarmerdam Exp $");
 
 #ifndef SRS_WGS84_SEMIMAJOR
 #define SRS_WGS84_SEMIMAJOR 6378137.0
 #endif
 
 #ifndef SRS_WGS84_ESQUARED
-#define SRS_WGS84_ESQUARED 0.0066943799901413165
+#define SRS_WGS84_ESQUARED 0.006694379990
 #endif
 
 #define Dx_BF (defn->datum_params[0])
@@ -157,7 +139,7 @@
 ** list or something, but while experimenting with it this should be fine. 
 */
 
-static const int transient_error[45] = {
+static int transient_error[45] = {
     /*             0  1  2  3  4  5  6  7  8  9   */
     /* 0 to 9 */   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     /* 10 to 19 */ 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,  
@@ -209,7 +191,7 @@
             }
         }
 
-        if( pj_geocentric_to_geodetic( srcdefn->a_orig, srcdefn->es_orig,
+        if( pj_geocentric_to_geodetic( srcdefn->a, srcdefn->es,
                                        point_count, point_offset, 
                                        x, y, z ) != 0) 
             return pj_errno;
@@ -306,7 +288,7 @@
             return PJD_ERR_GEOCENTRIC;
         }
 
-        pj_geodetic_to_geocentric( dstdefn->a_orig, dstdefn->es_orig,
+        pj_geodetic_to_geocentric( dstdefn->a, dstdefn->es,
                                    point_count, point_offset, x, y, z );
 
         if( dstdefn->fr_meter != 1.0 )
@@ -390,7 +372,6 @@
 {
     double b;
     int    i;
-    GeocentricInfo gi;
 
     pj_errno = 0;
 
@@ -399,7 +380,7 @@
     else
         b = a * sqrt(1-es);
 
-    if( pj_Set_Geocentric_Parameters( &gi, a, b ) != 0 )
+    if( pj_Set_Geocentric_Parameters( a, b ) != 0 )
     {
         pj_errno = PJD_ERR_GEOCENTRIC;
         return pj_errno;
@@ -412,7 +393,7 @@
         if( x[io] == HUGE_VAL  )
             continue;
 
-        if( pj_Convert_Geodetic_To_Geocentric( &gi, y[io], x[io], z[io], 
+        if( pj_Convert_Geodetic_To_Geocentric( y[io], x[io], z[io], 
                                                x+io, y+io, z+io ) != 0 )
         {
             pj_errno = -14;
@@ -435,14 +416,13 @@
 {
     double b;
     int    i;
-    GeocentricInfo gi;
 
     if( es == 0.0 )
         b = a;
     else
         b = a * sqrt(1-es);
 
-    if( pj_Set_Geocentric_Parameters( &gi, a, b ) != 0 )
+    if( pj_Set_Geocentric_Parameters( a, b ) != 0 )
     {
         pj_errno = PJD_ERR_GEOCENTRIC;
         return pj_errno;
@@ -455,8 +435,8 @@
         if( x[io] == HUGE_VAL )
             continue;
 
-        pj_Convert_Geocentric_To_Geodetic( &gi, x[io], y[io], z[io], 
-                                           y+io, x+io, z+io );
+        pj_Convert_Geocentric_To_Geodetic( x[io], y[io], z[io], 
+                                        y+io, x+io, z+io );
     }
 
     return 0;
@@ -476,8 +456,8 @@
     {
         return 0;
     }
-    else if( srcdefn->a_orig != dstdefn->a_orig 
-             || ABS(srcdefn->es_orig - dstdefn->es_orig) > 0.000000000050 )
+    else if( srcdefn->a != dstdefn->a 
+             || ABS(srcdefn->es - dstdefn->es) > 0.000000000050 )
     {
         /* the tolerence for es is to ensure that GRS80 and WGS84 are
            considered identical */
@@ -610,10 +590,6 @@
 
 /************************************************************************/
 /*                         pj_datum_transform()                         */
-/*                                                                      */
-/*      The input should be long/lat/z coordinates in radians in the    */
-/*      source datum, and the output should be long/lat/z               */
-/*      coordinates in radians in the destination datum.                */
 /************************************************************************/
 
 int pj_datum_transform( PJ *srcdefn, PJ *dstdefn, 
@@ -627,26 +603,16 @@
     pj_errno = 0;
 
 /* -------------------------------------------------------------------- */
-/*      We cannot do any meaningful datum transformation if either      */
-/*      the source or destination are of an unknown datum type          */
-/*      (ie. only a +ellps declaration, no +datum).  This is new        */
-/*      behavior for PROJ 4.6.0.                                        */
-/* -------------------------------------------------------------------- */
-    if( srcdefn->datum_type == PJD_UNKNOWN
-        || dstdefn->datum_type == PJD_UNKNOWN )
-        return 0;
-
-/* -------------------------------------------------------------------- */
 /*      Short cut if the datums are identical.                          */
 /* -------------------------------------------------------------------- */
     if( pj_compare_datums( srcdefn, dstdefn ) )
         return 0;
 
-    src_a = srcdefn->a_orig;
-    src_es = srcdefn->es_orig;
+    src_a = srcdefn->a;
+    src_es = srcdefn->es;
 
-    dst_a = dstdefn->a_orig;
-    dst_es = dstdefn->es_orig;
+    dst_a = dstdefn->a;
+    dst_es = dstdefn->es;
 
 /* -------------------------------------------------------------------- */
 /*      Create a temporary Z array if one is not provided.              */

Modified: trunk/toolkits/basemap/src/pj_utils.c
===================================================================
--- trunk/toolkits/basemap/src/pj_utils.c       2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/pj_utils.c       2007-12-28 20:04:31 UTC (rev 
4795)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_utils.c,v 1.5 2007/03/12 14:05:35 fwarmerdam Exp $
+ * $Id: pj_utils.c,v 1.4 2005/07/06 14:04:09 fwarmerdam Exp $
  *
  * Project:  PROJ.4
  * Purpose:  Some utility functions we don't want to bother putting in
@@ -29,9 +29,6 @@
  ******************************************************************************
  *
  * $Log: pj_utils.c,v $
- * Revision 1.5  2007/03/12 14:05:35  fwarmerdam
- * Removed duplicate towgs84 definition code.
- *
  * Revision 1.4  2005/07/06 14:04:09  fwarmerdam
  * Improved precision of es encoding for pj_latlong_from_proj() per:
  *   http://bugzilla.remotesensing.org/show_bug.cgi?id=881
@@ -138,6 +135,10 @@
             sprintf( defn+strlen(defn), " +towgs84=%s", 
                      pj_param(pj_in->params,"stowgs84").s );
 
+        if( pj_param(pj_in->params, "ttowgs84").i )
+            sprintf( defn+strlen(defn), " +towgs84=%s", 
+                     pj_param(pj_in->params,"stowgs84").s );
+
         if( pj_param(pj_in->params, "tnadgrids").i )
             sprintf( defn+strlen(defn), " +nadgrids=%s", 
                      pj_param(pj_in->params,"snadgrids").s );

Modified: trunk/toolkits/basemap/src/proj_api.h
===================================================================
--- trunk/toolkits/basemap/src/proj_api.h       2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/proj_api.h       2007-12-28 20:04:31 UTC (rev 
4795)
@@ -28,12 +28,6 @@
  ******************************************************************************
  *
  * $Log: proj_api.h,v $
- * Revision 1.16  2007/11/29 21:07:49  fwarmerdam
- * prepare for 4.6.0 release
- *
- * Revision 1.15  2007/08/20 13:40:06  fwarmerdam
- * avoid warnings in c++ for some prototypes
- *
  * Revision 1.14  2006/04/20 04:19:59  fwarmerdam
  * updated version
  *
@@ -92,7 +86,7 @@
 #endif
 
 /* Try to update this every version! */
-#define PJ_VERSION 460
+#define PJ_VERSION 450
 
 extern char const pj_release[]; /* global release id string */
 
@@ -132,7 +126,7 @@
 int pj_apply_gridshift( const char *, int, 
                         long point_count, int point_offset,
                         double *x, double *y, double *z );
-void pj_deallocate_grids(void);
+void pj_deallocate_grids();
 int pj_is_latlong(projPJ);
 int pj_is_geocent(projPJ);
 void pj_pr_list(projPJ);
@@ -146,8 +140,8 @@
 void *pj_malloc(size_t);
 void pj_dalloc(void *);
 char *pj_strerrno(int);
-int *pj_get_errno_ref(void);
-const char *pj_get_release(void);
+int *pj_get_errno_ref();
+const char *pj_get_release();
 
 #ifdef __cplusplus
 }

Modified: trunk/toolkits/basemap/src/projects.h
===================================================================
--- trunk/toolkits/basemap/src/projects.h       2007-12-28 19:44:55 UTC (rev 
4794)
+++ trunk/toolkits/basemap/src/projects.h       2007-12-28 20:04:31 UTC (rev 
4795)
@@ -28,21 +28,6 @@
  ******************************************************************************
  *
  * $Log: projects.h,v $
- * Revision 1.27  2007/11/26 00:21:59  fwarmerdam
- * Modified PJ structure to hold a_orig, es_orig, ellipsoid definition before
- * adjustment for spherical projections.
- * Modified pj_datum_transform() to use the original ellipsoid parameters,
- * not the ones adjusted for spherical projections.
- * Modified pj_datum_transform() to not attempt any datum shift via
- * geocentric coordinates if the source *or* destination are raw ellipsoids
- * (ie. PJD_UNKNOWN).  All per PROJ bug #1602, GDAL bug #2025.
- *
- * Revision 1.26  2007/03/11 17:03:18  fwarmerdam
- * support drive letter prefixes on win32 and related fixes (bug 1499)
- *
- * Revision 1.25  2006/11/17 22:16:30  mloskot
- * Uploaded PROJ.4 port for Windows CE.
- *
  * Revision 1.24  2006/10/18 04:34:03  fwarmerdam
  * added mlist functions from libproj4
  *
@@ -164,15 +149,6 @@
 extern double hypot(double, double);
 #endif
 
-#ifdef _WIN32_WCE
-#  include <wce_stdlib.h>
-#  include <wce_stdio.h>
-#  define rewind wceex_rewind
-#  define getenv wceex_getenv
-#  define strdup _strdup
-#  define hypot _hypot
-#endif
-
        /* some useful constants */
 #define HALFPI         1.5707963267948966
 #define FORTPI         0.78539816339744833
@@ -188,17 +164,8 @@
 #define ID_TAG_MAX 50
 #endif
 
-/* Use WIN32 as a standard windows 32 bit declaration */
-#if defined(_WIN32) && !defined(WIN32) && !defined(_WIN32_WCE)
-#  define WIN32
-#endif
-
-#if defined(_WINDOWS) && !defined(WIN32) && !defined(_WIN32_WCE)
-#  define WIN32
-#endif
-
 /* directory delimiter for DOS support */
-#ifdef WIN32
+#ifdef DOS
 #define DIR_CHAR '\\'
 #else
 #define DIR_CHAR '/'
@@ -298,10 +265,8 @@
         int is_geocent; /* proj=geocent ... not really a projection at all */
        double
                a,  /* major axis or radius if es==0 */
-                a_orig, /* major axis before any +proj related adjustment */
-               es, /* e ^ 2 */
-                es_orig, /* es before any +proj related adjustment */
                e,  /* eccentricity */
+               es, /* e ^ 2 */
                ra, /* 1/A */
                one_es, /* 1 - e^2 */
                rone_es, /* 1/one_es */
@@ -309,7 +274,7 @@
                x0, y0, /* easting and northing */
                k0,     /* general scaling factor */
                to_meter, fr_meter; /* cartesian scaling */
-    
+
         int     datum_type; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */
         double  datum_params[7];
         double  from_greenwich; /* prime meridian offset (in radians) */

Modified: trunk/toolkits/basemap/src/rtodms.c
===================================================================
--- trunk/toolkits/basemap/src/rtodms.c 2007-12-28 19:44:55 UTC (rev 4794)
+++ trunk/toolkits/basemap/src/rtodms.c 2007-12-28 20:04:31 UTC (rev 4795)
@@ -53,9 +53,7 @@
        sec = fmod(r / RES, 60.);
        r = floor(r / RES60);
        min = fmod(r, 60.);
-        r = floor(r / 60.);
-        deg = r;
-
+       deg = r / 60.;
        if (dolong)
                (void)sprintf(ss,format,deg,min,sec,sign);
        else if (sec) {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to