* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/* This file is completely threadsafe - keep it that way! */
#include "gmxpre.h"
-#include "gromacs/commandline/pargs.h"
-
-#include "config.h"
+#include "pargs.h"
#include <cstdlib>
#include <cstring>
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);
}
+ 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)
- .defaultBasename(defName).legacyType(fnm->ftp)
- .legacyOptionalBehavior()
+ .defaultBasename(defName).defaultType(defType)
+ .legacyType(fnm->ftp).legacyOptionalBehavior()
.readWriteFlags(bRead, bWrite).required(!bOptional)
.libraryFile(bLibrary).multiValue(bMultiple)
.description(ftp2desc(fnm->ftp)));