hdf5/tools/h5ls.c

2154 lines
57 KiB
C
Raw Normal View History

/*
* Copyright (C) 1998 NCSA
* All rights reserved.
*
* Programmer: Robb Matzke <matzke@llnl.gov>
* Monday, March 23, 1998
*/
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
/*
* We include the private header file so we can get to the uniform
* programming environment it declares. Other than that, h5ls only calls
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
* HDF5 API functions (except for H5G_basename())
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
*/
[svn-r339] Changes since 19980408 ---------------------- ./src/H5Osdspace.c ./html/H5.format.html In the past we were allowed to have >2GB files on a 32-bit machine as long as no dataset within the file was larger than 4GB (or whatever sizeof(size_t) is). That's been fixed now. All dataset size calculations are done with `hsize_t' which is normally defined as `unsigned long long'. ./src/H5F.c ./src/H5Ffamily.c ./src/H5Fprivate.h ./src/H5P.c ./src/H5Ppublic.h The file family member size can now be set/queried. The default is still 64MB, but it can be set to 1GB by saying: H5Pset_family (plist, 30, H5P_DEFAULT); When opening an existing file family the specified bits-per-member is ignored and the first member of the family determines the bits-per-member, which can be retrieved with H5Pget_family(). ./acconfig.h ./configure.in ./src/H5config.h ./src/H5public.h Added `--disable-hsizet' so that those with old GCC compilers (<2.8.1) can still compile the code. ./src/H5.c ./src/H5private.h Added HDfprintf() which works just like fprintf() except you can give `H' as a size modifier for the integer conversions and supply an `hsize_t' or `hssize_t' argument without casting it. For instance: hsize_t npoints = H5Sget_npoints(space); HDfprintf(stdout,"Dataset has %Hd (%#018Hx) points\n", npoints, npoints); You can now give `%a' as a format to print an address, but all formating flags are ignored and it causes the return value of HDfprintf() to not include the characters in the address (but who uses the return value anyway :-). Example: H5G_t *grp; HDfprintf(stdout, "Group object header at %a\n", &(grp->ent.header)); Added HDstrtoll() which works exactly like [HD]strtol() except the result is an int64. ./src/debug.c Large addresses can now be entered from the command-line. Use either decimal, octal (leading `0') or hexadecimal (leading `0x') when giving the address. ./src/h5ls.c The printf format for dataset dimensions was changed to `%Hu' to support large datasets. ./test/big.c [NEW] A test for big datasets on 32-bit machines. This test is not run by default. Don't try to run it on an nfs-mounted file system or other file system that doesn't support holes because it creates two 32GB datasets of all zero.
1998-04-10 04:22:11 +08:00
#include <H5private.h>
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
#include <h5tools.h>
[svn-r1568] Changes since 19990730 ---------------------- This extensive change is the virtual file layer implementation. I've ported and tested the sec2, family, and core drivers and only ported the mpio driver (Albert will test it). So if you need MPIO I would recommend sticking with the previous version for a while. You will get a few compile warnings about split and stdio drivers not being implemented and possibly tracing information not inserted in some of the drivers. You can safely ignore them but I plan to fix them. I'm still working on the split driver because I just realized that it needs a part of the VFL that isn't written yet. Documentation is being updated also because there were some minor changes (mostly just name changes). It should be available on my web site later this week. ./MANIFEST ./src/Makefile.in ./src/hdf5.h ./src/H5Flow.c [REMOVED] ./src/H5Fstdio.c [REMOVED] ./src/H5Fsec2.c [REMOVED] ./src/H5Fsplit.c [REMOVED] ./src/H5Fmpio.c [REMOVED] ./src/H5Ffamily.c [REMOVED] ./src/H5Fcore.c [REMOVED] ./src/H5MFpublic.h [REMOVED] ./src/H5FD.c [NEW] ./src/H5FDcore.c [NEW] ./src/H5FDcore.h [NEW] ./src/H5FDfamily.c [NEW] ./src/H5FDfamily.h [NEW] ./src/H5FDmpio.c [NEW] ./src/H5FDmpio.h [NEW] ./src/H5FDprivate.h [NEW] ./src/H5FDpublic.h [NEW] ./src/H5FDsec2.c [NEW] ./src/H5FDsec2.h [NEW] Removed/added files for virtual file layer. ./bin/trace ./src/H5.c Removed unused public datatypes and added new VFL public datatypes. Changed an error message. ./config/BlankForm ./config/dec-flags ./config/gnu-flags ./config/hpux10.20 ./config/hpux9.03 ./config/irix5.x ./config/irix6.x ./config/solaris2.x ./config/unicosmk Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the configuration since they're no longer applicable. The default file driver is always the sec2 driver and it always optimizes calls to lseek() or lseek64(). ./config/depend.in C preprocessor errors generated during automatic dependency building are sent to /dev/null to prevent them from appearing twice in the make output. ./src/H5AC.c ./src/H5B.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Oshared.c ./src/H5T.c ./src/H5detect.c ./test/ohdr.c Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent with the `haddr_t' datatype which is now a public type. ./src/H5D.c ./src/H5P.c ./src/H5Ppublic.h ./src/H5Tconv.c ./test/cmpd_dset.c ./test/dsets.c ./test/overhead.c ./test/tselect.c ./test/tvltypes.c The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER because the properties apply to all types of I/O operations, not just datasets. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5Gpkg.h ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./test/big.c ./test/h5test.c ./test/istore.c ./testpar/t_dset.c ./testpar/t_file.c ./tools/h5debug.c ./tools/h5ls.c Modified to work with the virtual file layer by calling H5FD_* functions instead of H5F_low_* functions and by passing file access and data transfer properties by object ID instead of pointer. Changed H5D_transfer_t to H5FD_mpio_xfer_t since the COLLECTIVE vs. INDEPENDENT transfer mode is specific to the MPIO file driver. Moved MPIO-specific stuff into the MPIO driver. ./src/H5B.c ./src/H5D.c ./src/H5Fprivate.h The H5F_mpio_* private functions were renamed and placed in the H5FDmpio driver except those which appeared in H5Smpio.c. ./src/H5E.c ./src/H5Epublic.h Added major error number H5E_VFL for virtual file layer related errors. ./src/H5F.c ./src/H5Fprivate.h Changed the logic that controls whether the boot block is written. Instead of assuming that the first call to write the boot block is only to allocate space, I've added a function argument which makes this explicit. Changed the way files are compared so that a driver-defined comparison function can be called. Files which belong to different drivers are always considered different. Removed H5F_driver_t since file drivers are now identified by object ID instead of a special non-user-extendible datatype. Removed all the hard-coded low-level file properties which have been replaced by the various file drivers. ./src/H5I.c ./src/H5Iprivate.h Added the H5I_inc_ref() which was removed a few months ago since we finally have a use for it. ./src/H5Ipublic.h Added the H5I_VFL object ID type to identify file drivers in the virtual file layer. ./src/H5MF.c ./src/H5MFprivate.h Moved all the allocation/deallocation code into the virtual file layer which allows file drivers to override much of it. ./src/H5P.c ./src/H5Ppublic.h Moved file driver-specific code into the various file driver files. The H5Pcopy() and H5Pclose() functions make calls into the virtual file driver to manage the memory for driver-specific file access and data transfer properties. ./src/H5private.h ./src/H5public.h The `haddr_t' type is now public. ./test/tfile.c Added a few more comments.
1999-08-11 04:21:32 +08:00
/*
* File drivers
*/
#if defined VERSION13
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
#include <H5FDsec2.h>
#include <H5FDmulti.h>
[svn-r1568] Changes since 19990730 ---------------------- This extensive change is the virtual file layer implementation. I've ported and tested the sec2, family, and core drivers and only ported the mpio driver (Albert will test it). So if you need MPIO I would recommend sticking with the previous version for a while. You will get a few compile warnings about split and stdio drivers not being implemented and possibly tracing information not inserted in some of the drivers. You can safely ignore them but I plan to fix them. I'm still working on the split driver because I just realized that it needs a part of the VFL that isn't written yet. Documentation is being updated also because there were some minor changes (mostly just name changes). It should be available on my web site later this week. ./MANIFEST ./src/Makefile.in ./src/hdf5.h ./src/H5Flow.c [REMOVED] ./src/H5Fstdio.c [REMOVED] ./src/H5Fsec2.c [REMOVED] ./src/H5Fsplit.c [REMOVED] ./src/H5Fmpio.c [REMOVED] ./src/H5Ffamily.c [REMOVED] ./src/H5Fcore.c [REMOVED] ./src/H5MFpublic.h [REMOVED] ./src/H5FD.c [NEW] ./src/H5FDcore.c [NEW] ./src/H5FDcore.h [NEW] ./src/H5FDfamily.c [NEW] ./src/H5FDfamily.h [NEW] ./src/H5FDmpio.c [NEW] ./src/H5FDmpio.h [NEW] ./src/H5FDprivate.h [NEW] ./src/H5FDpublic.h [NEW] ./src/H5FDsec2.c [NEW] ./src/H5FDsec2.h [NEW] Removed/added files for virtual file layer. ./bin/trace ./src/H5.c Removed unused public datatypes and added new VFL public datatypes. Changed an error message. ./config/BlankForm ./config/dec-flags ./config/gnu-flags ./config/hpux10.20 ./config/hpux9.03 ./config/irix5.x ./config/irix6.x ./config/solaris2.x ./config/unicosmk Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the configuration since they're no longer applicable. The default file driver is always the sec2 driver and it always optimizes calls to lseek() or lseek64(). ./config/depend.in C preprocessor errors generated during automatic dependency building are sent to /dev/null to prevent them from appearing twice in the make output. ./src/H5AC.c ./src/H5B.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Oshared.c ./src/H5T.c ./src/H5detect.c ./test/ohdr.c Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent with the `haddr_t' datatype which is now a public type. ./src/H5D.c ./src/H5P.c ./src/H5Ppublic.h ./src/H5Tconv.c ./test/cmpd_dset.c ./test/dsets.c ./test/overhead.c ./test/tselect.c ./test/tvltypes.c The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER because the properties apply to all types of I/O operations, not just datasets. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5Gpkg.h ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./test/big.c ./test/h5test.c ./test/istore.c ./testpar/t_dset.c ./testpar/t_file.c ./tools/h5debug.c ./tools/h5ls.c Modified to work with the virtual file layer by calling H5FD_* functions instead of H5F_low_* functions and by passing file access and data transfer properties by object ID instead of pointer. Changed H5D_transfer_t to H5FD_mpio_xfer_t since the COLLECTIVE vs. INDEPENDENT transfer mode is specific to the MPIO file driver. Moved MPIO-specific stuff into the MPIO driver. ./src/H5B.c ./src/H5D.c ./src/H5Fprivate.h The H5F_mpio_* private functions were renamed and placed in the H5FDmpio driver except those which appeared in H5Smpio.c. ./src/H5E.c ./src/H5Epublic.h Added major error number H5E_VFL for virtual file layer related errors. ./src/H5F.c ./src/H5Fprivate.h Changed the logic that controls whether the boot block is written. Instead of assuming that the first call to write the boot block is only to allocate space, I've added a function argument which makes this explicit. Changed the way files are compared so that a driver-defined comparison function can be called. Files which belong to different drivers are always considered different. Removed H5F_driver_t since file drivers are now identified by object ID instead of a special non-user-extendible datatype. Removed all the hard-coded low-level file properties which have been replaced by the various file drivers. ./src/H5I.c ./src/H5Iprivate.h Added the H5I_inc_ref() which was removed a few months ago since we finally have a use for it. ./src/H5Ipublic.h Added the H5I_VFL object ID type to identify file drivers in the virtual file layer. ./src/H5MF.c ./src/H5MFprivate.h Moved all the allocation/deallocation code into the virtual file layer which allows file drivers to override much of it. ./src/H5P.c ./src/H5Ppublic.h Moved file driver-specific code into the various file driver files. The H5Pcopy() and H5Pclose() functions make calls into the virtual file driver to manage the memory for driver-specific file access and data transfer properties. ./src/H5private.h ./src/H5public.h The `haddr_t' type is now public. ./test/tfile.c Added a few more comments.
1999-08-11 04:21:32 +08:00
#include <H5FDfamily.h>
#elif defined VERSION12
#include <H5Fpublic.h>
#endif
[svn-r1568] Changes since 19990730 ---------------------- This extensive change is the virtual file layer implementation. I've ported and tested the sec2, family, and core drivers and only ported the mpio driver (Albert will test it). So if you need MPIO I would recommend sticking with the previous version for a while. You will get a few compile warnings about split and stdio drivers not being implemented and possibly tracing information not inserted in some of the drivers. You can safely ignore them but I plan to fix them. I'm still working on the split driver because I just realized that it needs a part of the VFL that isn't written yet. Documentation is being updated also because there were some minor changes (mostly just name changes). It should be available on my web site later this week. ./MANIFEST ./src/Makefile.in ./src/hdf5.h ./src/H5Flow.c [REMOVED] ./src/H5Fstdio.c [REMOVED] ./src/H5Fsec2.c [REMOVED] ./src/H5Fsplit.c [REMOVED] ./src/H5Fmpio.c [REMOVED] ./src/H5Ffamily.c [REMOVED] ./src/H5Fcore.c [REMOVED] ./src/H5MFpublic.h [REMOVED] ./src/H5FD.c [NEW] ./src/H5FDcore.c [NEW] ./src/H5FDcore.h [NEW] ./src/H5FDfamily.c [NEW] ./src/H5FDfamily.h [NEW] ./src/H5FDmpio.c [NEW] ./src/H5FDmpio.h [NEW] ./src/H5FDprivate.h [NEW] ./src/H5FDpublic.h [NEW] ./src/H5FDsec2.c [NEW] ./src/H5FDsec2.h [NEW] Removed/added files for virtual file layer. ./bin/trace ./src/H5.c Removed unused public datatypes and added new VFL public datatypes. Changed an error message. ./config/BlankForm ./config/dec-flags ./config/gnu-flags ./config/hpux10.20 ./config/hpux9.03 ./config/irix5.x ./config/irix6.x ./config/solaris2.x ./config/unicosmk Removed the H5F_OPT_SEEK and H5F_LOW_DFLT constants from the configuration since they're no longer applicable. The default file driver is always the sec2 driver and it always optimizes calls to lseek() or lseek64(). ./config/depend.in C preprocessor errors generated during automatic dependency building are sent to /dev/null to prevent them from appearing twice in the make output. ./src/H5AC.c ./src/H5B.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Oshared.c ./src/H5T.c ./src/H5detect.c ./test/ohdr.c Changed H5F_ADDR_UNDEF to HADDR_UNDEF to be more consistent with the `haddr_t' datatype which is now a public type. ./src/H5D.c ./src/H5P.c ./src/H5Ppublic.h ./src/H5Tconv.c ./test/cmpd_dset.c ./test/dsets.c ./test/overhead.c ./test/tselect.c ./test/tvltypes.c The H5P_DATASET_XFER constant was changed to H5P_DATA_XFER because the properties apply to all types of I/O operations, not just datasets. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5Gpkg.h ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./test/big.c ./test/h5test.c ./test/istore.c ./testpar/t_dset.c ./testpar/t_file.c ./tools/h5debug.c ./tools/h5ls.c Modified to work with the virtual file layer by calling H5FD_* functions instead of H5F_low_* functions and by passing file access and data transfer properties by object ID instead of pointer. Changed H5D_transfer_t to H5FD_mpio_xfer_t since the COLLECTIVE vs. INDEPENDENT transfer mode is specific to the MPIO file driver. Moved MPIO-specific stuff into the MPIO driver. ./src/H5B.c ./src/H5D.c ./src/H5Fprivate.h The H5F_mpio_* private functions were renamed and placed in the H5FDmpio driver except those which appeared in H5Smpio.c. ./src/H5E.c ./src/H5Epublic.h Added major error number H5E_VFL for virtual file layer related errors. ./src/H5F.c ./src/H5Fprivate.h Changed the logic that controls whether the boot block is written. Instead of assuming that the first call to write the boot block is only to allocate space, I've added a function argument which makes this explicit. Changed the way files are compared so that a driver-defined comparison function can be called. Files which belong to different drivers are always considered different. Removed H5F_driver_t since file drivers are now identified by object ID instead of a special non-user-extendible datatype. Removed all the hard-coded low-level file properties which have been replaced by the various file drivers. ./src/H5I.c ./src/H5Iprivate.h Added the H5I_inc_ref() which was removed a few months ago since we finally have a use for it. ./src/H5Ipublic.h Added the H5I_VFL object ID type to identify file drivers in the virtual file layer. ./src/H5MF.c ./src/H5MFprivate.h Moved all the allocation/deallocation code into the virtual file layer which allows file drivers to override much of it. ./src/H5P.c ./src/H5Ppublic.h Moved file driver-specific code into the various file driver files. The H5Pcopy() and H5Pclose() functions make calls into the virtual file driver to manage the memory for driver-specific file access and data transfer properties. ./src/H5private.h ./src/H5public.h The `haddr_t' type is now public. ./test/tfile.c Added a few more comments.
1999-08-11 04:21:32 +08:00
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
/*
* If defined then include the file name as part of the object name when
* printing full object names. Otherwise leave the file name off.
*/
#define H5LS_PREPEND_FILENAME
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
/* Command-line switches */
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
static int verbose_g = 0; /*lots of extra output */
static int width_g = 80; /*output width in characters */
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
static hbool_t address_g = FALSE; /*print raw data addresses */
static hbool_t data_g = FALSE; /*display dataset values? */
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
static hbool_t label_g = FALSE; /*label compound values? */
static hbool_t string_g = FALSE; /*print 1-byte numbers as ASCII? */
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
static hbool_t fullname_g = FALSE; /*print full path names */
static hbool_t recursive_g = FALSE; /*recursive descent listing */
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
static hbool_t grp_literal_g = FALSE; /*list group, not contents */
static hbool_t hexdump_g = FALSE; /*show data as raw hexadecimal */
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
static hbool_t show_errors_g = FALSE; /*print HDF5 error messages */
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
static hbool_t simple_output_g = FALSE; /*make output more machine-readable */
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/* Info to pass to the iteration functions */
typedef struct iter_t {
const char *container; /*full name of the container object */
} iter_t;
/* Table containing object id and object name */
static struct {
int nalloc; /*number of slots allocated */
int nobjs; /*number of objects */
struct {
unsigned long id[2]; /*object number */
char *name; /*full object name */
} *obj;
} idtab_g;
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
/* Information about how to display each type of object */
static struct dispatch_t {
const char *name;
hid_t (*open)(hid_t loc, const char *name);
herr_t (*close)(hid_t obj);
herr_t (*list1)(hid_t obj);
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
herr_t (*list2)(hid_t obj, const char *name);
} dispatch_g[H5G_NTYPES];
#define DISPATCH(TYPE,NAME,OPEN,CLOSE,LIST1,LIST2) { \
dispatch_g[TYPE].name = (NAME); \
dispatch_g[TYPE].open = (OPEN); \
dispatch_g[TYPE].close = (CLOSE); \
dispatch_g[TYPE].list1 = (LIST1); \
dispatch_g[TYPE].list2 = (LIST2); \
}
static herr_t list (hid_t group, const char *name, void *cd);
static void display_type(hid_t type, int ind);
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
static char *fix_name(const char *path, const char *base);
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
/*-------------------------------------------------------------------------
* Function: usage
*
* Purpose: Prints a usage message on stderr and then returns.
*
* Return: void
*
* Programmer: Robb Matzke
* Thursday, July 16, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void
usage (const char *progname)
{
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
fprintf(stderr, "\
usage: %s [OPTIONS] [OBJECTS...]\n\
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
OPTIONS\n\
-h, -?, --help Print a usage message and exit\n\
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
-a, --address Print addresses for raw data\n\
-d, --data Print the values of datasets\n\
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
-e, --errors Show all HDF5 error reporting\n\
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
-f, --full Print full path names instead of base names\n\
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
-g, --group Show information about a group, not its contents\n\
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
-l, --label Label members of compound datasets\n\
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
-r, --recursive List all groups recursively, avoiding cycles\n\
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
-s, --string Print 1-byte integer datasets as ASCII\n\
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
-S, --simple Use a machine-readable output format\n\
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
-wN, --width=N Set the number of columns of output\n\
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
-v, --verbose Generate more verbose output\n\
-V, --version Print version number and exit\n\
-x, --hexdump Show raw data in hexadecimal format\n\
\n\
OBJECTS\n\
Each object consists of an HDF5 file name optionally followed by a\n\
slash and an object name within the file (if no object is specified\n\
within the file then the contents of the root group are dispalyed).\n\
The file name may include a printf(3C) integer format such as\n\
\"%%05d\" to open a file family.\n",
progname);
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/*-------------------------------------------------------------------------
* Function: sym_insert
*
* Purpose: Add a symbol to the table.
*
* Return: void
*
* Programmer: Robb Matzke
* Thursday, January 21, 1999
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void
sym_insert(H5G_stat_t *sb, const char *name)
{
int n;
/*
* Don't add it if the link count is 1 because such an object can only
* have one name.
*/
if (sb->nlink<2) return;
/* Extend the table */
if (idtab_g.nobjs>=idtab_g.nalloc) {
idtab_g.nalloc = MAX(256, 2*idtab_g.nalloc);
idtab_g.obj = realloc(idtab_g.obj,
idtab_g.nalloc*sizeof(idtab_g.obj[0]));
}
/* Insert the entry */
n = idtab_g.nobjs++;
idtab_g.obj[n].id[0] = sb->objno[0];
idtab_g.obj[n].id[1] = sb->objno[1];
idtab_g.obj[n].name = malloc(strlen(name)+1);
strcpy(idtab_g.obj[n].name, name);
}
/*-------------------------------------------------------------------------
* Function: sym_lookup
*
* Purpose: Find another name for the specified object.
*
* Return: Success: Ptr to another name.
*
* Failure: NULL
*
* Programmer: Robb Matzke
* Thursday, January 21, 1999
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static char *
sym_lookup(H5G_stat_t *sb)
{
int n;
if (sb->nlink<2) return NULL; /*only one name possible*/
for (n=0; n<idtab_g.nobjs; n++) {
if (idtab_g.obj[n].id[0]==sb->objno[0] &&
idtab_g.obj[n].id[1]==sb->objno[1]) {
return idtab_g.obj[n].name;
}
}
return NULL;
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/*-------------------------------------------------------------------------
* Function: display_string
*
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
* Purpose: Print a string value by escaping unusual characters. If
* STREAM is null then we only count how large the output would
* be.
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
*
* Return: Number of characters printed.
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static int
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
display_string(FILE *stream, const char *s, hbool_t escape_spaces)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
int nprint=0;
for (/*void*/; s && *s; s++) {
switch (*s) {
case '"':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\\"");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\\':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\\\");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\b':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\b");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\f':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\f");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\n':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\n");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\r':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\r");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
case '\t':
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) fprintf(stream, "\\t");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 2;
break;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
case ' ':
if (escape_spaces) {
if (stream) fprintf(stream, "\\ ");
nprint += 2;
} else {
if (stream) fprintf(stream, " ");
nprint++;
}
break;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
default:
if (isprint((int)*s)) {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) putc(*s, stream);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint++;
} else {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (stream) {
fprintf(stream, "\\%03o", *((const unsigned char*)s));
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
nprint += 4;
}
break;
}
}
return nprint;
}
/*-------------------------------------------------------------------------
* Function: display_native_type
*
* Purpose: Prints the name of a native C data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed.
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* Robb Matzke, 1999-06-11
* Added the C9x types, but we still prefer to display the types
* from the C language itself (like `int' vs. `int32_t').
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_native_type(hid_t type, int UNUSED ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
if (H5Tequal(type, H5T_NATIVE_SCHAR)) {
printf("native signed char");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else if (H5Tequal(type, H5T_NATIVE_UCHAR)) {
printf("native unsigned char");
} else if (H5Tequal(type, H5T_NATIVE_INT)) {
printf("native int");
} else if (H5Tequal(type, H5T_NATIVE_UINT)) {
printf("native unsigned int");
} else if (H5Tequal(type, H5T_NATIVE_SHORT)) {
printf("native short");
} else if (H5Tequal(type, H5T_NATIVE_USHORT)) {
printf("native unsigned short");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else if (H5Tequal(type, H5T_NATIVE_LONG)) {
printf("native long");
} else if (H5Tequal(type, H5T_NATIVE_ULONG)) {
printf("native unsigned long");
} else if (H5Tequal(type, H5T_NATIVE_LLONG)) {
printf("native long long");
} else if (H5Tequal(type, H5T_NATIVE_ULLONG)) {
printf("native unsigned long long");
} else if (H5Tequal(type, H5T_NATIVE_FLOAT)) {
printf("native float");
} else if (H5Tequal(type, H5T_NATIVE_DOUBLE)) {
printf("native double");
} else if (H5Tequal(type, H5T_NATIVE_LDOUBLE)) {
printf("native long double");
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
} else if (H5Tequal(type, H5T_NATIVE_INT8)) {
printf("native int8_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT8)) {
printf("native uint8_t");
} else if (H5Tequal(type, H5T_NATIVE_INT16)) {
printf("native int16_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT16)) {
printf("native uint16_t");
} else if (H5Tequal(type, H5T_NATIVE_INT32)) {
printf("native int32_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT32)) {
printf("native uint32_t");
} else if (H5Tequal(type, H5T_NATIVE_INT64)) {
printf("native int64_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT64)) {
printf("native uint64_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_LEAST8)) {
printf("native int_least8_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST8)) {
printf("native uint_least8_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_LEAST16)) {
printf("native int_least16_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST16)) {
printf("native uint_least16_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_LEAST32)) {
printf("native int_least32_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST32)) {
printf("native uint_least32_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_LEAST64)) {
printf("native int_least64_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST64)) {
printf("native uint_least64_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_FAST8)) {
printf("native int_fast8_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_FAST8)) {
printf("native uint_fast8_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_FAST16)) {
printf("native int_fast16_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_FAST16)) {
printf("native uint_fast16_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_FAST32)) {
printf("native int_fast32_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_FAST32)) {
printf("native uint_fast32_t");
} else if (H5Tequal(type, H5T_NATIVE_INT_FAST64)) {
printf("native int_fast64_t");
} else if (H5Tequal(type, H5T_NATIVE_UINT_FAST64)) {
printf("native uint_fast64_t");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else if (H5Tequal(type, H5T_NATIVE_B8)) {
printf("native 8-bit field");
} else if (H5Tequal(type, H5T_NATIVE_B16)) {
printf("native 16-bit field");
} else if (H5Tequal(type, H5T_NATIVE_B32)) {
printf("native 32-bit field");
} else if (H5Tequal(type, H5T_NATIVE_B64)) {
printf("native 64-bit field");
} else if (H5Tequal(type, H5T_NATIVE_HSIZE)) {
printf("native hsize_t");
} else if (H5Tequal(type, H5T_NATIVE_HSSIZE)) {
printf("native hssize_t");
} else if (H5Tequal(type, H5T_NATIVE_HERR)) {
printf("native herr_t");
} else if (H5Tequal(type, H5T_NATIVE_HBOOL)) {
printf("native hbool_t");
} else {
return FALSE;
}
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_ieee_type
*
* Purpose: Print the name of an IEEE floating-point data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_ieee_type(hid_t type, int UNUSED ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
if (H5Tequal(type, H5T_IEEE_F32BE)) {
printf("IEEE 32-bit big-endian float");
} else if (H5Tequal(type, H5T_IEEE_F32LE)) {
printf("IEEE 32-bit little-endian float");
} else if (H5Tequal(type, H5T_IEEE_F64BE)) {
printf("IEEE 64-bit big-endian float");
} else if (H5Tequal(type, H5T_IEEE_F64LE)) {
printf("IEEE 64-bit little-endian float");
} else {
return FALSE;
}
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_precision
*
* Purpose: Prints information on the next line about precision and
* padding if the precision is less than the total data type
* size.
*
* Return: void
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void
display_precision(hid_t type, int ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
size_t prec; /*precision */
H5T_pad_t plsb, pmsb; /*lsb and msb padding */
const char *plsb_s=NULL; /*lsb padding string */
const char *pmsb_s=NULL; /*msb padding string */
size_t nbits; /*number of bits */
/*
* If the precision is less than the total size then show the precision
* and offset on the following line. Also display the padding
* information.
*/
if (8*H5Tget_size(type)!=(prec=H5Tget_precision(type))) {
printf("\n%*s(%lu bit%s of precision beginning at bit %lu)",
ind, "", (unsigned long)prec, 1==prec?"":"s",
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
(unsigned long)H5Tget_offset(type));
H5Tget_pad(type, &plsb, &pmsb);
if (H5Tget_offset(type)>0) {
switch (plsb) {
case H5T_PAD_ZERO:
plsb_s = "zero";
break;
case H5T_PAD_ONE:
plsb_s = "one";
break;
case H5T_PAD_BACKGROUND:
plsb_s = "bkg";
break;
case H5T_PAD_ERROR:
case H5T_NPAD:
plsb_s = "unknown";
break;
}
}
if (H5Tget_offset(type)+prec<8*H5Tget_size(type)) {
switch (pmsb) {
case H5T_PAD_ZERO:
pmsb_s = "zero";
break;
case H5T_PAD_ONE:
pmsb_s = "one";
break;
case H5T_PAD_BACKGROUND:
pmsb_s = "bkg";
break;
case H5T_PAD_ERROR:
case H5T_NPAD:
pmsb_s = "unknown";
break;
}
}
if (plsb_s || pmsb_s) {
printf("\n%*s(", ind, "");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (plsb_s) {
nbits = H5Tget_offset(type);
printf("%lu %s bit%s at bit 0",
(unsigned long)nbits, plsb_s, 1==nbits?"":"s");
}
if (plsb_s && pmsb_s) printf(", ");
if (pmsb_s) {
nbits = 8*H5Tget_size(type)-(H5Tget_offset(type)+prec);
printf("%lu %s bit%s at bit %lu",
(unsigned long)nbits, pmsb_s, 1==nbits?"":"s",
(unsigned long)(8*H5Tget_size(type)-nbits));
}
printf(")");
}
}
}
/*-------------------------------------------------------------------------
* Function: display_int_type
*
* Purpose: Print the name of an integer data type. Common information
* like number of bits, byte order, and sign scheme appear on
* the first line. Additional information might appear in
* parentheses on the following lines.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_int_type(hid_t type, int ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
H5T_order_t order; /*byte order value */
const char *order_s=NULL; /*byte order string */
H5T_sign_t sign; /*sign scheme value */
const char *sign_s=NULL; /*sign scheme string */
if (H5T_INTEGER!=H5Tget_class(type)) return FALSE;
/* Byte order */
if (H5Tget_size(type)>1) {
order = H5Tget_order(type);
if (H5T_ORDER_LE==order) {
order_s = " little-endian";
} else if (H5T_ORDER_BE==order) {
order_s = " big-endian";
} else if (H5T_ORDER_VAX==order) {
order_s = " mixed-endian";
} else {
order_s = " unknown-byte-order";
}
} else {
order_s = "";
}
/* Sign */
if ((sign=H5Tget_sign(type))>=0) {
if (H5T_SGN_NONE==sign) {
sign_s = " unsigned";
} else if (H5T_SGN_2==sign) {
sign_s = "";
} else {
sign_s = " unknown-sign";
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else {
sign_s = " unknown-sign";
}
/*
* Print size, order, and sign on first line, precision and padding
* information on the subsequent lines
*/
printf("%lu-bit%s%s integer",
(unsigned long)(8*H5Tget_size(type)), order_s, sign_s);
display_precision(type, ind);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_float_type
*
* Purpose: Print info about a floating point data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_float_type(hid_t type, int ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
H5T_order_t order; /*byte order value */
const char *order_s=NULL; /*byte order string */
size_t spos; /*sign bit position */
size_t esize, epos; /*exponent size and position */
size_t msize, mpos; /*significand size and position */
size_t ebias; /*exponent bias */
H5T_norm_t norm; /*significand normalization */
const char *norm_s=NULL; /*normalization string */
H5T_pad_t pad; /*internal padding value */
const char *pad_s=NULL; /*internal padding string */
if (H5T_FLOAT!=H5Tget_class(type)) return FALSE;
/* Byte order */
if (H5Tget_size(type)>1) {
order = H5Tget_order(type);
if (H5T_ORDER_LE==order) {
order_s = " little-endian";
} else if (H5T_ORDER_BE==order) {
order_s = " big-endian";
} else if (H5T_ORDER_VAX==order) {
order_s = " mixed-endian";
} else {
order_s = " unknown-byte-order";
}
} else {
order_s = "";
}
/*
* Print size and byte order on first line, precision and padding on
* subsequent lines.
*/
printf("%lu-bit%s floating-point",
(unsigned long)(8*H5Tget_size(type)), order_s);
display_precision(type, ind);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Print sizes, locations, and other information about each field */
H5Tget_fields (type, &spos, &epos, &esize, &mpos, &msize);
ebias = H5Tget_ebias(type);
norm = H5Tget_norm(type);
switch (norm) {
case H5T_NORM_IMPLIED:
norm_s = ", msb implied";
break;
case H5T_NORM_MSBSET:
norm_s = ", msb always set";
break;
case H5T_NORM_NONE:
norm_s = ", no normalization";
break;
case H5T_NORM_ERROR:
norm_s = ", unknown normalization";
break;
}
printf("\n%*s(significant for %lu bit%s at bit %lu%s)", ind, "",
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
(unsigned long)msize, 1==msize?"":"s", (unsigned long)mpos,
norm_s);
printf("\n%*s(exponent for %lu bit%s at bit %lu, bias is 0x%lx)",
ind, "", (unsigned long)esize, 1==esize?"":"s",
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
(unsigned long)epos, (unsigned long)ebias);
printf("\n%*s(sign bit at %lu)", ind, "", (unsigned long)spos);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Display internal padding */
if (1+esize+msize<H5Tget_precision(type)) {
pad = H5Tget_inpad(type);
switch (pad) {
case H5T_PAD_ZERO:
pad_s = "zero";
break;
case H5T_PAD_ONE:
pad_s = "one";
break;
case H5T_PAD_BACKGROUND:
pad_s = "bkg";
break;
case H5T_PAD_ERROR:
case H5T_NPAD:
pad_s = "unknown";
break;
}
printf("\n%*s(internal padding bits are %s)", ind, "", pad_s);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_cmpd_type
*
* Purpose: Print info about a compound data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_cmpd_type(hid_t type, int ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
char *name=NULL; /*member name */
int ndims; /*dimensionality */
size_t dims[8]; /*dimensions */
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
size_t size; /*total size of type in bytes */
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
int perm[8]; /*index permutation */
hid_t subtype; /*member data type */
int i, j, n; /*miscellaneous counters */
if (H5T_COMPOUND!=H5Tget_class(type)) return FALSE;
printf("struct {");
for (i=0; i<H5Tget_nmembers(type); i++) {
/* Name and offset */
name = H5Tget_member_name(type, i);
printf("\n%*s\"", ind+4, "");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
n = display_string(stdout, name, FALSE);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
printf("\"%*s +%-4lu ", MAX(0, 16-n), "",
(unsigned long)H5Tget_member_offset(type, i));
free(name);
/* Dimensions and permutation */
ndims = H5Tget_member_dims(type, i, dims, perm);
if (ndims>0) {
printf("[");
for (j=0; j<ndims; j++) {
printf("%s%lu", j?",":"", (unsigned long)(dims[j]));
}
printf("]");
for (j=0; j<ndims; j++) {
if (perm[j]!=j) break;
}
if (j<ndims) {
printf("x[");
for (j=0; j<ndims; j++) {
printf("%s%d", j?",":"", perm[j]);
}
printf("]");
}
printf(" ");
}
/* Data type */
subtype = H5Tget_member_type(type, i);
display_type(subtype, ind+4);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
H5Tclose(subtype);
}
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
size = H5Tget_size(type);
printf("\n%*s} %lu byte%s",
ind, "", (unsigned long)size, 1==size?"":"s");
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_enum_type
*
* Purpose: Print info about an enumeration data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Wednesday, December 23, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_enum_type(hid_t type, int ind)
{
char **name=NULL; /*member names */
unsigned char *value=NULL; /*value array */
int nmembs; /*number of members */
int nchars; /*number of output characters */
hid_t super; /*enum base integer type */
hid_t native=-1; /*native integer data type */
size_t dst_size; /*destination value type size */
int i; /*miscellaneous counters */
size_t j;
if (H5T_ENUM!=H5Tget_class(type)) return FALSE;
nmembs = H5Tget_nmembers(type);
super = H5Tget_super(type);
printf("enum ");
display_type(super, ind+4);
printf(" {");
/*
* Determine what data type to use for the native values. To simplify
* things we entertain three possibilities:
* 1. long_long -- the largest native signed integer
* 2. unsigned long_long -- the largest native unsigned integer
* 3. raw format
*/
if (H5Tget_size(type)<=sizeof(long_long)) {
dst_size = sizeof(long_long);
if (H5T_SGN_NONE==H5Tget_sign(type)) {
native = H5T_NATIVE_ULLONG;
} else {
native = H5T_NATIVE_LLONG;
}
} else {
dst_size = H5Tget_size(type);
}
/* Get the names and raw values of all members */
name = calloc(nmembs, sizeof(char*));
value = calloc(nmembs, MAX(H5Tget_size(type), dst_size));
for (i=0; i<nmembs; i++) {
name[i] = H5Tget_member_name(type, i);
H5Tget_member_value(type, i, value+i*H5Tget_size(type));
}
/* Convert values to native data type */
if (native>0) H5Tconvert(super, native, nmembs, value, NULL, H5P_DEFAULT);
/* Sort members by increasing value */
/*not implemented yet*/
/* Print members */
for (i=0; i<nmembs; i++) {
printf("\n%*s", ind+4, "");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
nchars = display_string(stdout, name[i], TRUE);
printf("%*s = ", MAX(0, 16-nchars), "");
if (native<0) {
printf("0x");
for (j=0; j<dst_size; j++) {
printf("%02x", value[i*dst_size+j]);
}
} else if (H5T_SGN_NONE==H5Tget_sign(native)) {
printf("%"PRINTF_LL_WIDTH"u",
*((unsigned long_long*)((void*)(value+i*dst_size))));
} else {
printf("%"PRINTF_LL_WIDTH"d",
*((long_long*)((void*)(value+i*dst_size))));
}
}
/* Release resources */
for (i=0; i<nmembs; i++) free(name[i]);
free(name);
free(value);
H5Tclose(super);
if (0==nmembs) printf("\n%*s <empty>", ind+4, "");
printf("\n%*s}", ind, "");
return TRUE;
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/*-------------------------------------------------------------------------
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
* Function: display_string_type
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
*
* Purpose: Print information about a string data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_string_type(hid_t type, int UNUSED ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
H5T_str_t pad;
const char *pad_s=NULL;
H5T_cset_t cset;
const char *cset_s=NULL;
if (H5T_STRING!=H5Tget_class(type)) return FALSE;
/* Padding */
pad = H5Tget_strpad(type);
switch (pad) {
case H5T_STR_NULLTERM:
pad_s = "null-terminated";
break;
case H5T_STR_NULLPAD:
pad_s = "null-padded";
break;
case H5T_STR_SPACEPAD:
pad_s = "space-padded";
break;
case H5T_STR_RESERVED_3:
case H5T_STR_RESERVED_4:
case H5T_STR_RESERVED_5:
case H5T_STR_RESERVED_6:
case H5T_STR_RESERVED_7:
case H5T_STR_RESERVED_8:
case H5T_STR_RESERVED_9:
case H5T_STR_RESERVED_10:
case H5T_STR_RESERVED_11:
case H5T_STR_RESERVED_12:
case H5T_STR_RESERVED_13:
case H5T_STR_RESERVED_14:
case H5T_STR_RESERVED_15:
case H5T_STR_ERROR:
pad_s = "unknown-format";
break;
}
/* Character set */
cset = H5Tget_cset(type);
switch (cset) {
case H5T_CSET_ASCII:
cset_s = "ASCII";
break;
case H5T_CSET_RESERVED_1:
case H5T_CSET_RESERVED_2:
case H5T_CSET_RESERVED_3:
case H5T_CSET_RESERVED_4:
case H5T_CSET_RESERVED_5:
case H5T_CSET_RESERVED_6:
case H5T_CSET_RESERVED_7:
case H5T_CSET_RESERVED_8:
case H5T_CSET_RESERVED_9:
case H5T_CSET_RESERVED_10:
case H5T_CSET_RESERVED_11:
case H5T_CSET_RESERVED_12:
case H5T_CSET_RESERVED_13:
case H5T_CSET_RESERVED_14:
case H5T_CSET_RESERVED_15:
case H5T_CSET_ERROR:
cset_s = "unknown-character-set";
break;
}
printf("%lu-byte %s %s string",
(unsigned long)H5Tget_size(type), pad_s, cset_s);
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_reference_type
*
* Purpose: Prints information about a reference data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
* Robb Matzke, 1999-06-04
* Knows about object and dataset region references.
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_reference_type(hid_t type, int UNUSED ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
if (H5T_REFERENCE!=H5Tget_class(type)) return FALSE;
if (H5Tequal(type, H5T_STD_REF_OBJ)) {
printf("object reference");
} else if (H5Tequal(type, H5T_STD_REF_DSETREG)) {
printf("dataset region reference");
} else {
printf("%lu-byte unknown reference",
(unsigned long)H5Tget_size(type));
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
return TRUE;
}
/*-------------------------------------------------------------------------
* Function: display_opaque_type
*
* Purpose: Prints information about an opaque data type.
*
* Return: Success: TRUE
*
* Failure: FALSE, nothing printed
*
* Programmer: Robb Matzke
* Monday, June 7, 1999
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hbool_t
display_opaque_type(hid_t type, int ind)
{
char *tag;
size_t size;
if (H5T_OPAQUE!=H5Tget_class(type)) return FALSE;
size = H5Tget_size(type);
printf("%lu-byte opaque type", (unsigned long)size);
if ((tag=H5Tget_tag(type))) {
printf("\n%*s(tag = \"", ind, "");
display_string(stdout, tag, FALSE);
printf("\")");
free(tag);
}
return TRUE;
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/*-------------------------------------------------------------------------
* Function: display_type
*
* Purpose: Prints a data type definition. The definition is printed
* without any leading space or trailing line-feed (although
* there might be line-feeds inside the type definition). The
* first line is assumed to have IND characters before it on
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
* the same line (printed by the caller).
*
* Return: void
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* Robb Matzke, 1999-06-11
* Prints the OID of shared data types.
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
*
*-------------------------------------------------------------------------
*/
static void
display_type(hid_t type, int ind)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
H5T_class_t data_class = H5Tget_class(type);
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
H5G_stat_t sb;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Bad data type */
if (type<0) {
printf("<ERROR>");
return;
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
/* Shared? If so then print the type's OID */
if (H5Tcommitted(type)) {
if (H5Gget_objinfo(type, ".", FALSE, &sb)>=0) {
printf("shared-%lu:%lu:%lu:%lu ",
sb.fileno[1], sb.fileno[0],
sb.objno[1], sb.objno[0]);
} else {
printf("shared ");
}
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Print the type */
if (display_native_type(type, ind) ||
display_ieee_type(type, ind) ||
display_int_type(type, ind) ||
display_float_type(type, ind) ||
display_cmpd_type(type, ind) ||
display_enum_type(type, ind) ||
display_string_type(type, ind) ||
display_reference_type(type, ind) ||
display_opaque_type(type, ind)) {
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
return;
}
/* Unknown type */
printf("%lu-byte class-%u unknown",
(unsigned long)H5Tget_size(type),
(unsigned)data_class);
}
[svn-r526] Changes since 19980721 ---------------------- ./tools/h5ls.c If the dataset is of type H5T_NATIVE_CHAR then we print the value as a string. This is temporary -- I plan to add better control of this later but needed something now for debugging. ./src/H5Fistore.c Squashed a bug in the chunk caching code that caused the wrong chunk to be returned. ./bin/trace ./src/H5.c Added support for printing values of array arguments when the size of the array is supplied by some previous argument. You must declare the argument as an array in order for the automatic tracing stuff to work. For instance, the third argument of H5Pset_chunk() is an array whose size is determined by the second argument `ndims'. Here's how you should declare it: herr_t H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/]) The comment inside the `[]' is the name of some previous integer argument (int, unsigned, size_t, ssize_t, hsize_t, hssize_t). The trace output will look something like: H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22}) Changed tracing so that data types are printed out symbolically when possible. Changed tracing so data type initializations are not printed. This used to be confusing because lots of H5Tcopy() and H5Tregister...() calls showed up before the applications first explicit API call. ./src/H5Ipublic.h Changed the file atom group from zero to one so printing of atoms during tracing is more consistent -- they're all big numbers now. ./src/H5A.c ./src/H5E.c ./src/H5F.c ./src/H5G.c ./src/H5Sselect.c ./src/H5T.c ./src/H5TB.c ./src/H5Z.c Accidently modified these when working on the tracing, but nothing should have changed. ./src/H5P.c Changed the definition of H5Pset_chunk() for tracing. ./src/H5S.c ./src/H5Spublic.h Changed the definitions of H5Sset_extent_simple() and H5Screate_simple() for tracing. Changed the FUNC_ENTER() name for H5Screate_simple() so tracing shows the correct name.
1998-07-22 21:51:51 +08:00
/*-------------------------------------------------------------------------
* Function: dump_dataset_values
*
* Purpose: Prints all values of a dataset.
*
* Return: void
*
* Programmer: Robb Matzke
* Tuesday, July 21, 1998
*
* Modifications:
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
* Robb Matzke, 1999-09-27
* Understands the simple_output_g switch which causes data to
* be displayed in a more machine-readable format.
[svn-r526] Changes since 19980721 ---------------------- ./tools/h5ls.c If the dataset is of type H5T_NATIVE_CHAR then we print the value as a string. This is temporary -- I plan to add better control of this later but needed something now for debugging. ./src/H5Fistore.c Squashed a bug in the chunk caching code that caused the wrong chunk to be returned. ./bin/trace ./src/H5.c Added support for printing values of array arguments when the size of the array is supplied by some previous argument. You must declare the argument as an array in order for the automatic tracing stuff to work. For instance, the third argument of H5Pset_chunk() is an array whose size is determined by the second argument `ndims'. Here's how you should declare it: herr_t H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/]) The comment inside the `[]' is the name of some previous integer argument (int, unsigned, size_t, ssize_t, hsize_t, hssize_t). The trace output will look something like: H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22}) Changed tracing so that data types are printed out symbolically when possible. Changed tracing so data type initializations are not printed. This used to be confusing because lots of H5Tcopy() and H5Tregister...() calls showed up before the applications first explicit API call. ./src/H5Ipublic.h Changed the file atom group from zero to one so printing of atoms during tracing is more consistent -- they're all big numbers now. ./src/H5A.c ./src/H5E.c ./src/H5F.c ./src/H5G.c ./src/H5Sselect.c ./src/H5T.c ./src/H5TB.c ./src/H5Z.c Accidently modified these when working on the tracing, but nothing should have changed. ./src/H5P.c Changed the definition of H5Pset_chunk() for tracing. ./src/H5S.c ./src/H5Spublic.h Changed the definitions of H5Sset_extent_simple() and H5Screate_simple() for tracing. Changed the FUNC_ENTER() name for H5Screate_simple() so tracing shows the correct name.
1998-07-22 21:51:51 +08:00
*-------------------------------------------------------------------------
*/
static void
dump_dataset_values(hid_t dset)
{
hid_t f_type = H5Dget_type(dset);
size_t size = H5Tget_size(f_type);
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
h5dump_t info;
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
char string_prefix[64];
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
/* Set to all default values and then override */
memset(&info, 0, sizeof info);
[svn-r526] Changes since 19980721 ---------------------- ./tools/h5ls.c If the dataset is of type H5T_NATIVE_CHAR then we print the value as a string. This is temporary -- I plan to add better control of this later but needed something now for debugging. ./src/H5Fistore.c Squashed a bug in the chunk caching code that caused the wrong chunk to be returned. ./bin/trace ./src/H5.c Added support for printing values of array arguments when the size of the array is supplied by some previous argument. You must declare the argument as an array in order for the automatic tracing stuff to work. For instance, the third argument of H5Pset_chunk() is an array whose size is determined by the second argument `ndims'. Here's how you should declare it: herr_t H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/]) The comment inside the `[]' is the name of some previous integer argument (int, unsigned, size_t, ssize_t, hsize_t, hssize_t). The trace output will look something like: H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22}) Changed tracing so that data types are printed out symbolically when possible. Changed tracing so data type initializations are not printed. This used to be confusing because lots of H5Tcopy() and H5Tregister...() calls showed up before the applications first explicit API call. ./src/H5Ipublic.h Changed the file atom group from zero to one so printing of atoms during tracing is more consistent -- they're all big numbers now. ./src/H5A.c ./src/H5E.c ./src/H5F.c ./src/H5G.c ./src/H5Sselect.c ./src/H5T.c ./src/H5TB.c ./src/H5Z.c Accidently modified these when working on the tracing, but nothing should have changed. ./src/H5P.c Changed the definition of H5Pset_chunk() for tracing. ./src/H5S.c ./src/H5Spublic.h Changed the definitions of H5Sset_extent_simple() and H5Screate_simple() for tracing. Changed the FUNC_ENTER() name for H5Screate_simple() so tracing shows the correct name.
1998-07-22 21:51:51 +08:00
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
if (simple_output_g) {
info.idx_fmt = "";
info.line_ncols = 65535; /*something big*/
info.line_per_line = 1;
info.line_multi_new = 0;
info.line_pre = " ";
info.line_cont = " ";
info.arr_pre = "";
info.arr_suf = "";
info.arr_sep = " ";
info.cmpd_pre = "";
info.cmpd_suf = "";
info.cmpd_sep = " ";
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
if (label_g) info.cmpd_name = "%s=";
info.elmt_suf1 = " ";
info.str_locale = ESCAPE_HTML;
} else {
info.idx_fmt = "(%s)";
info.line_ncols = width_g;
info.line_multi_new = 1;
if (label_g) info.cmpd_name = "%s=";
info.line_pre = " %s ";
info.line_cont = " %s ";
info.str_repeat = 8;
}
info.dset_format = "DSET-%lu:%lu:%lu:%lu-";
info.dset_hidefileno = 0;
info.obj_format = "-%lu:%lu:%lu:%lu";
info.obj_hidefileno = 0;
info.dset_blockformat_pre = "%sBlk%lu: ";
info.dset_ptformat_pre = "%sPt%lu: ";
info.line_indent = "";
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
if (hexdump_g) {
/*
* Print all data in hexadecimal format if the `-x' or `--hexdump'
* command line switch was given.
*/
info.raw = TRUE;
} else if (string_g && 1==size && H5T_INTEGER==H5Tget_class(f_type)) {
/*
* Print 1-byte integer data as an ASCI character string instead of
* integers if the `-s' or `--string' command-line option was given.
*/
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
info.ascii = TRUE;
info.elmt_suf1 = "";
info.elmt_suf2 = "";
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
strcpy(string_prefix, info.line_pre);
strcat(string_prefix, "\"");
info.line_pre = string_prefix;
info.line_suf = "\"";
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
}
/*
* Print all the values.
*/
printf(" Data:\n");
if (h5dump_dset(stdout, &info, dset, -1, -1)<0) {
printf(" Unable to print data.\n");
}
H5Tclose(f_type);
[svn-r526] Changes since 19980721 ---------------------- ./tools/h5ls.c If the dataset is of type H5T_NATIVE_CHAR then we print the value as a string. This is temporary -- I plan to add better control of this later but needed something now for debugging. ./src/H5Fistore.c Squashed a bug in the chunk caching code that caused the wrong chunk to be returned. ./bin/trace ./src/H5.c Added support for printing values of array arguments when the size of the array is supplied by some previous argument. You must declare the argument as an array in order for the automatic tracing stuff to work. For instance, the third argument of H5Pset_chunk() is an array whose size is determined by the second argument `ndims'. Here's how you should declare it: herr_t H5Pset_chunk(hid_t plist_id, intn rank, hsize_t dims[/*rank*/]) The comment inside the `[]' is the name of some previous integer argument (int, unsigned, size_t, ssize_t, hsize_t, hssize_t). The trace output will look something like: H5Pset_chunk(plist=1234567, rank=2, dims=0x112233 {11, 22}) Changed tracing so that data types are printed out symbolically when possible. Changed tracing so data type initializations are not printed. This used to be confusing because lots of H5Tcopy() and H5Tregister...() calls showed up before the applications first explicit API call. ./src/H5Ipublic.h Changed the file atom group from zero to one so printing of atoms during tracing is more consistent -- they're all big numbers now. ./src/H5A.c ./src/H5E.c ./src/H5F.c ./src/H5G.c ./src/H5Sselect.c ./src/H5T.c ./src/H5TB.c ./src/H5Z.c Accidently modified these when working on the tracing, but nothing should have changed. ./src/H5P.c Changed the definition of H5Pset_chunk() for tracing. ./src/H5S.c ./src/H5Spublic.h Changed the definitions of H5Sset_extent_simple() and H5Screate_simple() for tracing. Changed the FUNC_ENTER() name for H5Screate_simple() so tracing shows the correct name.
1998-07-22 21:51:51 +08:00
}
/*-------------------------------------------------------------------------
* Function: list_attr
*
* Purpose: Prints information about attributes.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Friday, June 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
list_attr (hid_t obj, const char *attr_name, void UNUSED *op_data)
{
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
hid_t attr, space, type, p_type;
hsize_t size[64], nelmts=1;
int ndims, i, n;
size_t need;
void *buf;
h5dump_t info;
printf(" Attribute: ");
n = display_string(stdout, attr_name, TRUE);
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
printf("%*s", MAX(0, 9-n), "");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if ((attr = H5Aopen_name(obj, attr_name))) {
space = H5Aget_space(attr);
type = H5Aget_type(attr);
/* Data space */
ndims = H5Sget_simple_extent_dims(space, size, NULL);
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
if (0==ndims) {
puts(" scalar");
} else {
printf(" {");
for (i=0; i<ndims; i++) {
HDfprintf(stdout, "%s%Hu", i?", ":"", size[i]);
nelmts *= size[i];
}
puts("}");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
}
/* Data type */
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
printf(" Type: ");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
display_type(type, 15);
putchar('\n');
/* Data */
memset(&info, 0, sizeof info);
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
info.line_multi_new = 1;
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
if (nelmts<5) {
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
info.idx_fmt = "";
info.line_1st = " Data: ";
info.line_pre = " ";
info.line_cont = " ";
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
info.str_repeat = 8;
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
} else {
printf(" Data:\n");
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
info.idx_fmt = "(%s)";
info.line_pre = " %s ";
info.line_cont = " %s ";
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
info.str_repeat = 8;
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
info.line_ncols = width_g;
if (label_g) info.cmpd_name = "%s=";
if (string_g && 1==H5Tget_size(type) &&
H5T_INTEGER==H5Tget_class(type)) {
info.ascii = TRUE;
info.elmt_suf1 = "";
info.elmt_suf2 = "";
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
info.idx_fmt = "(%s)";
info.line_pre = " %s \"";
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
info.line_suf = "\"";
}
if (hexdump_g) {
p_type = H5Tcopy(type);
} else {
p_type = h5dump_fixtype(type);
}
if (p_type>=0) {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
need = nelmts * MAX(H5Tget_size(type), H5Tget_size(p_type));
buf = malloc(need);
assert(buf);
if (H5Aread(attr, p_type, buf)>=0) {
h5dump_mem(stdout, &info, p_type, space, buf,-1);
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
}
free(buf);
H5Tclose(p_type);
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
H5Sclose(space);
H5Tclose(type);
H5Aclose(attr);
} else {
putchar('\n');
}
return 0;
}
/*-------------------------------------------------------------------------
* Function: dataset_list1
*
* Purpose: List information about a dataset which should appear on the
* same line as the dataset name. This information will precede
* information which is applicable to all objects which will be
* printed by the caller.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, August 27, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
dataset_list1(hid_t dset)
{
hsize_t cur_size[64]; /*current dataset dimensions */
hsize_t max_size[64]; /*maximum dataset dimensions */
hid_t space; /*data space */
int ndims; /*dimensionality */
int i;
/*
* Information that goes on the same row as the name. The name has
* already been printed.
*/
space = H5Dget_space(dset);
ndims = H5Sget_simple_extent_dims(space, cur_size, max_size);
printf (" {");
for (i=0; i<ndims; i++) {
HDfprintf (stdout, "%s%Hu", i?", ":"", cur_size[i]);
if (max_size[i]==H5S_UNLIMITED) {
HDfprintf (stdout, "/%s", "Inf");
} else if (max_size[i]!=cur_size[i] || verbose_g>0) {
HDfprintf(stdout, "/%Hu", max_size[i]);
}
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (0==ndims) printf("SCALAR");
putchar('}');
H5Sclose (space);
return 0;
}
/*-------------------------------------------------------------------------
* Function: dataset_list2
*
* Purpose: List information about a dataset which should appear after
* information which is general to all objects.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, August 27, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
dataset_list2(hid_t dset, const char UNUSED *name)
{
hid_t dcpl; /*dataset creation property list*/
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
hid_t type; /*data type of dataset */
hid_t space; /*data space of dataset */
int nf; /*number of filters */
unsigned filt_flags; /*filter flags */
H5Z_filter_t filt_id; /*filter identification number */
unsigned cd_values[20]; /*filter client data values */
size_t cd_nelmts; /*filter client number of values*/
size_t cd_num; /*filter client data counter */
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
char f_name[256]; /*filter/file name */
char s[64]; /*temporary string buffer */
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
off_t f_offset; /*offset in external file */
hsize_t f_size; /*bytes used in external file */
[svn-r1204] Changes since 19990415 ---------------------- ./config/depend.in Fixed automatic dependencies. We were storing dependencies for *.o files instead of *.lo files after shared libraries were added. ./config/gnu-flags ./config/linux-gnulibc1 Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from the linux file to this file and caused it to depend on the CPU name. This fixes one of Elena's bugs. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fmpio.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5P.c ./src/H5RA.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./src/H5Tpublic.h ./test/istore.c Added an H5Dget_storage_size() function that reports the amount of storage allocated for raw data in a dataset. Changed H5D_xfer_* to H5F_xfer_* because these properties are more general than datasets. This also allows some of the lower-level I/O functions to get this information easier. ./src/H5S.c ./src/H5Sall.c Added two new functions H5S_all_read() and H5S_all_write() which are optimizations that copy data directly between file and memory without having to go through the scatter gather step. This knocks quite a bit of time off the I/O and reading/writing entire datasets is a fairly common operation. ./tools/h5ls.c Reports the logical size of data, the allocated size of data, and the percent utilization. ./MANIFEST Removed old pablo files, added new files. Snapshots should now start to work again. ./src/H5D.c ./src/H5Fmpio.c Removed two warnings signed vs. unsigned comparisons and check for overflow.
1999-04-23 20:31:21 +08:00
hsize_t total, used; /*total size or offset */
hsize_t chsize[64]; /*chunk size in elements */
int ndims; /*dimensionality */
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
int n, max_len; /*max extern file name length */
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
double utilization; /*percent utilization of storage*/
int i;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (verbose_g>0) {
dcpl = H5Dget_create_plist(dset);
space = H5Dget_space(dset);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
type = H5Dget_type(dset);
/* Print information about chunked storage */
if (H5D_CHUNKED==H5Pget_layout(dcpl)) {
ndims = H5Pget_chunk(dcpl, NELMTS(chsize), chsize/*out*/);
printf(" %-10s {", "Chunks:");
total = H5Tget_size(type);
for (i=0; i<ndims; i++) {
printf("%s%lu", i?", ":"", (unsigned long)(chsize[i]));
total *= chsize[i];
}
printf("} %lu bytes\n", (unsigned long)total);
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
[svn-r1204] Changes since 19990415 ---------------------- ./config/depend.in Fixed automatic dependencies. We were storing dependencies for *.o files instead of *.lo files after shared libraries were added. ./config/gnu-flags ./config/linux-gnulibc1 Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from the linux file to this file and caused it to depend on the CPU name. This fixes one of Elena's bugs. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fmpio.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5P.c ./src/H5RA.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./src/H5Tpublic.h ./test/istore.c Added an H5Dget_storage_size() function that reports the amount of storage allocated for raw data in a dataset. Changed H5D_xfer_* to H5F_xfer_* because these properties are more general than datasets. This also allows some of the lower-level I/O functions to get this information easier. ./src/H5S.c ./src/H5Sall.c Added two new functions H5S_all_read() and H5S_all_write() which are optimizations that copy data directly between file and memory without having to go through the scatter gather step. This knocks quite a bit of time off the I/O and reading/writing entire datasets is a fairly common operation. ./tools/h5ls.c Reports the logical size of data, the allocated size of data, and the percent utilization. ./MANIFEST Removed old pablo files, added new files. Snapshots should now start to work again. ./src/H5D.c ./src/H5Fmpio.c Removed two warnings signed vs. unsigned comparisons and check for overflow.
1999-04-23 20:31:21 +08:00
/* Print total raw storage size */
used = H5Sget_simple_extent_npoints(space) * H5Tget_size(type);
total = H5Dget_storage_size(dset);
printf(" %-10s ", "Storage:");
printf("%lu logical byte%s, %lu allocated byte%s",
(unsigned long)used, 1==used?"":"s",
(unsigned long)total, 1==total?"":"s");
if (total>0) {
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
#ifdef WIN32
1999-05-04 21:12:42 +08:00
hsize_t mask = (hsize_t)1 << (8*sizeof(hsize_t)-1);
[svn-r1224] Changes since 19990426 ---------------------- ./tools/h5tools.c ./tools/h5tools.h Finally fixed a long-standing bug that caused core dumps if a compound datum rendered to more than some number of characters (we kept bumping up the limit at the risk of violating stack size limits on some machines). The fix works only on systems that have the vsnprintf() function (otherwise a 4kB limit is imposed, which if violated probably dumps core). If vsnprintf() is present then the library dynamically allocates space for the output string. Also made it possible to control how compound data is rendered across multiple lines of output by allowing the caller to specify where optional line-breaks get inserted. The output functions split up the value at one or more optional line-breaks to prevent it from wrapping around the screen. If a datum doesn't fit on the current line but would fit on the next line then it is printed on the next line regardless of whether optional line-breaks would have prevent wrapping around the screen. This makes it easier to find the beginnings of compound data values. This feature is disabled by default but can be enabled by the application. If a datum doesn't fit on the current line and the previous datum also occupied more than one line then we move to the next line before printing. This makes it easier to find the beginnings of compound data values but prevents the output from looking fragmented if there are only a few long values among mostly short values. This feature is disabled by default but can be enabled by the application. The application can control the printf() formats used for all the native data types. The defaults are what the library used to use: %g, %ld, %lu, %d, and %u ./tools/h5ls.c Compound datatype values can now be split across multiple lines of output instead of just wrapping. Also, when lots of compound values are too long they all start at the beginning of a line. This only required about 10 lines of changes in the setup for tools library calls (I didn't modify the h5dump program because it uses its own version of the tools library that forked off long ago). Added code for Win32 which is unable to cast `unsigned long long' to `double'. If the dataset size exceeds (2^63)-1 then the percent utilization is not displayed (this is easily possible with chunked datasets). This is untested yet. ./configure.in ./src/H5config.h.in ./src/H5.c ./src/H5private.h Check for vsnprintf() and provide a simple, stupid definition if it isn't available. The stupid definition just calls vsprintf() and ignores the second argument. This can result in buffer overflows in h5ls and h5dump since vsprintf() is an unsafe function (and anyone can create an hdf5 file that runs an arbitrary command from h5ls and h5dump in that case)! ./config/conclude.in Remove more *.o files for `make clean' ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c Cleaned up a memory leak during H5_term_library() by allowing H5I_clear_group() to skip items that couldn't be freed. This allows the item to remain in the group until we can free it later. ./src/H5F.c The H5F_close_all() function fails if a file cannot be closed.
1999-04-27 22:47:54 +08:00
if ((used & mask) || (total & mask)) {
total = 0; /*prevent utilization printing*/
} else {
utilization = (hssize_t)used*100.0 /(hssize_t)total;
}
#else
utilization = (used*100.0)/total;
#endif
printf(", %1.2f%% utilization", utilization/*(used*100.0)/total*/);
[svn-r1204] Changes since 19990415 ---------------------- ./config/depend.in Fixed automatic dependencies. We were storing dependencies for *.o files instead of *.lo files after shared libraries were added. ./config/gnu-flags ./config/linux-gnulibc1 Moved `-march=pentiumpro -mcpu=pentiumpro -malign-double' from the linux file to this file and caused it to depend on the CPU name. This fixes one of Elena's bugs. ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5F.c ./src/H5Farray.c ./src/H5Fistore.c ./src/H5Fmpio.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gnode.c ./src/H5P.c ./src/H5RA.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Spoint.c ./src/H5Sprivate.h ./src/H5Tpublic.h ./test/istore.c Added an H5Dget_storage_size() function that reports the amount of storage allocated for raw data in a dataset. Changed H5D_xfer_* to H5F_xfer_* because these properties are more general than datasets. This also allows some of the lower-level I/O functions to get this information easier. ./src/H5S.c ./src/H5Sall.c Added two new functions H5S_all_read() and H5S_all_write() which are optimizations that copy data directly between file and memory without having to go through the scatter gather step. This knocks quite a bit of time off the I/O and reading/writing entire datasets is a fairly common operation. ./tools/h5ls.c Reports the logical size of data, the allocated size of data, and the percent utilization. ./MANIFEST Removed old pablo files, added new files. Snapshots should now start to work again. ./src/H5D.c ./src/H5Fmpio.c Removed two warnings signed vs. unsigned comparisons and check for overflow.
1999-04-23 20:31:21 +08:00
}
putchar('\n');
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Print information about external strorage */
if ((nf = H5Pget_external_count(dcpl))>0) {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
for (i=0, max_len=0; i<nf; i++) {
H5Pget_external(dcpl, i, sizeof(f_name), f_name, NULL, NULL);
n = display_string(NULL, f_name, TRUE);
max_len = MAX(max_len, n);
}
printf(" %-10s %d external file%s\n",
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
"Extern:", nf, 1==nf?"":"s");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
printf(" %4s %10s %10s %10s %s\n",
"ID", "DSet-Addr", "File-Addr", "Bytes", "File");
printf(" %4s %10s %10s %10s ",
"----", "----------", "----------", "----------");
for (i=0; i<max_len; i++) putchar('-');
putchar('\n');
for (i=0, total=0; i<nf; i++) {
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (H5Pget_external(dcpl, i, sizeof(f_name), f_name, &f_offset,
&f_size)<0) {
HDfprintf(stdout,
" #%03d %10Hu %10s %10s ***ERROR*** %s\n",
i, total, "", "",
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
i+1<nf?"Following addresses are incorrect":"");
} else if (H5S_UNLIMITED==f_size) {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
HDfprintf(stdout, " #%03d %10Hu %10Hu %10s ",
i, total, (hsize_t)f_offset, "INF");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
display_string(stdout, f_name, TRUE);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
HDfprintf(stdout, " #%03d %10Hu %10Hu %10Hu ",
i, total, (hsize_t)f_offset, f_size);
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
display_string(stdout, f_name, TRUE);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
putchar('\n');
total += f_size;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
printf(" %4s %10s %10s %10s ",
"----", "----------", "----------", "----------");
for (i=0; i<max_len; i++) putchar('-');
putchar('\n');
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
/* Print information about raw data filters */
if ((nf = H5Pget_nfilters(dcpl))>0) {
for (i=0; i<nf; i++) {
cd_nelmts = NELMTS(cd_values);
filt_id = H5Pget_filter(dcpl, i, &filt_flags, &cd_nelmts,
cd_values, sizeof(f_name), f_name);
f_name[sizeof(f_name)-1] = '\0';
sprintf(s, "Filter-%d:", i);
printf(" %-10s %s-%u %s {", s,
f_name[0]?f_name:"method",
(unsigned)filt_id,
filt_flags & H5Z_FLAG_OPTIONAL?"OPT":"");
for (cd_num=0; cd_num<cd_nelmts; cd_num++) {
printf("%s%u", cd_num?", ":"", cd_values[cd_num]);
}
printf("}\n");
}
}
/* Print data type */
printf(" %-10s ", "Type:");
display_type(type, 15);
printf("\n");
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
/* Print address information */
if (address_g) H5Ddebug(dset, 0);
/* Close stuff */
H5Tclose(type);
H5Sclose(space);
H5Pclose(dcpl);
}
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
if (data_g) dump_dataset_values(dset);
return 0;
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/*-------------------------------------------------------------------------
* Function: group_list2
*
* Purpose: List information about a group which should appear after
* information which is general to all objects.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, January 21, 1999
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
group_list2(hid_t grp, const char *name)
{
iter_t iter;
if (recursive_g) {
iter.container = name;
H5Giterate(grp, ".", NULL, list, &iter);
}
return 0;
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/*-------------------------------------------------------------------------
* Function: datatype_list2
*
* Purpose: List information about a data type which should appear after
* information which is general to all objects.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
datatype_list2(hid_t type, const char UNUSED *name)
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
{
[svn-r1169] ./configure.in ./configure [REGENERATED] ./src/H5D.c ./src/H5O.c Removed H5AC, H5B, and H5T from the default list of packages to debug (because they're pretty expensive debugging), and added H5O. Also fixed a bug for undefined variable in H5D when H5S debugging is turned on but H5T debugging is turned off. ./config/conclude.in Fixed installation of header files for building in a directory other than the source directory. This fixes a bug where H5config.h wasn't being installed. ./src/H5.c ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5Iprivate.h ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Tprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h Changed the way the library shuts down again. Now it handles cycles between packages and isn't so sensitive to dependencies between packages. A package might shut down only to be restarted to process a request from some other package being shut down. Loops are detected after 100 iteractions and the shutdown is aborted with a message on standard error. This also makes it a lot easier to debug. ./src/H5A.c Fixed H5A_write() and H5A_read() so they pass a non-null background buffer to the conversion functions. This is necessary when an attribute has a compound data type. ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsec2.c Reindented new Win32 stuff. ./src/H5Odtype.c Fixed a bug when enumeration types are used in a compound data type. The byte pointer wasn't incremented after the type information was written. ./tools/h5ls.c Compound data types display their total size because it's not always obvious from looking at the members. Scalar attributes show their space as `scalar' instead of `{}'. The index value is not printed for attributes that have only a few values. Instead the word `Data:' is printed on the first line of attribute data. Named types display their data type only if verbose output was requested.
1999-03-30 19:38:34 +08:00
if (verbose_g>0) {
printf(" %-10s ", "Type:");
display_type(type, 15);
printf("\n");
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
return 0;
}
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
/*-------------------------------------------------------------------------
* Function: ragged_list2
*
* Purpose: List information about a ragged array which should appear
* after information which is general to all objects.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, November 5, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
ragged_list2(hid_t UNUSED ra, const char UNUSED *name)
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
{
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
if (data_g) {
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
puts(" Data: Not implemented yet (see values of member");
puts(" datasets `raw', `over', and `meta')");
}
return -1;
}
/*-------------------------------------------------------------------------
* Function: link_open
*
* Purpose: This gets called to open a symbolic link. Since symbolic
* links don't correspond to actual objects we simply print the
* link information and return failure.
*
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* Return: Success: 0 - an invalid object but successful return
* of this function.
*
* Failure: -1
*
* Programmer: Robb Matzke
* Thursday, August 27, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static hid_t
link_open(hid_t location, const char *name)
{
char buf[64];
if (H5Gget_linkval (location, name, sizeof(buf), buf)<0) return -1;
if (NULL==HDmemchr(buf, 0, sizeof(buf))) {
strcpy(buf+sizeof(buf)-4, "...");
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
fputs(buf, stdout);
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
return 0;
}
/*-------------------------------------------------------------------------
* Function: list
*
* Purpose: Prints the group member name.
*
* Return: Success: 0
*
* Failure: -1
*
* Programmer: Robb Matzke
* Monday, March 23, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
list (hid_t group, const char *name, void *_iter)
{
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
hid_t obj=-1;
char buf[512], comment[50], *fullname=NULL, *s=NULL;
H5G_stat_t sb;
[svn-r546] Changes since 19980724 ---------------------- ./MANIFEST ./doc/html/H5.format.html ./src/H5O.c ./src/H5Oprivate.h ./src/H5Omtime.c [NEW] ./src/H5private.h ./src/Makefile.in Added the modification time message. If an object header has this message then it's value is updated with the current time whenever anything changes in the object header. ./acconfig.h ./configure.in Alas, there seems to be no standard way to convert a string time like 19980727122800 in UTC to a time_t since mktime() only converts local times to time_t. So I've modified the configuration to check for various ways of getting the time zone information: * Added checks for the `tm_gmtoff' field of `struct tm'. * Added a check for the `timezone' global variable. * Added a check for `struct timezone'. * Added a check for BSDgettimeofday(). * Added a check for gettimeofday() although it doesn't actually set the timezone argument on some systems. * Added a check to see if `tm_zone' is a member of `struct tm'. * Added a check to see if `tzname' is a global variable. * Added a check to see if `struct tm' is defined in time.h or sys/time.h. It's not difficult to get the right UTC modification message into the object header, but some systems might have problems getting the right time back out (Irix64 is one) and those systems will report zero for the H5G_stat_t.mtime from an H5Gstat() call as if the mtime message isn't even present. It will, however, continue to be updated as normal. ./src/H5G.c ./src/H5Gpublic.h The H5G_stat_t struct now contains an `mtime' field which will hold the object modification time. If the object has no object modification time then the `mtime' will be initialized to zero. Fixed a bug in H5G_stat() that caused the `objno' field of the H5G_stat_t to be set incorrectly on some machines. ./src/H5D.c Writing to external datasets fail if the hdf5 file is not open for writing. A modification time message is added to the dataset object header when it's created and H5O_touch() is called from H5D_write() to update that message. ./src/H5T.c Fixed a bug in H5Tget_member_dims() that caused a segmentation fault if one of the output array arguments was the null pointer. Relaxed the member dimension checking in H5Tinsert_array() so it can also be used for scalar members. ./test/Makefile.in Added additional file names to the `mostlyclean' target. ./tools/h5dump.c ./tools/h5tools.h Increased the temporary buffer size to 1MB. Added support for printing compound data types with array members. When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape double quote characters. ./tools/h5ls.c Changed the output format a little because we were starting to get too much info to fit on a line. Without `--verbose' each object occupies one line of output. Otherwise, additional information is printed below the object name: object file address, comment, and modification time. If `--dump' is given then the data is printed after the other information. ./test/cmpd_dset.c Changed the way the dataset is initialized to be more uniform.
1998-07-30 00:43:59 +08:00
struct tm *tm;
herr_t status;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
iter_t *iter = (iter_t*)_iter;
int n;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/* Print the object name, either full name or base name */
fullname = fix_name(iter->container, name);
if (fullname_g) {
n = display_string(stdout, fullname, TRUE);
printf("%*s ", MAX(0, 24-n), "");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
} else {
n = display_string(stdout, name, TRUE);
printf("%*s ", MAX(0, 24-n), "");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
}
/* Get object information */
H5E_BEGIN_TRY {
status = H5Gget_objinfo(group, name, FALSE, &sb);
} H5E_END_TRY;
if (status<0) {
puts("**NOT FOUND**");
return 0;
} else if (sb.type<0 || sb.type>=H5G_NTYPES) {
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
printf("Unknown type(%d)", sb.type);
sb.type = -1;
}
if (sb.type>=0 && dispatch_g[sb.type].name) {
fputs(dispatch_g[sb.type].name, stdout);
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/*
* If the object has already been printed then just show the object ID
* and return.
*/
if ((s=sym_lookup(&sb))) {
printf(", same as ");
display_string(stdout, s, TRUE);
printf("\n");
goto done;
} else {
sym_insert(&sb, fullname);
}
/*
* Open the object. Not all objects can be opened. If this is the case
* then return right away.
*/
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (sb.type>=0 &&
(NULL==dispatch_g[sb.type].open ||
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
(obj=(dispatch_g[sb.type].open)(group, name))<0)) {
printf(" *ERROR*\n");
goto done;
}
/*
* List the first line of information for the object.
*/
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (sb.type>=0 && dispatch_g[sb.type].list1) {
(dispatch_g[sb.type].list1)(obj);
}
putchar('\n');
/*
* Show detailed information about the object, beginning with information
* which is common to all objects.
*/
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
if (verbose_g>0 && H5G_LINK!=sb.type) {
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
if (sb.type>=0) H5Aiterate(obj, NULL, list_attr, NULL);
printf(" %-10s %lu:%lu:%lu:%lu\n", "Location:",
sb.fileno[1], sb.fileno[0], sb.objno[1], sb.objno[0]);
printf(" %-10s %u\n", "Links:", sb.nlink);
if (sb.mtime>0 && NULL!=(tm=localtime(&(sb.mtime)))) {
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %Z", tm);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
printf(" %-10s %s\n", "Modified:", buf);
[svn-r546] Changes since 19980724 ---------------------- ./MANIFEST ./doc/html/H5.format.html ./src/H5O.c ./src/H5Oprivate.h ./src/H5Omtime.c [NEW] ./src/H5private.h ./src/Makefile.in Added the modification time message. If an object header has this message then it's value is updated with the current time whenever anything changes in the object header. ./acconfig.h ./configure.in Alas, there seems to be no standard way to convert a string time like 19980727122800 in UTC to a time_t since mktime() only converts local times to time_t. So I've modified the configuration to check for various ways of getting the time zone information: * Added checks for the `tm_gmtoff' field of `struct tm'. * Added a check for the `timezone' global variable. * Added a check for `struct timezone'. * Added a check for BSDgettimeofday(). * Added a check for gettimeofday() although it doesn't actually set the timezone argument on some systems. * Added a check to see if `tm_zone' is a member of `struct tm'. * Added a check to see if `tzname' is a global variable. * Added a check to see if `struct tm' is defined in time.h or sys/time.h. It's not difficult to get the right UTC modification message into the object header, but some systems might have problems getting the right time back out (Irix64 is one) and those systems will report zero for the H5G_stat_t.mtime from an H5Gstat() call as if the mtime message isn't even present. It will, however, continue to be updated as normal. ./src/H5G.c ./src/H5Gpublic.h The H5G_stat_t struct now contains an `mtime' field which will hold the object modification time. If the object has no object modification time then the `mtime' will be initialized to zero. Fixed a bug in H5G_stat() that caused the `objno' field of the H5G_stat_t to be set incorrectly on some machines. ./src/H5D.c Writing to external datasets fail if the hdf5 file is not open for writing. A modification time message is added to the dataset object header when it's created and H5O_touch() is called from H5D_write() to update that message. ./src/H5T.c Fixed a bug in H5Tget_member_dims() that caused a segmentation fault if one of the output array arguments was the null pointer. Relaxed the member dimension checking in H5Tinsert_array() so it can also be used for scalar members. ./test/Makefile.in Added additional file names to the `mostlyclean' target. ./tools/h5dump.c ./tools/h5tools.h Increased the temporary buffer size to 1MB. Added support for printing compound data types with array members. When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape double quote characters. ./tools/h5ls.c Changed the output format a little because we were starting to get too much info to fit on a line. Without `--verbose' each object occupies one line of output. Otherwise, additional information is printed below the object name: object file address, comment, and modification time. If `--dump' is given then the data is printed after the other information. ./test/cmpd_dset.c Changed the way the dataset is initialized to be more uniform.
1998-07-30 00:43:59 +08:00
}
comment[0] = '\0';
H5Gget_comment(group, name, sizeof(comment), comment);
strcpy(comment+sizeof(comment)-4, "...");
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (comment[0]) {
printf(" %-10s \"", "Comment:");
display_string(stdout, comment, FALSE);
puts("\"");
}
[svn-r546] Changes since 19980724 ---------------------- ./MANIFEST ./doc/html/H5.format.html ./src/H5O.c ./src/H5Oprivate.h ./src/H5Omtime.c [NEW] ./src/H5private.h ./src/Makefile.in Added the modification time message. If an object header has this message then it's value is updated with the current time whenever anything changes in the object header. ./acconfig.h ./configure.in Alas, there seems to be no standard way to convert a string time like 19980727122800 in UTC to a time_t since mktime() only converts local times to time_t. So I've modified the configuration to check for various ways of getting the time zone information: * Added checks for the `tm_gmtoff' field of `struct tm'. * Added a check for the `timezone' global variable. * Added a check for `struct timezone'. * Added a check for BSDgettimeofday(). * Added a check for gettimeofday() although it doesn't actually set the timezone argument on some systems. * Added a check to see if `tm_zone' is a member of `struct tm'. * Added a check to see if `tzname' is a global variable. * Added a check to see if `struct tm' is defined in time.h or sys/time.h. It's not difficult to get the right UTC modification message into the object header, but some systems might have problems getting the right time back out (Irix64 is one) and those systems will report zero for the H5G_stat_t.mtime from an H5Gstat() call as if the mtime message isn't even present. It will, however, continue to be updated as normal. ./src/H5G.c ./src/H5Gpublic.h The H5G_stat_t struct now contains an `mtime' field which will hold the object modification time. If the object has no object modification time then the `mtime' will be initialized to zero. Fixed a bug in H5G_stat() that caused the `objno' field of the H5G_stat_t to be set incorrectly on some machines. ./src/H5D.c Writing to external datasets fail if the hdf5 file is not open for writing. A modification time message is added to the dataset object header when it's created and H5O_touch() is called from H5D_write() to update that message. ./src/H5T.c Fixed a bug in H5Tget_member_dims() that caused a segmentation fault if one of the output array arguments was the null pointer. Relaxed the member dimension checking in H5Tinsert_array() so it can also be used for scalar members. ./test/Makefile.in Added additional file names to the `mostlyclean' target. ./tools/h5dump.c ./tools/h5tools.h Increased the temporary buffer size to 1MB. Added support for printing compound data types with array members. When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape double quote characters. ./tools/h5ls.c Changed the output format a little because we were starting to get too much info to fit on a line. Without `--verbose' each object occupies one line of output. Otherwise, additional information is printed below the object name: object file address, comment, and modification time. If `--dump' is given then the data is printed after the other information. ./test/cmpd_dset.c Changed the way the dataset is initialized to be more uniform.
1998-07-30 00:43:59 +08:00
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
if (sb.type>=0 && dispatch_g[sb.type].list2) {
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
(dispatch_g[sb.type].list2)(obj, fullname);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
[svn-r546] Changes since 19980724 ---------------------- ./MANIFEST ./doc/html/H5.format.html ./src/H5O.c ./src/H5Oprivate.h ./src/H5Omtime.c [NEW] ./src/H5private.h ./src/Makefile.in Added the modification time message. If an object header has this message then it's value is updated with the current time whenever anything changes in the object header. ./acconfig.h ./configure.in Alas, there seems to be no standard way to convert a string time like 19980727122800 in UTC to a time_t since mktime() only converts local times to time_t. So I've modified the configuration to check for various ways of getting the time zone information: * Added checks for the `tm_gmtoff' field of `struct tm'. * Added a check for the `timezone' global variable. * Added a check for `struct timezone'. * Added a check for BSDgettimeofday(). * Added a check for gettimeofday() although it doesn't actually set the timezone argument on some systems. * Added a check to see if `tm_zone' is a member of `struct tm'. * Added a check to see if `tzname' is a global variable. * Added a check to see if `struct tm' is defined in time.h or sys/time.h. It's not difficult to get the right UTC modification message into the object header, but some systems might have problems getting the right time back out (Irix64 is one) and those systems will report zero for the H5G_stat_t.mtime from an H5Gstat() call as if the mtime message isn't even present. It will, however, continue to be updated as normal. ./src/H5G.c ./src/H5Gpublic.h The H5G_stat_t struct now contains an `mtime' field which will hold the object modification time. If the object has no object modification time then the `mtime' will be initialized to zero. Fixed a bug in H5G_stat() that caused the `objno' field of the H5G_stat_t to be set incorrectly on some machines. ./src/H5D.c Writing to external datasets fail if the hdf5 file is not open for writing. A modification time message is added to the dataset object header when it's created and H5O_touch() is called from H5D_write() to update that message. ./src/H5T.c Fixed a bug in H5Tget_member_dims() that caused a segmentation fault if one of the output array arguments was the null pointer. Relaxed the member dimension checking in H5Tinsert_array() so it can also be used for scalar members. ./test/Makefile.in Added additional file names to the `mostlyclean' target. ./tools/h5dump.c ./tools/h5tools.h Increased the temporary buffer size to 1MB. Added support for printing compound data types with array members. When printing H5T_NATIVE_CHAR and H5T_NATIVE_UCHAR we escape double quote characters. ./tools/h5ls.c Changed the output format a little because we were starting to get too much info to fit on a line. Without `--verbose' each object occupies one line of output. Otherwise, additional information is printed below the object name: object file address, comment, and modification time. If `--dump' is given then the data is printed after the other information. ./test/cmpd_dset.c Changed the way the dataset is initialized to be more uniform.
1998-07-30 00:43:59 +08:00
/*
* Close the object.
*/
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
done:
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
if (sb.type>=0 && obj>=0 && dispatch_g[sb.type].close) {
(dispatch_g[sb.type].close)(obj);
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if (fullname) free(fullname);
return 0;
}
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
/*-------------------------------------------------------------------------
* Function: fix_name
*
* Purpose: Returns a malloc'd buffer that contains the PATH and BASE
* names separated by a single slash. It also removes duplicate
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* and trailing slashes.
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
*
* Return: Success: Ptr to fixed name from malloc()
*
* Failure: NULL
*
* Programmer: Robb Matzke
* Thursday, January 21, 1999
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static char *
fix_name(const char *path, const char *base)
{
size_t n = (path?strlen(path):0) + (base?strlen(base):0) + 3;
char *s = malloc(n), prev='\0';
int len=0;
if (path) {
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
/* Path, followed by slash */
#ifdef H5LS_PREPEND_FILENAME
if ('/'!=*path) s[len++] = '/';
#endif
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
for (/*void*/; *path; path++) {
if ('/'!=*path || '/'!=prev) prev = s[len++] = *path;
}
if ('/'!=prev) prev = s[len++] = '/';
}
if (base) {
/* Base name w/o trailing slashes */
const char *end = base + strlen(base);
while (end>base && '/'==end[-1]) --end;
for (/*void*/; base<end; base++) {
if ('/'!=*base || '/'!=prev) prev = s[len++] = *base;
}
}
s[len] = '\0';
return s;
}
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/*-------------------------------------------------------------------------
* Function: get_width
*
* Purpose: Figure out how wide the screen is. This is highly
* unportable, but the user can always override the width we
* detect by giving a command-line option. These code snippets
* were borrowed from the GNU less(1).
*
* Return: Success: Number of columns.
*
* Failure: Some default number of columms.
*
* Programmer: Robb Matzke
* Friday, November 6, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static int
get_width(void)
{
int width = 80; /*the default */
char *s;
/*
* Try to get it from the COLUMNS environment variable first since it's
* value is sometimes wrong.
*/
if ((s=getenv("COLUMNS")) && *s && isdigit((int)*s)) {
width = (int)strtol(s, NULL, 0);
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
}
#if defined(HAVE_STRUCT_VIDEOCONFIG) && defined(HAVE__GETVIDEOCONFIG)
{
/* Microsoft C */
struct videoconfig w;
_getvideoconfig(&w);
width = w.numtextcols;
}
#elif defined(HAVE_STRUCT_TEXT_INFO) && defined(HAVE_GETTEXTINFO)
{
/* Borland C or DJGPPC */
struct text_info w;
gettextinfo(&w);
width = w.screenwidth;
}
#elif defined(HAVE_GETCONSOLESCREENBUFFERINFO)
{
/* Win32 C */
CONSOLE_SCREEN_BUFFER_INFO scr;
GetConsoleScreenBufferInfo(con_out, &scr);
width = scr.srWindow.Right - scr.srWindow.Left + 1;
}
#elif defined(HAVE__SCRSIZE)
{
/* OS/2 */
int w[2];
_scrsize(w);
width = w[0];
}
#elif defined(HAVE_TIOCGWINSZ) && defined(HAVE_IOCTL)
{
/* Unix with ioctl(TIOCGWINSZ) */
struct winsize w;
if (ioctl(2, TIOCGWINSZ, &w)>=0 && w.ws_col>0) {
width = w.ws_col;
}
}
#elif defined(HAVE_TIOCGETD) && defined(HAVE_IOCTL)
{
/* Unix with ioctl(TIOCGETD) */
struct uwdata w;
if (ioctl(2, WIOCGETD, &w)>=0 && w.uw_width>0) {
width = w.uw_width / w.uw_hs;
}
}
#endif
/* Set to at least 1 */
if (width<1) width = 1;
return width;
}
/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Opens a file and lists the specified group
*
* Return: Success: 0
*
* Failure: 1
*
* Programmer: Robb Matzke
* Monday, March 23, 1998
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
int
main (int argc, char *argv[])
{
hid_t file=-1, root=-1;
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
char *fname=NULL, *oname=NULL, *x;
const char *progname;
const char *s = NULL;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
char *rest, *container=NULL;
int argno;
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
H5G_stat_t sb;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
iter_t iter;
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
static char root_name[] = "/";
char drivername[50];
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
/* Build display table */
DISPATCH(H5G_DATASET, "Dataset", H5Dopen, H5Dclose,
dataset_list1, dataset_list2);
DISPATCH(H5G_GROUP, "Group", H5Gopen, H5Gclose,
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
NULL, group_list2);
DISPATCH(H5G_TYPE, "Type", H5Topen, H5Tclose,
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
NULL, datatype_list2);
DISPATCH(H5G_LINK, "-> ", link_open, NULL,
NULL, NULL);
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
DISPATCH(H5G_RAGGED, "Ragged Array", H5Gopen, H5Gclose,
NULL, ragged_list2);
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
/* Name of this program without the path */
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
if ((progname=strrchr(argv[0], '/'))) progname++;
else progname = argv[0];
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
/* Default output width */
width_g = get_width();
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
/* Switches come before non-switch arguments */
for (argno=1; argno<argc && '-'==argv[argno][0]; argno++) {
if (!strcmp(argv[argno], "--")) {
/* Last switch */
argno++;
break;
} else if (!strcmp(argv[argno], "--help")) {
usage(progname);
exit(0);
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
} else if (!strcmp(argv[argno], "--address")) {
address_g = TRUE;
} else if (!strcmp(argv[argno], "--data")) {
data_g = TRUE;
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
} else if (!strcmp(argv[argno], "--errors")) {
show_errors_g = TRUE;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
} else if (!strcmp(argv[argno], "--full")) {
fullname_g = TRUE;
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
} else if (!strcmp(argv[argno], "--group")) {
grp_literal_g = TRUE;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
} else if (!strcmp(argv[argno], "--label")) {
label_g = TRUE;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
} else if (!strcmp(argv[argno], "--recursive")) {
recursive_g = TRUE;
fullname_g = TRUE;
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
} else if (!strcmp(argv[argno], "--simple")) {
simple_output_g = TRUE;
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
} else if (!strcmp(argv[argno], "--string")) {
string_g = TRUE;
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
} else if (!strncmp(argv[argno], "--width=", 8)) {
width_g = (int)strtol(argv[argno]+8, &rest, 0);
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
if (width_g<=0 || *rest) {
usage(progname);
exit(1);
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
} else if (!strcmp(argv[argno], "--width")) {
if (argno+1>=argc) {
usage(progname);
exit(1);
} else {
s = argv[++argno];
}
width_g = (int)strtol(s, &rest, 0);
if (width_g<=0 || *rest) {
usage(progname);
exit(1);
}
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
} else if (!strcmp(argv[argno], "--verbose")) {
verbose_g++;
} else if (!strcmp(argv[argno], "--version")) {
print_version(progname);
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
exit(0);
} else if (!strcmp(argv[argno], "--hexdump")) {
hexdump_g = TRUE;
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
} else if (!strncmp(argv[argno], "-w", 2)) {
if (argv[argno][2]) {
s = argv[argno]+2;
} else if (argno+1>=argc) {
usage(progname);
exit(1);
} else {
s = argv[++argno];
}
width_g = (int)strtol(s, &rest, 0);
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
if (width_g<=0 || *rest) {
usage(progname);
exit(1);
}
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
} else if ('-'!=argv[argno][1]) {
/* Single-letter switches */
for (s=argv[argno]+1; *s; s++) {
switch (*s) {
case '?':
case 'h': /* --help */
usage(progname);
exit(0);
[svn-r1240] Changes since 19990427 ---------------------- ./tools/h5ls.c Added a `--address' (`-a') switch which causes h5ls to display file addresses for raw data. For contiguous datasets it's just a nice simple number, but for chunked datasets it's a list of logical dataset coordinates, file addresses, filter masks, and storage sizes. Changed `--dump' switch to `--data'. ./src/H5D.c ./src/H5F.c ./src/H5Fprivate.h Enhanced the indexed-storage B-tree iterator so it can dump raw data addresses (and other info) to the standard error stream. Added H5Ddebug() so h5ls has a way to dump addresses for datasets. I'm not sure what else this API function should do, so I think we should discuss it before we document it. So far, h5ls is the only thing that uses it, and we can easily change that. ./src/H5Tconv.c ./test/dtypes.c Finally had a chance to verify Paul's H5T_conv_s_s (general string to string conversions) bug fixes and incorporate them into H5T_conv_f_f (general floating-point to floating-point conversions) and H5T_conv_i_i (general integer to integer conversons). Thanks Paul. ./src/H5D.c ./src/H5S.c ./src/H5Sprivate.h Added performance timers around data space read and write callbacks. They were already there for the gather/scatter callbacks. The timings for read/write callbacks are displayed along with gather/scatter when data space debugging is turned on. ./bin/iostats Updated to print totals. Added a `--fast' option that doesn't do any output except the totals and is much faster. ./bin/trace Changed __unused__ to UNUSED to match source code. ./config/gnu-flags Updated error message for pgcc. I've sent bug reports to the pgcc people but the new version still has the same bug. ./configure.in ./config/conclude.in ./config/depend.in Fixed dependencies for non-GNU makes when run in a directory other than the hdf5 source tree. Updated GNU `make dep' rules to copy the distributed dependencies for non-GNU makes into the source tree when run in some other directory.
1999-04-30 23:54:52 +08:00
case 'a': /* --address */
address_g = TRUE;
break;
case 'd': /* --data */
data_g = TRUE;
[svn-r537] Changes since 19980722 ---------------------- ./src/H5A.c ./src/H5Apublic.h ./test/tattr.c Switched the order of the second and third argument of H5Aget_name() to make it consistent with other functions that take buffers and buffer sizes. ./src/H5G.c ./src/H5Gpublic.h ./src/H5Gprivate.h The H5Gget_comment() function returns the size of the comment including the null terminator. If the object has no comment then zero is returned. If an error occurs then a negative value is returned. ./MANIFEST ./tools/Makefile.in ./tools/h5tools.h [NEW] ./tools/h5dump.c [NEW] Created a library for printing values of datasets in a way that looks nice. It's not done yet, but I needed it for debugging the contents of files from Jim Reus. ./tools/h5ls.c Added the `-d' and `--dump' options which cause the contents of a dataset to be printed. Added `-w N' and `--width=N' options to control how wide the raw data output should be. If you want single-column output then say `-w1'. Printing dataset values can now handle datasets of any integer or floating point atomic type. As a special case, integers which are one byte wide are treated a character strings for now. Sample output: $ h5ls --dump --width=60 banana.hdf ARCHIVE 0:0:0:744 Dataset {52/Inf} Data: (0) "U struct complex { double R; double I; };\012V" (43) " double;\012" U 0:0:0:2500 Dataset {256/512} Data: printing of compound data types is not implemented yet V 0:0:0:3928 Dataset {256/512} Data: (0) 0, 0.015625, 0.03125, 0.046875, 0.0625, (5) 0.078125, 0.09375, 0.109375, 0.125, 0.140625, (10) 0.15625, 0.171875, 0.1875, 0.203125, 0.21875, (15) 0.234375, 0.25, 0.265625, 0.28125, 0.296875, ...
1998-07-24 05:19:17 +08:00
break;
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
case 'e': /* --errors */
show_errors_g = TRUE;
break;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
case 'f': /* --full */
fullname_g = TRUE;
break;
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
case 'g': /* --group */
grp_literal_g = TRUE;
break;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
case 'l': /* --label */
label_g = TRUE;
break;
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
case 'r': /* --recursive */
recursive_g = TRUE;
fullname_g = TRUE;
break;
[svn-r1697] Changes since 19990915 ---------------------- ./src/H5public.h We undefine a bunch of things that could get redefined in the config file because some customers have applications that include headers from multiple packages, all of which might be using autoconf. Include <stdint.h> for the C9x types. ./test/h5test.h More flushing of stdout for when testing is redirected down a pipe. ./tools/h5ls.c Added a `-S' or `--simple' switch which causes the output to be simplified somewhat for easier parsing by other scripts. For instance, characters are escaped using a very simple mechanism instead of C's more complicated backslash notation, data doesn't have `{}' or `[]' characters interspersed for compound and array types, and data is printed with exactly one element per line. This switch is now used by an HDF5-to-HTML CGI script being developed for the DMF people. ./tools/h5tools.c ./tools/h5tools.h The repeat threshold which controls how strings are printed when a character repeats a bunch of times is now settable at runtime instead of compile time. The default is to show all characters, like "abceeeeeeeeeeeeeeeeeeeeeeeeeeeeeefgh" But if you set it to something like 5 then any sequence of 5 or more characters is replaced by something shorter, like: "abc" 'e'x30 "fgh" or Added an `str_locale' property which describes how to escape special characters in strings. The default is C-like escapes but an alternative is ESCAPE_HTML which replaces all non-alphanumeric characters with a 3-character HTML escape of the form `%XX' Fixed a bug where empty strings didn't even have the quote characters printed. Now empty strings show up as `""' instead of absolutely nothing. Added a `per_line' property which controls the maximum number of elements which will appear per line of output. The default is infinity but in practice the right margin causes line breaks. By setting the `per_line' value to one and the right margin to a very large value one can achieve output with exactly one element per line.
1999-10-01 00:14:14 +08:00
case 'S': /* --simple */
simple_output_g = TRUE;
break;
[svn-r879] Changes since 19981105 ---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
1998-11-07 02:00:22 +08:00
case 's': /* --string */
[svn-r876] Changes since 19981102 ---------------------- ./bin/snapshot Made same fix as for the release script yesterday. ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5Gpublic.h ./src/H5O.c ./src/H5Oprivate.h ./src/H5RA.c ./src/H5RAprivate.h ./src/H5T.c ./src/H5Tprivate.h Improved object type checking. Instead of determining the object type by trying to open each of the possible types, we keep a table of associations between object type number (like H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa' function that returns true if the object header has the right messages to make the object a particular type. This mechanism also allows specialization of object types by permitting an object to satisfy more than one `isa' function. Added `isa' functions for groups, datasets, ragged arrays, and committed data types. ./src/H5config.h.in Added HAVE_STAT_ST_BLOCKS. I thought this had already been added, but apparently not. ./tools/h5ls.c Removed system include files since they're already included by H5private.h and since I wasn't including them portably anyway. By default, 1-byte integer types are printed as integer values instead of ASCII characters. However, the `-s' or `--string' command-line switch causes the data to be interpretted as ASCII. String data types are always printed as character data. Ragged arrays are now identified as ragged arrays and h5ls doesn't descend into the group automatically. This uses the new object type specialization stuff. ./tools/h5tools.c ./tools/h5tools.h Added the ability to print 1-byte integer types as either ASCII or numeric data instead of always ASCII. The default is to print as numeric data.
1998-11-06 04:28:34 +08:00
string_g = TRUE;
break;
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
case 'v': /* --verbose */
verbose_g++;
break;
case 'V': /* --version */
print_version(progname);
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
exit(0);
case 'x': /* --hexdump */
hexdump_g = TRUE;
break;
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
default:
usage(progname);
exit(1);
}
}
} else {
usage(progname);
exit(1);
}
}
/*
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* If no arguments remain then print a usage message (instead of doing
* absolutely nothing ;-)
*/
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
if (argno>=argc) {
[svn-r514] Changes since 19980715 ---------------------- ./src/H5Flow.c ./src/H5Fprivate.h ./src/H5Fsplit.c Changed the allocation size request from `size_t' to `hsize_t' because it was overflowing for the `big' test. ./src/H5detect.c If `long double' and `double' are the same size then we define H5T_NATIVE_LDOUBLE to be the same as H5T_NATIVE_DOUBLE. Similarly for `long' vs. `long long' and `unsigned long' vs. `unsigned long long'. ./test/Makefile.in Added `big' to the list of tests to normally run. ./test/big.c Added a check to see if the file system supports holes and if it doesn't then the test is skipped. ./RELEASE Added a couple minor details details about API tracing and symbolic links. ./src/H5public.h Added comments about the use of hbool_t. Fixed a comment spelling error. ./test/testhdf5.h Changed the way the version number is printed. The old method was `hdf5-1.2.3d' and the new method is `hdf5 version 1.2 release 3' ./tools/h5ls.c Only prints the max dimension if it differs from the current dimension or if verbose mode is enabled. Added switches `-?', `-h', and `--help' to print a usage message. Added switches `-v' and `--verbose' to generate more verbose output. Added switches `-V' and `--version' to print the version number and exit. The version number is printed like: This is h5ls version 1.0 release 24' ./bin/h5vers [NEW] This script prints, sets, and/or increments the hdf5 version number. It can be run from the top directory or any of the child directories like src, tools, test, etc. Some examples: $ h5vers # Display current version 1.0.24 $ h5vers -v version 1.0 release 24 # Display current version. $ h5vers -s 5.2.8 # Set version and display 5.2.8 $ h5vers -s 2.1 2.1.0 $ h5vers -s hdf5-1.0.24a.tar.bz2 1.0.24 $ h5vers -s 'version 2.0 release 8' 2.0.8 $ h5vers -s 'junk 22 junk 33 more junk 66 and 99 junk' 33.66.99 $ h5vers -i major # Increment from 1.0.24 2.0.0 $ h5vers -i minor # Increment from 1.0.24 1.1.0 $ h5vers -i release # Increment from 1.0.24 1.0.25 $ h5vers ~/hdf5/src/H5public.h # Use an alternate file 1.0.24 ./bin/checkapi [NEW] Run from the src directory with arguments H5[A-Z]*.c and it will print the locations of each place where an API function was called from within the library. Use it as the compile or grep command under Emacs and you can C-x ` through the list. ./bin/debug-ohdr [NEW] Keeps track of H5O_open() and H5O_close() debugging messages and lists the file addresses of the object headers that are opened but never closed. You must enable the `o' debugging at configuration time and pipe stderr into this script. ./bin/errors Added a note to indicate that this script no longer works because of changes in the HRETURN_ERROR() and HGOTO_ERROR() macros. ./bin/iostats [NEW] Watches output from the Linux strace program and accumulates statistics about low-level access to an hdf5 file. The output is a list of 2d data points which can be plotted by gnuplot to show file seeking behavior. ./MANIFEST Added new files.
1998-07-18 03:03:43 +08:00
usage(progname);
exit(1);
}
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
/* Turn off HDF5's automatic error printing unless you're debugging h5ls */
if (!show_errors_g) H5Eset_auto(NULL, NULL);
/*
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
* Each remaining argument is an hdf5 file followed by an optional slash
* and object name.
*
* Example: ../dir1/foo/bar/baz
* \_________/\______/
* file obj
*
* The dichotomy is determined by calling H5Fopen() repeatedly until it
* succeeds. The first call uses the entire name and each subsequent call
* chops off the last component. If we reach the beginning of the name
* then there must have been something wrong with the file (perhaps it
* doesn't exist).
*/
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
while (argno<argc) {
fname = argv[argno++];
oname = NULL;
file = -1;
while (fname && *fname) {
file = h5dump_fopen(fname, drivername, sizeof drivername);
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
if (file>=0) {
if (verbose_g) {
printf("Opened \"%s\" with %s driver.\n",
fname, drivername);
[svn-r1585] Changes since 19990820 ---------------------- ./src/H5D.c Added additional elements to a variable initializer in H5Dvlen_get_buf_size() to shut up a warning message. Also added the API tracing call. ./src/H5F.c Added file opening optimizations. If the driver doesn't support the ability to determine when two file handles refer to the same file (like MPIO and GASS) then H5F_open() makes fewer calls to the driver's open callback. Also, if the tentative file access flags are the same as the original flags then H5F_open() makes fewer calls to the file device. ./src/H5FD.c ./src/H5FDprivate.h ./src/H5FDpublic.h Added H5FD_get_class() so the library can get information about what file driver callbacks are defined. This will be useful when more optimization functions are added to the VFL, such as for MPIO derived datatype I/O. ./src/H5FDcore.c ./src/H5FDfamily.c ./src/H5FDmpio.c ./src/H5FDmulti.c ./src/H5FDsec2.c The driver symbols (like H5FD_CORE, etc) are actually function calls. The functions were fixed to return correct values even after calling H5close(). ./src/H5FDmulti.c ./src/H5FDmulti.h Added support for opening a file when parts are missing (only if the caller explicitly allows that in the file access property list). Moved some common code sequences into macros or functions. Added better support for reopening files. All the application has to know is that the file is a multi file and the base name from which all the member names are created. More debugging output when the file is opened with the H5F_ACC_DEBUG flag. Fixed various bugs. ./src/H5Fistore.c Chunked raw data was accidently allocated as meta data instead of raw data. ./src/H5I.c The H5Iget_type() function fails when invoked with an old object ID (an ID which has been closed down). ./test/h5test.c Added an extra argument when setting the multi file access property lists so the test fails if it can't open one of the sub-files. ./tools/h5ls.c Improved the algorithm for deciding what file driver to use. It basically tries all of the predefined drivers and is now able to open family, split, and multi files without looking for special characters in the file name. Added `-e' and `--errors' switches which cause errors from libhdf5 to be reported on stderr in addition to the simple error message displayed by h5ls.
1999-08-24 20:52:10 +08:00
}
break; /*success*/
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
/* Shorten the file name; lengthen the object name */
x = oname;
oname = strrchr(fname, '/');
if (x) *x = '/';
if (!oname) break;
*oname = '\0';
[svn-r1184] Changes since 19990402 ---------------------- ./config/commence.in ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in Fixed so private libraries are not installed publicly. The installation directories `bin', `include', and `lib' are created mode 755. ./src/H5.c ./src/H5A.c ./src/H5F.c ./src/H5Fcore.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.c ./src/H5G.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Smpio.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Vprivate.h ./src/H5Z.c ./src/H5detect.c ./src/H5private.h ./test/chunk.c ./test/dsets.c ./test/dtypes.c ./test/h5test.c ./test/overhead.c ./test/ragged.c ./test/tattr.c ./tools/h5dump.c ./tools/h5findshd.c ./tools/h5ls.c Changed `__unused__' to `UNUSED' to fix a conflict with GNU header files. ./src/H5Tpkg.h ./test/h5test.h Removed __unused__ from forward function declarations. ./src/H5P.c Removed a comment about restrictions for the type conversion temporary buffers. Thanks to Quincey, the comment no longer applied. ./src/H5T.c Relaxed the H5Tpack() a little so it would pack compound data structures that had non-transient atomic members. ./tools/h5ls.c Added a `-g' (or `--group') flag that causes information to be printed about the specified group instead of the group's contents. (sort of like Unix's `ls -d'). The `-g' can be used in combination with `-r' to print information about the group and its contents.
1999-04-16 03:57:50 +08:00
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
if (file<0) {
fprintf(stderr, "%s: unable to open file\n", argv[argno-1]);
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
}
if (oname) oname++;
if (!oname || !*oname) oname = root_name;
/* Open the object and display it's information */
if (H5Gget_objinfo(file, oname, TRUE, &sb)>=0 &&
H5G_GROUP==sb.type && !grp_literal_g) {
/*
* Specified name is a group. List the complete contents of the
* group.
*/
sym_insert(&sb, oname);
#ifdef H5LS_PREPEND_FILENAME
iter.container = container = fix_name(fname, oname);
#else
iter.container = container = fix_name("", oname);
#endif
H5Giterate(file, oname, NULL, list, &iter);
free(container);
} else if ((root=H5Gopen(file, "/"))<0) {
exit(1); /*major problem!*/
[svn-r1032] Changes since 19990118 ---------------------- ./tools/h5tools.c Strings are not converted to null-padding before being printed; they are printed with whatever byte values appear in the file. ./tools/h5ls.c Now able to display attribute data type and data. Added a `-f' or `--full' switch which causes the full name of each object to be displayed instead of just the base name. Added a `-r' or `--recursive' switch that recursively prints the contents of groups, avoiding cycles. More bulletproofing for non-printable characters in things like object names, attribute names, and comment strings. We don't want listing a file to send termal escape sequences because it's sometimes possible to execute commands that way. Since h5ls doesn't usually use quotes around object names we must sometimes escape space characters. External files are listed in a table to make the output less confusing. ./tools/h5tools.c ./tools/h5tools.h Changed h5dump() to h5dump_dset() and added h5dump_mem(). Also make h5dump_fixtype() public. ./test/dtypes.c Wrote some data to an attribute to test h5ls attribute printing. ./src/H5ACprivate.h ./src/H5Apublic.h ./src/H5Dprivate.h ./src/H5Dpublic.h ./src/H5Epublic.h ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5Gprivate.h ./src/H5HLprivate.h ./src/H5Oprivate.h ./src/H5Ppublic.h ./src/H5RApublic.h ./src/H5Rpublic.h ./src/H5Spublic.h ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5Vprivate.h ./src/H5Zpublic.h ./src/H5private.h ./src/H5public.h Reindented function prototypes after `HDF5API' was added. Also rewrapped long lines. ./src/H5Flow.c Added an `#ifdef WIN32' around an unused variable. ./src/H5api_adpt.h Removed extra carriage returns inserted by "broken" operating system. ./src/H5Dprivate.h ./src/H5Oprivate.h ./src/H5Vprivate.h ./src/H5private.h Removed extraneous inclusion of H5api_adpt.h since it's included in H5public.h which is included by everything. ./src/Makefile.in Added H5api_adpt.h to the list of public header files to fix broken `make install'.
1999-01-22 02:33:39 +08:00
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
} else {
/*
* Specified name is a non-group object -- list that object. The
* container for the object is everything up to the base name.
*/
#ifdef H5LS_PREPEND_FILENAME
iter.container = fname;
#else
iter.container = "/";
#endif
list(root, oname, &iter);
if (H5Gclose(root)<0) exit(1);
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
H5Fclose(file);
}
[svn-r1341] Changes since 19990611 ---------------------- ./doc/html/H5.format.html Added documentation for opaque data types (bitfield types were already documented but they were out of order). ./src/H5E.c Fixed a bug with glibc2 on linux systems where `stdout' is an extern and can't be used to initialize static data. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h ./src/H5detect.c Removed the `_T' from the new C9x types I just added so the names are consistent with existing types. Besides, the fact that something is a datatype is obvious because it starts with H5T_NATIVE_. ./tools/h5ls.c Added the new C9x data types. H5ls prints one of these types only if it doesn't match one of the builtin C types. Prints the OID for shared data types. Fixed a formatting bug with symbolic links which was introduced a few changes ago. The commandline has been changed so that objects from multiple files can be listed with a single command. Instead of specifying a file name and an optional list of objects, each thing to print is a file name and object concatenated. H5ls figures out how to devide the name into a file name and object name even when the file name part doesn't correspond to an actual Unix file. Old syntax: h5ls [OPTIONS] FILE [OBJECTS] New syntax: h5ls [OPTIONS] FILE[/OBJECT] [FILE[/OBJECT]]... Example ({X,Y} is expanded by the shell) Old command: h5ls -d ../test/x.data dir1 dir2 New command: h5ls -d ../test/x.data/{dir1,dir2} The filename is printed as part of the object name when full names are requested (--full or --recursive). If people really don't like this they can undefine a constant at the top of h5ls. Errors from the hdf5 library are turned off. Commandline switches of the form `--width 80' are accepted in addition to `--width=80'. This is more symmetric with single-letter switches that take two forms: `-w 80' and `-w80'. ./src/H5D.c Added tracing instrumentation for H5Dvlen_reclaim(). ./src/H5private.h Added casts to int for the isalpha() et al macros to shut up solaris warnings about char subscripts.
1999-06-14 23:07:58 +08:00
return 0;
}