# Shapelib Release Notes

To get notification of new releases of Shapelib subscribe to the project mailing list at https://lists.osgeo.org/pipermail/shapelib/.

Release 1.5.0:

- Add FTDate entry in DBFFieldType (see GDAL Pull request 308)
- Remove PROJ.4 dependency and functionality, causing removal of SHPProject(), SHPSetProjection() and SHPFreeProjection() from contrib/shpgeo.h, and removal of the contrib shpproj utility.
- shpopen.c: avoid being dependent on correctness of file size field in .shp. Fixes https://lists.osgeo.org/pipermail/gdal-dev/2018-October/049218.html

Release 1.4.1:

- Fix a regression regarding re-writing the last shape of a file (GDAL #7031)

Release 1.4.0:

- Old Makefile build replaced by autoconf/automake (by Sandro Mani)
- CMake build system added (by Alan W. Irwin)
- Added read support for ESRI .sbn spatial index
- Resynchronization with GDAL's Shapefile driver. Mostly cleanups. SHPObject and DBFInfo structures extended with new members
- Add DBFSetLastModifiedDate() to modify the update date in the .dbf
- Add SHPSetFastModeReadObject() to read faster (but shapes got that way share state in the handle, so only one shape at a time can be used)
- Add SHPRestoreSHX() to recreate a missing .shx from the .shp and SHPOpenLLEx().
- Write DBF end-of-file character 0x1A by default. This behaviour can be controlled with the DBFSetWriteEndOfFileChar() function.

Release 1.3.0:

- Major rework to us application provided hooks for file io, and error reporting (SAHooks).
- Added contrib/Shape_PointInPoly.cpp from Marko Podgorsek.
- Added shapelib tools documentation from Eduardo Patto Kanegae.
- Added dbf deletion support.
- Added DBFAddNativeFieldType().
- Added DBFDeleteField(), DBFReorderFields() and DBFAlterFields() to rework DBF schema.
- likely a variety of other changes - it has been eight years since 1.2.10!

Release 1.2.10: Added SHPRewindObject() function, and shprewind utility program. Added FTLogical, DBFReadLogicalAttribute() and DBFWriteLogicalAttribute() (thanks to Olek Neyman).

Release 1.2.9: Good support for reading and writing NULL fields in .dbf files, good support for NULL shapes and addition of the DBFGetFieldIndex() functions (all contributed by Jim Matthews).

An upgraded shputils.c has been contributed by Bill Miller. Daniel Morissette contributed DBFGetNativeFieldType(). Better error checking for disk errors in dbfopen.c. Various other bug fixes and safety improvements.

Release 1.2.8: Added hacked libtool support (supplied by Jan) and "rpm ready" install logic.

Release 1.2.7: Fix record size (was 4 bytes too long). Modify SHPReadObject() to handle null shapes properly. Use atof() instead of sscanf(). Support .DBF as well as .dbf.

Release 1.2.6: Now available under old MIT style license, or at the users option, LGPL. Added the contrib directory of stuff from Carl Anderson and the shptree.c API for quadtree based spatial searches.

Release 1.2.5: SHPOpen() now forcably uses "rb" or "r+b" access string to avoid common mistakes on Windows. Also fixed a serious bug with .dbf files with a 'F' field type.

Release 1.2.4: DBFOpen() will now automatically translate a .shp extension to .dbf for convenience. SHPOpen() will try datasets with lower and uppercase extension. DBFAddField() now returns the field number, not TRUE/FALSE.

Release 1.2.3: Disable writing measures to multi-patches as ArcView seems to puke on them (as reported by Monika Sester). Add white space trimming, and string/numeric attribute interchangability in DBF API as suggested by Steve Lime. Dbfdump was updated to include several reporting options.

Release 1.2.2: Added proper support for multipatch (reading and writing) - this release just for testing purposes.

Release 1.2 is mostly a rewrite of the .shp/.shx access API to account for ArcView 3.x 3D shapes, and to encapsulate the shapes in a structure. Existing code using the shapefile library will require substantial changes to use release 1.2.

Release V1.1 has been built on a number of platforms, and used by a number of people successfully. V1.1 is the first release with the xBase API documentation.