shithub: sox

Download patch

ref: 2657efbc53084b1688760c0acf5d667f019eb4d6
parent: c5ee8af8264c1682cda0a559314b4b7ae36c966c
author: rrt <rrt>
date: Sat Nov 25 21:03:37 EST 2006

Fix const correctness

--- a/src/8svx.c
+++ b/src/8svx.c
@@ -290,7 +290,7 @@
 /*                         8SVXWRITE                                    */
 /*======================================================================*/
 
-st_ssize_t st_svxwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_svxwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
         svx_t p = (svx_t ) ft->priv;
 
@@ -391,7 +391,7 @@
 }
 
 /* Amiga 8SVX */
-static char *svxnames[] = {
+static const char *svxnames[] = {
   "8svx",
   NULL
 };
--- a/src/aiff.c
+++ b/src/aiff.c
@@ -735,7 +735,7 @@
         return(aiffwriteheader(ft, 0x7f000000L / (ft->info.size*ft->info.channels)));
 }
 
-st_ssize_t st_aiffwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_aiffwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
         aiff_t aiff = (aiff_t ) ft->priv;
         aiff->nsamples += len;
@@ -1226,7 +1226,7 @@
 }
 
 
-static char *aiffnames[] = {
+static const char *aiffnames[] = {
   "aiff",
   "aif",
   NULL
@@ -1250,7 +1250,7 @@
     return &st_aiff_format;
 }
 
-static char *aifcnames[] = {
+static const char *aifcnames[] = {
   "aifc",
   "aiffc",
   NULL
--- a/src/alsa.c
+++ b/src/alsa.c
@@ -29,10 +29,10 @@
 
 static int get_format(ft_t ft, snd_pcm_format_mask_t *fmask, int *fmt);
 
-extern void st_ub_write_buf(char* buf1, st_sample_t *buf2, st_ssize_t len, char swap);
-extern void st_sb_write_buf(char *buf1, st_sample_t *buf2, st_ssize_t len, char swap);
-extern void st_uw_write_buf(char *buf1, st_sample_t *buf2, st_ssize_t len, char swap);
-extern void st_sw_write_buf(char *buf1, st_sample_t *buf2, st_ssize_t len, char swap);
+extern void st_ub_write_buf(char* buf1, const st_sample_t *buf2, st_ssize_t len, char swap);
+extern void st_sb_write_buf(char *buf1, const st_sample_t *buf2, st_ssize_t len, char swap);
+extern void st_uw_write_buf(char *buf1, const st_sample_t *buf2, st_ssize_t len, char swap);
+extern void st_sw_write_buf(char *buf1, const st_sample_t *buf2, st_ssize_t len, char swap);
 extern void st_ub_read_buf(st_sample_t *buf1, char *buf2, st_ssize_t len, char swap);
 extern void st_sb_read_buf(st_sample_t *buf1, char *buf2, st_ssize_t len, char swap);
 extern void st_uw_read_buf(st_sample_t *buf1, char *buf2, st_ssize_t len, char swap);
@@ -390,12 +390,12 @@
     return st_alsasetup(ft, SND_PCM_STREAM_PLAYBACK);
 }
 
-st_ssize_t st_alsawrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp)
+st_ssize_t st_alsawrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp)
 {
     st_ssize_t len;
     int err;
     alsa_priv_t alsa = (alsa_priv_t)ft->priv;
-    void (*write_buf)(char *, st_sample_t *, st_ssize_t, char) = 0;
+    void (*write_buf)(char *, const st_sample_t *, st_ssize_t, char) = 0;
 
     switch(ft->info.size) {
         case ST_SIZE_BYTE:
@@ -629,7 +629,7 @@
 }
 
 /* /dev/snd/pcmXX */
-static char *alsanames[] = {
+static const char *alsanames[] = {
   "alsa",
   NULL
 };
--- a/src/au.c
+++ b/src/au.c
@@ -360,7 +360,7 @@
         return done;
 }
 
-st_ssize_t st_auwrite(ft_t ft, st_sample_t *buf, st_ssize_t samp)
+st_ssize_t st_auwrite(ft_t ft, const st_sample_t *buf, st_ssize_t samp)
 {
         au_t p = (au_t ) ft->priv;
         p->data_size += samp * ft->info.size;
@@ -471,7 +471,7 @@
 }
 
 /* SPARC .au w/header */
-static char *aunames[] = {
+static const char *aunames[] = {
   "au",
   "snd",
   NULL
--- a/src/auto.c
+++ b/src/auto.c
@@ -207,7 +207,7 @@
         return(ST_EOF);
 }
 
-static char *autonames[] = {
+static const char *autonames[] = {
   "auto",
   NULL
 };
@@ -217,10 +217,10 @@
   NULL,
   ST_FILE_STEREO,
   st_autostartread,
-  st_format_nothing_io,
+  st_format_nothing_read_io,
   st_format_nothing,
   st_autostartwrite,
-  st_format_nothing_io,
+  st_format_nothing_write_io,
   st_format_nothing,
   st_format_nothing_seek
 };
--- a/src/avr.c
+++ b/src/avr.c
@@ -260,7 +260,7 @@
   return(ST_SUCCESS);
 }
 
-st_ssize_t st_avrwrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp) 
+st_ssize_t st_avrwrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp) 
 {
   avr_t avr = (avr_t)ft->priv;
 
@@ -291,7 +291,7 @@
   return(ST_SUCCESS);
 }
 
-static char *avrnames[] = {
+static const char *avrnames[] = {
   "avr",
   NULL
 };
--- a/src/cdr.c
+++ b/src/cdr.c
@@ -121,7 +121,7 @@
         return(ST_SUCCESS);
 }
 
-st_ssize_t st_cdrwrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_cdrwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
         cdr_t cdr = (cdr_t) ft->priv;
 
@@ -160,7 +160,7 @@
         return(ST_SUCCESS);
 }
 
-static char *cdrnames[] = {
+static const char *cdrnames[] = {
   "cdr",
   NULL
 };
--- a/src/cvsd.c
+++ b/src/cvsd.c
@@ -325,7 +325,7 @@
 
 /* ---------------------------------------------------------------------- */
 
-st_ssize_t st_cvsdwrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp) 
+st_ssize_t st_cvsdwrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp) 
 {
         struct cvsdpriv *p = (struct cvsdpriv *) ft->priv;
         int done = 0;
@@ -670,7 +670,7 @@
 /* ---------------------------------------------------------------------- */
 
 /* Cont. Variable Slope Delta */
-static char *cvsdnames[] = {
+static const char *cvsdnames[] = {
   "cvs",
   "cvsd",
   NULL
@@ -694,7 +694,7 @@
     return &st_cvsd_format;
 }
 /* Cont. Variable Solot Delta */
-static char *dvmsnames[] = {
+static const char *dvmsnames[] = {
   "vms",
   "dvms",
   NULL
--- a/src/dat.c
+++ b/src/dat.c
@@ -138,7 +138,7 @@
     return (done);
 }
 
-st_ssize_t st_datwrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp)
+st_ssize_t st_datwrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp)
 {
     dat_t dat = (dat_t) ft->priv;
     int done = 0;
@@ -168,7 +168,7 @@
 }
 
 /* Text data samples */
-static char *datnames[] = {
+static const char *datnames[] = {
   "dat",
   NULL
 };
--- a/src/flac.c
+++ b/src/flac.c
@@ -9,7 +9,6 @@
  */
 
 
-
 #include "st_i.h"
 
 #if defined(HAVE_LIBFLAC)
@@ -19,17 +18,7 @@
 
 #include <FLAC/all.h>
 
-/* FIXME 
- * There are things that should be const but can't be because
- * of lack of const correctness elsewhere in SoX. 
- * Once Sox has been fixed up, then replace all occurences of 
- * const_ with const and remove this comment and the following
- * line.
- */
-#define const_
 
-
-
 typedef struct
 {
   /* Info: */
@@ -434,7 +423,7 @@
 
 
 
-static st_ssize_t st_format_write(ft_t const format, st_sample_t const_ * const sampleBuffer, st_ssize_t const len)
+static st_ssize_t st_format_write(ft_t const format, st_sample_t const * const sampleBuffer, st_ssize_t const len)
 {
   Encoder * encoder = (Encoder *) format->priv;
   unsigned i;
@@ -473,7 +462,7 @@
 
 
 
-static char const_ * const_ st_format_names[] =
+static char const * const st_format_names[] =
 {
   "flac",
   NULL
--- a/src/gsm.c
+++ b/src/gsm.c
@@ -187,7 +187,7 @@
         return (ST_SUCCESS);
 }
 
-st_ssize_t st_gsmwrite(ft_t ft, st_sample_t *buf, st_ssize_t samp)
+st_ssize_t st_gsmwrite(ft_t ft, const st_sample_t *buf, st_ssize_t samp)
 {
         int done = 0;
         struct gsmpriv *p = (struct gsmpriv *) ft->priv;
@@ -239,7 +239,7 @@
 }
 
 /* GSM 06.10 */
-static char *gsmnames[] = {
+static const char *gsmnames[] = {
   "gsm",
   NULL
 };
--- a/src/hcom.c
+++ b/src/hcom.c
@@ -307,7 +307,7 @@
         return (ST_SUCCESS);
 }
 
-st_ssize_t st_hcomwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_hcomwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
         register struct writepriv *p = (struct writepriv *) ft->priv;
         st_sample_t datum;
@@ -571,7 +571,7 @@
 }
 
 /* Mac FSSD/HCOM */
-static char *hcomnames[] = {
+static const char *hcomnames[] = {
   "hcom",
   NULL
 };
--- a/src/maud.c
+++ b/src/maud.c
@@ -284,7 +284,7 @@
         return (ST_SUCCESS);
 }
 
-st_ssize_t st_maudwrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_maudwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
         struct maudstuff * p = (struct maudstuff *) ft->priv;
         
@@ -389,7 +389,7 @@
 }
 
 /* Amiga MAUD */
-static char *maudnames[] = {
+static const char *maudnames[] = {
   "maud",
   NULL,
 };
--- a/src/misc.c
+++ b/src/misc.c
@@ -357,7 +357,8 @@
 
 /* dummy format routines for do-nothing functions */
 int st_format_nothing(ft_t ft) { return(ST_SUCCESS); }
-st_ssize_t st_format_nothing_io(ft_t ft, st_sample_t *buf, st_ssize_t len) { return(0); }
+st_ssize_t st_format_nothing_read_io(ft_t ft, st_sample_t *buf, st_ssize_t len) { return(0); }
+st_ssize_t st_format_nothing_write_io(ft_t ft, const st_sample_t *buf, st_ssize_t len) { return(0); }
 int st_format_nothing_seek(ft_t ft, st_size_t offset) { st_fail_errno(ft, ST_ENOTSUP, "operation not supported"); return(ST_EOF); }
 
 /* dummy effect routine for do-nothing functions */
--- a/src/mp3.c
+++ b/src/mp3.c
@@ -431,7 +431,7 @@
   return(ST_SUCCESS);
 }
 
-st_ssize_t st_mp3write(ft_t ft, st_sample_t *buf, st_ssize_t samp)
+st_ssize_t st_mp3write(ft_t ft, const st_sample_t *buf, st_ssize_t samp)
 {
     struct mp3priv *p = (struct mp3priv *)ft->priv;
     char *mp3buffer;
@@ -566,7 +566,7 @@
 #endif /* HAVE_LAME */
 
 /* MP3 */
-static char *mp3names[] = {
+static const char *mp3names[] = {
   "mp3",
   "mp2",
   NULL,
--- a/src/nulfile.c
+++ b/src/nulfile.c
@@ -70,7 +70,7 @@
     return(ST_SUCCESS);
 }
 
-st_ssize_t st_nulwrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_nulwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
     return len;    
 }
@@ -81,7 +81,7 @@
     return (ST_SUCCESS);
 }
 
-static char *nulnames[] = {
+static const char *nulnames[] = {
   "nul",
   NULL,
 };
--- a/src/oss.c
+++ b/src/oss.c
@@ -217,7 +217,7 @@
 }
 
 /* OSS /dev/dsp player */
-static char *ossdspnames[] = {
+static const char *ossdspnames[] = {
   "ossdsp",
   NULL
 };
--- a/src/prc.c
+++ b/src/prc.c
@@ -168,7 +168,7 @@
         return st_rawread(ft, buf, samp);
 }
 
-st_ssize_t st_prcwrite(ft_t ft, st_sample_t *buf, st_ssize_t samp)
+st_ssize_t st_prcwrite(ft_t ft, const st_sample_t *buf, st_ssize_t samp)
 {
         prc_t p = (prc_t ) ft->priv;
         p->length += samp * ft->info.size;
@@ -211,7 +211,7 @@
 }
 
 /* Psion .prc */
-static char *prcnames[] = {
+static const char *prcnames[] = {
   "prc",
   NULL
 };
--- a/src/raw.c
+++ b/src/raw.c
@@ -754,7 +754,7 @@
  * functions will cause a loss of data!  Need to have sox implement
  * a consistent buffering protocol.
  */
-st_ssize_t st_rawwrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp)
+st_ssize_t st_rawwrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp)
 {
     st_ssize_t len, done = 0;
     void (*write_buf)(char *, st_sample_t const *, st_ssize_t, char) = 0;
@@ -944,7 +944,7 @@
                 ft->info.channels = 1;
 }
 
-static char *rawnames[] = {
+static const char *rawnames[] = {
   "raw",
   NULL
 };
@@ -968,7 +968,7 @@
 }
 
 /* a-law byte raw */
-static char *alnames[] = {
+static const char *alnames[] = {
   "al",
   NULL
 };
@@ -992,7 +992,7 @@
 }
 
 /* inverse a-law byte raw */
-static char *lanames[] = {
+static const char *lanames[] = {
   "la",
   NULL
 };
@@ -1016,7 +1016,7 @@
 }
 
 /* inverse u-law byte raw */
-static char *lunames[] = {
+static const char *lunames[] = {
   "lu",
   NULL
 };
@@ -1039,7 +1039,7 @@
     return &st_lu_format;
 }
 
-static char *sbnames[] = {
+static const char *sbnames[] = {
   "sb",
   NULL
 };
@@ -1066,7 +1066,7 @@
 
 /* Unsigned 4 byte raw; used for testing only; not documented in the man page */
 
-static char *u4names[] = {
+static const char *u4names[] = {
   "u4",
   NULL,
 };
@@ -1091,7 +1091,7 @@
 
 
 
-static char *slnames[] = {
+static const char *slnames[] = {
   "sl",
   NULL,
 };
@@ -1114,7 +1114,7 @@
     return &st_sl_format;
 }
 
-static char *swnames[] = {
+static const char *swnames[] = {
   "sw",
   NULL
 };
@@ -1141,7 +1141,7 @@
 
 /* Signed 3 byte raw; used for testing only; not documented in the man page */
 
-static char *s3names[] = {
+static const char *s3names[] = {
   "s3",
   NULL
 };
@@ -1166,7 +1166,7 @@
 
 
 
-static char *ubnames[] = {
+static const char *ubnames[] = {
   "ub",
   "sou",
   "fssd",
@@ -1191,7 +1191,7 @@
     return &st_ub_format;
 }
 
-static char *ulnames[] = {
+static const char *ulnames[] = {
   "ul",
   NULL
 };
@@ -1214,7 +1214,7 @@
     return &st_ul_format;
 }
 
-static char *uwnames[] = {
+static const char *uwnames[] = {
   "uw",
   NULL
 };
@@ -1241,7 +1241,7 @@
 
 /* Unsigned 3 byte raw; used for testing only; not documented in the man page */
 
-static char *u3names[] = {
+static const char *u3names[] = {
   "u3",
   NULL
 };
--- a/src/sf.c
+++ b/src/sf.c
@@ -223,7 +223,7 @@
 
 /* Read and write are supplied by raw.c */
 /* IRCAM Sound File */
-static char *sfnames[] = {
+static const char *sfnames[] = {
   "sf",
   NULL
 };
--- a/src/smp.c
+++ b/src/smp.c
@@ -397,7 +397,7 @@
         return(ST_SUCCESS);
 }
 
-st_ssize_t st_smpwrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_smpwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
         smp_t smp = (smp_t) ft->priv;
         register int datum;
@@ -432,7 +432,7 @@
 }
 
 /* SampleVision sound */
-static char *smpnames[] = {
+static const char *smpnames[] = {
   "smp",
   NULL,
 };
--- a/src/sndrtool.c
+++ b/src/sndrtool.c
@@ -200,7 +200,7 @@
 /*                         SNDTWRITE                                     */
 /*======================================================================*/
 
-st_ssize_t st_sndtwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_sndtwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
         snd_t p = (snd_t ) ft->priv;
         p->nsamples += len;
@@ -257,7 +257,7 @@
 }
 
 /* Sndtool Sound File */
-static char *sndtnames[] = {
+static const char *sndtnames[] = {
   "sndt",
   NULL
 };
--- a/src/sphere.c
+++ b/src/sphere.c
@@ -244,7 +244,7 @@
         
 }
 
-st_ssize_t st_spherewrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_spherewrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
     sphere_t sphere = (sphere_t) ft->priv;
 
@@ -307,7 +307,7 @@
 }
 
 /* NIST Sphere File */
-static char *spherenames[] = {
+static const char *spherenames[] = {
   "sph",
   NULL
 };
--- a/src/st.h
+++ b/src/st.h
@@ -208,7 +208,7 @@
 typedef struct st_soundstream *ft_t;
 
 typedef struct st_format {
-    char         **names;
+    const char   * const *names;
     char         *usage;
     unsigned int flags;
     int          (*startread)(ft_t ft);
@@ -215,7 +215,7 @@
     st_ssize_t   (*read)(ft_t ft, st_sample_t *buf, st_ssize_t len);
     int          (*stopread)(ft_t ft);
     int          (*startwrite)(ft_t ft);
-    st_ssize_t   (*write)(ft_t ft, st_sample_t *buf, st_ssize_t len);
+    st_ssize_t   (*write)(ft_t ft, const st_sample_t *buf, st_ssize_t len);
     int          (*stopwrite)(ft_t ft);
     int          (*seek)(ft_t ft, st_size_t offset);
 } st_format_t;
@@ -342,7 +342,7 @@
                                 const st_instrinfo_t *instr,
                                 const st_loopinfo_t *loops);
 extern st_ssize_t st_read(ft_t ft, st_sample_t *buf, st_ssize_t len);
-extern st_ssize_t st_write(ft_t ft, st_sample_t *buf, st_ssize_t len);
+extern st_ssize_t st_write(ft_t ft, const st_sample_t *buf, st_ssize_t len);
 extern int st_close(ft_t ft);
 
 #define ST_SEEK_SET 0
@@ -349,12 +349,12 @@
 extern int st_seek(ft_t ft, st_size_t offset, int whence);
 
 int st_geteffect_opt(eff_t, int, char **);
-int st_geteffect(eff_t, char *);
-int st_checkeffect(char *);
-int st_updateeffect(eff_t, st_signalinfo_t *in, st_signalinfo_t *out, int);
+int st_geteffect(eff_t, const char *);
+int st_checkeffect(const char *);
+int st_updateeffect(eff_t, const st_signalinfo_t *in, const st_signalinfo_t *out, int);
 int st_gettype(ft_t);
 ft_t st_initformat(void);
-int st_parsesamples(st_rate_t rate, char *str, st_size_t *samples, char def);
+int st_parsesamples(st_rate_t rate, const char *str, st_size_t *samples, char def);
 
 extern char const * st_message_filename;
 
--- a/src/st_i.h
+++ b/src/st_i.h
@@ -231,7 +231,7 @@
 st_ssize_t st_rawread(ft_t ft, st_sample_t *buf, st_ssize_t nsamp);
 int st_rawstopread(ft_t ft);
 int st_rawstartwrite(ft_t ft);
-st_ssize_t st_rawwrite(ft_t ft, st_sample_t *buf, st_ssize_t nsamp);
+st_ssize_t st_rawwrite(ft_t ft, const st_sample_t *buf, st_ssize_t nsamp);
 int st_rawstopwrite(ft_t ft);
 int st_rawseek(ft_t ft, st_size_t offset);
 
@@ -239,7 +239,8 @@
  * a file handler or effect doesn't need to do anything special
  */
 int st_format_nothing(ft_t ft);
-st_ssize_t st_format_nothing_io(ft_t ft, st_sample_t *buf, st_ssize_t len);
+st_ssize_t st_format_nothing_read_io(ft_t ft, st_sample_t *buf, st_ssize_t len);
+st_ssize_t st_format_nothing_write_io(ft_t ft, const st_sample_t *buf, st_ssize_t len);
 int st_format_nothing_seek(ft_t ft, st_size_t offset);
 int st_effect_nothing(eff_t effp);
 int st_effect_nothing_drain(eff_t effp, st_sample_t *obuf, st_size_t *osamp);
--- a/src/stio.c
+++ b/src/stio.c
@@ -329,7 +329,7 @@
     return (*ft->h->read)(ft, buf, len);
 }
 
-st_ssize_t st_write(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_write(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
     return (*ft->h->write)(ft, buf, len);
 }
--- a/src/tx16w.c
+++ b/src/tx16w.c
@@ -276,7 +276,7 @@
     return(ST_SUCCESS);
 }
 
-st_ssize_t st_txwwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_txwwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
     int i;
     unsigned int w1,w2;
@@ -377,7 +377,7 @@
 }
 
 /* Yamaha TX16W and SY99 waves */
-static char *txwnames[] = {
+static const char *txwnames[] = {
   "txw",
   NULL
 };
--- a/src/util.c
+++ b/src/util.c
@@ -156,7 +156,7 @@
         return 0;
 }
 
-int strcmpcase(char *s1, char *s2)
+int strcmpcase(const char *s1, const char *s2)
 {
         while(*s1 && *s2 && (tolower(*s1) == tolower(*s2)))
                 s1++, s2++;
@@ -168,7 +168,7 @@
  */
 int st_gettype(ft_t formp)
 {
-    char **list;
+    const char * const *list;
     int i;
     const st_format_t *f;
 
@@ -180,8 +180,8 @@
     }
     for(i = 0; st_format_fns[i]; i++) {
         f = st_format_fns[i]();
-        for(list = f->names; *list; list++) {
-            char *s1 = *list, *s2 = formp->filetype;
+        for (list = f->names; *list; list++) {
+            const char *s1 = *list, *s2 = formp->filetype;
             if (! strcmpcase(s1, s2))
                 break;  /* not a match */
         }
@@ -261,12 +261,12 @@
  * Returns -1 on on failure.
  */
 
-int st_geteffect(eff_t effp, char *effect_name)
+int st_geteffect(eff_t effp, const char *effect_name)
 {
     int i;
 
     for(i = 0; st_effect_fns[i]; i++) {
-        char *s1, *s2;
+        const char *s1, *s2;
         const st_effect_t *e = st_effect_fns[i]();
 
         if (!e || !e->name)
@@ -294,12 +294,12 @@
  * Check that we have a known effect name.  Return ST_SUCESS if found, else
  * return ST_EOF.
  */
-int st_checkeffect(char *effect_name)
+int st_checkeffect(const char *effect_name)
 {
     int i;
 
     for(i = 0; st_effect_fns[i]; i++) {
-        char *s1, *s2;
+        const char *s1, *s2;
         const st_effect_t *e = st_effect_fns[i]();
 
         if (!e || !e->name)
@@ -330,7 +330,7 @@
  * calls.
  */
 
-int st_updateeffect(eff_t effp, st_signalinfo_t *in, st_signalinfo_t *out, 
+int st_updateeffect(eff_t effp, const st_signalinfo_t *in, const st_signalinfo_t *out, 
                     int effect_mask)
 {
     effp->ininfo = *in;
@@ -383,7 +383,7 @@
  * st_parsesamples
  *
  * Parse a string for # of samples.  If string ends with a 's'
- * then string is interrepted as a user calculated # of samples.
+ * then the string is interpreted as a user calculated # of samples.
  * If string contains ':' or '.' or if it ends with a 't' then its
  * treated as an amount of time.  This is converted into seconds and
  * fraction of seconds and then use the sample rate to calculate
@@ -390,7 +390,7 @@
  * # of samples.
  * Returns ST_EOF on error.
  */
-int st_parsesamples(st_rate_t rate, char *str, st_size_t *samples, char def)
+int st_parsesamples(st_rate_t rate, const char *str, st_size_t *samples, char def)
 {
     int found_samples = 0, found_time = 0;
     int time = 0;
--- a/src/voc.c
+++ b/src/voc.c
@@ -466,7 +466,7 @@
 /*-----------------------------------------------------------------
  * st_vocstartread() -- start reading a VOC file
  *-----------------------------------------------------------------*/
-st_ssize_t st_vocwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t st_vocwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
         vs_t v = (vs_t) ft->priv;
         unsigned char uc;
@@ -826,7 +826,7 @@
 }
 
 /* Sound Blaster .VOC */
-static char *vocnames[] = {
+static const char *vocnames[] = {
   "voc",
   NULL
 };
--- a/src/vorbis.c
+++ b/src/vorbis.c
@@ -402,7 +402,7 @@
         return(ST_SUCCESS);     
 }
 
-st_ssize_t st_vorbiswrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_vorbiswrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
         vorbis_t vb = (vorbis_t) ft->priv;
         vorbis_enc_t *ve = vb->vorbis_enc_data;
@@ -469,7 +469,7 @@
         return (ST_SUCCESS);
 }
 
-static char *vorbisnames[] = {
+static const char *vorbisnames[] = {
   "vorbis",
   "ogg",
   NULL
--- a/src/vox.c
+++ b/src/vox.c
@@ -267,7 +267,7 @@
  * Notes      : 
  ******************************************************************************/
 
-st_ssize_t st_voxwrite (ft_t ft,st_sample_t *buffer,st_ssize_t length) 
+st_ssize_t st_voxwrite (ft_t ft,const st_sample_t *buffer,st_ssize_t length) 
            { vox_t    state = (vox_t) ft->priv;
              int      count = 0;
              uint8_t  byte  = state->store.byte;
@@ -442,7 +442,7 @@
         return (sample);
       }
 
-static char *voxnames[] = {
+static const char *voxnames[] = {
   "vox",
   NULL
 };
--- a/src/wav.c
+++ b/src/wav.c
@@ -350,7 +350,7 @@
     return (ST_SUCCESS);
 }
 
-st_ssize_t wavgsmwrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+st_ssize_t wavgsmwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
     wav_t       wav = (wav_t) ft->priv;
     int done = 0;
@@ -1679,7 +1679,7 @@
     return ST_SUCCESS;
 }
 
-st_ssize_t st_wavwrite(ft_t ft, st_sample_t *buf, st_ssize_t len) 
+st_ssize_t st_wavwrite(ft_t ft, const st_sample_t *buf, st_ssize_t len) 
 {
         wav_t   wav = (wav_t) ft->priv;
         st_ssize_t total_len = len;
@@ -1858,7 +1858,7 @@
 }
 
 /* Microsoftt RIFF */
-static char *wavnames[] = {
+static const char *wavnames[] = {
   "wav",
   NULL
 };
--- a/src/wve.c
+++ b/src/wve.c
@@ -179,7 +179,7 @@
         return st_rawread(ft, buf, samp);
 }
 
-st_ssize_t st_wvewrite(ft_t ft, st_sample_t *buf, st_ssize_t samp)
+st_ssize_t st_wvewrite(ft_t ft, const st_sample_t *buf, st_ssize_t samp)
 {
         wve_t p = (wve_t ) ft->priv;
         p->length += samp * ft->info.size;
@@ -233,7 +233,7 @@
 }
 
 /* Psion .wve */
-static char *wvenames[] = {
+static const char *wvenames[] = {
   "wve",
   NULL
 };
--- a/src/xa.c
+++ b/src/xa.c
@@ -312,7 +312,7 @@
     return ST_EOF;
 }
 
-static st_ssize_t st_xawrite(ft_t ft, st_sample_t *buf, st_ssize_t len)
+static st_ssize_t st_xawrite(ft_t ft, const st_sample_t *buf, st_ssize_t len)
 {
     st_fail_errno(ft, ST_ENOTSUP, ".XA writing not supported");
     return ST_EOF;
@@ -330,7 +330,7 @@
 }
 
 /* Maxis .xa */
-static char *xanames[] = {
+static const char *xanames[] = {
     "xa",
     NULL
 };