Bug fix and feature
Description:
It could not find a working h5dump to process the hdf5 files.
This could be because h5dump is not installed in $PATH or
a disfunctional one is found. (E.g. arabica:/usr/sdt/bin/h5dump
does not work.)
Setting it to ./h5dump or $PWD/h5dump does not work because
when h5dump is used, it has "cd testfiles", a different place.
Solution:
Set H5DUMP with the current absolute path (used `pwd` instead
of $PWD which is sometimes not set for whatever reason.)
Also add a feature to allow H5DUMP to be set to a different
value by hand. For example, if the h5dump just built is not
working correctly, one can do "H5DUMP=/usr/local/bin/h5dump make check"
to bypass the broken h5dump.
Platforms tested:
arabica
Reformat the source
Description:
The tabstop seems to defined different from 8-stops. The
source files looked very confusing. Just reformate the
files. Not change to source code at all.
Platforms tested:
modi4 -64.
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
this is the expected hdf5 result for h4toh5 converter.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
this is the test file for h4toh5 converter.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Purpose:
add h4toh5 converter source codes under tools directory.
Description:
[describe the bug, or describe the new feature, etc]
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Purpose:
add h4toh5 converter tool
Description:
add flag h4toh5 and testh4toh5 in the Makefile.
Solution:
[details about the changes, algorithm, etc...]
[Please as detail as you can since your own explanation is
better than others guessing it from the code.]
Platforms tested:
test on eirene and arabica.
[machines you have tested the changed version. This is absolute
important. Test it out on at least two or three different platforms
such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
Fix Irix pmake bugs
Description:
Build fails on Irix when builddir != srcdir
Solution:
* acconfig.h
* src/H5config.h.in [REGENERATED]
Added definition for HAVE_STREAM
* config/conclude.in
* config/depend1.in
* config/depend2.in
* config/depend3.in
* config/depend4.in
The `Dependencies' file is located in the source
tree. This fixes bugs for Irix pmake when compiling
outside the source tree. Hopefully it still preserves
Albert's changes which allow concurrent compilations
to not stomp on each other's Dependencies files.
* examples/Dependencies [REGENERATED]
* src/Dependencies [REGENERATED]
* test/Dependencies [REGENERATED]
* tools/Dependencies [REGENERATED]
Regenerated for testing purposes.
Platforms:
i686-pc-linux
mips-sgi-irix6.5
sparc-sun-solaris2.6
Added the Stream Virtual File Driver to the list of drivers
used for trying to open a file via h5dump_fopen().
Description:
The Stream VFD was added at bottom of the driver list for h5dump_fopen().
If no driver succeeded to open a file given by its filename
the Stream VFD would try to do so by parsing the filename as an
'hostname:port' argument, open a socket to that address and read
read the file.
This feature can be used to h5ls/h5dump streamed files.
Platforms:
All platforms (also between heterogenous).
1. The `driver' table is initialized only once, making it faster and
leaking less memory.
2. The returned driver name is set to the empty string on failure.
3. Added an argument so the function cannot overwrite the end of the
drivername return value.
4. Avoids core dump when assigning driver name to return value if the
file could not be opened by any driver.
5. Changed name of function to h5dump_fopen() to follow the naming
scheme for this source file.
6. Reindented according to hdf5 code standard.
7. Added `const' qualifiers to read-only formals.
8. Removed duplicate forward declaration.
Reindented some parts of these source files that had very odd indentation
(some lines had no indentation while others had 3x what they should).
Fixed calls to H5ToolsFopen() function.
library for it(H5ToolsFopen-takes a filename and a char ptr if you want the name of the driver)
added the function to h5tools.c, a header to h5tools.h and changed h5ls.c and h5dump.c to use the new
functions
** src/H5Tconv.c
** src/H5Tpkg.h
** src/H5Tpublic.h
The H5T_conv_struct_opt() function had a design flaw -- it
didn't keep information about the stride to use to step
through the temporary/background-value buffer and thus nested
invocations would clobber each other's temp buffers. This was
fixed by splitting the `stride' argument into `buf_stride' and
`bkg_stride' arguments for all the conversion functions. THIS
IS AN API CHANGE, but users will get a compiler warning when
they pass their conversion function pointer to H5Tregister().
** src/H5T.c
** src/H5Tprivate.h
Added a bkg_stride argument to the H5T_convert() definition in
order to fix a bug related to the optimized compound datatype
conversion function.
** src/H5T.c
** src/H5A.c
** src/H5D.c
** src/H5Ofill.c
** src/H5P.c
Added bkg_stride=0 argument to the H5T_convert() calls.
** test/dtypes.c
Added a test for the H5T_conv_struct_opt() bug fixed above.
** src/H5FL.c
The H5FL_term() function should return non-zero even when it
couldn't free all the free lists do to their being used by
some other package. When that other package terminates it
will return non-zero, causing H5FL_term() to be called
again. This fixes some of the `infinite loop closing library'
messages.
** tools/pdb2hdf
Uses print_version() instead of doing that itself.
** src/H5Ppublic.h
Renamed H5Pget_gc_reference() declaration to make it match the
definition.
** src/H5FDlog.c
Added API tracing macros.
Removed `const' qualifier from a `char*' member of a struct
which was allocated on the heap.
** src/H5TB.c
Added curly braces to a couple deeply-nested `if' statements
to make them clearer and to shut up the increadibly stupid and
just plain incorrect gcc warning about ambiguous `else'.
** test/titerate.c
Removed incomplete initialization in favor of memset() for one
auto variable to stop compiler warnings.
** tools/Depencencies
Regenerated to remove references to h5dumputil.c
conditional compile statements in the code to compile for the release.
defined a VERSION12 and VERSION13 macro. all changes were surrounded by these statements
from h5tools.h just got rid of a prototype for copy_atmoic_char which was never used
in the h5tools.c i removed the copy_atomic_char, all the display_*_data, where the * is numeric, string
or compound, the print_data, h5dump_attr. also removed a block of codfe that was surrounded by #if 0
Prints the subrelease name also.
** tools/h5tools.c
Fixed indentation problems in the first half of the file.
Changed conditional compilation style from `/*...*/' to use
#if 0/#endif in the first half of this file.
Removed some extra parentheses to make expressions more readable.
macros in the dumper. this was basically adding a space after most of the '}'.
there are some places that don't have the space because those '}' were not printed
by the end_obj macro
the header information in the dumper. the header is the part before the data
block.
in h5dump.c there is support for the new -xml option. prints the output in xml
using the structure we just defined in h5tools.h.
h5dump.h- changed the begin_obj and end_obj macros. take an extra parameter now
Bug fix.
Description:
Failed on T3E in which int32 is typedef to a short (4 bytes)
but the converter just used H5T_NATIVE_INT for conversion of
a STD_INT32. Int in a T3E is actually 64bit big.
Solution:
Recoded the h5type to h4type matching algorithm by making sure
the size of the H4 type used is equal to the size of the
H5 native type.
Remark: current implementation is not efficient--it does all
the sizes checking repeatedly. Should have done the type mapping
once at the beginning as initialization.
Old code are still retain via the macro NEWWAY. Need to verify
the correctness of the converter in more platforms before
finalized on the code.
Platforms tested:
Baldric (Solaris 2.6), arabica (Solaris 2.7)
T3E
now the dump structure contains 2 extra members that tell how to format the
data for the dataset regions(blocks and pts).
had to give h5ls values for these
in h5dump.c just initialized the values for the formatting struct.
in h5tools.c made some changes in the printing area to get the dump output to
look closer to what we wanted. the strings are currently not printing correctly.
also removed the program type variable from here.
Added -V option for displaying version information.
h5tools.c:
Added print_version routine to display version information.
h5tools.h:
Added print_version prototype.