First off I want to let you know that I am fairly new to modifying source code, but I thought I might try to help.
I looked over the code for mfitsio.c and I noticed at line 1442 where the error stated
Code:
mfitsio.c:1442: error: missing terminating " character
Here's the code in the mfitsio.c file. Lines 1436 to 1445.
Code:
if (data2[ i ] < 1 || data2[ i ] > naxes[ i ]) {
MFITSIO_PRINTF("37 Invalid component at index %d of ending"
" pixel: %d\n", i + 1, (int)data2[ i ]);
MFITSIO_ERR("Ending coordinate out of range.");
}
if (data2[ i ] < data1[ i ]) {
MFITSIO_PRINTF("38 Component at index %d of starting pixel must be
less than or equal to component %d of ending pixel.\n");
MFITSIO_ERR("Invalid subset (hyper)region.");
}
If you look at the first MFITSIO_PRINTF() you can see that each part of the string ends in ", however, the second one, doesn't. I wrote a simple program to see what would happen if I had strings like those in a printf() and sure enough, the " had to be on both lines, also, when I tried to compile the simple program I wrote with the lines broken it generated quite a few errors that were just not there. So maybe this will fix it, and probably be a good idea to write to the people who work on the software about it, too, if this fixes it.
<Edit> I just checked the newer files for mfitsio 1.2.4, it has this problem fixed. So you might try to compile that one instead.