summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Kursawe <phosphan@gentoo.org>2003-04-02 15:35:08 +0000
committerPatrick Kursawe <phosphan@gentoo.org>2003-04-02 15:35:08 +0000
commitc76b306f60b55ff2317038e92351cc2565f0cf96 (patch)
tree6dfd005fd155d6e6a769780baa57a483a43ab624 /media-sound/wavplay
parentMarked stable on hppa. (diff)
downloadgentoo-2-c76b306f60b55ff2317038e92351cc2565f0cf96.tar.gz
gentoo-2-c76b306f60b55ff2317038e92351cc2565f0cf96.tar.bz2
gentoo-2-c76b306f60b55ff2317038e92351cc2565f0cf96.zip
new package, closes bug 660
Diffstat (limited to 'media-sound/wavplay')
-rw-r--r--media-sound/wavplay/ChangeLog10
-rw-r--r--media-sound/wavplay/files/digest-wavplay-1.41
-rw-r--r--media-sound/wavplay/files/wavplay-1.4.patch757
-rw-r--r--media-sound/wavplay/wavplay-1.4.ebuild35
4 files changed, 803 insertions, 0 deletions
diff --git a/media-sound/wavplay/ChangeLog b/media-sound/wavplay/ChangeLog
new file mode 100644
index 000000000000..66a4f7e161da
--- /dev/null
+++ b/media-sound/wavplay/ChangeLog
@@ -0,0 +1,10 @@
+# ChangeLog for media-sound/wavplay
+# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/wavplay/ChangeLog,v 1.1 2003/04/02 15:35:08 phosphan Exp $
+
+*wavplay-1.4 (02 Apr 2003)
+
+ 02 Apr 2003; Patrick Kursawe <phosphan@gentoo.org> ChangeLog,
+ wavplay-1.4.ebuild, files/digest-wavplay-1.4 :
+ Initial import. Closes bug #660 which was a submission by
+ mikepolniak <mikpolniak@adelphia.net>.
diff --git a/media-sound/wavplay/files/digest-wavplay-1.4 b/media-sound/wavplay/files/digest-wavplay-1.4
new file mode 100644
index 000000000000..8988cd0726d9
--- /dev/null
+++ b/media-sound/wavplay/files/digest-wavplay-1.4
@@ -0,0 +1 @@
+MD5 726c58f47c0dbc3b58ff6c42300d518e wavplay-1.4.tar.gz 63549
diff --git a/media-sound/wavplay/files/wavplay-1.4.patch b/media-sound/wavplay/files/wavplay-1.4.patch
new file mode 100644
index 000000000000..689a96de8f8c
--- /dev/null
+++ b/media-sound/wavplay/files/wavplay-1.4.patch
@@ -0,0 +1,757 @@
+diff -u wavplay-1.4/Makefile wavplay-1.4-new/Makefile
+--- wavplay-1.4/Makefile 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/Makefile 2003-03-11 11:15:53.000000000 +0100
+@@ -38,7 +38,7 @@
+ #----------------------------------------------------------------------
+ # If you are running a 386 you should comment this line out.
+ #
+-CPU=-m486
++# CPU=-m486
+
+ #----------------------------------------------------------------------
+ # If you are experiencing troubles (like core dumps!), then uncomment
+@@ -47,7 +47,7 @@
+ # adjust the STRIP option to suit compile mode:
+ #
+ #DEBUG=-g
+-OPT=-O2
++# OPT=-O2
+
+ #----------------------------------------------------------------------
+ # When using 'DEBUG=-g' above, then comment out the 'strip' line:
+@@ -115,7 +115,7 @@
+ # Environment variable WAVPLAYPATH will override this value at runtime, if
+ # present.
+ #
+-PLAYPATH= -DWAVPLAYPATH=\"$(INSTDIR)/wavplay\"
++PLAYPATH= -DWAVPLAYPATH=\"/usr/bin/wavplay\"
+
+ #----------------------------------------------------------------------
+ # Minimum DSP sampling rate (default is 4000)
+@@ -164,7 +164,7 @@
+ # installed).
+ #
+ #CUSTINCL= -I/usr/X11R6/include/X11 -I/usr/local/lesstif/include/Xm
+-
++CUSTINCL= -I /usr/X11R6/include
+ #----------------------------------------------------------------------
+ # Normally, you shouldn't need to change anything beyond this point:
+ #----------------------------------------------------------------------
+@@ -173,8 +173,6 @@
+ CUSTMOPTS=$(STDGETOPTS) $(PLAYPATH) $(DSPMIN) $(DSPMAX) $(DSPPATH) $(DSPLOCKS) $(USERES) $(NOEDITRES) $(SCHED_PRIORITY)
+ ELF= # -fPIC
+ INCL= -I. $(CUSTINCL)
+-CCFLAGS= -c $(DEBUG)$(OPT) $(CPU) $(ELF) -fhandle-exceptions $(CUSTMOPTS) -Wall -Wstrict-prototypes
+-CFLAGS= -c $(DEBUG)$(OPT) $(CPU) $(ELF) -Wall -Wstrict-prototypes $(CUSTMOPTS)
+ CC= gcc
+ CP= g++
+
+@@ -184,10 +182,10 @@
+ WVDMPO= wavdump.o
+
+ .cc.o:
+- $(CP) $(CCFLAGS) $(INCL) $<
++ $(CP) -c $(CCFLAGS) $(CUSTMOPTS) $(INCL) $<
+
+ .c.o:
+- $(CC) $(CFLAGS) $(INCL) $<
++ $(CC) -c $(CFLAGS) $(CUSTMOPTS) $(INCL) $<
+
+ all: wavplay wavrec xltwavplay
+
+diff -u wavplay-1.4/client.c wavplay-1.4-new/client.c
+--- wavplay-1.4/client.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/client.c 2003-03-11 10:21:50.000000000 +0100
+@@ -135,7 +135,7 @@
+ * communications.
+ */
+ if ( (svrIPC = MsgCreate()) < 0 ) {
+- err("%s: creating message queue",sys_errlist[errno]);
++ err("%s: creating message queue",strerror(errno));
+ return -1;
+ }
+
+@@ -153,12 +153,12 @@
+ else execl(env_WAVPLAYPATH,buf,NULL); /* No debug yet */
+
+ /* Returns only if error occurs */
+- fprintf(stderr,"%s: exec of %s\n",sys_errlist[errno],env_WAVPLAYPATH);
++ fprintf(stderr,"%s: exec of %s\n",strerror(errno),env_WAVPLAYPATH);
+ exit(2);
+
+ } else if ( svrPID < 0 ) {
+ e = errno;
+- err("%s: forking the server process",sys_errlist[errno]);
++ err("%s: forking the server process",strerror(errno));
+ MsgClose(svrIPC);
+ errno = e; /* Restore error code */
+ return -1;
+@@ -216,7 +216,7 @@
+ if ( (rc = MsgSend(svrIPC,&msg,flags,MSGNO_SRVR)) != 0 && erf != NULL )
+ err("%s: Sending server message '%s'",
+ msg_name(cmd),
+- sys_errlist[errno]);
++ strerror(errno));
+ return rc; /* Zero indicates success */
+ }
+
+@@ -236,7 +236,7 @@
+ msg.bytes = strlen(msg.u.tosvr_path.path);
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'path'",sys_errlist[errno]);
++ err("%s: Sending server message 'path'",strerror(errno));
+ return z;
+ }
+
+@@ -255,7 +255,7 @@
+ msg.bytes = sizeof msg.u.tosvr_bits;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'bits'",sys_errlist[errno]);
++ err("%s: Sending server message 'bits'",strerror(errno));
+
+ return z;
+ }
+@@ -275,7 +275,7 @@
+ msg.bytes = sizeof msg.u.tosvr_start_sample;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'start_sample'",sys_errlist[errno]);
++ err("%s: Sending server message 'start_sample'",strerror(errno));
+
+ return z;
+ }
+@@ -294,7 +294,7 @@
+ msg.bytes = sizeof msg.u.tosvr_sampling_rate;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'sampling_rate'",sys_errlist[errno]);
++ err("%s: Sending server message 'sampling_rate'",strerror(errno));
+
+ return z;
+ }
+@@ -314,7 +314,7 @@
+ msg.bytes = sizeof msg.u.tosvr_chan;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'tosvr_chan'",sys_errlist[errno]);
++ err("%s: Sending server message 'tosvr_chan'",strerror(errno));
+
+ return z;
+ }
+@@ -336,7 +336,7 @@
+ msg.bytes = sizeof msg.u.tosvr_record;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'tosvr_record'",sys_errlist[errno]);
++ err("%s: Sending server message 'tosvr_record'",strerror(errno));
+
+ return z;
+ }
+@@ -356,7 +356,7 @@
+ msg.bytes = sizeof msg.u.tosvr_debug;
+
+ if ( (z = MsgToServer(svrIPC,&msg,flags)) != 0 && erf != NULL )
+- err("%s: Sending server message 'tosvr_debug'",sys_errlist[errno]);
++ err("%s: Sending server message 'tosvr_debug'",strerror(errno));
+
+ return z;
+ }
+diff -u wavplay-1.4/file.c wavplay-1.4-new/file.c
+--- wavplay-1.4/file.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/file.c 2003-03-11 10:30:30.000000000 +0100
+@@ -106,7 +106,7 @@
+ WAVFILE *wfile = (WAVFILE *) malloc(sizeof (WAVFILE));
+
+ if ( wfile == NULL ) {
+- err("%s: Allocating WAVFILE structure",sys_errlist[ENOMEM]);
++ err("%s: Allocating WAVFILE structure",strerror(ENOMEM));
+ return NULL;
+ }
+
+@@ -114,7 +114,7 @@
+
+ if ( (wfile->Pathname = strdup(Pathname)) == NULL ) {
+ free(wfile);
+- err("%s: Allocating storage for WAVFILE.Pathname",sys_errlist[ENOMEM]);
++ err("%s: Allocating storage for WAVFILE.Pathname",strerror(ENOMEM));
+ return NULL;
+ }
+
+@@ -166,14 +166,14 @@
+ */
+ if ( (wfile->fd = open(wfile->Pathname,O_RDONLY)) < 0 ) {
+ err("%s:\nOpening WAV file %s",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ goto errxit;
+ }
+
+ if ( lseek(wfile->fd,0L,SEEK_SET) != 0L ) {
+ err("%s:\nRewinding WAV file %s",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ goto errxit; /* Wav file must be seekable device */
+ }
+@@ -205,12 +205,12 @@
+ * Seek to byte count and read dbytes:
+ */
+ if ( lseek(wfile->fd,offset,SEEK_SET) != offset ) {
+- err("%s:\nSeeking to WAV data in %s",sys_errlist[errno],wfile->Pathname);
++ err("%s:\nSeeking to WAV data in %s",strerror(errno),wfile->Pathname);
+ goto errxit; /* Seek failure */
+ }
+
+ if ( read(wfile->fd,ubuf,4) != 4 ) {
+- err("%s:\nReading dbytes from %s",sys_errlist[errno],wfile->Pathname);
++ err("%s:\nReading dbytes from %s",strerror(errno),wfile->Pathname);
+ goto errxit;
+ }
+
+@@ -308,7 +308,7 @@
+ v_erf = erf; /* Set error reporting function */
+
+ if ( wfile == NULL ) {
+- err("%s: WAVFILE pointer is NULL!",sys_errlist[EINVAL]);
++ err("%s: WAVFILE pointer is NULL!",strerror(EINVAL));
+ errno = EINVAL;
+ return -1;
+ }
+@@ -322,9 +322,9 @@
+ if ( (e = WaveReadHeader(wfile->fd,&channels,&samplerate,&sample_bits,&samples,&datastart,_v_erf)) != 0 )
+ err("%s:\nReading WAV header from %s",emsg,wfile->Pathname);
+ else if ( lseek(wfile->fd,(long)(datastart-4),SEEK_SET) != (long)(datastart-4) )
+- err("%s:\nSeeking in WAV header file %s",sys_errlist[errno],wfile->Pathname);
++ err("%s:\nSeeking in WAV header file %s",strerror(errno),wfile->Pathname);
+ else if ( write(wfile->fd,&wfile->wavinfo.Samples,sizeof wfile->wavinfo.Samples) != sizeof wfile->wavinfo.Samples )
+- err("%s:\nWriting in WAV header file %s",sys_errlist[errno],wfile->Pathname);
++ err("%s:\nWriting in WAV header file %s",strerror(errno),wfile->Pathname);
+ else {
+ /*
+ * 'data' chunk was updated OK: Now we have to update the RIFF block
+@@ -333,24 +333,24 @@
+ */
+ if ( ftruncate(wfile->fd,(size_t)fpos) )
+ err("%s:\nTruncating file %s to correct size",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ else if ( lseek(wfile->fd,4L,SEEK_SET) < 0L )
+ err("%s:\nSeek 4 for RIFF block update of %s",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ else {
+ fpos -= 8; /* Byte count for RIFF block */
+ if ( write(wfile->fd,&fpos,sizeof fpos) != sizeof fpos )
+ err("%s:\nUpdate of RIFF block count in %s failed",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ }
+ }
+ }
+
+ if ( close(wfile->fd) < 0 ) {
+- err("%s:\nClosing WAV file",sys_errlist[errno]);
++ err("%s:\nClosing WAV file",strerror(errno));
+ e = errno; /* Save errno value to return */
+ }
+
+@@ -385,7 +385,7 @@
+ */
+ if ( (wfile->fd = open(wfile->Pathname,O_RDWR|O_TRUNC|O_CREAT,0666)) < 0 ) {
+ err("%s:\nOpening %s for WAV writing",
+- sys_errlist[errno],
++ strerror(errno),
+ wfile->Pathname);
+ return NULL; /* Open error */
+ }
+@@ -427,7 +427,7 @@
+ v_erf = erf; /* Set error reporting function */
+
+ if ( dfile == NULL ) {
+- err("%s: Opening DSP device",sys_errlist[errno=ENOMEM]);
++ err("%s: Opening DSP device",strerror(errno=ENOMEM));
+ return NULL;
+ }
+
+@@ -439,7 +439,7 @@
+ */
+ if ( (dfile->fd = open(env_AUDIODEV,omode,0)) < 0 ) {
+ err("%s:\nOpening audio device %s",
+- sys_errlist[errno],
++ strerror(errno),
+ env_AUDIODEV);
+ goto errxit;
+ }
+@@ -449,7 +449,7 @@
+ * setting sampling rate etc.
+ */
+ if ( ioctl(dfile->fd,SNDCTL_DSP_GETBLKSIZE,&dfile->dspblksiz) < 0 ) {
+- err("%s: Optaining DSP's block size",sys_errlist[errno]);
++ err("%s: Optaining DSP's block size",strerror(errno));
+ goto errxit;
+ }
+
+@@ -460,7 +460,7 @@
+ /* and 64 for 8130Hz, 8 bit */
+ if ( dfile->dspblksiz < 32 || dfile->dspblksiz > 65536 ) {
+ err("%s: Audio block size (%d bytes)",
+- sys_errlist[errno=EINVAL],
++ strerror(errno=EINVAL),
+ (int)dfile->dspblksiz);
+ goto errxit;
+ }
+@@ -469,7 +469,7 @@
+ * Allocate a buffer to do the I/O through:
+ */
+ if ( (dfile->dspbuf = (char *) malloc(dfile->dspblksiz)) == NULL ) {
+- err("%s: For DSP I/O buffer",sys_errlist[errno]);
++ err("%s: For DSP I/O buffer",strerror(errno));
+ goto errxit;
+ }
+
+@@ -478,7 +478,7 @@
+ */
+ t = wfile->wavinfo.DataBits;
+ if ( ioctl(dfile->fd,SNDCTL_DSP_SAMPLESIZE,&t) < 0 ) {
+- err("%s: Setting DSP to %u bits",sys_errlist[errno],(unsigned)t);
++ err("%s: Setting DSP to %u bits",strerror(errno),(unsigned)t);
+ goto errxit;
+ }
+
+@@ -488,7 +488,7 @@
+ t = wfile->wavinfo.Channels == Stereo ? 1 : 0;
+ if ( ioctl(dfile->fd,SNDCTL_DSP_STEREO,&t) < 0 ) {
+ err("%s: Unable to set DSP to %s mode",
+- sys_errlist[errno],
++ strerror(errno),
+ t?"Stereo":"Mono");
+ goto errxit;
+ }
+@@ -498,7 +498,7 @@
+ */
+ ul = wfile->wavinfo.SamplingRate;
+ if ( ioctl(dfile->fd,SNDCTL_DSP_SPEED,&ul) < 0 ) {
+- err("Unable to set audio sampling rate",sys_errlist[errno]);
++ err("Unable to set audio sampling rate",strerror(errno));
+ goto errxit;
+ }
+
+@@ -530,7 +530,7 @@
+ v_erf = erf; /* Set error reporting function */
+
+ if ( dfile == NULL ) {
+- err("%s: DSPFILE is not open",sys_errlist[errno=EINVAL]);
++ err("%s: DSPFILE is not open",strerror(errno=EINVAL));
+ return -1;
+ }
+
+@@ -540,7 +540,7 @@
+ free(dfile);
+
+ if ( close(fd) ) {
+- err("%s: Closing DSP fd %d",sys_errlist[errno],fd);
++ err("%s: Closing DSP fd %d",strerror(errno),fd);
+ return -1;
+ }
+
+@@ -565,7 +565,7 @@
+ * Check that the WAVFILE is open for reading:
+ */
+ if ( wfile->rw != 'R' ) {
+- err("%s: WAVFILE must be open for reading",sys_errlist[errno=EINVAL]);
++ err("%s: WAVFILE must be open for reading",strerror(errno=EINVAL));
+ return -1;
+ }
+
+@@ -581,7 +581,7 @@
+ break;
+ default :
+ err("%s: Cannot process %u bit samples",
+- sys_errlist[errno=EINVAL],
++ strerror(errno=EINVAL),
+ (unsigned)wfile->wavinfo.DataBits);
+ return -1;
+ }
+@@ -593,7 +593,7 @@
+ byte_count *= 2; /* Twice as many bytes for stereo */
+ else if ( wfile->wavinfo.Channels != Mono ) {
+ err("%s: DSPFILE control block is corrupted (chan_mode)",
+- sys_errlist[errno=EINVAL]);
++ strerror(errno=EINVAL));
+ return -1;
+ }
+
+@@ -606,7 +606,7 @@
+ update_bytes = ((wfile->wavinfo.SamplingRate*byte_modulo) / (RECPLAY_UPDATES_PER_SEC*dfile->dspblksiz)) * dfile->dspblksiz;
+
+ if ( ioctl(dfile->fd,SNDCTL_DSP_SYNC,0) != 0 )
+- err("%s: ioctl(%d,SNDCTL_DSP_SYNC,0)",sys_errlist[errno]);
++ err("%s: ioctl(%d,SNDCTL_DSP_SYNC,0)",strerror(errno));
+
+ /* Seek to requested start sample */
+ lseek(wfile->fd,wfile->StartSample*byte_modulo,SEEK_CUR);
+@@ -620,8 +620,8 @@
+
+ if ( (n = read(wfile->fd,dfile->dspbuf,bytes)) != bytes ) {
+ if ( n >= 0 )
+- err("Unexpected EOF reading samples from WAV file",sys_errlist[errno=EIO]);
+- else err("Reading samples from WAV file",sys_errlist[errno]);
++ err("Unexpected EOF reading samples from WAV file",strerror(errno=EIO));
++ else err("Reading samples from WAV file",strerror(errno));
+ goto errxit;
+ }
+
+@@ -635,7 +635,7 @@
+ }
+
+ if ( write(dfile->fd,dfile->dspbuf,n) != n ) {
+- err("Writing samples to audio device",sys_errlist[errno]);
++ err("Writing samples to audio device",strerror(errno));
+ goto errxit;
+ }
+
+@@ -651,7 +651,7 @@
+
+ #if 0 /* I think this is doing a destructive flush: disabled */
+ if ( ioctl(dfile->fd,SNDCTL_DSP_SYNC,0) != 0 )
+- err("%s: ioctl(%d,SNDCTL_DSP_SYNC,0)",sys_errlist[errno]);
++ err("%s: ioctl(%d,SNDCTL_DSP_SYNC,0)",strerror(errno));
+ #endif
+ /* Update client time display at end of sucessful play */
+ if (clntIPC >= 0) {
+@@ -688,7 +688,7 @@
+ * Check that the WAVFILE is open for writing:
+ */
+ if ( wfile->rw != 'W' ) {
+- err("WAVFILE must be open for writing",sys_errlist[errno=EINVAL]);
++ err("WAVFILE must be open for writing",strerror(errno=EINVAL));
+ return -1;
+ }
+
+@@ -705,7 +705,7 @@
+ break;
+ default :
+ err("Cannot process %u bit samples",
+- sys_errlist[errno=EINVAL],
++ strerror(errno=EINVAL),
+ (unsigned)wfile->wavinfo.DataBits);
+ return -1;
+ }
+@@ -716,7 +716,7 @@
+ if ( wfile->wavinfo.Channels == Stereo )
+ byte_count *= 2; /* Twice as many bytes for stereo */
+ else if ( wfile->wavinfo.Channels != Mono ) {
+- err("DSPFILE control block is corrupted (chan_mode)",sys_errlist[errno=EINVAL]);
++ err("DSPFILE control block is corrupted (chan_mode)",strerror(errno=EINVAL));
+ return -1;
+ }
+
+@@ -747,7 +747,7 @@
+ * Read a block of samples:
+ */
+ if ( (n = read(dfile->fd,dfile->dspbuf,bytes)) < 0 ) {
+- err("Reading DSP device",sys_errlist[errno]);
++ err("Reading DSP device",strerror(errno));
+ goto errxit;
+ } else if ( n == 0 )
+ break;
+@@ -756,12 +756,12 @@
+ * Write a block of samples to the file:
+ */
+ if ( (bytes = write(wfile->fd,dfile->dspbuf,n)) < 0 ) {
+- err("Writing WAV samples to %s",sys_errlist[errno],wfile->Pathname);
++ err("Writing WAV samples to %s",strerror(errno),wfile->Pathname);
+ goto errxit;
+ } else if ( bytes != n ) {
+ if ( bytes > 0 )
+ bytes_written += bytes;
+- err("Did not write all WAV successfully",sys_errlist[errno=EIO]);
++ err("Did not write all WAV successfully",strerror(errno=EIO));
+ goto errxit;
+ }
+
+diff -u wavplay-1.4/locks.c wavplay-1.4-new/locks.c
+--- wavplay-1.4/locks.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/locks.c 2003-03-11 10:31:04.000000000 +0100
+@@ -125,7 +125,7 @@
+ */
+ if ( (ipc = semget(LockIPCKey,2,IPC_CREAT|IPC_EXCL|0666)) < 0 && errno != EEXIST ) {
+ err("Unable to create a semaphore set for key 0x%lX",
+- sys_errlist[errno],
++ strerror(errno),
+ LockIPCKey);
+ return -1; /* No system IPC resources? */
+ }
+@@ -157,7 +157,7 @@
+ */
+ e = errno; /* Save error */
+ semctl(ipc,0,IPC_RMID,NULL); /* Destroy bad sems */
+- err("%s: Unable to initialize semaphore set values",sys_errlist[errno=e]);
++ err("%s: Unable to initialize semaphore set values",strerror(errno=e));
+ return -1; /* Return err ind. */
+ }
+ }
+@@ -199,7 +199,7 @@
+ }
+
+ if ( s < 0 )
+- err("%s: Locking the %s semaphore",sys_errlist[errno],playrecx?"Record":"Play");
++ err("%s: Locking the %s semaphore",strerror(errno),playrecx?"Record":"Play");
+
+ /*
+ * Exit this procedure:
+@@ -232,7 +232,7 @@
+
+ if ( s < 0 )
+ err("%s: Unlocking the %s semaphore",
+- sys_errlist[errno],
++ strerror(errno),
+ playrecx?"Record":"Play");
+
+ return s;
+diff -u wavplay-1.4/main.c wavplay-1.4-new/main.c
+--- wavplay-1.4/main.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/main.c 2003-03-11 10:23:51.000000000 +0100
+@@ -363,7 +363,7 @@
+ dup2(fd,2);
+ close(fd);
+ } else fprintf(stderr,"%s: cannot go quiet due to /dev/null\n",
+- sys_errlist[errno]);
++ strerror(errno));
+ }
+
+ /*
+@@ -393,7 +393,7 @@
+ */
+ if ( wavopts.IPCKey && (wavopts.ipc = OpenDSPLocks(wavopts.IPCKey,
+ !(wavopts.PlayLock.optChar | wavopts.RecdLock.optChar),v_erf)) < 0 ) {
+- err("%s: Unable to get audio locking semaphores.",sys_errlist[errno]);
++ err("%s: Unable to get audio locking semaphores.",strerror(errno));
+ exit(1);
+ }
+
+@@ -405,7 +405,7 @@
+ * Remove old semaphore set :
+ */
+ if ( semctl(wavopts.ipc,0,IPC_RMID,NULL) < 0 ) {
+- err("%s: Unable to remove old locking semaphores.",sys_errlist[errno]);
++ err("%s: Unable to remove old locking semaphores.",strerror(errno));
+ exit(1);
+ }
+
+@@ -422,7 +422,7 @@
+ * Get replacement semaphores :
+ */
+ if ( wavopts.IPCKey && (wavopts.ipc = OpenDSPLocks(wavopts.IPCKey,0,v_erf)) < 0 ) {
+- err("%s: Unable to get audio locking semaphores.",sys_errlist[errno]);
++ err("%s: Unable to get audio locking semaphores.",strerror(errno));
+ exit(1);
+ }
+ }
+@@ -431,7 +431,7 @@
+ * -u play unlock request :
+ */
+ if ( wavopts.PlayLock.optChar == OPF_PLAY_UNLOCK && UnlockDSP(wavopts.ipc,0,v_erf) ) {
+- err("%s: -%c unlock request failed.",sys_errlist[errno],OPF_PLAY_UNLOCK);
++ err("%s: -%c unlock request failed.",strerror(errno),OPF_PLAY_UNLOCK);
+ exit(1);
+ }
+
+@@ -439,7 +439,7 @@
+ * -U record unlock request :
+ */
+ if ( wavopts.RecdLock.optChar == OPF_RECD_UNLOCK && UnlockDSP(wavopts.ipc,1,v_erf) ) {
+- err("%s: -%c unlock request failed.",sys_errlist[errno],OPF_RECD_UNLOCK);
++ err("%s: -%c unlock request failed.",strerror(errno),OPF_RECD_UNLOCK);
+ exit(1);
+ }
+
+@@ -447,7 +447,7 @@
+ * -l play lock request :
+ */
+ if ( wavopts.PlayLock.optChar == OPF_PLAY_LOCK && LockDSP(wavopts.ipc,0,v_erf,0) ) {
+- err("%s: -%c lock request failed.",sys_errlist[errno],OPF_PLAY_LOCK);
++ err("%s: -%c lock request failed.",strerror(errno),OPF_PLAY_LOCK);
+ exit(1);
+ }
+
+@@ -455,7 +455,7 @@
+ * -L record lock request :
+ */
+ if ( wavopts.RecdLock.optChar == OPF_RECD_LOCK && LockDSP(wavopts.ipc,1,v_erf,0) ) {
+- err("%s: -%c lock request failed.",sys_errlist[errno],OPF_RECD_LOCK);
++ err("%s: -%c lock request failed.",strerror(errno),OPF_RECD_LOCK);
+ exit(1);
+ }
+
+diff -u wavplay-1.4/save_as.c wavplay-1.4-new/save_as.c
+--- wavplay-1.4/save_as.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/save_as.c 2003-03-11 10:23:31.000000000 +0100
+@@ -81,7 +81,7 @@
+ if ( stat(RECORD_PATH,&src_stat) != 0 ) {
+ if ( errno == ENOENT )
+ ReportErrorf("No file %s to 'save'.",RECORD_PATH);
+- else ReportErrorf("%s: doing stat on recorded.wav",sys_errlist[errno]);
++ else ReportErrorf("%s: doing stat on recorded.wav",strerror(errno));
+ return;
+ }
+
+@@ -139,29 +139,29 @@
+ if ( !bCopy ) {
+ if ( link(RECORD_PATH,path) == 0 ) { /* mv by linking.. */
+ if ( unlink(RECORD_PATH) != 0 ) /* And removing the old */
+- ReportErrorf("%s: unlink(%s)",sys_errlist[errno]);
++ ReportErrorf("%s: unlink(%s)",strerror(errno));
+ goto rm; /* Success (or mostly success) */
+ } else ReportErrorf("%s: link(%s,%s)\nWill try a copy next..",
+- sys_errlist[errno],RECORD_PATH,path);
++ strerror(errno),RECORD_PATH,path);
+ }
+
+ /*
+ * Copy the file, if control passes to here:
+ */
+ if ( (ifd = open(RECORD_PATH,O_RDONLY,0)) < 0 ) {
+- ReportErrorf("%s: opening %s for read.",sys_errlist[errno],RECORD_PATH);
++ ReportErrorf("%s: opening %s for read.",strerror(errno),RECORD_PATH);
+ goto xit;
+ }
+
+ if ( (ofd = open(path,O_WRONLY|O_CREAT|O_TRUNC,0644)) < 0 ) {
+- ReportErrorf("%s: opening %s for read.",sys_errlist[errno],path);
++ ReportErrorf("%s: opening %s for read.",strerror(errno),path);
+ close(ifd);
+ goto xit;
+ }
+
+ while ( (n = read(ifd,buf,sizeof buf)) > 0 )
+ if ( write(ofd,buf,n) < 0 ) {
+- ReportErrorf("%s: writing file %s for copy.",sys_errlist[errno],path);
++ ReportErrorf("%s: writing file %s for copy.",strerror(errno),path);
+ close(ifd);
+ close(ofd);
+ unlink(path);
+@@ -169,7 +169,7 @@
+ }
+
+ if ( n < 0 ) {
+- ReportErrorf("%s: reading file %s for copy.",sys_errlist[errno],RECORD_PATH);
++ ReportErrorf("%s: reading file %s for copy.",strerror(errno),RECORD_PATH);
+ close(ifd);
+ close(ofd);
+ unlink(path);
+@@ -177,7 +177,7 @@
+ }
+
+ if ( fsync(ofd) != 0 )
+- ReportErrorf("%s: fsync(%s)",sys_errlist[errno],path);
++ ReportErrorf("%s: fsync(%s)",strerror(errno),path);
+ if ( close(ofd) == 0 )
+ unlink(RECORD_PATH); /* Delete recorded.wav if copy successful */
+ close(ifd);
+diff -u wavplay-1.4/server.c wavplay-1.4-new/server.c
+--- wavplay-1.4/server.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/server.c 2003-03-11 11:36:00.000000000 +0100
+@@ -326,7 +326,11 @@
+ /*
+ * Tell client the pathname we're using for the recording:
+ */
+- strcpy(svr.path,RECORD_PATH); /* Always record to same place */
++ if(strlen(RECORD_PATH) >= sizeof(svr.path)-1) {
++ fprintf(stderr, "Record path %s too long. Truncating.\n", RECORD_PATH);
++ }
++ strncpy(svr.path,RECORD_PATH, sizeof(svr.path)-1); /* Always record to same place */
++ svr.path[sizeof(svr.path)-1]=0;
+
+ msg.msg_type = ToClnt_Path;
+ strcpy(msg.u.toclnt_path.path,svr.path);
+@@ -397,7 +401,7 @@
+ * Remove old semaphore set :
+ */
+ if ( semctl(svr.lockIPCID,0,IPC_RMID,NULL) < 0 ) {
+- toclnt_fatal(0,"%s: Unable to remove old locking semaphores.",sys_errlist[errno]);
++ toclnt_fatal(0,"%s: Unable to remove old locking semaphores.",strerror(errno));
+ exit(13);
+ }
+
+@@ -406,7 +410,7 @@
+ */
+ if ( (svr.lockIPCID = OpenDSPLocks(svr.IPCKey,1,x_erf)) < 0 ) {
+ toclnt_fatal(0,"%s:\nAttempting to obtain new locking\nsemaphores.",
+- sys_errlist[errno]);
++ strerror(errno));
+ exit(13);
+ }
+
+@@ -497,7 +501,7 @@
+ if ( sched_setscheduler(pid,SCHED_FIFO,&rtp) != 0 ) {
+ z = errno;
+ fprintf(stderr,"WARNING; %s: sched_setscheduler(%ld,SCHED_FIFO,) // priority=%d;\n",
+- sys_errlist[z],(long)pid,(int)SCHED_PRIORITY);
++ strerror(z),(long)pid,(int)SCHED_PRIORITY);
+ if ( z == EPERM && rtp.sched_priority > 0 )
+ fputs("You need setuid root to use sched_setscheduler()\n",stderr);
+ fflush(stderr);
+@@ -531,7 +535,7 @@
+ msg.bytes = 0;
+
+ if ( MsgToClient(clntIPC,&msg,flags) != 0 ) { /* Send to client */
+- ClntMsg("%s: toclnt_ready(flags=0%o;ipc=%d)\n",sys_errlist[errno],flags,clntIPC);
++ ClntMsg("%s: toclnt_ready(flags=0%o;ipc=%d)\n",strerror(errno),flags,clntIPC);
+ exit(13);
+ }
+ }
+@@ -550,7 +554,7 @@
+ msg.u.toclnt_bits.DataBits = bits;
+
+ if ( MsgToClient(clntIPC,&msg,flags) != 0 ) { /* Send to client */
+- ClntMsg("%s: toclnt_ready(flags=0%o;ipc=%d)\n",sys_errlist[errno],flags,clntIPC);
++ ClntMsg("%s: toclnt_ready(flags=0%o;ipc=%d)\n",strerror(errno),flags,clntIPC);
+ exit(13);
+ }
+ }
+@@ -602,7 +606,7 @@
+ msg.bytes = sizeof msg.u.toclnt_settings;
+
+ if ( (z = MsgToClient(clntIPC,&msg,flags)) != 0 && flags && errno != EAGAIN ) {
+- toclnt_fatal(0,"%s: toclnt_settings(flags=0%o;ipc=%d)\n",sys_errlist[errno],flags,clntIPC);
++ toclnt_fatal(0,"%s: toclnt_settings(flags=0%o;ipc=%d)\n",strerror(errno),flags,clntIPC);
+ exit(13);
+ }
+
+@@ -645,7 +649,7 @@
+ [sizeof msg.u.toclnt_errmsg.msg - 1] = 0;
+
+ if ( MsgToClient(clntIPC,&msg,flags) != 0 ) { /* Send to client */
+- fprintf(stderr,"%s: toclnt_errmsg(...)\n",sys_errlist[errno]);
++ fprintf(stderr,"%s: toclnt_errmsg(...)\n",strerror(errno));
+ exit(13);
+ }
+ }
+diff -u wavplay-1.4/wavfile.c wavplay-1.4-new/wavfile.c
+--- wavplay-1.4/wavfile.c 1999-12-04 01:06:42.000000000 +0100
++++ wavplay-1.4-new/wavfile.c 2003-03-11 10:22:41.000000000 +0100
+@@ -141,7 +141,7 @@
+ waveheader.nDataBytes = databytes;
+
+ if (write (wavefile, &waveheader, sizeof (WAVE_HEADER)) != sizeof (WAVE_HEADER)) {
+- err("%s",sys_errlist[errno]); /* wwg: report the error */
++ err("%s",strerror(errno)); /* wwg: report the error */
+ return WW_BADWRITEHEADER ;
+ }
+
+@@ -157,7 +157,7 @@
+ v_erf = erf; /* wwg: Set error reporting function */
+
+ if (lseek (wavefile, 0L, SEEK_SET)) {
+- err("%s",sys_errlist[errno]); /* wwg: Report error */
++ err("%s",strerror(errno)); /* wwg: Report error */
+ return WR_BADSEEK ;
+ }
+
diff --git a/media-sound/wavplay/wavplay-1.4.ebuild b/media-sound/wavplay/wavplay-1.4.ebuild
new file mode 100644
index 000000000000..9729e0b05546
--- /dev/null
+++ b/media-sound/wavplay/wavplay-1.4.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/media-sound/wavplay/wavplay-1.4.ebuild,v 1.1 2003/04/02 15:35:08 phosphan Exp $
+
+inherit eutils
+
+DESCRIPTION="A command line player/recorder for wav files"
+SRC_URI="http://ibiblio.org/pub/linux/apps/sound/players/${P}.tar.gz"
+HOMEPAGE="http://orphan//"
+LICENSE="GPL-2"
+DEPEND="virtual/glibc"
+SLOT="0"
+KEYWORDS="~x86"
+
+IUSE=""
+
+src_unpack() {
+ unpack ${A}
+ epatch ${FILESDIR}/${P}.patch
+}
+
+src_compile() {
+ emake no_x || die
+}
+
+src_install () {
+ dodir /usr/bin
+ emake INSTDIR=${D}usr/bin install_no_x || die
+ # the motif frontend crashes and there are nicer player
+ # for X anyway
+ # no suid root install for old packages which use strcpy
+ dodoc BUGS README
+ doman *.1
+}
+