diff options
-rw-r--r-- | sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch | 84 | ||||
-rw-r--r-- | sci-libs/gdal/gdal-2.2.3.ebuild | 1 |
2 files changed, 85 insertions, 0 deletions
diff --git a/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch b/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch new file mode 100644 index 000000000000..bbee77b51c78 --- /dev/null +++ b/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch @@ -0,0 +1,84 @@ +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 ) diff --git a/sci-libs/gdal/gdal-2.2.3.ebuild b/sci-libs/gdal/gdal-2.2.3.ebuild index 0ee117313485..d9baddecf2b7 100644 --- a/sci-libs/gdal/gdal-2.2.3.ebuild +++ b/sci-libs/gdal/gdal-2.2.3.ebuild @@ -71,6 +71,7 @@ REQUIRED_USE="mdb? ( java ) PATCHES=( "${FILESDIR}/${PN}-2.2.3-soname.patch" + "${FILESDIR}/${PN}-2.2.3-json-c-0.13.patch" # bug 641658 ) src_prepare() { |