1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
<html>
<head>
<title>Shapelib Release Notes</title>
<link href="maptools.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Shapelib Release Notes</h1>
To get notification of new releases of Shapelib <i>subscribe</i> to
the project mailing list at https://lists.osgeo.org/pipermail/shapelib/.<p>
<b>Release 1.6.2</b>:
<ul>
<li>Nullify userdata also in SASetupUtf8Hooks</li>
<li>Test suite enhancements</li>
<li>CMake: no longer use CTest and add manual BUILD_TESTING option instead (default to OFF)</li>
<li>Prefer tagged version of Google Benchmark</li>
<li>dbfcreate: allow creation of Date and Logical fields #167 (#168)</li>
<li>Fix cppcheck nullPointerOutOfMemory warnings</li>
<li>DBFWriteAttribute(): return true when no precision loss occured when writing a double</li>
<li>SHPCreateLL()/DBFCreate(): make error message contains full filename (in case it is very long)</li>
</ul>
<b>Release 1.6.1</b>:
<ul>
<li>DBFIsValueNULL(): accept empty string as NULL Date (https://github.com/OSGeo/gdal/issues/10405)</li>
<li>DBFIsValueNULL(): Accept string containing of width times "0" as NULL Date</li>
<li>Only test for _WIN32 for Windows detection</li>
<li>Windows: Fix UTF8 hook functions</li>
<li>Various compiler warning fixes</li>
<li>contrib/csv2shp.c: fix resource leaks (#86)</li>
<li>Detect byte order at compile time</li>
<li>shapefil.h: various const-correctness improvements</li>
<li>shapefil.h: Remove SHPTreeRemoveShapeId not being implemented</li>
<li>shapefil.h: Fix API call of SHPSearchDiskTreeEx</li>
<li>Add API functions for read/write of date attributes: DBFReadDateAttribute/DBFWriteDateAttribute</li>
<li>DBFWriteAttribute/DBFWriteLogicalAttribute: no longer silently accpets invalid input, but returns false</li>
<li>DBFCloneEmpty: consider the SAHooks</li>
<li>Move endian defines to shapefil_private.h (#99)</li>
<li>Fix test execution by complete refactoring.</li>
<li>Add C++ unit testing (#113)</li>
<li>SBNOpenDiskTree(): make it work with node descriptors with non-increasing nBinStart
Fixes https://github.com/OSGeo/shapelib/issues/106 / https://github.com/OSGeo/gdal/issues/9430
</li>
<li>sbnsearch.c: avoid potential integer overflows on corrupted files</li>
<li>dbfdump: dump date and logical fields</li>
<li>dbfinfo: print date and logical fields</li>
<li>dbfcat: various fixes</li>
<li>Fix -Werror=calloc-transposed-args with gcc 14</li>
<li>SHPOpenLL(): avoid GDAL specific error message when .shx is missing (#129)</li>
<li>CMake: generate pkg-config file (#135)</li>
<li>CMake: Fix install interface include dir (#134)</li>
<li>CMake: Make building executables optional with CMake (set BUILD_APPS to OFF) (#78)</li>
<li>CMake: Remove duplicated shapefil.h installation in include_dir/shapelib (#80)</li>
<li>CMake: Remove INSTALL_NAME_DIR from target (#49)</li>
<li>CMake: Fix contrib.cmake</li>
<li>CMake: (>= 3.21) Fix ctest paths for shared libs (MSVC and CygWin)</li>
<li>CMake: Add GoogleTestAdapter (GTA) Run Settings</li>
</ul>
<b>Release 1.6.0</b>:
<ul>
<li>shapefil.h: add SHAPELIB_VERSION_MAJOR/MINOR/MICRO, SHAPELIB_VERSION_NUMBER, and SHAPELIB_AT_LEAST macros</li>
<li>Compiler warning fixes and various code cleanups</li>
<li>SAHooks: add a void *pvUserData member. ABI change</li>
<li>SAHooks.FOpen and FClose callbacks: add a void *pvUserData parameter. API and ABI change</li>
<li>SAHooks.FWrite: make first parameter a const void*. API change</li>
<li>Distribute LICENSE-LGPL and LICENSE-MIT files instead of COPYING file. Do not distribute INSTALL file</li>
<li>Use standard integer data types</li>
<li>Changes to allow building with cmake -DCMAKE_UNITY_BUILD=ON</li>
<li>Polygon writing: avoid considering rings slightly overlapping as inner-outer rings of others (refs OSGeo/gdal#5315)</li>
<li>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.</li>
<li>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 https://github.com/qgis/QGIS/issues/44202</li>
<li>SHPWriteObject(): prevent potential overflows on 64-bit platforms on huge geometries</li>
<li>SHPRestoreSHX: update SHX content length even if error occurred</li>
<li>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)</li>
<li>Fix adding features in a .dbf without columns (fixes qgis/qgis#51247)</li>
<li>Have matching SOVERSION for CMake and autotools</li>
<li>Code reformatting</li>
<li>Enable contrib/csv2shp build with MSVC</li>
<li>Build contributed utilities via CMake</li>
<li>Use the the standard BUILD_TESTING CMake variable</li>
<li>Remove double free() in contrib/shpsrt (CVE-2022-0699)</li>
<li>SHPRestoreSHX: fix for (64 bit) big endian</li>
<li>Add config-style support for find_package(shapefile)</li>
<li>Prevent no-op FSeeks writing dbf & shp records for network filesystem performance</li>
</ul>
<b>Release 1.5.0</b>:
<ul>
<li> Add FTDate entry in DBFFieldType
(see <a href="https://github.com/OSGeo/gdal/pull/308">GDAL Pull request 308</a>)
<li> Remove PROJ.4 dependency and functionality, causing removal of
SHPProject(), SHPSetProjection() and SHPFreeProjection() from contrib/shpgeo.h,
and removal of the contrib shpproj utility.
<li> shpopen.c: avoid being dependent on correctness of file size field in .shp. Fixes
<a href="https://lists.osgeo.org/pipermail/gdal-dev/2018-October/049218.html">https://lists.osgeo.org/pipermail/gdal-dev/2018-October/049218.html</a>
</ul>
<b>Release 1.4.1</b>:
<ul>
<li> Fix a regression regarding re-writing the last shape
of a file (<a href="https://trac.osgeo.org/gdal/ticket/7031">GDAL #7031</a>)
</ul>
<b>Release 1.4.0</b>:
<ul>
<li> Old Makefile build replaced by autoconf/automake (by Sandro Mani)
<li> CMake build system added (by Alan W. Irwin)
<li> Added read support for ESRI .sbn spatial index
<li> Resynchronization with GDAL's Shapefile driver. Mostly cleanups.
SHPObject and DBFInfo structures extended with new members
<li> Add DBFSetLastModifiedDate() to modify the update date in the .dbf
<li> 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)
<li> Add SHPRestoreSHX() to recreate a missing .shx from the .shp and
SHPOpenLLEx().
<li> Write DBF end-of-file character 0x1A by default.
This behaviour can be controlled with the DBFSetWriteEndOfFileChar()
function.
</ul>
<b>Release 1.3.0</b>:
<ul>
<li> Major rework to us application provided hooks for file io, and error reporting (SAHooks).
<li> Added contrib/Shape_PointInPoly.cpp from Marko Podgorsek.
<li> Added shapelib tools documentation from Eduardo Patto Kanegae.
<li> Added dbf deletion support.
<li> Added DBFAddNativeFieldType().
<li> Added DBFDeleteField(), DBFReorderFields() and DBFAlterFields() to
rework DBF schema.
<li> likely a variety of other changes - it has been eight years since 1.2.10!
</ul>
<b>Release 1.2.10</b>: Added SHPRewindObject() function, and shprewind utility
program. Added FTLogical, DBFReadLogicalAttribute() and
DBFWriteLogicalAttribute() (thanks to Olek Neyman). <p>
<b>Release 1.2.9</b>: 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).<p>
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.
<p>
<b>Release 1.2.8</b>: Added hacked libtool support (supplied by Jan)
and "rpm ready" install logic.<p>
<b>Release 1.2.7</b>: 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.<p>
<b>Release 1.2.6</b>: 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.<p>
<b>Release 1.2.5</b>: SHPOpen() now forcibly 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.<p>
<b>Release 1.2.4</b>: 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.<p>
<b>Release 1.2.3</b>: 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.<p>
<b>Release 1.2.2</b>: Added proper support for multipatch (reading and
writing) - this release just for testing purposes.<p>
<b>Release 1.2</b> 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.<p>
<b>Release V1.1</b> 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.<p>
</body>
</html>
|