SecBSD's official ports repository

This commit is contained in:
purplerain 2023-08-16 22:26:55 +00:00
commit 2c0afcbbf3
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
64331 changed files with 5339189 additions and 0 deletions

View file

@ -0,0 +1,48 @@
Don't force quit in signal handler, since we might double-free things.
--- playsound/playsound.c.orig Fri Jun 1 02:55:31 2012
+++ playsound/playsound.c Fri Jun 1 02:57:26 2012
@@ -312,22 +312,11 @@ void sigint_catcher(int signum)
Uint32 ticks = SDL_GetTicks();
assert(signum == SIGINT);
+ if (done_flag < 0)
+ return; /* mashing CTRL-C, we get it already. */
- if ((last_sigint != 0) && (ticks - last_sigint < 500))
- {
- SDL_PauseAudio(1);
- SDL_CloseAudio();
- Sound_Quit();
- SDL_Quit();
- deinit_archive();
- exit(1);
- } /* if */
-
- else
- {
- last_sigint = ticks;
- done_flag = 1;
- } /* else */
+ done_flag = ((last_sigint != 0) && (ticks - last_sigint < 500)) ? -1 : 1;
+ last_sigint = ticks;
} /* sigint_catcher */
#endif
@@ -1050,12 +1039,15 @@ int main(int argc, char **argv)
Sound_FreeSample(sample);
close_archive(filename);
+
+ if (done_flag < 0)
+ break;
} /* for */
Sound_Quit();
SDL_Quit();
deinit_archive();
- return(0);
+ return((done_flag < 0) ? 1 : 0);
} /* main */
/* end of playsound.c ... */