summarylogtreecommitdiffstats
path: root/0007-gdal-json-c-0-13.patch
diff options
context:
space:
mode:
authorChristian Hesse2018-02-15 17:17:27 +0100
committerChristian Hesse2018-02-15 17:17:27 +0100
commit0ba7488abd6bb0e856061f6c40cc86cc4b9e58be (patch)
tree93eea4a92f288af50726a9f539b8d2f5db5b76fc /0007-gdal-json-c-0-13.patch
parent65f356459a8d69132fa87e57837d3687d1b9fbbf (diff)
downloadaur-0ba7488abd6bb0e856061f6c40cc86cc4b9e58be.tar.gz
commit mysql-workbench-git 6.3.10.r0.g6a5e94ef-1
Diffstat (limited to '0007-gdal-json-c-0-13.patch')
-rw-r--r--0007-gdal-json-c-0-13.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/0007-gdal-json-c-0-13.patch b/0007-gdal-json-c-0-13.patch
new file mode 100644
index 000000000000..6101b8c0fe5e
--- /dev/null
+++ b/0007-gdal-json-c-0-13.patch
@@ -0,0 +1,111 @@
+From 05a1fd773c8f418ee9765465fc4863c1d6472a4c Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@mines-paris.org>
+Date: Fri, 5 Jan 2018 18:08:49 +0000
+Subject: [PATCH] =?UTF-8?q?Add=20support=20for=20json-c=20v0.13=20(patch?=
+ =?UTF-8?q?=20by=20Bj=C3=B6rn=20Esser,=20fixes=20=E2=80=8Bhttps://github.c?=
+ =?UTF-8?q?om/OSGeo/gdal/pull/277,=20backport=20of=20r41043,=20fixes=20#71?=
+ =?UTF-8?q?95)?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+git-svn-id: https://svn.osgeo.org/gdal/branches/2.2@41200 f0d54148-0727-0410-94bb-9a71ac55c965
+---
+ gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp | 30 +++++++++++++++++------
+ 1 file changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp b/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
+index fdf4b77b459..f8937885c76 100644
+--- a/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
++++ b/gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
+@@ -27,12 +27,18 @@
+ * DEALINGS IN THE SOFTWARE.
+ ****************************************************************************/
+
++#define JSON_C_VER_013 (13 << 8)
++
+ #include "ogrgeojsonwriter.h"
+ #include "ogrgeojsonutils.h"
+ #include "ogr_geojson.h"
+ #include "ogrgeojsonreader.h"
+ #include <json.h> // JSON-C
++
++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
+ #include <json_object_private.h>
++#endif
++
+ #include <printbuf.h>
+ #include <ogr_api.h>
+ #include <ogr_p.h>
+@@ -1381,13 +1387,17 @@ static int OGR_json_double_with_precision_to_string( struct json_object *jso,
+ {
+ // TODO(schwehr): Explain this casting.
+ const int nPrecision =
++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
+ static_cast<int>(reinterpret_cast<GUIntptr_t>(jso->_userdata));
++#else
++ static_cast<int>(reinterpret_cast<GUIntptr_t>(json_object_get_userdata(jso)));
++#endif
+ char szBuffer[75] = {};
+- OGRFormatDouble( szBuffer, sizeof(szBuffer), jso->o.c_double, '.',
++ OGRFormatDouble( szBuffer, sizeof(szBuffer), json_object_get_double(jso), '.',
+ (nPrecision < 0) ? 15 : nPrecision );
+ if( szBuffer[0] == 't' /*oobig */ )
+ {
+- CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", jso->o.c_double);
++ CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", json_object_get_double(jso));
+ }
+ return printbuf_memappend(pb, szBuffer, static_cast<int>(strlen(szBuffer)));
+ }
+@@ -1417,11 +1427,11 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso,
+ {
+ char szBuffer[75] = {};
+ int nSize = 0;
+- if( CPLIsNan(jso->o.c_double))
++ if( CPLIsNan(json_object_get_double(jso)))
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "NaN");
+- else if( CPLIsInf(jso->o.c_double) )
++ else if( CPLIsInf(json_object_get_double(jso)) )
+ {
+- if( jso->o.c_double > 0 )
++ if( json_object_get_double(jso) > 0 )
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "Infinity");
+ else
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "-Infinity");
+@@ -1429,13 +1439,17 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso,
+ else
+ {
+ char szFormatting[32] = {};
++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
+ const int nSignificantFigures = (int) (GUIntptr_t) jso->_userdata;
++#else
++ const int nSignificantFigures = (int) (GUIntptr_t) json_object_get_userdata(jso);
++#endif
+ const int nInitialSignificantFigures =
+ nSignificantFigures >= 0 ? nSignificantFigures : 17;
+ CPLsnprintf(szFormatting, sizeof(szFormatting),
+ "%%.%dg", nInitialSignificantFigures);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ const char* pszDot = NULL;
+ if( nSize+2 < static_cast<int>(sizeof(szBuffer)) &&
+ (pszDot = strchr(szBuffer, '.')) == NULL )
+@@ -1457,7 +1471,7 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso,
+ CPLsnprintf(szFormatting, sizeof(szFormatting),
+ "%%.%dg", nInitialSignificantFigures- i);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ pszDot = strchr(szBuffer, '.');
+ if( pszDot != NULL &&
+ strstr(pszDot, "999999") == NULL &&
+@@ -1472,7 +1486,7 @@ OGR_json_double_with_significant_figures_to_string( struct json_object *jso,
+ CPLsnprintf(szFormatting, sizeof(szFormatting),
+ "%%.%dg", nInitialSignificantFigures);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ if( nSize+2 < static_cast<int>(sizeof(szBuffer)) &&
+ strchr(szBuffer, '.') == NULL )
+ {