Mercurial > hg > xemacs-beta
diff src/nas.c @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | 8de8e3f6228a |
children | 183866b06e0b |
line wrap: on
line diff
--- a/src/nas.c Mon Aug 13 11:33:40 2007 +0200 +++ b/src/nas.c Mon Aug 13 11:35:02 2007 +0200 @@ -68,15 +68,30 @@ #include <unistd.h> #endif +/* NAS <= 1.2p5 defines {BIG,LITTLE}_ENDIAN in <audio/fileutil.h>, + conflicting with GNU libc (at least); newer versions avoid this + name space pollution. + DO NOT USE THOSE MACROS in this file. Use NAS_{BIG,LITTLE}_ENDIAN. + + It would be slightly more reliable to do this via configure, but that + seems unnecessarily complex. +*/ #undef LITTLE_ENDIAN #undef BIG_ENDIAN + #include <audio/audiolib.h> #include <audio/soundlib.h> #include <audio/snd.h> #include <audio/wave.h> #include <audio/fileutil.h> +/* NAS <= 1.2p5 <audio/fileutil.h> doesn't define the NAS_ versions */ +#ifndef NAS_LITTLE_ENDIAN +#define NAS_LITTLE_ENDIAN LITTLE_ENDIAN +#define NAS_BIG_ENDIAN BIG_ENDIAN +#endif + #ifdef emacs # define XTOOLKIT @@ -108,7 +123,6 @@ #else /* !emacs */ # define warn(str) fprintf (stderr, "%s\n", (str)) -# define CONST const #endif /* emacs */ #ifdef XTOOLKIT @@ -624,7 +638,7 @@ /* Create a name from the sound. */ static char * -NameFromData (CONST char *buf, +NameFromData (const char *buf, int len) { @@ -668,7 +682,7 @@ */ static SndInfo * -SndOpenDataForReading (CONST char *data, +SndOpenDataForReading (const char *data, int length) { @@ -683,7 +697,7 @@ memcpy (&si->h, data, sizeof (SndHeader)); - if (LITTLE_ENDIAN) + if (NAS_LITTLE_ENDIAN) { char n; @@ -744,11 +758,11 @@ /* The length of the "file" */ static size_t file_len; /* The actual "file" data. */ -static CONST void* file_data; +static const void* file_data; /* Like fopen, but for a buffer in memory */ static void -dopen (CONST void* data, size_t length) +dopen (const void* data, size_t length) { file_data = data; file_len = length; @@ -835,7 +849,7 @@ char n; if ((status = dread(c, sizeof(RiffChunk), 1))) - if (BIG_ENDIAN) + if (NAS_BIG_ENDIAN) swapl(&c->ckSize, n); return status; @@ -845,7 +859,7 @@ read the wave data from a buffer in memory. */ static WaveInfo * -WaveOpenDataForReading (CONST char *data, +WaveOpenDataForReading (const char *data, int length) { RiffChunk ck; @@ -921,18 +935,18 @@ { AuInt32 dummy; - wi->format = DataReadS(BIG_ENDIAN); - wi->channels = DataReadS(BIG_ENDIAN); - wi->sampleRate = DataReadL(BIG_ENDIAN); + wi->format = DataReadS(NAS_BIG_ENDIAN); + wi->channels = DataReadS(NAS_BIG_ENDIAN); + wi->sampleRate = DataReadL(NAS_BIG_ENDIAN); /* we don't care about the next two fields */ - dummy = DataReadL(BIG_ENDIAN); - dummy = DataReadS(BIG_ENDIAN); + dummy = DataReadL(NAS_BIG_ENDIAN); + dummy = DataReadS(NAS_BIG_ENDIAN); if (wi->format != RIFF_WAVE_FORMAT_PCM) Err(); - wi->bitsPerSample = DataReadS(BIG_ENDIAN); + wi->bitsPerSample = DataReadS(NAS_BIG_ENDIAN); /* skip any other format specific fields */ dseek(PAD2(ck.ckSize - 16), 1);