biod.pnpi.spb.ru
/
alexxy
/
gromacs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Support custom default extension for FileNameOption
[alexxy/gromacs.git]
/
src
/
gromacs
/
commandline
/
pargs.cpp
diff --git
a/src/gromacs/commandline/pargs.cpp
b/src/gromacs/commandline/pargs.cpp
index d0184d1a8302927112416ac263f93a298110eb2a..5a16f3cf48ba90b203322c83f95f3f9e4dd419a5 100644
(file)
--- a/
src/gromacs/commandline/pargs.cpp
+++ b/
src/gromacs/commandline/pargs.cpp
@@
-329,16
+329,23
@@
void OptionsAdapter::filenmToOptions(Options *options, t_filenm *fnm)
const bool bMultiple = ((fnm->flag & ffMULT) != 0);
const char *const name = &fnm->opt[1];
const char * defName = fnm->fn;
const bool bMultiple = ((fnm->flag & ffMULT) != 0);
const char *const name = &fnm->opt[1];
const char * defName = fnm->fn;
+ int defType = -1;
if (defName == NULL)
{
defName = ftp2defnm(fnm->ftp);
}
if (defName == NULL)
{
defName = ftp2defnm(fnm->ftp);
}
+ else if (std::strchr(defName, '.') != NULL)
+ {
+ defType = fn2ftp(defName);
+ GMX_RELEASE_ASSERT(defType != efNR,
+ "File name option specifies an invalid extension");
+ }
fileNameOptions_.push_back(FileNameData(fnm));
FileNameData &data = fileNameOptions_.back();
data.optionInfo = options->addOption(
FileNameOption(name).storeVector(&data.values)
fileNameOptions_.push_back(FileNameData(fnm));
FileNameData &data = fileNameOptions_.back();
data.optionInfo = options->addOption(
FileNameOption(name).storeVector(&data.values)
- .defaultBasename(defName).
legacyType(fnm->ftp
)
- .legacyOptionalBehavior()
+ .defaultBasename(defName).
defaultType(defType
)
+ .legacy
Type(fnm->ftp).legacy
OptionalBehavior()
.readWriteFlags(bRead, bWrite).required(!bOptional)
.libraryFile(bLibrary).multiValue(bMultiple)
.description(ftp2desc(fnm->ftp)));
.readWriteFlags(bRead, bWrite).required(!bOptional)
.libraryFile(bLibrary).multiValue(bMultiple)
.description(ftp2desc(fnm->ftp)));