summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Kim <jkm@hdfgroup.org>2010-06-28 20:34:32 (GMT)
committerJonathan Kim <jkm@hdfgroup.org>2010-06-28 20:34:32 (GMT)
commiteb5eba9aee6cb002b2a5278e00e232f4a2118bf6 (patch)
tree1d6af33c4bdd752e60a2ca1522e556f5f4a55b2d
parentf421ba6111c2f5f7ed7bdb5773642e45b6424a8b (diff)
downloadhdf5-eb5eba9aee6cb002b2a5278e00e232f4a2118bf6.zip
hdf5-eb5eba9aee6cb002b2a5278e00e232f4a2118bf6.tar.gz
hdf5-eb5eba9aee6cb002b2a5278e00e232f4a2118bf6.tar.bz2
[svn-r19034] Purpose:
Change h5ls not to manipulate special characters in object name or attribute name for smart display. Description: Related to "But1784 h5ls has input and output issues with links that have '\' characters in them." Tested: jam, amani and linew
-rw-r--r--release_docs/RELEASE.txt2
-rw-r--r--tools/h5ls/h5ls.c34
2 files changed, 36 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 6bc86e8..3cd0039 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -430,6 +430,8 @@ Bug Fixes since HDF5-1.8.0 release
Tools
-----
+ - Change h5ls not to manipulate special characters in object name or
+ attribute name for smart display. bug#1784 (JKM 2010/06/28)
- Fixed h5ls to return exit code 1 (error) when non-existent file is
specified. bug#1793. (JKM 2010/04/27)
- h5copy failed to copy dangling link when the link is specified
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index 835af10..789e02a 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -170,6 +170,8 @@ usage: %s [OPTIONS] [OBJECTS...]\n\
* Thursday, November 5, 1998
*
* Modifications:
+ * Add _H5LS_CONVERT_SPECIAL_CHAR_ #ifdef section and make it not to
+ * convert special chars to visible chars. (Jonathan Kim 06/24/2010)
*
*-------------------------------------------------------------------------
*/
@@ -178,6 +180,27 @@ display_string(FILE *stream, const char *s, hbool_t escape_spaces)
{
int nprint=0;
+#ifdef _H5LS_CONVERT_SPECIAL_CHAR_
+ /*-------------------------------------------------------------------
+ * _H5LS_CONVERT_SPECIAL_CHAR_ is not defined, so this code section
+ * will not be compiled.
+ * This code section is due to be removed after verifying no problem
+ * at customer sites. (However we may keep it just for the future
+ * reference as it survived over ten years)
+ *
+ * Reason for Obsolete:
+ * This portion of code converts special characters or '\' to string,
+ * so when those characters are in object or attribute name, h5ls display
+ * as visible characters.
+ * However if a user come up with object or attribute name with special
+ * character in programming, this code takes away control over '\'
+ * (escape character) from the user and causes confusion for the output,
+ * also it’s not possible to handle all the cases in this way.
+ * This also causes discrepancy from how the string data saved in
+ * HDF5 file.
+ * Also other HDF tools don’t convert characters like this, so this
+ * causes inconsistent output among tools.
+ *-------------------------------------------------------------/
for (/*void*/; s && *s; s++) {
switch (*s) {
case '"':
@@ -230,6 +253,17 @@ display_string(FILE *stream, const char *s, hbool_t escape_spaces)
break;
}
}
+#else
+ if (stream)
+ {
+ nprint = fprintf(stream,s);
+ }
+ else
+ {
+ nprint = strlen(s);
+ }
+#endif /* _H5LS_CONVERT_SPECIAL_CHAR_ */
+
return nprint;
}