It should now be possible to build a static version of musrfit and shared libraries for the user functions.
This is needed on systems which do not support linking static libraries to shared ones (like Cygwin).
These changes still need to be tested on Cygwin, especially with user functions implementing the "global interface".
Now both have a line break at the end--before this has only been true for the asymmetry data.
(If the line break is not needed it should be consistently removed and replaced by a cout.flush()
followed by a line break when musrview is terminated.)
The default (if no option is given) is now that only for newly generated or empty files the respective header will be written.
If data is appended to an existing file, it is assumed that the header also is present already!
In this case only the new data blocks are appended directly after to existing ones.
[Most probably this behavior is broken if used in a native Windows environment, however, this is not the only problem there...]
The previous option "noheader" is preserved.
It suppresses the output of the header in any case.
If new data are appended to an existing output file this is done at the end of the file---just as before!
A new option "header" has been introduced.
If this is given, the output of the header is forced---no matter if a file (probably with header) existed before or not.
Also in this case all new data (and the header) are appended at the end of the output file if it existed already.
In case both options are given, the default behavior is activated.
Non-existing msr-files in the specified list of runs are now ignored as far as possible!
Still a warning for each non-existing file will be issued!
Before, encountering such a file led to the termination of the program.
Also the writing of the empty lines at the end of the data-output-file should be fixed now in this case.
It is needed to get a "correct db-file".
Before, when the program has been aborted before the last run was processed, these empty lines had not been appended to the file.
That these did not surface earlier can only be due to the musrgui/musredit interface which has additional safeguards.
Obviously no one uses this program from the command line (my guess).
run-specific parameters. This might help to get overall better starting parameters for a global fit.
For a few more details and an example, see the documentation.
Any testing is very welcome.
(i) It was not always possible to zoom the x-range down below some threshold. The reason was that on overlay histogram frame is needed which is invoked by DrawFrame from the DataTheory Pad. This by default has only 1000 'bins'. If the plotted histogram had more bins (e.g. 16000 bins) zooming was only possible down to the relative ratio (16 for the example). This is fixed now by increasing the 'bins' of the overlay histogram frame.
(ii) When toggling between data view and difference view, the x-range was subtly shrinking.
Files that are newly generated through msr2data from now on will only write two successive empty lines (at any occurence).
Any further empty lines will be deleted.