external libs: updates to libmikmod from mainstream, rebuilt. SDL-1.2
authorOzkan Sezer
Sun, 08 Dec 2019 15:45:50 +0300
branchSDL-1.2
changeset 10674b7e7a70b477
parent 1063 0540f444be0a
child 1068 36ec29b83b62
external libs: updates to libmikmod from mainstream, rebuilt.
VisualC/external/lib/x64/libmikmod-2.dll
VisualC/external/lib/x86/libmikmod-2.dll
Xcode/Frameworks/mikmod.framework/Versions/A/mikmod
external/libmikmod/Makefile.in
external/libmikmod/configure
external/libmikmod/dlapi/Makefile.in
external/libmikmod/docs/Makefile.in
external/libmikmod/drivers/Makefile.in
external/libmikmod/include/Makefile.in
external/libmikmod/loaders/Makefile.in
external/libmikmod/loaders/load_dsm.c
external/libmikmod/loaders/load_imf.c
external/libmikmod/loaders/load_it.c
external/libmikmod/loaders/load_m15.c
external/libmikmod/loaders/load_med.c
external/libmikmod/loaders/load_mtm.c
external/libmikmod/loaders/load_stm.c
external/libmikmod/loaders/load_stx.c
external/libmikmod/loaders/load_ult.c
external/libmikmod/loaders/load_uni.c
external/libmikmod/m4/libtool.m4
external/libmikmod/macintosh/config.h
external/libmikmod/mmio/Makefile.in
external/libmikmod/os2/Makefile.emx
external/libmikmod/playercode/Makefile.in
external/libmikmod/playercode/mplayer.c
external/libmikmod/posix/Makefile.in
     1.1 Binary file VisualC/external/lib/x64/libmikmod-2.dll has changed
     2.1 Binary file VisualC/external/lib/x86/libmikmod-2.dll has changed
     3.1 Binary file Xcode/Frameworks/mikmod.framework/Versions/A/mikmod has changed
     4.1 --- a/external/libmikmod/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
     4.2 +++ b/external/libmikmod/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
     4.3 @@ -332,6 +332,7 @@
     4.4  prefix = @prefix@
     4.5  program_transform_name = @program_transform_name@
     4.6  psdir = @psdir@
     4.7 +runstatedir = @runstatedir@
     4.8  sbindir = @sbindir@
     4.9  sharedstatedir = @sharedstatedir@
    4.10  srcdir = @srcdir@
     5.1 --- a/external/libmikmod/configure	Sun Dec 08 10:20:21 2019 +0300
     5.2 +++ b/external/libmikmod/configure	Sun Dec 08 15:45:50 2019 +0300
     5.3 @@ -743,6 +743,7 @@
     5.4  docdir
     5.5  oldincludedir
     5.6  includedir
     5.7 +runstatedir
     5.8  localstatedir
     5.9  sharedstatedir
    5.10  sysconfdir
    5.11 @@ -853,6 +854,7 @@
    5.12  sysconfdir='${prefix}/etc'
    5.13  sharedstatedir='${prefix}/com'
    5.14  localstatedir='${prefix}/var'
    5.15 +runstatedir='${localstatedir}/run'
    5.16  includedir='${prefix}/include'
    5.17  oldincludedir='/usr/include'
    5.18  docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
    5.19 @@ -1105,6 +1107,15 @@
    5.20    | -silent | --silent | --silen | --sile | --sil)
    5.21      silent=yes ;;
    5.22  
    5.23 +  -runstatedir | --runstatedir | --runstatedi | --runstated \
    5.24 +  | --runstate | --runstat | --runsta | --runst | --runs \
    5.25 +  | --run | --ru | --r)
    5.26 +    ac_prev=runstatedir ;;
    5.27 +  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
    5.28 +  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
    5.29 +  | --run=* | --ru=* | --r=*)
    5.30 +    runstatedir=$ac_optarg ;;
    5.31 +
    5.32    -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
    5.33      ac_prev=sbindir ;;
    5.34    -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
    5.35 @@ -1242,7 +1253,7 @@
    5.36  for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
    5.37  		datadir sysconfdir sharedstatedir localstatedir includedir \
    5.38  		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
    5.39 -		libdir localedir mandir
    5.40 +		libdir localedir mandir runstatedir
    5.41  do
    5.42    eval ac_val=\$$ac_var
    5.43    # Remove trailing slashes.
    5.44 @@ -1395,6 +1406,7 @@
    5.45    --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
    5.46    --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
    5.47    --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
    5.48 +  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
    5.49    --libdir=DIR            object code libraries [EPREFIX/lib]
    5.50    --includedir=DIR        C header files [PREFIX/include]
    5.51    --oldincludedir=DIR     C header files for non-gcc [/usr/include]
    5.52 @@ -9783,7 +9795,7 @@
    5.53  	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
    5.54  	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
    5.55  	emximp -o $lib $output_objdir/$libname.def'
    5.56 -      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    5.57 +      old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    5.58        enable_shared_with_static_runtimes=yes
    5.59        file_list_spec='@'
    5.60        ;;
    5.61 @@ -10638,7 +10650,7 @@
    5.62  	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
    5.63  	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
    5.64  	emximp -o $lib $output_objdir/$libname.def'
    5.65 -      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    5.66 +      old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    5.67        enable_shared_with_static_runtimes=yes
    5.68        file_list_spec='@'
    5.69        ;;
    5.70 @@ -13083,16 +13095,16 @@
    5.71    # Try to guess by grepping values from an object file.
    5.72  	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    5.73  /* end confdefs.h.  */
    5.74 -short int ascii_mm[] =
    5.75 +unsigned short int ascii_mm[] =
    5.76  		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
    5.77 -		short int ascii_ii[] =
    5.78 +		unsigned short int ascii_ii[] =
    5.79  		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
    5.80  		int use_ascii (int i) {
    5.81  		  return ascii_mm[i] + ascii_ii[i];
    5.82  		}
    5.83 -		short int ebcdic_ii[] =
    5.84 +		unsigned short int ebcdic_ii[] =
    5.85  		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
    5.86 -		short int ebcdic_mm[] =
    5.87 +		unsigned short int ebcdic_mm[] =
    5.88  		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
    5.89  		int use_ebcdic (int i) {
    5.90  		  return ebcdic_mm[i] + ebcdic_ii[i];
     6.1 --- a/external/libmikmod/dlapi/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
     6.2 +++ b/external/libmikmod/dlapi/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
     6.3 @@ -192,6 +192,7 @@
     6.4  prefix = @prefix@
     6.5  program_transform_name = @program_transform_name@
     6.6  psdir = @psdir@
     6.7 +runstatedir = @runstatedir@
     6.8  sbindir = @sbindir@
     6.9  sharedstatedir = @sharedstatedir@
    6.10  srcdir = @srcdir@
     7.1 --- a/external/libmikmod/docs/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
     7.2 +++ b/external/libmikmod/docs/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
     7.3 @@ -237,6 +237,7 @@
     7.4  prefix = @prefix@
     7.5  program_transform_name = @program_transform_name@
     7.6  psdir = @psdir@
     7.7 +runstatedir = @runstatedir@
     7.8  sbindir = @sbindir@
     7.9  sharedstatedir = @sharedstatedir@
    7.10  srcdir = @srcdir@
     8.1 --- a/external/libmikmod/drivers/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
     8.2 +++ b/external/libmikmod/drivers/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
     8.3 @@ -192,6 +192,7 @@
     8.4  prefix = @prefix@
     8.5  program_transform_name = @program_transform_name@
     8.6  psdir = @psdir@
     8.7 +runstatedir = @runstatedir@
     8.8  sbindir = @sbindir@
     8.9  sharedstatedir = @sharedstatedir@
    8.10  srcdir = @srcdir@
     9.1 --- a/external/libmikmod/include/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
     9.2 +++ b/external/libmikmod/include/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
     9.3 @@ -225,6 +225,7 @@
     9.4  prefix = @prefix@
     9.5  program_transform_name = @program_transform_name@
     9.6  psdir = @psdir@
     9.7 +runstatedir = @runstatedir@
     9.8  sbindir = @sbindir@
     9.9  sharedstatedir = @sharedstatedir@
    9.10  srcdir = @srcdir@
    10.1 --- a/external/libmikmod/loaders/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
    10.2 +++ b/external/libmikmod/loaders/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
    10.3 @@ -192,6 +192,7 @@
    10.4  prefix = @prefix@
    10.5  program_transform_name = @program_transform_name@
    10.6  psdir = @psdir@
    10.7 +runstatedir = @runstatedir@
    10.8  sbindir = @sbindir@
    10.9  sharedstatedir = @sharedstatedir@
   10.10  srcdir = @srcdir@
    11.1 --- a/external/libmikmod/loaders/load_dsm.c	Sun Dec 08 10:20:21 2019 +0300
    11.2 +++ b/external/libmikmod/loaders/load_dsm.c	Sun Dec 08 15:45:50 2019 +0300
    11.3 @@ -285,6 +285,11 @@
    11.4  	for(t=0;t<mh->numord;t++) {
    11.5  		int order=mh->orders[t];
    11.6  		if(order==255) order=LAST_PATTERN;
    11.7 +		else if (of.positions[t]>of.numpat) { /* SANITIY CHECK */
    11.8 +		/*	fprintf(stderr,"positions[%d]=%d > numpat=%d\n",t,of.positions[t],of.numpat);*/
    11.9 +			_mm_errno = MMERR_LOADING_HEADER;
   11.10 +			return 0;
   11.11 +		}
   11.12  		of.positions[of.numpos]=order;
   11.13  		if(mh->orders[t]<254) of.numpos++;
   11.14  	}
    12.1 --- a/external/libmikmod/loaders/load_imf.c	Sun Dec 08 10:20:21 2019 +0300
    12.2 +++ b/external/libmikmod/loaders/load_imf.c	Sun Dec 08 15:45:50 2019 +0300
    12.3 @@ -490,6 +490,13 @@
    12.4  	if(!AllocPositions(of.numpos)) return 0;
    12.5  	for(t=u=0;t<mh->ordnum;t++)
    12.6  		if(mh->orders[t]!=0xff) of.positions[u++]=mh->orders[t];
    12.7 +	for(t=0;t<of.numpos;t++) {
    12.8 +		if (of.positions[t]>of.numpat) { /* SANITIY CHECK */
    12.9 +		/*	fprintf(stderr,"position[%d]=%d > numpat=%d\n",t,of.positions[t],of.numpat);*/
   12.10 +			_mm_errno = MMERR_LOADING_HEADER;
   12.11 +			return 0;
   12.12 +		}
   12.13 +	}
   12.14  
   12.15  	/* load pattern info */
   12.16  	of.numtrk=of.numpat*of.numchn;
    13.1 --- a/external/libmikmod/loaders/load_it.c	Sun Dec 08 10:20:21 2019 +0300
    13.2 +++ b/external/libmikmod/loaders/load_it.c	Sun Dec 08 15:45:50 2019 +0300
    13.3 @@ -396,6 +396,7 @@
    13.4  {
    13.5  	CHAR *curp,*lastp;
    13.6  
    13.7 +	memset(dest,0,33*sizeof(CHAR));/* caller sends midiline[33] */
    13.8  	_mm_read_UBYTES(dest,32,r);
    13.9  	curp=lastp=dest;
   13.10  	/* remove blanks and uppercase all */
    14.1 --- a/external/libmikmod/loaders/load_m15.c	Sun Dec 08 10:20:21 2019 +0300
    14.2 +++ b/external/libmikmod/loaders/load_m15.c	Sun Dec 08 15:45:50 2019 +0300
    14.3 @@ -92,7 +92,6 @@
    14.4  	int t,u;
    14.5  
    14.6  	_mm_read_string(h->songname,20,modreader);
    14.7 -	h->songname[20]=0;	/* just in case */
    14.8  
    14.9  	/* sanity check : title should contain printable characters and a bunch
   14.10  	   of null chars */
   14.11 @@ -105,7 +104,6 @@
   14.12  		MSAMPINFO *s=&h->samples[t];
   14.13  
   14.14  		_mm_read_string(s->samplename,22,modreader);
   14.15 -		s->samplename[22]=0;	/* just in case */
   14.16  		s->length   =_mm_read_M_UWORD(modreader);
   14.17  		s->finetune =_mm_read_UBYTE(modreader);
   14.18  		s->volume   =_mm_read_UBYTE(modreader);
   14.19 @@ -180,6 +178,7 @@
   14.20  	MODULEHEADER h;
   14.21  
   14.22  	ust_loader = 0;
   14.23 +	memset(&h, 0, sizeof(MODULEHEADER));
   14.24  	if(!LoadModuleHeader(&h)) return 0;
   14.25  
   14.26  	/* reject other file types */
   14.27 @@ -242,7 +241,7 @@
   14.28  
   14.29  static BOOL M15_Init(void)
   14.30  {
   14.31 -	if(!(mh=(MODULEHEADER*)_mm_malloc(sizeof(MODULEHEADER)))) return 0;
   14.32 +	if(!(mh=(MODULEHEADER*)_mm_calloc(1,sizeof(MODULEHEADER)))) return 0;
   14.33  	return 1;
   14.34  }
   14.35  
    15.1 --- a/external/libmikmod/loaders/load_med.c	Sun Dec 08 10:20:21 2019 +0300
    15.2 +++ b/external/libmikmod/loaders/load_med.c	Sun Dec 08 15:45:50 2019 +0300
    15.3 @@ -554,8 +554,14 @@
    15.4  	/* copy song positions */
    15.5  	if (!AllocPositions(ms->songlen))
    15.6  		return 0;
    15.7 -	for (t = 0; t < ms->songlen; t++)
    15.8 +	for (t = 0; t < ms->songlen; t++) {
    15.9  		of.positions[t] = ms->playseq[t];
   15.10 +		if (of.positions[t]>ms->numblocks) { /* SANITIY CHECK */
   15.11 +		/*	fprintf(stderr,"positions[%d]=%d > numpat=%d\n",t,of.positions[t],ms->numblocks);*/
   15.12 +			_mm_errno = MMERR_LOADING_HEADER;
   15.13 +			return 0;
   15.14 +		}
   15.15 +	}
   15.16  
   15.17  	decimalvolumes = (ms->flags & 0x10) ? 0 : 1;
   15.18  	bpmtempos = (ms->flags2 & 0x20) ? 1 : 0;
    16.1 --- a/external/libmikmod/loaders/load_mtm.c	Sun Dec 08 10:20:21 2019 +0300
    16.2 +++ b/external/libmikmod/loaders/load_mtm.c	Sun Dec 08 15:45:50 2019 +0300
    16.3 @@ -217,8 +217,14 @@
    16.4  	}
    16.5  
    16.6  	if(!AllocPositions(of.numpos)) return 0;
    16.7 -	for(t=0;t<of.numpos;t++)
    16.8 +	for(t=0;t<of.numpos;t++) {
    16.9  		of.positions[t]=_mm_read_UBYTE(modreader);
   16.10 +		if (of.positions[t]>of.numpat) { /* SANITIY CHECK */
   16.11 +		/*	fprintf(stderr,"positions[%d]=%d > numpat=%d\n",t,of.positions[t],of.numpat);*/
   16.12 +			_mm_errno = MMERR_LOADING_HEADER;
   16.13 +			return 0;
   16.14 +		}
   16.15 +	}
   16.16  	for(;t<128;t++) _mm_skip_BYTE(modreader);
   16.17  	if(_mm_eof(modreader)) {
   16.18  		_mm_errno = MMERR_LOADING_HEADER;
    17.1 --- a/external/libmikmod/loaders/load_stm.c	Sun Dec 08 10:20:21 2019 +0300
    17.2 +++ b/external/libmikmod/loaders/load_stm.c	Sun Dec 08 15:45:50 2019 +0300
    17.3 @@ -103,6 +103,7 @@
    17.4  	UBYTE str[44];
    17.5  	int t;
    17.6  
    17.7 +	memset(str,0,44);
    17.8  	_mm_fseek(modreader,20,SEEK_SET);
    17.9  	_mm_read_UBYTES(str,44,modreader);
   17.10  	if(str[9]!=2) return 0;	/* STM Module = filetype 2 */
    18.1 --- a/external/libmikmod/loaders/load_stx.c	Sun Dec 08 10:20:21 2019 +0300
    18.2 +++ b/external/libmikmod/loaders/load_stx.c	Sun Dec 08 15:45:50 2019 +0300
    18.3 @@ -114,6 +114,7 @@
    18.4  	UBYTE id[8];
    18.5  	int t;
    18.6  
    18.7 +	memset(id,0,8);
    18.8  	_mm_fseek(modreader,0x3C,SEEK_SET);
    18.9  	if(!_mm_read_UBYTES(id,4,modreader)) return 0;
   18.10  	if(memcmp(id,"SCRM",4)) return 0;
   18.11 @@ -297,7 +298,8 @@
   18.12  		_mm_errno = MMERR_LOADING_HEADER;
   18.13  		return 0;
   18.14  	}
   18.15 -	if(mh->ordnum > 256 || mh->insnum > 256 || mh->patnum > 254) {
   18.16 +	if(mh->ordnum > 256 || !mh->insnum || mh->insnum > 256 ||
   18.17 +	   mh->patnum > 254 || !mh->patnum) {
   18.18  		_mm_errno = MMERR_NOT_A_MODULE;
   18.19  		return 0;
   18.20  	}
    19.1 --- a/external/libmikmod/loaders/load_ult.c	Sun Dec 08 10:20:21 2019 +0300
    19.2 +++ b/external/libmikmod/loaders/load_ult.c	Sun Dec 08 15:45:50 2019 +0300
    19.3 @@ -206,12 +206,6 @@
    19.4  	if(!AllocPositions(256)) return 0;
    19.5  	for(t=0;t<256;t++)
    19.6  		of.positions[t]=_mm_read_UBYTE(modreader);
    19.7 -	for(t=0;t<256;t++)
    19.8 -		if(of.positions[t]==255) {
    19.9 -			of.positions[t]=LAST_PATTERN;
   19.10 -			break;
   19.11 -		}
   19.12 -	of.numpos=t;
   19.13  
   19.14  	noc=_mm_read_UBYTE(modreader);
   19.15  	nop=_mm_read_UBYTE(modreader);
   19.16 @@ -219,6 +213,20 @@
   19.17  	of.numchn=++noc;
   19.18  	of.numpat=++nop;
   19.19  	of.numtrk=of.numchn*of.numpat;
   19.20 +
   19.21 +	for(t=0;t<256;t++) {
   19.22 +		if(of.positions[t]==255) {
   19.23 +			of.positions[t]=LAST_PATTERN;
   19.24 +			break;
   19.25 +		}
   19.26 +		if (of.positions[t]>of.numpat) { /* SANITIY CHECK */
   19.27 +		/*	fprintf(stderr,"positions[%d]=%d > numpat=%d\n",t,of.positions[t],of.numpat);*/
   19.28 +			_mm_errno = MMERR_LOADING_HEADER;
   19.29 +			return 0;
   19.30 +		}
   19.31 +	}
   19.32 +	of.numpos=t;
   19.33 +
   19.34  	if(!AllocTracks()) return 0;
   19.35  	if(!AllocPatterns()) return 0;
   19.36  	for(u=0;u<of.numchn;u++)
    20.1 --- a/external/libmikmod/loaders/load_uni.c	Sun Dec 08 10:20:21 2019 +0300
    20.2 +++ b/external/libmikmod/loaders/load_uni.c	Sun Dec 08 15:45:50 2019 +0300
    20.3 @@ -623,9 +623,14 @@
    20.4  		for(t=0;t<of.numchn;t++) of.panning[t]=mh.panning[t];
    20.5  	}
    20.6  	/* convert the ``end of song'' pattern code if necessary */
    20.7 -	if(universion<0x106)
    20.8 -		for(t=0;t<of.numpos;t++)
    20.9 -			if(of.positions[t]==255) of.positions[t]=LAST_PATTERN;
   20.10 +	for(t=0;t<of.numpos;t++) {
   20.11 +		if(universion<0x106 && of.positions[t]==255) of.positions[t]=LAST_PATTERN;
   20.12 +		else if (of.positions[t]>of.numpat) { /* SANITIY CHECK */
   20.13 +		/*	fprintf(stderr,"position[%d]=%d > numpat=%d\n",t,of.positions[t],of.numpat);*/
   20.14 +			_mm_errno = MMERR_LOADING_HEADER;
   20.15 +			return 0;
   20.16 +		}
   20.17 +	}
   20.18  
   20.19  	/* instruments and samples */
   20.20  	if(universion>=6) {
    21.1 --- a/external/libmikmod/m4/libtool.m4	Sun Dec 08 10:20:21 2019 +0300
    21.2 +++ b/external/libmikmod/m4/libtool.m4	Sun Dec 08 15:45:50 2019 +0300
    21.3 @@ -5166,7 +5166,7 @@
    21.4  	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
    21.5  	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
    21.6  	emximp -o $lib $output_objdir/$libname.def'
    21.7 -      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    21.8 +      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
    21.9        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
   21.10        _LT_TAGVAR(file_list_spec, $1)='@'
   21.11        ;;
   21.12 @@ -5872,7 +5872,7 @@
   21.13  	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
   21.14  	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
   21.15  	emximp -o $lib $output_objdir/$libname.def'
   21.16 -      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
   21.17 +      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
   21.18        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
   21.19        _LT_TAGVAR(file_list_spec, $1)='@'
   21.20        ;;
   21.21 @@ -6742,7 +6742,7 @@
   21.22  	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
   21.23  	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
   21.24  	  emximp -o $lib $output_objdir/$libname.def'
   21.25 -	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
   21.26 +	_LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
   21.27  	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
   21.28  	_LT_TAGVAR(file_list_spec, $1)='@'
   21.29  	;;
    22.1 --- a/external/libmikmod/macintosh/config.h	Sun Dec 08 10:20:21 2019 +0300
    22.2 +++ b/external/libmikmod/macintosh/config.h	Sun Dec 08 15:45:50 2019 +0300
    22.3 @@ -3,6 +3,9 @@
    22.4  /* Define if you have the ANSI C header files.  */
    22.5  /* #undef STDC_HEADERS */
    22.6  
    22.7 +/* disable the high quality mixer (build only with the standart mixer) */
    22.8 +/* #define NO_HQMIXER */
    22.9 +
   22.10  /* Define if you want support for output to stdout */
   22.11  /* #undef DRV_STDOUT */
   22.12  
    23.1 --- a/external/libmikmod/mmio/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
    23.2 +++ b/external/libmikmod/mmio/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
    23.3 @@ -192,6 +192,7 @@
    23.4  prefix = @prefix@
    23.5  program_transform_name = @program_transform_name@
    23.6  psdir = @psdir@
    23.7 +runstatedir = @runstatedir@
    23.8  sbindir = @sbindir@
    23.9  sharedstatedir = @sharedstatedir@
   23.10  srcdir = @srcdir@
    24.1 --- a/external/libmikmod/os2/Makefile.emx	Sun Dec 08 10:20:21 2019 +0300
    24.2 +++ b/external/libmikmod/os2/Makefile.emx	Sun Dec 08 15:45:50 2019 +0300
    24.3 @@ -4,9 +4,10 @@
    24.4  # make static : builds the static library mikmod_static.lib
    24.5  
    24.6  INCLUDES=-I../os2 -I../include
    24.7 -AR=emxomfar
    24.8 +CC=gcc
    24.9 +AR=ar #emxomfar
   24.10  ARFLAGS=cr
   24.11 -CC=gcc
   24.12 +RANLIB=ranlib
   24.13  IMPLIB=emximp
   24.14  
   24.15  CFLAGS=-O2 -Wall -funroll-loops -ffast-math -fno-strength-reduce -Zomf -Zmt
   24.16 @@ -77,6 +78,7 @@
   24.17  $(LIBSTATIC): CPPFLAGS+=-DMIKMOD_STATIC
   24.18  $(LIBSTATIC): $(OBJ)
   24.19  	$(AR) $(ARFLAGS) $(LIBSTATIC) $(OBJ)
   24.20 +	$(RANLIB) $(LIBSTATIC)
   24.21  
   24.22  HEADER_DEPS=../include/mikmod.h ../include/mikmod_internals.h ../include/mikmod_ctype.h
   24.23  drv_dart.o: ../drivers/drv_dart.c $(HEADER_DEPS)
    25.1 --- a/external/libmikmod/playercode/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
    25.2 +++ b/external/libmikmod/playercode/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
    25.3 @@ -192,6 +192,7 @@
    25.4  prefix = @prefix@
    25.5  program_transform_name = @program_transform_name@
    25.6  psdir = @psdir@
    25.7 +runstatedir = @runstatedir@
    25.8  sbindir = @sbindir@
    25.9  sharedstatedir = @sharedstatedir@
   25.10  srcdir = @srcdir@
    26.1 --- a/external/libmikmod/playercode/mplayer.c	Sun Dec 08 10:20:21 2019 +0300
    26.2 +++ b/external/libmikmod/playercode/mplayer.c	Sun Dec 08 15:45:50 2019 +0300
    26.3 @@ -363,6 +363,11 @@
    26.4  	t->a=0;
    26.5  	t->b=((t->flg&EF_SUSTAIN)&&(!(keyoff&KEY_OFF)))?0:1;
    26.6  
    26.7 +	if (!t->pts) { /* FIXME: bad/crafted file. better/more general solution? */
    26.8 +		t->b=0;
    26.9 +		return t->env[0].val;
   26.10 +	}
   26.11 +
   26.12  	/* Imago Orpheus sometimes stores an extra initial point in the envelope */
   26.13  	if ((t->pts>=2)&&(t->env[0].pos==t->env[1].pos)) {
   26.14  		t->a++;
   26.15 @@ -825,6 +830,11 @@
   26.16  	if (tick || mod->patdly2)
   26.17  		return 0;
   26.18  
   26.19 +	if (dat >= mod->numpos) { /* crafted file? */
   26.20 +	/*	fprintf(stderr,"DoPTEffectB: numpos=%d, dat=%d -> %d\n",mod->numpos,dat,mod->numpos-1);*/
   26.21 +		dat=mod->numpos-1;
   26.22 +	}
   26.23 +
   26.24  	/* Vincent Voois uses a nasty trick in "Universal Bolero" */
   26.25  	if (dat == mod->sngpos && mod->patbrk == mod->patpos)
   26.26  		return 0;
   26.27 @@ -872,6 +882,10 @@
   26.28  
   26.29  	dat=UniGetByte();
   26.30  	if ((tick)||(mod->patdly2)) return 0;
   26.31 +	if (dat && dat >= mod->numrow) { /* crafted file? */
   26.32 +	/*	fprintf(stderr,"DoPTEffectD: numrow=%d, dat=%d -> 0\n",mod->numrow,dat);*/
   26.33 +		dat=0;
   26.34 +	}
   26.35  	if ((mod->positions[mod->sngpos]!=LAST_PATTERN)&&
   26.36  	    (dat>mod->pattrows[mod->positions[mod->sngpos]])) {
   26.37  		dat=mod->pattrows[mod->positions[mod->sngpos]];
    27.1 --- a/external/libmikmod/posix/Makefile.in	Sun Dec 08 10:20:21 2019 +0300
    27.2 +++ b/external/libmikmod/posix/Makefile.in	Sun Dec 08 15:45:50 2019 +0300
    27.3 @@ -192,6 +192,7 @@
    27.4  prefix = @prefix@
    27.5  program_transform_name = @program_transform_name@
    27.6  psdir = @psdir@
    27.7 +runstatedir = @runstatedir@
    27.8  sbindir = @sbindir@
    27.9  sharedstatedir = @sharedstatedir@
   27.10  srcdir = @srcdir@