2008/3/4, Frank Warmerdam <[EMAIL PROTECTED]>:
>
> The "no system list" message just means that PROJ was built without support
> for strerror() - that is HAVE_STRERROR was not defined in the configure.
> This seems to happen almost all the time (perhaps a problem in the proj
> configure).
>
> char *
> pj_strerrno(int err)
> {
> static char note[50];
>
> if (err > 0)
> #ifdef HAVE_STRERROR
> return strerror(err);
> #else
> {
> sprintf(note,"no system list, errno: %d\n", err);
> return note;
> }
> #endif
> else if (err < 0) {
> int adjusted_err = - err - 1;
> if (adjusted_err < (sizeof(pj_err_list) / sizeof(char *)))
> return(pj_err_list[adjusted_err]);
> else
> {
> sprintf( note, "invalid projection system error (%d)",
> err );
> return note;
> }
> } else
> return NULL;
> }
>
Frank,
I understand your point about HAVE_STRERROR, but it seems to be quite
unrelated. Is pj_errno = 22 definitely a proper value? I think the err
> 0 is an abnormal case since the proj library normally generates
negative error codes.
I think someday we should also audit proj to be more thread safe as
using thread locals instead of global variables or doing internal
locks instead of a global lock in the external libraries.
Proj is used so frequently that it would be quite inefficient to
increase number the locks around it in mapserver.
Best regards,
Tamas
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users