diff options
author | Christian Hesse | 2018-02-15 17:17:27 +0100 |
---|---|---|
committer | Christian Hesse | 2018-02-15 17:17:27 +0100 |
commit | 0ba7488abd6bb0e856061f6c40cc86cc4b9e58be (patch) | |
tree | 93eea4a92f288af50726a9f539b8d2f5db5b76fc /0007-gdal-json-c-0-13.patch | |
parent | 65f356459a8d69132fa87e57837d3687d1b9fbbf (diff) | |
download | aur-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.patch | 111 |
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 ) + { |