I'm not familiar with this code, but a 5-minute inspection
suggests the Gentoo folks are doing exactly the right thing.
I suggest we take it.
Unfortunately, this code is hard to test.
Martin
>>>> "Vin" == Vin Shelton
<acs(a)xemacs.org>" <ethersoft(a)gmail.com> writes:
Vin> Martin, Stephen et al,
Vin> I don't know anything about 64-bit systems, but shouldn't size_t
Vin> really work correctly in the parsesndfile() call?
Vin> In any case, this patch apparently works around a real bug. Please
Vin> comment.
Vin> - Vin
Vin> ---------- Forwarded message ----------
Vin> From: Hans de Graaff <gra...(a)gentoo.org>
Vin> Date: May 12, 2:59 am
Vin> Subject: file auto-autoloads.el is newer
Vin> To: comp.emacs.xemacs
Vin> On Fri, 11 May 2007 15:26:21 -0400, Randy Yates wrote:
> I just recently upgraded to
> "XEmacs 21.4 (patch 20) \"Double Solitaire\"
[Lucid]
> (x86_64-unknown-linux, Mule) of Thu May 10 2007 on
> localhost.localdomain"
> Also, by the way, the (load-default-sounds) command is now
crashing - I
> had to bypass it temporarily to get xemacs to run all the way through my
> init.el file. Any ideas on why this is so?
Vin> I see you are using a 64-bit build on Linux. This will crash with
Vin> native
Vin> audio as soon as a sound is played. With Gentoo we use the following
Vin> patch to fix this issue:
Vin> Index: linuxplay.c
Vin> ===================================================================
Vin> RCS file: /pack/xemacscvs/XEmacs/xemacs/src/linuxplay.c,v
Vin> retrieving revision 1.13
Vin> diff -u -B -r1.13 linuxplay.c
Vin> --- src/linuxplay.c 2001/04/12 18:23:58 1.13
Vin> +++ src/linuxplay.c 2006/12/22 07:15:06
Vin> @@ -290,7 +290,8 @@
Vin> fmtType ffmt;
Vin> int fmt,speed,tracks;
Vin> unsigned char *pptr,*optr,*cptr,*sptr;
Vin> - int wrtn,rrtn,crtn,prtn;
Vin> + int wrtn,crtn;
Vin> + size_t prtn,rrtn;
Vin> unsigned char sndbuf[SNDBUFSZ];
Vin> /* We need to read at least the header information before we can
Vin> start
Vin> @@ -338,9 +339,9 @@
Vin> device; repeat until all data has been processed */
Vin> rrtn = length;
Vin> do {
Vin> - for (pptr = data; (prtn = parsesndfile((void **)&pptr,(size_t *)
Vin> &rrtn,
Vin> + for (pptr = data; (prtn = parsesndfile((void **)&pptr, &rrtn,
Vin> (void **)&optr)) > 0; )
Vin> - for (cptr = optr; (crtn = sndcnv((void **)&cptr,(size_t *)
Vin> &prtn,
Vin> + for (cptr = optr; (crtn = sndcnv((void **)&cptr, &prtn,
Vin> (void **)&sptr)) > 0; ) {
Vin> for (;;) {
Vin> if ((wrtn = write(audio_fd,sptr,crtn)) < 0) {
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta