$NetBSD: patch-ah,v 1.5 2010/02/22 21:58:47 wiz Exp $ --- linuxdoom-1.10/i_sound.c.orig Mon Dec 22 19:57:15 1997 +++ linuxdoom-1.10/i_sound.c Thu Feb 3 02:56:08 2000 @@ -26,2 +26,3 @@ rcsid[] = "$Id: i_unix.c,v 1.5 1997/02/0 +#include #include @@ -43,4 +44,7 @@ rcsid[] = "$Id: i_unix.c,v 1.5 1997/02/0 +#ifdef LINUX // Linux voxware output. #include +#endif + @@ -165,3 +169,2 @@ myioctl int rc; - extern int errno; @@ -484,4 +487,8 @@ I_StartSound { - fprintf(sndserver, "p%2.2x%2.2x%2.2x%2.2x\n", id, pitch, vol, sep); - fflush(sndserver); + if (fprintf(sndserver, "p%2.2x%2.2x%2.2x%2.2x\n", id, pitch, vol, sep) + <= 0 || fflush(sndserver) ) + { + fprintf(stderr, "Unable to write to sndserver - closing\n"); + sndserver = 0; + } } @@ -747,6 +754,16 @@ I_InitSound() else - sprintf(buffer, "%s", sndserver_filename); +#ifdef INSTALL_PREFIX + { + sprintf(buffer, INSTALL_PREFIX"/bin/%s", sndserver_filename); + /* sndserver won't find its wadfile if DOMMWADDIR isn't set - HF */ + if(!getenv("DOOMWADDIR")) + setenv("DOOMWADDIR", INSTALL_PREFIX"/share/doom", 1); + } +#else + strcpy(buffer, sndserver_filename); +#endif + // start sound process - if ( !access(buffer, X_OK) ) + if (!access(buffer, X_OK) ) { @@ -754,2 +771,4 @@ I_InitSound() sndserver = popen(buffer, "w"); + /* Don't die with SIGPIPE if the sndserver has problems */ + signal(SIGPIPE, (void (*)(int)) SIG_IGN); }