aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-10-09Remove PJ_DATUMS which was introduced to proj.h by mistakeKristian Evers
2017-10-09Add proj_list_* functions that exposes various internal lists (#579)Kristian Evers
Fixes #173, #187 and #220
2017-10-08Resolve #594 and OSS-Fuzz-3569 (#595)Thomas Knudsen
* Resolve #594 and OSS-Fuzz-3569 * Restructure PJ_geos opaque object: sweep_axis showed unneeded, and freeing it was wrong. Eliminate instead Resolves #594 Resolves OSS-Fuzz Issue 3569 Credit to OSS-Fuzz
2017-10-07Merge pull request #592 from busstoptaktik/obs_api-improvementsThomas Knudsen
Cleaned up the use of PJ_IO_UNITS_CLASSIC, so it means only one thing: That output is linear and measured in units of the semimajor axis. This made it possible to remove a number of checks that had now become superfluous Corrected pj_roundtrip, so it takes PJ_COORD args, rather than PJ_OBS, and made it measure geodesic distances, rather than cartesian, where it makes sense
2017-10-06Switch proj_roundtrip to accept PJ_COORD, rather than PJ_OBS, and make it do ↵Thomas Knudsen
proper geodesic distances for forward roundtrips
2017-10-06Remove superfluous checks for PJ.left being PJ_IO_UNITS_CLASSICThomas Knudsen
2017-10-06Change PJ.left default from PJ_CLASSIC to PJ_RADIANSThomas Knudsen
2017-10-06Resolve OSS-Fuzz issue 1836: Division by zero in gn_sinu setupThomas Knudsen
2017-10-06Merge pull request #583 from busstoptaktik/destructorThomas Knudsen
Introduce a default destructor for PJ objects
2017-10-06Enable ob_tran for ellipsoidal projection definitions. While formally wrong, ↵Thomas Knudsen
it gives consistent results, and is more safe than the original hack of setting es=0
2017-10-06Enable address sanitizer in linux/clang buildThomas Knudsen
Elim some leaks by initializing PJ.destructor in PJ_ob_tran.c properly Avoid tests bombing when built with address sanitizer: Repair memory leak in test228.c Avoid tests bombing when built with address sanitizer: Repair memory leak in multistresstest.c
2017-10-06Enable default destructor for all PJ objects.Thomas Knudsen
In most cases memory deallocation is completely removed from the code since it can be handled by the default destructor. In a few special cases a local destructor overrides the default destructor and makes sure that locally allocated memored is cleaned up correctly. Move all deallocation from pj_free to pj_default_destructor Rename pj_latlong.c to fit with the conventional format PJ_latlong.c - freeup was missed here due to wrong naming Clean up pj_init to avoid double deallocation; Also resolve #576 by adding z_0 and t_0 options in pj_init, while cleaning Add a prototype for dealloc_params Added missing errno.h include in pj_ctx.c Temporarily removing ob_tran from testvarious, to be sure that is where the trouble is Make PJ_ob_tran.c use proper initialization for the chained projection proj=ob_tran: make it clear, that we disallow ellipsoidal projections, and, for improved backwards compatibility, turns off default settings, which could inject unwanted ellipsoid definitions ... then also remove the ellipsoid definition from the testvarious test case - which is probably buggy anyway Work around cs2cs spherical init bug in testvarious; Forbid defs for ob_tran in pj_init
2017-09-28Introducing the cct 'Coordinate Conversion and Transformation' program (#574)Thomas Knudsen
* Introducing the cct 'Coordinate Conversion and Transformation' program * cct: Add some rudimentary documentation * Removed documentation again, moving to a separate doc PR * Minor corrections in response to a review by @kbevers
2017-09-28Add PJD_ERR_* aliases for error numbers without oneKristian Evers
2017-09-28Support a default destructor for PJ objectsThomas Knudsen
2017-09-27decimalyear_to_mjd(): avoid almost infinite loop in case of crazy input. ↵Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3449. Credit to OSS Fuzz
2017-09-22Add 'expected accuracy' member to PJ_PROJ_INFO struct.Kristian Evers
2017-09-21Changed a few occurences of 'const PJ*' to just 'PJ*' since they were making ↵Kristian Evers
promises that couldn't be kept
2017-09-21Use FACTORS and DERIVS structs from projects.h instead of duplicating them ↵Kristian Evers
in proj.h
2017-09-13Make proj_destroy and proj_context_destroy behave in the same way.Kristian Evers
2017-09-13Introduce PJ_DEFAULT_CTX constant that improves code readabilityKristian Evers
2017-09-13make PJ* P argument of proj_lp_dist constKristian Evers
2017-09-13Add typedef for transformation direction enumKristian Evers
2017-09-13Change how existance of strings in info-structs are checked. Before this ↵Kristian Evers
commit they always evaluated as true. Fixes #568.
2017-09-12Merge pull request #564 from kbevers/proj-respect-input-output-unitsKristian Evers
proj: Do rad->deg conversion if output units warrants it
2017-09-12Merge pull request #567 from kbevers/issue-566Even Rouault
Fix for #566.
2017-09-09Tested for wrong indices before array lookup. Fixes #566.Kristian Evers
2017-09-07PJ_ob_tran: fix potential memory leak. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3321. Credit to OSS Fuzz
2017-09-06Add PJ_FACTORS bit flags to proj.hKristian Evers
2017-09-05proj: Do rad->deg conversion if output units warrants it.Kristian Evers
With the introduction of transformation pipelines it is possible to create a pipeline that has degrees as it's output unit. If that is the case the output coordinate will be in radians internally. This commit makes sure that a conversion to degrees is applied before printing to stdout.
2017-09-05PJ_unitconvert: fix memory leak. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3288. Credit to OSS Fuzz
2017-09-05Reformat proj.c before making functional changes.Kristian Evers
Mixed usage of tabs and spaces replaced with spaces. Code slightly reformatted to present a consistent style from top to bottom.
2017-09-04PJ_hgridshift.c: fix memleak in initialization if grid loading fail. Same ↵Even Rouault
fix as commit e1ad1046873056ab3bfc3262bd343e8c874f395c. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3276. Credit to OSS Fuzz
2017-09-03PJ_goode: fix memory leak. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3274. Credit to OSS Fuzz
2017-08-30Merge pull request #562 from cffk/geod-1.49Charles Karney
Release candidate for geodesic library version 1.49.
2017-08-30Back out of previous change. Coverage stats are still wrong. geodtestCharles Karney
should have included geodesic.c and not geod.c and yet I'm not allowed to use geodesic.c except through the library and then the coverage of geodesic.c seems to be wildly wrong.
2017-08-30Rejig how geodtest is specified in automake to make coverage stats accurate??Charles Karney
2017-08-30Add geodtest to autoconf's 'make check' suite.Charles Karney
It's already including in cmake's test suite.
2017-08-30urm5: fix memory leaks in error code paths of initialization. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3235. Credit to OSS Fuzz
2017-08-29Release candidate for geodesic library version 1.49.Charles Karney
Only substantial changes are (1) testing the HAVE_C99_MATH flag and acting accordingly and (2) adding a couple of tests.
2017-08-29PJ_horner.c: fix memory leaks. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3204. Credit to OSS Fuzz
2017-08-21Added myself and Kristian Evers to AUTHORS file; Removed attribution … (#558)Thomas Knudsen
* Added myself and Kristian Evers to AUTHORS file; Removed attribution for my 1999 contribution from proj.c * Add missing lf before eof
2017-08-20Merge pull request #553 from edechaux/masterEven Rouault
Fix the Solaris 11.3 compilation error
2017-08-20PJ_aea.c: fix memory leak in error code path. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2723. Credit to OSS Fuzz
2017-08-07Adding info functions to proj.h API. (#551)Kristian Evers
* Adding info functions to proj.h API. Four new functions are added with this commit: proj_info(), proj_pj_info(), proj_grid_info() and proj_init_info(). Additionally four new data types are added: PJ_INFO, PJ_PROJ_INFO, PJ_GRID_INFO and PJ_INIT_INFO. The functions return the corresponding data types. These functions allows users of the PROJ.4 library to get information about various PROJ.4 entities and the library itself. The new data types are structs that contain specific information about either the library instance, a PJ instance, a grid or an init file. Together the four new functions cover a big part of the functionality in the semi-public projects.h API and should hopefully make it easier for user to migrate their code to the proj.h API in the future. Besides covering already existing functionality in the old API, this commit introduces the ability to add metadata to init-files. This is primarily added to give users a way of knowing which version of the EPSG database they are using, but it also comes in handy for other init-files. The init-file metadata is added directly to the init-file as a special "projection" called "metadata". The info projection of the epsg init-file is thus described as: <metadata> +version=9.0.0 +origin=EPSG +lastupdate=2017-01-10 The proj_init_info() function uses the internal pj_param() to read the metadata. As a consequence, "metadata" will not be available as a the name of a projection in the future. This is a reasonable price to pay considering the ease of the implementation of adding metadata to init-files this way, and of course that "metadata" is a very unlikely name for a projection in any case. A metadata tag has been added to all init-files in the nad-directory. For most only a subset of the possible parameters has been added. * Replaced calls to sprintf and strncpy with safer options. Added pj_strlcpy for internal use. * Fail gracefully when getting non-initialized PJ in proj_pj_info() * Change length of filename member in PJ_INIT_INFO and PJ_GRID_INFO to 260 (MAX_PATH)
2017-08-04Fix the Solaris 11.3 compilation erroredechaux
When _XOPEN_SOURCE 500 is defined on Solaris 11 the following error message is displayed : "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications" As pthread_mutexattr_settype is available without _XOPEN_SOURCE defined, the easier way to fix the error is to disable it.
2017-07-25Expose pj_factors and pj_deriv in public API. (#546)Kristian Evers
Expose pj_factors and pj_deriv in public API. proj_derivatives() and proj_factors() has been introduced to the public proj.h API. The new functions are simply wrappers for the original functions. The h argument of the two functions has been omitted in the new wrappers as it does not seem to be used very much (if at all?).
2017-07-18Merge pull request #548 from kbevers/remove-error-macrosKristian Evers
Eliminated *_ERROR* macros.
2017-07-18Expanded *_ERROR* macros.Kristian Evers
Expanded *_ERROR* macros with calls to proj_errno_set() and proper returns when necessary. Defined a bunch of new PJD_ERR_ constants in projects.h that corresponds to the error numbers in pj_strerrno.c. A few unknown error numbers were replaced by existing ones in pj_strerrno.c.
2017-07-14Make sure to use custom hypot() when building as ANSI C (not defined before ↵Kristian Evers
C99).