[med-svn] [libvistaio] 01/06: Imported Upstream version 1.2.19
Gert Wollny
gert-guest at moszumanska.debian.org
Tue Nov 24 15:25:13 UTC 2015
This is an automated email from the git hooks/post-receive script.
gert-guest pushed a commit to branch master
in repository libvistaio.
commit 3abacb66596ca9bb85361fb1a6a2586e779521da
Author: Gert Wollny <gw.fossdev at gmail.com>
Date: Tue Nov 24 16:10:05 2015 +0100
Imported Upstream version 1.2.19
---
.gitignore | 1 +
.travis.yml | 29 +++++++
CMakeLists.txt | 15 ++--
ChangeLog | 10 +++
README => README.md | 56 ++++++++----
vistaio/CMakeLists.txt | 5 +-
vistaio/alloc.c | 3 +-
vistaio/edgesType.c | 12 ++-
vistaio/fileio.c | 37 +++++---
vistaio/graphType.c | 9 +-
vistaio/imageType.c | 2 +-
vistaio/option.c | 5 +-
vistaio/{2dfield.c => test_2dfield.c} | 0
vistaio/{2dspline.c => test_2dspline.c} | 0
vistaio/{3dfield.c => test_3dfield.c} | 0
vistaio/test_attributes.c | 133 ++++++++++++++++++++++++++++
vistaio/test_images.c | 148 ++++++++++++++++++++++++++++++++
vistaio/vcplist.c | 1 +
vistaio/vfield2d.c | 3 +
vistaio/vfield3d.c | 3 +
vistaio/volumes.c | 4 +-
vistaio/volumesType.c | 24 ++++--
vistaio/vspline2d.c | 3 +-
vistaio_change_names.py | 76 ++++++++++++++++
24 files changed, 522 insertions(+), 57 deletions(-)
diff --git a/.gitignore b/.gitignore
index 96e8239..a0887d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
build
*~
+build-*
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..62f84dd
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+sudo: required
+dist: trusty
+before_script:
+- mkdir build
+- cd build
+- cmake ..
+script:
+- make -j2
+after_success:
+- make test
+
+env:
+ global:
+ secure: Swxl0u3vHytVnzKcv2QWDpjjOObA2H9QkUv9vtD6kEQsknVw2P9HYlhZgVGOLiH31SXNw2YN5qlZrPgDR96GwTtjmoWRKf7kNgM0SFtWYU1h4JbKfX/csLk6r3Vr/MAf7hPp4RPhmnzRU8wKNfWkUSIXYZ98oDqDdoD81prSDSlKKdm92EeOQ4PAimswWywzQJbBdSv49gT3tdQoure+1S+tbYcr7uUJVcOyFcDrO3sfgpdem+OTbVyP4BMdy3Q+ZsAvwwMMPFWnc67uMRzjxkEB6sU5L27Uu15IYMpYXmwdNYvsS+KdIEqOzYv+TD/GF8h4+JKaURPt1nuzPDKVrWqU+pdEGak625x1JMFqRl3x5/9cy1jIeRrpBjrq3B+V1JuB3t3iI9N3Ob7+ZRJLgwcQ02ikqtUbGY0Qiggi86GWGiOgHEpMfQ9e0gZ0DwBnRFwbd3hIssSBZKBxDDbaX73DBHEXGX6H [...]
+
+
+addons:
+ coverity_scan:
+
+ project:
+ name: vistaio
+ version: 1.2.19
+ description: VistaIO library
+
+ notification_email: gw.fossdev at gmail.com
+
+ build_command: make
+
+ branch_pattern: coverity_scan
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ead488..aa057d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,16 +25,15 @@ SET(VENDOR "Gert Wollny")
SET(PACKAGE_NAME "vistaio")
SET(MAJOR_VERSION 1)
SET(MINOR_VERSION 2)
-SET(MICRO_VERSION 18)
-SET(INTERFACE_AGE 1)
-SET(BINARY_AGE 4)
+SET(MICRO_VERSION 19)
INCLUDE(GNUInstallDirs)
-MATH(EXPR VISTAIO_CURRENT "${MICRO_VERSION} - ${BINARY_AGE}")
-MATH(EXPR VISTAIO_AGE "${BINARY_AGE} - ${INTERFACE_AGE}")
-
-SET(LIBRARY_VERSION_INFO "${VISTAIO_CURRENT}.${INTERFACE_AGE}.${VISTAIO_AGE}")
+SET(VISTAIO_CURRENT 14)
+SET(VISTAIO_AGE 1)
+SET(VISTAIO_REVISION 4)
+
+SET(LIBRARY_VERSION_INFO "${VISTAIO_CURRENT}.${VISTAIO_AGE}.${VISTAIO_REVISION}")
SET(PACKAGE_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}")
SET(VERSION "${MAJOR_VERSION}.${MINOR_VERSION}")
@@ -51,7 +50,7 @@ ADD_SUBDIRECTORY(doc)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libvistaio.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libvistaio.pc)
-SET(DOC_FILES Authors COPYING)
+SET(DOC_FILES Authors COPYING README.md)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libvistaio.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
INSTALL(FILES ${DOC_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/${VISTAIO_NAME})
diff --git a/ChangeLog b/ChangeLog
index cd48b87..f4919e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2.1.19
+
+ * Add test for attribute IO
+ * Add test for basic image IO
+ * Add travis-ci build check
+
+2.1.18
+
+ * Correct code for problems discovered by Coverity
+
2.1.17
* Add a function to chech whether a file is actually a vista file
diff --git a/README b/README.md
similarity index 70%
rename from README
rename to README.md
index 1316ca2..e5d4e42 100644
--- a/README
+++ b/README.md
@@ -1,3 +1,5 @@
+# Resume
+
This library includes the IO and data type part of the
vista library originaly implemented by
@@ -9,6 +11,42 @@ and Heike Jähnike at the Max-Planck-Institute of Human
Cognitive and Brain Sciences, Leipzig, Germany, and later by
Gert Wollny at the ETSI Telecomunicacion, UPM, Madrid, Spain.
+
+# Installation
+
+## Pre-packaged
+
+* The library is available as libvistaio-dev/libvistaio14 from
+ the official Debian archives.
+* Ebuild for Gentoo Linux are available from the overlay gentoo-imaging
+ (currently not availabe from _layman_)
+
+ https://github.com/gerddie/gentoo-imaging
+
+## Compilation from source:
+
+Requirements:
+
+ * cmake - http://www.cmake.org
+ * a POSIX compatible C compiler (GNU gcc will do just fine).
+
+Then after unpacking the software to
+
+ vistaio-X.X.X one does:
+ cd vistaio-X.X.X
+ mkdir build
+ cd build
+ cmake .. -DCMAKE_INSTALL_PATH=<prefix>
+ make
+ make test
+ make install
+
+The "make install" command you may have to run as root.
+The tests cover only the 2d/3dfield loading and storing, and
+the attribute IO.
+
+# Function naming remark
+
In order to avoid naming conflicts with other libraries that build
onm the same source code, all functions, types and macro names have
been changed from the name V.* to VistaIO.*. A python script to
@@ -31,24 +69,8 @@ stored using the original library. If data is saved to one of the
original formats the original library should also be able to read
the files properly.
-To compile and install the library, you need
- * cmake - http://www.cmahe.org
-and a POSIX compatible C compiler (GNU gcc will do just fine).
-
-Then after unpacking the software to
- vistaio-X.X.X one does:
- cd vistaio-X.X.X
- mkdir build
- cd build
- cmake .. -DCMAKE_INSTALL_PATH=<prefix>
- make
- make test
- make install
-
-The "make install" command you may have to run as root.
-The tests cover only the 2d/3dfield loading and storing.
-Remark aboud endianess:
+# About endianess:
The vista file format was initially developed on a big-endian machine,
as a result Arthur Pope decided it is best to store the data in big-endian
diff --git a/vistaio/CMakeLists.txt b/vistaio/CMakeLists.txt
index 4e6fb51..9bb60d6 100644
--- a/vistaio/CMakeLists.txt
+++ b/vistaio/CMakeLists.txt
@@ -57,15 +57,18 @@ SET_TARGET_PROPERTIES(vistaio PROPERTIES
MACRO(ADD_SIMPLE_TEST name)
- add_executable(test-${name} ${name}.c)
+ add_executable(test-${name} test_${name}.c)
target_link_libraries(test-${name} vistaio)
add_test(${name} test-${name})
ENDMACRO(ADD_SIMPLE_TEST)
+ADD_SIMPLE_TEST(attributes)
+ADD_SIMPLE_TEST(images)
ADD_SIMPLE_TEST(3dfield)
ADD_SIMPLE_TEST(2dfield)
ADD_SIMPLE_TEST(2dspline)
+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/vconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/vconfig.h)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/vconfig.h DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${VISTAIO_NAME}/vistaio)
diff --git a/vistaio/alloc.c b/vistaio/alloc.c
index 580145e..3734058 100644
--- a/vistaio/alloc.c
+++ b/vistaio/alloc.c
@@ -31,7 +31,8 @@ VistaIOPointer VistaIOMalloc (size_t size)
if (size == 0)
return NULL;
- if (!(p = (VistaIOPointer) malloc (size)))
+ p = (VistaIOPointer) malloc (size);
+ if (!p)
VistaIOSystemError ("VistaIOMalloc: Memory allocation failure");
return p;
}
diff --git a/vistaio/edgesType.c b/vistaio/edgesType.c
index cfe7f2f..076ae23 100644
--- a/vistaio/edgesType.c
+++ b/vistaio/edgesType.c
@@ -186,8 +186,10 @@ static VistaIOPointer VistaIOEdgesEncodeDataMethod (VistaIOPointer value, VistaI
pcount = -pcount;
len = length;
if (!VistaIOPackData
- (VistaIOFloatRepn, 1, &pcount, VistaIOMsbFirst, &len, &p, NULL))
+ (VistaIOFloatRepn, 1, &pcount, VistaIOMsbFirst, &len, &p, NULL)) {
+ VistaIOFree(ptr);
return NULL;
+ }
p = (char *)p + len;
length -= len;
@@ -196,8 +198,10 @@ static VistaIOPointer VistaIOEdgesEncodeDataMethod (VistaIOPointer value, VistaI
len = length;
if (!VistaIOPackData
(VistaIOFloatRepn, edges->nedge_fields, e->edge_fields,
- VistaIOMsbFirst, &len, &p, NULL))
+ VistaIOMsbFirst, &len, &p, NULL)) {
+ VistaIOFree(ptr);
return NULL;
+ }
p = (char *)p + len;
length -= len;
}
@@ -205,8 +209,10 @@ static VistaIOPointer VistaIOEdgesEncodeDataMethod (VistaIOPointer value, VistaI
/* Pack point fields: */
len = length;
if (!VistaIOPackData (VistaIOFloatRepn, edges->npoint_fields * e->npoints,
- e->point_index[0], VistaIOMsbFirst, &len, &p, NULL))
+ e->point_index[0], VistaIOMsbFirst, &len, &p, NULL)) {
+ VistaIOFree(ptr);
return NULL;
+ }
p = (char *)p + len;
length -= len;
}
diff --git a/vistaio/fileio.c b/vistaio/fileio.c
index ec73747..e359fb3 100644
--- a/vistaio/fileio.c
+++ b/vistaio/fileio.c
@@ -308,6 +308,8 @@ static VistaIOAttrList ReadAttrList (FILE * f, ReadStringBuf *sbuf)
/* For each attribute up to the next "}": */
while (fscanf (f, " %255[^}: \t\n]", name_buf) == 1) {
name_size = strlen (name_buf);
+ /* Covertiy does not detect that strlen(name_buf) <= 255 */
+
/* Read a : */
if (fscanf (f, " %1s", buf) != 1 || buf[0] != ':') {
@@ -316,9 +318,15 @@ static VistaIOAttrList ReadAttrList (FILE * f, ReadStringBuf *sbuf)
}
do {
- buf[0] = fgetc(f);
- } while (buf[0] == ' ');
+ ch = fgetc(f);
+ } while (ch == ' ');
+ /* File terminated early? */
+ if (ch == EOF)
+ goto Fail;
+
+ buf[0] = (char)ch;
+
/* The first character of the value tells us whether its an attribute
list, quoted string, or unquoted string: */
if (buf[0] == '{') {
@@ -357,6 +365,7 @@ static VistaIOAttrList ReadAttrList (FILE * f, ReadStringBuf *sbuf)
} else {
/* ...otherwise store it as a simple string value: */
+ /*coverity[INTEGER_OVERFLOW] name_size is at most 255 (line 309)*/
a = VistaIOMalloc (sizeof (VistaIOAttrRec) + name_size +
strlen (str) + 1);
a->repn = VistaIOStringRepn;
@@ -387,7 +396,8 @@ static VistaIOAttrList ReadAttrList (FILE * f, ReadStringBuf *sbuf)
/* Swallow the terminating "}": */
if (fscanf (f, " %1s", buf) != 1 || buf[0] != '}') {
VistaIOWarning ("VistaIOReadFile: Missing }");
- Fail:VistaIODestroyAttrList (list);
+ Fail:
+ VistaIODestroyAttrList (list);
return NULL;
}
return list;
@@ -414,6 +424,7 @@ static char *ReadString (FILE * f, char ch, VistaIOStringConst name, ReadStringB
VistaIOBoolean escaped = (ch == '"');
size_t len = 0;
char *cp;
+ int in_char;
if (!buf->buf) {
buf->buf = VistaIOMalloc (StringAllocIncrement);
@@ -425,28 +436,32 @@ static char *ReadString (FILE * f, char ch, VistaIOStringConst name, ReadStringB
cp = buf->buf;
while (1) {
- ch = fgetc (f);
+ in_char = fgetc (f);
/* Check for premature EOF: */
- if (ch == EOF) {
+ if (in_char == EOF) {
VistaIOWarning ("VistaIOReadFile: EOF encountered in %s attribute", name);
return NULL;
}
/* Check for closing " or escape sequence: */
if (escaped) {
- if (ch == '"')
+ if (in_char == '"')
break;
- if (ch == '\\')
- switch (ch = fgetc (f)) {
+ if (in_char == '\\')
+ switch (in_char = fgetc (f)) {
case '\n':
continue;
case 'n':
- ch = '\n';
+ in_char = '\n';
+ break;
+ case EOF:
+ VistaIOWarning ("VistaIOReadFile: EOF encountered in %s attribute", name);
+ return NULL;
}
- } else if (isspace (ch))
+ } else if (isspace (in_char))
break;
/* If the buffer in which we're accumulating the value is full,
@@ -457,7 +472,7 @@ static char *ReadString (FILE * f, char ch, VistaIOStringConst name, ReadStringB
}
/* Store the character in the current buffer: */
- *cp++ = ch;
+ *cp++ = (char)in_char;
}
*cp = 0;
diff --git a/vistaio/graphType.c b/vistaio/graphType.c
index 6077cb0..60d1c82 100644
--- a/vistaio/graphType.c
+++ b/vistaio/graphType.c
@@ -227,8 +227,11 @@ static VistaIOPointer VistaIOGraphEncodeDataMethod (VistaIOPointer value, VistaI
int i, nadj;
#define pack(repn, cnt, dest) \
- if (! VistaIOPackData (repn, cnt, dest, VistaIOMsbFirst, &len, &p, NULL)) return NULL; \
- p = (char *) p + len; length -= len; len = length;
+ if (! VistaIOPackData (repn, cnt, dest, VistaIOMsbFirst, &len, &p, NULL)) { \
+ VistaIOFree(ptr); \
+ return NULL; \
+ } \
+ p = (char *) p + len; length -= len; len = length;
/* Remove the attributes prepended by the VistaIOGraphEncodeAttrsMethod: */
for (VistaIOFirstAttr (list, &posn);
@@ -242,7 +245,7 @@ static VistaIOPointer VistaIOGraphEncodeDataMethod (VistaIOPointer value, VistaI
return value; /* we may return anything != 0 here */
};
- p = ptr = VistaIOMalloc (length);
+p = ptr = VistaIOMalloc (length);
len = length;
/* Pack each node: */
diff --git a/vistaio/imageType.c b/vistaio/imageType.c
index 3cda06a..b40b106 100644
--- a/vistaio/imageType.c
+++ b/vistaio/imageType.c
@@ -192,7 +192,7 @@ static VistaIOPointer VistaIOImageEncodeDataMethod (VistaIOPointer value, VistaI
VistaIOImage image = value;
VistaIOAttrListPosn posn;
size_t len;
- VistaIOPointer ptr;
+ VistaIOPointer ptr = NULL;
/* Remove the attributes prepended by the VistaIOImageEncodeAttrsMethod: */
for (VistaIOFirstAttr (list, &posn);
diff --git a/vistaio/option.c b/vistaio/option.c
index 2dbe899..49da8cf 100644
--- a/vistaio/option.c
+++ b/vistaio/option.c
@@ -27,6 +27,8 @@
/* Later in this file: */
static int ParseArgValues (int *, int, char **, VistaIOOptionDescRec *);
+/* from error.c */
+extern EXPORT_VISTA void VistaIOSetProgramName (VistaIOStringConst name);
/* The following provide distinguished values for the found field of a
VistaIOOptionDescRec: */
VistaIOBoolean VistaIO_RequiredOpt;
@@ -227,6 +229,7 @@ VistaIOBoolean VistaIOParseCommand (int noptions, VistaIOOptionDescRec options[]
/* If found, return FALSE to force printing of usage info: */
*argc = 1;
+ VistaIOFree ((VistaIOPointer) opts_seen);
return FALSE;
}
@@ -460,7 +463,7 @@ void VistaIOParseFilterCmd (int noptions, VistaIOOptionDescRec opts[],
VerboseDict, "Verbosity level"}
};
int i, n;
- VistaIOOptionDescRec options[100];
+ VistaIOOptionDescRec options[101];
/* Check that number of options will not overflow the options array. */
if (noptions >= 98) {
diff --git a/vistaio/2dfield.c b/vistaio/test_2dfield.c
similarity index 100%
rename from vistaio/2dfield.c
rename to vistaio/test_2dfield.c
diff --git a/vistaio/2dspline.c b/vistaio/test_2dspline.c
similarity index 100%
rename from vistaio/2dspline.c
rename to vistaio/test_2dspline.c
diff --git a/vistaio/3dfield.c b/vistaio/test_3dfield.c
similarity index 100%
rename from vistaio/3dfield.c
rename to vistaio/test_3dfield.c
diff --git a/vistaio/test_attributes.c b/vistaio/test_attributes.c
new file mode 100644
index 0000000..9ceac95
--- /dev/null
+++ b/vistaio/test_attributes.c
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) Madrid 2015
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appears in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. The authors makes no representations about the suitability
+ * of this software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Author: Gert Wollny <gw.fossdev at gmail.com>
+ */
+
+#include <vistaio/vistaio.h>
+#include <stdio.h>
+
+
+
+int main(int UNUSED(argc), const char **UNUSED(args))
+{
+ FILE *file;
+
+ VistaIOAttrList test_list;
+ VistaIODouble test_double = -3.0;
+ VistaIOFloat test_float = 2.0;
+ VistaIOShort test_short = 3;
+ VistaIOLong test_long = 6;
+ VistaIOString test_string = "This is a test string \" ;}:";
+
+
+ VistaIOAttrList read_list;
+ VistaIODouble read_double = 1.0;
+ VistaIOFloat read_float = 1.0;
+ VistaIOShort read_short = 0;
+ VistaIOLong read_long = 0;
+ VistaIOString read_string = NULL;
+
+ int test_failed = FALSE;
+
+ test_list = VistaIOCreateAttrList();
+
+ VistaIOSetAttr(test_list, "test-double", NULL, VistaIODoubleRepn, test_double);
+ VistaIOSetAttr(test_list, "test-float", NULL, VistaIOFloatRepn, test_float);
+ VistaIOSetAttr(test_list, "test-short", NULL, VistaIOShortRepn, test_short);
+ VistaIOSetAttr(test_list, "test-long", NULL, VistaIOLongRepn, test_long);
+ VistaIOSetAttr(test_list, "test-string", NULL, VistaIOStringRepn, test_string);
+
+
+ /* open file for saving */
+ if ((file = fopen("test-attr.v","w"))==0) {
+ VistaIOError("Unable to open file 'test-attr.v' for writing");
+ ++test_failed;
+ }
+
+ VistaIOWriteFile(file,test_list);
+ fclose(file);
+
+
+ /* open file for reading */
+ if ((file = fopen("test-attr.v","r")) == NULL) {
+ VistaIOError("Unable to open file test-attr.v for reading");
+ ++test_failed;
+ }
+
+ /* Read field from file */
+ read_list = VistaIOReadFile(file, NULL);
+
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(test_list, "test-double", NULL, VistaIODoubleRepn, &read_double)) {
+ VistaIOWarning("Attribute test-double not found");
+ ++test_failed;
+ }
+
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(test_list, "test-float", NULL, VistaIOFloatRepn, &read_float)) {
+ VistaIOWarning("Attribute test-float not found");
+ ++test_failed;
+ }
+
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(test_list, "test-short", NULL, VistaIOShortRepn, &read_short)) {
+ ++test_failed;
+ VistaIOWarning("Attribute test-short not found");
+ }
+
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(test_list, "test-long", NULL, VistaIOLongRepn, &read_long)) {
+ ++test_failed;
+ VistaIOWarning("Attribute test-short not found");
+ }
+
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(test_list, "test-string", NULL, VistaIOStringRepn, &read_string)) {
+ VistaIOWarning("Attribute test-string not found");
+ ++test_failed;
+ }
+
+ if (test_double != read_double) {
+ VistaIOWarning("Attribute test-double: read %f, expected %f", read_double, test_double);
+ ++test_failed;
+ }
+
+ if (test_float != read_float) {
+ VistaIOWarning("Attribute test-float: read %f, expected %f", read_float, test_float);
+ ++test_failed;
+ }
+
+ if (test_short != read_short) {
+ VistaIOWarning("Attribute test-short: read %f, expected %f", read_short, test_short);
+ ++test_failed;
+ }
+
+ if (test_long != read_long) {
+ VistaIOWarning("Attribute test-long: read %f, expected %f", read_long, test_long);
+ ++test_failed;
+ }
+
+ if (strcmp(read_string, test_string)) {
+ VistaIOWarning("Attribute test-string: read '%s', expected '%s'", read_string, test_string);
+ ++test_failed;
+ }
+
+
+ VistaIODestroyAttrList(test_list);
+ VistaIODestroyAttrList(read_list);
+
+ if (remove( "test-attr.v" ) != 0) {
+ VistaIOWarning("Unable to remove test file test-attr.v");
+ }
+
+ return test_failed;
+}
diff --git a/vistaio/test_images.c b/vistaio/test_images.c
new file mode 100644
index 0000000..2eaacd8
--- /dev/null
+++ b/vistaio/test_images.c
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) Leipzig, Madrid 2004 - 2015
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appears in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. The authors makes no representations about the suitability
+ * of this software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * Author: Gert Wollny <gw.fossdev at gmail.com>
+ *
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <vistaio/vistaio.h>
+
+
+
+int nx = 7;
+int ny = 8;
+int nz = 9;
+
+float dx = 1.6;
+float dy = 2.2;
+float dz = 3.2;
+
+
+#define VTYPE double
+#define TYPEREPN VistaIODoubleRepn
+
+VistaIOBoolean RepnFilter(VistaIOBundle UNUSED(bundle), VistaIORepnKind repn)
+{
+ return repn == VistaIOImageRepn;
+}
+
+
+#define CHECK_EQUAL(A, B, ErrorMsg) \
+ if (A != B) VWarning(ErrorMsg, A, B)
+
+
+int main(int UNUSED(argc), const char **UNUSED(args))
+{
+ VistaIOImage image1;
+ VistaIOImage image2;
+ VistaIOAttrList list;
+ VistaIOAttrList in_list;
+ int x,y,z;
+ float test_float,number;
+ FILE *file;
+ int tests_run = 0;
+ int tests_failed = 0;
+
+ image2 = NULL;
+ test_float = 1.2;
+
+ /* Create the image */
+ image1 = VistaIOCreateImage(nz, ny, nx, VistaIOShortRepn);
+
+
+ /* put in some data */
+ VistaIOShort *s = VistaIOPixelPtr(image1, 0, 0, 0);
+ for (z = 0; z < nz; z++)
+ for (y = 0; y < ny; y++)
+ for (x = 0; x < nx; x++){
+ *s++ = x + 10 * y + 100 * z;
+ }
+
+ /* add some attribute the the field */
+ VistaIOSetAttr(VistaIOImageAttrList(image1),"test_attribute", NULL, VistaIOFloatRepn, test_float);
+
+
+ list = VistaIOCreateAttrList();
+ VistaIOSetAttr(list, "test-image", NULL, VistaIOImageRepn, image1);
+
+ /* open file for saving */
+ if ((file = fopen("test-image.v","w"))==0)
+ VistaIOError("Unable to open file 'test-image.v' for writing");
+
+ VistaIOWriteFile(file, list);
+ fclose(file);
+
+ if ((file = fopen("test-image.v","r")) == NULL)
+ VistaIOError("Unable to open file test-image.v for reading");
+
+ /* Read field from file */
+ in_list = VistaIOReadFile(file, RepnFilter);
+
+ ++tests_run;
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(in_list, "test-image", NULL, VistaIOImageRepn, &image2)) {
+ VistaIOWarning("Attribute test-image not found");
+ ++tests_failed;
+ }
+
+ ++tests_run;
+ if (VistaIOAttrFound !=
+ VistaIOGetAttr(VistaIOImageAttrList(image1),"test_attribute", NULL, VistaIOFloatRepn, &number)) {
+ VistaIOWarning("Attribute test_attribute not found");
+ ++tests_failed;
+ }
+
+ ++tests_run;
+ if ( number != test_float) {
+ VistaIOWarning("Attribute test_float: got %f, expect %f", number, test_float);
+ ++tests_failed;
+ }
+
+
+#define CHECK_EQUAL_IMAGE_ATTRIBUTE(A, B, ATTR) \
+ ++tests_run; \
+ if (A -> ATTR != B -> ATTR) { \
+ VistaIOWarning( "Image %s: got %d, expect %d", #ATTR, A -> ATTR, B -> ATTR); \
+ ++tests_failed; \
+ }
+
+
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, nrows);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, nbands);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, ncolumns);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, nframes);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, pixel_repn);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, nviewpoints);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, ncolors);
+ CHECK_EQUAL_IMAGE_ATTRIBUTE(image2, image1, ncomponents);
+
+ /* put in some data */
+ VistaIOShort *t = VistaIOPixelPtr(image2, 0, 0, 0);
+ for (z = 0; z < nz; z++)
+ for (y = 0; y < ny; y++)
+ for (x = 0; x < nx; x++, ++t){
+ ++tests_run;
+ if (*t != x + 10 * y + 100 * z) {
+ VistaIOWarning("Pixel value at (%d, %d, %d): got %hd, expect %d",
+ x,y,z,*t, x + 10 * y + 100 * z);
+ ++tests_failed;
+ }
+ }
+
+
+ remove( "test-image.v" );
+
+ fprintf(stderr,"%d out of %d tests failed\n", tests_failed, tests_run);
+
+ return tests_failed != 0;
+}
diff --git a/vistaio/vcplist.c b/vistaio/vcplist.c
index bafa35b..41a5bfb 100644
--- a/vistaio/vcplist.c
+++ b/vistaio/vcplist.c
@@ -59,6 +59,7 @@ VistaIOCPEList VistaIOCreateCPEList(VistaIOLong _n_element)
result->data = malloc(result->nsize);
if (!result->data) {
VistaIOWarning("VistaIOCreateCPEList: Unable to allocate %d byte of memory",result->nsize);
+ free(result);
return NULL;
}
memset(result->data,0,result->nsize);
diff --git a/vistaio/vfield2d.c b/vistaio/vfield2d.c
index ead249d..fa610af 100644
--- a/vistaio/vfield2d.c
+++ b/vistaio/vfield2d.c
@@ -67,6 +67,7 @@ EXPORT_VISTA VistaIOField2D VistaIOCreateField2DFrom(VistaIOLong x_dim,
case VistaIODoubleRepn:result->nsize *= 8;
break;
default:VistaIOWarning("Requested wrong Repn type in VistaIOCreateField2D");
+ free(result);
return NULL;
}
@@ -105,6 +106,7 @@ EXPORT_VISTA VistaIOField2D VistaIOCreateField2D(VistaIOLong x_dim,
case VistaIODoubleRepn:result->nsize *= 8;
break;
default:VistaIOWarning("Requested wrong Repn type in VistaIOCreateField2D");
+ free(result);
return NULL;
}
@@ -113,6 +115,7 @@ EXPORT_VISTA VistaIOField2D VistaIOCreateField2D(VistaIOLong x_dim,
result->p.data = malloc(result->nsize);
if (!result->p.data) {
VistaIOWarning("VistaIOCreateField2D: Unable to allocate %d byte of memory",result->nsize);
+ free(result);
return NULL;
}
memset(result->p.data,0,result->nsize);
diff --git a/vistaio/vfield3d.c b/vistaio/vfield3d.c
index ef8950f..220742f 100644
--- a/vistaio/vfield3d.c
+++ b/vistaio/vfield3d.c
@@ -76,6 +76,7 @@ EXPORT_VISTA VistaIOField3D VistaIOCreateField3DFrom(VistaIOLong x_dim,
case VistaIODoubleRepn:result->nsize *= 8;
break;
default:VistaIOWarning("Requested wrong Repn type in VistaIOCreateField3D");
+ free(result);
return NULL;
}
@@ -116,6 +117,7 @@ EXPORT_VISTA VistaIOField3D VistaIOCreateField3D(VistaIOLong x_dim,
case VistaIODoubleRepn:result->nsize *= 8;
break;
default:VistaIOWarning("Requested wrong Repn type in VistaIOCreateField3D");
+ free(result);
return NULL;
}
@@ -124,6 +126,7 @@ EXPORT_VISTA VistaIOField3D VistaIOCreateField3D(VistaIOLong x_dim,
result->p.data = malloc(result->nsize);
if (!result->p.data) {
VistaIOWarning("VistaIOCreateField3D: Unable to allocate %d byte of memory",result->nsize);
+ free(result);
return NULL;
}
memset(result->p.data,0,result->nsize);
diff --git a/vistaio/volumes.c b/vistaio/volumes.c
index c78868d..22da8c3 100644
--- a/vistaio/volumes.c
+++ b/vistaio/volumes.c
@@ -78,8 +78,10 @@ Volume VistaIOCreateVolume (short label, short nbands, short nrows, short ncolum
else
vol->nbuckets = (short)nbuckets;
vol->bucket = (VistaIOBucket) VistaIOMalloc (sizeof (VistaIOBucketRec) * vol->nbuckets);
- if (!vol->bucket)
+ if (!vol->bucket) {
+ VistaIOFree(vol);
return NULL;
+ }
for (i = 0; i < vol->nbuckets; i++) {
vol->bucket[i].ntracks = 0;
diff --git a/vistaio/volumesType.c b/vistaio/volumesType.c
index 8e3c5f7..fe69f03 100644
--- a/vistaio/volumesType.c
+++ b/vistaio/volumesType.c
@@ -68,6 +68,7 @@ static VistaIOPointer VolumesDecodeMethod (VistaIOStringConst UNUSED(name), Vist
short *p;
VistaIOTrack t;
VistaIOPointer data;
+ VistaIOPointer data_allocated_ptr;
Volume vol;
#define Extract(name, dict, locn, required) \
@@ -99,7 +100,7 @@ static VistaIOPointer VolumesDecodeMethod (VistaIOStringConst UNUSED(name), Vist
length = nels * (VistaIORepnPrecision (VistaIOShortRepn) / 8);
/* Allocate storage for the Volumes binary data: */
- data = VistaIOMalloc (nels * sizeof (VistaIOShort));
+ data_allocated_ptr = data = VistaIOMalloc (nels * sizeof (VistaIOShort));
/* Unpack the binary data: */
if (!VistaIOUnpackData
@@ -127,6 +128,7 @@ static VistaIOPointer VolumesDecodeMethod (VistaIOStringConst UNUSED(name), Vist
}
VistaIOAddVolume (volumes, vol);
}
+ VistaIOFree(data_allocated_ptr);
return volumes;
#undef Extract
@@ -229,7 +231,7 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
len = VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
(VistaIOShortRepn, 1, &ntracks, VistaIOMsbFirst, &len, &p, NULL))
- return NULL;
+ goto Fail;
p = (char *)p + len;
length -= len;
@@ -237,7 +239,7 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
len = VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
(VistaIOShortRepn, 1, &ntracks, VistaIOMsbFirst, &len, &p, NULL))
- return NULL;
+ goto Fail;
p = (char *)p + len;
length -= len;
@@ -246,7 +248,7 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
len = VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
(VistaIOShortRepn, 1, &hashlen, VistaIOMsbFirst, &len, &p, NULL))
- return NULL;
+ goto Fail;
p = (char *)p + len;
length -= len;
@@ -255,7 +257,7 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
len = VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
(VistaIOShortRepn, 1, &nbands, VistaIOMsbFirst, &len, &p, NULL))
- return NULL;
+ goto Fail;
p = (char *)p + len;
length -= len;
@@ -263,8 +265,9 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
label = (VistaIOShort) v->label;
len = VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
- (VistaIOShortRepn, 1, &label, VistaIOMsbFirst, &len, &p, NULL))
- return NULL;
+ (VistaIOShortRepn, 1, &label, VistaIOMsbFirst, &len, &p, NULL)) {
+ goto Fail;
+ }
p = (char *)p + len;
length -= len;
@@ -277,8 +280,8 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
len = 4 * VistaIORepnPrecision (VistaIOShortRepn) / 8;
if (!VistaIOPackData
(VistaIOShortRepn, 4, &idata[0], VistaIOMsbFirst,
- &len, &p, NULL))
- return NULL;
+ &len, &p, NULL))
+ goto Fail;
p = (char *)p + len;
length -= len;
}
@@ -287,4 +290,7 @@ VolumesEncodeDataMethod (VistaIOPointer value, VistaIOAttrList UNUSED(list), siz
*free_itp = TRUE;
return ptr;
+Fail:
+ VistaIOFree(ptr);
+ return NULL;
}
diff --git a/vistaio/vspline2d.c b/vistaio/vspline2d.c
index 0d3340b..e29678c 100644
--- a/vistaio/vspline2d.c
+++ b/vistaio/vspline2d.c
@@ -84,7 +84,8 @@ EXPORT_VISTA VistaIOSpline2D VistaIOCreateSpline2D(VistaIOLong _x_dim,
result->data = VistaIOCreateField2D(_x_dim, _y_dim, nsize_element, repn);
result->x_range = _x_range;
result->y_range = _y_range;
- result->kernel_descr = kernel_descr;
+ result->kernel_descr = kernel_descr;
+ result->attr = NULL;
return result;
}
diff --git a/vistaio_change_names.py b/vistaio_change_names.py
new file mode 100644
index 0000000..2cd1d91
--- /dev/null
+++ b/vistaio_change_names.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2011-2015 Gert Wollny <gw.fossdev at gmail.com>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appears in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation. The authors makes no representations about the suitability
+# of this software for any purpose. It is provided "as is" without express or
+# implied warranty.
+#
+
+import sys
+import re
+from os import rename
+import string
+from fnmatch import fnmatch
+from os.path import walk
+
+
+
+class CPatternCollector:
+ def __init__(self, pattern):
+ self.pattern = pattern
+ self.files=[]
+
+
+def collect_files(arg, dirname, names):
+ for f in names:
+ for p in arg.pattern:
+ if fnmatch(f, p):
+ arg.files.append(dirname + "/" + f)
+
+
+
+def find_files(root, pattern):
+ arg = CPatternCollector(pattern)
+ walk(root, collect_files, arg)
+ return arg.files
+
+
+root= sys.argv[1]
+files = find_files(root, ["*.C", "*.H", "*.c", "*.h", "*.cc", "*.hh", "*.cpp", "*.hpp"])
+
+
+# read all files and extract comment blocks
+for f in files:
+
+ # ignore some emacs security copies
+ h = re.search("/\.#[-a-z0-9]*\.[ch]*", f)
+ if h:
+ continue
+
+
+
+ infile = open(f, "r");
+ lines = infile.readlines()
+ infile.close(),
+
+ changed = False
+ out_lines = []
+ for l in lines:
+ ol = re.sub("\\bV(_*[A-Z]*[a-z][a-zA-Z0-9_]*)\\b", "VistaIO\\1",l)
+ out_lines.append(ol)
+ changed = changed or (ol != l)
+
+ if changed:
+ print f, " updated"
+ outfile = open(f, "w")
+ outfile.writelines(out_lines)
+ outfile.close();
+ else:
+ print f, " unchanged"
+
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/libvistaio.git
More information about the debian-med-commit
mailing list