<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Fixes for C23.

--- shntool-3.0.10/include/format.h	2009-03-11 17:18:01.000000000 +0000
+++ shntool-3.0.10/include/format.h	2025-07-07 11:43:15.857786356 +0100
@@ -35,7 +35,7 @@
 int tagcmp(unsigned char *,unsigned char *);
 
 /* function to check if a file name is about to be clobbered, and if so, asks whether this is OK */
-int clobber_check(char *);
+bool clobber_check(char *);
 
 /* find an output format module with the given name */
 format_module *find_format(char *);
--- shntool-3.0.10/include/mode.h	2009-03-30 07:44:42.000000000 +0100
+++ shntool-3.0.10/include/mode.h	2025-07-07 11:45:49.190672836 +0100
@@ -78,7 +78,7 @@
 FILE *open_output_stream(char *,proc_info *);
 
 /* function to determine if two filenames point to the same file */
-int files_are_identical(char *,char *);
+bool files_are_identical(char *,char *);
 
 /* function to remove a file if it exists */
 void remove_file(char *);
--- shntool-3.0.10/include/module-types.h	2009-03-11 17:18:01.000000000 +0000
+++ shntool-3.0.10/include/module-types.h	2025-07-07 11:42:58.799230240 +0100
@@ -44,9 +44,6 @@
 #define PATHSEPCHAR '/'
 #endif
 
-/* boolean type */
-typedef int bool;
-
 /* wtypes */
 typedef unsigned long wlong;
 typedef unsigned short wshort;
--- shntool-3.0.10/src/core_mode.c	2025-07-07 11:45:58.528699056 +0100
+++ shntool-3.0.10/src/core_mode.c	2025-07-07 11:45:27.531702810 +0100
@@ -557,30 +557,28 @@
 static weak_alias (__strverscmp, strverscmp)
 #endif
 
-static int compare_version(const wave_info **w1,const wave_info **w2)
+static int compare_version(const void *v1, const void *v2)
 {
+  const wave_info **w1 = (const wave_info **)v1;
+  const wave_info **w2 = (const wave_info **)v2;
   return strverscmp(w1[0]-&gt;filename,w2[0]-&gt;filename);
 }
 
-static int compare_ascii(const wave_info **w1,const wave_info **w2)
+static int compare_ascii(const void *v1, const void *v2)
 {
+  const wave_info **w1 = (const wave_info **)v1;
+  const wave_info **w2 = (const wave_info **)v2;
   return strcmp(w1[0]-&gt;filename,w2[0]-&gt;filename);
 }
 
 static void ascii_sort_files(wave_info **filenames, int numfiles)
 {
-  int (*cmpfunc) ();
-
-  cmpfunc = compare_ascii;
-  qsort(filenames,numfiles,sizeof(wave_info *),cmpfunc);
+  qsort(filenames,numfiles,sizeof(wave_info *),compare_ascii);
 }
 
 static void version_sort_files(wave_info **filenames,int numfiles)
 {
-  int (*cmpfunc) ();
-
-  cmpfunc = compare_version;
-  qsort(filenames,numfiles,sizeof(wave_info *),cmpfunc);
+  qsort(filenames,numfiles,sizeof(wave_info *),compare_version);
 }
 
 /* public functions */
</pre></body></html>