[OSRS-PROJ] Weirdnesses in the source code
Gerald I. Evenden
gerald.evenden at verizon.net
Mon Jul 14 10:30:16 PDT 2003
The items of this previous bug list have been corrected in release
030714 at site:
http://members.bellatlantic.net/~vze2hc4d/proj4/
Again, thanks for the reports. Keep the cards and letters coming.
On Tue, 2003-07-08 at 13:15, Gerald I. Evenden wrote:
> Thank-you for all the bug reports. Imbedded are some comments prior
> to looking in to them in detail:
>
> On Tue, 2003-07-08 at 11:23, proj at ton.iguana.be wrote:
> > Hi,
> >
> > I'm busy transforming some of the proj code to perl, and ran into a
> > number of strange things.
>
> On the HEAD stuff, the second quote set is informational and does
> not affect execution, but they will be fixed.
>
> > PJ_aeqd.c
> > in PROJ_HEAD, lat_0 should be lat_0=
> >
> > PJ_aitoff.c
> > in PROJ_HEAD, lat_1 should be lat_1=
>
> Interesting. Will look into it.
>
> > In PJ_imw_p.c, the function loc_for
> > has a parameter double *yc that never gets actually set
> > (the else branch in the code has it's own local yc)
> > It is however used in e_inverse, so that basically picks up random
> > garbage from memory (whatever the local yc there gets as value)
>
> Ah yes, I was buzz-sawing my way through this one and got a little
> sloppy when it finally ran. Will fix. Does not affect functionality.
>
> > PJ_lcca.c use errors 50 and 51, which don't exist. They are positive,
> > so maybe they are meant to pick up plain errno values, but in that case
> > i don't know which ones you mean and it's not portable
>
> ibid
>
> > PJ_ocea.c, PROJ_HEAD basically declares Sphlonc (forgotten newline)
>
> The following is apparently old code and does not match libproj4.
> No longer supported.
>
> > PJ_cea.c
> >
> > if (pj_param(P->params, "tlat_ts").i &&
> > (P->k0 = cos(t = pj_param(P->params, "rlat_ts").f)) < 0.) E_ERROR(-24)
> > else
> > t = 0.;
> >
> > P->k0 doesn't get set if pj_param(P->params, "tlat_ts").i isn't done.
> > It's however used.
> > For t=0 the corresponding k0 is 1, which is the default (except when
> > it gets explicitely set), so maybe it's what you want. But it at least
> > deserves a comment in that case I'd say
> >
> > PS, k0 seems nowhere explained in the docs. Shouldn't it be ?
>
> Yes, yes, foolish code. Dumb, dumb! A thousand lashes.
>
> > PJ_stere.c:
> >
> > P->phits = pj_param(P->params, "tlat_ts").i ?
> > P->phits = pj_param(P->params, "rlat_ts").f : HALFPI;
> >
> > Not exactly a bug, but the double assign to P->hits is weird. Probably
> > meant to be:
> > P->phits = pj_param(P->params, "tlat_ts").i ?
> > pj_param(P->params, "rlat_ts").f : HALFPI;
>
> Some people are *very* picky. ;-) Will fix.
>
> > PJ_vandg2.c:
> > projection vandg2 itself only supports spherical, but forgets to set
> > P->es to 0 (Yeah, i know it's not used in s_forward itself)
>
> Sorry, I was working on this many years ago. Got up to the point of
> putting the base material in but later got side tracked. I will remove
> it. Interesting generalization of the polyconic but quite complicated.
>
> > PJ_mpoly.c:
> > always returns (0,0), so it doesn't do anything.
> > It's still linked into the final proj though.
>
> pj_enfn no longer exists. pj_authset no longer exists. Check
> liproj4 distribution.
>
> > pj_enfn and pj_authset are handled inconsistently. Sometimes the
> > returncode gets checked, other times it's just assumed it will work.
> > ---------------------------------------
>
> Again, many thanks for the bug reports. I really do appreciate them.
--
Gerald I. Evenden <gerald.evenden at verizon.net>
----------------------------------------
PROJ.4 Discussion List
See http://www.remotesensing.org/proj for subscription, unsubscription
and other information.
More information about the Proj
mailing list