diff options
author | Wohlstand <admin@wohlnet.ru> | 2020-08-31 13:23:19 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2020-08-31 13:23:19 +0300 |
commit | 674e713dd2675f467db47509845607e2d35154bd (patch) | |
tree | 2b1d6a267c915ba2abb4778e7c7f347c740d285a | |
parent | 46fffa615b3012a51d6523143a4505b80dcd78d1 (diff) | |
download | libADLMIDI-674e713dd2675f467db47509845607e2d35154bd.tar.gz libADLMIDI-674e713dd2675f467db47509845607e2d35154bd.tar.bz2 libADLMIDI-674e713dd2675f467db47509845607e2d35154bd.zip |
ADLMIDI2: A proper screen clear on quit
-rw-r--r-- | utils/adlmidi-2/midiplay.cc | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/utils/adlmidi-2/midiplay.cc b/utils/adlmidi-2/midiplay.cc index f48828c..848f652 100644 --- a/utils/adlmidi-2/midiplay.cc +++ b/utils/adlmidi-2/midiplay.cc @@ -315,6 +315,16 @@ public: RawPrn("\33[?25h"); // show cursor std::fflush(stderr); } + void ClearScreen() + { +#ifdef __DJGPP__ + Color(7); + clrscr(); +#else + std::fprintf(stderr, "\e[0m\033[0;0H\033[2J"); + std::fflush(stderr); +#endif + } void VidPut(char c) { #ifndef SUPPORT_VIDEO_OUTPUT @@ -1502,17 +1512,12 @@ static void TidyupAndExit(int sig) { bool hookSignal = false; hookSignal |= (sig == SIGINT); - #ifdef __DJGPP__ - hookSignal |= (sig == SIGQUIT); - #endif +#ifdef __DJGPP__ + hookSignal |= (sig == SIGQUIT); +#endif if(hookSignal) { UI.ShowCursor(); - UI.Color(7); - std::fflush(stderr); - //signal(SIGINT, SIG_DFL); - //raise(SIGINT); - std::printf("\nBye!\n"); QuitFlag = true; } } @@ -2166,8 +2171,12 @@ int main(int argc, char **argv) #endif /* djgpp */ + UI.ClearScreen(); + adl_close(myDevice); + std::printf("Bye!\n"); + if(FakeDOSshell) { std::fprintf(stderr, |