Introduced one more safeguard against trys to hand over run numbers outside the range of an unsigned integer to msr2data

This commit is contained in:
Bastian M. Wojek 2010-11-10 23:30:24 +00:00
parent 2e49d42cfb
commit d586158967
2 changed files with 78 additions and 67 deletions

View File

@ -5,10 +5,12 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
musrfit 0.8.0 - changes since 0.7.0 musrfit 0.8.0 - changes since 0.7.0
==================================
NEW added the option to split a user function into a global and run-block related part (see MUSR-134). If the NEW added the option to split a user function into a global and run-block related part (see MUSR-134). If the
global option is used, this can potentially increase the efficiency up to the number of run-blocks since global option is used, this can potentially increase the efficiency up to the number of run-blocks since
the time consuming calculations are done only once per changed parameter set. Examples where this approach the time consuming calculations are done only once per changed parameter set. Examples where this approach
is profitable are: Abrikosov vortex lattice fits, Nonlocal Meissner screening. is profitable are: Abrikosov vortex lattice fits, Nonlocal Meissner screening.
CHANGED maximum possible run number for the use in msr2data to numeric_limits<unsigned int>::max() (MUSR-155)
musrfit 0.7.0 - changes since 0.6.0 musrfit 0.7.0 - changes since 0.6.0
=================================== ===================================

View File

@ -301,6 +301,7 @@ int main(int argc, char *argv[])
string run_list; string run_list;
string msrExtension; string msrExtension;
try {
if (arg[0].at(0) == '[') { // In case a list of runs is given by [...] if (arg[0].at(0) == '[') { // In case a list of runs is given by [...]
runTAG = 1; runTAG = 1;
@ -388,6 +389,14 @@ int main(int argc, char *argv[])
} }
} }
} }
}
catch(boost::bad_lexical_cast &) {
cout << endl;
cout << ">> msr2data: **ERROR** At least one given run number is out of range! Quitting..." << endl;
run_vec.clear();
arg.clear();
return -1;
}
// check if the output format is DB or data // check if the output format is DB or data
bool db(msr2data_useOption(arg, "data")); bool db(msr2data_useOption(arg, "data"));