Terminal output when using xmp in MSYS2 is fairly unresponsive—typically it takes between 1-2 patterns into the song before any song information is printed, and the current order/row/time lags behind. The problem appears to be that xmp assumes stderr is unbuffered but, for whatever reason, MSYS2 has a fully buffered stderr. Adding an fflush() to report() in main.c makes the terminal output as responsive as it is in Linux. I don't think this is required for any of the other fprintf usages since those are always followed by report() or exit().
Terminal output when using xmp in MSYS2 is fairly unresponsive—typically it takes between 1-2 patterns into the song before any song information is printed, and the current order/row/time lags behind. The problem appears to be that xmp assumes stderr is unbuffered but, for whatever reason, MSYS2 has a fully buffered stderr. Adding an fflush() to report() in main.c makes the terminal output as responsive as it is in Linux. I don't think this is required for any of the other fprintf usages since those are always followed by report() or exit().