summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kohnert2019-09-01 18:15:04 +0200
committerJan Kohnert2019-09-01 18:15:04 +0200
commit94313e45f674272a9a20804e4a5b2057f86bdf78 (patch)
tree58359ebaeffa4a8a5e162c84f902ba984cbb6fe8
parent96b7ad0f94eaa1bfdd7b5c4508b57ac6ba2a74a1 (diff)
downloadaur-94313e45f674272a9a20804e4a5b2057f86bdf78.tar.gz
version bump: 0.9.9
-rw-r--r--.SRCINFO16
-rw-r--r--PKGBUILD27
-rw-r--r--gdl-python3.patch182
-rw-r--r--gdl-tirpc.patch83
-rw-r--r--gdl-updates.patch198
5 files changed, 15 insertions, 491 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2d12ec6b6f51..28e25dff59c9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
pkgbase = gnudatalanguage
pkgdesc = An IDL (Interactive Data Language) compatible incremental compiler (ie. runs IDL programs)
- pkgver = 0.9.8
- pkgrel = 9
- url = http://gnudatalanguage.sourceforge.net/
+ pkgver = 0.9.9
+ pkgrel = 1
+ url = https://github.com/gnudatalanguage/gdl
arch = i686
arch = x86_64
license = GPL
@@ -24,14 +24,10 @@ pkgbase = gnudatalanguage
depends = eigen3
depends = libtirpc
depends = libmagick6
- options = !makeflags
- source = http://downloads.sourceforge.net/gnudatalanguage/gdl-0.9.8.tgz
- source = gdl-tirpc.patch
- source = gdl-updates.patch
+ depends = libgeotiff
+ source = https://github.com/gnudatalanguage/gdl/archive/v0.9.9.tar.gz
source = gdl.profile
- sha256sums = 86d3aacd1de3994755dc917c732ee3360e4e7e4f16156f1eea47de048d138281
- sha256sums = 905d6b2d464e136a2c7d5fccbede8839ad7c277c417e9dd6cd8d82795fd7e686
- sha256sums = 56774a6bb7ee6e84412f17b5479a31036ac73991d438864aef9f1543d9ed420e
+ sha256sums = ad5de3fec095a5c58b46338dcc7367d2565c093794ab1bbcf180bba1a712cf14
sha256sums = 8df4d0676ffcece07a6884c2836523cdda0bd7668b9491a96ef816bb993e6a2b
pkgname = gnudatalanguage
diff --git a/PKGBUILD b/PKGBUILD
index ed1ce5bc57af..496c3f6a3c8a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,11 +4,11 @@
# Contributor: Orlando Garcia Feal <rodland at gmail dot com>
pkgname=gnudatalanguage
-pkgver=0.9.8
-pkgrel=9
+pkgver=0.9.9
+pkgrel=1
pkgdesc="An IDL (Interactive Data Language) compatible incremental compiler (ie. runs IDL programs)"
arch=('i686' 'x86_64')
-url="http://gnudatalanguage.sourceforge.net/"
+url="https://github.com/gnudatalanguage/gdl"
license=('GPL')
depends=('python2'
'python2-numpy'
@@ -26,26 +26,17 @@ depends=('python2'
'udunits'
'eigen3'
'libtirpc'
- 'libmagick6')
+ 'libmagick6'
+ 'libgeotiff')
makedepends=('cmake')
-options=('!makeflags')
-source=("http://downloads.sourceforge.net/gnudatalanguage/gdl-${pkgver}.tgz"
- 'gdl-tirpc.patch'
- 'gdl-updates.patch'
-# 'gdl-python3.patch'
+#options=('!makeflags')
+source=("https://github.com/gnudatalanguage/gdl/archive/v${pkgver}.tar.gz"
'gdl.profile')
-sha256sums=('86d3aacd1de3994755dc917c732ee3360e4e7e4f16156f1eea47de048d138281'
- '905d6b2d464e136a2c7d5fccbede8839ad7c277c417e9dd6cd8d82795fd7e686'
- '56774a6bb7ee6e84412f17b5479a31036ac73991d438864aef9f1543d9ed420e'
-# 'eacacc47fae91e418115bb0845ab585d819151d63bd7f99b43374e72a9cefd0c'
+sha256sums=('ad5de3fec095a5c58b46338dcc7367d2565c093794ab1bbcf180bba1a712cf14'
'8df4d0676ffcece07a6884c2836523cdda0bd7668b9491a96ef816bb993e6a2b')
prepare() {
cd ${srcdir}/gdl-${pkgver}
-
- patch -p1 < ../gdl-tirpc.patch
- patch -p1 < ../gdl-updates.patch
-# patch -Np1 -i "${srcdir}/gdl-python3.patch"
}
build() {
@@ -55,7 +46,7 @@ build() {
fi
mkdir build
cd build
- cmake -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON=YES -DPYTHONVERSION=2.7 \
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON=YES -DPYTHONVERSION=2 \
-DPYTHON_EXECUTABLE=/usr/bin/python2.7 -DGRAPHICSMAGICK=OFF -DMAGICK=ON \
-DFFTW=ON -DHDF=ON -DHDFDIR=/opt/hdf4 -DHDF5=ON -DGRIB=ON -DUDUNITS=ON ..
diff --git a/gdl-python3.patch b/gdl-python3.patch
deleted file mode 100644
index 8327f6bee2f4..000000000000
--- a/gdl-python3.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-diff --git a/src/datatypes.cpp b/src/datatypes.cpp
-index 1a8d126..e8b08a1 100644
---- a/src/datatypes.cpp
-+++ b/src/datatypes.cpp
-@@ -18,6 +18,7 @@
- #include "includefirst.hpp"
-
- #if defined(USE_PYTHON) || defined(PYTHON_MODULE)
-+#include <patchlevel.h>
- #include <numpy/arrayobject.h>
- #endif
-
-diff --git a/src/gdlpython.cpp b/src/gdlpython.cpp
-index 7835ec9..dd17598 100644
---- a/src/gdlpython.cpp
-+++ b/src/gdlpython.cpp
-@@ -32,18 +32,32 @@
-
- using namespace std;
-
-+#if PY_MAJOR_VERSION >= 3
-+int PythonInit()
-+{
-+ if( Py_IsInitialized()) return NULL;
-+#else
- void PythonInit()
- {
- if( Py_IsInitialized()) return;
-+#endif
- Py_Initialize(); // signal handlers?
-
- static int argc = 1;
-+#if PY_MAJOR_VERSION >= 3
-+ static wchar_t* arg0 = Py_DecodeLocale("./py/python.exe",NULL);
-+ static wchar_t* argv[] = {arg0};
-+#else
- static char* arg0 = (char*)"./py/python.exe";
- static char* argv[] = {arg0};
-+#endif
- PySys_SetArgv(argc, argv);
-
- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html#miscellaneous
- import_array();
-+#if PY_MAJOR_VERSION >= 3
-+ return NULL;
-+#endif
- }
-
- void PythonEnd()
-@@ -71,6 +85,12 @@ BaseGDL* FromPython( PyObject* pyObj)
- {
- if( !PyArray_Check( pyObj))
- {
-+#if PY_MAJOR_VERSION >= 3
-+ if( PyUnicode_Check( pyObj))
-+ {
-+ return new DStringGDL( PyUnicode_AsUTF8( pyObj));
-+ }
-+#else
- if( PyString_Check( pyObj))
- {
- return new DStringGDL( PyString_AsString( pyObj));
-@@ -79,6 +99,7 @@ BaseGDL* FromPython( PyObject* pyObj)
- {
- return new DLongGDL( PyInt_AsLong( pyObj));
- }
-+#endif
- if( PyLong_Check( pyObj))
- {
- return new DLongGDL( PyLong_AsLong( pyObj));
-@@ -174,11 +195,19 @@ namespace lib {
- e->Throw( "ARGV keyword must be of type STRING.");
-
- int argc = argvS->N_Elements();
-+#if PY_MAJOR_VERSION >= 3
-+ wchar_t** argv = new wchar_t*[ argc];
-+#else
- char** argv = new char*[ argc];
-+#endif
-
-- // pyhton copies the value -> threats it as const
-+ // python copies the value -> treats it as const
- for( int i=0; i<argc; ++i)
-+#if PY_MAJOR_VERSION >= 3
-+ argv[i] = Py_DecodeLocale(const_cast<char*>((*argvS)[ i].c_str()), NULL);
-+#else
- argv[i] = const_cast<char*>((*argvS)[ i].c_str());
-+#endif
-
- PySys_SetArgv(argc, argv);
- delete[] argv;
-diff --git a/src/gdlpython.hpp b/src/gdlpython.hpp
-index 45ef436..cb53bd7 100644
---- a/src/gdlpython.hpp
-+++ b/src/gdlpython.hpp
-@@ -18,7 +18,11 @@
- #ifndef GDLPYTHON_HPP_
- #define GDLPYTHON_HPP_
-
-+#if PY_MAJOR_VERSION >= 3
-+int PythonInit();
-+#else
- void PythonInit();
-+#endif
- void PythonEnd();
- BaseGDL* FromPython( PyObject* pyObj);
-
-diff --git a/src/pythongdl.cpp b/src/pythongdl.cpp
-index a3b5afd..e541ba5 100644
---- a/src/pythongdl.cpp
-+++ b/src/pythongdl.cpp
-@@ -191,14 +191,22 @@ bool CopyArgFromPython( vector<BaseGDL*>& parRef,
- for( SizeT k=0; k<nKW; ++k)
- {
- PyDict_Next( kwDict, &dictPos, &key, &value);
-+#if PY_MAJOR_VERSION >= 3
-+ int keyIsString = PyUnicode_Check( key);
-+#else
- int keyIsString = PyString_Check( key);
-+#endif
- if( !keyIsString)
- {
- PyErr_SetString( gdlError,
- "Keywords must be of type string");
- return false;
- }
-+#if PY_MAJOR_VERSION >= 3
-+ const char* keyChar = PyUnicode_AsUTF8( key);
-+#else
- const char* keyChar = PyString_AsString( key);
-+#endif
- string keyString = StrUpCase( keyChar);
- int kwIx = e.GetPro()->FindKey( keyString);
- if( kwIx == -1)
-@@ -523,6 +531,35 @@ extern "C" {
- {NULL, NULL, 0, NULL} // Sentinel
- };
-
-+#if PY_MAJOR_VERSION >= 3
-+ struct module_state {
-+ PyObject *error;
-+ };
-+
-+ #define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
-+
-+ static int GDL_traverse(PyObject *m, visitproc visit, void *arg) {
-+ Py_VISIT(GETSTATE(m)->error);
-+ return 0;
-+ }
-+
-+ static int GDL_clear(PyObject *m) {
-+ Py_CLEAR(GETSTATE(m)->error);
-+ return 0;
-+ }
-+
-+ static struct PyModuleDef moduledef = {
-+ PyModuleDef_HEAD_INIT,
-+ "GDL",
-+ NULL,
-+ sizeof(struct module_state),
-+ GDLMethods,
-+ NULL,
-+ GDL_traverse,
-+ GDL_clear,
-+ NULL
-+ };
-+#endif
-
- // python GDL module init function
- PyMODINIT_FUNC initGDL()
-@@ -552,7 +589,11 @@ extern "C" {
- }
- SysVar::SetGDLPath( gdlPath);
-
-+#if PY_MAJOR_VERSION >= 3
-+ PyObject* m = PyModule_Create(&moduledef);
-+#else
- PyObject* m = Py_InitModule("GDL", GDLMethods);
-+#endif
-
- gdlError = PyErr_NewException((char*)"GDL.error", NULL, NULL);
- Py_INCREF(gdlError);
diff --git a/gdl-tirpc.patch b/gdl-tirpc.patch
deleted file mode 100644
index fbe0bcbfb7d5..000000000000
--- a/gdl-tirpc.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff -urN gdl-0.9.8_old/CMakeLists.txt gdl-0.9.8/CMakeLists.txt
---- gdl-0.9.8_old/CMakeLists.txt 2018-08-05 20:47:42.332868644 +0200
-+++ gdl-0.9.8/CMakeLists.txt 2018-08-05 20:52:35.440704154 +0200
-@@ -356,28 +356,42 @@
- "(suitable Fedora package: gsl-devel)")
- endif(GSL_FOUND)
-
--if(WIN32 AND NOT CYGWIN)
--set(CMAKE_PREFIX_PATH ${XDRDIR})
--find_package(Xdr)
--set(HAVE_LIBXDR ${XDR_FOUND})
--if(XDR_FOUND)
-- set(LIBRARIES ${LIBRARIES} ${XDR_LIBRARIES})
-- include_directories(${XDR_INCLUDE_DIR})
--else(XDR_FOUND)
-- message(FATAL_ERROR "bsd-xdr library is required but was not found.\n"
-- "Use -DXDRDIR=DIR to specify the bsd-xdr directory tree.")
--endif(XDR_FOUND)
-+if(UNIX)
-+ set(CMAKE_PREFIX_PATH ${RPCDIR})
-+ find_package(RPC QUIET)
-+ set(HAVE_RPC ${RPC_FOUND})
-+ if(RPC_FOUND)
-+ set(LIBRARIES ${LIBRARIES} ${RPC_LIBRARIES})
-+ include_directories(${RPC_INCLUDE_DIR})
-+ else(RPC_FOUND)
-+ message(FATAL_ERROR "RPC support is mandatory.\n"
-+ "Note that SunRPC has been removed in glibc-2.26 and later, "
-+ "while being optional in earlier versions. Consider using the "
-+ "recommended and more modern libtirpc instead.\n"
-+ "Use -DRPCDIR=DIR to specify the rpc directory tree.\n")
-+ endif(RPC_FOUND)
-+elseif(WIN32 AND NOT CYGWIN)
-+ set(CMAKE_PREFIX_PATH ${XDRDIR})
-+ find_package(Xdr)
-+ set(HAVE_LIBXDR ${XDR_FOUND})
-+ if(XDR_FOUND)
-+ set(LIBRARIES ${LIBRARIES} ${XDR_LIBRARIES})
-+ include_directories(${XDR_INCLUDE_DIR})
-+ else(XDR_FOUND)
-+ message(FATAL_ERROR "bsd-xdr library is required but was not found.\n"
-+ "Use -DXDRDIR=DIR to specify the bsd-xdr directory tree.")
-+ endif(XDR_FOUND)
-
--set(CMAKE_PREFIX_PATH ${PCREDIR})
--find_package(PCRE)
--set(HAVE_LIBPCRE ${PCRE_FOUND})
--if(PCRE_FOUND)
-- set(LIBRARIES ${LIBRARIES} ${PCRE_LIBRARIES})
-- include_directories(${PCRE_INCLUDE_DIR})
--else(PCRE_FOUND)
-- message(FATAL_ERROR "pcre library is required but was not found.\n"
-- "Use -DPCREDIR=DIR to specify the pcre directory tree.")
--endif(PCRE_FOUND)
-+ set(CMAKE_PREFIX_PATH ${PCREDIR})
-+ find_package(PCRE)
-+ set(HAVE_LIBPCRE ${PCRE_FOUND})
-+ if(PCRE_FOUND)
-+ set(LIBRARIES ${LIBRARIES} ${PCRE_LIBRARIES})
-+ include_directories(${PCRE_INCLUDE_DIR})
-+ else(PCRE_FOUND)
-+ message(FATAL_ERROR "pcre library is required but was not found.\n"
-+ "Use -DPCREDIR=DIR to specify the pcre directory tree.")
-+ endif(PCRE_FOUND)
- LINK_LIBRARIES(shlwapi gnurx)
- endif(WIN32 AND NOT CYGWIN)
-
-diff -urN gdl-0.9.8_old/CMakeModules/FindRPC.cmake gdl-0.9.8/CMakeModules/FindRPC.cmake
---- gdl-0.9.8_old/CMakeModules/FindRPC.cmake 1970-01-01 01:00:00.000000000 +0100
-+++ gdl-0.9.8/CMakeModules/FindRPC.cmake 2018-08-05 20:54:31.086701032 +0200
-@@ -0,0 +1,12 @@
-+
-+include(FindPackageHandleStandardArgs)
-+find_path(RPC_INCLUDE_DIR NAMES "rpc/rpc.h" PATH_SUFFIXES "tirpc")
-+ if(RPC_INCLUDE_DIR MATCHES "/tirpc/?$")
-+ find_library(RPC_LIBRARY NAMES tirpc)
-+ set(RPC_LIBRARIES ${RPC_LIBRARY})
-+ find_package_handle_standard_args(RPC DEFAULT_MSG RPC_INCLUDE_DIR RPC_LIBRARY RPC_LIBRARIES)
-+else()
-+ find_package_handle_standard_args(RPC DEFAULT_MSG RPC_INCLUDE_DIR)
-+endif()
-+ mark_as_advanced(RPC_INCLUDE_DIR RPC_LIBRARY RPC_LIBRARIES)
-+
diff --git a/gdl-updates.patch b/gdl-updates.patch
deleted file mode 100644
index de0d081fa47f..000000000000
--- a/gdl-updates.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/CMakeModules/FindGrib.cmake gdl-0.9.8/CMakeModules/FindGrib.cmake
---- gdl-0.9.8_old/CMakeModules/FindGrib.cmake 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/CMakeModules/FindGrib.cmake 2019-01-25 00:23:20.555415966 +0100
-@@ -9,7 +9,7 @@
- #
-
-
--find_library(GRIB_LIBRARIES NAMES grib_api)
-+find_library(GRIB_LIBRARIES NAMES eccodes grib_api)
- find_path(GRIB_INCLUDE_DIR NAMES grib_api.h)
- include(FindPackageHandleStandardArgs)
- # since there's no grib_api.pc let's check if this installation of grib required jasper and jpeg
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/basic_fun.cpp gdl-0.9.8/src/basic_fun.cpp
---- gdl-0.9.8_old/src/basic_fun.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/basic_fun.cpp 2019-01-16 00:26:01.294919440 +0100
-@@ -4419,6 +4419,7 @@
- }
- }
- }
-+ return NULL; //pacifies dumm compilers.
- }
- // uses MergeSort
- // 2 parts in the code: without "width" or with "width" (limited to 1D and 2D)
-@@ -6110,8 +6111,8 @@
- }
-
- BaseGDL* ishft_fun(EnvT* e) {
-- Guard<BaseGDL>ga;
-- Guard<BaseGDL>gb;
-+ Guard<BaseGDL>ga = NULL;
-+ Guard<BaseGDL>gb = NULL;
-
- DType typ = (e->GetParDefined(0))->Type();
- //types are norally correct, so do not loose time looking for wrong types
-@@ -6514,7 +6515,7 @@
- }
-
- BaseGDL* obj_isa(EnvT* e) {
-- DString className;
-+ DString className = NULL;
- e->AssureScalarPar<DStringGDL>(1, className);
- className = StrUpCase(className);
-
-@@ -8327,6 +8328,7 @@
- }
- }
- e->Throw("Expecting string or byte array as a first parameter");
-+ return NULL; //pacify dumb compilers
- }
-
- BaseGDL* get_drive_list(EnvT* e)
-@@ -8363,8 +8365,8 @@
-
- if (debug) cout << "actIx : " << actIx << endl;
-
-- string tmp, filename;
-- int lineNumber;
-+ string tmp = NULL, filename = NULL;
-+ int lineNumber = 0;
-
- if (!structureKW) {
-
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/basic_pro_jmg.cpp gdl-0.9.8/src/basic_pro_jmg.cpp
---- gdl-0.9.8_old/src/basic_pro_jmg.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/basic_pro_jmg.cpp 2019-01-13 23:08:52.613701009 +0100
-@@ -294,7 +294,7 @@
-
- BaseGDL* call_external( EnvT* e)
- {
-- DString image, entry;
-+ DString image = NULL, entry = NULL;
- static std::string s;
- SizeT myAlign = defaultAlign;
- DType myReturnType = GDL_UNDEF;
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/graphicsdevice.hpp gdl-0.9.8/src/graphicsdevice.hpp
---- gdl-0.9.8_old/src/graphicsdevice.hpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/graphicsdevice.hpp 2019-01-10 08:51:11.647970146 +0100
-@@ -220,8 +220,8 @@
- virtual void MaxXYSize(DLong *xsize, DLong *ysize) {
- *xsize=1200, *ysize=800; return;}
- virtual DLong GetDecomposed() { return -1;}
-- virtual BaseGDL* GetFontnames() { ThrowGDLException("DEVICE: Keyword GET_FONTNAMES not allowed for call to: DEVICE" );}//{return NULL;}
-- virtual DLong GetFontnum() { ThrowGDLException("DEVICE: Keyword GET_FONTNUM not allowed for call to: DEVICE" );}//{return -1;}
-+ virtual BaseGDL* GetFontnames() { ThrowGDLException("DEVICE: Keyword GET_FONTNAMES not allowed for call to: DEVICE" ); return NULL;}
-+ virtual DLong GetFontnum() { ThrowGDLException("DEVICE: Keyword GET_FONTNUM not allowed for call to: DEVICE" ); return -1;}
- virtual bool SetFont(DString f) {static int warning_sent=1; if (warning_sent) {Warning("SET_FONT not active for this device (FIXME)."); warning_sent=0;} return true;}
- virtual DString GetCurrentFont() {return NULL;}
- virtual DLong GetGraphicsFunction() { return -1;}
-@@ -360,8 +360,8 @@
- bool UnsetFocus();
- bool Decomposed(bool value);
- DLong GetDecomposed();
-- BaseGDL* GetFontnames(){ ThrowGDLException("DEVICE: Keyword GET_FONTNAMES not allowed for call to: DEVICE" );}//{return NULL;}
-- DLong GetFontnum(){ ThrowGDLException("DEVICE: Keyword GET_FONTNUM not allowed for call to: DEVICE" );}//{return -1;}
-+ BaseGDL* GetFontnames(){ ThrowGDLException("DEVICE: Keyword GET_FONTNAMES not allowed for call to: DEVICE" );return NULL;}
-+ DLong GetFontnum(){ ThrowGDLException("DEVICE: Keyword GET_FONTNUM not allowed for call to: DEVICE" );return -1;}
- bool SetFont(DString f) {fontname=f; return true;}
- DString GetCurrentFont() {return fontname;}
- bool SetBackingStore(int value);
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/gzstream.hpp gdl-0.9.8/src/gzstream.hpp
---- gdl-0.9.8_old/src/gzstream.hpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/gzstream.hpp 2019-01-10 00:44:12.119496743 +0100
-@@ -75,9 +75,9 @@
- std::streampos pubseekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out);
- //hacks for not being lost with input gzipped streams
- std::streampos getPosition(){return position;}
-- std::streampos setPosition(long pos){position=pos;}
-- std::streampos incrementPosition(long pos=1){position+=pos;}
-- std::streampos decrementPosition(long pos=1){position-=pos;}
-+ void setPosition(long pos){position=pos;}
-+ void incrementPosition(long pos=1){position+=pos;}
-+ void decrementPosition(long pos=1){position-=pos;}
- };
-
- class gzstreambase : virtual public std::ios {
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/hdf_fun.cpp gdl-0.9.8/src/hdf_fun.cpp
---- gdl-0.9.8_old/src/hdf_fun.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/hdf_fun.cpp 2019-01-13 17:39:48.271789911 +0100
-@@ -102,10 +102,8 @@
-
- static int readIx=e->KeywordIx("READ");
- static int writeIx=e->KeywordIx("WRITE");
-- if (e->KeywordSet( readIx ))
-- return new DLongGDL( Vattach(hdf_id, vg_ref, "r"));
-- else if (e->KeywordSet( writeIx ))
-- return new DLongGDL( Vattach(hdf_id, vg_ref, "w"));
-+ if (e->KeywordSet( readIx )) return new DLongGDL( Vattach(hdf_id, vg_ref, "r"));
-+ return new DLongGDL( Vattach(hdf_id, vg_ref, "w")); //other cases.
- }
-
-
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/hdf_pro.cpp gdl-0.9.8/src/hdf_pro.cpp
---- gdl-0.9.8_old/src/hdf_pro.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/hdf_pro.cpp 2019-01-13 17:44:17.257946042 +0100
-@@ -34,7 +34,7 @@
- using namespace std;
-
- template< typename T>
-- BaseGDL* hdf_sd_getdata_template( EnvT* e, dimension dim, int32 sds_id,
-+ void hdf_sd_getdata_template( EnvT* e, dimension dim, int32 sds_id,
- int32 start[], int32 edges[], int32 stride[],
- DLongGDL* strideKW)
- {
-@@ -622,7 +622,7 @@
- }
-
- template< typename T>
-- BaseGDL* hdf_sd_getdscl_template(EnvT* e, DLong dim_size, int32 dim_id)
-+ void hdf_sd_getdscl_template(EnvT* e, DLong dim_size, int32 dim_id)
- {
- T* data = new T(dimension(dim_size), BaseGDL::NOZERO);
- SDgetdimscale(dim_id, data->DataAddr());
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/math_fun_ng.cpp gdl-0.9.8/src/math_fun_ng.cpp
---- gdl-0.9.8_old/src/math_fun_ng.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/math_fun_ng.cpp 2019-01-13 23:20:22.931809398 +0100
-@@ -292,7 +292,7 @@
- //dym=static_cast<DDoubleGDL*>(dymO);
- //dyt=static_cast<DDoubleGDL*>(dytO);
- //---------------------------- Init Call function -------------------------------------//
-- DString RK_Diff;
-+ DString RK_Diff = NULL;
- e->AssureScalarPar<DStringGDL>( 4, RK_Diff);
-
- // this is a function name -> convert to UPPERCASE
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/plotting_convert_coord.cpp gdl-0.9.8/src/plotting_convert_coord.cpp
---- gdl-0.9.8_old/src/plotting_convert_coord.cpp 2019-01-25 00:58:41.005863238 +0100
-+++ gdl-0.9.8/src/plotting_convert_coord.cpp 2019-01-25 00:58:32.525730522 +0100
-@@ -222,7 +222,7 @@
- BaseGDL* convert_coord( EnvT* e)
- {
- DDoubleGDL* xVal, *yVal, *zVal;
-- Guard<DDoubleGDL> xval_guard, yval_guard, zval_guard;
-+ Guard<DDoubleGDL> xval_guard = NULL, yval_guard = NULL, zval_guard = NULL;
- SizeT xEl, yEl, zEl, minEl, xDim, yDim, zDim;
-
- //behaviour: 1 argument: needs to be [2,*] or [3,*] else 2 args: X,vector, Y vector 1 (z=vector zero). else 3 args, 3 vectors.
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/saverestore.cpp gdl-0.9.8/src/saverestore.cpp
---- gdl-0.9.8_old/src/saverestore.cpp 2018-03-26 11:57:27.000000000 +0200
-+++ gdl-0.9.8/src/saverestore.cpp 2019-01-13 18:31:01.242699802 +0100
-@@ -164,6 +164,7 @@
-
- uint32_t writeEnd(XDR *xdrs) {
- uint32_t cur=writeNewRecordHeader(xdrs, 6);
-+ return cur;
- }
-
- int getVersion(XDR* xdrs) {
-diff -U 3 -dHrN -x build -x gdl-0.9.8.kdev4 -x launchtest.c -- gdl-0.9.8_old/src/widget.cpp gdl-0.9.8/src/widget.cpp
---- gdl-0.9.8_old/src/widget.cpp 2019-01-25 01:00:25.137407512 +0100
-+++ gdl-0.9.8/src/widget.cpp 2019-01-25 01:12:58.808672141 +0100
-@@ -45,6 +45,7 @@
- if (the_units==0) return wxRealPoint(1,1);
- if (the_units==1) return wxRealPoint(sx*25.4,sy*25.4);
- if (the_units==2) return wxRealPoint(sx*10.0,sy*10.0);
-+ return wxRealPoint(0,0); //never reached -- pacifier.
- }
-
- void GDLWidget::ChangeUnitConversionFactor( EnvT* e)