Shapelib 1.6.0
Changes since v1.5.0:
- shapefil.h: add SHAPELIB_VERSION_MAJOR/MINOR/MICRO, SHAPELIB_VERSION_NUMBER, and SHAPELIB_AT_LEAST macros
- Compiler warning fixes and various code cleanups
- SAHooks: add a void *pvUserData member. ABI change
- SAHooks.FOpen and FClose callbacks: add a void *pvUserData parameter. API and ABI change
- SAHooks.FWrite: make first parameter a const void*. API change
- Distribute LICENSE-LGPL and LICENSE-MIT files instead of COPYING file. Do not distribute INSTALL file
- Use standard integer data types
- Changes to allow building with cmake -DCMAKE_UNITY_BUILD=ON
- Polygon writing: avoid considering rings slightly overlapping as inner-outer rings of others (refs OSGeo/gdal#5315)
- Polygon writing: consider rings at non-constant Z as outer rings (fixes OSGeo/gdal#5315) As noted in code comments, this is an approximation of more complicated tests we'd likely have to do, that would take into account real co-planar testing, to allow detecting inner rings of outer rings in an oblique plane.
- shpopen.c: Communicate why the file size cannot be reached when appending features (OSGeo/gdal#4140) Clearly state why the file size cannot be reached. This is important in order to correctly inform the user and prevent him/her from looking for other reasons. Related to qgis/QGIS#44202
- SHPWriteObject(): prevent potential overflows on 64-bit platforms on huge geometries
- SHPRestoreSHX: update SHX content length even if error occurred
- In creation, uses w+b file opening mode instead of wb followed by r+b, to support network file systems having sequential write only and when using CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE=YES (fixes OSGeo/gdal#7801)
- Fix adding features in a .dbf without columns (fixes qgis/QGIS#51247)
- Have matching SOVERSION for CMake and autotools
- Code reformatting
- Enable contrib/csv2shp build with MSVC
- Build contributed utilities via CMake
- Use the the standard BUILD_TESTING CMake variable
- Remove double free() in contrib/shpsrt (CVE-2022-0699)
- SHPRestoreSHX: fix for (64 bit) big endian
- Add config-style support for find_package(shapefile)
- Prevent no-op FSeeks writing dbf & shp records for network filesystem performance