Small fixes (#285)

* OESS-98 convert plugin option to FetchContent, add tests

* Fixes for pkcfg files because of plugin option

* OESS-98 fix tools test for plugins

* Keep doxygen comments under 100 chars long - format hint

* Whitespace

* HDFFV-11144 - Reclassify CMake messages

* HDFFV-11099/11100 added help text

* Reworked switch statement to compare string instead

* Fix typo

* Update CDash mode

* Correct name of threadsafe

* Correct option name

* Undo accidental commit

* Small changes plus merge of tools arg parse from 1.12
This commit is contained in:
Allen Byrne 2021-01-27 07:56:28 -06:00 committed by GitHub
parent d7bce33123
commit 799ec0fde4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 135 additions and 122 deletions

View File

@ -42,7 +42,7 @@ set (CMAKE_IGNORE_EOL "--ignore-eol")
if (CMAKE_VERSION VERSION_LESS "3.14.0")
set (CMAKE_IGNORE_EOL "")
if (WIN32)
message (FATAL_ERROR "Windows builds requires a minimum of CMake 3.14")
message (FATAL_ERROR "Windows builds require a minimum of CMake 3.14")
endif()
endif ()

View File

@ -18,7 +18,7 @@
set (CTEST_PROJECT_NAME "HDF5")
set (CTEST_NIGHTLY_START_TIME "18:00:00 CST")
set (CTEST_DROP_METHOD "http")
set (CTEST_DROP_METHOD "https")
if (CTEST_DROP_SITE_INIT)
set (CTEST_DROP_SITE "${CTEST_DROP_SITE_INIT}")
else ()

View File

@ -31,6 +31,7 @@ If you have any questions or comments, please send them to the HDF Help Desk:
CONTENTS
========
- New Features
- Support for new platforms and languages
@ -812,20 +813,17 @@ Bug Fixes since HDF5-1.12.0 release
(DER - 2021/01/07, HDFFV-11201)
Performance
-------------
-
Fortran
--------
- Corrected INTERFACE INTENT(IN) to INTENT(OUT) for buf_size in h5fget_file_image_f.
(MSB - 2020/02/18, HDFFV-11029)
Tools
-----
- Fixed tools argument parsing.
Tools parsing used the length of the option from the long array to match
the option from the command line. This incorrectly matched a shorter long
name option that was happened to be a subset of another long option.
Changed to match whole names.
(ADB - 2021/01/19, HDFFV-11106)
- The tools library was updated by standardizing the error stack process.
General sequence is:
@ -892,7 +890,19 @@ Bug Fixes since HDF5-1.12.0 release
(ADB - 2019/12/06, HDFFV-10876 and HDFFV-10877)
High-Level APIs:
Performance
-------------
-
Fortran API
--------
- Corrected INTERFACE INTENT(IN) to INTENT(OUT) for buf_size in h5fget_file_image_f.
(MSB - 2020/02/18, HDFFV-11029)
High-Level Library
------
-
@ -901,18 +911,22 @@ Bug Fixes since HDF5-1.12.0 release
------
-
Documentation
-------------
-
F90 APIs
--------
-
C++ APIs
--------
-
Testing
-------
- Stopped java/test/junit.sh.in installing libs for testing under ${prefix}

View File

@ -185,7 +185,6 @@ set (H5ES_HDRS
IDE_GENERATED_PROPERTIES ("H5ES" "${H5ES_HDRS}" "${H5ES_SOURCES}" )
set (H5F_SOURCES
${HDF5_SRC_DIR}/H5F.c
${HDF5_SRC_DIR}/H5Faccum.c

View File

@ -194,44 +194,50 @@ get_option(int argc, const char **argv, const char *opts, const struct long_opti
if (sp == 1 && argv[opt_ind][0] == '-' && argv[opt_ind][1] == '-') {
/* long command line option */
const char *arg = &argv[opt_ind][2];
int i;
int i;
const char ch = '=';
char * arg = &argv[opt_ind][2];
size_t arg_len = 0;
opt_arg = strchr(&argv[opt_ind][2], ch);
arg_len = HDstrlen(&argv[opt_ind][2]);
if (opt_arg) {
arg_len -= HDstrlen(opt_arg);
opt_arg++; /* skip the equal sign */
}
arg[arg_len] = 0;
for (i = 0; l_opts && l_opts[i].name; i++) {
size_t len = HDstrlen(l_opts[i].name);
if (HDstrncmp(arg, l_opts[i].name, len) == 0) {
if (HDstrcmp(arg, l_opts[i].name) == 0) {
/* we've found a matching long command line flag */
opt_opt = l_opts[i].shortval;
if (l_opts[i].has_arg != no_arg) {
if (arg[len] == '=') {
opt_arg = &arg[len + 1];
}
else if (l_opts[i].has_arg != optional_arg) {
if (opt_ind < (argc - 1))
if (argv[opt_ind + 1][0] != '-')
opt_arg = argv[++opt_ind];
}
else if (l_opts[i].has_arg == require_arg) {
if (opt_err)
HDfprintf(rawerrorstream, "%s: option required for \"--%s\" flag\n", argv[0],
arg);
if (opt_arg == NULL) {
if (l_opts[i].has_arg != optional_arg) {
if (opt_ind < (argc - 1))
if (argv[opt_ind + 1][0] != '-')
opt_arg = argv[++opt_ind];
}
else if (l_opts[i].has_arg == require_arg) {
if (opt_err)
HDfprintf(rawerrorstream, "%s: option required for \"--%s\" flag\n", argv[0],
arg);
opt_opt = '?';
opt_opt = '?';
}
}
else
opt_arg = NULL;
}
else {
if (arg[len] == '=') {
if (opt_arg) {
if (opt_err)
HDfprintf(rawerrorstream, "%s: no option required for \"%s\" flag\n", argv[0],
arg);
opt_opt = '?';
}
opt_arg = NULL;
}
break;
}

View File

@ -25,7 +25,7 @@ static int check_d_input(const char *);
* Command-line options: The user can specify short or long-named
* parameters.
*/
static const char * s_opts = "hVrv:qn:d:p:NcelxE:A:S";
static const char * s_opts = "hVrv*qn:d:p:NcelxE:A:S";
static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"version", no_arg, 'V'},
{"report", no_arg, 'r'},
@ -253,33 +253,27 @@ parse_command_line(int argc, const char *argv[], const char **fname1, const char
case 'v':
opts->mode_verbose = 1;
/* This for loop is for handling style like
* -v, -v1, --verbose, --verbose=1.
*/
for (i = 1; i < argc; i++) {
/*
* short opt
* special check for short opt
*/
if (!strcmp(argv[i], "-v")) { /* no arg */
opt_ind--;
if (!strcmp(argv[i], "-v")) {
if (opt_arg != NULL)
opt_ind--;
opts->mode_verbose_level = 0;
break;
}
else if (!strncmp(argv[i], "-v", (size_t)2)) {
if (opt_arg != NULL)
opt_ind--;
opts->mode_verbose_level = atoi(&argv[i][2]);
break;
}
/*
* long opt
*/
if (!strcmp(argv[i], "--verbose")) { /* no arg */
opts->mode_verbose_level = 0;
break;
}
else if (!strncmp(argv[i], "--verbose", (size_t)9) && argv[i][9] == '=') {
opts->mode_verbose_level = atoi(&argv[i][10]);
break;
else {
if (opt_arg != NULL)
opts->mode_verbose_level = HDatoi(opt_arg);
else
opts->mode_verbose_level = 0;
}
}
break;

View File

@ -80,39 +80,8 @@ struct handler_t {
*/
/* The following initialization makes use of C language concatenating */
/* "xxx" "yyy" into "xxxyyy". */
static const char * s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RE*CM:O*N:vG:";
static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"hel", no_arg, 'h'},
{"contents", optional_arg, 'n'},
{"properties", no_arg, 'p'},
{"superblock", no_arg, 'B'},
{"boot-block", no_arg, 'B'},
{"boot-bloc", no_arg, 'B'},
{"boot-blo", no_arg, 'B'},
{"boot-bl", no_arg, 'B'},
{"boot-b", no_arg, 'B'},
{"boot", no_arg, 'B'},
{"boo", no_arg, 'B'},
{"bo", no_arg, 'B'},
{"header", no_arg, 'H'},
{"heade", no_arg, 'H'},
{"head", no_arg, 'H'},
{"hea", no_arg, 'H'},
{"object-ids", no_arg, 'i'},
{"object-id", no_arg, 'i'},
{"object-i", no_arg, 'i'},
{"object", no_arg, 'i'},
{"objec", no_arg, 'i'},
{"obje", no_arg, 'i'},
{"obj", no_arg, 'i'},
{"ob", no_arg, 'i'},
{"version", no_arg, 'V'},
{"versio", no_arg, 'V'},
{"versi", no_arg, 'V'},
{"vers", no_arg, 'V'},
{"ver", no_arg, 'V'},
{"ve", no_arg, 'V'},
{"attribute", require_arg, 'a'},
static const char * s_opts = "a:b*c:d:ef:g:hik:l:m:n*o*pq:rs:t:uvw:xyz:A*BCD:E*F:G:HM:N:O*RS:VX:";
static struct long_options l_opts[] = {{"attribute", require_arg, 'a'},
{"attribut", require_arg, 'a'},
{"attribu", require_arg, 'a'},
{"attrib", require_arg, 'a'},
@ -120,10 +89,7 @@ static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"attr", require_arg, 'a'},
{"att", require_arg, 'a'},
{"at", require_arg, 'a'},
{"block", require_arg, 'k'},
{"bloc", require_arg, 'k'},
{"blo", require_arg, 'k'},
{"bl", require_arg, 'k'},
{"binary", optional_arg, 'b'},
{"count", require_arg, 'c'},
{"coun", require_arg, 'c'},
{"cou", require_arg, 'c'},
@ -131,10 +97,7 @@ static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"dataset", require_arg, 'd'},
{"datase", require_arg, 'd'},
{"datas", require_arg, 'd'},
{"datatype", require_arg, 't'},
{"datatyp", require_arg, 't'},
{"dataty", require_arg, 't'},
{"datat", require_arg, 't'},
{"escape", no_arg, 'e'},
{"filedriver", require_arg, 'f'},
{"filedrive", require_arg, 'f'},
{"filedriv", require_arg, 'f'},
@ -148,24 +111,44 @@ static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"grou", require_arg, 'g'},
{"gro", require_arg, 'g'},
{"gr", require_arg, 'g'},
{"output", optional_arg, 'o'},
{"outpu", optional_arg, 'o'},
{"outp", optional_arg, 'o'},
{"out", optional_arg, 'o'},
{"ou", optional_arg, 'o'},
{"help", no_arg, 'h'},
{"hel", no_arg, 'h'},
{"object-ids", no_arg, 'i'},
{"object-id", no_arg, 'i'},
{"object-i", no_arg, 'i'},
{"object", no_arg, 'i'},
{"objec", no_arg, 'i'},
{"obje", no_arg, 'i'},
{"obj", no_arg, 'i'},
{"ob", no_arg, 'i'},
{"block", require_arg, 'k'},
{"bloc", require_arg, 'k'},
{"blo", require_arg, 'k'},
{"bl", require_arg, 'k'},
{"soft-link", require_arg, 'l'},
{"soft-lin", require_arg, 'l'},
{"soft-li", require_arg, 'l'},
{"soft-l", require_arg, 'l'},
{"soft", require_arg, 'l'},
{"sof", require_arg, 'l'},
{"format", require_arg, 'm'},
{"contents", optional_arg, 'n'},
{"output", optional_arg, 'o'},
{"outpu", optional_arg, 'o'},
{"outp", optional_arg, 'o'},
{"out", optional_arg, 'o'},
{"ou", optional_arg, 'o'},
{"properties", no_arg, 'p'},
{"sort_by", require_arg, 'q'},
{"string", no_arg, 'r'},
{"strin", no_arg, 'r'},
{"start", require_arg, 's'},
{"star", require_arg, 's'},
{"sta", require_arg, 's'},
{"stride", require_arg, 'S'},
{"strid", require_arg, 'S'},
{"string", no_arg, 'r'},
{"strin", no_arg, 'r'},
{"datatype", require_arg, 't'},
{"datatyp", require_arg, 't'},
{"dataty", require_arg, 't'},
{"datat", require_arg, 't'},
{"use-dtd", no_arg, 'u'},
{"use-dt", no_arg, 'u'},
{"use-d", no_arg, 'u'},
@ -173,33 +156,50 @@ static struct long_options l_opts[] = {{"help", no_arg, 'h'},
{"use", no_arg, 'u'},
{"us", no_arg, 'u'},
{"u", no_arg, 'u'},
{"vds-view-first-missing", no_arg, 'v'},
{"width", require_arg, 'w'},
{"widt", require_arg, 'w'},
{"wid", require_arg, 'w'},
{"wi", require_arg, 'w'},
{"xml", no_arg, 'x'},
{"xm", no_arg, 'x'},
{"noindex", no_arg, 'y'},
{"sort_order", require_arg, 'z'},
{"onlyattr", optional_arg, 'A'},
{"superblock", no_arg, 'B'},
{"boot-block", no_arg, 'B'},
{"boot-bloc", no_arg, 'B'},
{"boot-blo", no_arg, 'B'},
{"boot-bl", no_arg, 'B'},
{"boot-b", no_arg, 'B'},
{"boot", no_arg, 'B'},
{"boo", no_arg, 'B'},
{"bo", no_arg, 'B'},
{"no-compact-subset", no_arg, 'C'},
{"xml-dtd", require_arg, 'D'},
{"xml-dt", require_arg, 'D'},
{"xml-d", require_arg, 'D'},
{"enable-error-stack", optional_arg, 'E'},
{"form", require_arg, 'F'},
{"vds-gap-size", require_arg, 'G'},
{"header", no_arg, 'H'},
{"heade", no_arg, 'H'},
{"head", no_arg, 'H'},
{"hea", no_arg, 'H'},
{"packed-bits", require_arg, 'M'},
{"any_path", require_arg, 'N'},
{"ddl", optional_arg, 'O'},
{"region", no_arg, 'R'},
{"stride", require_arg, 'S'},
{"strid", require_arg, 'S'},
{"version", no_arg, 'V'},
{"versio", no_arg, 'V'},
{"versi", no_arg, 'V'},
{"vers", no_arg, 'V'},
{"ver", no_arg, 'V'},
{"ve", no_arg, 'V'},
{"xml-ns", require_arg, 'X'},
{"xml-n", require_arg, 'X'},
{"xml", no_arg, 'x'},
{"xm", no_arg, 'x'},
{"onlyattr", optional_arg, 'A'},
{"escape", no_arg, 'e'},
{"noindex", no_arg, 'y'},
{"binary", optional_arg, 'b'},
{"form", require_arg, 'F'},
{"sort_by", require_arg, 'q'},
{"sort_order", require_arg, 'z'},
{"format", require_arg, 'm'},
{"region", no_arg, 'R'},
{"enable-error-stack", optional_arg, 'E'},
{"packed-bits", require_arg, 'M'},
{"no-compact-subset", no_arg, 'C'},
{"ddl", optional_arg, 'O'},
{"any_path", require_arg, 'N'},
{"vds-view-first-missing", no_arg, 'v'},
{"vds-gap-size", require_arg, 'G'},
{"s3-cred", require_arg, '$'},
{"hdfs-attrs", require_arg, '#'},
{"vol-value", require_arg, '1'},