Bruno Friedmann
e3158c0fc7
This should be hopefully all; takes care of the poppler fallout and json-c fallout. Wait for the build to complete, to be sure OBS-URL: https://build.opensuse.org/request/show/563811 OBS-URL: https://build.opensuse.org/package/show/Application:Geo/gdal?expand=0&rev=54
85 lines
3.6 KiB
Diff
85 lines
3.6 KiB
Diff
Index: gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
|
|
===================================================================
|
|
--- a/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp (revision 41042)
|
|
+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp (revision 41043)
|
|
@@ -28,4 +28,6 @@
|
|
****************************************************************************/
|
|
|
|
+#define JSON_C_VER_013 (13 << 8)
|
|
+
|
|
#include "ogrgeojsonwriter.h"
|
|
#include "ogrgeojsonutils.h"
|
|
@@ -33,5 +35,9 @@
|
|
#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>
|
|
@@ -1382,11 +1388,15 @@
|
|
// 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)));
|
|
@@ -1418,9 +1428,9 @@
|
|
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) )
|
|
- {
|
|
- if( jso->o.c_double > 0 )
|
|
+ else if( CPLIsInf(json_object_get_double(jso)) )
|
|
+ {
|
|
+ if( json_object_get_double(jso) > 0 )
|
|
nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "Infinity");
|
|
else
|
|
@@ -1430,5 +1440,9 @@
|
|
{
|
|
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;
|
|
@@ -1436,5 +1450,5 @@
|
|
"%%.%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)) &&
|
|
@@ -1458,5 +1472,5 @@
|
|
"%%.%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 &&
|
|
@@ -1473,5 +1487,5 @@
|
|
"%%.%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 )
|