Fixed some severe problems in the run-number-digit determination of msr2data introduced in late 2010

This commit is contained in:
Bastian M. Wojek 2011-07-30 22:05:57 +00:00
parent 13410aa97c
commit bff5b6c043
2 changed files with 16 additions and 12 deletions

View File

@ -14,6 +14,7 @@ NEW the chi^2 calculation in single-histogram and asymmetry fits is parallelized
if musrfit is built using a compiler supporting OpenMP (e.g. GCC >= 4.2)
Using --disable-omp this feature can be disabled on the configure level.
NEW any2many: force the user to define the exact NeXus ouput format (HDF4,HDF5,XML)
FIXED some severe issues in the run-number-digit determination of msr2data introduced in late 2010
FIXED a musrview exception error when starting with t0's very much off to the positive side in the msr-file (MUSR-199)
FIXED a linking problem when only shared libraries are built on Cygwin
FIXED the problem that in certain environments XML files could not be parsed (MUSR-122)

View File

@ -176,6 +176,8 @@ int PMsr2Data::DetermineRunNumberDigits(unsigned int runNo, bool normalMode) con
tempRunNumber.width(fRunNumberDigits);
tempRunNumber << runNo;
fRunNumberDigits = tempRunNumber.str().length();
string line, firstOnLine;
istringstream strLine;
@ -188,17 +190,18 @@ int PMsr2Data::DetermineRunNumberDigits(unsigned int runNo, bool normalMode) con
strLine >> firstOnLine;
string::size_type loc = firstOnLine.rfind(tempRunNumber.str());
if ( loc != string::npos ) {
while ( --loc >= 0 ) {
if(isdigit(line.at(loc))) {
while ( loc > 0 ) {
if(isdigit(firstOnLine.at(--loc))) {
++fRunNumberDigits;
} else {
break;
}
}
in->close();
delete in;
in = 0;
fRunVectorIter = fRunVector.begin(); // set back the runlist-iterator which might have changed during the search for the correct file
return 0;
}
}
} else {
cerr << endl << ">> msr2data: **ERROR** The first processed run file number does not match the \"file index\"!";
cerr << endl << ">> msr2data: **ERROR** The number of digits to be used for formatting the run numbers cannot be determined!";