aboutsummaryrefslogtreecommitdiff
path: root/utils/adlmidi-2
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-08-31 13:23:19 +0300
committerWohlstand <admin@wohlnet.ru>2020-08-31 13:23:19 +0300
commit674e713dd2675f467db47509845607e2d35154bd (patch)
tree2b1d6a267c915ba2abb4778e7c7f347c740d285a /utils/adlmidi-2
parent46fffa615b3012a51d6523143a4505b80dcd78d1 (diff)
downloadlibADLMIDI-674e713dd2675f467db47509845607e2d35154bd.tar.gz
libADLMIDI-674e713dd2675f467db47509845607e2d35154bd.tar.bz2
libADLMIDI-674e713dd2675f467db47509845607e2d35154bd.zip
ADLMIDI2: A proper screen clear on quit
Diffstat (limited to 'utils/adlmidi-2')
-rw-r--r--utils/adlmidi-2/midiplay.cc25
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,