* mingw: Delete obsolete directory.
* w32api: Ditto.
This commit is contained in:
		| @@ -1,3 +1,8 @@ | |||||||
|  | 2012-11-07  Christopher Faylor  <me.cygwin2012@cgf.cx> | ||||||
|  |  | ||||||
|  | 	* mingw: Delete obsolete directory. | ||||||
|  | 	* w32api: Ditto. | ||||||
|  |  | ||||||
| 2012-11-07  Corinna Vinschen  <corinna@vinschen.de> | 2012-11-07  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* Makefile.common (zlib_source): Remove. | 	* Makefile.common (zlib_source): Remove. | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CONTRIBUTORS |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * HISTORICAL: |  | ||||||
|  * Colin Peters <colin@fu.is.saga-u.ac.jp> - Original author of the |  | ||||||
|  *   mingw-runtime package. |  | ||||||
|  * Mumit Khan <khan@xraylith.wisc.EDU> - Original maintainer of the |  | ||||||
|  *   mingw-runtime package. |  | ||||||
|  * Gunther Ebert <gunther.ebert@ixos-leipzig.de> - Adaptations of his DLL |  | ||||||
|  *   support. |  | ||||||
|  * Stan Cox <scox@cygnus.com> - Provided gccmain.c. |  | ||||||
|  * J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - Provided |  | ||||||
|  *   dos.h. |  | ||||||
|  * Mikey <jeffdb@netzone.com> - Adaptated excpt.h from his code. |  | ||||||
|  * Pedro A. Aranda <paag@tid.es> - Provided lots of types for types.h. |  | ||||||
|  *  |  | ||||||
|  * CURRENT: |  | ||||||
|  * Danny Smith <dannysmith@users.sourceforge.net> |  | ||||||
|  * Earnie Boyd <earnie@users.sourceforge.net> |  | ||||||
|  * Luke Dunstan <coder_infidel@users.sourceforge.net> |  | ||||||
|  * |  | ||||||
|  * Many others in the MinGW user community.  They are listed in the ChangeLog. |  | ||||||
|  * Please review that file for the names of those contributors. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRT_FP10.c |  | ||||||
|  * |  | ||||||
|  * This defines _fpreset as asm ("fnint"). Calls to _fpreset |  | ||||||
|  * will set default floating point precesion to 64-bit mantissa |  | ||||||
|  * at app startup. |  | ||||||
|  * |  | ||||||
|  * Linking in CRT_FP10.o before libmingw.a will override the definition |  | ||||||
|  * set in CRT_FP8.o. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Override library  _fpreset() with asm fninit */ |  | ||||||
| void _fpreset (void) |  | ||||||
|   { __asm__ ( "fninit" ) ;} |  | ||||||
|  |  | ||||||
| #if defined(__PCC__) |  | ||||||
| void _Pragma("alias _fpreset") fpreset(void); |  | ||||||
| #else |  | ||||||
| void __attribute__ ((alias ("_fpreset"))) fpreset(void); |  | ||||||
| #endif |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRT_FP8.c |  | ||||||
|  * |  | ||||||
|  * This forces calls of _fpreset to the MSVCRT function |  | ||||||
|  * exported from dll.  Effectively it make default |  | ||||||
|  * precison same as apps built with MSVC (53-bit mantissa). |  | ||||||
|  |  | ||||||
|  * |  | ||||||
|  * To change to 64-bit mantissa, link in CRT_FP10.o before libmingw.a.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Link against the _fpreset visible in import lib */ |  | ||||||
|  |  | ||||||
| extern void (*_imp___fpreset)(void) ; |  | ||||||
| void _fpreset (void) |  | ||||||
| {  (*_imp___fpreset)(); } |  | ||||||
|  |  | ||||||
| #if defined(__PCC__) |  | ||||||
| void _Pragma("alias _fpreset") fpreset(void); |  | ||||||
| #else |  | ||||||
| void __attribute__ ((alias ("_fpreset"))) fpreset(void); |  | ||||||
| #endif |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRT_noglob.c |  | ||||||
|  * This file has no copyright is assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Include this object file to set _CRT_glob to a state that will turn off  |  | ||||||
|  * command line globbing by default.  NOTE: _CRT_glob has a default state of on. |  | ||||||
|  * |  | ||||||
|  * To use this object include the object file in your link command: |  | ||||||
|  * gcc -o foo.exe foo.o CRT_noglob.o |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int _CRT_glob = 0; |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRTfmode.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * This libmingw.a object sets  _CRT_fmode to a state that will cause  |  | ||||||
|  * _mingw32_init_fmode to leave all file modes in their default state  |  | ||||||
|  * (basically text mode). |  | ||||||
|  * 	 |  | ||||||
|  * To override the default, add, eg: |  | ||||||
|  * |  | ||||||
|  * #include <fcntl.h> |  | ||||||
|  * int _CRT_fmode = _O_BINARY; |  | ||||||
|  * |  | ||||||
|  * to your app.	 |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int _CRT_fmode = 0; |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRTglob.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Include this object file to set _CRT_glob to a state that will |  | ||||||
|  * turn on command line globbing by default.  NOTE: _CRT_glob has a default |  | ||||||
|  * state of on.  Specify CRT_noglob.o to turn off globbing by default. |  | ||||||
|  * |  | ||||||
|  * To use this object include the object file in your link command: |  | ||||||
|  * gcc -o foo.exe foo.o CRTglob.o |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int _CRT_glob = -1; |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| /* |  | ||||||
|  * CRTinit.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * A dummy version of _CRT_INIT for MS compatibility. Programs, or more often |  | ||||||
|  * dlls, which use the static version of the MSVC run time are supposed to |  | ||||||
|  * call _CRT_INIT to initialize the run time library in DllMain. This does |  | ||||||
|  * not appear to be necessary when using crtdll or the dll versions of the |  | ||||||
|  * MSVC runtime, so the dummy call simply does nothing. |  | ||||||
|  * |  | ||||||
|  * This object file is included as a standard in the link process as provided |  | ||||||
|  * by the appropriate GCC frontend. |  | ||||||
|  *  |  | ||||||
|  * To use this object include the object file in your link command: |  | ||||||
|  * gcc -o foo.exe foo.o CRTinit.o |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| void |  | ||||||
| _CRT_INIT () |  | ||||||
| { |  | ||||||
| } |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,12 +0,0 @@ | |||||||
| /* |  | ||||||
|  * DISCLAIMER |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * |  | ||||||
|  * The mingw-runtime package and its code is distributed in the hope that it  |  | ||||||
|  * will be useful but WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESSED OR  |  | ||||||
|  * IMPLIED ARE HEREBY DISCLAIMED.  This includes but is not limited to  |  | ||||||
|  * warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  * You are free to use this package and its code without limitation. |  | ||||||
|  */ |  | ||||||
| @@ -1,650 +0,0 @@ | |||||||
| # Makefile.in for the winsup/mingw directory. |  | ||||||
| # Copyright (c) 1995-2008, 1996, 1997, 1998 Cygnus Solutions |  | ||||||
|  |  | ||||||
| # This program is free software; you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU General Public License as published by |  | ||||||
| # the Free Software Foundation; either version 2 of the License, or |  | ||||||
| # (at your option) any later version. |  | ||||||
| # |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| # GNU General Public License for more details. |  | ||||||
| # |  | ||||||
| # You should have received a copy of the GNU General Public License |  | ||||||
| # along with this program; if not, write to the Free Software |  | ||||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |  | ||||||
|  |  | ||||||
| # This makefile requires GNU make. |  | ||||||
|  |  | ||||||
| PACKAGE = @PACKAGE_TARNAME@ |  | ||||||
| VERSION = @PACKAGE_VERSION@ |  | ||||||
| CYGRELEASE = 1 |  | ||||||
|  |  | ||||||
| VPATH = @srcdir@ |  | ||||||
| srcdir = @srcdir@ |  | ||||||
| top_srcdir = @top_srcdir@ |  | ||||||
| top_builddir = @top_builddir@ |  | ||||||
|  |  | ||||||
| # FIXME: I see no reason to define `objdir'; |  | ||||||
| # it appears to be unused, and could be removed. |  | ||||||
| objdir = . |  | ||||||
|  |  | ||||||
| host_alias = @host_alias@ |  | ||||||
| build_alias = @build_alias@ |  | ||||||
| target_alias = @target_alias@ |  | ||||||
| with_cross_host = @with_cross_host@ |  | ||||||
| prefix = @prefix@ |  | ||||||
| conf_prefix = @prefix@ |  | ||||||
| host_os = @host_os@ |  | ||||||
|  |  | ||||||
| datarootdir = @datarootdir@ |  | ||||||
| program_transform_name = @program_transform_name@ |  | ||||||
| exec_prefix = @exec_prefix@ |  | ||||||
| bindir = @bindir@ |  | ||||||
| libdir = @libdir@ |  | ||||||
|  |  | ||||||
| ifneq (,$(findstring cygwin,$(target_alias))) |  | ||||||
| #  |  | ||||||
| # FIXME: What is the purpose of such logic, testing `target_alias'? |  | ||||||
| # |  | ||||||
| # Firstly, there is no code generator being built here.  The concept |  | ||||||
| # of `target' is meaningless, and there is no valid reason to expect |  | ||||||
| # that `target_alias' would be anything other than an empty string. |  | ||||||
| # Thus, the validity of such tests is extremely suspect. |  | ||||||
| # |  | ||||||
| # Secondly, the decisions being taken, on the basis of these tests, |  | ||||||
| # rightfully belong in the configure script; all this logic should be |  | ||||||
| # removed, and properly implemented in `configure.in'. |  | ||||||
| # |  | ||||||
| mandir = $(prefix)/share/man |  | ||||||
| mansection = mingw |  | ||||||
| else |  | ||||||
| mandir = @mandir@ |  | ||||||
| mansection = 3 |  | ||||||
| endif |  | ||||||
| manpage_transform = @mingw_manpage_transform@ |  | ||||||
| ifeq ($(target_alias),$(host_alias)) |  | ||||||
| ifeq ($(build_alias),$(host_alias)) |  | ||||||
| tooldir:=$(exec_prefix) |  | ||||||
| else |  | ||||||
| tooldir:=$(exec_prefix)/$(target_alias) |  | ||||||
| endif |  | ||||||
| else |  | ||||||
| tooldir:=$(exec_prefix)/$(target_alias) |  | ||||||
| endif |  | ||||||
| datadir = @datadir@ |  | ||||||
| infodir = @infodir@ |  | ||||||
| includedir = @includedir@ |  | ||||||
| ifneq (,$(findstring cygwin,$(target_alias))) |  | ||||||
| # |  | ||||||
| # FIXME: Doubtful use of `target_alias', again. |  | ||||||
| # |  | ||||||
| # Here we not only have a dubious test, based on `target_alias', |  | ||||||
| # but we also assign local alternatives for the standard autoconf |  | ||||||
| # installation path macros.  This should not be necessary; the |  | ||||||
| # configure script should simply assign appropriate values to |  | ||||||
| # the standard macros, which should be used herein. |  | ||||||
| # |  | ||||||
| inst_bindir:=$(tooldir)/bin |  | ||||||
| inst_includedir:=$(tooldir)/include/mingw |  | ||||||
| inst_libdir:=$(tooldir)/lib/mingw |  | ||||||
| inst_docdir:=$(tooldir)/share/doc/mingw-runtime |  | ||||||
| need-DESTDIR-compatibility = prefix exec_prefix tooldir mandir |  | ||||||
| else |  | ||||||
| ifneq (,$(with_cross_host)) |  | ||||||
| # |  | ||||||
| # FIXME: What is the intended purpose of `with_cross_host'? |  | ||||||
| # |  | ||||||
| # Notwithstanding that this conforms to no known standard, and |  | ||||||
| # is completely undocumented, it does not belong here; every one |  | ||||||
| # of these settings is the prerogative of the configure script, |  | ||||||
| # and they should use standard names, as noted above. |  | ||||||
| # |  | ||||||
| inst_bindir:=$(tooldir)/bin |  | ||||||
| inst_includedir:=$(tooldir)/include |  | ||||||
| inst_libdir:=$(tooldir)/lib |  | ||||||
| inst_docdir:=$(tooldir)/share/doc/mingw-runtime |  | ||||||
| need-DESTDIR-compatibility = prefix exec_prefix tooldir mandir |  | ||||||
| else |  | ||||||
| inst_bindir:=$(bindir) |  | ||||||
| inst_includedir:=$(includedir) |  | ||||||
| inst_libdir:=$(libdir) |  | ||||||
| inst_docdir:=$(prefix)/doc/runtime |  | ||||||
| need-DESTDIR-compatibility = prefix bindir includedir libdir mandir |  | ||||||
| endif |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| # The Mingw headers are installed under a subdirectory of |  | ||||||
| # $(tooldir)/include when configuring in Cygwin. |  | ||||||
| HEADER_SUBDIR = @HEADER_SUBDIR@ |  | ||||||
|  |  | ||||||
| SHELL = /bin/sh |  | ||||||
|  |  | ||||||
| INSTALL = @INSTALL@ |  | ||||||
| INSTALL_DATA = @INSTALL_DATA@ |  | ||||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |  | ||||||
| mkinstalldirs = $(SHELL) @MKINSTALLDIRS@ |  | ||||||
|  |  | ||||||
| CC := @CC@ |  | ||||||
| ifneq (,$(findstring cygwin,$(target_alias))) |  | ||||||
| # |  | ||||||
| # FIXME: What is the purpose of this hideous kludge? |  | ||||||
| # |  | ||||||
| # Again, we have a dubious use of `target_alias'.  Worse, `CC' |  | ||||||
| # should have been appropriately set by the configure script; to |  | ||||||
| # mess with it, in this fashion, should neither be necessary, |  | ||||||
| # nor accepted. |  | ||||||
| # |  | ||||||
| override CC := ${filter-out -L% -B%,${shell echo $(CC) | sed -e 's%\(-isystem\|-iwithprefixbefore\)  *[^ ]*\( \|$$\)% %g'}} |  | ||||||
| endif |  | ||||||
| # FIXME: Which is it, CC or CC_FOR_TARGET? |  | ||||||
| CC_FOR_TARGET = $(CC) |  | ||||||
| AS_FOR_TARGET = $(AS) |  | ||||||
| CFLAGS = @CFLAGS@ |  | ||||||
| CXXFLAGS = @CXXFLAGS@ |  | ||||||
|  |  | ||||||
| # compiling with Cygwin? |  | ||||||
| NO_CYGWIN := @NO_CYGWIN@ |  | ||||||
| ifdef NO_CYGWIN |  | ||||||
| # |  | ||||||
| # FIXME: Again, this should have been resolved by `configure', |  | ||||||
| # and this kludge should be unnecessary. |  | ||||||
| # |  | ||||||
| override CC := ${NO_CYGWIN} $(firstword ${CC}) |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| # Either crtdll (CRT_ID 1) or msvcrt (CRT_ID 2). |  | ||||||
| RUNTIME = @RUNTIME@ |  | ||||||
| CRT_ID = @CRT_ID@ |  | ||||||
|  |  | ||||||
| # Needed for threading dll. |  | ||||||
| THREAD_DLL = @THREAD_DLL@ |  | ||||||
| THREAD_DLL_VERSION = 10 |  | ||||||
| THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_DLL_VERSION).dll |  | ||||||
|  |  | ||||||
| # Various libraries. |  | ||||||
| LIBM_A=@LIBM_A@ |  | ||||||
|  |  | ||||||
| W32API_INCLUDE = @W32API_INCLUDE@ |  | ||||||
| INCLUDES = -I$(srcdir)/include \ |  | ||||||
|   -I$(srcdir)/../include \ |  | ||||||
|   -nostdinc \ |  | ||||||
|   -iwithprefixbefore include |  | ||||||
| ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(W32API_INCLUDE) |  | ||||||
| ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES) -nostdinc++ $(W32API_INCLUDE) |  | ||||||
|  |  | ||||||
| AS = @AS@ |  | ||||||
| AR = @AR@ |  | ||||||
| LD = @LD@ |  | ||||||
| AR_FLAGS = rcv |  | ||||||
| RANLIB = @RANLIB@ |  | ||||||
| DLLTOOL = @DLLTOOL@ |  | ||||||
| DLLTOOLFLAGS = |  | ||||||
| DLLTOOL_FOR_TARGET = $(DLLTOOL) |  | ||||||
| DLLTOOL_FLAGS = --as $(AS_FOR_TARGET) |  | ||||||
| DLLWRAP = @DLLWRAP@ |  | ||||||
| DLLWRAP_FOR_TARGET = $(DLLWRAP) |  | ||||||
| DLLWRAP_FLAGS = --dlltool $(DLLTOOL) --as $(AS) --driver-name $(CC) |  | ||||||
| OBJCOPY = @OBJCOPY@ |  | ||||||
| NM = @NM@ |  | ||||||
|  |  | ||||||
| TAR = tar |  | ||||||
| TARFLAGS = z |  | ||||||
| TARFILEEXT = .tar.gz |  | ||||||
|  |  | ||||||
| SUBDIRS = mingwex profile |  | ||||||
|  |  | ||||||
| # FIXME: Most of these are either redundant, or should be set |  | ||||||
| # directly in the subdirectories' Makefiles, by `configure'. |  | ||||||
| FLAGS_TO_PASS:=\ |  | ||||||
| 	AS="$(AS)" \ |  | ||||||
| 	CC="$(CC)" \ |  | ||||||
| 	CFLAGS="$(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \ |  | ||||||
| 	CXXFLAGS="$(CXXFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \ |  | ||||||
| 	EXE_LDFLAGS="$(EXE_LDFLAGS)" \ |  | ||||||
| 	AR="$(AR)" \ |  | ||||||
| 	RANLIB="$(RANLIB)" \ |  | ||||||
| 	LD="$(LD)" \ |  | ||||||
| 	DLLTOOL="$(DLLTOOL)" \ |  | ||||||
| 	exec_prefix="$(exec_prefix)" \ |  | ||||||
| 	bindir="$(bindir)" \ |  | ||||||
| 	libdir="$(libdir)" \ |  | ||||||
| 	tooldir="$(tooldir)" \ |  | ||||||
| 	datadir="$(datadir)" \ |  | ||||||
| 	infodir="$(infodir)" \ |  | ||||||
| 	includedir="$(includedir)" \ |  | ||||||
| 	inst_bindir="$(inst_bindir)" \ |  | ||||||
| 	inst_includedir="$(inst_includedir)" \ |  | ||||||
| 	inst_libdir="$(inst_libdir)" \ |  | ||||||
| 	inst_docdir="$(inst_docdir)" \ |  | ||||||
| 	prefix="$(prefix)" \ |  | ||||||
| 	target_alias="$(target_alias)" \ |  | ||||||
| 	TAR="$(TAR)" \ |  | ||||||
| 	TARFLAGS="$(TARFLAGS)" \ |  | ||||||
| 	TARFILEEXT="$(TARFILEEXT)" |  | ||||||
|  |  | ||||||
| CRT0S = crt1.o dllcrt1.o crt2.o dllcrt2.o CRT_noglob.o crtmt.o crtst.o \ |  | ||||||
| 	CRT_fp8.o CRT_fp10.o txtmode.o binmode.o |  | ||||||
| MINGW_OBJS = CRTglob.o CRTfmode.o CRTinit.o  dllmain.o gccmain.o \ |  | ||||||
| 	     main.o crtst.o CRT_fp10.o txtmode.o \ |  | ||||||
| 	     pseudo-reloc.o pseudo-reloc-list.o cpu_features.o \ |  | ||||||
| 	     tlsmcrt.o tlsmthread.o tlssup.o tlsthrd.o |  | ||||||
|  |  | ||||||
| MOLD_OBJS = isascii.o iscsym.o iscsymf.o toascii.o \ |  | ||||||
| 	strcasecmp.o strncasecmp.o wcscmpi.o |  | ||||||
|  |  | ||||||
| LIBS = libcrtdll.a \ |  | ||||||
|        libmsvcrt.a  libmsvcrtd.a \ |  | ||||||
|        libmsvcr70.a libmsvcr70d.a \ |  | ||||||
|        libmsvcr71.a libmsvcr71d.a \ |  | ||||||
|        libmsvcr80.a libmsvcr80d.a \ |  | ||||||
|        libmsvcr90.a libmsvcr90d.a \ |  | ||||||
|        libmsvcr100.a libmsvcr100d.a \ |  | ||||||
|        libmingw32.a \ |  | ||||||
|        libcoldname.a \ |  | ||||||
|        libmoldname.a   libmoldnamed.a \ |  | ||||||
|        libmoldname70.a libmoldname70d.a \ |  | ||||||
|        libmoldname71.a libmoldname71d.a \ |  | ||||||
|        libmoldname80.a libmoldname80d.a \ |  | ||||||
|        libmoldname90.a libmoldname90d.a \ |  | ||||||
|        libmoldname100.a libmoldname100d.a \ |  | ||||||
|        $(LIBM_A) \ |  | ||||||
|        libmingwthrd_old.a \ |  | ||||||
|        libmingwthrd.a |  | ||||||
|  |  | ||||||
| DLLS = $(THREAD_DLL_NAME) |  | ||||||
|  |  | ||||||
| INSTDOCS = CONTRIBUTORS \ |  | ||||||
| 	   DISCLAIMER \ |  | ||||||
| 	   README |  | ||||||
|  |  | ||||||
| SRCDIST_FILES = CRT_noglob.c CRTfmode.c CRTglob.c CRTinit.c ChangeLog \ |  | ||||||
| Makefile.in README TODO config.guess config.sub configure configure.in \ |  | ||||||
| aclocal.m4 crt1.c crtdll.def crtmt.c crtst.c  dllcrt1.c dllmain.c \ |  | ||||||
| gccmain.c init.c install-sh jamfile main.c mkinstalldirs \ |  | ||||||
| moldname.def.in msvcrt.def.in ofmt_stub.s \ |  | ||||||
| mthr.c mthr_init.c tlsmcrt.c tlsmthread.c tlssup.c tlsthrd.c readme.txt \ |  | ||||||
| isascii.c iscsym.c iscsymf.c toascii.c \ |  | ||||||
| strcasecmp.c strncasecmp.c wcscmpi.c \ |  | ||||||
| CRT_fp8.c CRT_fp10.c test_headers.c txtmode.c binmode.c pseudo-reloc.c \ |  | ||||||
| pseudo-reloc-list.c cpu_features.c cpu_features.h \ |  | ||||||
| DISCLAIMER CONTRIBUTORS |  | ||||||
|  |  | ||||||
|  |  | ||||||
| all_dlls_host = @all_dlls_host@ |  | ||||||
| install_dlls_host = @install_dlls_host@ |  | ||||||
|  |  | ||||||
| all: $(CRT0S) $(LIBS) $(all_dlls_host) |  | ||||||
|  |  | ||||||
| all_dlls_host: $(DLLS) |  | ||||||
|  |  | ||||||
| install_dlls_host: |  | ||||||
| 	for i in $(DLLS); do \ |  | ||||||
| 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(inst_bindir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| _libm_dummy.o: |  | ||||||
| 	rm -f _libm_dummy.c |  | ||||||
| 	echo "static int __mingw_libm_dummy;" > _libm_dummy.c |  | ||||||
| 	$(CC) -c $(ALL_CFLAGS) _libm_dummy.c |  | ||||||
| 	rm -f _libm_dummy.c |  | ||||||
|  |  | ||||||
| libm.a: _libm_dummy.o |  | ||||||
| 	$(AR) rc $@ _libm_dummy.o |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| libmingwthrd.a: crtmt.o |  | ||||||
| 	$(AR) $(ARFLAGS) $@ crtmt.o |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| libmingwthrd_old.a: crtmt.o mingwthrd.def |  | ||||||
| 	$(DLLTOOL) $(DLLTOOL_FLAGS) --dllname $(THREAD_DLL_NAME) \ |  | ||||||
| 	  --def mingwthrd.def --output-lib $@ |  | ||||||
| 	$(AR) $(ARFLAGS) $@ crtmt.o |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| DLL_OFILES        = mthr.o mthr_init.o |  | ||||||
| DLL_CC_STUFF      = -B./ -shared $(MNO_CYGWIN) -Wl,--image-base,0x6FBC0000 \ |  | ||||||
| 		    -Wl,--entry,_DllMainCRTStartup@12 \ |  | ||||||
|                     $(DLL_OFILES) mingwthrd.def \ |  | ||||||
| 		    -Lmingwex |  | ||||||
|  |  | ||||||
| $(THREAD_DLL_NAME) mingwthrd.def: $(DLL_OFILES) Makefile $(SUBDIRS) |  | ||||||
| 	$(DLLTOOL) --as $(AS) --output-def mingwthrd.def $(DLL_OFILES) |  | ||||||
| 	$(CC) $(DLL_CC_STUFF) -o $(THREAD_DLL_NAME) |  | ||||||
|  |  | ||||||
| libmingw32.a: $(MINGW_OBJS) |  | ||||||
| 	$(AR) rc $@ $(MINGW_OBJS) |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| msvcrt.def  msvcrtd.def \ |  | ||||||
| msvcr70.def msvcr70d.def \ |  | ||||||
| msvcr71.def msvcr71d.def \ |  | ||||||
| msvcr80.def msvcr80d.def \ |  | ||||||
| msvcr90.def msvcr90d.def \ |  | ||||||
| msvcr100.def msvcr100d.def: msvcrt.def.in |  | ||||||
| 	V=`echo $@ | sed -e 's|[a-z]*\([0-9]*\).*|\1|'`; \ |  | ||||||
| 	test -z "$$V" && V=60; \ |  | ||||||
| 	V="0x0$${V}0"; \ |  | ||||||
| 	$(CC) -DRUNTIME=$(basename $(notdir $@)) \ |  | ||||||
| 		-D__MSVCRT_VERSION__=$$V \ |  | ||||||
| 		-D__$(basename $(notdir $@))__=1 \ |  | ||||||
| 		-D__MSVCRT__ -C -E -P \ |  | ||||||
| 		-xc-header $? > $@ |  | ||||||
|  |  | ||||||
| moldname-crtdll.def: moldname.def.in |  | ||||||
| 	$(CC) -DRUNTIME=crtdll \ |  | ||||||
| 		-D__FILENAME__=moldname-crtdll.def \ |  | ||||||
| 		-D__CRTDLL__  -C -E -P \ |  | ||||||
| 		-xc-header $? > $@ |  | ||||||
|  |  | ||||||
| moldname-msvcrt.def: moldname.def.in |  | ||||||
| 	$(CC) -DRUNTIME=msvcrt \ |  | ||||||
| 		-D__FILENAME__=moldname-msvcrt.def \ |  | ||||||
| 		-D__MSVCRT__  -C -E -P \ |  | ||||||
| 		-xc-header $? > $@ |  | ||||||
|  |  | ||||||
| libcoldname.a: moldname-crtdll.def $(MOLD_OBJS) |  | ||||||
| 	$(DLLTOOL) --as $(AS) -k -U	\ |  | ||||||
| 		--dllname crtdll.dll	\ |  | ||||||
| 		--def moldname-crtdll.def	\ |  | ||||||
| 		--output-lib $@ |  | ||||||
| 	$(AR) rc $@ $(MOLD_OBJS) |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| libmoldname.a libmoldnamed.a: moldname-msvcrt.def $(MOLD_OBJS) |  | ||||||
| 	$(DLLTOOL) --as $(AS) -k -U	\ |  | ||||||
| 		--dllname msvcrt$(@:libmoldname%a=%)dll \ |  | ||||||
| 		--def moldname-msvcrt.def	\ |  | ||||||
| 		--output-lib $@ |  | ||||||
| 	$(AR) rc $@ $(MOLD_OBJS) |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| libmoldname70.a libmoldname70d.a \ |  | ||||||
| libmoldname71.a libmoldname71d.a \ |  | ||||||
| libmoldname80.a libmoldname80d.a \ |  | ||||||
| libmoldname90.a libmoldname90d.a \ |  | ||||||
| libmoldname100.a libmoldname100d.a: moldname-msvcrt.def $(MOLD_OBJS) |  | ||||||
| 	$(DLLTOOL) --as $(AS) -k -U	\ |  | ||||||
| 		--dllname msvcr$(@:libmoldname%a=%)dll  \ |  | ||||||
| 		--def moldname-msvcrt.def	\ |  | ||||||
| 		--output-lib $@ |  | ||||||
| 	$(AR) rc $@ $(MOLD_OBJS) |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| # These special rules are necessary... |  | ||||||
| # |  | ||||||
| crt1.o dllcrt1.o: |  | ||||||
| 	$(CC) -c -D__CRTDLL__ -U__MSVCRT__ $(ALL_CFLAGS) $< -o $@ |  | ||||||
|  |  | ||||||
| crt2.o dllcrt2.o: |  | ||||||
| 	$(CC) -c -D__MSVCRT__ -U__CRTDLL__ $(ALL_CFLAGS) $< -o $@ |  | ||||||
|  |  | ||||||
| check: check-headers |  | ||||||
|  |  | ||||||
| TEST_H_OPTIONS = $(ALL_CFLAGS) -Wall -W -Wsystem-headers -c \ |  | ||||||
| 	$(srcdir)/test_headers.c -o test_headers.o |  | ||||||
|  |  | ||||||
| .PHONY: check-headers |  | ||||||
| check-headers: force |  | ||||||
| 	@echo "Testing runtime headers..." |  | ||||||
| 	@for lang in c c++ objective-c ; do \ |  | ||||||
| 		echo "$$lang ..."; \ |  | ||||||
| 		$(CC) -x$$lang  $(TEST_H_OPTIONS) ; \ |  | ||||||
| 		echo "$$lang -ansi"; \ |  | ||||||
| 		$(CC) -x$$lang -ansi $(TEST_H_OPTIONS) ; \ |  | ||||||
| 	done |  | ||||||
| 	@echo; echo "Testing runtime 8.0 headers..." |  | ||||||
| 	@for lang in c c++ objective-c ; do \ |  | ||||||
| 		echo "$$lang ..."; \ |  | ||||||
| 		$(CC) -x$$lang -Wall -D__MSVCRT_VERSION__=0x0800 $(TEST_H_OPTIONS) ; \ |  | ||||||
| 		echo "$$lang -ansi"; \ |  | ||||||
| 		$(CC) -x$$lang -Wall -D__MSVCRT_VERSION__=0x0800 -ansi $(TEST_H_OPTIONS) ; \ |  | ||||||
| 	done |  | ||||||
| 	@echo; echo "Testing runtime 8.0(time32) headers..." |  | ||||||
| 	@for lang in c c++ objective-c ; do \ |  | ||||||
| 		echo "$$lang ..."; \ |  | ||||||
| 		$(CC) -x$$lang -Wall -D__MSVCRT_VERSION__=0x0800 -D_USE_32BIT_TIME_T $(TEST_H_OPTIONS) ; \ |  | ||||||
| 		echo "$$lang -ansi"; \ |  | ||||||
| 		$(CC) -x$$lang -Wall -D__MSVCRT_VERSION__=0x0800 -D_USE_32BIT_TIME_T -ansi $(TEST_H_OPTIONS) ; \ |  | ||||||
| 	done |  | ||||||
| 	@echo; echo "Testing runtime 8.0(time32) headers..." |  | ||||||
| # specify -std=xx only for C |  | ||||||
| 	@for std in gnu89 gnu99 c89 c99 ; do \ |  | ||||||
| 		echo "std = $$std"; \ |  | ||||||
| 		$(CC) -std=$$std  $(TEST_H_OPTIONS) ; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| 	@rm -f test_headers.o |  | ||||||
|  |  | ||||||
| clean: |  | ||||||
| 	-rm -f *.o *.a *~ core a.out mingwthrd.def mingwthrd.base mingwthrd.exp |  | ||||||
| 	-rm -f $(THREAD_DLL_NAME) mingwthrd_dummy.exe |  | ||||||
| 	-rm -f msvcr*.def moldname-*.def |  | ||||||
| 	@$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) |  | ||||||
|  |  | ||||||
| distclean: clean |  | ||||||
| 	@$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) |  | ||||||
| 	-rm -f config.cache config.status config.log |  | ||||||
| 	-rm -f Makefile |  | ||||||
|  |  | ||||||
| ifdef SNAPDATE |  | ||||||
|       distdir=$(PACKAGE)-$(VERSION)-$(SNAPDATE) |  | ||||||
| else |  | ||||||
|    ifneq (,$(findstring cygwin, $(target_alias))) |  | ||||||
|       distdir=$(PACKAGE)-$(VERSION)-$(CYGRELEASE) |  | ||||||
|    else |  | ||||||
|       distdir=$(PACKAGE)-$(VERSION)-$(host_os) |  | ||||||
|    endif |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| ifneq (,$(findstring cygwin, $(target_alias))) |  | ||||||
| # |  | ||||||
| # FIXME: Dubious use of `target_alias', yet again. |  | ||||||
| # |  | ||||||
| # Once more, the default settings for these macros could be |  | ||||||
| # more productively determined by `configure'. |  | ||||||
| # |  | ||||||
|   TARFLAGS = j |  | ||||||
|   TARFILEEXT = .tar.bz2 |  | ||||||
|   dist_prefix = $(conf_prefix) |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| dist: srcdist bindist |  | ||||||
|  |  | ||||||
| srcdist: |  | ||||||
| 	rm -rf $(distdir) |  | ||||||
| 	mkdir $(distdir) |  | ||||||
| 	chmod 755 $(distdir) |  | ||||||
| 	for i in $(SRCDIST_FILES); do \ |  | ||||||
| 		cp -p $(srcdir)/$$i $(distdir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	for i in $(SUBDIRS); do \ |  | ||||||
| 		(cd $$i; $(MAKE) distdir=../$(distdir) dist); \ |  | ||||||
| 	done |  | ||||||
| #FIXME this needs to be done with SUBDIRS and Makefiles. |  | ||||||
| # |  | ||||||
| #  Maybe, but this is simpler, and adequate for now! |  | ||||||
| #  However, as more manpages are added, spanning multiple sections, |  | ||||||
| #  we'll probably need a separate Makefile to organise them. |  | ||||||
| # |  | ||||||
| 	mkdir $(distdir)/include |  | ||||||
| 	mkdir $(distdir)/include/sys |  | ||||||
| 	cp $(srcdir)/include/*.h $(distdir)/include/ |  | ||||||
| 	cp $(srcdir)/include/sys/*.h $(distdir)/include/sys/ |  | ||||||
| 	mkdir $(distdir)/man |  | ||||||
| 	cp $(srcdir)/man/*.man $(distdir)/man/ |  | ||||||
| # |  | ||||||
| #end FIXME |  | ||||||
| 	rm -f $(distdir)-src.tar.gz |  | ||||||
| 	$(TAR) $(TARFLAGS)cf $(distdir)-src$(TARFILEEXT) $(distdir) |  | ||||||
|  |  | ||||||
| # Binary package structure is determined according to the |  | ||||||
| # preferred package name assigned at configure time... |  | ||||||
| # |  | ||||||
| bindist: bindist-$(PACKAGE) |  | ||||||
|  |  | ||||||
| # The directory structure is common to both package styles... |  | ||||||
| # |  | ||||||
| bindist-common: |  | ||||||
| 	rm -rf $(distdir) |  | ||||||
| 	mkdir $(distdir) |  | ||||||
| 	chmod 755 $(distdir) |  | ||||||
| 	$(MAKE) install prefix=$(shell pwd)/$(distdir)$(dist_prefix) |  | ||||||
| 	rm -f $(distdir).tar.gz |  | ||||||
|  |  | ||||||
| # Current MinGW distributions prefer separate `dev' and `dll' bundles, |  | ||||||
| # and use the abbreviated `mingwrt' form for the package name... |  | ||||||
| # |  | ||||||
| DEVDIST_FILES = * --exclude=bin |  | ||||||
| DLLDIST_FILES = bin/*.dll doc/* |  | ||||||
| # |  | ||||||
| bindist-mingwrt: bindist-common |  | ||||||
| 	cd $(distdir); \ |  | ||||||
| 	$(TAR) $(TARFLAGS)cf ../$(distdir)-dev$(TARFILEEXT) $(DEVDIST_FILES); \ |  | ||||||
| 	$(TAR) $(TARFLAGS)cf ../$(distdir)-dll$(TARFILEEXT) $(DLLDIST_FILES) |  | ||||||
| 	rm -rf $(distdir) |  | ||||||
|  |  | ||||||
| # However, Cygwin maintainers continue to prefer a composite package, |  | ||||||
| # retaining the older `mingw-runtime' naming convention... |  | ||||||
| # |  | ||||||
| BINDIST_FILES = * |  | ||||||
| # |  | ||||||
| bindist-mingw-runtime: bindist-common |  | ||||||
| 	cd $(distdir); \ |  | ||||||
| 	$(TAR) $(TARFLAGS)cf ../$(distdir)$(TARFILEEXT) $(BINDIST_FILES) |  | ||||||
| 	rm -rf $(distdir) |  | ||||||
|  |  | ||||||
| snapshot: |  | ||||||
| 	make dist SNAPDATE=$(shell date '+%Y%m%d') |  | ||||||
|  |  | ||||||
| info: |  | ||||||
|  |  | ||||||
| info-html: |  | ||||||
|  |  | ||||||
| install-info: info |  | ||||||
|  |  | ||||||
| .PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility |  | ||||||
|  |  | ||||||
| $(need-DESTDIR-compatibility): |  | ||||||
| 	@test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ |  | ||||||
| 	  $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ |  | ||||||
| 	esac |  | ||||||
|  |  | ||||||
| fail-DESTDIR-compatibility: |  | ||||||
| 	$(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ |  | ||||||
| 	try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) |  | ||||||
|  |  | ||||||
| install-dirs: $(need-DESTDIR-compatibility) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(inst_bindir) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(inst_includedir) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(inst_libdir) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(inst_docdir) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection) |  | ||||||
|  |  | ||||||
| install: all install-dirs $(install_dlls_host) |  | ||||||
| 	for i in $(LIBS); do \ |  | ||||||
| 		$(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	for i in $(CRT0S); do \ |  | ||||||
| 		$(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	for i in $(INSTDOCS); do \ |  | ||||||
| 		$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(inst_docdir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	for sub in . sys ; do \ |  | ||||||
| 		dstdir=$(DESTDIR)$(inst_includedir)/$$sub ; \ |  | ||||||
| 		$(mkinstalldirs) $$dstdir ; \ |  | ||||||
| 		for i in $(srcdir)/include/$$sub/*.h ; do \ |  | ||||||
| 		  $(INSTALL_DATA) $$i $$dstdir/`basename $$i` ; \ |  | ||||||
| 		done ; \ |  | ||||||
| 	done |  | ||||||
| # |  | ||||||
| # This provisional hack installs the only manpage we have at present... |  | ||||||
| # It simply CANNOT suffice, when we have more manpages to ship. |  | ||||||
| # |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection) |  | ||||||
| 	$(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\ |  | ||||||
| 	  echo dirname.man|sed '$(manpage_transform);s,man$$,$(mansection),'` |  | ||||||
| 	$(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\ |  | ||||||
| 	  echo basename.man|sed '$(manpage_transform);s,man$$,$(mansection),'` |  | ||||||
| # |  | ||||||
| # End provisional hack. |  | ||||||
| # |  | ||||||
| 	@$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) |  | ||||||
|  |  | ||||||
| subdirs: $(SUBDIRS) |  | ||||||
| $(SUBDIRS): force |  | ||||||
| 	@test -n "$(DO)" && g="$(DO)" || g=all; echo "Making \`$$g' in \`$@'" |  | ||||||
| 	@cd $@; $(MAKE) $(FLAGS_TO_PASS) $(DO) |  | ||||||
|  |  | ||||||
| force: |  | ||||||
|  |  | ||||||
| # |  | ||||||
| # Dependencies |  | ||||||
| # |  | ||||||
| libcrtdll.a: crtdll.def |  | ||||||
| libmsvcrt.a: msvcrt.def |  | ||||||
| libmsvcrtd.a: msvcrtd.def |  | ||||||
| CRT_noglob.o: CRT_noglob.c |  | ||||||
| CRTfmode.o: CRTfmode.c |  | ||||||
| CRTglob.o: CRTglob.c |  | ||||||
| CRTinit.o: CRTinit.c |  | ||||||
| crt1.o: crt1.c init.c |  | ||||||
| crt2.o: crt1.c init.c |  | ||||||
| crtmt.o: crtmt.c |  | ||||||
| crtst.o: crtst.c |  | ||||||
| ctype_old.o: ctype_old.c |  | ||||||
| dllcrt1.o: dllcrt1.c |  | ||||||
| dllcrt2.o: dllcrt1.c |  | ||||||
| dllmain.o: dllmain.c |  | ||||||
| main.o: main.c |  | ||||||
| oldnames.o: oldnames.c |  | ||||||
| string_old.o: string_old.c |  | ||||||
| CRT_fp8.o: CRT_fp8.c |  | ||||||
| CRT_fp10.o: CRT_fp10.c |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Makefile: Makefile.in config.status configure |  | ||||||
| 	$(SHELL) config.status |  | ||||||
|  |  | ||||||
| config.status: configure |  | ||||||
| 	$(SHELL) config.status --recheck |  | ||||||
|  |  | ||||||
| .SUFFIXES: .y $(SUFFIXES) .cc .def .a |  | ||||||
|  |  | ||||||
| sym_prefix = __msvcrt |  | ||||||
|  |  | ||||||
| NM_LOOKUP = $(NM) $@ | sed -n \ |  | ||||||
|   -e '/:$$/h;/^[0-7][0-7]*  *T  */{s///;H;g;s/\n//p' \ |  | ||||||
|   -e '}' | sed -n 's/:_'"$$key"'$$//p' |  | ||||||
|  |  | ||||||
| MINGW_REPL_FUNCS = printf fprintf sprintf vprintf vfprintf vsprintf |  | ||||||
|  |  | ||||||
| lib%.a: %.def |  | ||||||
| 	$(DLLTOOL) --as=$(AS) -k --dllname $*.dll --output-lib $@ --def $< |  | ||||||
| 	for key in $(MINGW_REPL_FUNCS); do \ |  | ||||||
| 	  src=`$(NM_LOOKUP)`; \ |  | ||||||
| 	  if test -n "$$src"; then \ |  | ||||||
| 	    dst=`echo "$$src" | sed 's/0/4/'`; repl="$$repl $$dst"; \ |  | ||||||
| 	    tmpfiles="$$tmpfiles $$src $$dst"; \ |  | ||||||
| 	    $(AR) x $@ $$src; \ |  | ||||||
| 	    $(OBJCOPY) --redefine-sym _$$key=_$(sym_prefix)_$$key \ |  | ||||||
| 	      --redefine-sym __imp__$$key=__imp__$(sym_prefix)_$$key \ |  | ||||||
| 	      $$src $$dst; \ |  | ||||||
| 	  fi; done; \ |  | ||||||
| 	test `key=_get_output_format; $(NM_LOOKUP)` || \ |  | ||||||
| 	  repl="$$repl ofmt_stub.o"; \ |  | ||||||
| 	test -n "$$repl" && $(AR) rcs $@ $$repl; \ |  | ||||||
| 	$(RM) $$tmpfiles |  | ||||||
|  |  | ||||||
| libmsvcrt.a  libmsvcrtd.a:  ofmt_stub.o |  | ||||||
| libmsvcr70.a libmsvcr70d.a: ofmt_stub.o |  | ||||||
| libmsvcr71.a libmsvcr71d.a: ofmt_stub.o |  | ||||||
| libcrtdll.a  libcrtdlld.a:  ofmt_stub.o |  | ||||||
|  |  | ||||||
| .c.o: |  | ||||||
| 	$(CC) -c $(ALL_CFLAGS) $< -o $@ |  | ||||||
|  |  | ||||||
| # $RCSfile$: end of file |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| 	Free Microsoft C Runtime and import library definitions |  | ||||||
|  |  | ||||||
| 	Maintained by MinGW Developers |  | ||||||
| 	Send bug reports and questions to MinGW-users@lists.sourceforge.net |  | ||||||
| 	URL: http://www.mingw.org |  | ||||||
|  |  | ||||||
| A historical readme.txt exists and is distributed for your edification.  The  |  | ||||||
| references within may or may not be correct.  Please do not rely on them.  See |  | ||||||
| http://www.mingw.org for a list of valid references. |  | ||||||
|  |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| Finish the README. |  | ||||||
| Timezone variables for msvcrt >= 8.0(now as functions): |  | ||||||
|  _get_daylight, _get_dstbias, _get_timezone, _get_tzname. |  | ||||||
| Functions with _s ("secure") suffix and may be deprecation |  | ||||||
| warnings for "non-secure" functions. |  | ||||||
							
								
								
									
										121
									
								
								winsup/mingw/aclocal.m4
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								winsup/mingw/aclocal.m4
									
									
									
									
										vendored
									
									
								
							| @@ -1,121 +0,0 @@ | |||||||
| # aclocal.m4 for MinGW Runtime package.  -*- Autoconf -*- |  | ||||||
| # |  | ||||||
| # This provides configure definitions used by all the winsup |  | ||||||
| # configure.in files. |  | ||||||
|  |  | ||||||
| # MINGW_AC_CONFIG_SRCDIR( VERSION_TAG, UNIQUE_FILE ) |  | ||||||
| # -------------------------------------------------- |  | ||||||
| # Wrapper for AC_CONFIG_SRCDIR; in addition to checking for a |  | ||||||
| # unique file reference within the source tree, it resolves the |  | ||||||
| # definition for PACKAGE_VERSION, based on a tagged definition |  | ||||||
| # within that file. |  | ||||||
| # |  | ||||||
| AC_DEFUN([MINGW_AC_CONFIG_SRCDIR], |  | ||||||
| [AC_CONFIG_SRCDIR([$2]) |  | ||||||
|  AC_MSG_CHECKING([package version]) |  | ||||||
|  PACKAGE_VERSION=`awk '$[2] == "'"$1"'" { print $[3] }' ${srcdir}/$2` |  | ||||||
|  AC_MSG_RESULT([$PACKAGE_VERSION])dnl |  | ||||||
| ]) #MINGW_AC_CONFIG_SRCDIR |  | ||||||
|  |  | ||||||
| # The following is copied from `no-executables.m4', in the top |  | ||||||
| # `src/config' directory. |  | ||||||
| # |  | ||||||
| # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |  | ||||||
| # 2005  Free Software Foundation, Inc. |  | ||||||
| # This file is free software; the Free Software Foundation |  | ||||||
| # gives unlimited permission to copy and/or distribute it, |  | ||||||
| # with or without modifications, as long as this notice is preserved. |  | ||||||
|  |  | ||||||
| # This program is distributed in the hope that it will be useful, |  | ||||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without |  | ||||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |  | ||||||
| # PARTICULAR PURPOSE. |  | ||||||
|  |  | ||||||
| # GCC_NO_EXECUTABLES |  | ||||||
| # ------------------ |  | ||||||
| # FIXME: The GCC team has specific needs which the current Autoconf |  | ||||||
| # framework cannot solve elegantly.  This macro implements a dirty |  | ||||||
| # hack until Autoconf is able to provide the services its users |  | ||||||
| # need. |  | ||||||
| # |  | ||||||
| # Several of the support libraries that are often built with GCC can't |  | ||||||
| # assume the tool-chain is already capable of linking a program: the |  | ||||||
| # compiler often expects to be able to link with some of such |  | ||||||
| # libraries. |  | ||||||
| # |  | ||||||
| # In several of these libraries, workarounds have been introduced to |  | ||||||
| # avoid the AC_PROG_CC_WORKS test, that would just abort their |  | ||||||
| # configuration.  The introduction of AC_EXEEXT, enabled either by |  | ||||||
| # libtool or by CVS autoconf, have just made matters worse. |  | ||||||
| # |  | ||||||
| # Unlike the previous AC_NO_EXECUTABLES, this test does not |  | ||||||
| # disable link tests at autoconf time, but at configure time. |  | ||||||
| # This allows AC_NO_EXECUTABLES to be invoked conditionally. |  | ||||||
| AC_DEFUN_ONCE([GCC_NO_EXECUTABLES], |  | ||||||
| [m4_divert_push([KILL]) |  | ||||||
|  |  | ||||||
| AC_BEFORE([$0], [_AC_COMPILER_EXEEXT]) |  | ||||||
| AC_BEFORE([$0], [AC_LINK_IFELSE]) |  | ||||||
|  |  | ||||||
| m4_define([_AC_COMPILER_EXEEXT], |  | ||||||
| AC_LANG_CONFTEST([AC_LANG_PROGRAM()]) |  | ||||||
| # FIXME: Cleanup? |  | ||||||
| AS_IF([AC_TRY_EVAL(ac_link)], [gcc_no_link=no], [gcc_no_link=yes]) |  | ||||||
| if test x$gcc_no_link = xyes; then |  | ||||||
|   # Setting cross_compile will disable run tests; it will |  | ||||||
|   # also disable AC_CHECK_FILE but that's generally |  | ||||||
|   # correct if we can't link. |  | ||||||
|   cross_compiling=yes |  | ||||||
|   EXEEXT= |  | ||||||
| else |  | ||||||
|   m4_defn([_AC_COMPILER_EXEEXT])dnl |  | ||||||
| fi |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| m4_define([AC_LINK_IFELSE], |  | ||||||
| if test x$gcc_no_link = xyes; then |  | ||||||
|   AC_MSG_ERROR([Link tests are not allowed after [[$0]].]) |  | ||||||
| fi |  | ||||||
| m4_defn([AC_LINK_IFELSE])) |  | ||||||
|  |  | ||||||
| dnl This is a shame.  We have to provide a default for some link tests, |  | ||||||
| dnl similar to the default for run tests. |  | ||||||
| m4_define([AC_FUNC_MMAP], |  | ||||||
| if test x$gcc_no_link = xyes; then |  | ||||||
|   if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then |  | ||||||
|     ac_cv_func_mmap_fixed_mapped=no |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
| if test "x${ac_cv_func_mmap_fixed_mapped}" != xno; then |  | ||||||
|   m4_defn([AC_FUNC_MMAP]) |  | ||||||
| fi) |  | ||||||
|  |  | ||||||
| m4_divert_pop()dnl |  | ||||||
| ])# GCC_NO_EXECUTABLES |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # MINGW_AC_MANPAGE_TRANSFORM |  | ||||||
| # -------------------------- |  | ||||||
| # Provide support for specifying a manpage name transform. |  | ||||||
| # This allows e.g. Cygwin to add a `mingw-' prefix to MinGW specific |  | ||||||
| # manpages, when installing as a Cygwin subsystem. |  | ||||||
| # |  | ||||||
| # Activated by `--enable-mingw-manpage-transform[=SED-SCRIPT]', the |  | ||||||
| # default is disabled, (i.e. no transform).  If enabled, without any |  | ||||||
| # SED-SCRIPT specification, the default `mingw-' prefix is added. |  | ||||||
| # |  | ||||||
| AC_DEFUN([MINGW_AC_MANPAGE_TRANSFORM], |  | ||||||
| [AC_ARG_ENABLE([mingw-manpage-transform], |  | ||||||
| [AS_HELP_STRING([--enable-mingw-manpage-transform@<:@=SED-SCRIPT@:>@], |  | ||||||
|  [apply SED-SCRIPT @<:@s/^/mingw-/@:>@ to installed manpage names])] |  | ||||||
| [AS_HELP_STRING([--disable-mingw-manpage-transform], |  | ||||||
|  [@<:@DEFAULT@:>@ don't transform installed manpage names])], |  | ||||||
|  [case ${enableval} in |  | ||||||
|     yes) mingw_manpage_transform='s,^,mingw-,' ;; |  | ||||||
|      no) mingw_manpage_transform='s,x,x,' ;; |  | ||||||
|       *) mingw_manpage_transform=${enableval} ;; |  | ||||||
|   esac]) |  | ||||||
|  AC_SUBST([mingw_manpage_transform],[${mingw_manpage_transform-'s,x,x,'}])dnl |  | ||||||
| ])# MINGW_AC_MANPAGE_TRANSFORM |  | ||||||
|  |  | ||||||
| # $RCSfile$: end of file: vim: ft=config |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| #include <fcntl.h> |  | ||||||
|  |  | ||||||
| /* Set default file mode to binary */ |  | ||||||
|  |  | ||||||
| int _fmode = _O_BINARY;  |  | ||||||
							
								
								
									
										1407
									
								
								winsup/mingw/config.guess
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1407
									
								
								winsup/mingw/config.guess
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1504
									
								
								winsup/mingw/config.sub
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1504
									
								
								winsup/mingw/config.sub
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5028
									
								
								winsup/mingw/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5028
									
								
								winsup/mingw/configure
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,89 +0,0 @@ | |||||||
| dnl Process this file with autoconf to produce a configure script. |  | ||||||
|  |  | ||||||
| dnl This file is part of winsup/mingw |  | ||||||
| dnl |  | ||||||
| dnl This program is free software; you can redistribute it and/or modify |  | ||||||
| dnl it under the terms of the GNU General Public License as published by |  | ||||||
| dnl the Free Software Foundation; either version 2 of the License, or |  | ||||||
| dnl (at your option) any later version. |  | ||||||
| dnl |  | ||||||
| dnl This program is distributed in the hope that it will be useful, |  | ||||||
| dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
| dnl GNU General Public License for more details. |  | ||||||
| dnl |  | ||||||
| dnl You should have received a copy of the GNU General Public License |  | ||||||
| dnl along with this program; if not, write to the Free Software |  | ||||||
| dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |  | ||||||
|  |  | ||||||
| AC_PREREQ([2.59]) |  | ||||||
| AC_INIT([MinGW Runtime], [v3.x], [http://mingw.org/reporting_bugs], [mingwrt]) |  | ||||||
| MINGW_AC_CONFIG_SRCDIR([__MINGW_VERSION], [include/_mingw.h]) |  | ||||||
|  |  | ||||||
| AC_CANONICAL_SYSTEM |  | ||||||
| GCC_NO_EXECUTABLES |  | ||||||
| AC_PROG_CC |  | ||||||
|  |  | ||||||
| case "$with_cross_host" in |  | ||||||
|   ""|*cygwin*) all_dlls_host='all_dlls_host' |  | ||||||
| 	       install_dlls_host='install_dlls_host';; |  | ||||||
| esac |  | ||||||
| AC_SUBST([with_cross_host]) |  | ||||||
| AC_SUBST([all_dlls_host]) |  | ||||||
| AC_SUBST([install_dlls_host]) |  | ||||||
|  |  | ||||||
| AC_CHECK_TOOL([AR],      [ar],      [ar]) |  | ||||||
| AC_CHECK_TOOL([AS],      [as],      [as]) |  | ||||||
| AC_CHECK_TOOL([RANLIB],  [ranlib],  [ranlib]) |  | ||||||
| AC_CHECK_TOOL([LD],      [ld],      [ld]) |  | ||||||
| AC_CHECK_TOOL([NM],      [nm],      [nm]) |  | ||||||
| AC_CHECK_TOOL([OBJCOPY], [objcopy], [objcopy]) |  | ||||||
| AC_CHECK_TOOL([DLLTOOL], [dlltool], [dlltool]) |  | ||||||
| AC_CHECK_TOOL([DLLWRAP], [dlltool], [dlltool]) |  | ||||||
| AC_CHECK_TOOL([WINDRES], [windres], [windres]) |  | ||||||
|  |  | ||||||
| AC_SUBST([NO_CYGWIN]) |  | ||||||
| AC_SUBST([HEADER_SUBDIR]) |  | ||||||
| AC_SUBST([W32API_INCLUDE], ['-I ${top_srcdir}/../w32api/include']) |  | ||||||
|  |  | ||||||
| # The following are used by the GCC profiling hooks... |  | ||||||
| # |  | ||||||
| AC_SUBST([LIBGMON_A], [libgmon.a]) |  | ||||||
| AC_SUBST([CRT0S], ["gcrt1.o gcrt2.o"]) |  | ||||||
|  |  | ||||||
| # FIXME: Why is this case determined on `target_os'? |  | ||||||
| # There is no code generator to be built here, so `target_os' |  | ||||||
| # should be irrelevant.  Should it not rather be `host_os'? |  | ||||||
| # |  | ||||||
| case "$target_os" in |  | ||||||
| *cygwin*) |  | ||||||
|   PACKAGE_TARNAME="mingw-runtime" |  | ||||||
|   NO_CYGWIN="`cd ${srcdir}/../utils; pwd`/mingw" |  | ||||||
|   # Install mingw headers in mingw subdirectory. |  | ||||||
|   HEADER_SUBDIR="mingw" |  | ||||||
|   CRT0S="gcrt0.o" |  | ||||||
|   ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| # THREAD_DLL used to be set within the above case and was mingwc for CRTDLL. |  | ||||||
| # I can find no reason to do this. |  | ||||||
| # |  | ||||||
| # FIXME: In the future I would like to change the dll name to mingwthrd to |  | ||||||
| # to match the libmingwthrd.a name. |  | ||||||
| AC_SUBST([THREAD_DLL], [mingwm]) |  | ||||||
|  |  | ||||||
| # LIBM_A also used be set in the preceding case statement; it had the |  | ||||||
| # exact same assignment, (libm.a), in every case, so we may just as well |  | ||||||
| # assign it unconditionally, (making the default case redundant). |  | ||||||
| # |  | ||||||
| AC_SUBST([LIBM_A], [libm.a]) |  | ||||||
|  |  | ||||||
| AC_SUBST([MKINSTALLDIRS], [$ac_aux_dir/mkinstalldirs]) |  | ||||||
|  |  | ||||||
| AC_PROG_INSTALL |  | ||||||
| MINGW_AC_MANPAGE_TRANSFORM |  | ||||||
|  |  | ||||||
| AC_CONFIG_FILES([Makefile mingwex/Makefile profile/Makefile]) |  | ||||||
| AC_OUTPUT |  | ||||||
|  |  | ||||||
| # $RCSfile$: end of file |  | ||||||
| @@ -1,105 +0,0 @@ | |||||||
| #include <stdbool.h> |  | ||||||
| #include "cpu_features.h" |  | ||||||
|  |  | ||||||
| /* level 1 edx bits */ |  | ||||||
| #define EDX_CX8 (1 << 8) /* CMPXCHG8B */ |  | ||||||
| #define EDX_CMOV (1 << 15) |  | ||||||
| #define EDX_MMX (1 << 23) |  | ||||||
| #define EDX_FXSR (1 << 24) /* FXSAVE and FXRSTOR */ |  | ||||||
| #define EDX_SSE (1 << 25) |  | ||||||
| #define EDX_SSE2 (1 << 26)  |  | ||||||
|  |  | ||||||
| /*  level 1 ecx bits */ |  | ||||||
| #define ECX_SSE3 (1 << 0) |  | ||||||
| #define ECX_CX16 (1 << 13) /* CMPXCHG16B */ |  | ||||||
|  |  | ||||||
| /* extended level 0x80000001 edx bits */ |  | ||||||
| #define EDX_3DNOW (1 << 31) |  | ||||||
| #define EDX_3DNOWP (1 << 30) |  | ||||||
| #define EDX_LM (1 << 29) /*LONG MODE */ |  | ||||||
|  |  | ||||||
| #define __cpuid(level,a,b,c,d)			 		\ |  | ||||||
|   asm volatile ("cpuid;"				\ |  | ||||||
| 			: "=a" (a), "=b" (b), "=c" (c), "=d" (d)\ |  | ||||||
| 			: "0" (level)) |  | ||||||
|  |  | ||||||
| /* Combine the different cpuid flags into a single bitmap.  */  |  | ||||||
|  |  | ||||||
| unsigned int __cpu_features = 0; |  | ||||||
|  |  | ||||||
| void  __cpu_features_init (void) |  | ||||||
| { |  | ||||||
|   unsigned int eax, ebx, ecx, edx; |  | ||||||
|   /* Try to change the value of CPUID bit (bit 21) in EFLAGS. |  | ||||||
|      If the bit can be toggled, CPUID is supported.  */ |  | ||||||
|   asm volatile ("pushfl; pushfl; popl %0;" |  | ||||||
| 		"movl %0,%1; xorl %2,%0;" |  | ||||||
| 		"pushl %0; popfl; pushfl; popl %0; popfl" |  | ||||||
| 		: "=&r" (eax), "=&r" (ebx) |  | ||||||
| 		: "i" (0x00200000)); |  | ||||||
|  |  | ||||||
|   if (((eax ^ ebx) & 0x00200000) == 0) |  | ||||||
|     return; |  | ||||||
|  |  | ||||||
|   __cpuid (0, eax, ebx, ecx, edx); |  | ||||||
|   if (eax == 0) |  | ||||||
|     return; |  | ||||||
|  |  | ||||||
|   __cpuid (1, eax, ebx, ecx, edx); |  | ||||||
|  |  | ||||||
|   if (edx & EDX_CX8) |  | ||||||
|      __cpu_features |= _CRT_CMPXCHG8B; |  | ||||||
|   if (edx & EDX_CMOV) |  | ||||||
|      __cpu_features |= _CRT_CMOV; |  | ||||||
|  |  | ||||||
|   if (edx & EDX_MMX) |  | ||||||
|      __cpu_features |= _CRT_MMX; |  | ||||||
|   if (edx & EDX_FXSR) |  | ||||||
|      __cpu_features |= _CRT_FXSR;  |  | ||||||
|   if (edx & EDX_SSE) |  | ||||||
|      __cpu_features |= _CRT_SSE; |  | ||||||
|   if (edx & EDX_SSE2) |  | ||||||
|      __cpu_features |= _CRT_SSE2; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   if (ecx & ECX_SSE3) |  | ||||||
|      __cpu_features |= _CRT_SSE3; |  | ||||||
|   if (ecx & ECX_CX16) |  | ||||||
|      __cpu_features |= _CRT_CMPXCHG16B; |  | ||||||
|  |  | ||||||
|   __cpuid (0x80000000, eax, ebx, ecx, edx); |  | ||||||
|   if (eax < 0x80000001) |  | ||||||
|     return; |  | ||||||
|   __cpuid (0x80000001, eax, ebx, ecx, edx); |  | ||||||
|   if (edx & EDX_3DNOW) |  | ||||||
|     __cpu_features |= _CRT_3DNOW;  |  | ||||||
|   if (edx & EDX_3DNOWP) |  | ||||||
|     __cpu_features |= _CRT_3DNOWP;  |  | ||||||
|  |  | ||||||
|   return; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #ifdef TEST |  | ||||||
|  |  | ||||||
| #include <stdio.h> |  | ||||||
| #define report(feature) \ |  | ||||||
|   if ((feature) & __cpu_features) printf( #feature " found\n") |  | ||||||
|  |  | ||||||
| int main() |  | ||||||
| { |  | ||||||
|   __cpu_features_init(); |  | ||||||
|  |  | ||||||
|   report(_CRT_CMPXCHG8B); |  | ||||||
|   report(_CRT_CMOV); |  | ||||||
|   report(_CRT_MMX); |  | ||||||
|   report(_CRT_FXSR); |  | ||||||
|   report(_CRT_SSE); |  | ||||||
|   report(_CRT_SSE2); |  | ||||||
|   report(_CRT_SSE3); |  | ||||||
|   report(_CRT_CMPXCHG16B); |  | ||||||
|   report(_CRT_3DNOW); |  | ||||||
|   report(_CRT_3DNOWP); |  | ||||||
|  return 0; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| #ifndef _CPU_FEATURES_H |  | ||||||
| #define _CPU_FEATURES_H |  | ||||||
|  |  | ||||||
| #include <stdbool.h> |  | ||||||
|  |  | ||||||
| #define  _CRT_CMPXCHG8B		0x0001 |  | ||||||
| #define  _CRT_CMOV		0x0002 |  | ||||||
| #define  _CRT_MMX		0x0004 |  | ||||||
| #define  _CRT_FXSR		0x0008 |  | ||||||
| #define  _CRT_SSE		0x0010 |  | ||||||
| #define  _CRT_SSE2		0x0020 |  | ||||||
| #define  _CRT_SSE3		0x0040 |  | ||||||
| #define  _CRT_CMPXCHG16B	0x0080 |  | ||||||
| #define  _CRT_3DNOW		0x0100 |  | ||||||
| #define  _CRT_3DNOWP		0x0200 |  | ||||||
|  |  | ||||||
| extern unsigned int __cpu_features; |  | ||||||
|  |  | ||||||
| /* Currently we use this in fpenv  functions */ |  | ||||||
| #define __HAS_SSE  __cpu_features & _CRT_SSE |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,297 +0,0 @@ | |||||||
| /* |  | ||||||
|  * crt1.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Source code for the startup proceedures used by all programs. This code |  | ||||||
|  * is compiled to make crt1.o, which should be located in the library path. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Hide the declaration of _fmode with dllimport attribute in stdlib.h to |  | ||||||
|    avoid problems with older GCC. */ |  | ||||||
| #define __IN_MINGW_RUNTIME  |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <io.h> |  | ||||||
| #include <process.h> |  | ||||||
| #include <float.h> |  | ||||||
| #define WIN32_LEAN_AND_MEAN |  | ||||||
| #include <windows.h> |  | ||||||
| #include <signal.h> |  | ||||||
|  |  | ||||||
| /* NOTE: The code for initializing the _argv, _argc, and environ variables |  | ||||||
|  *       has been moved to a separate .c file which is included in both |  | ||||||
|  *       crt1.c and dllcrt1.c. This means changes in the code don't have to |  | ||||||
|  *       be manually synchronized, but it does lead to this not-generally- |  | ||||||
|  *       a-good-idea use of include. */ |  | ||||||
| #include "init.c" |  | ||||||
| #include "cpu_features.h" |  | ||||||
|  |  | ||||||
| extern void __main (); |  | ||||||
| extern void _pei386_runtime_relocator (void); |  | ||||||
|  |  | ||||||
| extern int main (int, char **, char **); |  | ||||||
|  |  | ||||||
| /* TLS initialization hook.  */ |  | ||||||
| extern const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Must have the correct app type for MSVCRT.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| #define __UNKNOWN_APP    0 |  | ||||||
| #define __CONSOLE_APP    1 |  | ||||||
| #define __GUI_APP        2 |  | ||||||
| __MINGW_IMPORT void __set_app_type(int); |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /*  Global _fmode for this .exe, not the one in msvcrt.dll, |  | ||||||
|     The default is set in txtmode.o in libmingw32.a */ |  | ||||||
| /* Override the dllimport'd declarations in stdlib.h */ |  | ||||||
| #undef _fmode  |  | ||||||
| extern int _fmode;  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| extern int* __p__fmode(void); /* To access the dll _fmode */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Setup the default file handles to have the _CRT_fmode mode, as well as |  | ||||||
|  * any new files created by the user. |  | ||||||
|  */ |  | ||||||
| extern int _CRT_fmode; |  | ||||||
|  |  | ||||||
| static void |  | ||||||
| _mingw32_init_fmode (void) |  | ||||||
| { |  | ||||||
|   /* Don't set the std file mode if the user hasn't set any value for it. */ |  | ||||||
|   if (_CRT_fmode) |  | ||||||
|     { |  | ||||||
|       _fmode = _CRT_fmode; |  | ||||||
|  |  | ||||||
|       /* |  | ||||||
|        * This overrides the default file mode settings for stdin, |  | ||||||
|        * stdout and stderr. At first I thought you would have to |  | ||||||
|        * test with isatty, but it seems that the DOS console at |  | ||||||
|        * least is smart enough to handle _O_BINARY stdout and |  | ||||||
|        * still display correctly. |  | ||||||
|        */ |  | ||||||
|       if (stdin) |  | ||||||
| 	{ |  | ||||||
| 	  _setmode (_fileno (stdin), _CRT_fmode); |  | ||||||
| 	} |  | ||||||
|       if (stdout) |  | ||||||
| 	{ |  | ||||||
| 	  _setmode (_fileno (stdout), _CRT_fmode); |  | ||||||
| 	} |  | ||||||
|       if (stderr) |  | ||||||
| 	{ |  | ||||||
| 	  _setmode (_fileno (stderr), _CRT_fmode); |  | ||||||
| 	} |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /*  Now sync  the dll _fmode to the  one for this .exe.  */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|     *__p__fmode() = _fmode;	 |  | ||||||
| #else |  | ||||||
|     *_imp___fmode_dll = _fmode; |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* This function will be called when a trap occurs. Thanks to Jacob |  | ||||||
|    Navia for his contribution. */ |  | ||||||
| static CALLBACK long |  | ||||||
| _gnu_exception_handler (EXCEPTION_POINTERS * exception_data) |  | ||||||
| { |  | ||||||
|   void (*old_handler) (int); |  | ||||||
|   long action = EXCEPTION_CONTINUE_SEARCH; |  | ||||||
|   int reset_fpu = 0; |  | ||||||
|  |  | ||||||
|   switch (exception_data->ExceptionRecord->ExceptionCode) |  | ||||||
|     { |  | ||||||
|     case EXCEPTION_ACCESS_VIOLATION: |  | ||||||
|       /* test if the user has set SIGSEGV */ |  | ||||||
|       old_handler = signal (SIGSEGV, SIG_DFL); |  | ||||||
|       if (old_handler == SIG_IGN) |  | ||||||
| 	{ |  | ||||||
| 	  /* this is undefined if the signal was raised by anything other |  | ||||||
| 	     than raise ().  */ |  | ||||||
| 	  signal (SIGSEGV, SIG_IGN); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       else if (old_handler != SIG_DFL) |  | ||||||
| 	{ |  | ||||||
| 	  /* This means 'old' is a user defined function. Call it */ |  | ||||||
| 	  (*old_handler) (SIGSEGV); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     case EXCEPTION_ILLEGAL_INSTRUCTION: |  | ||||||
|     case EXCEPTION_PRIV_INSTRUCTION: |  | ||||||
|       /* test if the user has set SIGILL */ |  | ||||||
|       old_handler = signal (SIGILL, SIG_DFL); |  | ||||||
|       if (old_handler == SIG_IGN) |  | ||||||
| 	{ |  | ||||||
| 	  /* this is undefined if the signal was raised by anything other |  | ||||||
| 	     than raise ().  */ |  | ||||||
| 	  signal (SIGILL, SIG_IGN); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       else if (old_handler != SIG_DFL) |  | ||||||
| 	{ |  | ||||||
| 	  /* This means 'old' is a user defined function. Call it */ |  | ||||||
| 	  (*old_handler) (SIGILL); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     case EXCEPTION_FLT_INVALID_OPERATION: |  | ||||||
|     case EXCEPTION_FLT_DIVIDE_BY_ZERO: |  | ||||||
|     case EXCEPTION_FLT_DENORMAL_OPERAND: |  | ||||||
|     case EXCEPTION_FLT_OVERFLOW: |  | ||||||
|     case EXCEPTION_FLT_UNDERFLOW: |  | ||||||
|     case EXCEPTION_FLT_INEXACT_RESULT: |  | ||||||
|       reset_fpu = 1; |  | ||||||
|       /* fall through. */ |  | ||||||
|  |  | ||||||
|     case EXCEPTION_INT_DIVIDE_BY_ZERO: |  | ||||||
|       /* test if the user has set SIGFPE */ |  | ||||||
|       old_handler = signal (SIGFPE, SIG_DFL); |  | ||||||
|       if (old_handler == SIG_IGN) |  | ||||||
| 	{ |  | ||||||
| 	  signal (SIGFPE, SIG_IGN); |  | ||||||
| 	  if (reset_fpu) |  | ||||||
| 	    _fpreset (); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       else if (old_handler != SIG_DFL) |  | ||||||
| 	{ |  | ||||||
| 	  /* This means 'old' is a user defined function. Call it */ |  | ||||||
| 	  (*old_handler) (SIGFPE); |  | ||||||
| 	  action = EXCEPTION_CONTINUE_EXECUTION; |  | ||||||
| 	} |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     default: |  | ||||||
|       break; |  | ||||||
|     } |  | ||||||
|   return action; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The function mainCRTStartup is the entry point for all console programs. |  | ||||||
|  */ |  | ||||||
| static void  __MINGW_ATTRIB_NORETURN |  | ||||||
| __mingw_CRTStartup (void) |  | ||||||
| { |  | ||||||
|   int nRet; |  | ||||||
|  |  | ||||||
|   /* Initialize TLS callback.  */ |  | ||||||
|   if (__dyn_tls_init_callback != NULL) |  | ||||||
|     __dyn_tls_init_callback (NULL, DLL_THREAD_ATTACH, NULL); |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Set up the top-level exception handler so that signal handling |  | ||||||
|    * works as expected. The mapping between ANSI/POSIX signals and |  | ||||||
|    * Win32 SE is not 1-to-1, so caveat emptore. |  | ||||||
|    *  |  | ||||||
|    */ |  | ||||||
|   SetUnhandledExceptionFilter (_gnu_exception_handler); |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Initialize floating point unit. |  | ||||||
|    */ |  | ||||||
|   __cpu_features_init ();	/* Do we have SSE, etc.*/ |  | ||||||
|   _fpreset ();			/* Supplied by the runtime library. */ |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Set up __argc, __argv and _environ. |  | ||||||
|    */ |  | ||||||
|   _mingw32_init_mainargs (); |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Sets the default file mode. |  | ||||||
|    * If _CRT_fmode is set, also set mode for stdin, stdout |  | ||||||
|    * and stderr, as well |  | ||||||
|    * NOTE: DLLs don't do this because that would be rude! |  | ||||||
|    */ |  | ||||||
|   _mingw32_init_fmode (); |  | ||||||
|    |  | ||||||
|    /* Adust references to dllimported data that have non-zero offsets.  */ |  | ||||||
|   _pei386_runtime_relocator (); |  | ||||||
|  |  | ||||||
|   /* Align the stack to 16 bytes for the sake of SSE ops in main |  | ||||||
|      or in functions inlined into main.  */ |  | ||||||
|   asm  __volatile__  ("andl $-16, %%esp" : : : "%esp"); |  | ||||||
|  |  | ||||||
|    /* From libgcc.a, __main calls global class constructors via |  | ||||||
|       __do_global_ctors, This in turn  registers  __do_global_dtors |  | ||||||
|       as the first entry of the app's atexit table.  We do this |  | ||||||
|       explicitly at app startup rather than rely on gcc to generate |  | ||||||
|       the call in main's  prologue, since main may be imported from a dll |  | ||||||
|       which has its own __do_global_ctors.  */ |  | ||||||
|     __main (); |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Call the main function. If the user does not supply one |  | ||||||
|    * the one in the 'libmingw32.a' library will be linked in, and |  | ||||||
|    * that one calls WinMain. See main.c in the 'lib' dir |  | ||||||
|    * for more details. |  | ||||||
|    */ |  | ||||||
|   nRet = main (_argc, _argv, environ); |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Perform exit processing for the C library. This means |  | ||||||
|    * flushing output and calling 'atexit' registered functions. |  | ||||||
|    */ |  | ||||||
|   _cexit (); |  | ||||||
|  |  | ||||||
|   ExitProcess (nRet); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The function mainCRTStartup is the entry point for all console programs. |  | ||||||
|  */ |  | ||||||
| void |  | ||||||
| mainCRTStartup (void) |  | ||||||
| { |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|   __set_app_type (__CONSOLE_APP); |  | ||||||
| #endif |  | ||||||
|   __mingw_CRTStartup (); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * For now the GUI startup function is the same as the console one. |  | ||||||
|  * This simply gets rid of the annoying warning about not being able |  | ||||||
|  * to find WinMainCRTStartup when linking GUI applications. |  | ||||||
|  */ |  | ||||||
| void |  | ||||||
| WinMainCRTStartup (void) |  | ||||||
| { |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|   __set_app_type (__GUI_APP); |  | ||||||
| #endif |  | ||||||
|   __mingw_CRTStartup (); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *  We force use of library version of atexit, which is only |  | ||||||
|  *  visible in import lib as _imp__atexit |  | ||||||
|  */ |  | ||||||
| extern int (*_imp__atexit)(void (*)(void)); |  | ||||||
| int atexit (void (* pfn )(void) ) |  | ||||||
| { |  | ||||||
|   return ( (*_imp__atexit)(pfn)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* Likewise for non-ANSI _onexit */ |  | ||||||
| extern _onexit_t (*_imp___onexit)(_onexit_t); |  | ||||||
| _onexit_t |  | ||||||
| _onexit (_onexit_t pfn ) |  | ||||||
| { |  | ||||||
|   return (*_imp___onexit)(pfn); |  | ||||||
| } |  | ||||||
| @@ -1,695 +0,0 @@ | |||||||
| ; |  | ||||||
| ;* crtdll.def |  | ||||||
| ;* This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
| ;* This file is a part of the mingw-runtime package. |  | ||||||
| ;* No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
| ; |  | ||||||
| ; Exports from crtdll.dll from Windows 95 SYSTEM directory. Hopefully this |  | ||||||
| ; should also work with the crtdll provided with Windows NT. |  | ||||||
| ; |  | ||||||
| ; NOTE: The crtdll is OBSOLETE and msvcrt should be used instead.  The msvcrt |  | ||||||
| ; is available for free download from Microsoft Corporation and will work on |  | ||||||
| ; Windows 95.  Support for the crtdll is deprecated and this file may be |  | ||||||
| ; deleted in future versions. |  | ||||||
| ; |  | ||||||
| ; These three functions appear to be name mangled in some way, so GCC is |  | ||||||
| ; probably not going to be able to use them in any case. |  | ||||||
| ; |  | ||||||
| ;    ??2@YAPAXI@Z |  | ||||||
| ;    ??3@YAXPAX@Z |  | ||||||
| ;    ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z |  | ||||||
| ; |  | ||||||
| ; These are functions for which I have not yet written prototypes or |  | ||||||
| ; otherwise set up (they are still included below though unlike those |  | ||||||
| ; first three). |  | ||||||
| ; |  | ||||||
| ;    _CIacos |  | ||||||
| ;    _CIasin |  | ||||||
| ;    _CIatan |  | ||||||
| ;    _CIatan2 |  | ||||||
| ;    _CIcos |  | ||||||
| ;    _CIcosh |  | ||||||
| ;    _CIexp |  | ||||||
| ;    _CIfmod |  | ||||||
| ;    _CIlog |  | ||||||
| ;    _CIlog10 |  | ||||||
| ;    _CIpow |  | ||||||
| ;    _CIsin |  | ||||||
| ;    _CIsinh |  | ||||||
| ;    _CIsqrt |  | ||||||
| ;    _CItan |  | ||||||
| ;    _CItanh |  | ||||||
| ;    __dllonexit |  | ||||||
| ;    __mb_cur_max_dll |  | ||||||
| ;    __threadhandle |  | ||||||
| ;    __threadid |  | ||||||
| ;    _abnormal_termination |  | ||||||
| ;    _acmdln_dll |  | ||||||
| ;    _aexit_rtn_dll |  | ||||||
| ;    _amsg_exit |  | ||||||
| ;    _commit |  | ||||||
| ;    _commode_dll |  | ||||||
| ;    _cpumode_dll |  | ||||||
| ;    _ctype |  | ||||||
| ;    _expand |  | ||||||
| ;    _fcloseall |  | ||||||
| ;    _filbuf |  | ||||||
| ;    _fileinfo_dll |  | ||||||
| ;    _flsbuf |  | ||||||
| ;    _flushall |  | ||||||
| ;    _fmode_dll |  | ||||||
| ;    _fpieee_flt |  | ||||||
| ;    _fsopen |  | ||||||
| ;    _ftol |  | ||||||
| ;    _getdiskfree |  | ||||||
| ;    _getdllprocaddr |  | ||||||
| ;    _getdrive |  | ||||||
| ;    _getdrives |  | ||||||
| ;    _getsystime |  | ||||||
| ;    _initterm |  | ||||||
| ;    _ismbbalnum |  | ||||||
| ;    _ismbbalpha |  | ||||||
| ;    _ismbbgraph |  | ||||||
| ;    _ismbbkalnum |  | ||||||
| ;    _ismbbkana |  | ||||||
| ;    _ismbbkpunct |  | ||||||
| ;    _ismbblead |  | ||||||
| ;    _ismbbprint |  | ||||||
| ;    _ismbbpunct |  | ||||||
| ;    _ismbbtrail |  | ||||||
| ;    _ismbcalpha |  | ||||||
| ;    _ismbcdigit |  | ||||||
| ;    _ismbchira |  | ||||||
| ;    _ismbckata |  | ||||||
| ;    _ismbcl0 |  | ||||||
| ;    _ismbcl1 |  | ||||||
| ;    _ismbcl2 |  | ||||||
| ;    _ismbclegal |  | ||||||
| ;    _ismbclower |  | ||||||
| ;    _ismbcprint |  | ||||||
| ;    _ismbcspace |  | ||||||
| ;    _ismbcsymbol |  | ||||||
| ;    _ismbcupper |  | ||||||
| ;    _ismbslead |  | ||||||
| ;    _ismbstrail |  | ||||||
| ;    _lfind |  | ||||||
| ;    _loaddll |  | ||||||
| ;    _lrotl |  | ||||||
| ;    _lrotr |  | ||||||
| ;    _lsearch |  | ||||||
| ;    _makepath |  | ||||||
| ;    _matherr |  | ||||||
| ;    _mbbtombc |  | ||||||
| ;    _mbbtype |  | ||||||
| ;    _mbccpy |  | ||||||
| ;    _mbcjistojms |  | ||||||
| ;    _mbcjmstojis |  | ||||||
| ;    _mbclen |  | ||||||
| ;    _mbctohira |  | ||||||
| ;    _mbctokata |  | ||||||
| ;    _mbctolower |  | ||||||
| ;    _mbctombb |  | ||||||
| ;    _mbctoupper |  | ||||||
| ;    _mbctype |  | ||||||
| ;    _mbsbtype |  | ||||||
| ;    _mbscat |  | ||||||
| ;    _mbscmp |  | ||||||
| ;    _mbscpy |  | ||||||
| ;    _mbscspn |  | ||||||
| ;    _mbsdec |  | ||||||
| ;    _mbsdup |  | ||||||
| ;    _mbsicmp |  | ||||||
| ;    _mbsinc |  | ||||||
| ;    _mbslen |  | ||||||
| ;    _mbslwr |  | ||||||
| ;    _mbsnbcat |  | ||||||
| ;    _mbsnbcmp |  | ||||||
| ;    _mbsnbcnt |  | ||||||
| ;    _mbsnbcpy |  | ||||||
| ;    _mbsnbicmp |  | ||||||
| ;    _mbsnbset |  | ||||||
| ;    _mbsnccnt |  | ||||||
| ;    _mbsncmp |  | ||||||
| ;    _mbsncpy |  | ||||||
| ;    _mbsnextc |  | ||||||
| ;    _mbsnicmp |  | ||||||
| ;    _mbsninc |  | ||||||
| ;    _mbsnset |  | ||||||
| ;    _mbspbrk |  | ||||||
| ;    _mbsrchr |  | ||||||
| ;    _mbsrev |  | ||||||
| ;    _mbsset |  | ||||||
| ;    _mbsspn |  | ||||||
| ;    _mbsspnp |  | ||||||
| ;    _mbsstr |  | ||||||
| ;    _mbstrlen |  | ||||||
| ;    _mbsupr |  | ||||||
| ;    _onexit |  | ||||||
| ;    _osversion_dll |  | ||||||
| ;    _pctype_dll |  | ||||||
| ;    _purecall |  | ||||||
| ;    _pwctype_dll |  | ||||||
| ;    _rmtmp |  | ||||||
| ;    _rotl |  | ||||||
| ;    _rotr |  | ||||||
| ;    _setsystime |  | ||||||
| ;    _snprintf |  | ||||||
| ;    _snwprintf |  | ||||||
| ;    _splitpath |  | ||||||
| ;    _strdate |  | ||||||
| ;    _strdec |  | ||||||
| ;    _strinc |  | ||||||
| ;    _strncnt |  | ||||||
| ;    _strnextc |  | ||||||
| ;    _strninc |  | ||||||
| ;    _strspnp |  | ||||||
| ;    _strtime |  | ||||||
| ;    _tempnam |  | ||||||
| ;    _ultoa |  | ||||||
| ;    _unloaddll |  | ||||||
| ;    _vsnprintf |  | ||||||
| ;    _vsnwprintf |  | ||||||
| ;    _wtoi |  | ||||||
| ;    _wtol |  | ||||||
| ; |  | ||||||
| EXPORTS |  | ||||||
| _CIacos |  | ||||||
| _CIasin |  | ||||||
| _CIatan |  | ||||||
| _CIatan2 |  | ||||||
| _CIcos |  | ||||||
| _CIcosh |  | ||||||
| _CIexp |  | ||||||
| _CIfmod |  | ||||||
| _CIlog |  | ||||||
| _CIlog10 |  | ||||||
| _CIpow |  | ||||||
| _CIsin |  | ||||||
| _CIsinh |  | ||||||
| _CIsqrt |  | ||||||
| _CItan |  | ||||||
| _CItanh |  | ||||||
| _HUGE_dll DATA |  | ||||||
| _XcptFilter |  | ||||||
| __GetMainArgs |  | ||||||
| __argc_dll DATA |  | ||||||
| __argv_dll DATA |  | ||||||
| __dllonexit |  | ||||||
| __doserrno |  | ||||||
| __fpecode |  | ||||||
| __isascii |  | ||||||
| __iscsym |  | ||||||
| __iscsymf |  | ||||||
| __mb_cur_max_dll DATA |  | ||||||
| __pxcptinfoptrs |  | ||||||
| __threadhandle |  | ||||||
| __threadid |  | ||||||
| __toascii |  | ||||||
| _abnormal_termination |  | ||||||
| _access |  | ||||||
| _acmdln_dll DATA |  | ||||||
| _aexit_rtn_dll DATA |  | ||||||
| _amsg_exit |  | ||||||
| _assert |  | ||||||
| _basemajor_dll DATA |  | ||||||
| _baseminor_dll DATA |  | ||||||
| _baseversion_dll DATA |  | ||||||
| _beep |  | ||||||
| _beginthread |  | ||||||
| _c_exit |  | ||||||
| _cabs |  | ||||||
| _cexit |  | ||||||
| _cgets |  | ||||||
| _chdir |  | ||||||
| _chdrive |  | ||||||
| _chgsign |  | ||||||
| _chmod |  | ||||||
| _chsize |  | ||||||
| _clearfp |  | ||||||
| _close |  | ||||||
| _commit |  | ||||||
| _commode_dll DATA |  | ||||||
| _control87 |  | ||||||
| _controlfp |  | ||||||
| _copysign |  | ||||||
| _cprintf |  | ||||||
| _cpumode_dll DATA |  | ||||||
| _cputs |  | ||||||
| _creat |  | ||||||
| _cscanf |  | ||||||
| _ctype |  | ||||||
| _cwait |  | ||||||
| _daylight_dll DATA |  | ||||||
| _dup |  | ||||||
| _dup2 |  | ||||||
| _ecvt |  | ||||||
| _endthread |  | ||||||
| _environ_dll DATA |  | ||||||
| _eof |  | ||||||
| _errno |  | ||||||
| _except_handler2 |  | ||||||
| _execl |  | ||||||
| _execle |  | ||||||
| _execlp |  | ||||||
| _execlpe |  | ||||||
| _execv |  | ||||||
| _execve |  | ||||||
| _execvp |  | ||||||
| _execvpe |  | ||||||
| _exit |  | ||||||
| _expand |  | ||||||
| _fcloseall |  | ||||||
| _fcvt |  | ||||||
| _fdopen |  | ||||||
| _fgetchar |  | ||||||
| _fgetwchar |  | ||||||
| _filbuf |  | ||||||
| _fileinfo_dll DATA |  | ||||||
| _filelength |  | ||||||
| _fileno |  | ||||||
| _findclose |  | ||||||
| _findfirst |  | ||||||
| _findnext |  | ||||||
| _finite |  | ||||||
| _flsbuf |  | ||||||
| _flushall |  | ||||||
| _fmode_dll DATA |  | ||||||
| _fpclass |  | ||||||
| _fpieee_flt |  | ||||||
| _fpreset DATA |  | ||||||
| _fputchar |  | ||||||
| _fputwchar |  | ||||||
| _fsopen |  | ||||||
| _fstat |  | ||||||
| _ftime |  | ||||||
| _ftol |  | ||||||
| _fullpath |  | ||||||
| _futime |  | ||||||
| _gcvt |  | ||||||
| _get_osfhandle |  | ||||||
| _getch |  | ||||||
| _getche |  | ||||||
| _getcwd |  | ||||||
| _getdcwd |  | ||||||
| _getdiskfree |  | ||||||
| _getdllprocaddr |  | ||||||
| _getdrive |  | ||||||
| _getdrives |  | ||||||
| _getpid |  | ||||||
| _getsystime |  | ||||||
| _getw |  | ||||||
| _global_unwind2 |  | ||||||
| _heapchk |  | ||||||
| _heapmin |  | ||||||
| _heapset |  | ||||||
| _heapwalk |  | ||||||
| _hypot |  | ||||||
| _initterm |  | ||||||
| _iob DATA |  | ||||||
| _isatty |  | ||||||
| _isctype |  | ||||||
| _ismbbalnum |  | ||||||
| _ismbbalpha |  | ||||||
| _ismbbgraph |  | ||||||
| _ismbbkalnum |  | ||||||
| _ismbbkana |  | ||||||
| _ismbbkpunct |  | ||||||
| _ismbblead |  | ||||||
| _ismbbprint |  | ||||||
| _ismbbpunct |  | ||||||
| _ismbbtrail |  | ||||||
| _ismbcalpha |  | ||||||
| _ismbcdigit |  | ||||||
| _ismbchira |  | ||||||
| _ismbckata |  | ||||||
| _ismbcl0 |  | ||||||
| _ismbcl1 |  | ||||||
| _ismbcl2 |  | ||||||
| _ismbclegal |  | ||||||
| _ismbclower |  | ||||||
| _ismbcprint |  | ||||||
| _ismbcspace |  | ||||||
| _ismbcsymbol |  | ||||||
| _ismbcupper |  | ||||||
| _ismbslead |  | ||||||
| _ismbstrail |  | ||||||
| _isnan |  | ||||||
| _itoa |  | ||||||
| _j0 |  | ||||||
| _j1 |  | ||||||
| _jn |  | ||||||
| _kbhit |  | ||||||
| _lfind |  | ||||||
| _loaddll |  | ||||||
| _local_unwind2 |  | ||||||
| _locking |  | ||||||
| _logb |  | ||||||
| _lrotl |  | ||||||
| _lrotr |  | ||||||
| _lsearch |  | ||||||
| _lseek |  | ||||||
| _ltoa |  | ||||||
| _makepath |  | ||||||
| _matherr |  | ||||||
| _mbbtombc |  | ||||||
| _mbbtype |  | ||||||
| _mbccpy |  | ||||||
| _mbcjistojms |  | ||||||
| _mbcjmstojis |  | ||||||
| _mbclen |  | ||||||
| _mbctohira |  | ||||||
| _mbctokata |  | ||||||
| _mbctolower |  | ||||||
| _mbctombb |  | ||||||
| _mbctoupper |  | ||||||
| _mbctype |  | ||||||
| _mbsbtype |  | ||||||
| _mbscat |  | ||||||
| _mbschr |  | ||||||
| _mbscmp |  | ||||||
| _mbscpy |  | ||||||
| _mbscspn |  | ||||||
| _mbsdec |  | ||||||
| _mbsdup |  | ||||||
| _mbsicmp |  | ||||||
| _mbsinc |  | ||||||
| _mbslen |  | ||||||
| _mbslwr |  | ||||||
| _mbsnbcat |  | ||||||
| _mbsnbcmp |  | ||||||
| _mbsnbcnt |  | ||||||
| _mbsnbcpy |  | ||||||
| _mbsnbicmp |  | ||||||
| _mbsnbset |  | ||||||
| _mbsncat |  | ||||||
| _mbsnccnt |  | ||||||
| _mbsncmp |  | ||||||
| _mbsncpy |  | ||||||
| _mbsnextc |  | ||||||
| _mbsnicmp |  | ||||||
| _mbsninc |  | ||||||
| _mbsnset |  | ||||||
| _mbspbrk |  | ||||||
| _mbsrchr |  | ||||||
| _mbsrev |  | ||||||
| _mbsset |  | ||||||
| _mbsspn |  | ||||||
| _mbsspnp |  | ||||||
| _mbsstr |  | ||||||
| _mbstok |  | ||||||
| _mbstrlen |  | ||||||
| _mbsupr |  | ||||||
| _memccpy |  | ||||||
| _memicmp |  | ||||||
| _mkdir |  | ||||||
| _mktemp |  | ||||||
| _msize |  | ||||||
| _nextafter |  | ||||||
| _onexit DATA |  | ||||||
| _open |  | ||||||
| _open_osfhandle |  | ||||||
| _osmajor_dll DATA |  | ||||||
| _osminor_dll DATA |  | ||||||
| _osmode_dll DATA |  | ||||||
| _osver_dll DATA |  | ||||||
| _osversion_dll DATA |  | ||||||
| _pclose |  | ||||||
| _pctype_dll DATA |  | ||||||
| _pgmptr_dll DATA |  | ||||||
| _pipe |  | ||||||
| _popen |  | ||||||
| _purecall |  | ||||||
| _putch |  | ||||||
| _putenv |  | ||||||
| _putw |  | ||||||
| _pwctype_dll DATA |  | ||||||
| _read |  | ||||||
| _rmdir |  | ||||||
| _rmtmp |  | ||||||
| _rotl |  | ||||||
| _rotr |  | ||||||
| _scalb |  | ||||||
| _searchenv |  | ||||||
| _seterrormode |  | ||||||
| _setjmp |  | ||||||
| _setmode |  | ||||||
| _setsystime |  | ||||||
| _sleep |  | ||||||
| _snprintf |  | ||||||
| _snwprintf |  | ||||||
| _sopen |  | ||||||
| _spawnl |  | ||||||
| _spawnle |  | ||||||
| _spawnlp |  | ||||||
| _spawnlpe |  | ||||||
| _spawnv |  | ||||||
| _spawnve |  | ||||||
| _spawnvp |  | ||||||
| _spawnvpe |  | ||||||
| _splitpath |  | ||||||
| _stat |  | ||||||
| _statusfp |  | ||||||
| _strcmpi |  | ||||||
| _strdate |  | ||||||
| _strdec |  | ||||||
| _strdup |  | ||||||
| _strerror |  | ||||||
| _stricmp |  | ||||||
| _stricoll |  | ||||||
| _strinc |  | ||||||
| _strlwr |  | ||||||
| _strncnt |  | ||||||
| _strnextc |  | ||||||
| _strnicmp |  | ||||||
| _strninc |  | ||||||
| _strnset |  | ||||||
| _strrev |  | ||||||
| _strset |  | ||||||
| _strspnp |  | ||||||
| _strtime |  | ||||||
| _strupr |  | ||||||
| _swab |  | ||||||
| _sys_errlist DATA |  | ||||||
| _sys_nerr_dll DATA |  | ||||||
| _tell |  | ||||||
| _tempnam |  | ||||||
| _timezone_dll DATA |  | ||||||
| _tolower |  | ||||||
| _toupper |  | ||||||
| _tzname DATA |  | ||||||
| _tzset |  | ||||||
| _ultoa |  | ||||||
| _umask |  | ||||||
| _ungetch |  | ||||||
| _unlink |  | ||||||
| _unloaddll |  | ||||||
| _utime |  | ||||||
| _vsnprintf |  | ||||||
| _vsnwprintf |  | ||||||
| _wcsdup |  | ||||||
| _wcsicmp |  | ||||||
| _wcsicoll |  | ||||||
| _wcslwr |  | ||||||
| _wcsnicmp |  | ||||||
| _wcsnset |  | ||||||
| _wcsrev |  | ||||||
| _wcsset |  | ||||||
| _wcsupr |  | ||||||
| _winmajor_dll DATA |  | ||||||
| _winminor_dll DATA |  | ||||||
| _winver_dll DATA |  | ||||||
| _write |  | ||||||
| _wtoi |  | ||||||
| _wtol |  | ||||||
| _y0 |  | ||||||
| _y1 |  | ||||||
| _yn |  | ||||||
| abort |  | ||||||
| abs |  | ||||||
| acos |  | ||||||
| asctime |  | ||||||
| asin |  | ||||||
| atan |  | ||||||
| atan2 |  | ||||||
| atexit DATA |  | ||||||
| atof |  | ||||||
| atoi |  | ||||||
| atol |  | ||||||
| bsearch |  | ||||||
| calloc |  | ||||||
| ceil |  | ||||||
| clearerr |  | ||||||
| clock |  | ||||||
| cos |  | ||||||
| cosh |  | ||||||
| ctime |  | ||||||
| difftime |  | ||||||
| div |  | ||||||
| exit |  | ||||||
| exp |  | ||||||
| fabs |  | ||||||
| fclose |  | ||||||
| feof |  | ||||||
| ferror |  | ||||||
| fflush |  | ||||||
| fgetc |  | ||||||
| fgetpos |  | ||||||
| fgets |  | ||||||
| fgetwc |  | ||||||
| floor |  | ||||||
| fmod |  | ||||||
| fopen |  | ||||||
| fprintf |  | ||||||
| fputc |  | ||||||
| fputs |  | ||||||
| fputwc |  | ||||||
| fread |  | ||||||
| free |  | ||||||
| freopen |  | ||||||
| frexp |  | ||||||
| fscanf |  | ||||||
| fseek |  | ||||||
| fsetpos |  | ||||||
| ftell |  | ||||||
| fwprintf |  | ||||||
| fwrite |  | ||||||
| fwscanf |  | ||||||
| getc |  | ||||||
| getchar |  | ||||||
| getenv |  | ||||||
| gets |  | ||||||
| gmtime |  | ||||||
| is_wctype |  | ||||||
| isalnum |  | ||||||
| isalpha |  | ||||||
| iscntrl |  | ||||||
| isdigit |  | ||||||
| isgraph |  | ||||||
| isleadbyte |  | ||||||
| islower |  | ||||||
| isprint |  | ||||||
| ispunct |  | ||||||
| isspace |  | ||||||
| isupper |  | ||||||
| iswalnum |  | ||||||
| iswalpha |  | ||||||
| iswascii |  | ||||||
| iswcntrl |  | ||||||
| iswctype |  | ||||||
| iswdigit |  | ||||||
| iswgraph |  | ||||||
| iswlower |  | ||||||
| iswprint |  | ||||||
| iswpunct |  | ||||||
| iswspace |  | ||||||
| iswupper |  | ||||||
| iswxdigit |  | ||||||
| isxdigit |  | ||||||
| labs |  | ||||||
| ldexp |  | ||||||
| ldiv |  | ||||||
| localeconv |  | ||||||
| localtime |  | ||||||
| log |  | ||||||
| log10 |  | ||||||
| longjmp |  | ||||||
| malloc |  | ||||||
| mblen |  | ||||||
| mbstowcs |  | ||||||
| mbtowc |  | ||||||
| memchr |  | ||||||
| memcmp |  | ||||||
| memcpy |  | ||||||
| memmove |  | ||||||
| memset |  | ||||||
| mktime |  | ||||||
| modf |  | ||||||
| perror |  | ||||||
| pow |  | ||||||
| printf |  | ||||||
| putc |  | ||||||
| putchar |  | ||||||
| puts |  | ||||||
| qsort |  | ||||||
| raise |  | ||||||
| rand |  | ||||||
| realloc |  | ||||||
| remove |  | ||||||
| rename |  | ||||||
| rewind |  | ||||||
| scanf |  | ||||||
| setbuf |  | ||||||
| setlocale |  | ||||||
| setvbuf |  | ||||||
| signal |  | ||||||
| sin |  | ||||||
| sinh |  | ||||||
| sprintf |  | ||||||
| sqrt |  | ||||||
| srand |  | ||||||
| sscanf |  | ||||||
| strcat |  | ||||||
| strchr |  | ||||||
| strcmp |  | ||||||
| strcoll |  | ||||||
| strcpy |  | ||||||
| strcspn |  | ||||||
| strerror |  | ||||||
| strftime |  | ||||||
| strlen |  | ||||||
| strncat |  | ||||||
| strncmp |  | ||||||
| strncpy |  | ||||||
| strpbrk |  | ||||||
| strrchr |  | ||||||
| strspn |  | ||||||
| strstr |  | ||||||
| strtod |  | ||||||
| strtok |  | ||||||
| strtol |  | ||||||
| strtoul |  | ||||||
| strxfrm |  | ||||||
| swprintf |  | ||||||
| swscanf |  | ||||||
| system |  | ||||||
| tan |  | ||||||
| tanh |  | ||||||
| time |  | ||||||
| tmpfile |  | ||||||
| tmpnam |  | ||||||
| tolower |  | ||||||
| toupper |  | ||||||
| towlower |  | ||||||
| towupper |  | ||||||
| ungetc |  | ||||||
| ungetwc |  | ||||||
| vfprintf |  | ||||||
| vfwprintf |  | ||||||
| vprintf |  | ||||||
| vsprintf |  | ||||||
| vswprintf |  | ||||||
| vwprintf |  | ||||||
| wcscat |  | ||||||
| wcschr |  | ||||||
| wcscmp |  | ||||||
| wcscoll |  | ||||||
| wcscpy |  | ||||||
| wcscspn |  | ||||||
| wcsftime |  | ||||||
| wcslen |  | ||||||
| wcsncat |  | ||||||
| wcsncmp |  | ||||||
| wcsncpy |  | ||||||
| wcspbrk |  | ||||||
| wcsrchr |  | ||||||
| wcsspn |  | ||||||
| wcsstr |  | ||||||
| wcstod |  | ||||||
| wcstok |  | ||||||
| wcstol |  | ||||||
| wcstombs |  | ||||||
| wcstoul |  | ||||||
| wcsxfrm |  | ||||||
| wctomb |  | ||||||
| wprintf |  | ||||||
| wscanf |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| /* |  | ||||||
|  * crtmt.c |  | ||||||
|  * |  | ||||||
|  * This object file defines _CRT_MT to have a value of 1, which will |  | ||||||
|  * turn on MT support in GCC runtime. This is only linked in when |  | ||||||
|  * you specify -mthreads when linking with gcc. The Mingw support |  | ||||||
|  * library, libmingw32.a, contains the complement, crtst.o, which |  | ||||||
|  * sets this variable to 0.  |  | ||||||
|  * |  | ||||||
|  * Mumit Khan  <khan@nanotech.wisc.edu> |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int _CRT_MT = 1; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| /* |  | ||||||
|  * crtst.c |  | ||||||
|  * |  | ||||||
|  * This object file defines _CRT_MT to have a value of 0, which will |  | ||||||
|  * turn off MT support in GCC runtime. This is linked by default unless |  | ||||||
|  * you specify -mthreads when linking with gcc.  |  | ||||||
|  * |  | ||||||
|  * Mumit Khan  <khan@nanotech.wisc.edu> |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int _CRT_MT = 0; |  | ||||||
| @@ -1,192 +0,0 @@ | |||||||
| /* |  | ||||||
|  * dllcrt1.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Initialization code for DLLs. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <io.h> |  | ||||||
| #include <process.h> |  | ||||||
| #include <errno.h> |  | ||||||
| #include <windows.h> |  | ||||||
|  |  | ||||||
| /* TLS initialization hook. */ |  | ||||||
| extern const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback; |  | ||||||
|  |  | ||||||
| /* Unlike normal crt1, I don't initialize the FPU, because the process |  | ||||||
|  * should have done that already. I also don't set the file handle modes, |  | ||||||
|  * because that would be rude. */ |  | ||||||
|  |  | ||||||
| #ifdef	__GNUC__ |  | ||||||
| extern void __main (); |  | ||||||
| extern void __do_global_dtors (); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| typedef void (* p_atexit_fn )(void); |  | ||||||
| static p_atexit_fn* first_atexit; |  | ||||||
| static p_atexit_fn* next_atexit; |  | ||||||
|  |  | ||||||
| static void |  | ||||||
| __dll_exit (void); |  | ||||||
|  |  | ||||||
| /* This  is based on the function in the Wine project's exit.c */ |  | ||||||
| p_atexit_fn __dllonexit (p_atexit_fn, p_atexit_fn**, p_atexit_fn**); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| extern BOOL WINAPI DllMain (HANDLE, DWORD, LPVOID); |  | ||||||
|  |  | ||||||
| extern void _pei386_runtime_relocator (void); |  | ||||||
|  |  | ||||||
| BOOL WINAPI |  | ||||||
| DllMainCRTStartup (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) |  | ||||||
| { |  | ||||||
|   BOOL bRet; |  | ||||||
|  |  | ||||||
|   if (dwReason == DLL_PROCESS_ATTACH) |  | ||||||
|     { |  | ||||||
|  |  | ||||||
| #ifdef DEBUG |  | ||||||
|       printf ("%s: DLL_PROCESS_ATTACH (%d)\n", __FUNCTION__); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|       /* Initialize private atexit table for this dll. |  | ||||||
| 	 32 is min size required by ANSI */ |  | ||||||
|  |  | ||||||
|       first_atexit = (p_atexit_fn*) malloc (32 * sizeof (p_atexit_fn)); |  | ||||||
|       if (first_atexit == NULL ) /* can't allocate memory */ |  | ||||||
| 	{ |  | ||||||
| 	  errno=ENOMEM; |  | ||||||
| 	  return FALSE; |  | ||||||
| 	} |  | ||||||
|       *first_atexit =  NULL; |  | ||||||
|       next_atexit = first_atexit; |  | ||||||
|  |  | ||||||
|       /* Initialize TLS callback.  */ |  | ||||||
|       if (__dyn_tls_init_callback != NULL) |  | ||||||
|         { |  | ||||||
|           __dyn_tls_init_callback (hDll, DLL_THREAD_ATTACH, lpReserved); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|       /* Adust references to dllimported data (from other DLL's) |  | ||||||
| 	 that have non-zero offsets.  */  |  | ||||||
|       _pei386_runtime_relocator (); |  | ||||||
|  |  | ||||||
| #ifdef	__GNUC__ |  | ||||||
|       /* From libgcc.a, __main calls global class constructors, |  | ||||||
| 	 __do_global_ctors, which registers __do_global_dtors |  | ||||||
| 	 as the first entry of the private atexit table we |  | ||||||
| 	 have just initialised  */ |  | ||||||
|       __main (); |  | ||||||
|       	 |  | ||||||
| #endif |  | ||||||
|    } |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Call the user-supplied DllMain subroutine. |  | ||||||
|    * This has to come after initialization of atexit table and |  | ||||||
|    * registration of global constructors. |  | ||||||
|    * NOTE: DllMain is optional, so libmingw32.a includes a stub |  | ||||||
|    *       which will be used if the user does not supply one. |  | ||||||
|    */ |  | ||||||
|  |  | ||||||
|   bRet = DllMain (hDll, dwReason, lpReserved); |  | ||||||
|   /* Handle case where DllMain returns FALSE on attachment attempt.  */  |  | ||||||
|  |  | ||||||
|   if ( (dwReason == DLL_PROCESS_ATTACH) && !bRet) |  | ||||||
|     { |  | ||||||
| #ifdef DEBUG |  | ||||||
|       printf ("%s: DLL_PROCESS_ATTACH failed, cleaning up\n", __FUNCTION__); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|       __dll_exit ();     /* Cleanup now. This will set first_atexit to NULL so we |  | ||||||
| 			    know we've cleaned up	*/ |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   if (dwReason == DLL_PROCESS_DETACH) |  | ||||||
|     { |  | ||||||
| #ifdef DEBUG |  | ||||||
|       printf ("%s: DLL_PROCESS_DETACH (%d)\n", __FUNCTION__); |  | ||||||
| #endif |  | ||||||
|       /* If not attached, return FALSE. Cleanup already done above |  | ||||||
| 	 if failed attachment attempt. */ |  | ||||||
|       if  (! first_atexit ) |  | ||||||
|         bRet = FALSE; |  | ||||||
|       else |  | ||||||
| 	/* |  | ||||||
| 	 * We used to call __do_global_dtors () here. This is |  | ||||||
| 	 * no longer necessary since  __do_global_dtors is now |  | ||||||
| 	 * registered at start (last out) of private atexit table. |  | ||||||
| 	 */ |  | ||||||
| 	__dll_exit (); |  | ||||||
|     } |  | ||||||
|   return bRet; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static |  | ||||||
| void |  | ||||||
| __dll_exit(void) |  | ||||||
| /* Run LIFO terminators registered in private atexit table */ |  | ||||||
| { |  | ||||||
|   if ( first_atexit ) |  | ||||||
|     { |  | ||||||
|       p_atexit_fn* __last = next_atexit - 1; |  | ||||||
|       while ( __last >= first_atexit ) |  | ||||||
| 	{	 |  | ||||||
|           if ( *__last != NULL ) |  | ||||||
| 	    { |  | ||||||
| #ifdef DEBUG |  | ||||||
| 	      printf ("%s: Calling exit function  0x%x from 0x%x\n", |  | ||||||
| 		      __FUNCTION__, (unsigned)(*__last),(unsigned)__last); |  | ||||||
| #endif |  | ||||||
|               (**__last) (); |  | ||||||
| 	    } |  | ||||||
| 	  __last--; |  | ||||||
| 	} |  | ||||||
|       free ( first_atexit ) ; |  | ||||||
|       first_atexit = NULL ; |  | ||||||
|     } |  | ||||||
|     /* |  | ||||||
|        Make sure output buffers opened by DllMain or  |  | ||||||
|        atexit-registered functions are flushed before detaching, |  | ||||||
|        otherwise we can have problems with redirected output. |  | ||||||
|      */ |  | ||||||
|     fflush (NULL); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The atexit exported from msvcrt.dll causes problems in DLLs. |  | ||||||
|  * Here, we override the exported version of atexit with one that passes the |  | ||||||
|  * private table initialised in DllMainCRTStartup to __dllonexit. |  | ||||||
|  * That means we have to hide the mscvrt.dll atexit because the |  | ||||||
|  * atexit defined here gets __dllonexit from the same lib.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int |  | ||||||
| atexit (p_atexit_fn pfn ) |  | ||||||
| { |  | ||||||
| #ifdef DEBUG |  | ||||||
|   printf ("%s: registering exit function  0x%x at 0x%x\n", |  | ||||||
| 	  __FUNCTION__, (unsigned)pfn, (unsigned)next_atexit); |  | ||||||
| #endif |  | ||||||
|   return (__dllonexit (pfn,  &first_atexit, &next_atexit) |  | ||||||
| 	  == NULL ? -1  : 0 ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Likewise for non-ANSI function _onexit that may be called by |  | ||||||
|  * code in the dll.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _onexit_t |  | ||||||
| _onexit (_onexit_t pfn ) |  | ||||||
| { |  | ||||||
| #ifdef DEBUG |  | ||||||
|   printf ("%s: registering exit function  0x%x at 0x%x\n", |  | ||||||
| 	  __FUNCTION__, (unsigned)pfn, (unsigned)next_atexit); |  | ||||||
| #endif |  | ||||||
|   return ((_onexit_t) __dllonexit ((p_atexit_fn)pfn,  &first_atexit, &next_atexit)); |  | ||||||
| } |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| /* |  | ||||||
|  * dllmain.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * A stub DllMain function which will be called by DLLs which do not |  | ||||||
|  * have a user supplied DllMain. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <windows.h> |  | ||||||
|  |  | ||||||
| BOOL WINAPI  |  | ||||||
| DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) |  | ||||||
| { |  | ||||||
|   return TRUE; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,79 +0,0 @@ | |||||||
| /* |  | ||||||
|  * gccmain.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * A separate version of __main, __do_global_ctors and __do_global_dtors for |  | ||||||
|  * Mingw32 for use with Cygwin32 b19. Hopefully this object file will only |  | ||||||
|  * be linked if the libgcc.a doesn't include __main, __do_global_dtors and |  | ||||||
|  * __do_global_ctors. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* Needed for the atexit prototype. */ |  | ||||||
| #include <stdlib.h> |  | ||||||
|  |  | ||||||
| typedef void (*func_ptr) (void); |  | ||||||
| extern func_ptr __CTOR_LIST__[]; |  | ||||||
| extern func_ptr __DTOR_LIST__[]; |  | ||||||
|  |  | ||||||
| void |  | ||||||
| __do_global_dtors (void) |  | ||||||
| { |  | ||||||
|   static func_ptr *p = __DTOR_LIST__ + 1; |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Call each destructor in the destructor list until a null pointer |  | ||||||
|    * is encountered. |  | ||||||
|    */ |  | ||||||
|   while (*p) |  | ||||||
|     { |  | ||||||
|       (*(p)) (); |  | ||||||
|       p++; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void |  | ||||||
| __do_global_ctors (void) |  | ||||||
| { |  | ||||||
|   unsigned long nptrs = (unsigned long) __CTOR_LIST__[0]; |  | ||||||
|   unsigned i; |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * If the first entry in the constructor list is -1 then the list |  | ||||||
|    * is terminated with a null entry. Otherwise the first entry was |  | ||||||
|    * the number of pointers in the list. |  | ||||||
|    */ |  | ||||||
|   if (nptrs == -1) |  | ||||||
|     { |  | ||||||
|       for (nptrs = 0; __CTOR_LIST__[nptrs + 1] != 0; nptrs++) |  | ||||||
| 	; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   /*  |  | ||||||
|    * Go through the list backwards calling constructors. |  | ||||||
|    */ |  | ||||||
|   for (i = nptrs; i >= 1; i--) |  | ||||||
|     { |  | ||||||
|       __CTOR_LIST__[i] (); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Register the destructors for processing on exit. |  | ||||||
|    */ |  | ||||||
|   atexit (__do_global_dtors); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static int initialized = 0; |  | ||||||
|  |  | ||||||
| void |  | ||||||
| __main (void) |  | ||||||
| { |  | ||||||
|   if (!initialized) |  | ||||||
|     { |  | ||||||
|       initialized = 1; |  | ||||||
|       __do_global_ctors (); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,303 +0,0 @@ | |||||||
| #ifndef __MINGW_H |  | ||||||
| /* |  | ||||||
|  * _mingw.h |  | ||||||
|  * |  | ||||||
|  * Mingw specific macros included by ALL include files. |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * Contributors: |  | ||||||
|  *  Created by Mumit Khan  <khan@xraylith.wisc.edu> |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define __MINGW_H |  | ||||||
|  |  | ||||||
| #define __MINGW_VERSION		    4 |  | ||||||
| #define __MINGW_MAJOR_VERSION	    0 |  | ||||||
| #define __MINGW_MINOR_VERSION	    0 |  | ||||||
| #define __MINGW_PATCHLEVEL	    0 |  | ||||||
|  |  | ||||||
| // These four macros are deprecated and will be removed in the next major |  | ||||||
| // version release. |  | ||||||
| #define __MINGW32_VERSION           3.20 |  | ||||||
| #define __MINGW32_MAJOR_VERSION     3 |  | ||||||
| #define __MINGW32_MINOR_VERSION     20 |  | ||||||
| #define __MINGW32_PATCHLEVEL        0 |  | ||||||
|  |  | ||||||
| #if __GNUC__ >= 3 |  | ||||||
| #ifndef __PCC__ |  | ||||||
| #pragma GCC system_header |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* These are defined by the user (or the compiler) |  | ||||||
|    to specify how identifiers are imported from a DLL. |  | ||||||
|  |  | ||||||
|    __DECLSPEC_SUPPORTED            Defined if dllimport attribute is supported. |  | ||||||
|    __MINGW_IMPORT                  The attribute definition to specify imported |  | ||||||
|                                    variables/functions. |  | ||||||
|    _CRTIMP                         As above.  For MS compatibility. |  | ||||||
|    __MINGW_VERSION                 Runtime version. |  | ||||||
|    __MINGW_MAJOR_VERSION           Runtime major version. |  | ||||||
|    __MINGW_MINOR_VERSION           Runtime minor version. |  | ||||||
|    __MINGW_BUILD_DATE              Runtime build date. |  | ||||||
|  |  | ||||||
|    Macros to enable MinGW features which deviate from standard MSVC |  | ||||||
|    compatible behaviour; these may be specified directly in user code, |  | ||||||
|    activated implicitly, (e.g. by specifying _POSIX_C_SOURCE or such), |  | ||||||
|    or by inclusion in __MINGW_FEATURES__: |  | ||||||
|  |  | ||||||
|    __USE_MINGW_ANSI_STDIO          Select a more ANSI C99 compatible |  | ||||||
|                                    implementation of printf() and friends. |  | ||||||
|  |  | ||||||
|    Other macros: |  | ||||||
|  |  | ||||||
|    __int64                         define to be long long.  Using a typedef |  | ||||||
|                                    doesn't work for "unsigned __int64" |  | ||||||
|  |  | ||||||
|    All headers should include this first, and then use __DECLSPEC_SUPPORTED |  | ||||||
|    to choose between the old ``__imp__name'' style or __MINGW_IMPORT |  | ||||||
|    style declarations.  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Manifest definitions identifying the flag bits, controlling activation |  | ||||||
|  * of MinGW features, as specified by the user in __MINGW_FEATURES__. |  | ||||||
|  */ |  | ||||||
| #define __MINGW_ANSI_STDIO__		0x0000000000000001ULL |  | ||||||
| /* |  | ||||||
|  * The following three are not yet formally supported; they are |  | ||||||
|  * included here, to document anticipated future usage. |  | ||||||
|  */ |  | ||||||
| #define __MINGW_LC_EXTENSIONS__ 	0x0000000000000050ULL |  | ||||||
| #define __MINGW_LC_MESSAGES__		0x0000000000000010ULL |  | ||||||
| #define __MINGW_LC_ENVVARS__		0x0000000000000040ULL |  | ||||||
|  |  | ||||||
| /* Try to avoid problems with outdated checks for GCC __attribute__ support.  */ |  | ||||||
| #undef __attribute__ |  | ||||||
|  |  | ||||||
| #if defined (__PCC__) |  | ||||||
| #  undef __DECLSPEC_SUPPORTED |  | ||||||
| # ifndef __MINGW_IMPORT |  | ||||||
| #  define __MINGW_IMPORT extern |  | ||||||
| # endif |  | ||||||
| # ifndef _CRTIMP |  | ||||||
| #  define _CRTIMP |  | ||||||
| # endif |  | ||||||
| # ifndef __cdecl  |  | ||||||
| #  define __cdecl  _Pragma("cdecl") |  | ||||||
| # endif |  | ||||||
| # ifndef __stdcall |  | ||||||
| #  define __stdcall _Pragma("stdcall") |  | ||||||
| # endif |  | ||||||
| # ifndef __int64 |  | ||||||
| #  define __int64 long long |  | ||||||
| # endif |  | ||||||
| # ifndef __int32 |  | ||||||
| #  define __int32 long |  | ||||||
| # endif |  | ||||||
| # ifndef __int16 |  | ||||||
| #  define __int16 short |  | ||||||
| # endif |  | ||||||
| # ifndef __int8 |  | ||||||
| #  define __int8 char |  | ||||||
| # endif |  | ||||||
| # ifndef __small |  | ||||||
| #  define __small char |  | ||||||
| # endif |  | ||||||
| # ifndef __hyper |  | ||||||
| #  define __hyper long long |  | ||||||
| # endif |  | ||||||
| # ifndef __volatile__ |  | ||||||
| #  define __volatile__ volatile |  | ||||||
| # endif |  | ||||||
| # ifndef __restrict__ |  | ||||||
| #  define __restrict__ restrict |  | ||||||
| # endif |  | ||||||
| # define NONAMELESSUNION |  | ||||||
| #elif defined(__GNUC__) |  | ||||||
| # ifdef __declspec |  | ||||||
| #  ifndef __MINGW_IMPORT |  | ||||||
|    /* Note the extern. This is needed to work around GCC's |  | ||||||
|       limitations in handling dllimport attribute.  */ |  | ||||||
| #   define __MINGW_IMPORT  extern __attribute__ ((__dllimport__)) |  | ||||||
| #  endif |  | ||||||
| #  ifndef _CRTIMP |  | ||||||
| #   ifdef __USE_CRTIMP |  | ||||||
| #    define _CRTIMP  __attribute__ ((dllimport)) |  | ||||||
| #   else |  | ||||||
| #    define _CRTIMP |  | ||||||
| #   endif |  | ||||||
| #  endif |  | ||||||
| #  define __DECLSPEC_SUPPORTED |  | ||||||
| # else /* __declspec */ |  | ||||||
| #  undef __DECLSPEC_SUPPORTED |  | ||||||
| #  undef __MINGW_IMPORT |  | ||||||
| #  ifndef _CRTIMP |  | ||||||
| #   define _CRTIMP |  | ||||||
| #  endif |  | ||||||
| # endif /* __declspec */ |  | ||||||
| /* |  | ||||||
|  * The next two defines can cause problems if user code adds the |  | ||||||
|  * __cdecl attribute like so: |  | ||||||
|  * void __attribute__ ((__cdecl)) foo(void);  |  | ||||||
|  */ |  | ||||||
| # ifndef __cdecl  |  | ||||||
| #  define __cdecl  __attribute__ ((__cdecl__)) |  | ||||||
| # endif |  | ||||||
| # ifndef __stdcall |  | ||||||
| #  define __stdcall __attribute__ ((__stdcall__)) |  | ||||||
| # endif |  | ||||||
| # ifndef __int64 |  | ||||||
| #  define __int64 long long |  | ||||||
| # endif |  | ||||||
| # ifndef __int32 |  | ||||||
| #  define __int32 long |  | ||||||
| # endif |  | ||||||
| # ifndef __int16 |  | ||||||
| #  define __int16 short |  | ||||||
| # endif |  | ||||||
| # ifndef __int8 |  | ||||||
| #  define __int8 char |  | ||||||
| # endif |  | ||||||
| # ifndef __small |  | ||||||
| #  define __small char |  | ||||||
| # endif |  | ||||||
| # ifndef __hyper |  | ||||||
| #  define __hyper long long |  | ||||||
| # endif |  | ||||||
| #else /* ! __GNUC__ && ! __PCC__ */ |  | ||||||
| # ifndef __MINGW_IMPORT |  | ||||||
| #  define __MINGW_IMPORT  __declspec(dllimport) |  | ||||||
| # endif |  | ||||||
| # ifndef _CRTIMP |  | ||||||
| #  define _CRTIMP  __declspec(dllimport) |  | ||||||
| # endif |  | ||||||
| # define __DECLSPEC_SUPPORTED |  | ||||||
| # define __attribute__(x) /* nothing */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if defined (__GNUC__) && defined (__GNUC_MINOR__) |  | ||||||
| #define __MINGW_GNUC_PREREQ(major, minor) \ |  | ||||||
|   (__GNUC__ > (major) \ |  | ||||||
|    || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))) |  | ||||||
| #else |  | ||||||
| #define __MINGW_GNUC_PREREQ(major, minor)  0 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| # define __CRT_INLINE inline |  | ||||||
| #else |  | ||||||
| # if __GNUC_STDC_INLINE__ |  | ||||||
| #  define __CRT_INLINE extern inline __attribute__((__gnu_inline__)) |  | ||||||
| # else |  | ||||||
| #  define __CRT_INLINE extern __inline__ |  | ||||||
| # endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| # ifdef __GNUC__ |  | ||||||
| #  define _CRTALIAS __CRT_INLINE __attribute__ ((__always_inline__)) |  | ||||||
| # else |  | ||||||
| #  define _CRTALIAS __CRT_INLINE |  | ||||||
| # endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| # define __UNUSED_PARAM(x) |  | ||||||
| #else |  | ||||||
| # ifdef __GNUC__ |  | ||||||
| #  define __UNUSED_PARAM(x) x __attribute__ ((__unused__)) |  | ||||||
| # else |  | ||||||
| #  define __UNUSED_PARAM(x) x |  | ||||||
| # endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __GNUC__ |  | ||||||
| #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__)) |  | ||||||
| #define __MINGW_ATTRIB_CONST __attribute__ ((__const__)) |  | ||||||
| #else |  | ||||||
| #define __MINGW_ATTRIB_NORETURN |  | ||||||
| #define __MINGW_ATTRIB_CONST |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MINGW_GNUC_PREREQ (3, 0) |  | ||||||
| #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__)) |  | ||||||
| #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__)) |  | ||||||
| #else |  | ||||||
| #define __MINGW_ATTRIB_MALLOC |  | ||||||
| #define __MINGW_ATTRIB_PURE |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Attribute `nonnull' was valid as of gcc 3.3.  We don't use GCC's |  | ||||||
|    variadiac macro facility, because variadic macros cause syntax |  | ||||||
|    errors with  --traditional-cpp.  */ |  | ||||||
| #if  __MINGW_GNUC_PREREQ (3, 3) |  | ||||||
| #define __MINGW_ATTRIB_NONNULL(arg) __attribute__ ((__nonnull__ (arg))) |  | ||||||
| #else |  | ||||||
| #define __MINGW_ATTRIB_NONNULL(arg) |  | ||||||
| #endif /* GNUC >= 3.3 */ |  | ||||||
|  |  | ||||||
| #if  __MINGW_GNUC_PREREQ (3, 1) |  | ||||||
| #define __MINGW_ATTRIB_DEPRECATED __attribute__ ((__deprecated__)) |  | ||||||
| #else |  | ||||||
| #define __MINGW_ATTRIB_DEPRECATED |  | ||||||
| #endif /* GNUC >= 3.1 */ |  | ||||||
|   |  | ||||||
| #if  __MINGW_GNUC_PREREQ (3, 3) |  | ||||||
| #define __MINGW_NOTHROW __attribute__ ((__nothrow__)) |  | ||||||
| #else |  | ||||||
| #define __MINGW_NOTHROW |  | ||||||
| #endif /* GNUC >= 3.3 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* TODO: Mark (almost) all CRT functions as __MINGW_NOTHROW.  This will |  | ||||||
| allow GCC to optimize away some EH unwind code, at least in DW2 case.  */ |  | ||||||
|  |  | ||||||
| #ifndef __MSVCRT_VERSION__ |  | ||||||
| /*  High byte is the major version, low byte is the minor. */ |  | ||||||
| # define __MSVCRT_VERSION__ 0x0600 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Activation of MinGW specific extended features: |  | ||||||
|  */ |  | ||||||
| #ifndef __USE_MINGW_ANSI_STDIO |  | ||||||
| /* |  | ||||||
|  * If user didn't specify it explicitly... |  | ||||||
|  */ |  | ||||||
| # if   defined __STRICT_ANSI__  ||  defined _ISOC99_SOURCE \ |  | ||||||
|    ||  defined _POSIX_SOURCE    ||  defined _POSIX_C_SOURCE \ |  | ||||||
|    ||  defined _XOPEN_SOURCE    ||  defined _XOPEN_SOURCE_EXTENDED \ |  | ||||||
|    ||  defined _GNU_SOURCE      ||  defined _BSD_SOURCE \ |  | ||||||
|    ||  defined _SVID_SOURCE |  | ||||||
|    /* |  | ||||||
|     * but where any of these source code qualifiers are specified, |  | ||||||
|     * then assume ANSI I/O standards are preferred over Microsoft's... |  | ||||||
|     */ |  | ||||||
| #  define __USE_MINGW_ANSI_STDIO    1 |  | ||||||
| # else |  | ||||||
|    /* |  | ||||||
|     * otherwise use whatever __MINGW_FEATURES__ specifies... |  | ||||||
|     */ |  | ||||||
| #  define __USE_MINGW_ANSI_STDIO    (__MINGW_FEATURES__ & __MINGW_ANSI_STDIO__) |  | ||||||
| # endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| struct threadlocalinfostruct; |  | ||||||
| struct threadmbinfostruct; |  | ||||||
| typedef struct threadlocalinfostruct *pthreadlocinfo; |  | ||||||
| typedef struct threadmbcinfostruct *pthreadmbcinfo; |  | ||||||
|  |  | ||||||
| typedef struct localeinfo_struct { |  | ||||||
|   pthreadlocinfo locinfo; |  | ||||||
|   pthreadmbcinfo mbcinfo; |  | ||||||
| } _locale_tstruct, *_locale_t; |  | ||||||
|  |  | ||||||
| #endif /* __MINGW_H */ |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * assert.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Define the assert macro for debug output. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* We should be able to include this file multiple times to allow the assert |  | ||||||
|    macro to be enabled/disabled for different parts of code.  So don't add a |  | ||||||
|    header guard.  */  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #undef assert |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef NDEBUG |  | ||||||
| /* |  | ||||||
|  * If not debugging, assert does nothing. |  | ||||||
|  */ |  | ||||||
| #define assert(x)	((void)0) |  | ||||||
|  |  | ||||||
| #else /* debugging enabled */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * CRTDLL nicely supplies a function which does the actual output and |  | ||||||
|  * call to abort. |  | ||||||
|  */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _assert (const char*, const char*, int) __MINGW_ATTRIB_NORETURN; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Definition of the assert macro. |  | ||||||
|  */ |  | ||||||
| #define assert(e)       ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__)) |  | ||||||
|  |  | ||||||
| #endif	/* NDEBUG */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* Not RC_INVOKED */ |  | ||||||
| @@ -1,200 +0,0 @@ | |||||||
| /* |  | ||||||
|  * complex.h |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * Contributors: |  | ||||||
|  *  Created by Danny Smith <dannysmith@users.sourceforge.net> |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _COMPLEX_H_ |  | ||||||
| #define _COMPLEX_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* These macros are specified by C99 standard */ |  | ||||||
|  |  | ||||||
| #ifndef __cplusplus |  | ||||||
| #define complex _Complex |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define _Complex_I  (0.0F +  1.0iF) |  | ||||||
|  |  | ||||||
| /* GCC doesn't support _Imaginary type yet, so we don't |  | ||||||
|    define _Imaginary_I */ |  | ||||||
|  |  | ||||||
| #define I _Complex_I |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| double __MINGW_ATTRIB_CONST creal (double _Complex); |  | ||||||
| double __MINGW_ATTRIB_CONST cimag (double _Complex); |  | ||||||
| double __MINGW_ATTRIB_CONST carg (double _Complex); |  | ||||||
| double __MINGW_ATTRIB_CONST cabs (double _Complex); |  | ||||||
| double _Complex __MINGW_ATTRIB_CONST conj (double _Complex); |  | ||||||
| double _Complex  cacos (double _Complex); |  | ||||||
| double _Complex  casin (double _Complex); |  | ||||||
| double _Complex  catan (double _Complex); |  | ||||||
| double _Complex  ccos (double _Complex); |  | ||||||
| double _Complex  csin (double _Complex); |  | ||||||
| double _Complex  ctan (double _Complex); |  | ||||||
| double _Complex  cacosh (double _Complex); |  | ||||||
| double _Complex  casinh (double _Complex); |  | ||||||
| double _Complex  catanh (double _Complex); |  | ||||||
| double _Complex  ccosh (double _Complex); |  | ||||||
| double _Complex  csinh (double _Complex); |  | ||||||
| double _Complex  ctanh (double _Complex); |  | ||||||
| double _Complex  cexp (double _Complex); |  | ||||||
| double _Complex  clog (double _Complex); |  | ||||||
| double _Complex  cpow (double _Complex, double _Complex); |  | ||||||
| double _Complex  csqrt (double _Complex); |  | ||||||
| double _Complex __MINGW_ATTRIB_CONST cproj (double _Complex); |  | ||||||
|  |  | ||||||
| float __MINGW_ATTRIB_CONST crealf (float _Complex); |  | ||||||
| float __MINGW_ATTRIB_CONST cimagf (float _Complex); |  | ||||||
| float __MINGW_ATTRIB_CONST cargf (float _Complex); |  | ||||||
| float __MINGW_ATTRIB_CONST cabsf (float _Complex); |  | ||||||
| float _Complex __MINGW_ATTRIB_CONST conjf (float _Complex); |  | ||||||
| float _Complex  cacosf (float _Complex); |  | ||||||
| float _Complex  casinf (float _Complex); |  | ||||||
| float _Complex  catanf (float _Complex); |  | ||||||
| float _Complex  ccosf (float _Complex); |  | ||||||
| float _Complex  csinf (float _Complex); |  | ||||||
| float _Complex  ctanf (float _Complex); |  | ||||||
| float _Complex  cacoshf (float _Complex); |  | ||||||
| float _Complex  casinhf (float _Complex); |  | ||||||
| float _Complex  catanhf (float _Complex); |  | ||||||
| float _Complex  ccoshf (float _Complex); |  | ||||||
| float _Complex  csinhf (float _Complex); |  | ||||||
| float _Complex  ctanhf (float _Complex); |  | ||||||
| float _Complex  cexpf (float _Complex); |  | ||||||
| float _Complex  clogf (float _Complex); |  | ||||||
| float _Complex  cpowf (float _Complex, float _Complex); |  | ||||||
| float _Complex  csqrtf (float _Complex); |  | ||||||
| float _Complex __MINGW_ATTRIB_CONST cprojf (float _Complex); |  | ||||||
|  |  | ||||||
| long double __MINGW_ATTRIB_CONST creall (long double _Complex); |  | ||||||
| long double __MINGW_ATTRIB_CONST cimagl (long double _Complex); |  | ||||||
| long double __MINGW_ATTRIB_CONST cargl (long double _Complex); |  | ||||||
| long double __MINGW_ATTRIB_CONST cabsl (long double _Complex); |  | ||||||
| long double _Complex __MINGW_ATTRIB_CONST conjl (long double _Complex); |  | ||||||
| long double _Complex  cacosl (long double _Complex); |  | ||||||
| long double _Complex  casinl (long double _Complex); |  | ||||||
| long double _Complex  catanl (long double _Complex); |  | ||||||
| long double _Complex  ccosl (long double _Complex); |  | ||||||
| long double _Complex  csinl (long double _Complex); |  | ||||||
| long double _Complex  ctanl (long double _Complex); |  | ||||||
| long double _Complex  cacoshl (long double _Complex); |  | ||||||
| long double _Complex  casinhl (long double _Complex); |  | ||||||
| long double _Complex  catanhl (long double _Complex); |  | ||||||
| long double _Complex  ccoshl (long double _Complex); |  | ||||||
| long double _Complex  csinhl (long double _Complex); |  | ||||||
| long double _Complex  ctanhl (long double _Complex); |  | ||||||
| long double _Complex  cexpl (long double _Complex); |  | ||||||
| long double _Complex  clogl (long double _Complex); |  | ||||||
| long double _Complex  cpowl (long double _Complex, long double _Complex); |  | ||||||
| long double _Complex  csqrtl (long double _Complex); |  | ||||||
| long double _Complex __MINGW_ATTRIB_CONST cprojl (long double _Complex); |  | ||||||
|  |  | ||||||
| #ifdef __GNUC__ |  | ||||||
|  |  | ||||||
| /* double */ |  | ||||||
| __CRT_INLINE double __MINGW_ATTRIB_CONST creal (double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __real__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE double __MINGW_ATTRIB_CONST cimag (double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __imag__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE double _Complex __MINGW_ATTRIB_CONST conj (double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __extension__ ~_Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE  double __MINGW_ATTRIB_CONST carg (double _Complex _Z) |  | ||||||
| { |  | ||||||
|   double res; |  | ||||||
|   __asm__  ("fpatan;" |  | ||||||
| 	   : "=t" (res) : "0" (__real__ _Z), "u" (__imag__ _Z) : "st(1)"); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* float */ |  | ||||||
| __CRT_INLINE float __MINGW_ATTRIB_CONST crealf (float _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __real__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE float __MINGW_ATTRIB_CONST cimagf (float _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __imag__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE float _Complex __MINGW_ATTRIB_CONST conjf (float _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __extension__ ~_Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE  float __MINGW_ATTRIB_CONST cargf (float _Complex _Z) |  | ||||||
| { |  | ||||||
|   float res; |  | ||||||
|   __asm__  ("fpatan;" |  | ||||||
| 	   : "=t" (res) : "0" (__real__ _Z), "u" (__imag__ _Z) : "st(1)"); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* long double */ |  | ||||||
| __CRT_INLINE long double __MINGW_ATTRIB_CONST creall (long double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __real__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long double __MINGW_ATTRIB_CONST cimagl (long double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __imag__ _Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long double _Complex __MINGW_ATTRIB_CONST conjl (long double _Complex _Z) |  | ||||||
| { |  | ||||||
|   return __extension__ ~_Z; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE  long double __MINGW_ATTRIB_CONST cargl (long double _Complex _Z) |  | ||||||
| { |  | ||||||
|   long double res; |  | ||||||
|   __asm__  ("fpatan;" |  | ||||||
| 	   : "=t" (res) : "0" (__real__ _Z), "u" (__imag__ _Z) : "st(1)"); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #endif /* __GNUC__ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* _COMPLEX_H */ |  | ||||||
| @@ -1,53 +0,0 @@ | |||||||
| /* |  | ||||||
|  * conio.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Low level console I/O functions. Pretty please try to use the ANSI |  | ||||||
|  * standard ones if you are writing new code. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_CONIO_H_ |  | ||||||
| #define	_CONIO_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_cgets (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_cprintf (const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_cputs (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_cscanf (char*, ...); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_getch (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_getche (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_kbhit (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_putch (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_ungetch (int); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	getch (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	getche (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	kbhit (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	putch (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	ungetch (int); |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _CONIO_H_ */ |  | ||||||
| @@ -1,275 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * ctype.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Functions for testing character types and converting characters. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _CTYPE_H_ |  | ||||||
| #define _CTYPE_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define	__need_wchar_t |  | ||||||
| #define	__need_wint_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The following flags are used to tell iswctype and _isctype what character |  | ||||||
|  * types you are looking for. |  | ||||||
|  */ |  | ||||||
| #define	_UPPER		0x0001 |  | ||||||
| #define	_LOWER		0x0002 |  | ||||||
| #define	_DIGIT		0x0004 |  | ||||||
| #define	_SPACE		0x0008 /* HT  LF  VT  FF  CR  SP */ |  | ||||||
| #define	_PUNCT		0x0010 |  | ||||||
| #define	_CONTROL	0x0020 |  | ||||||
| /* _BLANK is set for SP and non-ASCII horizontal space chars (eg, |  | ||||||
|    "no-break space", 0xA0, in CP1250) but not for HT.  */ |  | ||||||
| #define	_BLANK		0x0040 |  | ||||||
| #define	_HEX		0x0080 |  | ||||||
| #define	_LEADBYTE	0x8000 |  | ||||||
|  |  | ||||||
| #define	_ALPHA		0x0103 |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isalnum(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isalpha(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iscntrl(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isdigit(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isgraph(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW islower(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isprint(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW ispunct(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isspace(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isupper(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isxdigit(int); |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ |  | ||||||
| int __cdecl __MINGW_NOTHROW isblank (int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _isctype (int, int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* These are the ANSI versions, with correct checking of argument */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW tolower(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW toupper(int); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: The above are not old name type wrappers, but functions exported |  | ||||||
|  * explicitly by MSVCRT/CRTDLL. However, underscored versions are also |  | ||||||
|  * exported. |  | ||||||
|  */ |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| /* |  | ||||||
|  *  These are the cheap non-std versions: The return values are undefined |  | ||||||
|  *  if the argument is not ASCII char or is not of appropriate case |  | ||||||
|  */  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _tolower(int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _toupper(int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Also defined in stdlib.h */ |  | ||||||
| #ifndef MB_CUR_MAX |  | ||||||
| #ifdef __DECLSPEC_SUPPORTED |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
| #  define MB_CUR_MAX __mb_cur_max |  | ||||||
|    __MINGW_IMPORT int __mb_cur_max; |  | ||||||
| # else	/* not __MSVCRT */ |  | ||||||
| #  define MB_CUR_MAX __mb_cur_max_dll |  | ||||||
|    __MINGW_IMPORT int __mb_cur_max_dll; |  | ||||||
| # endif	/* not __MSVCRT */ |  | ||||||
|  |  | ||||||
| #else		/* ! __DECLSPEC_SUPPORTED */ |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|    extern int* _imp____mb_cur_max; |  | ||||||
| #  define MB_CUR_MAX (*_imp____mb_cur_max) |  | ||||||
| # else		/* not __MSVCRT */ |  | ||||||
|    extern int*  _imp____mb_cur_max_dll; |  | ||||||
| #  define MB_CUR_MAX (*_imp____mb_cur_max_dll) |  | ||||||
| # endif 	/* not __MSVCRT */ |  | ||||||
| #endif  	/*  __DECLSPEC_SUPPORTED */ |  | ||||||
| #endif  /* MB_CUR_MAX */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __DECLSPEC_SUPPORTED |  | ||||||
| # if __MSVCRT_VERSION__ <= 0x0700 |  | ||||||
|   __MINGW_IMPORT unsigned short _ctype[]; |  | ||||||
| # endif |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|   __MINGW_IMPORT unsigned short* _pctype; |  | ||||||
| # else /* CRTDLL */ |  | ||||||
|   __MINGW_IMPORT unsigned short* _pctype_dll; |  | ||||||
| # define  _pctype _pctype_dll |  | ||||||
| # endif  |  | ||||||
|  |  | ||||||
| #else		/*  __DECLSPEC_SUPPORTED */ |  | ||||||
| # if __MSVCRT_VERSION__ <= 0x0700 |  | ||||||
|   extern unsigned short** _imp___ctype; |  | ||||||
| # define _ctype (*_imp___ctype) |  | ||||||
| # endif |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|   extern unsigned short** _imp___pctype; |  | ||||||
| # define _pctype (*_imp___pctype) |  | ||||||
| # else /* CRTDLL */ |  | ||||||
|   extern unsigned short** _imp___pctype_dll; |  | ||||||
| # define _pctype (*_imp___pctype_dll) |  | ||||||
| # endif /* CRTDLL */ |  | ||||||
| #endif		/*  __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Use inlines here rather than macros, because macros will upset  |  | ||||||
|  * C++ usage (eg, ::isalnum), and so usually get undefined |  | ||||||
|  * |  | ||||||
|  * According to standard for SB chars, these function are defined only |  | ||||||
|  * for input values representable by unsigned char or EOF. |  | ||||||
|  * Thus, there is no range test. |  | ||||||
|  * This reproduces behaviour of MSVCRT.dll lib implemention for SB chars. |  | ||||||
|  * |  | ||||||
|  * If no MB char support is needed, these can be simplified even |  | ||||||
|  * more by command line define -DMB_CUR_MAX=1.  The compiler will then |  | ||||||
|  * optimise away the constant condition.			 |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #if !(defined (__NO_INLINE__)  || defined (__NO_CTYPE_INLINES) \ |  | ||||||
| 	|| defined (__STRICT_ANSI__)) |  | ||||||
|  |  | ||||||
| /* use  simple lookup if SB locale, else  _isctype()  */ |  | ||||||
| #define __ISCTYPE(c, mask)  (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask)) |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isalpha(int c) {return __ISCTYPE(c, _ALPHA);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iscntrl(int c) {return __ISCTYPE(c, _CONTROL);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isdigit(int c) {return __ISCTYPE(c, _DIGIT);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW islower(int c) {return __ISCTYPE(c, _LOWER);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW ispunct(int c) {return __ISCTYPE(c, _PUNCT);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isspace(int c) {return __ISCTYPE(c, _SPACE);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isupper(int c) {return __ISCTYPE(c, _UPPER);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isxdigit(int c) {return __ISCTYPE(c, _HEX);} |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isblank (int c) |  | ||||||
|   {return (__ISCTYPE(c, _BLANK) || c == '\t');} |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* these reproduce behaviour of lib underscored versions  */ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW _tolower(int c) {return ( c -'A'+'a');} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW _toupper(int c) {return ( c -'a'+'A');} |  | ||||||
|  |  | ||||||
| /* TODO? Is it worth inlining ANSI tolower, toupper? Probably only |  | ||||||
|    if we only want C-locale. */ |  | ||||||
|  |  | ||||||
| #endif /* _NO_CTYPE_INLINES */ |  | ||||||
|  |  | ||||||
| /* Wide character equivalents */ |  | ||||||
|  |  | ||||||
| #ifndef WEOF |  | ||||||
| #define	WEOF	(wchar_t)(0xFFFF) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WCTYPE_T_DEFINED |  | ||||||
| typedef wchar_t wctype_t; |  | ||||||
| #define _WCTYPE_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswalnum(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswalpha(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswascii(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswcntrl(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswctype(wint_t, wctype_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW is_wctype(wint_t, wctype_t);	/* Obsolete! */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswdigit(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswgraph(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswlower(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswprint(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswpunct(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswspace(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswupper(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW iswxdigit(wint_t); |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ || defined __cplusplus |  | ||||||
| int __cdecl __MINGW_NOTHROW iswblank (wint_t); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Older MS docs uses wchar_t for arg and return type, while newer |  | ||||||
|    online MS docs say arg is wint_t and return is int. |  | ||||||
|    ISO C uses wint_t for both.  */ |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW towlower (wint_t); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW towupper (wint_t); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isleadbyte (int); |  | ||||||
|  |  | ||||||
| /* Also in wctype.h */ |  | ||||||
| #if ! (defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \ |  | ||||||
|        || defined(__WCTYPE_INLINES_DEFINED)) |  | ||||||
| #define __WCTYPE_INLINES_DEFINED |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswlower(wint_t wc) {return (iswctype(wc,_LOWER));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswspace(wint_t wc) {return (iswctype(wc,_SPACE));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswupper(wint_t wc) {return (iswctype(wc,_UPPER));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);} |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ || defined __cplusplus |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswblank (wint_t wc) |  | ||||||
|   {return (iswctype(wc,_BLANK) || wc == L'\t');} |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */ |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| int __cdecl __MINGW_NOTHROW __isascii (int); |  | ||||||
| int __cdecl __MINGW_NOTHROW __toascii (int); |  | ||||||
| int __cdecl __MINGW_NOTHROW __iscsymf (int);		/* Valid first character in C symbol */ |  | ||||||
| int __cdecl __MINGW_NOTHROW __iscsym (int);		/* Valid character in C symbol (after first) */ |  | ||||||
|  |  | ||||||
| #if !(defined (__NO_INLINE__) || defined (__NO_CTYPE_INLINES)) |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW __isascii(int c) {return ((c & ~0x7F) == 0);}  |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW __toascii(int c) {return (c & 0x7F);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW __iscsymf(int c) {return (isalpha(c) || (c == '_'));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW __iscsym(int c)  {return  (isalnum(c) || (c == '_'));} |  | ||||||
| #endif /* __NO_CTYPE_INLINES */ |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* Not _CRTIMP */  |  | ||||||
| int __cdecl __MINGW_NOTHROW isascii (int); |  | ||||||
| int __cdecl __MINGW_NOTHROW toascii (int); |  | ||||||
| int __cdecl __MINGW_NOTHROW iscsymf (int); |  | ||||||
| int __cdecl __MINGW_NOTHROW iscsym (int); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _CTYPE_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * dir.h |  | ||||||
|  * |  | ||||||
|  * This file OBSOLESCENT and only provided for backward compatibility. |  | ||||||
|  * Please use io.h instead. |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * Contributors: |  | ||||||
|  *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp> |  | ||||||
|  *             Mumit Khan <khan@xraylith.wisc.edu> |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <io.h> |  | ||||||
|  |  | ||||||
| @@ -1,73 +0,0 @@ | |||||||
| /* |  | ||||||
|  * direct.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Functions for manipulating paths and directories (included from io.h) |  | ||||||
|  * plus functions for setting the current drive. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #ifndef	_DIRECT_H_ |  | ||||||
| #define	_DIRECT_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_wchar_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #include <io.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _DISKFREE_T_DEFINED |  | ||||||
| /* needed by _getdiskfree (also in dos.h) */ |  | ||||||
| struct _diskfree_t { |  | ||||||
| 	unsigned total_clusters; |  | ||||||
| 	unsigned avail_clusters; |  | ||||||
| 	unsigned sectors_per_cluster; |  | ||||||
| 	unsigned bytes_per_sector; |  | ||||||
| }; |  | ||||||
| #define _DISKFREE_T_DEFINED |  | ||||||
| #endif   |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * You really shouldn't be using these. Use the Win32 API functions instead. |  | ||||||
|  * However, it does make it easier to port older code. |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _getdrive (void); |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW _getdrives(void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _chdrive (int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW _getdcwd (int, char*, int); |  | ||||||
| _CRTIMP unsigned __cdecl __MINGW_NOTHROW _getdiskfree (unsigned, struct _diskfree_t *); |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| # define diskfree_t _diskfree_t |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WDIRECT_DEFINED |  | ||||||
| /* wide character versions. Also in wchar.h */ |  | ||||||
| #ifdef __MSVCRT__  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wchdir(const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wgetcwd(wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wgetdcwd(int, wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wmkdir(const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wrmdir(const wchar_t*); |  | ||||||
| #endif	/* __MSVCRT__ */ |  | ||||||
| #define _WDIRECT_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _DIRECT_H_ */ |  | ||||||
| @@ -1,143 +0,0 @@ | |||||||
| /* |  | ||||||
|  * DIRENT.H (formerly DIRLIB.H) |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #ifndef _DIRENT_H_ |  | ||||||
| #define _DIRENT_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #include <io.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| struct dirent |  | ||||||
| { |  | ||||||
| 	long		d_ino;		/* Always zero. */ |  | ||||||
| 	unsigned short	d_reclen;	/* Always zero. */ |  | ||||||
| 	unsigned short	d_namlen;	/* Length of name in d_name. */ |  | ||||||
|  |  | ||||||
| 	/* The following exactly mimic the layout of _finddata_t ... |  | ||||||
| 	 */ |  | ||||||
| 	unsigned	d_type;		/* File attributes */ |  | ||||||
| 	time_t		d_time_create; |  | ||||||
| 	time_t		d_time_access;	/* always midnight local time */ |  | ||||||
| 	time_t		d_time_write; |  | ||||||
| 	_fsize_t	d_size; |  | ||||||
| 	/* |  | ||||||
| 	 * ...so that we may map a union of _finddata_t at the |  | ||||||
| 	 * location of d_type (corresponding to _finddata_t.attrib), |  | ||||||
| 	 * and thus map this directly to the _findfirst/_findnext |  | ||||||
| 	 * returned field. |  | ||||||
| 	 */ |  | ||||||
| 	char		d_name[FILENAME_MAX]; /* File name. */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This opaque data type represents the private structure |  | ||||||
|  * through which a directory stream is referenced. |  | ||||||
|  */ |  | ||||||
| typedef union __dirstream_t DIR; |  | ||||||
|  |  | ||||||
| DIR* __cdecl __MINGW_NOTHROW opendir (const char*); |  | ||||||
| struct dirent* __cdecl __MINGW_NOTHROW readdir (DIR*); |  | ||||||
| int __cdecl __MINGW_NOTHROW closedir (DIR*); |  | ||||||
| void __cdecl __MINGW_NOTHROW rewinddir (DIR*); |  | ||||||
| long __cdecl __MINGW_NOTHROW telldir (DIR*); |  | ||||||
| void __cdecl __MINGW_NOTHROW seekdir (DIR*, long); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* wide char versions */ |  | ||||||
|  |  | ||||||
| struct _wdirent |  | ||||||
| { |  | ||||||
| 	long		d_ino;		/* Always zero. */ |  | ||||||
| 	unsigned short	d_reclen;	/* Always zero. */ |  | ||||||
| 	unsigned short	d_namlen;	/* Length of name in d_name. */ |  | ||||||
|  |  | ||||||
| 	/* The following exactly mimic the layout of _wfinddata_t ... |  | ||||||
| 	 */ |  | ||||||
| 	unsigned	d_type;		/* File attributes */ |  | ||||||
|     	time_t		d_time_create;	/* -1 for FAT file systems */ |  | ||||||
|     	time_t		d_time_access;	/* -1 for FAT file systems */ |  | ||||||
|     	time_t		d_time_write; |  | ||||||
|     	_fsize_t	d_size; |  | ||||||
| 	/* |  | ||||||
| 	 * ...so that we may map a union of _wfinddata_t at the |  | ||||||
| 	 * location of d_type (corresponding to _wfinddata_t.attrib), |  | ||||||
| 	 * and thus map this directly to the _wfindfirst/_wfindnext |  | ||||||
| 	 * returned field. |  | ||||||
| 	 */ |  | ||||||
| 	wchar_t		d_name[FILENAME_MAX]; /* File name. */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This opaque data type represents the private structure |  | ||||||
|  * through which a wide directory stream is referenced. |  | ||||||
|  */ |  | ||||||
| typedef union __wdirstream_t _WDIR; |  | ||||||
|  |  | ||||||
| _WDIR* __cdecl __MINGW_NOTHROW _wopendir (const wchar_t*); |  | ||||||
| struct _wdirent*  __cdecl __MINGW_NOTHROW _wreaddir (_WDIR*); |  | ||||||
| int __cdecl __MINGW_NOTHROW _wclosedir (_WDIR*); |  | ||||||
| void __cdecl __MINGW_NOTHROW _wrewinddir (_WDIR*); |  | ||||||
| long __cdecl __MINGW_NOTHROW _wtelldir (_WDIR*); |  | ||||||
| void __cdecl __MINGW_NOTHROW _wseekdir (_WDIR*, long); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if defined(_BSD_SOURCE) || defined(_WIN32) |  | ||||||
| /* |  | ||||||
|  * BSD-ish systems define manifest constants for the d_type field; |  | ||||||
|  * although probably only DT_REG and DT_DIR are useful on Win32, we |  | ||||||
|  * try to map them as best we can from the _finddata.attrib field. |  | ||||||
|  * |  | ||||||
|  * The relevant Microsoft manifest values are: |  | ||||||
|  * |  | ||||||
|  *   _A_NORMAL	(0x0000)	normal file: best fit for DT_REG |  | ||||||
|  *   _A_RDONLY	(0x0001)	read-only: no BSD d_type equivalent |  | ||||||
|  *   _A_HIDDEN	(0x0002)	hidden entity: no BSD equivalent |  | ||||||
|  *   _A_SYSTEM	(0x0004)	system entity: no BSD equivalent |  | ||||||
|  *   _A_VOLID	(0x0008)	volume label: no BSD equivalent |  | ||||||
|  *   _A_SUBDIR	(0x0010)	directory: best fit for DT_DIR |  | ||||||
|  *   _A_ARCH	(0x0020)	"dirty": no BSD equivalent |  | ||||||
|  * |  | ||||||
|  * Thus, we may immediately define: |  | ||||||
|  */ |  | ||||||
| #define DT_REG   	_A_NORMAL |  | ||||||
| #define DT_DIR   	_A_SUBDIR |  | ||||||
|  |  | ||||||
| /* The remaining BSD d_type manifest values have no Win32 equivalents; |  | ||||||
|  * we will define them artificially, and then we will ensure that our |  | ||||||
|  * opendir()/readdir() implementation will never assign them; (we will |  | ||||||
|  * substitute DT_UNKNOWN, but it would be unwise to simply make these |  | ||||||
|  * equivalent to that, since an application is likely to simply check |  | ||||||
|  * for d_type equal to any one of these defined types, and thus could |  | ||||||
|  * mistakenly identify DT_UNKNOWN as being of the tested type): |  | ||||||
|  */ |  | ||||||
| #define DT_BLK   	(((_A_SUBDIR) << 4) | DT_UNKNOWN) |  | ||||||
| #define DT_CHR   	(((_A_SUBDIR) << 5) | DT_UNKNOWN) |  | ||||||
| #define DT_FIFO  	(((_A_SUBDIR) << 6) | DT_UNKNOWN) |  | ||||||
| #define DT_LNK   	(((_A_SUBDIR) << 7) | DT_UNKNOWN) |  | ||||||
| #define DT_SOCK  	(((_A_SUBDIR) << 8) | DT_UNKNOWN) |  | ||||||
|  |  | ||||||
| /* No file system entity can ever be simultaneously a volume label |  | ||||||
|  * and a directory; we will exploit this to unambiguously define: |  | ||||||
|  */ |  | ||||||
| #define DT_UNKNOWN	(_A_VOLID | _A_SUBDIR) |  | ||||||
|  |  | ||||||
| #endif  /* _BSD_SOURCE */ |  | ||||||
| #endif	/* ! RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* !defined _DIRENT_H_ */ |  | ||||||
| @@ -1,89 +0,0 @@ | |||||||
| /* |  | ||||||
|  * dos.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * DOS-specific functions and structures. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_DOS_H_ |  | ||||||
| #define	_DOS_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_wchar_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* For DOS file attributes */ |  | ||||||
| #include <io.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */ |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
| extern unsigned int *_imp___basemajor_dll; |  | ||||||
| extern unsigned int *_imp___baseminor_dll; |  | ||||||
| extern unsigned int *_imp___baseversion_dll; |  | ||||||
| extern unsigned int *_imp___osmajor_dll; |  | ||||||
| extern unsigned int *_imp___osminor_dll; |  | ||||||
| extern unsigned int *_imp___osmode_dll; |  | ||||||
|  |  | ||||||
| #define _basemajor (*_imp___basemajor_dll) |  | ||||||
| #define _baseminor (*_imp___baseminor_dll) |  | ||||||
| #define _baseversion (*_imp___baseversion_dll) |  | ||||||
| #define _osmajor (*_imp___osmajor_dll) |  | ||||||
| #define _osminor (*_imp___osminor_dll) |  | ||||||
| #define _osmode (*_imp___osmode_dll) |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT unsigned int _basemajor_dll; |  | ||||||
| __MINGW_IMPORT unsigned int _baseminor_dll; |  | ||||||
| __MINGW_IMPORT unsigned int _baseversion_dll; |  | ||||||
| __MINGW_IMPORT unsigned int _osmajor_dll; |  | ||||||
| __MINGW_IMPORT unsigned int _osminor_dll; |  | ||||||
| __MINGW_IMPORT unsigned int _osmode_dll; |  | ||||||
|  |  | ||||||
| #define _basemajor _basemajor_dll |  | ||||||
| #define _baseminor _baseminor_dll |  | ||||||
| #define _baseversion _baseversion_dll |  | ||||||
| #define _osmajor _osmajor_dll |  | ||||||
| #define _osminor _osminor_dll |  | ||||||
| #define _osmode _osmode_dll |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
| #endif /* ! __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef _DISKFREE_T_DEFINED |  | ||||||
| /* needed by _getdiskfree (also in direct.h) */ |  | ||||||
| struct _diskfree_t { |  | ||||||
| 	unsigned total_clusters; |  | ||||||
| 	unsigned avail_clusters; |  | ||||||
| 	unsigned sectors_per_cluster; |  | ||||||
| 	unsigned bytes_per_sector; |  | ||||||
| }; |  | ||||||
| #define _DISKFREE_T_DEFINED |  | ||||||
| #endif   |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned __cdecl __MINGW_NOTHROW _getdiskfree (unsigned, struct _diskfree_t *); |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| # define diskfree_t _diskfree_t |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _DOS_H_ */ |  | ||||||
| @@ -1,101 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * errno.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Error numbers and access to error reporting. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _ERRNO_H_ |  | ||||||
| #define	_ERRNO_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Error numbers. |  | ||||||
|  * TODO: Can't be sure of some of these assignments, I guessed from the |  | ||||||
|  * names given by strerror and the defines in the Cygnus errno.h. A lot |  | ||||||
|  * of the names from the Cygnus errno.h are not represented, and a few |  | ||||||
|  * of the descriptions returned by strerror do not obviously match |  | ||||||
|  * their error naming. |  | ||||||
|  */ |  | ||||||
| #define EPERM		1	/* Operation not permitted */ |  | ||||||
| #define	ENOFILE		2	/* No such file or directory */ |  | ||||||
| #define	ENOENT		2 |  | ||||||
| #define	ESRCH		3	/* No such process */ |  | ||||||
| #define	EINTR		4	/* Interrupted function call */ |  | ||||||
| #define	EIO		5	/* Input/output error */ |  | ||||||
| #define	ENXIO		6	/* No such device or address */ |  | ||||||
| #define	E2BIG		7	/* Arg list too long */ |  | ||||||
| #define	ENOEXEC		8	/* Exec format error */ |  | ||||||
| #define	EBADF		9	/* Bad file descriptor */ |  | ||||||
| #define	ECHILD		10	/* No child processes */ |  | ||||||
| #define	EAGAIN		11	/* Resource temporarily unavailable */ |  | ||||||
| #define	ENOMEM		12	/* Not enough space */ |  | ||||||
| #define	EACCES		13	/* Permission denied */ |  | ||||||
| #define	EFAULT		14	/* Bad address */ |  | ||||||
| /* 15 - Unknown Error */ |  | ||||||
| #define	EBUSY		16	/* strerror reports "Resource device" */ |  | ||||||
| #define	EEXIST		17	/* File exists */ |  | ||||||
| #define	EXDEV		18	/* Improper link (cross-device link?) */ |  | ||||||
| #define	ENODEV		19	/* No such device */ |  | ||||||
| #define	ENOTDIR		20	/* Not a directory */ |  | ||||||
| #define	EISDIR		21	/* Is a directory */ |  | ||||||
| #define	EINVAL		22	/* Invalid argument */ |  | ||||||
| #define	ENFILE		23	/* Too many open files in system */ |  | ||||||
| #define	EMFILE		24	/* Too many open files */ |  | ||||||
| #define	ENOTTY		25	/* Inappropriate I/O control operation */ |  | ||||||
| /* 26 - Unknown Error */ |  | ||||||
| #define	EFBIG		27	/* File too large */ |  | ||||||
| #define	ENOSPC		28	/* No space left on device */ |  | ||||||
| #define	ESPIPE		29	/* Invalid seek (seek on a pipe?) */ |  | ||||||
| #define	EROFS		30	/* Read-only file system */ |  | ||||||
| #define	EMLINK		31	/* Too many links */ |  | ||||||
| #define	EPIPE		32	/* Broken pipe */ |  | ||||||
| #define	EDOM		33	/* Domain error (math functions) */ |  | ||||||
| #define	ERANGE		34	/* Result too large (possibly too small) */ |  | ||||||
| /* 35 - Unknown Error */ |  | ||||||
| #define	EDEADLOCK	36	/* Resource deadlock avoided (non-Cyg) */ |  | ||||||
| #define	EDEADLK		36 |  | ||||||
| /* 37 - Unknown Error */ |  | ||||||
| #define	ENAMETOOLONG	38	/* Filename too long (91 in Cyg?) */ |  | ||||||
| #define	ENOLCK		39	/* No locks available (46 in Cyg?) */ |  | ||||||
| #define	ENOSYS		40	/* Function not implemented (88 in Cyg?) */ |  | ||||||
| #define	ENOTEMPTY	41	/* Directory not empty (90 in Cyg?) */ |  | ||||||
| #define	EILSEQ		42	/* Illegal byte sequence */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: ENAMETOOLONG and ENOTEMPTY conflict with definitions in the |  | ||||||
|  *       sockets.h header provided with windows32api-0.1.2. |  | ||||||
|  *       You should go and put an #if 0 ... #endif around the whole block |  | ||||||
|  *       of errors (look at the comment above them). |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Definitions of errno. For _doserrno, sys_nerr and * sys_errlist, see |  | ||||||
|  * stdlib.h. |  | ||||||
|  */ |  | ||||||
| #ifdef _UWIN |  | ||||||
| #undef errno |  | ||||||
| extern int errno; |  | ||||||
| #else |  | ||||||
| _CRTIMP int* __cdecl __MINGW_NOTHROW _errno(void); |  | ||||||
| #define	errno		(*_errno()) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _ERRNO_H_ */ |  | ||||||
| @@ -1,115 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * excpt.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Support for operating system level structured exception handling. |  | ||||||
|  * |  | ||||||
|  * NOTE: This is very preliminary stuff. I am also pretty sure it is |  | ||||||
|  *       completely Intel specific. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_EXCPT_H_ |  | ||||||
| #define	_EXCPT_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #include <windef.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: The constants structs and typedefs below should be defined in the |  | ||||||
|  *       Win32 API headers. |  | ||||||
|  */ |  | ||||||
| #define	EH_NONCONTINUABLE	0x01 |  | ||||||
| #define	EH_UNWINDING		0x02 |  | ||||||
| #define	EH_EXIT_UNWIND		0x04 |  | ||||||
| #define	EH_STACK_INVALID	0x08 |  | ||||||
| #define	EH_NESTED_CALL		0x10 |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| typedef enum { |  | ||||||
| 	ExceptionContinueExecution, |  | ||||||
| 	ExceptionContinueSearch, |  | ||||||
| 	ExceptionNestedException, |  | ||||||
| 	ExceptionCollidedUnwind |  | ||||||
| } EXCEPTION_DISPOSITION; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * End of stuff that should be in the Win32 API files. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The type of function that is expected as an exception handler to be |  | ||||||
|  * installed with __try1. |  | ||||||
|  */ |  | ||||||
| typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER) |  | ||||||
| 		(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This is not entirely necessary, but it is the structure installed by |  | ||||||
|  * the __try1 primitive below. |  | ||||||
|  */ |  | ||||||
| typedef struct _EXCEPTION_REGISTRATION |  | ||||||
| { |  | ||||||
| 	struct _EXCEPTION_REGISTRATION*	prev; |  | ||||||
| 	PEXCEPTION_HANDLER		handler; |  | ||||||
| } EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION; |  | ||||||
|  |  | ||||||
| typedef EXCEPTION_REGISTRATION EXCEPTION_REGISTRATION_RECORD; |  | ||||||
| typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * A macro which installs the supplied exception handler. |  | ||||||
|  * Push the pointer to the new handler onto the stack, |  | ||||||
|  * then push the pointer to the old registration structure (at fs:0) |  | ||||||
|  * onto the stack, then put a pointer to the new registration |  | ||||||
|  * structure (i.e. the current stack pointer) at fs:0. |  | ||||||
|  */ |  | ||||||
| #ifdef _WIN64 |  | ||||||
| # define __try1(pHandler) \ |  | ||||||
| 	__asm__ __volatile__ ("pushq %0;pushq %%gs:0;movq %%rsp,%%gs:0;" : : \ |  | ||||||
| 	"g" (pHandler)); |  | ||||||
| #else |  | ||||||
| # define __try1(pHandler) \ |  | ||||||
| 	__asm__ __volatile__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : \ |  | ||||||
| 	"g" (pHandler)); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * A macro which (despite its name) *removes* an installed |  | ||||||
|  * exception handler. Should be used only in conjunction with the above |  | ||||||
|  * install routine __try1. |  | ||||||
|  * Move the pointer to the old reg. struct (at the current stack |  | ||||||
|  * position) to fs:0, replacing the pointer we installed above, |  | ||||||
|  * then add 8 to the stack pointer to get rid of the space we |  | ||||||
|  * used when we pushed on our new reg. struct above. Notice that |  | ||||||
|  * the stack must be in the exact state at this point that it was |  | ||||||
|  * after we did __try1 or this will smash things. |  | ||||||
|  */ |  | ||||||
| #ifdef _WIN64 |  | ||||||
| # define	__except1	\ |  | ||||||
| 	__asm__ __volatile__ ("movq (%%rsp),%%rax;movq %%rax,%%gs:0;addq \ |  | ||||||
| 	$16,%%rsp;" : : : "%rax"); |  | ||||||
| #else |  | ||||||
| # define __except1	\ |  | ||||||
| 	__asm__ __volatile__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl \ |  | ||||||
| 	$8,%%esp;" : : : "%eax"); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* _EXCPT_H_ not defined */ |  | ||||||
| @@ -1,75 +0,0 @@ | |||||||
| /* |  | ||||||
|  * fcntl.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Access constants for _open. Note that the permissions constants are |  | ||||||
|  * in sys/stat.h (ick). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #ifndef _FCNTL_H_ |  | ||||||
| #define _FCNTL_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * It appears that fcntl.h should include io.h for compatibility... |  | ||||||
|  */ |  | ||||||
| #include <io.h> |  | ||||||
|  |  | ||||||
| /* Specifiy one of these flags to define the access mode. */ |  | ||||||
| #define	_O_RDONLY	0 |  | ||||||
| #define _O_WRONLY	1 |  | ||||||
| #define _O_RDWR		2 |  | ||||||
|  |  | ||||||
| /* Mask for access mode bits in the _open flags. */ |  | ||||||
| #define _O_ACCMODE	(_O_RDONLY|_O_WRONLY|_O_RDWR) |  | ||||||
|  |  | ||||||
| #define	_O_APPEND	0x0008	/* Writes will add to the end of the file. */ |  | ||||||
|  |  | ||||||
| #define	_O_RANDOM	0x0010 |  | ||||||
| #define	_O_SEQUENTIAL	0x0020 |  | ||||||
| #define	_O_TEMPORARY	0x0040	/* Make the file dissappear after closing. |  | ||||||
| 				 * WARNING: Even if not created by _open! */ |  | ||||||
| #define	_O_NOINHERIT	0x0080 |  | ||||||
|  |  | ||||||
| #define	_O_CREAT	0x0100	/* Create the file if it does not exist. */ |  | ||||||
| #define	_O_TRUNC	0x0200	/* Truncate the file if it does exist. */ |  | ||||||
| #define	_O_EXCL		0x0400	/* Open only if the file does not exist. */ |  | ||||||
|  |  | ||||||
| #define _O_SHORT_LIVED  0x1000 |  | ||||||
|  |  | ||||||
| /* NOTE: Text is the default even if the given _O_TEXT bit is not on. */ |  | ||||||
| #define	_O_TEXT		0x4000	/* CR-LF in file becomes LF in memory. */ |  | ||||||
| #define	_O_BINARY	0x8000	/* Input and output is not translated. */ |  | ||||||
| #define	_O_RAW		_O_BINARY |  | ||||||
|  |  | ||||||
| #if (__MSVCRT_VERSION__ >= 0x0800) |  | ||||||
| #define _O_WTEXT	0x10000 |  | ||||||
| #define _O_U16TEXT	0x20000 |  | ||||||
| #define _O_U8TEXT	0x40000 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
|  |  | ||||||
| /* POSIX/Non-ANSI names for increased portability */ |  | ||||||
| #define	O_RDONLY	_O_RDONLY |  | ||||||
| #define O_WRONLY	_O_WRONLY |  | ||||||
| #define O_RDWR		_O_RDWR |  | ||||||
| #define O_ACCMODE	_O_ACCMODE |  | ||||||
| #define	O_APPEND	_O_APPEND |  | ||||||
| #define	O_CREAT		_O_CREAT |  | ||||||
| #define	O_TRUNC		_O_TRUNC |  | ||||||
| #define	O_EXCL		_O_EXCL |  | ||||||
| #define	O_TEXT		_O_TEXT |  | ||||||
| #define	O_BINARY	_O_BINARY |  | ||||||
| #define	O_TEMPORARY	_O_TEMPORARY |  | ||||||
| #define O_NOINHERIT	_O_NOINHERIT |  | ||||||
| #define O_SEQUENTIAL	_O_SEQUENTIAL |  | ||||||
| #define	O_RANDOM	_O_RANDOM |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _FCNTL_H_ */ |  | ||||||
| @@ -1,107 +0,0 @@ | |||||||
| #ifndef _FENV_H_ |  | ||||||
| #define _FENV_H_ |  | ||||||
|  |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* FPU status word exception flags */ |  | ||||||
| #define FE_INVALID	0x01 |  | ||||||
| #define FE_DENORMAL	0x02 |  | ||||||
| #define FE_DIVBYZERO	0x04 |  | ||||||
| #define FE_OVERFLOW	0x08 |  | ||||||
| #define FE_UNDERFLOW	0x10 |  | ||||||
| #define FE_INEXACT	0x20 |  | ||||||
| #define FE_ALL_EXCEPT (FE_INVALID | FE_DENORMAL | FE_DIVBYZERO \ |  | ||||||
| 		       | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT) |  | ||||||
|  |  | ||||||
| /* FPU control word rounding flags */ |  | ||||||
| #define FE_TONEAREST	0x0000 |  | ||||||
| #define FE_DOWNWARD	0x0400 |  | ||||||
| #define FE_UPWARD	0x0800 |  | ||||||
| #define FE_TOWARDZERO	0x0c00 |  | ||||||
|  |  | ||||||
| /* The MXCSR exception flags are the same as the |  | ||||||
|    FE flags. */ |  | ||||||
| #define __MXCSR_EXCEPT_FLAG_SHIFT 0 |  | ||||||
|  |  | ||||||
| /* How much to shift FE status word exception flags |  | ||||||
|    to get the MXCSR exeptions masks,  */ |  | ||||||
| #define __MXCSR_EXCEPT_MASK_SHIFT 7 |  | ||||||
|  |  | ||||||
| /* How much to shift FE control word rounding flags |  | ||||||
|    to get MXCSR rounding flags,  */ |  | ||||||
| #define __MXCSR_ROUND_FLAG_SHIFT 3 |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| /* |  | ||||||
|   For now, support only for the basic abstraction of flags that are |  | ||||||
|   either set or clear. fexcept_t could be  structure that holds more |  | ||||||
|   info about the fp environment. |  | ||||||
| */ |  | ||||||
| typedef unsigned short fexcept_t; |  | ||||||
|  |  | ||||||
| /* This 32-byte struct represents the entire floating point |  | ||||||
|    environment as stored by fnstenv or fstenv, augmented by |  | ||||||
|    the  contents of the MXCSR register, as stored by stmxcsr |  | ||||||
|    (if CPU supports it). */ |  | ||||||
| typedef struct |  | ||||||
| { |  | ||||||
|   unsigned short __control_word; |  | ||||||
|   unsigned short __unused0; |  | ||||||
|   unsigned short __status_word; |  | ||||||
|   unsigned short __unused1; |  | ||||||
|   unsigned short __tag_word; |  | ||||||
|   unsigned short __unused2;   |  | ||||||
|   unsigned int	 __ip_offset;    /* instruction pointer offset */ |  | ||||||
|   unsigned short __ip_selector;   |  | ||||||
|   unsigned short __opcode; |  | ||||||
|   unsigned int	 __data_offset; |  | ||||||
|   unsigned short __data_selector; |  | ||||||
|   unsigned short  __unused3; |  | ||||||
|   unsigned int __mxcsr; /* contents of the MXCSR register  */ |  | ||||||
| } fenv_t; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /*The C99 standard (7.6.9) allows us to define implementation-specific macros for |  | ||||||
|   different fp environments */ |  | ||||||
|    |  | ||||||
| /* The default Intel x87 floating point environment (64-bit mantissa) */ |  | ||||||
| #define FE_PC64_ENV ((const fenv_t *)-1) |  | ||||||
|  |  | ||||||
| /* The floating point environment set by MSVCRT _fpreset (53-bit mantissa) */ |  | ||||||
| #define FE_PC53_ENV ((const fenv_t *)-2) |  | ||||||
|  |  | ||||||
| /* The FE_DFL_ENV macro is required by standard. |  | ||||||
|   fesetenv will use the environment set at app startup.*/ |  | ||||||
| #define FE_DFL_ENV ((const fenv_t *) 0) |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /*TODO: Some of these could be inlined */ |  | ||||||
| /* 7.6.2 Exception */ |  | ||||||
|  |  | ||||||
| extern int __cdecl __MINGW_NOTHROW feclearexcept (int); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fegetexceptflag (fexcept_t * flagp, int excepts); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW feraiseexcept (int excepts ); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fesetexceptflag (const fexcept_t *, int); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fetestexcept (int excepts); |  | ||||||
|  |  | ||||||
| /* 7.6.3 Rounding */ |  | ||||||
|  |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fegetround (void); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fesetround (int mode); |  | ||||||
|  |  | ||||||
| /* 7.6.4 Environment */ |  | ||||||
|  |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fegetenv (fenv_t * envp); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW fesetenv (const fenv_t * ); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW feupdateenv (const fenv_t *); |  | ||||||
| extern int __cdecl __MINGW_NOTHROW feholdexcept (fenv_t *); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif /* ndef _FENV_H */ |  | ||||||
| @@ -1,169 +0,0 @@ | |||||||
| #ifndef _MINGW_FLOAT_H_ |  | ||||||
| /*  |  | ||||||
|  * float.h |  | ||||||
|  * |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Constants related to floating point arithmetic. |  | ||||||
|  * |  | ||||||
|  * Also included here are some non-ANSI bits for accessing the floating |  | ||||||
|  * point controller. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define _MINGW_FLOAT_H_ |  | ||||||
| /* |  | ||||||
|  * NOTE: |  | ||||||
|  * |  | ||||||
|  * GCC provides float.h, but it doesn't include the non-standard stuff for |  | ||||||
|  * accessing the fp controller.  We parse the GCC-supplied header, for its |  | ||||||
|  * standard content, and then define the MS-specific extensions here. |  | ||||||
|  * |  | ||||||
|  * In a MinGW standard Win32 hosted environment, this should be the float.h |  | ||||||
|  * found by a system include path search, but this can't be guaranteed; for |  | ||||||
|  * a cross-compiler setup, the GCC-supplied header, which is guarded by the |  | ||||||
|  * _FLOAT_H___ macro, may be found first, thus... |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #if !defined(_FLOAT_H___) && !defined(__FLOAT_H) |  | ||||||
|  |  | ||||||
|  /* |  | ||||||
|   * ...when we didn't find the GCC-supplied header first, we want to pull |  | ||||||
|   * it in now; include_next should achieve this, (and we must rely on the |  | ||||||
|   * GCC header maintainers to extend us the same courtesy, to get this one |  | ||||||
|   * pulled in, when the GCC-supplied header is found first). |  | ||||||
|   * |  | ||||||
|   */ |  | ||||||
| # include_next <float.h> |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Functions and definitions for controlling the FPU. |  | ||||||
|  */ |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| /* TODO: These constants are only valid for x86 machines */ |  | ||||||
|  |  | ||||||
| /* Control word masks for unMask */ |  | ||||||
| #define	_MCW_EM		0x0008001F	/* Error masks */ |  | ||||||
| #define	_MCW_IC		0x00040000	/* Infinity */ |  | ||||||
| #define	_MCW_RC		0x00000300	/* Rounding */ |  | ||||||
| #define	_MCW_PC		0x00030000	/* Precision */ |  | ||||||
|  |  | ||||||
| /* Control word values for unNew (use with related unMask above) */ |  | ||||||
| #define	_EM_INVALID	0x00000010 |  | ||||||
| #define	_EM_DENORMAL	0x00080000 |  | ||||||
| #define	_EM_ZERODIVIDE	0x00000008 |  | ||||||
| #define	_EM_OVERFLOW	0x00000004 |  | ||||||
| #define	_EM_UNDERFLOW	0x00000002 |  | ||||||
| #define	_EM_INEXACT	0x00000001 |  | ||||||
| #define	_IC_AFFINE	0x00040000 |  | ||||||
| #define	_IC_PROJECTIVE	0x00000000 |  | ||||||
| #define	_RC_CHOP	0x00000300 |  | ||||||
| #define	_RC_UP		0x00000200 |  | ||||||
| #define	_RC_DOWN	0x00000100 |  | ||||||
| #define	_RC_NEAR	0x00000000 |  | ||||||
| #define	_PC_24		0x00020000 |  | ||||||
| #define	_PC_53		0x00010000 |  | ||||||
| #define	_PC_64		0x00000000 |  | ||||||
|  |  | ||||||
| /* These are also defined in Mingw math.h, needed to work around |  | ||||||
|    GCC build issues.  */ |  | ||||||
| /* Return values for fpclass. */ |  | ||||||
| #ifndef __MINGW_FPCLASS_DEFINED |  | ||||||
| #define __MINGW_FPCLASS_DEFINED 1 |  | ||||||
| #define	_FPCLASS_SNAN	0x0001	/* Signaling "Not a Number" */ |  | ||||||
| #define	_FPCLASS_QNAN	0x0002	/* Quiet "Not a Number" */ |  | ||||||
| #define	_FPCLASS_NINF	0x0004	/* Negative Infinity */ |  | ||||||
| #define	_FPCLASS_NN	0x0008	/* Negative Normal */ |  | ||||||
| #define	_FPCLASS_ND	0x0010	/* Negative Denormal */ |  | ||||||
| #define	_FPCLASS_NZ	0x0020	/* Negative Zero */ |  | ||||||
| #define	_FPCLASS_PZ	0x0040	/* Positive Zero */ |  | ||||||
| #define	_FPCLASS_PD	0x0080	/* Positive Denormal */ |  | ||||||
| #define	_FPCLASS_PN	0x0100	/* Positive Normal */ |  | ||||||
| #define	_FPCLASS_PINF	0x0200	/* Positive Infinity */ |  | ||||||
| #endif /* __MINGW_FPCLASS_DEFINED */ |  | ||||||
|  |  | ||||||
| /* invalid subconditions (_SW_INVALID also set) */ |  | ||||||
| #define _SW_UNEMULATED		0x0040  /* unemulated instruction */ |  | ||||||
| #define _SW_SQRTNEG		0x0080  /* square root of a neg number */ |  | ||||||
| #define _SW_STACKOVERFLOW	0x0200  /* FP stack overflow */ |  | ||||||
| #define _SW_STACKUNDERFLOW	0x0400  /* FP stack underflow */ |  | ||||||
|  |  | ||||||
| /*  Floating point error signals and return codes */ |  | ||||||
| #define _FPE_INVALID		0x81 |  | ||||||
| #define _FPE_DENORMAL		0x82 |  | ||||||
| #define _FPE_ZERODIVIDE		0x83 |  | ||||||
| #define _FPE_OVERFLOW		0x84 |  | ||||||
| #define _FPE_UNDERFLOW		0x85 |  | ||||||
| #define _FPE_INEXACT		0x86 |  | ||||||
| #define _FPE_UNEMULATED		0x87 |  | ||||||
| #define _FPE_SQRTNEG		0x88 |  | ||||||
| #define _FPE_STACKOVERFLOW	0x8a |  | ||||||
| #define _FPE_STACKUNDERFLOW	0x8b |  | ||||||
| #define _FPE_EXPLICITGEN	0x8c    /* raise( SIGFPE ); */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask), |  | ||||||
|  * i.e. change the bits in unMask to have the values they have in unNew, |  | ||||||
|  * leaving other bits unchanged. */ |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _controlfp (unsigned int unNew, unsigned int unMask); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _control87 (unsigned int unNew, unsigned int unMask); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _clearfp (void);	/* Clear the FPU status word */ |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _statusfp (void);	/* Report the FPU status word */ |  | ||||||
| #define		_clear87	_clearfp |  | ||||||
| #define		_status87	_statusfp |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|    MSVCRT.dll _fpreset initializes the control register to 0x27f, |  | ||||||
|    the status register to zero and the tag word to 0FFFFh. |  | ||||||
|    This differs from asm instruction finit/fninit which set control |  | ||||||
|    word to 0x37f (64 bit mantissa precison rather than 53 bit). |  | ||||||
|    By default, the mingw version of _fpreset sets fp control as |  | ||||||
|    per fninit. To use the MSVCRT.dll _fpreset, include CRT_fp8.o when |  | ||||||
|    building your application.	  |  | ||||||
| */ |  | ||||||
| void __cdecl __MINGW_NOTHROW _fpreset (void); |  | ||||||
| void __cdecl __MINGW_NOTHROW fpreset (void); |  | ||||||
|  |  | ||||||
| /* Global 'variable' for the current floating point error code. */ |  | ||||||
| _CRTIMP int * __cdecl __MINGW_NOTHROW __fpecode(void); |  | ||||||
| #define	_fpecode	(*(__fpecode())) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * IEEE recommended functions.  MS puts them in float.h |  | ||||||
|  * but they really belong in math.h. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW _chgsign	(double); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW _copysign (double, double); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW _logb (double); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW _nextafter (double, double); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW _scalb (double, long); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _finite (double); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _fpclass (double); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _isnan (double); |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #endif /* _MINGW_FLOAT_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,111 +0,0 @@ | |||||||
| #ifndef __GETOPT_H__ |  | ||||||
| /*  |  | ||||||
|  * getopt.h |  | ||||||
|  * |  | ||||||
|  * $Id$ |  | ||||||
|  * |  | ||||||
|  * Defines constants and function prototypes required to implement |  | ||||||
|  * the `getopt', `getopt_long' and `getopt_long_only' APIs. |  | ||||||
|  * |  | ||||||
|  * This file is part of the MinGW32 package set. |  | ||||||
|  * |  | ||||||
|  * Contributed by Keith Marshall <keithmarshall@users.sourceforge.net> |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  * This source code is offered for use in the public domain. You may |  | ||||||
|  * use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  * This code is distributed in the hope that it will be useful but |  | ||||||
|  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  * DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  * $Revision$ |  | ||||||
|  * $Author$ |  | ||||||
|  * $Date$ |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define __GETOPT_H__ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| extern int optind;		/* index of first non-option in argv      */ |  | ||||||
| extern int optopt;		/* single option character, as parsed     */ |  | ||||||
| extern int opterr;		/* flag to enable built-in diagnostics... */ |  | ||||||
| 				/* (user may set to zero, to suppress)    */ |  | ||||||
|  |  | ||||||
| extern char *optarg;		/* pointer to argument of current option  */ |  | ||||||
|  |  | ||||||
| extern int getopt( int, char * const [], const char * ); |  | ||||||
|  |  | ||||||
| #ifdef _BSD_SOURCE |  | ||||||
| /* |  | ||||||
|  * BSD adds the non-standard `optreset' feature, for reinitialisation |  | ||||||
|  * of `getopt' parsing.  We support this feature, for applications which |  | ||||||
|  * proclaim their BSD heritage, before including this header; however, |  | ||||||
|  * to maintain portability, developers are advised to avoid it. |  | ||||||
|  */ |  | ||||||
| # define optreset  __mingw_optreset |  | ||||||
|  |  | ||||||
| extern int optreset; |  | ||||||
| #endif |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| /* |  | ||||||
|  * POSIX requires the `getopt' API to be specified in `unistd.h'; |  | ||||||
|  * thus, `unistd.h' includes this header.  However, we do not want |  | ||||||
|  * to expose the `getopt_long' or `getopt_long_only' APIs, when |  | ||||||
|  * included in this manner.  Thus, close the standard __GETOPT_H__ |  | ||||||
|  * declarations block, and open an additional __GETOPT_LONG_H__ |  | ||||||
|  * specific block, only when *not* __UNISTD_H_SOURCED__, in which |  | ||||||
|  * to declare the extended API. |  | ||||||
|  */ |  | ||||||
| #endif /* !defined(__GETOPT_H__) */ |  | ||||||
| #if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) |  | ||||||
| #define __GETOPT_LONG_H__ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| struct option		/* specification for a long form option...	*/ |  | ||||||
| { |  | ||||||
|   const char *name;		/* option name, without leading hyphens */ |  | ||||||
|   int         has_arg;		/* does it take an argument?		*/ |  | ||||||
|   int        *flag;		/* where to save its status, or NULL	*/ |  | ||||||
|   int         val;		/* its associated status value		*/ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| enum    		/* permitted values for its `has_arg' field...	*/ |  | ||||||
| { |  | ||||||
|   no_argument = 0,      	/* option never takes an argument	*/ |  | ||||||
|   required_argument,		/* option always requires an argument	*/ |  | ||||||
|   optional_argument		/* option may take an argument		*/ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| extern int getopt_long( int, char * const [], const char *, const struct option *, int * ); |  | ||||||
| extern int getopt_long_only( int, char * const [], const char *, const struct option *, int * ); |  | ||||||
| /* |  | ||||||
|  * Previous MinGW implementation had... |  | ||||||
|  */ |  | ||||||
| #ifndef HAVE_DECL_GETOPT |  | ||||||
| /* |  | ||||||
|  * ...for the long form API only; keep this for compatibility. |  | ||||||
|  */ |  | ||||||
| # define HAVE_DECL_GETOPT	1 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */ |  | ||||||
| /* $RCSfile$Revision$: end of file */ |  | ||||||
| @@ -1,298 +0,0 @@ | |||||||
| /* 7.8 Format conversion of integer types <inttypes.h> */ |  | ||||||
|  |  | ||||||
| #ifndef _INTTYPES_H_ |  | ||||||
| #define _INTTYPES_H_ |  | ||||||
|  |  | ||||||
| #include <_mingw.h> |  | ||||||
| #include <stdint.h> |  | ||||||
| #define __need_wchar_t |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern	"C"	{ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| typedef struct { |  | ||||||
| 	intmax_t quot; |  | ||||||
| 	intmax_t rem; |  | ||||||
| 	} imaxdiv_t; |  | ||||||
|  |  | ||||||
| #if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) |  | ||||||
|  |  | ||||||
| /* 7.8.1 Macros for format specifiers |  | ||||||
|  *  |  | ||||||
|  * MS runtime does not yet understand C9x standard "ll" |  | ||||||
|  * length specifier. It appears to treat "ll" as "l". |  | ||||||
|  * The non-standard I64 length specifier causes warning in GCC, |  | ||||||
|  * but understood by MS runtime functions. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* fprintf macros for signed types */ |  | ||||||
| #define PRId8 "d" |  | ||||||
| #define PRId16 "d" |  | ||||||
| #define PRId32 "d" |  | ||||||
| #define PRId64 "I64d" |  | ||||||
|  |  | ||||||
| #define PRIdLEAST8 "d" |  | ||||||
| #define PRIdLEAST16 "d" |  | ||||||
| #define PRIdLEAST32 "d" |  | ||||||
| #define PRIdLEAST64 "I64d" |  | ||||||
|  |  | ||||||
| #define PRIdFAST8 "d" |  | ||||||
| #define PRIdFAST16 "d" |  | ||||||
| #define PRIdFAST32 "d" |  | ||||||
| #define PRIdFAST64 "I64d" |  | ||||||
|  |  | ||||||
| #define PRIdMAX "I64d" |  | ||||||
|  |  | ||||||
| #define PRIi8 "i" |  | ||||||
| #define PRIi16 "i" |  | ||||||
| #define PRIi32 "i" |  | ||||||
| #define PRIi64 "I64i" |  | ||||||
|  |  | ||||||
| #define PRIiLEAST8 "i" |  | ||||||
| #define PRIiLEAST16 "i" |  | ||||||
| #define PRIiLEAST32 "i" |  | ||||||
| #define PRIiLEAST64 "I64i" |  | ||||||
|  |  | ||||||
| #define PRIiFAST8 "i" |  | ||||||
| #define PRIiFAST16 "i" |  | ||||||
| #define PRIiFAST32 "i" |  | ||||||
| #define PRIiFAST64 "I64i" |  | ||||||
|  |  | ||||||
| #define PRIiMAX "I64i" |  | ||||||
|  |  | ||||||
| #define PRIo8 "o" |  | ||||||
| #define PRIo16 "o" |  | ||||||
| #define PRIo32 "o" |  | ||||||
| #define PRIo64 "I64o" |  | ||||||
|  |  | ||||||
| #define PRIoLEAST8 "o" |  | ||||||
| #define PRIoLEAST16 "o" |  | ||||||
| #define PRIoLEAST32 "o" |  | ||||||
| #define PRIoLEAST64 "I64o" |  | ||||||
|  |  | ||||||
| #define PRIoFAST8 "o" |  | ||||||
| #define PRIoFAST16 "o" |  | ||||||
| #define PRIoFAST32 "o" |  | ||||||
| #define PRIoFAST64 "I64o" |  | ||||||
|  |  | ||||||
| #define PRIoMAX "I64o" |  | ||||||
|  |  | ||||||
| /* fprintf macros for unsigned types */ |  | ||||||
| #define PRIu8 "u" |  | ||||||
| #define PRIu16 "u" |  | ||||||
| #define PRIu32 "u" |  | ||||||
| #define PRIu64 "I64u" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #define PRIuLEAST8 "u" |  | ||||||
| #define PRIuLEAST16 "u" |  | ||||||
| #define PRIuLEAST32 "u" |  | ||||||
| #define PRIuLEAST64 "I64u" |  | ||||||
|  |  | ||||||
| #define PRIuFAST8 "u" |  | ||||||
| #define PRIuFAST16 "u" |  | ||||||
| #define PRIuFAST32 "u" |  | ||||||
| #define PRIuFAST64 "I64u" |  | ||||||
|  |  | ||||||
| #define PRIuMAX "I64u" |  | ||||||
|  |  | ||||||
| #define PRIx8 "x" |  | ||||||
| #define PRIx16 "x" |  | ||||||
| #define PRIx32 "x" |  | ||||||
| #define PRIx64 "I64x" |  | ||||||
|  |  | ||||||
| #define PRIxLEAST8 "x" |  | ||||||
| #define PRIxLEAST16 "x" |  | ||||||
| #define PRIxLEAST32 "x" |  | ||||||
| #define PRIxLEAST64 "I64x" |  | ||||||
|  |  | ||||||
| #define PRIxFAST8 "x" |  | ||||||
| #define PRIxFAST16 "x" |  | ||||||
| #define PRIxFAST32 "x" |  | ||||||
| #define PRIxFAST64 "I64x" |  | ||||||
|  |  | ||||||
| #define PRIxMAX "I64x" |  | ||||||
|  |  | ||||||
| #define PRIX8 "X" |  | ||||||
| #define PRIX16 "X" |  | ||||||
| #define PRIX32 "X" |  | ||||||
| #define PRIX64 "I64X" |  | ||||||
|  |  | ||||||
| #define PRIXLEAST8 "X" |  | ||||||
| #define PRIXLEAST16 "X" |  | ||||||
| #define PRIXLEAST32 "X" |  | ||||||
| #define PRIXLEAST64 "I64X" |  | ||||||
|  |  | ||||||
| #define PRIXFAST8 "X" |  | ||||||
| #define PRIXFAST16 "X" |  | ||||||
| #define PRIXFAST32 "X" |  | ||||||
| #define PRIXFAST64 "I64X" |  | ||||||
|  |  | ||||||
| #define PRIXMAX "I64X" |  | ||||||
|  |  | ||||||
| #ifdef _WIN64 |  | ||||||
| #define PRIdPTR "I64d" |  | ||||||
| #define PRIiPTR "I64i" |  | ||||||
| #define PRIoPTR "I64o" |  | ||||||
| #define PRIuPTR "I64u" |  | ||||||
| #define PRIxPTR "I64x" |  | ||||||
| #define PRIXPTR "I64X" |  | ||||||
| #else |  | ||||||
| #define PRIdPTR "d" |  | ||||||
| #define PRIiPTR "i" |  | ||||||
| #define PRIoPTR "o" |  | ||||||
| #define PRIuPTR "u" |  | ||||||
| #define PRIxPTR "x" |  | ||||||
| #define PRIXPTR "X" |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  *   fscanf macros for signed int types |  | ||||||
|  *   NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t |  | ||||||
|  *   (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have |  | ||||||
|  *   no length identifiers |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #define SCNd16 "hd" |  | ||||||
| #define SCNd32 "d" |  | ||||||
| #define SCNd64 "I64d" |  | ||||||
|  |  | ||||||
| #define SCNdLEAST16 "hd" |  | ||||||
| #define SCNdLEAST32 "d" |  | ||||||
| #define SCNdLEAST64 "I64d" |  | ||||||
|  |  | ||||||
| #define SCNdFAST16 "hd" |  | ||||||
| #define SCNdFAST32 "d" |  | ||||||
| #define SCNdFAST64 "I64d" |  | ||||||
|  |  | ||||||
| #define SCNdMAX "I64d" |  | ||||||
|  |  | ||||||
| #define SCNi16 "hi" |  | ||||||
| #define SCNi32 "i" |  | ||||||
| #define SCNi64 "I64i" |  | ||||||
|  |  | ||||||
| #define SCNiLEAST16 "hi" |  | ||||||
| #define SCNiLEAST32 "i" |  | ||||||
| #define SCNiLEAST64 "I64i" |  | ||||||
|  |  | ||||||
| #define SCNiFAST16 "hi" |  | ||||||
| #define SCNiFAST32 "i" |  | ||||||
| #define SCNiFAST64 "I64i" |  | ||||||
|  |  | ||||||
| #define SCNiMAX "I64i" |  | ||||||
|  |  | ||||||
| #define SCNo16 "ho" |  | ||||||
| #define SCNo32 "o" |  | ||||||
| #define SCNo64 "I64o" |  | ||||||
|  |  | ||||||
| #define SCNoLEAST16 "ho" |  | ||||||
| #define SCNoLEAST32 "o" |  | ||||||
| #define SCNoLEAST64 "I64o" |  | ||||||
|  |  | ||||||
| #define SCNoFAST16 "ho" |  | ||||||
| #define SCNoFAST32 "o" |  | ||||||
| #define SCNoFAST64 "I64o" |  | ||||||
|  |  | ||||||
| #define SCNoMAX "I64o" |  | ||||||
|  |  | ||||||
| #define SCNx16 "hx" |  | ||||||
| #define SCNx32 "x" |  | ||||||
| #define SCNx64 "I64x" |  | ||||||
|  |  | ||||||
| #define SCNxLEAST16 "hx" |  | ||||||
| #define SCNxLEAST32 "x" |  | ||||||
| #define SCNxLEAST64 "I64x" |  | ||||||
|  |  | ||||||
| #define SCNxFAST16 "hx" |  | ||||||
| #define SCNxFAST32 "x" |  | ||||||
| #define SCNxFAST64 "I64x" |  | ||||||
|  |  | ||||||
| #define SCNxMAX "I64x" |  | ||||||
|  |  | ||||||
| /* fscanf macros for unsigned int types */ |  | ||||||
|  |  | ||||||
| #define SCNu16 "hu" |  | ||||||
| #define SCNu32 "u" |  | ||||||
| #define SCNu64 "I64u" |  | ||||||
|  |  | ||||||
| #define SCNuLEAST16 "hu" |  | ||||||
| #define SCNuLEAST32 "u" |  | ||||||
| #define SCNuLEAST64 "I64u" |  | ||||||
|  |  | ||||||
| #define SCNuFAST16 "hu" |  | ||||||
| #define SCNuFAST32 "u" |  | ||||||
| #define SCNuFAST64 "I64u" |  | ||||||
|  |  | ||||||
| #define SCNuMAX "I64u" |  | ||||||
|  |  | ||||||
| #ifdef _WIN64 |  | ||||||
| #define SCNdPTR "I64d" |  | ||||||
| #define SCNiPTR "I64i" |  | ||||||
| #define SCNoPTR "I64o" |  | ||||||
| #define SCNxPTR "I64x" |  | ||||||
| #define SCNuPTR "I64u" |  | ||||||
| #else |  | ||||||
| #define SCNdPTR "d" |  | ||||||
| #define SCNiPTR "i" |  | ||||||
| #define SCNoPTR "o" |  | ||||||
| #define SCNxPTR "x" |  | ||||||
| #define SCNuPTR "u" |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |  | ||||||
| /* |  | ||||||
|  * no length modifier for char types prior to C9x |  | ||||||
|  * MS runtime  scanf appears to treat "hh" as "h"  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* signed char */ |  | ||||||
| #define SCNd8 "hhd" |  | ||||||
| #define SCNdLEAST8 "hhd" |  | ||||||
| #define SCNdFAST8 "hhd" |  | ||||||
|  |  | ||||||
| #define SCNi8 "hhi" |  | ||||||
| #define SCNiLEAST8 "hhi" |  | ||||||
| #define SCNiFAST8 "hhi" |  | ||||||
|  |  | ||||||
| #define SCNo8 "hho" |  | ||||||
| #define SCNoLEAST8 "hho" |  | ||||||
| #define SCNoFAST8 "hho" |  | ||||||
|  |  | ||||||
| #define SCNx8 "hhx" |  | ||||||
| #define SCNxLEAST8 "hhx" |  | ||||||
| #define SCNxFAST8 "hhx" |  | ||||||
|  |  | ||||||
| /* unsigned char */ |  | ||||||
| #define SCNu8 "hhu" |  | ||||||
| #define SCNuLEAST8 "hhu" |  | ||||||
| #define SCNuFAST8 "hhu" |  | ||||||
| #endif /* __STDC_VERSION__ >= 199901 */ |  | ||||||
|  |  | ||||||
| #endif	/* !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) */ |  | ||||||
|  |  | ||||||
| intmax_t __cdecl __MINGW_NOTHROW imaxabs (intmax_t j); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE intmax_t __cdecl __MINGW_NOTHROW imaxabs (intmax_t j) |  | ||||||
| 	{return	(j >= 0 ? j : -j);} |  | ||||||
| #endif |  | ||||||
| imaxdiv_t __cdecl __MINGW_NOTHROW imaxdiv (intmax_t numer, intmax_t denom); |  | ||||||
|  |  | ||||||
| /* 7.8.2 Conversion functions for greatest-width integer types */ |  | ||||||
|  |  | ||||||
| intmax_t __cdecl __MINGW_NOTHROW strtoimax (const char* __restrict__ nptr, |  | ||||||
|                             char** __restrict__ endptr, int base); |  | ||||||
| uintmax_t __cdecl __MINGW_NOTHROW strtoumax (const char* __restrict__ nptr, |  | ||||||
| 			     char** __restrict__ endptr, int base); |  | ||||||
|  |  | ||||||
| intmax_t __cdecl __MINGW_NOTHROW wcstoimax (const wchar_t* __restrict__ nptr, |  | ||||||
|                             wchar_t** __restrict__ endptr, int base); |  | ||||||
| uintmax_t __cdecl __MINGW_NOTHROW wcstoumax (const wchar_t* __restrict__ nptr, |  | ||||||
| 			     wchar_t** __restrict__ endptr, int base); |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* ndef _INTTYPES_H */ |  | ||||||
| @@ -1,492 +0,0 @@ | |||||||
| /* |  | ||||||
|  * io.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * System level I/O functions and types. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #ifndef	_IO_H_ |  | ||||||
| #define	_IO_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* MSVC's io.h contains the stuff from dir.h, so I will too. |  | ||||||
|  * NOTE: This also defines off_t, the file offset type, through |  | ||||||
|  *       an inclusion of sys/types.h */ |  | ||||||
|  |  | ||||||
| #include <sys/types.h>	/* To get time_t.  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Attributes of files as returned by _findfirst et al. |  | ||||||
|  */ |  | ||||||
| #define	_A_NORMAL	0x00000000 |  | ||||||
| #define	_A_RDONLY	0x00000001 |  | ||||||
| #define	_A_HIDDEN	0x00000002 |  | ||||||
| #define	_A_SYSTEM	0x00000004 |  | ||||||
| #define	_A_VOLID	0x00000008 |  | ||||||
| #define	_A_SUBDIR	0x00000010 |  | ||||||
| #define	_A_ARCH		0x00000020 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifndef _INTPTR_T_DEFINED |  | ||||||
| #define _INTPTR_T_DEFINED |  | ||||||
| #ifdef _WIN64 |  | ||||||
|   typedef __int64 intptr_t; |  | ||||||
| #else |  | ||||||
|   typedef int intptr_t; |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_FSIZE_T_DEFINED |  | ||||||
| typedef	unsigned long	_fsize_t; |  | ||||||
| #define _FSIZE_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The maximum length of a file name. You should use GetVolumeInformation |  | ||||||
|  * instead of this constant. But hey, this works. |  | ||||||
|  * Also defined in stdio.h. |  | ||||||
|  */ |  | ||||||
| #ifndef FILENAME_MAX |  | ||||||
| #define	FILENAME_MAX	(260) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The following structure is filled in by _findfirst or _findnext when |  | ||||||
|  * they succeed in finding a match. |  | ||||||
|  */ |  | ||||||
| struct _finddata_t |  | ||||||
| { |  | ||||||
| 	unsigned	attrib;		/* Attributes, see constants above. */ |  | ||||||
| 	time_t		time_create; |  | ||||||
| 	time_t		time_access;	/* always midnight local time */ |  | ||||||
| 	time_t		time_write; |  | ||||||
| 	_fsize_t	size; |  | ||||||
| 	char		name[FILENAME_MAX];	/* may include spaces. */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _finddatai64_t { |  | ||||||
|     unsigned    attrib; |  | ||||||
|     time_t      time_create; |  | ||||||
|     time_t      time_access; |  | ||||||
|     time_t      time_write; |  | ||||||
|     __int64     size; |  | ||||||
|     char        name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __finddata64_t { |  | ||||||
|         unsigned    attrib; |  | ||||||
|         __time64_t  time_create; |  | ||||||
|         __time64_t  time_access; |  | ||||||
|         __time64_t  time_write; |  | ||||||
| /* 8 bytes are returned so it can't be _fsize_t */ |  | ||||||
|         __int64    size; |  | ||||||
|          char       name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| struct _finddata32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	char		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _finddata32i64_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int64		size; |  | ||||||
| 	char		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _finddata64i32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time64_t	time_create; |  | ||||||
| 	__time64_t	time_access; |  | ||||||
| 	__time64_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	char		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _WFINDDATA_T_DEFINED |  | ||||||
| struct _wfinddata_t { |  | ||||||
|     	unsigned	attrib; |  | ||||||
|     	time_t		time_create;	/* -1 for FAT file systems */ |  | ||||||
|     	time_t		time_access;	/* -1 for FAT file systems */ |  | ||||||
|     	time_t		time_write; |  | ||||||
|     	_fsize_t	size; |  | ||||||
|     	wchar_t		name[FILENAME_MAX];	/* may include spaces. */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _wfinddatai64_t { |  | ||||||
|     unsigned    attrib; |  | ||||||
|     time_t      time_create; |  | ||||||
|     time_t      time_access; |  | ||||||
|     time_t      time_write; |  | ||||||
|     __int64     size; |  | ||||||
|     wchar_t     name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __wfinddata64_t { |  | ||||||
|         unsigned    attrib; |  | ||||||
|         __time64_t  time_create; |  | ||||||
|         __time64_t  time_access; |  | ||||||
|         __time64_t  time_write; |  | ||||||
| /* 8 bytes are returned so it can't be _fsize_t */ |  | ||||||
|         __int64    size; |  | ||||||
|         wchar_t     name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| struct __wfinddata32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _wfinddata32i64_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int64		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _wfinddata64i32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time64_t	time_create; |  | ||||||
| 	__time64_t	time_access; |  | ||||||
| 	__time64_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #define _WFINDDATA_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Functions for searching for files. _findfirst returns -1 if no match |  | ||||||
|  * is found. Otherwise it returns a handle to be used in _findnext and |  | ||||||
|  * _findclose calls. _findnext also returns -1 if no match could be found, |  | ||||||
|  * and 0 if a match was found. Call _findclose when you are finished. |  | ||||||
|  */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| /* |  | ||||||
| intptr_t _findfirst      (const char *filespec,struct _finddata_t      *fileinfo); |  | ||||||
| intptr_t _findfirst32    (const char *filespec,struct _finddata32_t    *fileinfo); |  | ||||||
| intptr_t _findfirst64    (const char *filespec,struct __finddata64_t   *fileinfo); |  | ||||||
| intptr_t _findfirsti64   (const char *filespec,struct _finddatai64_t   *fileinfo); |  | ||||||
| intptr_t _findfirst32i64 (const char *filespec,struct _finddata32i64_t *fileinfo); |  | ||||||
| intptr_t _findfirst64i32 (const char *filespec,struct _finddata64i32_t *fileinfo); |  | ||||||
|  |  | ||||||
| intptr_t _wfindfirst     (const wchar_t *filespec,struct _wfinddata_t *fileinfo); |  | ||||||
| intptr_t _wfindfirst32   (const wchar_t *filespec,struct __wfinddata32_t *fileinfo); |  | ||||||
| intptr_t _wfindfirst64   (const wchar_t *filespec, struct __wfinddata64_t   *fileinfo); |  | ||||||
| intptr_t _wfindfirsti64  (const wchar_t *filespec, struct _wfinddatai64_t   *fileinfo); |  | ||||||
| intptr_t _wfindfirst32i64(const wchar_t *filespec, struct _wfinddata32i64_t *fileinfo); |  | ||||||
| intptr_t _wfindfirst64i32(const wchar_t *filespec, struct _wfinddata64i32_t *fileinfo); |  | ||||||
|  |  | ||||||
| Time Type and File Length Type Variations of _findfirst: |  | ||||||
| Functions		_USE_32BIT_TIME_T defined?	Time type	File length type |  | ||||||
| _findfirst,		Not defined			64-bit		32-bit |  | ||||||
| _wfindfirst |  | ||||||
| _findfirst,		Defined				32-bit		32-bit |  | ||||||
| _wfindfirst |  | ||||||
|  |  | ||||||
| _findfirst32,		Not affected by the macro	32-bit		32-bit |  | ||||||
| _wfindfirst32		definition |  | ||||||
|  |  | ||||||
| _findfirst64,		Not affected by the macro	64-bit		64-bit |  | ||||||
| _wfindfirst64		definition |  | ||||||
|  |  | ||||||
| _findfirsti64,		Not defined			64-bit		64-bit |  | ||||||
| _wfindfirsti64 |  | ||||||
| _findfirsti64,		Defined				32-bit		64-bit |  | ||||||
| _wfindfirsti64 |  | ||||||
|  |  | ||||||
| _findfirst32i64,	Not affected by the macro	32-bit		64-bit |  | ||||||
| _wfindfirst32i64	definition |  | ||||||
|  |  | ||||||
| _findfirst64i32,	Not affected by the macro	64-bit		32-bit |  | ||||||
| _wfindfirst64i32	definition |  | ||||||
| */ |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst (const char*, struct _finddata_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _findnext (intptr_t, struct _finddata_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _findclose (intptr_t); |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst32 (const char*, struct _finddata32_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_findnext32 (intptr_t, struct _finddata32_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _chdir (const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW _getcwd (char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mkdir (const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW _mktemp (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _rmdir (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _chmod (const char*, int); |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW _filelengthi64(int); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirsti64(const char*, struct _finddatai64_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _findnexti64(intptr_t, struct _finddatai64_t*); |  | ||||||
| #else |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst32i64 (const char*, struct _finddata32i64_t*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst64i32 (const char*, struct _finddata64i32_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_findnext32i64 (intptr_t, struct _finddata32i64_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_findnext64i32 (intptr_t, struct _finddata64i32_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW _lseeki64(int, __int64, int); |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW _telli64(int); |  | ||||||
| /* These require newer versions of msvcrt.dll (6.1 or higher). */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst64(const char*, struct __finddata64_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _findnext64(intptr_t, struct __finddata64_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _findfirst (const char* _v1, struct _finddata_t* _v2)	{ return(_findfirst64i32 (_v1,(struct _finddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_findnext (intptr_t _v1, struct _finddata_t* _v2)		{ return(_findnext64i32  (_v1,(struct _finddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _findfirsti64 (const char* _v1, struct _finddatai64_t* _v2)	{ return(_findfirst64 (_v1,(struct __finddata64_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_findnexti64 (intptr_t _v1, struct _finddatai64_t* _v2)		{ return(_findnext64  (_v1,(struct __finddata64_t*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _findfirst (const char* _v1, struct _finddata_t* _v2)	{ return(_findfirst32 (_v1,(struct _finddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_findnext (intptr_t _v1, struct _finddata_t* _v2)		{ return(_findnext32  (_v1,(struct _finddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _findfirsti64 (const char* _v1, struct _finddatai64_t* _v2)	{ return(_findfirst32i64 (_v1,(struct _finddata32i64_t*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_findnexti64 (intptr_t _v1, struct _finddatai64_t* _v2)		{ return(_findnext32i64  (_v1,(struct _finddata32i64_t*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #ifndef __NO_MINGW_LFS |  | ||||||
| __CRT_INLINE off64_t lseek64 (int, off64_t, int); |  | ||||||
| __CRT_INLINE off64_t lseek64 (int fd, off64_t offset, int whence) |  | ||||||
| { |  | ||||||
|   return _lseeki64(fd, (__int64) offset, whence); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
|  |  | ||||||
| #ifndef _UWIN |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW chdir (const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW getcwd (char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW mkdir (const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW mktemp (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW rmdir (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW chmod (const char*, int); |  | ||||||
| #endif /* _UWIN */ |  | ||||||
|  |  | ||||||
| #endif /* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* TODO: Maximum number of open handles has not been tested, I just set |  | ||||||
|  * it the same as FOPEN_MAX. */ |  | ||||||
| #define	HANDLE_MAX	FOPEN_MAX |  | ||||||
|  |  | ||||||
| /* Some defines for _access nAccessMode (MS doesn't define them, but |  | ||||||
|  * it doesn't seem to hurt to add them). */ |  | ||||||
| #define	F_OK	0	/* Check for file existence */ |  | ||||||
| /* Well maybe it does hurt.  On newer versions of MSVCRT, an access mode |  | ||||||
|    of 1 causes invalid parameter error. */    |  | ||||||
| #define	X_OK	1	/* MS access() doesn't check for execute permission. */ |  | ||||||
| #define	W_OK	2	/* Check for write permission */ |  | ||||||
| #define	R_OK	4	/* Check for read permission */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _access (const char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _chsize (int, long); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _close (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _commit(int); |  | ||||||
|  |  | ||||||
| /* NOTE: The only significant bit in unPermissions appears to be bit 7 (0x80), |  | ||||||
|  *       the "owner write permission" bit (on FAT). */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _creat (const char*, int); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _dup (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _dup2 (int, int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW _filelength (int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW _get_osfhandle (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _isatty (int); |  | ||||||
|  |  | ||||||
| /* In a very odd turn of events this function is excluded from those |  | ||||||
|  * files which define _STREAM_COMPAT. This is required in order to |  | ||||||
|  * build GNU libio because of a conflict with _eof in streambuf.h |  | ||||||
|  * line 107. Actually I might just be able to change the name of |  | ||||||
|  * the enum member in streambuf.h... we'll see. TODO */ |  | ||||||
| #ifndef	_STREAM_COMPAT |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _eof (int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* LK_... locking commands defined in sys/locking.h. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _locking (int, int, long); |  | ||||||
|  |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW _lseek (int, long, int); |  | ||||||
|  |  | ||||||
| /* Optional third argument is unsigned unPermissions. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _open (const char*, int, ...); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _open_osfhandle (intptr_t, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _pipe (int *, unsigned int, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _read (int, void*, unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _setmode (int, int); |  | ||||||
| /* MS puts remove & rename (but not wide versions) in io.h as well |  | ||||||
|    as in stdio.h. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	remove (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	rename (const char*, const char*); |  | ||||||
|  |  | ||||||
| /* SH_... flags for nShFlags defined in share.h |  | ||||||
|  * Optional fourth argument is unsigned unPermissions */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _sopen (const char*, int, int, ...); |  | ||||||
|  |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW _tell (int); |  | ||||||
| /* Should umask be in sys/stat.h and/or sys/types.h instead? */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _umask (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _unlink (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _write (int, const void*, unsigned int); |  | ||||||
|  |  | ||||||
| /* Wide character versions. Also declared in wchar.h. */ |  | ||||||
| /* Not in crtdll.dll */ |  | ||||||
| #if !defined (_WIO_DEFINED) |  | ||||||
| #if defined (__MSVCRT__) |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _waccess(const wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wchmod(const wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wcreat(const wchar_t*, int); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst(const wchar_t*, struct _wfinddata_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wfindnext(intptr_t, struct _wfinddata_t *); |  | ||||||
| #else |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst32 (const wchar_t*, struct __wfinddata32_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext32 (intptr_t, struct __wfinddata32_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wunlink(const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wopen(const wchar_t*, int, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wsopen(const wchar_t*, int, int, ...); |  | ||||||
| _CRTIMP wchar_t * __cdecl __MINGW_NOTHROW _wmktemp(wchar_t*); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wfindnexti64(intptr_t, struct _wfinddatai64_t*); |  | ||||||
| #else |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst32i64 (const wchar_t*, struct _wfinddata32i64_t*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst64i32 (const wchar_t*, struct _wfinddata64i32_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext32i64 (intptr_t, struct _wfinddata32i64_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext64i32 (intptr_t, struct _wfinddata64i32_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst64(const wchar_t*, struct __wfinddata64_t*);  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wfindnext64(intptr_t, struct __wfinddata64_t*); |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _wfindfirst (const wchar_t* _v1, struct _wfinddata_t* _v2)	 { return(_wfindfirst64i32 (_v1,(struct _wfinddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnext (intptr_t _v1, struct _wfinddata_t* _v2)		 { return(_wfindnext64i32  (_v1,(struct _wfinddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _wfindfirsti64 (const wchar_t* _v1, struct _wfinddatai64_t* _v2) { return(_wfindfirst64 (_v1,(struct __wfinddata64_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnexti64 (intptr_t _v1, struct _wfinddatai64_t* _v2)	 { return(_wfindnext64  (_v1,(struct __wfinddata64_t*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _wfindfirst (const wchar_t* _v1, struct _wfinddata_t* _v2)	 { return(_wfindfirst32 (_v1,(struct __wfinddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnext (intptr_t _v1, struct _wfinddata_t* _v2)		 { return(_wfindnext32  (_v1,(struct __wfinddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS intptr_t __cdecl __MINGW_NOTHROW _wfindfirsti64 (const wchar_t* _v1, struct _wfinddatai64_t* _v2) { return(_wfindfirst32i64 (_v1,(struct _wfinddata32i64_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnexti64 (intptr_t _v1, struct _wfinddatai64_t* _v2)	 { return(_wfindnext32i64  (_v1,(struct _wfinddata32i64_t*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #endif /* defined (__MSVCRT__) */ |  | ||||||
| #define _WIO_DEFINED |  | ||||||
| #endif /* _WIO_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* |  | ||||||
|  * Non-underscored versions of non-ANSI functions to improve portability. |  | ||||||
|  * These functions live in libmoldname.a. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _UWIN |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW access (const char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW chsize (int, long ); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW close (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW creat (const char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW dup (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW dup2 (int, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW eof (int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW filelength (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW isatty (int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW lseek (int, long, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW open (const char*, int, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW read (int, void*, unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW setmode (int, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW sopen (const char*, int, int, ...); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW tell (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW umask (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW unlink (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW write (int, const void*, unsigned int); |  | ||||||
| #endif /* _UWIN */ |  | ||||||
|  |  | ||||||
| #ifdef __USE_MINGW_ACCESS |  | ||||||
| /*  Old versions of MSVCRT access() just ignored X_OK, while the version |  | ||||||
|     shipped with Vista, returns an error code.  This will restore the |  | ||||||
|     old behaviour  */ |  | ||||||
| static inline int __mingw_access (const char* __fname, int __mode) |  | ||||||
|   { return  _access (__fname, __mode & ~X_OK); } |  | ||||||
| #define access(__f,__m)  __mingw_access (__f, __m) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Wide character versions. Also declared in wchar.h. */ |  | ||||||
| /* Where do these live? Not in libmoldname.a nor in libmsvcrt.a */ |  | ||||||
| #if 0 |  | ||||||
| int 		waccess(const wchar_t *, int); |  | ||||||
| int 		wchmod(const wchar_t *, int); |  | ||||||
| int 		wcreat(const wchar_t *, int); |  | ||||||
| intptr_t	wfindfirst(wchar_t *, struct _wfinddata_t *); |  | ||||||
| int 		wfindnext(intptr_t, struct _wfinddata_t *); |  | ||||||
| int 		wunlink(const wchar_t *); |  | ||||||
| int 		wrename(const wchar_t *, const wchar_t *); |  | ||||||
| int 		wopen(const wchar_t *, int, ...); |  | ||||||
| int 		wsopen(const wchar_t *, int, int, ...); |  | ||||||
| wchar_t * 	wmktemp(wchar_t *); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* _IO_H_ not defined */ |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| #ifndef _LIBGEN_H_ |  | ||||||
| /*  |  | ||||||
|  * libgen.h |  | ||||||
|  * |  | ||||||
|  * $Id$ |  | ||||||
|  * |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Functions for splitting pathnames into dirname and basename components. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define _LIBGEN_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| extern __cdecl __MINGW_NOTHROW char *basename (char *); |  | ||||||
| extern __cdecl __MINGW_NOTHROW char *dirname  (char *); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* _LIBGEN_H_: end of file */ |  | ||||||
|  |  | ||||||
| @@ -1,115 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * limits.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Functions for manipulating paths and directories (included from io.h) |  | ||||||
|  * plus functions for setting the current drive. |  | ||||||
|  * |  | ||||||
|  * Defines constants for the sizes of integral types. |  | ||||||
|  * |  | ||||||
|  * NOTE: GCC should supply a version of this header and it should be safe to |  | ||||||
|  *       use that version instead of this one (maybe safer). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _LIMITS_H_ |  | ||||||
| #define _LIMITS_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * File system limits |  | ||||||
|  * |  | ||||||
|  * TODO: NAME_MAX and OPEN_MAX are file system limits or not? Are they the |  | ||||||
|  *       same as FILENAME_MAX and FOPEN_MAX from stdio.h? |  | ||||||
|  * NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two |  | ||||||
|  *       are semantically identical, with a limit of 259 characters for the |  | ||||||
|  *       path name, plus one for a terminating NUL, for a total of 260. |  | ||||||
|  */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| # define PATH_MAX	260 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Characteristics of the char data type. |  | ||||||
|  * |  | ||||||
|  * TODO: Is MB_LEN_MAX correct? |  | ||||||
|  */ |  | ||||||
| #define CHAR_BIT	8 |  | ||||||
| #define MB_LEN_MAX	2 |  | ||||||
|  |  | ||||||
| #define SCHAR_MIN	(-128) |  | ||||||
| #define SCHAR_MAX	127 |  | ||||||
|  |  | ||||||
| #define UCHAR_MAX	255 |  | ||||||
|  |  | ||||||
| /* TODO: Is this safe? I think it might just be testing the preprocessor, |  | ||||||
|  *       not the compiler itself... */ |  | ||||||
| #if	('\x80' < 0) |  | ||||||
| #define CHAR_MIN	SCHAR_MIN |  | ||||||
| #define CHAR_MAX	SCHAR_MAX |  | ||||||
| #else |  | ||||||
| #define CHAR_MIN	0 |  | ||||||
| #define CHAR_MAX	UCHAR_MAX |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Maximum and minimum values for ints. |  | ||||||
|  */ |  | ||||||
| #define INT_MAX		2147483647 |  | ||||||
| #define INT_MIN		(-INT_MAX-1) |  | ||||||
|  |  | ||||||
| #define UINT_MAX	0xffffffff |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Maximum and minimum values for shorts. |  | ||||||
|  */ |  | ||||||
| #define SHRT_MAX	32767 |  | ||||||
| #define SHRT_MIN	(-SHRT_MAX-1) |  | ||||||
|  |  | ||||||
| #define USHRT_MAX	0xffff |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Maximum and minimum values for longs and unsigned longs. |  | ||||||
|  * |  | ||||||
|  * TODO: This is not correct for Alphas, which have 64 bit longs. |  | ||||||
|  */ |  | ||||||
| #define LONG_MAX	2147483647L |  | ||||||
| #define LONG_MIN	(-LONG_MAX-1) |  | ||||||
|  |  | ||||||
| #define ULONG_MAX	0xffffffffUL |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| /* POSIX wants this.  */  |  | ||||||
| #define SSIZE_MAX LONG_MAX |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined(__STRICT_ANSI__) |  | ||||||
| /* ISO C9x macro names */ |  | ||||||
| #define LLONG_MAX 9223372036854775807LL |  | ||||||
| #define LLONG_MIN (-LLONG_MAX - 1) |  | ||||||
| #define ULLONG_MAX (2ULL * LLONG_MAX + 1) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The GNU C compiler also allows 'long long int' |  | ||||||
|  */ |  | ||||||
| #if !defined(__STRICT_ANSI__) && defined(__GNUC__) |  | ||||||
|  |  | ||||||
| #define LONG_LONG_MAX	9223372036854775807LL |  | ||||||
| #define LONG_LONG_MIN	(-LONG_LONG_MAX-1) |  | ||||||
| #define ULONG_LONG_MAX	(2ULL * LONG_LONG_MAX + 1) |  | ||||||
|  |  | ||||||
| /* MSVC compatibility */ |  | ||||||
| #define _I64_MIN LONG_LONG_MIN |  | ||||||
| #define _I64_MAX LONG_LONG_MAX |  | ||||||
| #define _UI64_MAX ULONG_LONG_MAX |  | ||||||
|  |  | ||||||
| #endif /* Not Strict ANSI and GNU C compiler */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* not _LIMITS_H_ */ |  | ||||||
| @@ -1,88 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * locale.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Functions and types for localization (ie. changing the appearance of |  | ||||||
|  * output based on the standards of a certain country). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_LOCALE_H_ |  | ||||||
| #define	_LOCALE_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: I have tried to test this, but I am limited by my knowledge of |  | ||||||
|  *       locale issues. The structure does not bomb if you look at the |  | ||||||
|  *       values, and 'decimal_point' even seems to be correct. But the |  | ||||||
|  *       rest of the values are, by default, not particularly useful |  | ||||||
|  *       (read meaningless and not related to the international settings |  | ||||||
|  *       of the system). |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #define	LC_ALL		0 |  | ||||||
| #define LC_COLLATE	1 |  | ||||||
| #define LC_CTYPE	2 |  | ||||||
| #define	LC_MONETARY	3 |  | ||||||
| #define	LC_NUMERIC	4 |  | ||||||
| #define	LC_TIME		5 |  | ||||||
| #define	LC_MIN		LC_ALL |  | ||||||
| #define	LC_MAX		LC_TIME |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| /* According to C89 std, NULL is defined in locale.h too.  */ |  | ||||||
| #define __need_NULL |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The structure returned by 'localeconv'. |  | ||||||
|  */ |  | ||||||
| struct lconv |  | ||||||
| { |  | ||||||
| 	char*	decimal_point; |  | ||||||
| 	char*	thousands_sep; |  | ||||||
| 	char*	grouping; |  | ||||||
| 	char*	int_curr_symbol; |  | ||||||
| 	char*	currency_symbol; |  | ||||||
| 	char*	mon_decimal_point; |  | ||||||
| 	char*	mon_thousands_sep; |  | ||||||
| 	char*	mon_grouping; |  | ||||||
| 	char*	positive_sign; |  | ||||||
| 	char*	negative_sign; |  | ||||||
| 	char	int_frac_digits; |  | ||||||
| 	char	frac_digits; |  | ||||||
| 	char	p_cs_precedes; |  | ||||||
| 	char	p_sep_by_space; |  | ||||||
| 	char	n_cs_precedes; |  | ||||||
| 	char	n_sep_by_space; |  | ||||||
| 	char	p_sign_posn; |  | ||||||
| 	char	n_sign_posn; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP  char* __cdecl __MINGW_NOTHROW setlocale (int, const char*); |  | ||||||
| _CRTIMP struct lconv* __cdecl __MINGW_NOTHROW localeconv (void); |  | ||||||
|  |  | ||||||
| #ifndef _WLOCALE_DEFINED  /* also declared in wchar.h */ |  | ||||||
| # define __need_wchar_t |  | ||||||
| # include <stddef.h> |  | ||||||
|   _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wsetlocale(int, const wchar_t*); |  | ||||||
| # define _WLOCALE_DEFINED |  | ||||||
| #endif /* ndef _WLOCALE_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _LOCALE_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,103 +0,0 @@ | |||||||
| /* |  | ||||||
|  * malloc.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Support for programs which want to use malloc.h to get memory management |  | ||||||
|  * functions. Unless you absolutely need some of these functions and they are |  | ||||||
|  * not in the ANSI headers you should use the ANSI standard header files |  | ||||||
|  * instead. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _MALLOC_H_ |  | ||||||
| #define _MALLOC_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #include <stdlib.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The structure used to walk through the heap with _heapwalk. |  | ||||||
|  */ |  | ||||||
| typedef	struct _heapinfo |  | ||||||
| { |  | ||||||
| 	int*	_pentry; |  | ||||||
| 	size_t	_size; |  | ||||||
| 	int	_useflag; |  | ||||||
| } _HEAPINFO; |  | ||||||
|  |  | ||||||
| /* Values for _heapinfo.useflag */ |  | ||||||
| #define _FREEENTRY 0 |  | ||||||
| #define _USEDENTRY 1 |  | ||||||
|  |  | ||||||
| /* Return codes for _heapwalk()  */ |  | ||||||
| #define _HEAPEMPTY	(-1) |  | ||||||
| #define _HEAPOK		(-2) |  | ||||||
| #define _HEAPBADBEGIN	(-3) |  | ||||||
| #define _HEAPBADNODE	(-4) |  | ||||||
| #define _HEAPEND	(-5) |  | ||||||
| #define _HEAPBADPTR	(-6) |  | ||||||
|  |  | ||||||
| /* maximum size of a user request for memory */ |  | ||||||
| #define _HEAP_MAXREQ  0xFFFFFFE0 |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
| /* |  | ||||||
|    The _heap* memory allocation functions are supported on NT |  | ||||||
|    but not W9x. On latter, they always set errno to ENOSYS. |  | ||||||
| */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _heapwalk (_HEAPINFO*); |  | ||||||
| #ifdef __GNUC__ |  | ||||||
| #define _alloca(x) __builtin_alloca((x)) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW heapwalk (_HEAPINFO*); |  | ||||||
| #ifdef __GNUC__ |  | ||||||
| #define alloca(x) __builtin_alloca((x)) |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _heapchk (void);	/* Verify heap integrety. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _heapmin (void);	/* Return unused heap to the OS. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _heapset (unsigned int); |  | ||||||
|  |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _msize (void*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _get_sbh_threshold (void);  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _set_sbh_threshold (size_t); |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW _expand (void*, size_t);  |  | ||||||
|  |  | ||||||
| /* These require msvcr70.dll or higher. */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0700 |  | ||||||
| _CRTIMP void * __cdecl __MINGW_NOTHROW _aligned_offset_malloc(size_t, size_t, size_t); |  | ||||||
| _CRTIMP void * __cdecl __MINGW_NOTHROW _aligned_offset_realloc(void*, size_t, size_t, size_t); |  | ||||||
| _CRTIMP void * __cdecl __MINGW_NOTHROW _aligned_offset_recalloc(void*, size_t, size_t, size_t, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP void * __cdecl __MINGW_NOTHROW _aligned_malloc (size_t, size_t); |  | ||||||
| _CRTIMP void * __cdecl __MINGW_NOTHROW _aligned_realloc (void*, size_t, size_t); |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW _aligned_recalloc(void*, size_t, size_t, size_t); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _aligned_free (void*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0700 */ |  | ||||||
|  |  | ||||||
| /* These require libmingwex.a. */  |  | ||||||
| void * __cdecl __MINGW_NOTHROW __mingw_aligned_offset_malloc (size_t, size_t, size_t); |  | ||||||
| void * __cdecl __MINGW_NOTHROW __mingw_aligned_offset_realloc (void*, size_t, size_t, size_t); |  | ||||||
|  |  | ||||||
| void * __cdecl __MINGW_NOTHROW __mingw_aligned_malloc (size_t, size_t); |  | ||||||
| void * __cdecl __MINGW_NOTHROW __mingw_aligned_realloc (void*, size_t, size_t); |  | ||||||
| void __cdecl __MINGW_NOTHROW __mingw_aligned_free (void*); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif /* Not _MALLOC_H_ */ |  | ||||||
| @@ -1,915 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * math.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Mathematical functions. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _MATH_H_ |  | ||||||
| #define _MATH_H_ |  | ||||||
|  |  | ||||||
| #if __GNUC__ >= 3 |  | ||||||
| #pragma GCC system_header |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Types for the _exception structure. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #define	_DOMAIN		1	/* domain error in argument */ |  | ||||||
| #define	_SING		2	/* singularity */ |  | ||||||
| #define	_OVERFLOW	3	/* range overflow */ |  | ||||||
| #define	_UNDERFLOW	4	/* range underflow */ |  | ||||||
| #define	_TLOSS		5	/* total loss of precision */ |  | ||||||
| #define	_PLOSS		6	/* partial loss of precision */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Exception types with non-ANSI names for compatibility. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
|  |  | ||||||
| #define	DOMAIN		_DOMAIN |  | ||||||
| #define	SING		_SING |  | ||||||
| #define	OVERFLOW	_OVERFLOW |  | ||||||
| #define	UNDERFLOW	_UNDERFLOW |  | ||||||
| #define	TLOSS		_TLOSS |  | ||||||
| #define	PLOSS		_PLOSS |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Traditional/XOPEN math constants (double precison) */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #define M_E		2.7182818284590452354 |  | ||||||
| #define M_LOG2E		1.4426950408889634074 |  | ||||||
| #define M_LOG10E	0.43429448190325182765 |  | ||||||
| #define M_LN2		0.69314718055994530942 |  | ||||||
| #define M_LN10		2.30258509299404568402 |  | ||||||
| #define M_PI		3.14159265358979323846 |  | ||||||
| #define M_PI_2		1.57079632679489661923 |  | ||||||
| #define M_PI_4		0.78539816339744830962 |  | ||||||
| #define M_1_PI		0.31830988618379067154 |  | ||||||
| #define M_2_PI		0.63661977236758134308 |  | ||||||
| #define M_2_SQRTPI	1.12837916709551257390 |  | ||||||
| #define M_SQRT2		1.41421356237309504880 |  | ||||||
| #define M_SQRT1_2	0.70710678118654752440 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* These are also defined in Mingw float.h; needed here as well to work  |  | ||||||
|    around GCC build issues.  */ |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| #ifndef __MINGW_FPCLASS_DEFINED |  | ||||||
| #define __MINGW_FPCLASS_DEFINED 1 |  | ||||||
| /* IEEE 754 classication */ |  | ||||||
| #define	_FPCLASS_SNAN	0x0001	/* Signaling "Not a Number" */ |  | ||||||
| #define	_FPCLASS_QNAN	0x0002	/* Quiet "Not a Number" */ |  | ||||||
| #define	_FPCLASS_NINF	0x0004	/* Negative Infinity */ |  | ||||||
| #define	_FPCLASS_NN	0x0008	/* Negative Normal */ |  | ||||||
| #define	_FPCLASS_ND	0x0010	/* Negative Denormal */ |  | ||||||
| #define	_FPCLASS_NZ	0x0020	/* Negative Zero */ |  | ||||||
| #define	_FPCLASS_PZ	0x0040	/* Positive Zero */ |  | ||||||
| #define	_FPCLASS_PD	0x0080	/* Positive Denormal */ |  | ||||||
| #define	_FPCLASS_PN	0x0100	/* Positive Normal */ |  | ||||||
| #define	_FPCLASS_PINF	0x0200	/* Positive Infinity */ |  | ||||||
| #endif /* __MINGW_FPCLASS_DEFINED */ |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * HUGE_VAL is returned by strtod when the value would overflow the |  | ||||||
|  * representation of 'double'. There are other uses as well. |  | ||||||
|  * |  | ||||||
|  * __imp__HUGE is a pointer to the actual variable _HUGE in |  | ||||||
|  * MSVCRT.DLL. If we used _HUGE directly we would get a pointer |  | ||||||
|  * to a thunk function. |  | ||||||
|  * |  | ||||||
|  * NOTE: The CRTDLL version uses _HUGE_dll instead. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #if __MINGW_GNUC_PREREQ(3, 3) |  | ||||||
| #define	HUGE_VAL __builtin_huge_val() |  | ||||||
| #else |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| extern double*	_imp___HUGE; |  | ||||||
| #define	HUGE_VAL	(*_imp___HUGE) |  | ||||||
| #else |  | ||||||
| /* CRTDLL */ |  | ||||||
| extern double*	_imp___HUGE_dll; |  | ||||||
| #define	HUGE_VAL	(*_imp___HUGE_dll) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| __MINGW_IMPORT double	_HUGE; |  | ||||||
| #define	HUGE_VAL	_HUGE |  | ||||||
| #else |  | ||||||
| /* CRTDLL */ |  | ||||||
| __MINGW_IMPORT double	_HUGE_dll; |  | ||||||
| #define	HUGE_VAL	_HUGE_dll |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
| #endif /* __MINGW_GNUC_PREREQ(3, 3) */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| struct _exception |  | ||||||
| { |  | ||||||
| 	int	type; |  | ||||||
| 	char	*name; |  | ||||||
| 	double	arg1; |  | ||||||
| 	double	arg2; |  | ||||||
| 	double	retval; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl sin (double); |  | ||||||
| _CRTIMP double __cdecl cos (double); |  | ||||||
| _CRTIMP double __cdecl tan (double); |  | ||||||
| _CRTIMP double __cdecl sinh (double); |  | ||||||
| _CRTIMP double __cdecl cosh (double); |  | ||||||
| _CRTIMP double __cdecl tanh (double); |  | ||||||
| _CRTIMP double __cdecl asin (double); |  | ||||||
| _CRTIMP double __cdecl acos (double); |  | ||||||
| _CRTIMP double __cdecl atan (double); |  | ||||||
| _CRTIMP double __cdecl atan2 (double, double); |  | ||||||
| _CRTIMP double __cdecl exp (double); |  | ||||||
| _CRTIMP double __cdecl log (double); |  | ||||||
| _CRTIMP double __cdecl log10 (double); |  | ||||||
| _CRTIMP	double __cdecl pow (double, double); |  | ||||||
| _CRTIMP double __cdecl sqrt (double); |  | ||||||
| _CRTIMP double __cdecl ceil (double); |  | ||||||
| _CRTIMP double __cdecl floor (double); |  | ||||||
| _CRTIMP double __cdecl fabs (double); |  | ||||||
| _CRTIMP double __cdecl ldexp (double, int); |  | ||||||
| _CRTIMP double __cdecl frexp (double, int*); |  | ||||||
| _CRTIMP double __cdecl modf (double, double*); |  | ||||||
| _CRTIMP double __cdecl fmod (double, double); |  | ||||||
|  |  | ||||||
| /* Excess precision when using a 64-bit mantissa for FPU math ops can |  | ||||||
|    cause unexpected results with some of the MSVCRT math functions.  For |  | ||||||
|    example, unless the function return value is stored (truncating to |  | ||||||
|    53-bit mantissa), calls to pow with both x and y as integral values |  | ||||||
|    sometimes produce a non-integral result. |  | ||||||
|    One workaround is to reset the FPU env to 53-bit mantissa |  | ||||||
|    by a call to fesetenv (FE_PC53_ENV).  Amother is to force storage |  | ||||||
|    of the return value of individual math functions using wrappers. |  | ||||||
|    NB, using these wrappers will disable builtin math functions and |  | ||||||
|    hence disable the folding of function results at compile time when |  | ||||||
|    arguments are constant.  */ |  | ||||||
|  |  | ||||||
| #if 0 |  | ||||||
| #define __DEFINE_FLOAT_STORE_MATHFN_D1(fn1)	\ |  | ||||||
| static __inline__ double			\ |  | ||||||
| __float_store_ ## fn1 (double x)		\ |  | ||||||
| {						\ |  | ||||||
|    __volatile__ double res = (fn1) (x);		\ |  | ||||||
|   return res;					\ |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #define __DEFINE_FLOAT_STORE_MATHFN_D2(fn2)	\ |  | ||||||
| static __inline__ double			\ |  | ||||||
| __float_store_ ## fn2 (double x, double y)	\ |  | ||||||
| {						\ |  | ||||||
|   __volatile__ double res = (fn2) (x, y);	\ |  | ||||||
|   return res;					\ |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* For example, here is how to force the result of the pow function |  | ||||||
|    to be stored:   */ |  | ||||||
| #if 0 |  | ||||||
| #undef pow |  | ||||||
| /* Define the ___float_store_pow function and use it instead of pow().  */ |  | ||||||
| __DEFINE_FLOAT_STORE_MATHFN_D2 (pow) |  | ||||||
| #define pow __float_store_pow |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| /* Complex number (for _cabs). This is the MS version. The ISO |  | ||||||
|    C99 counterpart _Complex is an intrinsic type in GCC and |  | ||||||
|    'complex' is defined as a macro.  See complex.h  */ |  | ||||||
| struct _complex |  | ||||||
| { |  | ||||||
| 	double	x;	/* Real part */ |  | ||||||
| 	double	y;	/* Imaginary part */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl _cabs (struct _complex); |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl _hypot (double, double); |  | ||||||
| _CRTIMP double __cdecl _j0 (double); |  | ||||||
| _CRTIMP double __cdecl _j1 (double); |  | ||||||
| _CRTIMP double __cdecl _jn (int, double); |  | ||||||
| _CRTIMP double __cdecl _y0 (double); |  | ||||||
| _CRTIMP double __cdecl _y1 (double); |  | ||||||
| _CRTIMP double __cdecl _yn (int, double); |  | ||||||
| _CRTIMP int __cdecl _matherr (struct _exception *); |  | ||||||
|  |  | ||||||
| /* These are also declared in Mingw float.h; needed here as well to work  |  | ||||||
|    around GCC build issues.  */ |  | ||||||
| /* BEGIN FLOAT.H COPY */ |  | ||||||
| /* |  | ||||||
|  * IEEE recommended functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl _chgsign (double); |  | ||||||
| _CRTIMP double __cdecl _copysign (double, double); |  | ||||||
| _CRTIMP double __cdecl _logb (double); |  | ||||||
| _CRTIMP double __cdecl _nextafter (double, double); |  | ||||||
| _CRTIMP double __cdecl _scalb (double, long); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl _finite (double); |  | ||||||
| _CRTIMP int __cdecl _fpclass (double); |  | ||||||
| _CRTIMP int __cdecl _isnan (double); |  | ||||||
|  |  | ||||||
| /* END FLOAT.H COPY */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Non-underscored versions of non-ANSI functions. |  | ||||||
|  * These reside in liboldnames.a. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #if !defined (_NO_OLDNAMES) |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl j0 (double); |  | ||||||
| _CRTIMP double __cdecl j1 (double); |  | ||||||
| _CRTIMP double __cdecl jn (int, double); |  | ||||||
| _CRTIMP double __cdecl y0 (double); |  | ||||||
| _CRTIMP double __cdecl y1 (double); |  | ||||||
| _CRTIMP double __cdecl yn (int, double); |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl chgsign (double); |  | ||||||
| /* |  | ||||||
|  * scalb() is a GCC built-in. |  | ||||||
|  * Exclude this _scalb() stub; the semantics are incompatible |  | ||||||
|  * with the built-in implementation. |  | ||||||
|  * |  | ||||||
| _CRTIMP double __cdecl scalb (double, long); |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl finite (double); |  | ||||||
| _CRTIMP int __cdecl fpclass (double); |  | ||||||
|  |  | ||||||
| #define FP_SNAN    _FPCLASS_SNAN |  | ||||||
| #define FP_QNAN    _FPCLASS_QNAN |  | ||||||
| #define FP_NINF    _FPCLASS_NINF |  | ||||||
| #define FP_PINF    _FPCLASS_PINF |  | ||||||
| #define FP_NDENORM _FPCLASS_ND |  | ||||||
| #define FP_PDENORM _FPCLASS_PD |  | ||||||
| #define FP_NZERO   _FPCLASS_NZ |  | ||||||
| #define FP_PZERO   _FPCLASS_PZ |  | ||||||
| #define FP_NNORM   _FPCLASS_NN |  | ||||||
| #define FP_PNORM   _FPCLASS_PN |  | ||||||
|  |  | ||||||
| #endif /* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| /* This require msvcr70.dll or higher. */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0700 |  | ||||||
| _CRTIMP int __cdecl _set_SSE2_enable (int); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0700 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef __NO_ISOCEXT |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
| 	|| !defined __STRICT_ANSI__ || defined __cplusplus |  | ||||||
|  |  | ||||||
| #if __MINGW_GNUC_PREREQ(3, 3) |  | ||||||
| #define HUGE_VALF	__builtin_huge_valf() |  | ||||||
| #define HUGE_VALL	__builtin_huge_vall() |  | ||||||
| #define INFINITY	__builtin_inf() |  | ||||||
| #define NAN		__builtin_nan("") |  | ||||||
| #else |  | ||||||
| extern const float __INFF; |  | ||||||
| #define HUGE_VALF __INFF |  | ||||||
| extern const long double  __INFL; |  | ||||||
| #define HUGE_VALL __INFL |  | ||||||
| #define INFINITY HUGE_VALF |  | ||||||
| extern const double __QNAN; |  | ||||||
| #define NAN __QNAN |  | ||||||
| #endif /* __MINGW_GNUC_PREREQ(3, 3) */ |  | ||||||
|  |  | ||||||
| /* Use the compiler's builtin define for FLT_EVAL_METHOD to |  | ||||||
|    set float_t and double_t.  */ |  | ||||||
| #if defined(__FLT_EVAL_METHOD__)   |  | ||||||
| # if ( __FLT_EVAL_METHOD__== 0) |  | ||||||
| typedef float float_t; |  | ||||||
| typedef double double_t; |  | ||||||
| # elif (__FLT_EVAL_METHOD__ == 1) |  | ||||||
| typedef double float_t; |  | ||||||
| typedef double double_t; |  | ||||||
| # elif (__FLT_EVAL_METHOD__ == 2) |  | ||||||
| typedef long double float_t; |  | ||||||
| typedef long double double_t; |  | ||||||
| #endif |  | ||||||
| #else /* ix87 FPU default */ |  | ||||||
| typedef long double float_t; |  | ||||||
| typedef long double double_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* 7.12.3.1 */ |  | ||||||
| /* |  | ||||||
|    Return values for fpclassify. |  | ||||||
|    These are based on Intel x87 fpu condition codes |  | ||||||
|    in the high byte of status word and differ from |  | ||||||
|    the return values for MS IEEE 754 extension _fpclass() |  | ||||||
| */ |  | ||||||
| #define FP_NAN		0x0100 |  | ||||||
| #define FP_NORMAL	0x0400 |  | ||||||
| #define FP_INFINITE	(FP_NAN | FP_NORMAL) |  | ||||||
| #define FP_ZERO		0x4000 |  | ||||||
| #define FP_SUBNORMAL	(FP_NORMAL | FP_ZERO) |  | ||||||
| /* 0x0200 is signbit mask */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|   We can't inline float or double, because we want to ensure truncation |  | ||||||
|   to semantic type before classification.  |  | ||||||
|   (A normal long double value might become subnormal when  |  | ||||||
|   converted to double, and zero when converted to float.) |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| extern int __cdecl __fpclassifyf (float); |  | ||||||
| extern int __cdecl __fpclassify (double); |  | ||||||
| extern int __cdecl __fpclassifyl (long double); |  | ||||||
|  |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __fpclassifyl (long double x){ |  | ||||||
|   unsigned short sw; |  | ||||||
|   __asm__ ("fxam; fstsw %%ax;" : "=a" (sw): "t" (x)); |  | ||||||
|   return sw & (FP_NAN | FP_NORMAL | FP_ZERO ); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define fpclassify(x) (sizeof (x) == sizeof (float) ? __fpclassifyf (x)	  \ |  | ||||||
| 		       : sizeof (x) == sizeof (double) ? __fpclassify (x) \ |  | ||||||
| 		       : __fpclassifyl (x)) |  | ||||||
|  |  | ||||||
| /* 7.12.3.2 */ |  | ||||||
| #define isfinite(x) ((fpclassify(x) & FP_NAN) == 0) |  | ||||||
|  |  | ||||||
| /* 7.12.3.3 */ |  | ||||||
| #define isinf(x) (fpclassify(x) == FP_INFINITE) |  | ||||||
|  |  | ||||||
| /* 7.12.3.4 */ |  | ||||||
| /* We don't need to worry about truncation here: |  | ||||||
|    A NaN stays a NaN. */ |  | ||||||
| extern int __cdecl __isnan (double); |  | ||||||
| extern int __cdecl __isnanf (float); |  | ||||||
| extern int __cdecl __isnanl (long double); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __isnan (double _x) |  | ||||||
| { |  | ||||||
|   unsigned short sw; |  | ||||||
|   __asm__ ("fxam;" |  | ||||||
| 	   "fstsw %%ax": "=a" (sw) : "t" (_x)); |  | ||||||
|   return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) |  | ||||||
|     == FP_NAN; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __isnanf (float _x) |  | ||||||
| { |  | ||||||
|   unsigned short sw; |  | ||||||
|   __asm__ ("fxam;" |  | ||||||
| 	    "fstsw %%ax": "=a" (sw) : "t" (_x)); |  | ||||||
|   return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) |  | ||||||
|     == FP_NAN; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __isnanl (long double _x) |  | ||||||
| { |  | ||||||
|   unsigned short sw; |  | ||||||
|   __asm__ ("fxam;" |  | ||||||
| 	    "fstsw %%ax": "=a" (sw) : "t" (_x)); |  | ||||||
|   return (sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) |  | ||||||
|     == FP_NAN; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define isnan(x) (sizeof (x) == sizeof (float) ? __isnanf (x)	\ |  | ||||||
| 		  : sizeof (x) == sizeof (double) ? __isnan (x)	\ |  | ||||||
| 		  : __isnanl (x)) |  | ||||||
|  |  | ||||||
| /* 7.12.3.5 */ |  | ||||||
| #define isnormal(x) (fpclassify(x) == FP_NORMAL) |  | ||||||
|  |  | ||||||
| /* 7.12.3.6 The signbit macro */ |  | ||||||
| extern int __cdecl __signbit (double); |  | ||||||
| extern int __cdecl __signbitf (float); |  | ||||||
| extern int __cdecl __signbitl (long double); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __signbit (double x) { |  | ||||||
|   unsigned short stw; |  | ||||||
|   __asm__ ( "fxam; fstsw %%ax;": "=a" (stw) : "t" (x)); |  | ||||||
|   return (stw & 0x0200) != 0; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __signbitf (float x) { |  | ||||||
|   unsigned short stw; |  | ||||||
|   __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x)); |  | ||||||
|   return (stw & 0x0200) != 0; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __signbitl (long double x) { |  | ||||||
|   unsigned short stw; |  | ||||||
|   __asm__ ("fxam; fstsw %%ax;": "=a" (stw) : "t" (x)); |  | ||||||
|   return (stw & 0x0200) != 0; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x)	\ |  | ||||||
| 		    : sizeof (x) == sizeof (double) ? __signbit (x)	\ |  | ||||||
| 		    : __signbitl (x)) |  | ||||||
|  |  | ||||||
| /* 7.12.4 Trigonometric functions: Double in C89 */ |  | ||||||
| extern float __cdecl sinf (float); |  | ||||||
| extern long double __cdecl sinl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl cosf (float); |  | ||||||
| extern long double __cdecl cosl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl tanf (float); |  | ||||||
| extern long double __cdecl tanl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl asinf (float); |  | ||||||
| extern long double __cdecl asinl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl acosf (float); |  | ||||||
| extern long double __cdecl acosl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl atanf (float); |  | ||||||
| extern long double __cdecl atanl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl atan2f (float, float); |  | ||||||
| extern long double __cdecl atan2l (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.5 Hyperbolic functions: Double in C89  */ |  | ||||||
| extern float __cdecl sinhf (float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl sinhf (float x) |  | ||||||
|   {return (float) sinh (x);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl sinhl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl coshf (float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl coshf (float x) |  | ||||||
|   {return (float) cosh (x);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl coshl (long double); |  | ||||||
|  |  | ||||||
| extern float __cdecl tanhf (float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl tanhf (float x) |  | ||||||
|   {return (float) tanh (x);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl tanhl (long double); |  | ||||||
|  |  | ||||||
| /* Inverse hyperbolic trig functions  */  |  | ||||||
| /* 7.12.5.1 */ |  | ||||||
| extern double __cdecl acosh (double); |  | ||||||
| extern float __cdecl acoshf (float); |  | ||||||
| extern long double __cdecl acoshl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.5.2 */ |  | ||||||
| extern double __cdecl asinh (double); |  | ||||||
| extern float __cdecl asinhf (float); |  | ||||||
| extern long double __cdecl asinhl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.5.3 */ |  | ||||||
| extern double __cdecl atanh (double); |  | ||||||
| extern float __cdecl atanhf  (float); |  | ||||||
| extern long double __cdecl atanhl (long double); |  | ||||||
|  |  | ||||||
| /* Exponentials and logarithms  */ |  | ||||||
| /* 7.12.6.1 Double in C89 */ |  | ||||||
| extern float __cdecl expf (float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl expf (float x) |  | ||||||
|   {return (float) exp (x);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl expl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.2 */ |  | ||||||
| extern double __cdecl exp2(double); |  | ||||||
| extern float __cdecl exp2f(float); |  | ||||||
| extern long double __cdecl exp2l(long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.3 The expm1 functions */ |  | ||||||
| /* TODO: These could be inlined */ |  | ||||||
| extern double __cdecl expm1(double); |  | ||||||
| extern float __cdecl expm1f(float); |  | ||||||
| extern long double __cdecl expm1l(long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.4 Double in C89 */ |  | ||||||
| extern float __cdecl frexpf (float, int*); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl frexpf (float x, int* expn) |  | ||||||
|   {return (float) frexp (x, expn);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl frexpl (long double, int*); |  | ||||||
|  |  | ||||||
| /* 7.12.6.5 */ |  | ||||||
| #define FP_ILOGB0 ((int)0x80000000) |  | ||||||
| #define FP_ILOGBNAN ((int)0x80000000) |  | ||||||
| extern int __cdecl ilogb (double); |  | ||||||
| extern int __cdecl ilogbf (float); |  | ||||||
| extern int __cdecl ilogbl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.6  Double in C89 */ |  | ||||||
| extern float __cdecl ldexpf (float, int); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl ldexpf (float x, int expn) |  | ||||||
|   {return (float) ldexp (x, expn);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl ldexpl (long double, int); |  | ||||||
|  |  | ||||||
| /* 7.12.6.7 Double in C89 */ |  | ||||||
| extern float __cdecl logf (float); |  | ||||||
| extern long double __cdecl logl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.8 Double in C89 */ |  | ||||||
| extern float __cdecl log10f (float); |  | ||||||
| extern long double __cdecl log10l (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.9 */ |  | ||||||
| extern double __cdecl log1p(double); |  | ||||||
| extern float __cdecl log1pf(float); |  | ||||||
| extern long double __cdecl log1pl(long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.10 */ |  | ||||||
| extern double __cdecl log2 (double); |  | ||||||
| extern float __cdecl log2f (float); |  | ||||||
| extern long double __cdecl log2l (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.6.11 */ |  | ||||||
| extern double __cdecl logb (double); |  | ||||||
| extern float __cdecl logbf (float); |  | ||||||
| extern long double __cdecl logbl (long double); |  | ||||||
|  |  | ||||||
| /* Inline versions.  GCC-4.0+ can do a better fast-math optimization |  | ||||||
|    with __builtins. */  |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| #if !(__MINGW_GNUC_PREREQ (4, 0) && defined __FAST_MATH__ ) |  | ||||||
| __CRT_INLINE double __cdecl logb (double x) |  | ||||||
| { |  | ||||||
|   double res; |  | ||||||
|   __asm__ ("fxtract\n\t" |  | ||||||
|        "fstp	%%st" : "=t" (res) : "0" (x)); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE float __cdecl logbf (float x) |  | ||||||
| { |  | ||||||
|   float res; |  | ||||||
|   __asm__ ("fxtract\n\t" |  | ||||||
|        "fstp	%%st" : "=t" (res) : "0" (x)); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long double __cdecl logbl (long double x) |  | ||||||
| { |  | ||||||
|   long double res; |  | ||||||
|   __asm__ ("fxtract\n\t" |  | ||||||
|        "fstp	%%st" : "=t" (res) : "0" (x)); |  | ||||||
|   return res; |  | ||||||
| } |  | ||||||
| #endif /* !defined __FAST_MATH__ || !__MINGW_GNUC_PREREQ (4, 0) */ |  | ||||||
| #endif /* !defined __NO_INLINE__ */ |  | ||||||
|  |  | ||||||
| /* 7.12.6.12  Double in C89 */ |  | ||||||
| extern float __cdecl modff (float, float*); |  | ||||||
| extern long double __cdecl modfl (long double, long double*); |  | ||||||
|  |  | ||||||
| /* 7.12.6.13 */ |  | ||||||
| extern double __cdecl scalbn (double, int); |  | ||||||
| extern float __cdecl scalbnf (float, int); |  | ||||||
| extern long double __cdecl scalbnl (long double, int); |  | ||||||
|  |  | ||||||
| extern double __cdecl scalbln (double, long); |  | ||||||
| extern float __cdecl scalblnf (float, long); |  | ||||||
| extern long double __cdecl scalblnl (long double, long); |  | ||||||
|  |  | ||||||
| /* 7.12.7.1 */ |  | ||||||
| /* Implementations adapted from Cephes versions */  |  | ||||||
| extern double __cdecl cbrt (double); |  | ||||||
| extern float __cdecl cbrtf (float); |  | ||||||
| extern long double __cdecl cbrtl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.7.2 The fabs functions: Double in C89 */ |  | ||||||
| extern  float __cdecl fabsf (float x); |  | ||||||
| extern long double __cdecl fabsl (long double x); |  | ||||||
|  |  | ||||||
| /* 7.12.7.3  */ |  | ||||||
| extern double __cdecl hypot (double, double); /* in libmoldname.a */ |  | ||||||
| extern float __cdecl hypotf (float, float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl hypotf (float x, float y) |  | ||||||
|   { return (float) hypot (x, y);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl hypotl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.7.4 The pow functions. Double in C89 */ |  | ||||||
| extern float __cdecl powf (float, float); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE float __cdecl powf (float x, float y) |  | ||||||
|   {return (float) pow (x, y);} |  | ||||||
| #endif |  | ||||||
| extern long double __cdecl powl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.7.5 The sqrt functions. Double in C89. */ |  | ||||||
| extern float __cdecl sqrtf (float); |  | ||||||
| extern long double __cdecl sqrtl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.8.1 The erf functions  */ |  | ||||||
| extern double __cdecl erf (double); |  | ||||||
| extern float __cdecl erff (float); |  | ||||||
| extern long double __cdecl erfl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.8.2 The erfc functions  */ |  | ||||||
| extern double __cdecl erfc (double); |  | ||||||
| extern float __cdecl erfcf (float); |  | ||||||
| extern long double __cdecl erfcl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.8.3 The lgamma functions */ |  | ||||||
| extern double __cdecl lgamma (double); |  | ||||||
| extern float __cdecl lgammaf (float); |  | ||||||
| extern long double __cdecl lgammal (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.8.4 The tgamma functions */ |  | ||||||
| extern double __cdecl tgamma (double); |  | ||||||
| extern float __cdecl tgammaf (float); |  | ||||||
| extern long double __cdecl tgammal (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.1 Double in C89 */ |  | ||||||
| extern float __cdecl ceilf (float); |  | ||||||
| extern long double __cdecl ceill (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.2 Double in C89 */ |  | ||||||
| extern float __cdecl floorf (float); |  | ||||||
| extern long double __cdecl floorl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.3 */ |  | ||||||
| extern double __cdecl nearbyint ( double); |  | ||||||
| extern float __cdecl nearbyintf (float); |  | ||||||
| extern long double __cdecl nearbyintl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.4 */ |  | ||||||
| /* round, using fpu control word settings */ |  | ||||||
| extern double __cdecl rint (double); |  | ||||||
| extern float __cdecl rintf (float); |  | ||||||
| extern long double __cdecl rintl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.5 */ |  | ||||||
| extern long __cdecl lrint (double); |  | ||||||
| extern long __cdecl lrintf (float); |  | ||||||
| extern long __cdecl lrintl (long double); |  | ||||||
|  |  | ||||||
| extern long long __cdecl llrint (double); |  | ||||||
| extern long long __cdecl llrintf (float); |  | ||||||
| extern long long __cdecl llrintl (long double); |  | ||||||
|  |  | ||||||
| /* Inline versions of above.  |  | ||||||
|    GCC 4.0+ can do a better fast-math job with __builtins. */ |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| #if !(__MINGW_GNUC_PREREQ (4, 0) && defined __FAST_MATH__ ) |  | ||||||
| __CRT_INLINE double __cdecl rint (double x) |  | ||||||
| { |  | ||||||
|   double retval; |  | ||||||
|   __asm__ ("frndint;": "=t" (retval) : "0" (x)); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE float __cdecl rintf (float x) |  | ||||||
| { |  | ||||||
|   float retval; |  | ||||||
|   __asm__ ("frndint;" : "=t" (retval) : "0" (x) ); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long double __cdecl rintl (long double x) |  | ||||||
| { |  | ||||||
|   long double retval; |  | ||||||
|   __asm__ ("frndint;" : "=t" (retval) : "0" (x) ); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long __cdecl lrint (double x)  |  | ||||||
| { |  | ||||||
|   long retval;   |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpl %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long __cdecl lrintf (float x)  |  | ||||||
| { |  | ||||||
|   long retval; |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpl %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long __cdecl lrintl (long double x)  |  | ||||||
| { |  | ||||||
|   long retval; |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpl %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long long __cdecl llrint (double x) |  | ||||||
| { |  | ||||||
|   long long retval; |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpll %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long long __cdecl llrintf (float x) |  | ||||||
| { |  | ||||||
|   long long retval; |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpll %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE long long __cdecl llrintl (long double x)  |  | ||||||
| { |  | ||||||
|   long long retval; |  | ||||||
|   __asm__ __volatile__ |  | ||||||
|     ("fistpll %0"  : "=m" (retval) : "t" (x) : "st"); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
| #endif /* !__FAST_MATH__ || !__MINGW_GNUC_PREREQ (4,0)  */ |  | ||||||
| #endif /* !defined __NO_INLINE */ |  | ||||||
|  |  | ||||||
| /* 7.12.9.6 */ |  | ||||||
| /* round away from zero, regardless of fpu control word settings */ |  | ||||||
| extern double __cdecl round (double); |  | ||||||
| extern float __cdecl roundf (float); |  | ||||||
| extern long double __cdecl roundl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.7  */ |  | ||||||
| extern long __cdecl lround (double); |  | ||||||
| extern long __cdecl lroundf (float); |  | ||||||
| extern long __cdecl lroundl (long double); |  | ||||||
|  |  | ||||||
| extern long long __cdecl llround (double); |  | ||||||
| extern long long __cdecl llroundf (float); |  | ||||||
| extern long long __cdecl llroundl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.9.8 */ |  | ||||||
| /* round towards zero, regardless of fpu control word settings */ |  | ||||||
| extern double __cdecl trunc (double); |  | ||||||
| extern float __cdecl truncf (float); |  | ||||||
| extern long double __cdecl truncl (long double); |  | ||||||
|  |  | ||||||
| /* 7.12.10.1 Double in C89 */ |  | ||||||
| extern float __cdecl fmodf (float, float); |  | ||||||
| extern long double __cdecl fmodl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.10.2 */  |  | ||||||
| extern double __cdecl remainder (double, double); |  | ||||||
| extern float __cdecl remainderf (float, float); |  | ||||||
| extern long double __cdecl remainderl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.10.3 */ |  | ||||||
| extern double __cdecl remquo(double, double, int *); |  | ||||||
| extern float __cdecl remquof(float, float, int *); |  | ||||||
| extern long double __cdecl remquol(long double, long double, int *); |  | ||||||
|  |  | ||||||
| /* 7.12.11.1 */ |  | ||||||
| extern double __cdecl copysign (double, double); /* in libmoldname.a */ |  | ||||||
| extern float __cdecl copysignf (float, float); |  | ||||||
| extern long double __cdecl copysignl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.11.2 Return a NaN */ |  | ||||||
| extern double __cdecl nan(const char *tagp); |  | ||||||
| extern float __cdecl nanf(const char *tagp); |  | ||||||
| extern long double __cdecl nanl(const char *tagp); |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #define _nan() nan("") |  | ||||||
| #define _nanf() nanf("") |  | ||||||
| #define _nanl() nanl("") |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* 7.12.11.3 */ |  | ||||||
| extern double __cdecl nextafter (double, double); /* in libmoldname.a */ |  | ||||||
| extern float __cdecl nextafterf (float, float); |  | ||||||
| extern long double __cdecl nextafterl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.11.4 The nexttoward functions */ |  | ||||||
| extern double __cdecl nexttoward (double,  long double); |  | ||||||
| extern float __cdecl nexttowardf (float,  long double); |  | ||||||
| extern long double __cdecl nexttowardl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.12.1 */ |  | ||||||
| /*  x > y ? (x - y) : 0.0  */ |  | ||||||
| extern double __cdecl fdim (double x, double y); |  | ||||||
| extern float __cdecl fdimf (float x, float y); |  | ||||||
| extern long double __cdecl fdiml (long double x, long double y); |  | ||||||
|  |  | ||||||
| /* fmax and fmin. |  | ||||||
|    NaN arguments are treated as missing data: if one argument is a NaN |  | ||||||
|    and the other numeric, then these functions choose the numeric |  | ||||||
|    value. */ |  | ||||||
|  |  | ||||||
| /* 7.12.12.2 */ |  | ||||||
| extern double __cdecl fmax  (double, double); |  | ||||||
| extern float __cdecl fmaxf (float, float); |  | ||||||
| extern long double __cdecl fmaxl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.12.3 */ |  | ||||||
| extern double __cdecl fmin (double, double); |  | ||||||
| extern float __cdecl fminf (float, float); |  | ||||||
| extern long double __cdecl fminl (long double, long double); |  | ||||||
|  |  | ||||||
| /* 7.12.13.1 */ |  | ||||||
| /* return x * y + z as a ternary op */  |  | ||||||
| extern double __cdecl fma (double, double, double); |  | ||||||
| extern float __cdecl fmaf (float, float, float); |  | ||||||
| extern long double __cdecl fmal (long double, long double, long double); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* 7.12.14 */ |  | ||||||
| /*  |  | ||||||
|  *  With these functions, comparisons involving quiet NaNs set the FP |  | ||||||
|  *  condition code to "unordered".  The IEEE floating-point spec |  | ||||||
|  *  dictates that the result of floating-point comparisons should be |  | ||||||
|  *  false whenever a NaN is involved, with the exception of the != op,  |  | ||||||
|  *  which always returns true: yes, (NaN != NaN) is true). |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #if __GNUC__ >= 3 |  | ||||||
|  |  | ||||||
| #define isgreater(x, y) __builtin_isgreater(x, y) |  | ||||||
| #define isgreaterequal(x, y) __builtin_isgreaterequal(x, y) |  | ||||||
| #define isless(x, y) __builtin_isless(x, y) |  | ||||||
| #define islessequal(x, y) __builtin_islessequal(x, y) |  | ||||||
| #define islessgreater(x, y) __builtin_islessgreater(x, y) |  | ||||||
| #define isunordered(x, y) __builtin_isunordered(x, y) |  | ||||||
|  |  | ||||||
| #else |  | ||||||
| /*  helper  */ |  | ||||||
| extern int  __cdecl __fp_unordered_compare (long double, long double); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int  __cdecl |  | ||||||
| __fp_unordered_compare (long double x, long double y){ |  | ||||||
|   unsigned short retval; |  | ||||||
|   __asm__ ("fucom %%st(1);" |  | ||||||
| 	   "fnstsw;": "=a" (retval) : "t" (x), "u" (y)); |  | ||||||
|   return retval; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define isgreater(x, y) ((__fp_unordered_compare(x, y) \ |  | ||||||
| 			   & 0x4500) == 0) |  | ||||||
| #define isless(x, y) ((__fp_unordered_compare (y, x) \ |  | ||||||
|                        & 0x4500) == 0) |  | ||||||
| #define isgreaterequal(x, y) ((__fp_unordered_compare (x, y) \ |  | ||||||
|                                & FP_INFINITE) == 0) |  | ||||||
| #define islessequal(x, y) ((__fp_unordered_compare(y, x) \ |  | ||||||
| 			    & FP_INFINITE) == 0) |  | ||||||
| #define islessgreater(x, y) ((__fp_unordered_compare(x, y) \ |  | ||||||
| 			      & FP_SUBNORMAL) == 0) |  | ||||||
| #define isunordered(x, y) ((__fp_unordered_compare(x, y) \ |  | ||||||
| 			    & 0x4500) == 0x4500) |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* __STDC_VERSION__ >= 199901L */ |  | ||||||
| #endif /* __NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif	/* Not _MATH_H_ */ |  | ||||||
| @@ -1,97 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * mbctype.h |  | ||||||
|  * |  | ||||||
|  * Functions for testing multibyte character types and converting characters. |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _MBCTYPE_H_ |  | ||||||
| #define _MBCTYPE_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* return values for _mbsbtype  and  _mbbtype in mbstring.h */ |  | ||||||
| #define _MBC_SINGLE 0  |  | ||||||
| #define _MBC_LEAD 1   |  | ||||||
| #define _MBC_TRAIL 2 |  | ||||||
| #define _MBC_ILLEGAL (-1) |  | ||||||
|  |  | ||||||
| /*  args for setmbcp (in lieu of actual codepage)  */ |  | ||||||
| #define _MB_CP_SBCS 0 |  | ||||||
| #define _MB_CP_OEM (-2) |  | ||||||
| #define _MB_CP_ANSI (-3) |  | ||||||
| #define _MB_CP_LOCALE (-4) |  | ||||||
|  |  | ||||||
| /* TODO: bit masks */ |  | ||||||
| /* |  | ||||||
| #define _MS |  | ||||||
| #define _MP |  | ||||||
| #define _M1 |  | ||||||
| #define _M2 |  | ||||||
| #define _SBUP |  | ||||||
| #define _SBLOW |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus  |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _setmbcp (int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _getmbcp (void); |  | ||||||
|  |  | ||||||
| /* byte classification  */ |  | ||||||
| /* NB: Corresponding _ismbc* functions are in mbstring.h */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbalpha (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbalnum (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbgraph (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbprint (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbpunct (unsigned int); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbkana (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbkalnum (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbkprint (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbkpunct (unsigned int); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* these are also in mbstring.h */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbblead (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbtrail (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbslead (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbstrail (const unsigned char*, const unsigned char*); |  | ||||||
|  |  | ||||||
| #ifdef __DECLSPEC_SUPPORTED |  | ||||||
| __MINGW_IMPORT unsigned char _mbctype[]; |  | ||||||
| __MINGW_IMPORT unsigned char _mbcasemap[]; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* TODO : _MBCS_ mappings go in tchar.h */ |  | ||||||
|  |  | ||||||
| #endif	/* Not strict ANSI */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _MCTYPE_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,132 +0,0 @@ | |||||||
| /* |  | ||||||
|  * mbstring.h |  | ||||||
|  * |  | ||||||
|  * Protototypes for string functions supporting multibyte characters.  |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _MBSTRING_H_ |  | ||||||
| #define _MBSTRING_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #define __need_size_t |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus  |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| /* character classification */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcalnum (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcalpha (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcdigit (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcgraph (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcprint (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcpunct (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcspace (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbclower (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcupper (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbclegal (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcsymbol (unsigned int); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* also in mbctype.h */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbblead (unsigned int ); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbbtrail (unsigned int ); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbslead ( const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbstrail ( const unsigned char*, const unsigned char*); |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbctolower (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbctoupper (unsigned int); |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _mbccpy (unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbclen (const unsigned char*); |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbbtombc (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbctombb (unsigned int); |  | ||||||
|  |  | ||||||
| /* Return value constants for these are defined in mbctype.h.  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbbtype (unsigned char, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsbtype (const unsigned char*, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbscpy (unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsncpy (unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsnbcpy (unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsset (unsigned char*, unsigned int); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsnset (unsigned char*, unsigned int, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsnbset (unsigned char*, unsigned int, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsdup (const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsrev (unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbscat (unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsncat (unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsnbcat (unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbslen (const unsigned char*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbsnbcnt (const unsigned char*, size_t); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbsnccnt (const unsigned char*, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbschr (const unsigned char*, unsigned int); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsrchr (const unsigned char*, unsigned int); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbsspn (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW _mbscspn (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsspnp (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbspbrk (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbscmp (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsicmp (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsncmp (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnicmp (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnbcmp (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnbicmp (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbscoll (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsicoll (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsncoll (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnicoll (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnbcoll (const unsigned char*, const unsigned char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _mbsnbicoll (const unsigned char*, const unsigned char*, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsinc (const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsninc (const unsigned char*, size_t); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsdec (const unsigned char*, const unsigned char*); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbsnextc  (const unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbslwr (unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbsupr (unsigned char*); |  | ||||||
| _CRTIMP unsigned char* __cdecl __MINGW_NOTHROW  _mbstok (unsigned char*, const unsigned char*); |  | ||||||
|  |  | ||||||
| /* Kanji */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbchira (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbckata (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcl0 (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcl1 (unsigned int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _ismbcl2 (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbcjistojms (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbcjmstojis (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbctohira (unsigned int); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _mbctokata (unsigned int); |  | ||||||
|  |  | ||||||
| #endif	/* Not strict ANSI */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
| #endif	/* Not _MBSTRING_H_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * mem.h maps to string.h |  | ||||||
|  */ |  | ||||||
| #include <string.h> |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * memory.h maps to the standard string.h header. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include	<string.h> |  | ||||||
| @@ -1,161 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * process.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Function calls for spawning child processes. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_PROCESS_H_ |  | ||||||
| #define	_PROCESS_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #include <sys/types.h> /* For _pid_t and pid_t. */ |  | ||||||
| #include <stdint.h>  /* For intptr_t. */ |  | ||||||
| /* |  | ||||||
|  * Constants for cwait actions. |  | ||||||
|  * Obsolete for Win32. |  | ||||||
|  */ |  | ||||||
| #define	_WAIT_CHILD		0 |  | ||||||
| #define	_WAIT_GRANDCHILD	1 |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| #define	WAIT_CHILD		_WAIT_CHILD |  | ||||||
| #define	WAIT_GRANDCHILD		_WAIT_GRANDCHILD |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Mode constants for spawn functions. |  | ||||||
|  */ |  | ||||||
| #define	_P_WAIT		0 |  | ||||||
| #define	_P_NOWAIT	1 |  | ||||||
| #define	_P_OVERLAY	2 |  | ||||||
| #define	_OLD_P_OVERLAY	_P_OVERLAY |  | ||||||
| #define	_P_NOWAITO	3 |  | ||||||
| #define	_P_DETACH	4 |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| #define	P_WAIT		_P_WAIT |  | ||||||
| #define	P_NOWAIT	_P_NOWAIT |  | ||||||
| #define	P_OVERLAY	_P_OVERLAY |  | ||||||
| #define	OLD_P_OVERLAY	_OLD_P_OVERLAY |  | ||||||
| #define	P_NOWAITO	_P_NOWAITO |  | ||||||
| #define	P_DETACH	_P_DETACH |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _cexit(void); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _c_exit(void); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _cwait (int*, _pid_t, int); |  | ||||||
|  |  | ||||||
| _CRTIMP _pid_t __cdecl __MINGW_NOTHROW _getpid(void); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execl	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execle	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execlp	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execlpe	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execv	(const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execve	(const char*, const char* const*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execvp	(const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _execvpe	(const char*, const char* const*, const char* const*); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnl	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnle	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnlp	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnlpe	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnv	(int, const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnve	(int, const char*, const char* const*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnvp	(int, const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnvpe	(int, const char*, const char* const*, const char* const*); |  | ||||||
|  |  | ||||||
| #ifndef _WPROCESS_DEFINED |  | ||||||
| /* Also in wchar.h - keep in sync */ |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecl	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecle	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclp	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclpe	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecv	(const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecve	(const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvp	(const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvpe	(const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnl	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnle	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlp	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlpe	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnv	(int, const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnve	(int, const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvp	(int, const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvpe	(int, const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
|  |  | ||||||
| #define _WPROCESS_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The functions _beginthreadex and _endthreadex are not provided by CRTDLL. |  | ||||||
|  * They are provided by MSVCRT. |  | ||||||
|  * |  | ||||||
|  * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread, |  | ||||||
|  * making for race conditions if you are not careful. Basically you have to |  | ||||||
|  * make sure that no-one is going to do *anything* with the thread handle |  | ||||||
|  * after the thread calls _endthread or returns from the thread function. |  | ||||||
|  * |  | ||||||
|  * NOTE: No old names for these functions. Use the underscore. |  | ||||||
|  */ |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW |  | ||||||
| 	_beginthread	(void (*)(void *), unsigned, void*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _endthread	(void); |  | ||||||
|  |  | ||||||
| #ifdef	__MSVCRT__ |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW |  | ||||||
| 	_beginthreadex	(void *, unsigned, unsigned (__stdcall *) (void *),  |  | ||||||
| 			 void*, unsigned, unsigned*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _endthreadex (unsigned); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* |  | ||||||
|  * Functions without the leading underscore, for portability. These functions |  | ||||||
|  * live in liboldnames.a. |  | ||||||
|  */ |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW cwait (int*, pid_t, int); |  | ||||||
| _CRTIMP pid_t __cdecl __MINGW_NOTHROW getpid (void); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execl	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execle	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execlp	(const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execlpe	(const char*, const char*,...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execv	(const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execve	(const char*, const char* const*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execvp	(const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW execvpe	(const char*, const char* const*, const char* const*); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnl	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnle	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnlp	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnlpe	(int, const char*, const char*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnv	(int, const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnve	(int, const char*, const char* const*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnvp	(int, const char*, const char* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW spawnvpe	(int, const char*, const char* const*, const char* const*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* _PROCESS_H_ not defined */ |  | ||||||
| @@ -1,106 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * search.h |  | ||||||
|  * |  | ||||||
|  * Functions for searching and sorting. |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * Contributors: |  | ||||||
|  *  Created by Danny Smith  <dannysmith@users.sourceforge.net> |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SEARCH_H_ |  | ||||||
| #define _SEARCH_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _SIZE_T_DEFINED |  | ||||||
| typedef unsigned int size_t; |  | ||||||
| #define _SIZE_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* bsearch and qsort are also declared in stdlib.h */ |  | ||||||
| _CRTIMP void* __cdecl bsearch (const void*, const void*, size_t, size_t,  |  | ||||||
| 			       int (*)(const void*, const void*)); |  | ||||||
| _CRTIMP void __cdecl qsort (void*, size_t, size_t, |  | ||||||
| 			    int (*)(const void*, const void*)); |  | ||||||
|  |  | ||||||
| _CRTIMP void* __cdecl _lfind (const void*, const void*, unsigned int*, |  | ||||||
| 			      unsigned int, int (*)(const void*, const void*)); |  | ||||||
| _CRTIMP void* __cdecl _lsearch (const void*, void*, unsigned int*, unsigned int, |  | ||||||
| 				int (*)(const void*, const void*)); |  | ||||||
| /* |  | ||||||
| Documentation for these POSIX definitions and prototypes can be found in  |  | ||||||
| The Open Group Base Specifications Issue 6 |  | ||||||
| IEEE Std 1003.1, 2004 Edition. |  | ||||||
| eg:  http://www.opengroup.org/onlinepubs/009695399/functions/twalk.html |  | ||||||
| */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| typedef struct entry { |  | ||||||
| 	char *key; |  | ||||||
| 	void *data; |  | ||||||
| } ENTRY; |  | ||||||
|  |  | ||||||
| typedef enum { |  | ||||||
| 	FIND, |  | ||||||
| 	ENTER |  | ||||||
| } ACTION; |  | ||||||
|  |  | ||||||
| typedef enum { |  | ||||||
| 	preorder, |  | ||||||
| 	postorder, |  | ||||||
| 	endorder, |  | ||||||
| 	leaf |  | ||||||
| } VISIT; |  | ||||||
|  |  | ||||||
| #ifdef _SEARCH_PRIVATE |  | ||||||
| typedef struct node { |  | ||||||
| 	char         *key; |  | ||||||
| 	struct node  *llink, *rlink; |  | ||||||
| } node_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| void * __cdecl tdelete (const void * __restrict__, void ** __restrict__, |  | ||||||
| 			int (*)(const void *, const void *)) |  | ||||||
| 			__MINGW_ATTRIB_NONNULL (1)  __MINGW_ATTRIB_NONNULL (3); |  | ||||||
| void * __cdecl tfind (const void *, void * const *, |  | ||||||
| 		      int (*)(const void *, const void *)) |  | ||||||
| 		      __MINGW_ATTRIB_NONNULL (1)  __MINGW_ATTRIB_NONNULL (3); |  | ||||||
| void * __cdecl tsearch (const void *, void **,  |  | ||||||
| 			int (*)(const void *, const void *)) |  | ||||||
| 			__MINGW_ATTRIB_NONNULL (1)  __MINGW_ATTRIB_NONNULL (3); |  | ||||||
| void __cdecl twalk (const void *, void (*)(const void *, VISIT, int)); |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| _CRTIMP void* __cdecl lfind (const void*, const void*, unsigned int*, |  | ||||||
| 			     unsigned int, int (*)(const void*, const void*)); |  | ||||||
| _CRTIMP void* __cdecl lsearch (const void*, void*, unsigned int*, unsigned int, |  | ||||||
| 			       int (*)(const void*, const void*)); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif /*  _SEARCH_H_ */ |  | ||||||
| @@ -1,56 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * setjmp.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Declarations supporting setjmp and longjump, a method for avoiding |  | ||||||
|  * the normal function call return sequence. (Bleah!) |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SETJMP_H_ |  | ||||||
| #define _SETJMP_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The buffer used by setjmp to store the information used by longjmp |  | ||||||
|  * to perform it's evil goto-like work. The size of this buffer was |  | ||||||
|  * determined through experimentation; it's contents are a mystery. |  | ||||||
|  * NOTE: This was determined on an i386 (actually a Pentium). The |  | ||||||
|  *       contents could be different on an Alpha or something else. |  | ||||||
|  */ |  | ||||||
| #define _JBLEN 16 |  | ||||||
| #define _JBTYPE int |  | ||||||
| typedef _JBTYPE jmp_buf[_JBLEN]; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The function provided by CRTDLL which appears to do the actual work |  | ||||||
|  * of setjmp. |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _setjmp (jmp_buf); |  | ||||||
|  |  | ||||||
| #define	setjmp(x)	_setjmp(x) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Return to the last setjmp call and act as if setjmp had returned |  | ||||||
|  * nVal (which had better be non-zero!). |  | ||||||
|  */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW longjmp (jmp_buf, int) __MINGW_ATTRIB_NORETURN; |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _SETJMP_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,33 +0,0 @@ | |||||||
| /* |  | ||||||
|  * share.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Constants for file sharing functions. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_SHARE_H_ |  | ||||||
| #define	_SHARE_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define _SH_COMPAT	0x00	/* Compatibility */ |  | ||||||
| #define	_SH_DENYRW	0x10	/* Deny read/write */ |  | ||||||
| #define	_SH_DENYWR	0x20	/* Deny write */ |  | ||||||
| #define	_SH_DENYRD	0x30	/* Deny read */ |  | ||||||
| #define	_SH_DENYNO	0x40	/* Deny nothing */ |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
|  |  | ||||||
| /* Non ANSI names */ |  | ||||||
| #define SH_DENYRW _SH_DENYRW |  | ||||||
| #define SH_DENYWR _SH_DENYWR |  | ||||||
| #define SH_DENYRD _SH_DENYRD |  | ||||||
| #define SH_DENYNO _SH_DENYNO |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _SHARE_H_ */ |  | ||||||
| @@ -1,98 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * signal.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * A way to set handlers for exceptional conditions (also known as signals). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_SIGNAL_H_ |  | ||||||
| #define	_SIGNAL_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The actual signal values. Using other values with signal |  | ||||||
|  * produces a SIG_ERR return value. |  | ||||||
|  * |  | ||||||
|  * NOTE: SIGINT is produced when the user presses Ctrl-C. |  | ||||||
|  *       SIGILL has not been tested. |  | ||||||
|  *       SIGFPE doesn't seem to work? |  | ||||||
|  *       SIGSEGV does not catch writing to a NULL pointer (that shuts down |  | ||||||
|  *               your app; can you say "segmentation violation core dump"?). |  | ||||||
|  *       SIGTERM comes from what kind of termination request exactly? |  | ||||||
|  *       SIGBREAK is indeed produced by pressing Ctrl-Break. |  | ||||||
|  *       SIGABRT is produced by calling abort. |  | ||||||
|  * TODO: The above results may be related to not installing an appropriate |  | ||||||
|  *       structured exception handling frame. Results may be better if I ever |  | ||||||
|  *       manage to get the SEH stuff down. |  | ||||||
|  */ |  | ||||||
| #define	SIGINT		2	/* Interactive attention */ |  | ||||||
| #define	SIGILL		4	/* Illegal instruction */ |  | ||||||
| #define	SIGFPE		8	/* Floating point error */ |  | ||||||
| #define	SIGSEGV		11	/* Segmentation violation */ |  | ||||||
| #define	SIGTERM		15	/* Termination request */ |  | ||||||
| #define SIGBREAK	21	/* Control-break */ |  | ||||||
| #define	SIGABRT		22	/* Abnormal termination (abort) */ |  | ||||||
|  |  | ||||||
| #define NSIG 23     /* maximum signal number + 1 */ |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifndef _SIG_ATOMIC_T_DEFINED |  | ||||||
| typedef int sig_atomic_t; |  | ||||||
| #define _SIG_ATOMIC_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The prototypes (below) are the easy part. The hard part is figuring |  | ||||||
|  * out what signals are available and what numbers they are assigned |  | ||||||
|  * along with appropriate values of SIG_DFL and SIG_IGN. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * A pointer to a signal handler function. A signal handler takes a |  | ||||||
|  * single int, which is the signal it handles. |  | ||||||
|  */ |  | ||||||
| typedef	void (*__p_sig_fn_t)(int); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * These are special values of signal handler pointers which are |  | ||||||
|  * used to send a signal to the default handler (SIG_DFL), ignore |  | ||||||
|  * the signal (SIG_IGN), indicate an error return (SIG_ERR), |  | ||||||
|  * get an error (SIG_SGE), or acknowledge (SIG_ACK). |  | ||||||
|  */ |  | ||||||
| #define	SIG_DFL	((__p_sig_fn_t) 0) |  | ||||||
| #define	SIG_IGN	((__p_sig_fn_t) 1) |  | ||||||
| #define	SIG_ERR ((__p_sig_fn_t) -1) |  | ||||||
| #define SIG_SGE ((__p_sig_fn_t) 3) |  | ||||||
| #define SIG_ACK ((__p_sig_fn_t) 4) |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Call signal to set the signal handler for signal sig to the |  | ||||||
|  * function pointed to by handler. Returns a pointer to the |  | ||||||
|  * previous handler, or SIG_ERR if an error occurs. Initially |  | ||||||
|  * unhandled signals defined above will return SIG_DFL. |  | ||||||
|  */ |  | ||||||
| _CRTIMP __p_sig_fn_t __cdecl __MINGW_NOTHROW	signal(int, __p_sig_fn_t); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Raise the signal indicated by sig. Returns non-zero on success. |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	raise (int); |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _SIGNAL_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,207 +0,0 @@ | |||||||
| /* ISO C9x  7.18  Integer types <stdint.h> |  | ||||||
|  * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794) |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz> |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  *  Date: 2000-12-02 |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _STDINT_H |  | ||||||
| #define _STDINT_H |  | ||||||
| #include <_mingw.h> |  | ||||||
| #define __need_wint_t |  | ||||||
| #define __need_wchar_t |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| /* 7.18.1.1  Exact-width integer types */ |  | ||||||
| typedef signed char int8_t; |  | ||||||
| typedef unsigned char   uint8_t; |  | ||||||
| typedef short  int16_t; |  | ||||||
| typedef unsigned short  uint16_t; |  | ||||||
| typedef int  int32_t; |  | ||||||
| typedef unsigned   uint32_t; |  | ||||||
| typedef long long  int64_t; |  | ||||||
| typedef unsigned long long   uint64_t; |  | ||||||
|  |  | ||||||
| /* 7.18.1.2  Minimum-width integer types */ |  | ||||||
| typedef signed char int_least8_t; |  | ||||||
| typedef unsigned char   uint_least8_t; |  | ||||||
| typedef short  int_least16_t; |  | ||||||
| typedef unsigned short  uint_least16_t; |  | ||||||
| typedef int  int_least32_t; |  | ||||||
| typedef unsigned   uint_least32_t; |  | ||||||
| typedef long long  int_least64_t; |  | ||||||
| typedef unsigned long long   uint_least64_t; |  | ||||||
|  |  | ||||||
| /*  7.18.1.3  Fastest minimum-width integer types  |  | ||||||
|  *  Not actually guaranteed to be fastest for all purposes |  | ||||||
|  *  Here we use the exact-width types for 8 and 16-bit ints.  |  | ||||||
|  */ |  | ||||||
| typedef signed char int_fast8_t; |  | ||||||
| typedef unsigned char uint_fast8_t; |  | ||||||
| typedef short  int_fast16_t; |  | ||||||
| typedef unsigned short  uint_fast16_t; |  | ||||||
| typedef int  int_fast32_t; |  | ||||||
| typedef unsigned  int  uint_fast32_t; |  | ||||||
| typedef long long  int_fast64_t; |  | ||||||
| typedef unsigned long long   uint_fast64_t; |  | ||||||
|  |  | ||||||
| /* 7.18.1.4  Integer types capable of holding object pointers */ |  | ||||||
|  |  | ||||||
| #ifndef _INTPTR_T_DEFINED |  | ||||||
| #define _INTPTR_T_DEFINED |  | ||||||
| #ifdef _WIN64 |  | ||||||
|   typedef __int64 intptr_t; |  | ||||||
| #else |  | ||||||
|   typedef int intptr_t; |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _UINTPTR_T_DEFINED |  | ||||||
| #define _UINTPTR_T_DEFINED |  | ||||||
| #ifdef _WIN64 |  | ||||||
|   typedef unsigned __int64 uintptr_t; |  | ||||||
| #else |  | ||||||
|   typedef unsigned int uintptr_t; |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* 7.18.1.5  Greatest-width integer types */ |  | ||||||
| typedef long long  intmax_t; |  | ||||||
| typedef unsigned long long uintmax_t; |  | ||||||
|  |  | ||||||
| /* 7.18.2  Limits of specified-width integer types */ |  | ||||||
| #if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS) |  | ||||||
|  |  | ||||||
| /* 7.18.2.1  Limits of exact-width integer types */ |  | ||||||
| #define INT8_MIN (-128)  |  | ||||||
| #define INT16_MIN (-32768) |  | ||||||
| #define INT32_MIN (-2147483647 - 1) |  | ||||||
| #define INT64_MIN  (-9223372036854775807LL - 1) |  | ||||||
|  |  | ||||||
| #define INT8_MAX 127 |  | ||||||
| #define INT16_MAX 32767 |  | ||||||
| #define INT32_MAX 2147483647 |  | ||||||
| #define INT64_MAX 9223372036854775807LL |  | ||||||
|  |  | ||||||
| #define UINT8_MAX 0xff /* 255U */ |  | ||||||
| #define UINT16_MAX 0xffff /* 65535U */ |  | ||||||
| #define UINT32_MAX 0xffffffff  /* 4294967295U */ |  | ||||||
| #define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */ |  | ||||||
|  |  | ||||||
| /* 7.18.2.2  Limits of minimum-width integer types */ |  | ||||||
| #define INT_LEAST8_MIN INT8_MIN |  | ||||||
| #define INT_LEAST16_MIN INT16_MIN |  | ||||||
| #define INT_LEAST32_MIN INT32_MIN |  | ||||||
| #define INT_LEAST64_MIN INT64_MIN |  | ||||||
|  |  | ||||||
| #define INT_LEAST8_MAX INT8_MAX |  | ||||||
| #define INT_LEAST16_MAX INT16_MAX |  | ||||||
| #define INT_LEAST32_MAX INT32_MAX |  | ||||||
| #define INT_LEAST64_MAX INT64_MAX |  | ||||||
|  |  | ||||||
| #define UINT_LEAST8_MAX UINT8_MAX |  | ||||||
| #define UINT_LEAST16_MAX UINT16_MAX |  | ||||||
| #define UINT_LEAST32_MAX UINT32_MAX |  | ||||||
| #define UINT_LEAST64_MAX UINT64_MAX |  | ||||||
|  |  | ||||||
| /* 7.18.2.3  Limits of fastest minimum-width integer types */ |  | ||||||
| #define INT_FAST8_MIN INT8_MIN |  | ||||||
| #define INT_FAST16_MIN INT16_MIN |  | ||||||
| #define INT_FAST32_MIN INT32_MIN |  | ||||||
| #define INT_FAST64_MIN INT64_MIN |  | ||||||
|  |  | ||||||
| #define INT_FAST8_MAX INT8_MAX |  | ||||||
| #define INT_FAST16_MAX INT16_MAX |  | ||||||
| #define INT_FAST32_MAX INT32_MAX |  | ||||||
| #define INT_FAST64_MAX INT64_MAX |  | ||||||
|  |  | ||||||
| #define UINT_FAST8_MAX UINT8_MAX |  | ||||||
| #define UINT_FAST16_MAX UINT16_MAX |  | ||||||
| #define UINT_FAST32_MAX UINT32_MAX |  | ||||||
| #define UINT_FAST64_MAX UINT64_MAX |  | ||||||
|  |  | ||||||
| /* 7.18.2.4  Limits of integer types capable of holding |  | ||||||
|     object pointers */ |  | ||||||
| #ifdef _WIN64 |  | ||||||
| #define INTPTR_MIN INT64_MIN |  | ||||||
| #define INTPTR_MAX INT64_MAX |  | ||||||
| #define UINTPTR_MAX UINT64_MAX |  | ||||||
| #else |  | ||||||
| #define INTPTR_MIN INT32_MIN |  | ||||||
| #define INTPTR_MAX INT32_MAX |  | ||||||
| #define UINTPTR_MAX UINT32_MAX |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* 7.18.2.5  Limits of greatest-width integer types */ |  | ||||||
| #define INTMAX_MIN INT64_MIN |  | ||||||
| #define INTMAX_MAX INT64_MAX |  | ||||||
| #define UINTMAX_MAX UINT64_MAX |  | ||||||
|  |  | ||||||
| /* 7.18.3  Limits of other integer types */ |  | ||||||
| #define PTRDIFF_MIN INTPTR_MIN |  | ||||||
| #define PTRDIFF_MAX INTPTR_MAX |  | ||||||
|  |  | ||||||
| #define SIG_ATOMIC_MIN INTPTR_MIN |  | ||||||
| #define SIG_ATOMIC_MAX INTPTR_MAX |  | ||||||
|  |  | ||||||
| #define SIZE_MAX UINTPTR_MAX |  | ||||||
|  |  | ||||||
| #ifndef WCHAR_MIN  /* also in wchar.h */  |  | ||||||
| #define WCHAR_MIN 0 |  | ||||||
| #define WCHAR_MAX 0xffff /* UINT16_MAX */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * wint_t is unsigned short for compatibility with MS runtime |  | ||||||
|  */ |  | ||||||
| #define WINT_MIN 0 |  | ||||||
| #define WINT_MAX 0xffff /* UINT16_MAX */ |  | ||||||
|  |  | ||||||
| #endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* 7.18.4  Macros for integer constants */ |  | ||||||
| #if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS) |  | ||||||
|  |  | ||||||
| /* 7.18.4.1  Macros for minimum-width integer constants |  | ||||||
|  |  | ||||||
|     Accoding to Douglas Gwyn <gwyn@arl.mil>: |  | ||||||
| 	"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC |  | ||||||
| 	9899:1999 as initially published, the expansion was required |  | ||||||
| 	to be an integer constant of precisely matching type, which |  | ||||||
| 	is impossible to accomplish for the shorter types on most |  | ||||||
| 	platforms, because C99 provides no standard way to designate |  | ||||||
| 	an integer constant with width less than that of type int. |  | ||||||
| 	TC1 changed this to require just an integer constant |  | ||||||
| 	*expression* with *promoted* type." |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| #define INT8_C(val) val |  | ||||||
| #define UINT8_C(val) val |  | ||||||
| #define INT16_C(val) val |  | ||||||
| #define UINT16_C(val) val |  | ||||||
|  |  | ||||||
| #define INT32_C(val) val |  | ||||||
| #define UINT32_C(val) val##U |  | ||||||
| #define INT64_C(val) val##LL |  | ||||||
| #define UINT64_C(val) val##ULL |  | ||||||
|  |  | ||||||
| /* 7.18.4.2  Macros for greatest-width integer constants */ |  | ||||||
| #define INTMAX_C(val)  INT64_C(val) |  | ||||||
| #define UINTMAX_C(val) UINT64_C(val) |  | ||||||
|  |  | ||||||
| #endif  /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */ |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,662 +0,0 @@ | |||||||
| /* |  | ||||||
|  * stdio.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Definitions of types and prototypes of functions for standard input and |  | ||||||
|  * output. |  | ||||||
|  * |  | ||||||
|  * NOTE: The file manipulation functions provided by Microsoft seem to |  | ||||||
|  * work with either slash (/) or backslash (\) as the directory separator. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _STDIO_H_ |  | ||||||
| #define	_STDIO_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_NULL |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define	__need_wint_t |  | ||||||
| #include <stddef.h> |  | ||||||
| #define __need___va_list |  | ||||||
| #include <stdarg.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Flags for the iobuf structure  */ |  | ||||||
| #define	_IOREAD	1 /* currently reading */ |  | ||||||
| #define	_IOWRT	2 /* currently writing */ |  | ||||||
| #define	_IORW	0x0080 /* opened as "r+w" */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The three standard file pointers provided by the run time library. |  | ||||||
|  * NOTE: These will go to the bit-bucket silently in GUI applications! |  | ||||||
|  */ |  | ||||||
| #define	STDIN_FILENO	0 |  | ||||||
| #define	STDOUT_FILENO	1 |  | ||||||
| #define	STDERR_FILENO	2 |  | ||||||
|  |  | ||||||
| /* Returned by various functions on end of file condition or error. */ |  | ||||||
| #define	EOF	(-1) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The maximum length of a file name. You should use GetVolumeInformation |  | ||||||
|  * instead of this constant. But hey, this works. |  | ||||||
|  * Also defined in io.h. |  | ||||||
|  */ |  | ||||||
| #ifndef FILENAME_MAX |  | ||||||
| #define	FILENAME_MAX	(260) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The maximum number of files that may be open at once. I have set this to |  | ||||||
|  * a conservative number. The actual value may be higher. |  | ||||||
|  */ |  | ||||||
| #define FOPEN_MAX	(20) |  | ||||||
|  |  | ||||||
| /* After creating this many names, tmpnam and tmpfile return NULL */ |  | ||||||
| #define TMP_MAX	32767 |  | ||||||
| /* |  | ||||||
|  * Tmpnam, tmpfile and, sometimes, _tempnam try to create |  | ||||||
|  * temp files in the root directory of the current drive |  | ||||||
|  * (not in pwd, as suggested by some older MS doc's). |  | ||||||
|  * Redefining these macros does not effect the CRT functions. |  | ||||||
|  */ |  | ||||||
| #define _P_tmpdir   "\\" |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #define P_tmpdir _P_tmpdir |  | ||||||
| #endif |  | ||||||
| #define _wP_tmpdir  L"\\" |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The maximum size of name (including NUL) that will be put in the user |  | ||||||
|  * supplied buffer caName for tmpnam. |  | ||||||
|  * Inferred from the size of the static buffer returned by tmpnam |  | ||||||
|  * when passed a NULL argument. May actually be smaller. |  | ||||||
|  */ |  | ||||||
| #define L_tmpnam (16) |  | ||||||
|  |  | ||||||
| #define _IOFBF    0x0000  /* full buffered */ |  | ||||||
| #define _IOLBF    0x0040  /* line buffered */ |  | ||||||
| #define _IONBF    0x0004  /* not buffered */ |  | ||||||
|  |  | ||||||
| #define _IOMYBUF  0x0008  /* stdio malloc()'d buffer */ |  | ||||||
| #define _IOEOF    0x0010  /* EOF reached on read */ |  | ||||||
| #define _IOERR    0x0020  /* I/O error from system */ |  | ||||||
| #define _IOSTRG   0x0040  /* Strange or no file descriptor */ |  | ||||||
| #ifdef _POSIX_SOURCE |  | ||||||
| # define _IOAPPEND 0x0200 |  | ||||||
| #endif |  | ||||||
| /* |  | ||||||
|  * The buffer size as used by setbuf such that it is equivalent to |  | ||||||
|  * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ). |  | ||||||
|  */ |  | ||||||
| #define	BUFSIZ	512 |  | ||||||
|  |  | ||||||
| /* Constants for nOrigin indicating the position relative to which fseek |  | ||||||
|  * sets the file position.  Defined unconditionally since ISO and POSIX |  | ||||||
|  * say they are defined here.  */ |  | ||||||
| #define SEEK_SET 0 |  | ||||||
| #define SEEK_CUR 1 |  | ||||||
| #define SEEK_END 2 |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifndef __VALIST |  | ||||||
| #ifdef __GNUC__ |  | ||||||
| #define __VALIST __gnuc_va_list |  | ||||||
| #else |  | ||||||
| #define __VALIST char* |  | ||||||
| #endif |  | ||||||
| #endif /* defined __VALIST  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The structure underlying the FILE type. |  | ||||||
|  * |  | ||||||
|  * Some believe that nobody in their right mind should make use of the |  | ||||||
|  * internals of this structure. Provided by Pedro A. Aranda Gutiirrez |  | ||||||
|  * <paag@tid.es>. |  | ||||||
|  */ |  | ||||||
| #ifndef _FILE_DEFINED |  | ||||||
| #define	_FILE_DEFINED |  | ||||||
| typedef struct _iobuf |  | ||||||
| { |  | ||||||
| 	char*	_ptr; |  | ||||||
| 	int	_cnt; |  | ||||||
| 	char*	_base; |  | ||||||
| 	int	_flag; |  | ||||||
| 	int	_file; |  | ||||||
| 	int	_charbuf; |  | ||||||
| 	int	_bufsiz; |  | ||||||
| 	char*	_tmpfname; |  | ||||||
| } FILE; |  | ||||||
| #endif	/* Not _FILE_DEFINED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The standard file handles |  | ||||||
|  */ |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|  |  | ||||||
| extern FILE (*_imp___iob)[];	/* A pointer to an array of FILE */ |  | ||||||
|  |  | ||||||
| #define _iob	(*_imp___iob)	/* An array of FILE */ |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT FILE _iob[];	/* An array of FILE imported from DLL. */ |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #define stdin	(&_iob[STDIN_FILENO]) |  | ||||||
| #define stdout	(&_iob[STDOUT_FILENO]) |  | ||||||
| #define stderr	(&_iob[STDERR_FILENO]) |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * File Operations |  | ||||||
|  */ |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW fopen (const char*, const char*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	freopen (const char*, const char*, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fflush (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fclose (FILE*); |  | ||||||
| /* MS puts remove & rename (but not wide versions) in io.h  also */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	remove (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	rename (const char*, const char*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	tmpfile (void); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	tmpnam (char*); |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_tempnam (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_rmtmp(void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_unlink (const char*); |  | ||||||
|  |  | ||||||
| #ifndef	NO_OLDNAMES |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	tempnam (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	rmtmp(void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	unlink (const char*); |  | ||||||
| #endif |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	setvbuf (FILE*, char*, int, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	setbuf (FILE*, char*); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Formatted Output |  | ||||||
|  * |  | ||||||
|  * MSVCRT implementations are not ANSI C99 conformant... |  | ||||||
|  * we offer these conforming alternatives from libmingwex.a |  | ||||||
|  */ |  | ||||||
| #undef  __mingw_stdio_redirect__ |  | ||||||
| #define __mingw_stdio_redirect__(F) __cdecl __MINGW_NOTHROW __mingw_##F |  | ||||||
|  |  | ||||||
| extern int __mingw_stdio_redirect__(fprintf)(FILE*, const char*, ...); |  | ||||||
| extern int __mingw_stdio_redirect__(printf)(const char*, ...); |  | ||||||
| extern int __mingw_stdio_redirect__(sprintf)(char*, const char*, ...); |  | ||||||
| extern int __mingw_stdio_redirect__(snprintf)(char*, size_t, const char*, ...); |  | ||||||
| extern int __mingw_stdio_redirect__(vfprintf)(FILE*, const char*, __VALIST); |  | ||||||
| extern int __mingw_stdio_redirect__(vprintf)(const char*, __VALIST); |  | ||||||
| extern int __mingw_stdio_redirect__(vsprintf)(char*, const char*, __VALIST); |  | ||||||
| extern int __mingw_stdio_redirect__(vsnprintf)(char*, size_t, const char*, __VALIST); |  | ||||||
|  |  | ||||||
| #if __USE_MINGW_ANSI_STDIO |  | ||||||
| /* |  | ||||||
|  * User has expressed a preference for C99 conformance... |  | ||||||
|  */ |  | ||||||
| # undef __mingw_stdio_redirect__ |  | ||||||
| # ifdef __cplusplus |  | ||||||
| /* |  | ||||||
|  * For C++ we use inline implementations, to avoid interference |  | ||||||
|  * with namespace qualification, which may result from using #defines. |  | ||||||
|  */ |  | ||||||
| #  define __mingw_stdio_redirect__  inline __cdecl __MINGW_NOTHROW |  | ||||||
|  |  | ||||||
| # elif defined __GNUC__ |  | ||||||
| /* |  | ||||||
|  * FIXME: Is there any GCC version prerequisite here? |  | ||||||
|  * |  | ||||||
|  * We also prefer inline implementations for C, when we can be confident |  | ||||||
|  * that the GNU specific __inline__ mechanism is supported. |  | ||||||
|  */ |  | ||||||
| #  define __mingw_stdio_redirect__  static __inline__ __cdecl __MINGW_NOTHROW |  | ||||||
|  |  | ||||||
| # else |  | ||||||
| /* |  | ||||||
|  * Can't use inlines; fall back on module local static stubs. |  | ||||||
|  */ |  | ||||||
| #  define __mingw_stdio_redirect__  static __cdecl __MINGW_NOTHROW |  | ||||||
| # endif |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int fprintf (FILE *__stream, const char *__format, ...) |  | ||||||
| { |  | ||||||
|   register int __retval; |  | ||||||
|   __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); |  | ||||||
|   __retval = __mingw_vfprintf( __stream, __format, __local_argv ); |  | ||||||
|   __builtin_va_end( __local_argv ); |  | ||||||
|   return __retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int printf (const char *__format, ...) |  | ||||||
| { |  | ||||||
|   register int __retval; |  | ||||||
|   __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); |  | ||||||
|   __retval = __mingw_vprintf( __format, __local_argv ); |  | ||||||
|   __builtin_va_end( __local_argv ); |  | ||||||
|   return __retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int sprintf (char *__stream, const char *__format, ...) |  | ||||||
| { |  | ||||||
|   register int __retval; |  | ||||||
|   __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); |  | ||||||
|   __retval = __mingw_vsprintf( __stream, __format, __local_argv ); |  | ||||||
|   __builtin_va_end( __local_argv ); |  | ||||||
|   return __retval; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int vfprintf (FILE *__stream, const char *__format, __VALIST __local_argv) |  | ||||||
| { |  | ||||||
|   return __mingw_vfprintf( __stream, __format, __local_argv ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int vprintf (const char *__format, __VALIST __local_argv) |  | ||||||
| { |  | ||||||
|   return __mingw_vprintf( __format, __local_argv ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __mingw_stdio_redirect__ |  | ||||||
| int vsprintf (char *__stream, const char *__format, __VALIST __local_argv) |  | ||||||
| { |  | ||||||
|   return __mingw_vsprintf( __stream, __format, __local_argv ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #else |  | ||||||
| /* |  | ||||||
|  * Default configuration: simply direct all calls to MSVCRT... |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW fprintf (FILE*, const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW printf (const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW sprintf (char*, const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW vfprintf (FILE*, const char*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW vprintf (const char*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW vsprintf (char*, const char*, __VALIST); |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| /* |  | ||||||
|  * Regardless of user preference, always offer these alternative |  | ||||||
|  * entry points, for direct access to the MSVCRT implementations. |  | ||||||
|  */ |  | ||||||
| #undef  __mingw_stdio_redirect__ |  | ||||||
| #define __mingw_stdio_redirect__(F) __cdecl __MINGW_NOTHROW __msvcrt_##F |  | ||||||
|  |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(fprintf)(FILE*, const char*, ...); |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(printf)(const char*, ...); |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(sprintf)(char*, const char*, ...); |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(vfprintf)(FILE*, const char*, __VALIST); |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(vprintf)(const char*, __VALIST); |  | ||||||
| _CRTIMP int __mingw_stdio_redirect__(vsprintf)(char*, const char*, __VALIST); |  | ||||||
|  |  | ||||||
| #undef  __mingw_stdio_redirect__ |  | ||||||
|  |  | ||||||
| /* The following pair ALWAYS refer to the MSVCRT implementations... |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _snprintf (char*, size_t, const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _vsnprintf (char*, size_t, const char*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _vscprintf (const char*, __VALIST); |  | ||||||
|  |  | ||||||
| #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */ |  | ||||||
| /* |  | ||||||
|  * Microsoft does not provide implementations for the following, |  | ||||||
|  * which are required by C99.  Note in particular that the corresponding |  | ||||||
|  * Microsoft implementations of _snprintf() and _vsnprintf() are *not* |  | ||||||
|  * compatible with C99, but the following are; if you want the MSVCRT |  | ||||||
|  * behaviour, you *must* use the Microsoft uglified names. |  | ||||||
|  */ |  | ||||||
| int __cdecl __MINGW_NOTHROW snprintf (char *, size_t, const char *, ...); |  | ||||||
| int __cdecl __MINGW_NOTHROW vsnprintf (char *, size_t, const char *, __VALIST); |  | ||||||
|  |  | ||||||
| int __cdecl __MINGW_NOTHROW vscanf (const char * __restrict__, __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vfscanf (FILE * __restrict__, const char * __restrict__, |  | ||||||
| 		     __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vsscanf (const char * __restrict__, |  | ||||||
| 		     const char * __restrict__, __VALIST); |  | ||||||
|  |  | ||||||
| #endif  /* !__NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Formatted Input |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fscanf (FILE*, const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	scanf (const char*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	sscanf (const char*, const char*, ...); |  | ||||||
| /* |  | ||||||
|  * Character Input and Output Functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fgetc (FILE*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	fgets (char*, int, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fputc (int, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fputs (const char*, FILE*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	gets (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	puts (const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	ungetc (int, FILE*); |  | ||||||
|  |  | ||||||
| /* Traditionally, getc and putc are defined as macros. but the |  | ||||||
|    standard doesn't say that they must be macros. |  | ||||||
|    We use inline functions here to allow the fast versions |  | ||||||
|    to be used in C++ with namespace qualification, eg., ::getc. |  | ||||||
|  |  | ||||||
|    _filbuf and _flsbuf  are not thread-safe. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_filbuf (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_flsbuf (int, FILE*); |  | ||||||
|  |  | ||||||
| #if !defined _MT |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW getc (FILE*); |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW getc (FILE* __F) |  | ||||||
| { |  | ||||||
|   return (--__F->_cnt >= 0) |  | ||||||
|     ?  (int) (unsigned char) *__F->_ptr++ |  | ||||||
|     : _filbuf (__F); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW putc (int, FILE*); |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW putc (int __c, FILE* __F) |  | ||||||
| { |  | ||||||
|   return (--__F->_cnt >= 0) |  | ||||||
|     ?  (int) (unsigned char) (*__F->_ptr++ = (char)__c) |  | ||||||
|     :  _flsbuf (__c, __F); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW getchar (void); |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW getchar (void) |  | ||||||
| { |  | ||||||
|   return (--stdin->_cnt >= 0) |  | ||||||
|     ?  (int) (unsigned char) *stdin->_ptr++ |  | ||||||
|     : _filbuf (stdin); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW putchar(int); |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW putchar(int __c) |  | ||||||
| { |  | ||||||
|   return (--stdout->_cnt >= 0) |  | ||||||
|     ?  (int) (unsigned char) (*stdout->_ptr++ = (char)__c) |  | ||||||
|     :  _flsbuf (__c, stdout);} |  | ||||||
|  |  | ||||||
| #else  /* Use library functions.  */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	getc (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	putc (int, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	getchar (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	putchar (int); |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Direct Input and Output Functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	fread (void*, size_t, size_t, FILE*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	fwrite (const void*, size_t, size_t, FILE*); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * File Positioning Functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fseek (FILE*, long, int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	ftell (FILE*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	rewind (FILE*); |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fseek_nolock (FILE*, long, int); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_ftell_nolock (FILE*); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fseeki64 (FILE*, __int64, int); |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW	_ftelli64 (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fseeki64_nolock (FILE*, __int64, int); |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW	_ftelli64_nolock (FILE*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __USE_MINGW_FSEEK  /* These are in libmingwex.a */ |  | ||||||
| /* |  | ||||||
|  * Workaround for limitations on win9x where a file contents are |  | ||||||
|  * not zero'd out if you seek past the end and then write. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| int __cdecl __MINGW_NOTHROW __mingw_fseek (FILE *, long, int); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW __mingw_fwrite (const void*, size_t, size_t, FILE*); |  | ||||||
| #define fseek(fp, offset, whence)  __mingw_fseek(fp, offset, whence) |  | ||||||
| #define fwrite(buffer, size, count, fp)  __mingw_fwrite(buffer, size, count, fp) |  | ||||||
| #endif /* __USE_MINGW_FSEEK */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * An opaque data type used for storing file positions... The contents of |  | ||||||
|  * this type are unknown, but we (the compiler) need to know the size |  | ||||||
|  * because the programmer using fgetpos and fsetpos will be setting aside |  | ||||||
|  * storage for fpos_t structres. Actually I tested using a byte array and |  | ||||||
|  * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL). |  | ||||||
|  * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in |  | ||||||
|  * MSVCRT however, and for now `long long' will do. |  | ||||||
|  */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| typedef long long fpos_t; |  | ||||||
| #else |  | ||||||
| typedef long	fpos_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fgetpos	(FILE*, fpos_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fsetpos (FILE*, const fpos_t*); |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Error Functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	feof (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	ferror (FILE*); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| inline int __cdecl __MINGW_NOTHROW feof (FILE* __F) |  | ||||||
|   { return __F->_flag & _IOEOF; } |  | ||||||
| inline int __cdecl __MINGW_NOTHROW ferror (FILE* __F) |  | ||||||
|   { return __F->_flag & _IOERR; } |  | ||||||
| #else |  | ||||||
| #define feof(__F)     ((__F)->_flag & _IOEOF) |  | ||||||
| #define ferror(__F)   ((__F)->_flag & _IOERR) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	clearerr (FILE*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	perror (const char*); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| /* |  | ||||||
|  * Pipes |  | ||||||
|  */ |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_popen (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_pclose (FILE*); |  | ||||||
|  |  | ||||||
| #ifndef NO_OLDNAMES |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	popen (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	pclose (FILE*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Other Non ANSI functions |  | ||||||
|  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_flushall (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fgetchar (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fputchar (int); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_fdopen (int, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fileno (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fcloseall (void); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_fsopen (const char*, const char*, int); |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_getmaxstdio (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_setmaxstdio (int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x800 |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _get_output_format (void); |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _set_output_format (unsigned int); |  | ||||||
|  |  | ||||||
| #define _TWO_DIGIT_EXPONENT  1 |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _get_printf_count_output (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _set_printf_count_output (int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fgetchar (void); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fputchar (int); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	fdopen (int, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fileno (FILE*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #define _fileno(__F) ((__F)->_file) |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
| #define fileno(__F) ((__F)->_file) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if defined (__MSVCRT__) && !defined (__NO_MINGW_LFS) |  | ||||||
| #include <sys/types.h> |  | ||||||
| __CRT_INLINE FILE* __cdecl __MINGW_NOTHROW fopen64 (const char*, const char*); |  | ||||||
| __CRT_INLINE FILE* __cdecl __MINGW_NOTHROW fopen64 (const char* filename, const char* mode) |  | ||||||
| { |  | ||||||
|   return fopen (filename, mode);  |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int __cdecl __MINGW_NOTHROW fseeko64 (FILE*, off64_t, int); |  | ||||||
|  |  | ||||||
| #ifdef __USE_MINGW_FSEEK |  | ||||||
| int __cdecl __MINGW_NOTHROW __mingw_fseeko64 (FILE *, off64_t, int); |  | ||||||
| #define fseeko64(fp, offset, whence)  __mingw_fseeko64(fp, offset, whence) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| __CRT_INLINE off64_t __cdecl __MINGW_NOTHROW ftello64 (FILE *); |  | ||||||
| __CRT_INLINE off64_t __cdecl __MINGW_NOTHROW ftello64 (FILE * stream) |  | ||||||
| { |  | ||||||
|   fpos_t pos; |  | ||||||
|   if (fgetpos(stream, &pos)) |  | ||||||
|     return  -1LL; |  | ||||||
|   else |  | ||||||
|    return ((off64_t) pos); |  | ||||||
| } |  | ||||||
| #endif /* __NO_MINGW_LFS */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| /* Wide  versions */ |  | ||||||
|  |  | ||||||
| #ifndef _WSTDIO_DEFINED |  | ||||||
| /*  also in wchar.h - keep in sync */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fwprintf (FILE*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wprintf (const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_snwprintf (wchar_t*, size_t, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vfwprintf (FILE*, const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vwprintf (const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_vscwprintf (const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fwscanf (FILE*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wscanf (const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	swscanf (const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fgetwc (FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fputwc (wchar_t, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	ungetwc (wchar_t, FILE*); |  | ||||||
|  |  | ||||||
| /* These differ from the ISO C prototypes, which have a maxlen parameter (like snprintf).  */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	swprintf (wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vswprintf (wchar_t*, const wchar_t*, __VALIST); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__  |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW fgetws (wchar_t*, int, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fputws (const wchar_t*, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	getwc (FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	getwchar (void); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	putwc (wint_t, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	putwchar (wint_t); |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _lock_file(FILE*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW _unlock_file(FILE*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _getws (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_putws (const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfdopen(int, const wchar_t *); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfopen (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfreopen (const wchar_t*, const wchar_t*, FILE*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfsopen (const wchar_t*, const wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wtmpnam (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wtempnam (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wrename (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wremove (const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wperror (const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wpopen (const wchar_t*, const wchar_t*); |  | ||||||
| #endif  /* __STRICT_ANSI__ */ |  | ||||||
| #endif	/* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */ |  | ||||||
| int __cdecl __MINGW_NOTHROW snwprintf (wchar_t* s, size_t n, const wchar_t*  format, ...); |  | ||||||
| int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg) |  | ||||||
|   { return _vsnwprintf ( s, n, format, arg);} |  | ||||||
| #endif |  | ||||||
| int __cdecl __MINGW_NOTHROW vwscanf (const wchar_t * __restrict__, __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vfwscanf (FILE * __restrict__, |  | ||||||
| 		       const wchar_t * __restrict__, __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vswscanf (const wchar_t * __restrict__, |  | ||||||
| 		       const wchar_t * __restrict__, __VALIST); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define _WSTDIO_DEFINED |  | ||||||
| #endif /* _WSTDIO_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| #ifndef NO_OLDNAMES |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	wpopen (const wchar_t*, const wchar_t*); |  | ||||||
| #endif /* not NO_OLDNAMES */ |  | ||||||
| #endif /* MSVCRT runtime */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Other Non ANSI wide functions |  | ||||||
|  */ |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	_fgetwchar (void); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	_fputwchar (wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_getw (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_putw (int, FILE*); |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fgetwchar (void); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fputwchar (wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	getw (FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	putw (int, FILE*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif /* __STRICT_ANSI */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif /* _STDIO_H_ */ |  | ||||||
| @@ -1,564 +0,0 @@ | |||||||
| /* |  | ||||||
|  * stdlib.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Definitions for common types, variables, and functions. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _STDLIB_H_ |  | ||||||
| #define _STDLIB_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define __need_NULL |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif /* RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * RAND_MAX is the maximum value that may be returned by rand. |  | ||||||
|  * The minimum is zero. |  | ||||||
|  */ |  | ||||||
| #define	RAND_MAX	0x7FFF |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * These values may be used as exit status codes. |  | ||||||
|  */ |  | ||||||
| #define	EXIT_SUCCESS	0 |  | ||||||
| #define	EXIT_FAILURE	1 |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Definitions for path name functions. |  | ||||||
|  * NOTE: All of these values have simply been chosen to be conservatively high. |  | ||||||
|  *       Remember that with long file names we can no longer depend on |  | ||||||
|  *       extensions being short. |  | ||||||
|  */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| #ifndef MAX_PATH |  | ||||||
| #define	MAX_PATH	(260) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define	_MAX_PATH	MAX_PATH |  | ||||||
| #define	_MAX_DRIVE	(3) |  | ||||||
| #define	_MAX_DIR	256 |  | ||||||
| #define	_MAX_FNAME	256 |  | ||||||
| #define	_MAX_EXT	256 |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if !defined (__STRICT_ANSI__) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This seems like a convenient place to declare these variables, which |  | ||||||
|  * give programs using WinMain (or main for that matter) access to main-ish |  | ||||||
|  * argc and argv. environ is a pointer to a table of environment variables. |  | ||||||
|  * NOTE: Strings in _argv and environ are ANSI strings. |  | ||||||
|  */ |  | ||||||
| extern int	_argc; |  | ||||||
| extern char**	_argv; |  | ||||||
|  |  | ||||||
| /* imports from runtime dll of the above variables */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|  |  | ||||||
| extern int*  __cdecl __MINGW_NOTHROW   __p___argc(void); |  | ||||||
| extern char*** __cdecl __MINGW_NOTHROW  __p___argv(void); |  | ||||||
| extern wchar_t***  __cdecl __MINGW_NOTHROW __p___wargv(void); |  | ||||||
|  |  | ||||||
| #define __argc (*__p___argc()) |  | ||||||
| #define __argv (*__p___argv()) |  | ||||||
| #define __wargv (*__p___wargv()) |  | ||||||
|  |  | ||||||
| #else /* !MSVCRT */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|  |  | ||||||
| extern int*    _imp____argc_dll; |  | ||||||
| extern char***  _imp____argv_dll; |  | ||||||
| #define __argc (*_imp____argc_dll) |  | ||||||
| #define __argv (*_imp____argv_dll) |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT int    __argc_dll; |  | ||||||
| __MINGW_IMPORT char**  __argv_dll; |  | ||||||
| #define __argc __argc_dll |  | ||||||
| #define __argv __argv_dll |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #endif /* __MSVCRT */ |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
| /* |  | ||||||
|  * Also defined in ctype.h. |  | ||||||
|  */ |  | ||||||
| #ifndef MB_CUR_MAX |  | ||||||
| #ifdef __DECLSPEC_SUPPORTED |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
| #  define MB_CUR_MAX __mb_cur_max |  | ||||||
|    __MINGW_IMPORT int __mb_cur_max; |  | ||||||
| # else		/* not __MSVCRT */ |  | ||||||
| #  define MB_CUR_MAX __mb_cur_max_dll |  | ||||||
|    __MINGW_IMPORT int __mb_cur_max_dll; |  | ||||||
| # endif		/* not __MSVCRT */ |  | ||||||
|  |  | ||||||
| #else		/* ! __DECLSPEC_SUPPORTED */ |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|    extern int* _imp____mb_cur_max; |  | ||||||
| #  define MB_CUR_MAX (*_imp____mb_cur_max) |  | ||||||
| # else		/* not __MSVCRT */ |  | ||||||
|    extern int*  _imp____mb_cur_max_dll; |  | ||||||
| #  define MB_CUR_MAX (*_imp____mb_cur_max_dll) |  | ||||||
| # endif 	/* not __MSVCRT */ |  | ||||||
| #endif  	/*  __DECLSPEC_SUPPORTED */ |  | ||||||
| #endif  /* MB_CUR_MAX */ |  | ||||||
|  |  | ||||||
| /*  |  | ||||||
|  * MS likes to declare errno in stdlib.h as well.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifdef _UWIN |  | ||||||
| #undef errno |  | ||||||
| extern int errno; |  | ||||||
| #else |  | ||||||
|  _CRTIMP int* __cdecl __MINGW_NOTHROW	_errno(void); |  | ||||||
| #define	errno		(*_errno()) |  | ||||||
| #endif |  | ||||||
|  _CRTIMP int* __cdecl __MINGW_NOTHROW	__doserrno(void); |  | ||||||
| #define	_doserrno	(*__doserrno()) |  | ||||||
|  |  | ||||||
| #if !defined (__STRICT_ANSI__) |  | ||||||
| /* |  | ||||||
|  * Use environ from the DLL, not as a global.  |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|   extern _CRTIMP char *** __cdecl __MINGW_NOTHROW __p__environ(void); |  | ||||||
|   extern _CRTIMP wchar_t *** __cdecl __MINGW_NOTHROW  __p__wenviron(void); |  | ||||||
| # define _environ (*__p__environ()) |  | ||||||
| # define _wenviron (*__p__wenviron()) |  | ||||||
| #else /* ! __MSVCRT__ */ |  | ||||||
| # ifndef __DECLSPEC_SUPPORTED |  | ||||||
|     extern char *** _imp___environ_dll; |  | ||||||
| #   define _environ (*_imp___environ_dll) |  | ||||||
| # else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|     __MINGW_IMPORT char ** _environ_dll; |  | ||||||
| #   define _environ _environ_dll |  | ||||||
| # endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
| #endif /* ! __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #define environ _environ |  | ||||||
|  |  | ||||||
| #ifdef	__MSVCRT__ |  | ||||||
| /* One of the MSVCRTxx libraries */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|   extern int*	_imp___sys_nerr; |  | ||||||
| # define	sys_nerr	(*_imp___sys_nerr) |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|   __MINGW_IMPORT int	_sys_nerr; |  | ||||||
| # ifndef _UWIN |  | ||||||
| #   define	sys_nerr	_sys_nerr |  | ||||||
| # endif /* _UWIN */ |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #else /* ! __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /* CRTDLL run time library */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|   extern int*	_imp___sys_nerr_dll; |  | ||||||
| # define sys_nerr	(*_imp___sys_nerr_dll) |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|   __MINGW_IMPORT int	_sys_nerr_dll; |  | ||||||
| # define sys_nerr	_sys_nerr_dll |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #endif /* ! __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
| extern char***	_imp__sys_errlist; |  | ||||||
| #define	sys_errlist	(*_imp___sys_errlist) |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
| __MINGW_IMPORT char*	_sys_errlist[]; |  | ||||||
| #ifndef _UWIN |  | ||||||
| #define	sys_errlist	_sys_errlist |  | ||||||
| #endif /* _UWIN */ |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * OS version and such constants. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifdef	__MSVCRT__ |  | ||||||
| /* msvcrtxx.dll */ |  | ||||||
|  |  | ||||||
| extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int*	__p__osver(void); |  | ||||||
| extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int*	__p__winver(void); |  | ||||||
| extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int*	__p__winmajor(void); |  | ||||||
| extern _CRTIMP unsigned __cdecl __MINGW_NOTHROW int*	__p__winminor(void); |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
| # define _osver		(*__p__osver()) |  | ||||||
| # define _winver	(*__p__winver()) |  | ||||||
| # define _winmajor	(*__p__winmajor()) |  | ||||||
| # define _winminor	(*__p__winminor()) |  | ||||||
| #else |  | ||||||
| __MINGW_IMPORT unsigned int _osver; |  | ||||||
| __MINGW_IMPORT unsigned int _winver; |  | ||||||
| __MINGW_IMPORT unsigned int _winmajor; |  | ||||||
| __MINGW_IMPORT unsigned int _winminor; |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #else |  | ||||||
| /* Not msvcrtxx.dll, thus crtdll.dll */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|  |  | ||||||
| extern unsigned int*	_imp___osver_dll; |  | ||||||
| extern unsigned int*	_imp___winver_dll; |  | ||||||
| extern unsigned int*	_imp___winmajor_dll; |  | ||||||
| extern unsigned int*	_imp___winminor_dll; |  | ||||||
|  |  | ||||||
| #define _osver		(*_imp___osver_dll) |  | ||||||
| #define _winver		(*_imp___winver_dll) |  | ||||||
| #define _winmajor	(*_imp___winmajor_dll) |  | ||||||
| #define _winminor	(*_imp___winminor_dll) |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT unsigned int	_osver_dll; |  | ||||||
| __MINGW_IMPORT unsigned int	_winver_dll; |  | ||||||
| __MINGW_IMPORT unsigned int	_winmajor_dll; |  | ||||||
| __MINGW_IMPORT unsigned int	_winminor_dll; |  | ||||||
|  |  | ||||||
| #define _osver		_osver_dll |  | ||||||
| #define _winver		_winver_dll |  | ||||||
| #define _winmajor	_winmajor_dll |  | ||||||
| #define _winminor	_winminor_dll |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if defined  __MSVCRT__ |  | ||||||
| /* although the _pgmptr is exported as DATA, |  | ||||||
|  * be safe and use the access function __p__pgmptr() to get it. */ |  | ||||||
| _CRTIMP char** __cdecl __MINGW_NOTHROW __p__pgmptr(void); |  | ||||||
| #define _pgmptr     (*__p__pgmptr()) |  | ||||||
| _CRTIMP wchar_t** __cdecl __MINGW_NOTHROW __p__wpgmptr(void); |  | ||||||
| #define _wpgmptr    (*__p__wpgmptr()) |  | ||||||
| #else /* ! __MSVCRT__ */ |  | ||||||
| # ifndef __DECLSPEC_SUPPORTED |  | ||||||
|   extern char** __imp__pgmptr_dll; |  | ||||||
| # define _pgmptr (*_imp___pgmptr_dll) |  | ||||||
| # else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  __MINGW_IMPORT char* _pgmptr_dll; |  | ||||||
| # define _pgmptr _pgmptr_dll |  | ||||||
| # endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
| /* no wide version in CRTDLL */ |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * This variable determines the default file mode. |  | ||||||
|  * TODO: Which flags work? |  | ||||||
|  */ |  | ||||||
| #if !defined (__DECLSPEC_SUPPORTED) || defined (__IN_MINGW_RUNTIME) |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| extern int* _imp___fmode; |  | ||||||
| #define	_fmode	(*_imp___fmode) |  | ||||||
| #else |  | ||||||
| /* CRTDLL */ |  | ||||||
| extern int* _imp___fmode_dll; |  | ||||||
| #define	_fmode	(*_imp___fmode_dll) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| __MINGW_IMPORT  int _fmode; |  | ||||||
| #else /* ! __MSVCRT__ */ |  | ||||||
| __MINGW_IMPORT  int _fmode_dll; |  | ||||||
| #define	_fmode	_fmode_dll |  | ||||||
| #endif /* ! __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #endif /* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| _CRTIMP __int64 __cdecl _strtoi64(const char*, char **, int); |  | ||||||
| _CRTIMP __int64 __cdecl _strtoi64_l(const char *, char **, int, _locale_t); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _strtoui64(const char*, char **, int); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _strtoui64_l(const char *, char **, int, _locale_t); |  | ||||||
|  |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	atof	(const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	atoi	(const char*); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW 	atol	(const char*); |  | ||||||
| #if !defined (__STRICT_ANSI__) |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	_wtof (const wchar_t *); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wtoi (const wchar_t *); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW _wtol (const wchar_t *); |  | ||||||
| #endif |  | ||||||
| #if !defined __NO_ISOCEXT  /*  in libmingwex.a */ |  | ||||||
| double __cdecl __MINGW_NOTHROW __strtod (const char*, char**); |  | ||||||
| extern double __cdecl __MINGW_NOTHROW |  | ||||||
| strtod (const char* __restrict__ __nptr, char** __restrict__ __endptr); |  | ||||||
| float __cdecl __MINGW_NOTHROW strtof (const char * __restrict__, char ** __restrict__); |  | ||||||
| long double __cdecl __MINGW_NOTHROW strtold (const char * __restrict__, char ** __restrict__); |  | ||||||
| #else |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	strtod	(const char*, char**); |  | ||||||
| #endif /* __NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	strtol	(const char*, char**, int); |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW	strtoul	(const char*, char**, int); |  | ||||||
|  |  | ||||||
| #ifndef _WSTDLIB_DEFINED |  | ||||||
| /*  also declared in wchar.h */ |  | ||||||
| _CRTIMP __int64 __cdecl _wcstoi64(const wchar_t *, wchar_t **, int); |  | ||||||
| _CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *, wchar_t **, int, _locale_t); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *, wchar_t **, int); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *, wchar_t **, int, _locale_t); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	wcstol	(const wchar_t*, wchar_t**, int); |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW	wcstoul (const wchar_t*, wchar_t**, int); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	wcstod	(const wchar_t*, wchar_t**); |  | ||||||
| #if !defined __NO_ISOCEXT /*  in libmingwex.a */ |  | ||||||
| float __cdecl __MINGW_NOTHROW wcstof( const wchar_t * __restrict__, wchar_t ** __restrict__); |  | ||||||
| long double __cdecl __MINGW_NOTHROW wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__); |  | ||||||
| #endif /* __NO_ISOCEXT */ |  | ||||||
| #ifdef __MSVCRT__  |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wgetenv(const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wputenv(const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wsearchenv(const wchar_t*, const wchar_t*, wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW   	_wsystem(const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW    _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW   _wfullpath (wchar_t*, const wchar_t*, size_t); |  | ||||||
| #endif |  | ||||||
| #define _WSTDLIB_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcstombs	(char*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wctomb		(char*, wchar_t); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	mblen		(const char*, size_t); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	mbstowcs	(wchar_t*, const char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	mbtowc		(wchar_t*, const char*, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	rand	(void); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	srand	(unsigned int); |  | ||||||
|  |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	calloc	(size_t, size_t) __MINGW_ATTRIB_MALLOC; |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	malloc	(size_t) __MINGW_ATTRIB_MALLOC; |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	realloc	(void*, size_t); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	free	(void*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	abort	(void) __MINGW_ATTRIB_NORETURN; |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	exit	(int) __MINGW_ATTRIB_NORETURN; |  | ||||||
|  |  | ||||||
| /* Note: This is in startup code, not imported directly from dll */ |  | ||||||
| int __cdecl __MINGW_NOTHROW	atexit	(void (*)(void)); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	system	(const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	getenv	(const char*); |  | ||||||
|  |  | ||||||
| /* bsearch and qsort are also in non-ANSI header search.h  */ |  | ||||||
| _CRTIMP void* __cdecl bsearch (const void*, const void*, size_t, size_t,  |  | ||||||
| 			       int (*)(const void*, const void*)); |  | ||||||
| _CRTIMP void __cdecl qsort(void*, size_t, size_t, |  | ||||||
| 			   int (*)(const void*, const void*)); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	abs	(int) __MINGW_ATTRIB_CONST; |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	labs	(long) __MINGW_ATTRIB_CONST; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * div_t and ldiv_t are structures used to return the results of div and |  | ||||||
|  * ldiv. |  | ||||||
|  * |  | ||||||
|  * NOTE: div and ldiv appear not to work correctly unless |  | ||||||
|  *       -fno-pcc-struct-return is specified. This is included in the |  | ||||||
|  *       mingw32 specs file. |  | ||||||
|  */ |  | ||||||
| typedef struct { int quot, rem; } div_t; |  | ||||||
| typedef struct { long quot, rem; } ldiv_t; |  | ||||||
|  |  | ||||||
| _CRTIMP div_t __cdecl __MINGW_NOTHROW	div	(int, int) __MINGW_ATTRIB_CONST; |  | ||||||
| _CRTIMP ldiv_t __cdecl __MINGW_NOTHROW	ldiv	(long, long) __MINGW_ATTRIB_CONST; |  | ||||||
|  |  | ||||||
| #if !defined (__STRICT_ANSI__) |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: Officially the three following functions are obsolete. The Win32 API |  | ||||||
|  *       functions SetErrorMode, Beep and Sleep are their replacements. |  | ||||||
|  */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_beep (unsigned int, unsigned int) __MINGW_ATTRIB_DEPRECATED; |  | ||||||
| /* Not to be confused with  _set_error_mode (int).  */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_seterrormode (int) __MINGW_ATTRIB_DEPRECATED; |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED; |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_exit	(int) __MINGW_ATTRIB_NORETURN; |  | ||||||
|  |  | ||||||
| /* _onexit is MS extension. Use atexit for portability.  */ |  | ||||||
| /* Note: This is in startup code, not imported directly from dll */ |  | ||||||
| typedef  int (* _onexit_t)(void); |  | ||||||
| _onexit_t __cdecl __MINGW_NOTHROW _onexit( _onexit_t ); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_putenv	(const char*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_searchenv (const char*, const char*, char*); |  | ||||||
|  |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_ecvt (double, int, int*, int*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_fcvt (double, int, int*, int*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_gcvt (double, int, char*); |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_makepath (char*, const char*, const char*, const char*, const char*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_splitpath (const char*, char*, char*, char*, char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_fullpath (char*, const char*, size_t); |  | ||||||
|  |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_itoa (int, char*, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_ltoa (long, char*, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW   _ultoa(unsigned long, char*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW  _itow (int, wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW  _ltow (long, wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW  _ultow (unsigned long, wchar_t*, int); |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW	_atoi64(const char *); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_i64toa(__int64, char *, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_ui64toa(unsigned __int64, char *, int); |  | ||||||
| _CRTIMP __int64 __cdecl __MINGW_NOTHROW	_wtoi64(const wchar_t *); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _i64tow(__int64, wchar_t *, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _ui64tow(unsigned __int64, wchar_t *, int); |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW (_rotl)(unsigned int, int) __MINGW_ATTRIB_CONST; |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW (_rotr)(unsigned int, int) __MINGW_ATTRIB_CONST; |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW (_lrotl)(unsigned long, int) __MINGW_ATTRIB_CONST; |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW (_lrotr)(unsigned long, int) __MINGW_ATTRIB_CONST; |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _set_error_mode (int); |  | ||||||
|  |  | ||||||
| # define _OUT_TO_DEFAULT	0 |  | ||||||
| # define _OUT_TO_STDERR 	1 |  | ||||||
| # define _OUT_TO_MSGBOX 	2 |  | ||||||
| # define _REPORT_ERRMODE	3 |  | ||||||
|  |  | ||||||
| # if __MSVCRT_VERSION__ >= 0x800 |  | ||||||
| #  ifndef _UINTPTR_T_DEFINED |  | ||||||
| #   define _UINTPTR_T_DEFINED |  | ||||||
| #   ifdef _WIN64 |  | ||||||
|       typedef unsigned __int64 uintptr_t; |  | ||||||
| #   else |  | ||||||
|       typedef unsigned int uintptr_t; |  | ||||||
| #   endif |  | ||||||
| #  endif |  | ||||||
|  |  | ||||||
| _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _set_abort_behavior (unsigned int, unsigned int); |  | ||||||
|  |  | ||||||
| /* These masks work with msvcr80.dll version 8.0.50215.44 (a beta release).  */ |  | ||||||
| #  define _WRITE_ABORT_MSG	1 |  | ||||||
| #  define _CALL_REPORTFAULT	2 |  | ||||||
|  |  | ||||||
| typedef void |  | ||||||
| (* _invalid_parameter_handler) ( |  | ||||||
|     const wchar_t *, |  | ||||||
|     const wchar_t *, |  | ||||||
|     const wchar_t *, |  | ||||||
|     unsigned int, |  | ||||||
|     uintptr_t); |  | ||||||
| _invalid_parameter_handler _set_invalid_parameter_handler (_invalid_parameter_handler); |  | ||||||
|  |  | ||||||
| # endif /* __MSVCRT_VERSION__ >= 0x800 */ |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	putenv (const char*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	searchenv (const char*, const char*, char*); |  | ||||||
|  |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	itoa (int, char*, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	ltoa (long, char*, int); |  | ||||||
|  |  | ||||||
| #ifndef _UWIN |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	ecvt (double, int, int*, int*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	fcvt (double, int, int*, int*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	gcvt (double, int, char*); |  | ||||||
| #endif /* _UWIN */ |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| /* C99 names */ |  | ||||||
|  |  | ||||||
| #if !defined __NO_ISOCEXT /* externs in static libmingwex.a */ |  | ||||||
|  |  | ||||||
| /* C99 name for _exit */ |  | ||||||
| void __cdecl __MINGW_NOTHROW _Exit(int) __MINGW_ATTRIB_NORETURN; |  | ||||||
| #if !defined __NO_INLINE__ && !defined __STRICT_ANSI__ |  | ||||||
| __CRT_INLINE void __cdecl __MINGW_NOTHROW _Exit(int __status) |  | ||||||
| 	{  _exit (__status); } |  | ||||||
| #endif  |  | ||||||
|  |  | ||||||
| typedef struct { long long quot, rem; } lldiv_t; |  | ||||||
|  |  | ||||||
| lldiv_t	__cdecl __MINGW_NOTHROW lldiv (long long, long long) __MINGW_ATTRIB_CONST; |  | ||||||
|  |  | ||||||
| long long __cdecl __MINGW_NOTHROW llabs(long long); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE long long __cdecl __MINGW_NOTHROW llabs(long long _j) |  | ||||||
|   {return (_j >= 0 ? _j : -_j);} |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| long long  __cdecl __MINGW_NOTHROW strtoll (const char* __restrict__, char** __restrict, int); |  | ||||||
| unsigned long long  __cdecl __MINGW_NOTHROW strtoull (const char* __restrict__, char** __restrict__, int); |  | ||||||
|  |  | ||||||
| #if defined (__MSVCRT__) /* these are stubs for MS _i64 versions */  |  | ||||||
| long long  __cdecl __MINGW_NOTHROW atoll (const char *); |  | ||||||
|  |  | ||||||
| #if !defined (__STRICT_ANSI__) |  | ||||||
| long long  __cdecl __MINGW_NOTHROW wtoll (const wchar_t *); |  | ||||||
| char* __cdecl __MINGW_NOTHROW lltoa (long long, char *, int); |  | ||||||
| char* __cdecl __MINGW_NOTHROW ulltoa (unsigned long long , char *, int); |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW lltow (long long, wchar_t *, int); |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW ulltow (unsigned long long, wchar_t *, int); |  | ||||||
|  |  | ||||||
|   /* inline using non-ansi functions */ |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE long long  __cdecl __MINGW_NOTHROW atoll (const char * _c) |  | ||||||
| 	{ return _atoi64 (_c); } |  | ||||||
| __CRT_INLINE char*  __cdecl __MINGW_NOTHROW lltoa (long long _n, char * _c, int _i) |  | ||||||
| 	{ return _i64toa (_n, _c, _i); } |  | ||||||
| __CRT_INLINE char*  __cdecl __MINGW_NOTHROW ulltoa (unsigned long long _n, char * _c, int _i) |  | ||||||
| 	{ return _ui64toa (_n, _c, _i); } |  | ||||||
| __CRT_INLINE long long  __cdecl __MINGW_NOTHROW wtoll (const wchar_t * _w) |  | ||||||
|  	{ return _wtoi64 (_w); } |  | ||||||
| __CRT_INLINE wchar_t*  __cdecl __MINGW_NOTHROW lltow (long long _n, wchar_t * _w, int _i) |  | ||||||
| 	{ return _i64tow (_n, _w, _i); }  |  | ||||||
| __CRT_INLINE wchar_t*  __cdecl __MINGW_NOTHROW ulltow (unsigned long long _n, wchar_t * _w, int _i) |  | ||||||
| 	{ return _ui64tow (_n, _w, _i); }  |  | ||||||
| #endif /* (__NO_INLINE__) */ |  | ||||||
| #endif /* (__STRICT_ANSI__)  */ |  | ||||||
|  |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #endif /* !__NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _STDLIB_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,201 +0,0 @@ | |||||||
| /* |  | ||||||
|  * string.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Definitions for memory and string functions. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _STRING_H_ |  | ||||||
| #define	_STRING_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Define size_t, wchar_t and NULL |  | ||||||
|  */ |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define	__need_NULL |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Prototypes of the ANSI Standard C library string functions. |  | ||||||
|  */ |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	memchr (const void*, int, size_t) __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW 	memcmp (const void*, const void*, size_t) __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW 	memcpy (void*, const void*, size_t); |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	memmove (void*, const void*, size_t); |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	memset (void*, int, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strcat (char*, const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strchr (const char*, int)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	strcmp (const char*, const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	strcoll (const char*, const char*);	/* Compare using locale */ |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strcpy (char*, const char*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	strcspn (const char*, const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strerror (int); /* NOTE: NOT an old name wrapper. */ |  | ||||||
|  |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	strlen (const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strncat (char*, const char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	strncmp (const char*, const char*, size_t)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strncpy (char*, const char*, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strpbrk (const char*, const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strrchr (const char*, int)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	strspn (const char*, const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strstr (const char*, const char*)  __MINGW_ATTRIB_PURE; |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strtok (char*, const char*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	strxfrm (char*, const char*, size_t); |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| /* |  | ||||||
|  * Extra non-ANSI functions provided by the CRTDLL library |  | ||||||
|  */ |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strerror (const char *); |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	_memccpy (void*, const void*, int, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW 	_memicmp (const void*, const void*, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW 	_strdup (const char*) __MINGW_ATTRIB_MALLOC; |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_strcmpi (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stricmp (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stricoll (const char*, const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strlwr (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_strnicmp (const char*, const char*, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strnset (char*, int, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strrev (char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strset (char*, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strupr (char*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_swab (const char*, char*, size_t); |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _strncoll(const char*, const char*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _strnicoll(const char*, const char*, size_t); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* |  | ||||||
|  * Non-underscored versions of non-ANSI functions. They live in liboldnames.a |  | ||||||
|  * and provide a little extra portability. Also a few extra UNIX-isms like |  | ||||||
|  * strcasecmp. |  | ||||||
|  */ |  | ||||||
| _CRTIMP void* __cdecl __MINGW_NOTHROW	memccpy (void*, const void*, int, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	memicmp (const void*, const void*, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strdup (const char*) __MINGW_ATTRIB_MALLOC; |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	strcmpi (const char*, const char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	stricmp (const char*, const char*); |  | ||||||
| int __cdecl __MINGW_NOTHROW strcasecmp (const char*, const char *); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| strcasecmp (const char * __sz1, const char * __sz2) |  | ||||||
|   {return _stricmp (__sz1, __sz2);} |  | ||||||
| #endif |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	stricoll (const char*, const char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strlwr (char*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	strnicmp (const char*, const char*, size_t); |  | ||||||
| int  __cdecl __MINGW_NOTHROW strncasecmp (const char *, const char *, size_t); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| strncasecmp (const char * __sz1, const char * __sz2, size_t __sizeMaxCompare) |  | ||||||
|   {return _strnicmp (__sz1, __sz2, __sizeMaxCompare);} |  | ||||||
| #endif |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strnset (char*, int, size_t); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strrev (char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strset (char*, int); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	strupr (char*); |  | ||||||
| #ifndef _UWIN |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	swab (const char*, char*, size_t); |  | ||||||
| #endif /* _UWIN */ |  | ||||||
| #endif /* _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #ifndef _WSTRING_DEFINED |  | ||||||
| /* |  | ||||||
|  * Unicode versions of the standard calls. |  | ||||||
|  * Also in wchar.h, where they belong according to ISO standard. |  | ||||||
|  */ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscat (wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcschr (const wchar_t*, wchar_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcscmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcscoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscpy (wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcscspn (const wchar_t*, const wchar_t*); |  | ||||||
| /* Note:  _wcserror requires __MSVCRT_VERSION__ >= 0x0700.  */ |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcslen (const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncat (wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsncmp(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncpy(wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcspbrk(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrchr(const wchar_t*, wchar_t); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsspn(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsstr(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcstok(wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsxfrm(wchar_t*, const wchar_t*, size_t); |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| /* |  | ||||||
|  * Unicode versions of non-ANSI string functions provided by CRTDLL. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */ |  | ||||||
| #define		_wcscmpi	_wcsicmp |  | ||||||
|  |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsdup (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcslwr (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsnicmp (const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsnset (wchar_t*, wchar_t, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsrev (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsset (wchar_t*, wchar_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsupr (wchar_t*); |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _wcsncoll(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP int   __cdecl __MINGW_NOTHROW _wcsnicoll(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0700 |  | ||||||
| _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW _wcserror(int); |  | ||||||
| _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW __wcserror(const wchar_t*); |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* NOTE: There is no _wcscmpi, but this is for compatibility. */ |  | ||||||
| int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) |  | ||||||
|   {return _wcsicmp (__ws1, __ws2);} |  | ||||||
| #endif |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsdup (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcslwr (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsnicmp (const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsnset (wchar_t*, wchar_t, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrev (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsset (wchar_t*, wchar_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsupr (wchar_t*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not strict ANSI */ |  | ||||||
|  |  | ||||||
| #define _WSTRING_DEFINED |  | ||||||
| #endif  /* _WSTRING_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _STRING_H_ */ |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| /* |  | ||||||
|     File: strings.h |  | ||||||
|     Copyright: Public Domain |  | ||||||
|  |  | ||||||
|     This file is provided because non ANSI fuctions are described in string.h  |  | ||||||
|     that belong in strings.h.  These functions are provided for in the OLDNAME |  | ||||||
|     libraries. |  | ||||||
| */ |  | ||||||
| #if !defined(_STRINGS_H_) |  | ||||||
| # define _STRINGS_H_ 1 |  | ||||||
| # include <string.h> |  | ||||||
| #endif |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * This fcntl.h maps to the root fcntl.h |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <fcntl.h> |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * This file.h maps to the root fcntl.h |  | ||||||
|  * TODO? |  | ||||||
|  */ |  | ||||||
| #include <fcntl.h> |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| /* |  | ||||||
|  * locking.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Constants for the mode parameter of the locking function. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_LOCKING_H_ |  | ||||||
| #define	_LOCKING_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define	_LK_UNLCK	0	/* Unlock */ |  | ||||||
| #define	_LK_LOCK	1	/* Lock */ |  | ||||||
| #define	_LK_NBLCK	2	/* Non-blocking lock */ |  | ||||||
| #define	_LK_RLCK	3	/* Lock for read only */ |  | ||||||
| #define	_LK_NBRLCK	4	/* Non-blocking lock for read only */ |  | ||||||
|  |  | ||||||
| #ifndef	NO_OLDNAMES |  | ||||||
| #define	LK_UNLCK	_LK_UNLCK |  | ||||||
| #define	LK_LOCK		_LK_LOCK |  | ||||||
| #define	LK_NBLCK	_LK_NBLCK |  | ||||||
| #define	LK_RLCK		_LK_RLCK |  | ||||||
| #define	LK_NBRLCK	_LK_NBRLCK |  | ||||||
| #endif	/* Not NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _LOCKING_H_ */ |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| /* |  | ||||||
|  * param.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _SYS_PARAM_H |  | ||||||
| #define _SYS_PARAM_H |  | ||||||
|  |  | ||||||
| #include <sys/types.h> |  | ||||||
| #include <limits.h> |  | ||||||
|  |  | ||||||
| /* These are useful for cross-compiling */  |  | ||||||
| #define BIG_ENDIAN	4321 |  | ||||||
| #define LITTLE_ENDIAN	1234 |  | ||||||
| #define BYTE_ORDER	LITTLE_ENDIAN |  | ||||||
|  |  | ||||||
| #ifdef PATH_MAX |  | ||||||
| #define MAXPATHLEN PATH_MAX |  | ||||||
| #else |  | ||||||
| #define MAXPATHLEN 260 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,279 +0,0 @@ | |||||||
| /* |  | ||||||
|  * stat.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Symbolic constants for opening and creating files, also stat, fstat and |  | ||||||
|  * chmod functions. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _STAT_H_ |  | ||||||
| #define _STAT_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_wchar_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif /* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #include <sys/types.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Constants for the stat st_mode member. |  | ||||||
|  */ |  | ||||||
| #define	_S_IFIFO	0x1000	/* FIFO */ |  | ||||||
| #define	_S_IFCHR	0x2000	/* Character */ |  | ||||||
| #define	_S_IFBLK	0x3000	/* Block: Is this ever set under w32? */ |  | ||||||
| #define	_S_IFDIR	0x4000	/* Directory */ |  | ||||||
| #define	_S_IFREG	0x8000	/* Regular */ |  | ||||||
|  |  | ||||||
| #define	_S_IFMT		0xF000	/* File type mask */ |  | ||||||
|  |  | ||||||
| #define	_S_IEXEC	0x0040 |  | ||||||
| #define	_S_IWRITE	0x0080 |  | ||||||
| #define	_S_IREAD	0x0100 |  | ||||||
|  |  | ||||||
| #define	_S_IRWXU	(_S_IREAD | _S_IWRITE | _S_IEXEC) |  | ||||||
| #define	_S_IXUSR	_S_IEXEC |  | ||||||
| #define	_S_IWUSR	_S_IWRITE |  | ||||||
| #define	_S_IRUSR	_S_IREAD |  | ||||||
|  |  | ||||||
| #define	_S_ISDIR(m)	(((m) & _S_IFMT) == _S_IFDIR) |  | ||||||
| #define	_S_ISFIFO(m)	(((m) & _S_IFMT) == _S_IFIFO) |  | ||||||
| #define	_S_ISCHR(m)	(((m) & _S_IFMT) == _S_IFCHR) |  | ||||||
| #define	_S_ISBLK(m)	(((m) & _S_IFMT) == _S_IFBLK) |  | ||||||
| #define	_S_ISREG(m)	(((m) & _S_IFMT) == _S_IFREG) |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
|  |  | ||||||
| #define	S_IFIFO		_S_IFIFO |  | ||||||
| #define	S_IFCHR		_S_IFCHR |  | ||||||
| #define	S_IFBLK		_S_IFBLK |  | ||||||
| #define	S_IFDIR		_S_IFDIR |  | ||||||
| #define	S_IFREG		_S_IFREG |  | ||||||
| #define	S_IFMT		_S_IFMT |  | ||||||
| #define	S_IEXEC		_S_IEXEC |  | ||||||
| #define	S_IWRITE	_S_IWRITE |  | ||||||
| #define	S_IREAD		_S_IREAD |  | ||||||
| #define	S_IRWXU		_S_IRWXU |  | ||||||
| #define	S_IXUSR		_S_IXUSR |  | ||||||
| #define	S_IWUSR		_S_IWUSR |  | ||||||
| #define	S_IRUSR		_S_IRUSR |  | ||||||
|  |  | ||||||
| #define	S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR) |  | ||||||
| #define	S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO) |  | ||||||
| #define	S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR) |  | ||||||
| #define	S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK) |  | ||||||
| #define	S_ISREG(m)	(((m) & S_IFMT) == S_IFREG) |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifndef _STAT_DEFINED |  | ||||||
| /* |  | ||||||
|  * The structure manipulated and returned by stat and fstat. |  | ||||||
|  * |  | ||||||
|  * NOTE: If called on a directory the values in the time fields are not only |  | ||||||
|  * invalid, they will cause localtime et. al. to return NULL. And calling |  | ||||||
|  * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! |  | ||||||
|  */ |  | ||||||
| struct _stat |  | ||||||
| { |  | ||||||
| 	_dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */ |  | ||||||
| 	_ino_t	st_ino;		/* Always zero ? */ |  | ||||||
| 	_mode_t	st_mode;	/* See above constants */ |  | ||||||
| 	short	st_nlink;	/* Number of links. */ |  | ||||||
| 	short	st_uid;		/* User: Maybe significant on NT ? */ |  | ||||||
| 	short	st_gid;		/* Group: Ditto */ |  | ||||||
| 	_dev_t	st_rdev;	/* Seems useless (not even filled in) */ |  | ||||||
| 	_off_t	st_size;	/* File size in bytes */ |  | ||||||
| 	time_t	st_atime;	/* Accessed date (always 00:00 hrs local |  | ||||||
| 				 * on FAT) */ |  | ||||||
| 	time_t	st_mtime;	/* Modified time */ |  | ||||||
| 	time_t	st_ctime;	/* Creation time */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* NOTE: Must be the same as _stat above. */ |  | ||||||
| struct stat |  | ||||||
| { |  | ||||||
| 	dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */ |  | ||||||
| 	ino_t	st_ino;		/* Always zero ? */ |  | ||||||
| 	mode_t	st_mode;	/* See above constants */ |  | ||||||
| 	short	st_nlink;	/* Number of links. */ |  | ||||||
| 	short	st_uid;		/* User: Maybe significant on NT ? */ |  | ||||||
| 	short	st_gid;		/* Group: Ditto */ |  | ||||||
| 	dev_t	st_rdev;	/* Seems useless (not even filled in) */ |  | ||||||
| 	off_t	st_size;	/* File size in bytes */ |  | ||||||
| 	time_t	st_atime;	/* Accessed date (always 00:00 hrs local |  | ||||||
| 				 * on FAT) */ |  | ||||||
| 	time_t	st_mtime;	/* Modified time */ |  | ||||||
| 	time_t	st_ctime;	/* Creation time */ |  | ||||||
| }; |  | ||||||
| #endif /* _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #if defined (__MSVCRT__) |  | ||||||
| struct _stati64 { |  | ||||||
|     _dev_t st_dev; |  | ||||||
|     _ino_t st_ino; |  | ||||||
|     _mode_t st_mode; |  | ||||||
|     short st_nlink; |  | ||||||
|     short st_uid; |  | ||||||
|     short st_gid; |  | ||||||
|     _dev_t st_rdev; |  | ||||||
|     __int64 st_size; |  | ||||||
|     time_t st_atime; |  | ||||||
|     time_t st_mtime; |  | ||||||
|     time_t st_ctime; |  | ||||||
| }; |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __stat64 |  | ||||||
| { |  | ||||||
|     _dev_t st_dev; |  | ||||||
|     _ino_t st_ino; |  | ||||||
|     _mode_t st_mode; |  | ||||||
|     short st_nlink; |  | ||||||
|     short st_uid; |  | ||||||
|     short st_gid; |  | ||||||
|     _dev_t st_rdev; |  | ||||||
|     __int64 st_size; |  | ||||||
|     __time64_t st_atime; |  | ||||||
|     __time64_t st_mtime; |  | ||||||
|     __time64_t st_ctime; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| struct __stat32 |  | ||||||
| { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int32		st_size; |  | ||||||
| 	__time32_t	st_atime; |  | ||||||
| 	__time32_t	st_mtime; |  | ||||||
| 	__time32_t	st_ctime; |  | ||||||
| }; |  | ||||||
| struct _stat32i64 { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int64		st_size; |  | ||||||
| 	__time32_t	st_atime; |  | ||||||
| 	__time32_t	st_mtime; |  | ||||||
| 	__time32_t	st_ctime; |  | ||||||
| }; |  | ||||||
| struct _stat64i32 { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int32		st_size; |  | ||||||
| 	__time64_t	st_atime; |  | ||||||
| 	__time64_t	st_mtime; |  | ||||||
| 	__time64_t	st_ctime; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
| #define _STAT_DEFINED |  | ||||||
| #endif /* _STAT_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fstat (int, struct _stat*); |  | ||||||
| #endif |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_chmod (const char*, int); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stat (const char*, struct _stat*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| /* These functions live in liboldnames.a. */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fstat (int, struct stat*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	chmod (const char*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	stat (const char*, struct stat*); |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #if defined (__MSVCRT__) |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _fstati64(int, struct _stati64 *); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _stati64(const char *, struct _stati64 *); |  | ||||||
| #endif |  | ||||||
| /* These require newer versions of msvcrt.dll (6.10 or higher).  */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _fstat64 (int, struct __stat64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _stat64 (const char*, struct __stat64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fstat32 (int, struct __stat32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stat32 (const char*, struct __stat32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fstat32i64 (int, struct _stat32i64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_fstat64i32 (int, struct _stat64i32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stat32i64 (const char*, struct _stat32i64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_stat64i32 (const char*, struct _stat64i32*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_fstat (int _v1, struct _stat* _v2)		 { return(_fstat64i32 (_v1,(struct _stat64i32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_stat (const char* _v1, struct _stat* _v2)	 { return(_stat64i32  (_v1,(struct _stat64i32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_fstati64 (int _v1, struct _stati64* _v2)	 { return(_fstat64 (_v1,(struct __stat64*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_stati64 (const char* _v1, struct _stati64* _v2) { return(_stat64  (_v1,(struct __stat64*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_fstat (int _v1, struct _stat* _v2)		 { return(_fstat32 (_v1,(struct __stat32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_stat (const char* _v1, struct _stat* _v2)	 { return(_stat32  (_v1,(struct __stat32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_fstati64 (int _v1, struct _stati64* _v2)	 { return(_fstat32i64 (_v1,(struct _stat32i64*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_stati64 (const char* _v1, struct _stati64* _v2) { return(_stat32i64  (_v1,(struct _stat32i64*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */ |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat(const wchar_t*, struct _stat*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t*, struct _stati64*); |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wstat64 (const wchar_t*, struct __stat64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat32 (const wchar_t*, struct __stat32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat32i64 (const wchar_t*, struct _stat32i64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat64i32 (const wchar_t*, struct _stat64i32*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstat (const wchar_t* _v1, struct _stat* _v2)	     { return(_wstat64i32 (_v1,(struct _stat64i32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat64 (_v1,(struct __stat64*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstat (const wchar_t* _v1, struct _stat* _v2)	     { return(_wstat32 (_v1,(struct __stat32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat32i64 (_v1,(struct _stat32i64*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define _WSTAT_DEFINED |  | ||||||
| #endif /* _WSTAT_DEFIND */ |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _STAT_H_ */ |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| #ifndef _SYS_TIME_H_ |  | ||||||
| #define _SYS_TIME_H_ |  | ||||||
| #include <time.h> |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TIMEVAL_DEFINED /* also in winsock[2].h */ |  | ||||||
| #define _TIMEVAL_DEFINED |  | ||||||
| struct timeval { |  | ||||||
|   long tv_sec; |  | ||||||
|   long tv_usec; |  | ||||||
| }; |  | ||||||
| #define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec) |  | ||||||
| #define timercmp(tvp, uvp, cmp) \ |  | ||||||
| 	(((tvp)->tv_sec != (uvp)->tv_sec) ? \ |  | ||||||
| 	((tvp)->tv_sec cmp (uvp)->tv_sec) : \ |  | ||||||
| 	((tvp)->tv_usec cmp (uvp)->tv_usec)) |  | ||||||
| #define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0 |  | ||||||
| #endif /* _TIMEVAL_DEFINED */ |  | ||||||
|  |  | ||||||
| /* Provided for compatibility with code that assumes that |  | ||||||
|    the presence of gettimeofday function implies a definition |  | ||||||
|    of struct timezone. */ |  | ||||||
| struct timezone |  | ||||||
| { |  | ||||||
|   int tz_minuteswest; /* of Greenwich */ |  | ||||||
|   int tz_dsttime;     /* type of dst correction to apply */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|    Implementation as per: |  | ||||||
|    The Open Group Base Specifications, Issue 6 |  | ||||||
|    IEEE Std 1003.1, 2004 Edition |  | ||||||
|  |  | ||||||
|    The timezone pointer arg is ignored.  Errors are ignored. |  | ||||||
| */  |  | ||||||
| int __cdecl __MINGW_NOTHROW gettimeofday(struct timeval *__restrict__, |  | ||||||
| 			 void *__restrict__  /*	tzp (unused) */); |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif /* _SYS_TIME_H_ */ |  | ||||||
| @@ -1,97 +0,0 @@ | |||||||
| /* |  | ||||||
|  * timeb.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Support for the UNIX System V ftime system call. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_TIMEB_H_ |  | ||||||
| #define	_TIMEB_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
| #include <sys/types.h> |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * TODO: Structure not tested. |  | ||||||
|  */ |  | ||||||
| struct _timeb |  | ||||||
| { |  | ||||||
| 	time_t	time; |  | ||||||
| 	short	millitm; |  | ||||||
| 	short	timezone; |  | ||||||
| 	short	dstflag; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| /* |  | ||||||
|  * TODO: Structure not tested. |  | ||||||
|  */ |  | ||||||
| struct __timeb32 |  | ||||||
| { |  | ||||||
| 	__time32_t	time; |  | ||||||
| 	short	millitm; |  | ||||||
| 	short	timezone; |  | ||||||
| 	short	dstflag; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* |  | ||||||
|  * TODO: Structure not tested. |  | ||||||
|  */ |  | ||||||
| struct timeb |  | ||||||
| { |  | ||||||
| 	time_t	time; |  | ||||||
| 	short	millitm; |  | ||||||
| 	short	timezone; |  | ||||||
| 	short	dstflag; |  | ||||||
| }; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* TODO: Not tested. */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_ftime (struct _timeb*); |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	ftime (struct timeb*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| /* This requires newer versions of msvcrt.dll (6.10 or higher).  */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __timeb64 |  | ||||||
| { |  | ||||||
|   __time64_t time; |  | ||||||
|   short millitm; |  | ||||||
|   short timezone; |  | ||||||
|   short dstflag; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_ftime64 (struct __timeb64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_ftime32 (struct __timeb32*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS void __cdecl __MINGW_NOTHROW	_ftime (struct _timeb* _v) { return(_ftime64 ((struct __timeb64*)_v)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS void __cdecl __MINGW_NOTHROW	_ftime (struct _timeb* _v) { return(_ftime32 ((struct __timeb32*)_v)); } |  | ||||||
| #endif |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _TIMEB_H_ */ |  | ||||||
| @@ -1,138 +0,0 @@ | |||||||
| /* |  | ||||||
|  * types.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * The definition of constants, data types and global variables. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_TYPES_H_ |  | ||||||
| #define	_TYPES_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_ptrdiff_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifndef _TIME32_T_DEFINED |  | ||||||
| typedef __int32 __time32_t; |  | ||||||
| #define _TIME32_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TIME64_T_DEFINED |  | ||||||
| typedef __int64 __time64_t; |  | ||||||
| #define _TIME64_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TIME_T_DEFINED |  | ||||||
| /* FIXME __STRICT_ANSI__ ! */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| typedef	__time64_t time_t; |  | ||||||
| #else |  | ||||||
| typedef	__time32_t time_t; |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #else |  | ||||||
| typedef	__time32_t time_t; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define _TIME_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_OFF_T_ |  | ||||||
| #define	_OFF_T_ |  | ||||||
| typedef long _off_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _off_t	off_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _OFF_T_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _DEV_T_ |  | ||||||
| #define	_DEV_T_ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| typedef unsigned int _dev_t; |  | ||||||
| #else |  | ||||||
| typedef short _dev_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _dev_t	dev_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _DEV_T_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _INO_T_ |  | ||||||
| #define	_INO_T_ |  | ||||||
| typedef short _ino_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _ino_t	ino_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _INO_T_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _PID_T_ |  | ||||||
| #define	_PID_T_ |  | ||||||
| typedef int	_pid_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _pid_t	pid_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _PID_T_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _MODE_T_ |  | ||||||
| #define	_MODE_T_ |  | ||||||
| typedef unsigned short _mode_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _mode_t	mode_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _MODE_T_ */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _SIGSET_T_ |  | ||||||
| #define	_SIGSET_T_ |  | ||||||
| typedef int	_sigset_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _sigset_t	sigset_t; |  | ||||||
| #endif |  | ||||||
| #endif	/* Not _SIGSET_T_ */ |  | ||||||
|  |  | ||||||
| #ifndef _SSIZE_T_ |  | ||||||
| #define _SSIZE_T_ |  | ||||||
| typedef int _ssize_t; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| typedef _ssize_t ssize_t; |  | ||||||
| #endif |  | ||||||
| #endif /* Not _SSIZE_T_ */  |  | ||||||
|  |  | ||||||
| #ifndef _FPOS64_T_ |  | ||||||
| #define _FPOS64_T_ |  | ||||||
| typedef long long fpos64_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _OFF64_T_ |  | ||||||
| #define _OFF64_T_ |  | ||||||
| typedef long long off64_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if !defined __NO_ISOCEXT |  | ||||||
| typedef unsigned int useconds_t; |  | ||||||
| #endif  /* Not __NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _TYPES_H_ */ |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * unistd.h maps (roughly) to io.h |  | ||||||
|  */ |  | ||||||
| #include <io.h> |  | ||||||
| @@ -1,110 +0,0 @@ | |||||||
| /* |  | ||||||
|  * utime.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Support for the utime function. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #ifndef	_UTIME_H_ |  | ||||||
| #define	_UTIME_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define __need_size_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
| #include <sys/types.h> |  | ||||||
|  |  | ||||||
| #ifndef	RC_INVOKED |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Structure used by _utime function. |  | ||||||
|  */ |  | ||||||
| struct _utimbuf |  | ||||||
| { |  | ||||||
| 	time_t	actime;		/* Access time */ |  | ||||||
| 	time_t	modtime;	/* Modification time */ |  | ||||||
| }; |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| struct __utimbuf32 |  | ||||||
| { |  | ||||||
| 	__time32_t actime; |  | ||||||
| 	__time32_t modtime; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* NOTE: Must be the same as _utimbuf above. */ |  | ||||||
| struct utimbuf |  | ||||||
| { |  | ||||||
| 	time_t	actime; |  | ||||||
| 	time_t	modtime; |  | ||||||
| }; |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_utime (const char*, struct _utimbuf*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* FIXME for __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	utime (const char*, struct utimbuf*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_futime (int, struct _utimbuf*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* The wide character version, only available for MSVCRT versions of the |  | ||||||
|  * C runtime library. */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wutime (const wchar_t*, struct _utimbuf*); |  | ||||||
| #endif |  | ||||||
| #endif /* MSVCRT runtime */ |  | ||||||
|  |  | ||||||
| /* These require newer versions of msvcrt.dll (6.10 or higher).  */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __utimbuf64 |  | ||||||
| { |  | ||||||
| 	__time64_t actime; |  | ||||||
| 	__time64_t modtime; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_utime64 (const char*, struct __utimbuf64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wutime64 (const wchar_t*, struct __utimbuf64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_futime64 (int, struct __utimbuf64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_utime32 (const char*, struct __utimbuf32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wutime32 (const wchar_t*, struct __utimbuf32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_futime32 (int, struct __utimbuf32*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_utime (const char* _v1, struct _utimbuf* _v2)	   { return(_utime64  (_v1,(struct __utimbuf64*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wutime (const wchar_t* _v1, struct _utimbuf* _v2) { return(_wutime64 (_v1,(struct __utimbuf64*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_futime (int _v1, struct _utimbuf* _v2)		   { return(_futime64 (_v1,(struct __utimbuf64*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_utime (const char* _v1, struct _utimbuf* _v2)	   { return(_utime32  (_v1,(struct __utimbuf32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wutime (const wchar_t* _v1, struct _utimbuf* _v2) { return(_wutime32 (_v1,(struct __utimbuf32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_futime (int _v1, struct _utimbuf* _v2)		   { return(_futime32 (_v1,(struct __utimbuf32*)_v2)); } |  | ||||||
| #endif |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _UTIME_H_ */ |  | ||||||
| @@ -1,484 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * tchar.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Unicode mapping layer for the standard C library. By including this |  | ||||||
|  * file and using the 't' names for string functions |  | ||||||
|  * (eg. _tprintf) you can make code which can be easily adapted to both |  | ||||||
|  * Unicode and non-unicode environments. In a unicode enabled compile define |  | ||||||
|  * _UNICODE before including tchar.h, otherwise the standard non-unicode |  | ||||||
|  * library functions will be used. |  | ||||||
|  * |  | ||||||
|  * Note that you still need to include string.h or stdlib.h etc. to define |  | ||||||
|  * the appropriate functions. Also note that there are several defines |  | ||||||
|  * included for non-ANSI functions which are commonly available (but using |  | ||||||
|  * the convention of prepending an underscore to non-ANSI library function |  | ||||||
|  * names). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_TCHAR_H_ |  | ||||||
| #define _TCHAR_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * NOTE: This tests _UNICODE, which is different from the UNICODE define |  | ||||||
|  *       used to differentiate Win32 API calls. |  | ||||||
|  */ |  | ||||||
| #ifdef	_UNICODE |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Include <wchar.h> for wchar_t and WEOF if _UNICODE. |  | ||||||
|  */ |  | ||||||
| #include <wchar.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Use TCHAR instead of char or wchar_t. It will be appropriately translated |  | ||||||
|  * if _UNICODE is correctly defined (or not). |  | ||||||
|  */ |  | ||||||
| #ifndef _TCHAR_DEFINED |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| typedef	wchar_t	TCHAR; |  | ||||||
| typedef wchar_t _TCHAR; |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
| #define _TCHAR_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Use _TEOF instead of EOF or WEOF. It will be appropriately translated if |  | ||||||
|  * _UNICODE is correctly defined (or not). |  | ||||||
|  */ |  | ||||||
| #define _TEOF WEOF |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * __TEXT is a private macro whose specific use is to force the expansion of a |  | ||||||
|  * macro passed as an argument to the macros _T or _TEXT.  DO NOT use this |  | ||||||
|  * macro within your programs.  It's name and function could change without |  | ||||||
|  * notice. |  | ||||||
|  */ |  | ||||||
| #define	__TEXT(q)	L##q |  | ||||||
|  |  | ||||||
| /*  for porting from other Windows compilers */ |  | ||||||
| #if 0  /* no  wide startup module */ |  | ||||||
| #define _tmain      wmain |  | ||||||
| #define _tWinMain   wWinMain |  | ||||||
| #define _tenviron   _wenviron |  | ||||||
| #define __targv     __wargv |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Unicode functions |  | ||||||
|  */ |  | ||||||
| #define	_tprintf	wprintf |  | ||||||
| #define	_ftprintf	fwprintf |  | ||||||
| #define	_stprintf	swprintf |  | ||||||
| #define	_sntprintf	_snwprintf |  | ||||||
| #define	_vtprintf	vwprintf |  | ||||||
| #define	_vftprintf	vfwprintf |  | ||||||
| #define _vstprintf	vswprintf |  | ||||||
| #define	_vsntprintf	_vsnwprintf |  | ||||||
| #define	_vsctprintf	_vscwprintf |  | ||||||
| #define	_tscanf		wscanf |  | ||||||
| #define	_ftscanf	fwscanf |  | ||||||
| #define	_stscanf	swscanf |  | ||||||
| #define	_fgettc		fgetwc |  | ||||||
| #define	_fgettchar	_fgetwchar |  | ||||||
| #define	_fgetts		fgetws |  | ||||||
| #define	_fputtc		fputwc |  | ||||||
| #define	_fputtchar	_fputwchar |  | ||||||
| #define	_fputts		fputws |  | ||||||
| #define	_gettc		getwc |  | ||||||
| #define	_getts		_getws |  | ||||||
| #define	_puttc		putwc |  | ||||||
| #define _puttchar       putwchar |  | ||||||
| #define	_putts		_putws |  | ||||||
| #define	_ungettc	ungetwc |  | ||||||
| #define	_tcstod		wcstod |  | ||||||
| #define	_tcstol		wcstol |  | ||||||
| #define _tcstoul	wcstoul |  | ||||||
| #define	_itot		_itow |  | ||||||
| #define	_ltot		_ltow |  | ||||||
| #define	_ultot		_ultow |  | ||||||
| #define	_ttoi		_wtoi |  | ||||||
| #define	_ttol		_wtol |  | ||||||
| #define	_tcscat		wcscat |  | ||||||
| #define _tcschr		wcschr |  | ||||||
| #define _tcscmp		wcscmp |  | ||||||
| #define _tcscpy		wcscpy |  | ||||||
| #define _tcscspn	wcscspn |  | ||||||
| #define	_tcslen		wcslen |  | ||||||
| #define	_tcsncat	wcsncat |  | ||||||
| #define	_tcsncmp	wcsncmp |  | ||||||
| #define	_tcsncpy	wcsncpy |  | ||||||
| #define	_tcspbrk	wcspbrk |  | ||||||
| #define	_tcsrchr	wcsrchr |  | ||||||
| #define _tcsspn		wcsspn |  | ||||||
| #define	_tcsstr		wcsstr |  | ||||||
| #define _tcstok		wcstok |  | ||||||
| #define	_tcsdup		_wcsdup |  | ||||||
| #define	_tcsicmp	_wcsicmp |  | ||||||
| #define	_tcsnicmp	_wcsnicmp |  | ||||||
| #define	_tcsnset	_wcsnset |  | ||||||
| #define	_tcsrev		_wcsrev |  | ||||||
| #define _tcsset		_wcsset |  | ||||||
| #define	_tcslwr		_wcslwr |  | ||||||
| #define	_tcsupr		_wcsupr |  | ||||||
| #define	_tcsxfrm	wcsxfrm |  | ||||||
| #define	_tcscoll	wcscoll |  | ||||||
| #define	_tcsicoll	_wcsicoll |  | ||||||
| #define	_istalpha	iswalpha |  | ||||||
| #define	_istupper	iswupper |  | ||||||
| #define	_istlower	iswlower |  | ||||||
| #define	_istdigit	iswdigit |  | ||||||
| #define	_istxdigit	iswxdigit |  | ||||||
| #define	_istspace	iswspace |  | ||||||
| #define	_istpunct	iswpunct |  | ||||||
| #define	_istalnum	iswalnum |  | ||||||
| #define	_istprint	iswprint |  | ||||||
| #define	_istgraph	iswgraph |  | ||||||
| #define	_istcntrl	iswcntrl |  | ||||||
| #define	_istascii	iswascii |  | ||||||
| #define _totupper	towupper |  | ||||||
| #define	_totlower	towlower |  | ||||||
| #define _tcsftime	wcsftime |  | ||||||
| /* Macro functions */  |  | ||||||
| #define _tcsdec     _wcsdec |  | ||||||
| #define _tcsinc     _wcsinc |  | ||||||
| #define _tcsnbcnt   _wcsncnt |  | ||||||
| #define _tcsnccnt   _wcsncnt |  | ||||||
| #define _tcsnextc   _wcsnextc |  | ||||||
| #define _tcsninc    _wcsninc |  | ||||||
| #define _tcsspnp    _wcsspnp |  | ||||||
| #define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1) |  | ||||||
| #define _wcsinc(_wcs)  ((_wcs)+1) |  | ||||||
| #define _wcsnextc(_wcs) ((unsigned int) *(_wcs)) |  | ||||||
| #define _wcsninc(_wcs, _inc) (((_wcs)+(_inc))) |  | ||||||
| #define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs)) |  | ||||||
| #define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL) |  | ||||||
|  |  | ||||||
| #if 1  /* defined __MSVCRT__ */ |  | ||||||
| /* |  | ||||||
|  *   These wide functions not in crtdll.dll. |  | ||||||
|  *   Define macros anyway so that _wfoo rather than _tfoo is undefined |  | ||||||
|  */ |  | ||||||
| #define _ttoi64     _wtoi64 |  | ||||||
| #define _i64tot     _i64tow |  | ||||||
| #define _ui64tot    _ui64tow |  | ||||||
| #define	_tasctime	_wasctime |  | ||||||
| #define	_tctime		_wctime |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define	_tctime32	_wctime32 |  | ||||||
| #define	_tctime64	_wctime64 |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define	_tstrdate	_wstrdate |  | ||||||
| #define	_tstrtime	_wstrtime |  | ||||||
| #define	_tutime		_wutime |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define	_tutime64	_wutime64 |  | ||||||
| #define	_tutime32	_wutime32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tcsnccoll  _wcsncoll |  | ||||||
| #define _tcsncoll   _wcsncoll |  | ||||||
| #define _tcsncicoll _wcsnicoll |  | ||||||
| #define _tcsnicoll  _wcsnicoll |  | ||||||
| #define _taccess    _waccess |  | ||||||
| #define _tchmod     _wchmod |  | ||||||
| #define _tcreat     _wcreat |  | ||||||
| #define _tfindfirst _wfindfirst |  | ||||||
| #define _tfindnext  _wfindnext |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tfindfirst64 _wfindfirst64 |  | ||||||
| #define _tfindfirst32 _wfindfirst32 |  | ||||||
| #define _tfindnext64  _wfindnext64 |  | ||||||
| #define _tfindnext32  _wfindnext32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tfdopen    _wfdopen |  | ||||||
| #define _tfopen     _wfopen |  | ||||||
| #define _tfreopen   _wfreopen |  | ||||||
| #define _tfsopen    _wfsopen |  | ||||||
| #define _tgetenv    _wgetenv |  | ||||||
| #define _tputenv    _wputenv |  | ||||||
| #define _tsearchenv _wsearchenv |  | ||||||
| #define  _tsystem    _wsystem |  | ||||||
| #define _tmakepath  _wmakepath |  | ||||||
| #define _tsplitpath _wsplitpath |  | ||||||
| #define _tfullpath  _wfullpath |  | ||||||
| #define _tmktemp    _wmktemp |  | ||||||
| #define _topen      _wopen |  | ||||||
| #define _tremove    _wremove |  | ||||||
| #define _trename    _wrename |  | ||||||
| #define _tsopen     _wsopen |  | ||||||
| #define _tsetlocale _wsetlocale |  | ||||||
| #define _tunlink    _wunlink |  | ||||||
| #define _tfinddata_t    _wfinddata_t |  | ||||||
| #define _tfindfirsti64  _wfindfirsti64 |  | ||||||
| #define _tfindnexti64   _wfindnexti64 |  | ||||||
| #define _tfinddatai64_t _wfinddatai64_t |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| #define _tfinddata64_t    _wfinddata64_t |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tfinddata32_t    _wfinddata32_t |  | ||||||
| #define _tfinddata32i64_t _wfinddata32i64_t |  | ||||||
| #define _tfinddata64i32_t _wfinddata64i32_t |  | ||||||
| #define _tfindfirst32i64  _wfindfirst32i64 |  | ||||||
| #define _tfindfirst64i32  _wfindfirst64i32 |  | ||||||
| #define _tfindnext32i64   _wfindnext32i64 |  | ||||||
| #define _tfindnext64i32   _wfindnext64i32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tchdir		_wchdir |  | ||||||
| #define _tgetcwd	_wgetcwd |  | ||||||
| #define _tgetdcwd	_wgetdcwd |  | ||||||
| #define _tmkdir		_wmkdir |  | ||||||
| #define _trmdir		_wrmdir |  | ||||||
| #define _tstat		_wstat |  | ||||||
| #define _tstati64	_wstati64 |  | ||||||
| #define _tstat64	_wstat64 |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tstat32	_wstat32 |  | ||||||
| #define _tstat32i64	_wstat32i64 |  | ||||||
| #define _tstat64i32	_wstat64i32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #endif  /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /* dirent structures and functions */ |  | ||||||
| #define _tdirent	_wdirent |  | ||||||
| #define _TDIR 		_WDIR |  | ||||||
| #define _topendir	_wopendir |  | ||||||
| #define _tclosedir	_wclosedir |  | ||||||
| #define _treaddir	_wreaddir |  | ||||||
| #define _trewinddir	_wrewinddir |  | ||||||
| #define _ttelldir	_wtelldir |  | ||||||
| #define _tseekdir	_wseekdir |  | ||||||
|  |  | ||||||
| #else	/* Not _UNICODE */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * TCHAR, the type you should use instead of char. |  | ||||||
|  */ |  | ||||||
| #ifndef _TCHAR_DEFINED |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| typedef char	TCHAR; |  | ||||||
| typedef char	_TCHAR; |  | ||||||
| #endif |  | ||||||
| #define _TCHAR_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * _TEOF, the constant you should use instead of EOF. |  | ||||||
|  */ |  | ||||||
| #define _TEOF EOF |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * __TEXT is a private macro whose specific use is to force the expansion of a |  | ||||||
|  * macro passed as an argument to the macros _T or _TEXT.  DO NOT use this |  | ||||||
|  * macro within your programs.  It's name and function could change without |  | ||||||
|  * notice. |  | ||||||
|  */ |  | ||||||
| #define	__TEXT(q)	q |  | ||||||
|  |  | ||||||
| /*  for porting from other Windows compilers */ |  | ||||||
| #define _tmain      main |  | ||||||
| #define _tWinMain   WinMain |  | ||||||
| #define _tenviron  _environ |  | ||||||
| #define __targv     __argv |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Non-unicode (standard) functions |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #define	_tprintf	printf |  | ||||||
| #define _ftprintf	fprintf |  | ||||||
| #define	_stprintf	sprintf |  | ||||||
| #define	_sntprintf	_snprintf |  | ||||||
| #define	_vtprintf	vprintf |  | ||||||
| #define	_vftprintf	vfprintf |  | ||||||
| #define _vstprintf	vsprintf |  | ||||||
| #define	_vsntprintf	_vsnprintf |  | ||||||
| #define	_vsctprintf	_vscprintf |  | ||||||
| #define	_tscanf		scanf |  | ||||||
| #define	_ftscanf	fscanf |  | ||||||
| #define	_stscanf	sscanf |  | ||||||
| #define	_fgettc		fgetc |  | ||||||
| #define	_fgettchar	_fgetchar |  | ||||||
| #define	_fgetts		fgets |  | ||||||
| #define	_fputtc		fputc |  | ||||||
| #define	_fputtchar	_fputchar |  | ||||||
| #define	_fputts		fputs |  | ||||||
| #define _tfdopen	_fdopen |  | ||||||
| #define	_tfopen		fopen |  | ||||||
| #define _tfreopen	freopen |  | ||||||
| #define	_tfsopen	_fsopen |  | ||||||
| #define	_tgetenv	getenv |  | ||||||
| #define	_tputenv	_putenv |  | ||||||
| #define	_tsearchenv	_searchenv |  | ||||||
| #define  _tsystem       system |  | ||||||
| #define	_tmakepath	_makepath |  | ||||||
| #define	_tsplitpath	_splitpath |  | ||||||
| #define	_tfullpath	_fullpath |  | ||||||
| #define	_gettc		getc |  | ||||||
| #define	_getts		gets |  | ||||||
| #define	_puttc		putc |  | ||||||
| #define _puttchar       putchar |  | ||||||
| #define	_putts		puts |  | ||||||
| #define	_ungettc	ungetc |  | ||||||
| #define	_tcstod		strtod |  | ||||||
| #define	_tcstol		strtol |  | ||||||
| #define _tcstoul	strtoul |  | ||||||
| #define	_itot		_itoa |  | ||||||
| #define	_ltot		_ltoa |  | ||||||
| #define	_ultot		_ultoa |  | ||||||
| #define	_ttoi		atoi |  | ||||||
| #define	_ttol		atol |  | ||||||
| #define	_tcscat		strcat |  | ||||||
| #define _tcschr		strchr |  | ||||||
| #define _tcscmp		strcmp |  | ||||||
| #define _tcscpy		strcpy |  | ||||||
| #define _tcscspn	strcspn |  | ||||||
| #define	_tcslen		strlen |  | ||||||
| #define	_tcsncat	strncat |  | ||||||
| #define	_tcsncmp	strncmp |  | ||||||
| #define	_tcsncpy	strncpy |  | ||||||
| #define	_tcspbrk	strpbrk |  | ||||||
| #define	_tcsrchr	strrchr |  | ||||||
| #define _tcsspn		strspn |  | ||||||
| #define	_tcsstr		strstr |  | ||||||
| #define _tcstok		strtok |  | ||||||
| #define	_tcsdup		_strdup |  | ||||||
| #define	_tcsicmp	_stricmp |  | ||||||
| #define	_tcsnicmp	_strnicmp |  | ||||||
| #define	_tcsnset	_strnset |  | ||||||
| #define	_tcsrev		_strrev |  | ||||||
| #define _tcsset		_strset |  | ||||||
| #define	_tcslwr		_strlwr |  | ||||||
| #define	_tcsupr		_strupr |  | ||||||
| #define	_tcsxfrm	strxfrm |  | ||||||
| #define	_tcscoll	strcoll |  | ||||||
| #define	_tcsicoll	_stricoll |  | ||||||
| #define	_istalpha	isalpha |  | ||||||
| #define	_istupper	isupper |  | ||||||
| #define	_istlower	islower |  | ||||||
| #define	_istdigit	isdigit |  | ||||||
| #define	_istxdigit	isxdigit |  | ||||||
| #define	_istspace	isspace |  | ||||||
| #define	_istpunct	ispunct |  | ||||||
| #define	_istalnum	isalnum |  | ||||||
| #define	_istprint	isprint |  | ||||||
| #define	_istgraph	isgraph |  | ||||||
| #define	_istcntrl	iscntrl |  | ||||||
| #define	_istascii	isascii |  | ||||||
| #define _totupper	toupper |  | ||||||
| #define	_totlower	tolower |  | ||||||
| #define	_tasctime	asctime |  | ||||||
| #define	_tctime		ctime |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define	_tctime32	_ctime32 |  | ||||||
| #define	_tctime64	_ctime64 |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define	_tstrdate	_strdate |  | ||||||
| #define	_tstrtime	_strtime |  | ||||||
| #define	_tutime		_utime |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define	_tutime64	_utime64 |  | ||||||
| #define	_tutime32	_utime32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tcsftime	strftime |  | ||||||
| /* Macro functions */  |  | ||||||
| #define _tcsdec     _strdec |  | ||||||
| #define _tcsinc     _strinc |  | ||||||
| #define _tcsnbcnt   _strncnt |  | ||||||
| #define _tcsnccnt   _strncnt |  | ||||||
| #define _tcsnextc   _strnextc |  | ||||||
| #define _tcsninc    _strninc |  | ||||||
| #define _tcsspnp    _strspnp |  | ||||||
| #define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1) |  | ||||||
| #define _strinc(_str)  ((_str)+1) |  | ||||||
| #define _strnextc(_str) ((unsigned int) *(_str)) |  | ||||||
| #define _strninc(_str, _inc) (((_str)+(_inc))) |  | ||||||
| #define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str)) |  | ||||||
| #define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL) |  | ||||||
|  |  | ||||||
| #define _tchmod     _chmod |  | ||||||
| #define _tcreat     _creat |  | ||||||
| #define _tfindfirst _findfirst |  | ||||||
| #define _tfindnext  _findnext |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tfindfirst64 _findfirst64 |  | ||||||
| #define _tfindfirst32 _findfirst32 |  | ||||||
| #define _tfindnext64  _findnext64 |  | ||||||
| #define _tfindnext32  _findnext32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tmktemp    _mktemp |  | ||||||
| #define _topen      _open |  | ||||||
| #define _taccess    _access |  | ||||||
| #define _tremove    remove |  | ||||||
| #define _trename    rename |  | ||||||
| #define _tsopen     _sopen |  | ||||||
| #define _tsetlocale setlocale |  | ||||||
| #define _tunlink    _unlink |  | ||||||
| #define _tfinddata_t    _finddata_t |  | ||||||
| #define _tchdir	    _chdir |  | ||||||
| #define _tgetcwd    _getcwd |  | ||||||
| #define _tgetdcwd   _getdcwd |  | ||||||
| #define _tmkdir	    _mkdir |  | ||||||
| #define _trmdir	    _rmdir |  | ||||||
| #define _tstat      _stat |  | ||||||
|  |  | ||||||
| #if 1  /* defined __MSVCRT__ */ |  | ||||||
| /* Not in crtdll.dll. Define macros anyway? */ |  | ||||||
| #define _ttoi64     _atoi64 |  | ||||||
| #define _i64tot     _i64toa |  | ||||||
| #define _ui64tot    _ui64toa |  | ||||||
| #define _tcsnccoll  _strncoll |  | ||||||
| #define _tcsncoll   _strncoll |  | ||||||
| #define _tcsncicoll _strnicoll |  | ||||||
| #define _tcsnicoll  _strnicoll |  | ||||||
| #define _tfindfirsti64  _findfirsti64 |  | ||||||
| #define _tfindnexti64   _findnexti64 |  | ||||||
| #define _tfinddatai64_t _finddatai64_t |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| #define _tfinddata64_t    _finddata64_t |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tfinddata32_t    _finddata32_t |  | ||||||
| #define _tfinddata32i64_t _finddata32i64_t |  | ||||||
| #define _tfinddata64i32_t _finddata64i32_t |  | ||||||
| #define _tfindfirst32i64  _findfirst32i64 |  | ||||||
| #define _tfindfirst64i32  _findfirst64i32 |  | ||||||
| #define _tfindnext32i64   _findnext32i64 |  | ||||||
| #define _tfindnext64i32   _findnext64i32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #define _tstati64   _stati64 |  | ||||||
| #define _tstat64    _stat64 |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #define _tstat32	_stat32 |  | ||||||
| #define _tstat32i64	_stat32i64 |  | ||||||
| #define _tstat64i32	_stat64i32 |  | ||||||
| #endif /* __MSVCRT_VERSION__ > 0x0800 */ |  | ||||||
| #endif  /* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /* dirent structures and functions */ |  | ||||||
| #define _tdirent	dirent |  | ||||||
| #define _TDIR 		DIR |  | ||||||
| #define _topendir	opendir |  | ||||||
| #define _tclosedir	closedir |  | ||||||
| #define _treaddir	readdir |  | ||||||
| #define _trewinddir	rewinddir |  | ||||||
| #define _ttelldir	telldir |  | ||||||
| #define _tseekdir	seekdir |  | ||||||
|  |  | ||||||
| #endif	/* Not _UNICODE */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * UNICODE a constant string when _UNICODE is defined else returns the string |  | ||||||
|  * unmodified.  Also defined in w32api/winnt.h. |  | ||||||
|  */ |  | ||||||
| #define _TEXT(x)	__TEXT(x) |  | ||||||
| #define	_T(x)		__TEXT(x) |  | ||||||
|  |  | ||||||
| #endif	/* Not _TCHAR_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,280 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * time.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Date and time functions and types. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_TIME_H_ |  | ||||||
| #define	_TIME_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_NULL |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Number of clock ticks per second. A clock tick is the unit by which |  | ||||||
|  * processor time is measured and is returned by 'clock'. |  | ||||||
|  */ |  | ||||||
| #define	CLOCKS_PER_SEC	((clock_t)1000) |  | ||||||
| #define	CLK_TCK		CLOCKS_PER_SEC |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * A type for storing the current time and date. This is the number of |  | ||||||
|  * seconds since midnight Jan 1, 1970. |  | ||||||
|  * NOTE: This is also defined in non-ISO sys/types.h. |  | ||||||
|  */ |  | ||||||
| #ifndef _TIME32_T_DEFINED |  | ||||||
| typedef __int32 __time32_t; |  | ||||||
| #define _TIME32_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| /* A 64-bit time_t to get to Y3K */ |  | ||||||
| #ifndef _TIME64_T_DEFINED |  | ||||||
| typedef __int64 __time64_t; |  | ||||||
| #define _TIME64_T_DEFINED |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TIME_T_DEFINED |  | ||||||
| /* FIXME __STRICT_ANSI__ ! */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| typedef	__time64_t time_t; |  | ||||||
| #else |  | ||||||
| typedef	__time32_t time_t; |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #else |  | ||||||
| typedef	__time32_t time_t; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define _TIME_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * A type for measuring processor time (in clock ticks). |  | ||||||
|  */ |  | ||||||
| #ifndef _CLOCK_T_DEFINED |  | ||||||
| typedef	long	clock_t; |  | ||||||
| #define _CLOCK_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TM_DEFINED |  | ||||||
| /* |  | ||||||
|  * A structure for storing all kinds of useful information about the |  | ||||||
|  * current (or another) time. |  | ||||||
|  */ |  | ||||||
| struct tm |  | ||||||
| { |  | ||||||
| 	int	tm_sec;		/* Seconds: 0-59 (K&R says 0-61?) */ |  | ||||||
| 	int	tm_min;		/* Minutes: 0-59 */ |  | ||||||
| 	int	tm_hour;	/* Hours since midnight: 0-23 */ |  | ||||||
| 	int	tm_mday;	/* Day of the month: 1-31 */ |  | ||||||
| 	int	tm_mon;		/* Months *since* january: 0-11 */ |  | ||||||
| 	int	tm_year;	/* Years since 1900 */ |  | ||||||
| 	int	tm_wday;	/* Days since Sunday (0-6) */ |  | ||||||
| 	int	tm_yday;	/* Days since Jan. 1: 0-365 */ |  | ||||||
| 	int	tm_isdst;	/* +1 Daylight Savings Time, 0 No DST, |  | ||||||
| 				 * -1 don't know */ |  | ||||||
| }; |  | ||||||
| #define _TM_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP clock_t __cdecl __MINGW_NOTHROW	clock (void); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP time_t __cdecl __MINGW_NOTHROW	time (time_t*); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	difftime (time_t, time_t); |  | ||||||
| _CRTIMP time_t __cdecl __MINGW_NOTHROW	mktime (struct tm*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * These functions write to and return pointers to static buffers that may |  | ||||||
|  * be overwritten by other function calls. Yikes! |  | ||||||
|  * |  | ||||||
|  * NOTE: localtime, and perhaps the others of the four functions grouped |  | ||||||
|  * below may return NULL if their argument is not 'acceptable'. Also note |  | ||||||
|  * that calling asctime with a NULL pointer will produce an Invalid Page |  | ||||||
|  * Fault and crap out your program. Guess how I know. Hint: stat called on |  | ||||||
|  * a directory gives 'invalid' times in st_atime etc... |  | ||||||
|  */ |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW		asctime (const struct tm*); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW		ctime (const time_t*); |  | ||||||
| _CRTIMP struct tm*  __cdecl __MINGW_NOTHROW	gmtime (const time_t*); |  | ||||||
| _CRTIMP struct tm*  __cdecl __MINGW_NOTHROW	localtime (const time_t*); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW		strftime (char*, size_t, const char*, const struct tm*); |  | ||||||
|  |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
|  |  | ||||||
| extern _CRTIMP void __cdecl __MINGW_NOTHROW	_tzset (void); |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
| extern _CRTIMP void __cdecl __MINGW_NOTHROW	tzset (void); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strdate(char*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW	_strtime(char*); |  | ||||||
|  |  | ||||||
| /* These require newer versions of msvcrt.dll (6.10 or higher). */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP __time64_t __cdecl __MINGW_NOTHROW  _time64( __time64_t*); |  | ||||||
| _CRTIMP __time64_t __cdecl __MINGW_NOTHROW  _mktime64 (struct tm*); |  | ||||||
| _CRTIMP char* __cdecl __MINGW_NOTHROW _ctime64 (const __time64_t*); |  | ||||||
| _CRTIMP struct tm*  __cdecl __MINGW_NOTHROW _gmtime64 (const __time64_t*); |  | ||||||
| _CRTIMP struct tm*  __cdecl __MINGW_NOTHROW _localtime64 (const __time64_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
|  |  | ||||||
| /* These require newer versions of msvcrt.dll (8.00 or higher). */  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP __time32_t __cdecl __MINGW_NOTHROW	_time32 (__time32_t*); |  | ||||||
| _CRTIMP double	   __cdecl __MINGW_NOTHROW	_difftime32 (__time32_t, __time32_t); |  | ||||||
| _CRTIMP double	   __cdecl __MINGW_NOTHROW	_difftime64 (__time64_t, __time64_t); |  | ||||||
| _CRTIMP __time32_t __cdecl __MINGW_NOTHROW	_mktime32 (struct tm*); |  | ||||||
| _CRTIMP __time32_t __cdecl __MINGW_NOTHROW	_mkgmtime32 (struct tm*); |  | ||||||
| _CRTIMP __time64_t __cdecl __MINGW_NOTHROW	_mkgmtime64 (struct tm*); |  | ||||||
| _CRTIMP char*	   __cdecl __MINGW_NOTHROW	_ctime32 (const __time32_t*); |  | ||||||
| _CRTIMP struct tm* __cdecl __MINGW_NOTHROW	_gmtime32 (const __time32_t*); |  | ||||||
| _CRTIMP struct tm* __cdecl __MINGW_NOTHROW	_localtime32 (const __time32_t*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	time (time_t* _v)		  { return(_time64 (_v)); } |  | ||||||
| _CRTALIAS double	   __cdecl __MINGW_NOTHROW	difftime (time_t _v1, time_t _v2) { return(_difftime64 (_v1,_v2)); } |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	mktime (struct tm* _v)		  { return(_mktime64 (_v)); } |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	_mkgmtime (struct tm* _v)	  { return(_mkgmtime64 (_v)); } |  | ||||||
| _CRTALIAS char*		   __cdecl __MINGW_NOTHROW	ctime (const time_t* _v)	  { return(_ctime64 (_v)); } |  | ||||||
| _CRTALIAS struct tm*	   __cdecl __MINGW_NOTHROW	gmtime (const time_t* _v)	  { return(_gmtime64 (_v)); } |  | ||||||
| _CRTALIAS struct tm*	   __cdecl __MINGW_NOTHROW	localtime (const time_t* _v)	  { return(_localtime64 (_v)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	time (time_t* _v)		  { return(_time32 (_v)); } |  | ||||||
| _CRTALIAS double	   __cdecl __MINGW_NOTHROW	difftime (time_t _v1, time_t _v2) { return(_difftime32 (_v1,_v2)); } |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	mktime (struct tm* _v)		  { return(_mktime32 (_v)); } |  | ||||||
| _CRTALIAS time_t	   __cdecl __MINGW_NOTHROW	_mkgmtime (struct tm* _v)	  { return(_mkgmtime32 (_v)); } |  | ||||||
| _CRTALIAS char*		   __cdecl __MINGW_NOTHROW	ctime (const time_t* _v)	  { return(_ctime32 (_v)); } |  | ||||||
| _CRTALIAS struct tm*	   __cdecl __MINGW_NOTHROW	gmtime (const time_t* _v)	  { return(_gmtime32 (_v)); } |  | ||||||
| _CRTALIAS struct tm*	   __cdecl __MINGW_NOTHROW	localtime (const time_t* _v)	  { return(_localtime32 (_v)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * _daylight: non zero if daylight savings time is used. |  | ||||||
|  * _timezone: difference in seconds between GMT and local time. |  | ||||||
|  * _tzname: standard/daylight savings time zone names (an array with two |  | ||||||
|  *          elements). |  | ||||||
|  */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|  |  | ||||||
| /* These are for compatibility with pre-VC 5.0 suppied MSVCRT. */ |  | ||||||
| extern _CRTIMP int* __cdecl __MINGW_NOTHROW	__p__daylight (void); |  | ||||||
| extern _CRTIMP long* __cdecl __MINGW_NOTHROW	__p__timezone (void); |  | ||||||
| extern _CRTIMP char** __cdecl __MINGW_NOTHROW	__p__tzname (void); |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT int	_daylight; |  | ||||||
| __MINGW_IMPORT long	_timezone; |  | ||||||
| __MINGW_IMPORT char 	*_tzname[2]; |  | ||||||
|  |  | ||||||
| #else /* not __MSVCRT (ie. crtdll) */ |  | ||||||
|  |  | ||||||
| #ifndef __DECLSPEC_SUPPORTED |  | ||||||
|  |  | ||||||
| extern int*	_imp___daylight_dll; |  | ||||||
| extern long*	_imp___timezone_dll; |  | ||||||
| extern char**	_imp___tzname; |  | ||||||
|  |  | ||||||
| #define _daylight	(*_imp___daylight_dll) |  | ||||||
| #define _timezone	(*_imp___timezone_dll) |  | ||||||
| #define _tzname		(*_imp___tzname) |  | ||||||
|  |  | ||||||
| #else /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| __MINGW_IMPORT int	_daylight_dll; |  | ||||||
| __MINGW_IMPORT long	_timezone_dll; |  | ||||||
| __MINGW_IMPORT char*	_tzname[2]; |  | ||||||
|  |  | ||||||
| #define _daylight	_daylight_dll |  | ||||||
| #define _timezone	_timezone_dll |  | ||||||
|  |  | ||||||
| #endif /* __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
| #endif /* not __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #endif	/* Not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #ifndef _NO_OLDNAMES |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|  |  | ||||||
| /* These go in the oldnames import library for MSVCRT. */ |  | ||||||
| __MINGW_IMPORT int	daylight; |  | ||||||
| __MINGW_IMPORT long	timezone; |  | ||||||
| __MINGW_IMPORT char 	*tzname[2]; |  | ||||||
|  |  | ||||||
| #else /* not __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| /* CRTDLL is royally messed up when it comes to these macros. |  | ||||||
|    TODO: import and alias these via oldnames import library instead  |  | ||||||
|    of macros.  */ |  | ||||||
|  |  | ||||||
| #define daylight        _daylight |  | ||||||
| /* NOTE: timezone not defined as macro because it would conflict with |  | ||||||
|    struct timezone in sys/time.h. |  | ||||||
|    Also, tzname used to a be macro, but now it's in moldname. */ |  | ||||||
| __MINGW_IMPORT char 	*tzname[2]; |  | ||||||
|  |  | ||||||
| #endif /* not __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #ifndef _WTIME_DEFINED |  | ||||||
| /* wide function prototypes, also declared in wchar.h */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wasctime(const struct tm*); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime(const time_t*); |  | ||||||
| #endif |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wstrdate(wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wstrtime(wchar_t*); |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime64 (const __time64_t*); |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime32 (const __time32_t*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS wchar_t* __cdecl __MINGW_NOTHROW	_wctime (const time_t* _v) { return(_wctime64 (_v)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS wchar_t* __cdecl __MINGW_NOTHROW	_wctime (const time_t* _v) { return(_wctime32 (_v)); } |  | ||||||
| #endif |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #endif /*  __MSVCRT__ */ |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW		wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*); |  | ||||||
| #define _WTIME_DEFINED |  | ||||||
| #endif /* _WTIME_DEFINED */  |  | ||||||
|  |  | ||||||
| #ifdef	__cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _TIME_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,54 +0,0 @@ | |||||||
| #ifndef _UNISTD_H |  | ||||||
| /* |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * unistd.h maps (roughly) to io.h |  | ||||||
|  * Other headers included by unistd.h may be selectively processed; |  | ||||||
|  * __UNISTD_H_SOURCED__ enables such selective processing. |  | ||||||
|  */ |  | ||||||
| #define _UNISTD_H |  | ||||||
| #define __UNISTD_H_SOURCED__ 1 |  | ||||||
|  |  | ||||||
| #include <io.h> |  | ||||||
| #include <process.h> |  | ||||||
| #include <getopt.h> |  | ||||||
|  |  | ||||||
| /* These are also defined in stdio.h. */ |  | ||||||
| #ifndef	SEEK_SET |  | ||||||
| #define SEEK_SET 0 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	SEEK_CUR |  | ||||||
| #define SEEK_CUR 1 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef SEEK_END |  | ||||||
| #define SEEK_END 2 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if !defined __NO_ISOCEXT |  | ||||||
| #include <sys/types.h> /* For useconds_t. */ |  | ||||||
|  |  | ||||||
| int __cdecl __MINGW_NOTHROW usleep(useconds_t useconds); |  | ||||||
| #endif  /* Not __NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
| /* This is defined as a real library function to allow autoconf |  | ||||||
|    to verify its existence. */ |  | ||||||
| int ftruncate(int, off_t); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int ftruncate(int __fd, off_t __length) |  | ||||||
| { |  | ||||||
|   return _chsize (__fd, __length); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #undef __UNISTD_H_SOURCED__ |  | ||||||
| #endif /* _UNISTD_H */ |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| #include <sys/utime.h> |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| /* |  | ||||||
|  * TODO: Nothing here yet. Should provide UNIX compatibility constants |  | ||||||
|  * comparible to those in limits.h and float.h. |  | ||||||
|  */ |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This is just an RC_INVOKED guard for the real varargs.h |  | ||||||
|  * fixincluded in gcc system dir.  One day we will delete this file. |  | ||||||
|  */ |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include_next<varargs.h> |  | ||||||
| #endif |  | ||||||
| @@ -1,651 +0,0 @@ | |||||||
| /* |  | ||||||
|  * wchar.h |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Defines of all functions for supporting wide characters. Actually it |  | ||||||
|  * just includes all those headers, which is not a good thing to do from a |  | ||||||
|  * processing time point of view, but it does mean that everything will be |  | ||||||
|  * in sync. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef	_WCHAR_H_ |  | ||||||
| #define	_WCHAR_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #define __need_size_t |  | ||||||
| #define __need_wint_t |  | ||||||
| #define __need_wchar_t |  | ||||||
| #define __need_NULL |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| #ifndef __VALIST |  | ||||||
| #if defined __GNUC__ && __GNUC__ >= 3 |  | ||||||
| #define __need___va_list |  | ||||||
| #include <stdarg.h> |  | ||||||
| #define __VALIST __builtin_va_list |  | ||||||
| #else |  | ||||||
| #define __VALIST char* |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * MSDN says that isw* char classifications are in wchar.h and wctype.h. |  | ||||||
|  * Although the wctype names are ANSI, their exposure in this header is |  | ||||||
|  * not. |  | ||||||
|  */ |  | ||||||
| #include <wctype.h> |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| /* This is necessary to support the the non-ANSI wchar declarations |  | ||||||
|    here. */ |  | ||||||
| #include <sys/types.h> |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #define WCHAR_MIN	0 |  | ||||||
| #define WCHAR_MAX	0xffff |  | ||||||
|  |  | ||||||
| #ifndef WEOF |  | ||||||
| #define	WEOF	(wchar_t)(0xFFFF) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _FILE_DEFINED  /* Also in stdio.h */ |  | ||||||
| #define	_FILE_DEFINED |  | ||||||
| typedef struct _iobuf |  | ||||||
| { |  | ||||||
| 	char*	_ptr; |  | ||||||
| 	int	_cnt; |  | ||||||
| 	char*	_base; |  | ||||||
| 	int	_flag; |  | ||||||
| 	int	_file; |  | ||||||
| 	int	_charbuf; |  | ||||||
| 	int	_bufsiz; |  | ||||||
| 	char*	_tmpfname; |  | ||||||
| } FILE; |  | ||||||
| #endif	/* Not _FILE_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef _TIME_T_DEFINED  /* Also in time.h */ |  | ||||||
| typedef long time_t; |  | ||||||
| #define _TIME_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _TM_DEFINED /* Also in time.h */ |  | ||||||
| struct tm { |  | ||||||
|         int tm_sec;     /* seconds after the minute - [0,59] */ |  | ||||||
|         int tm_min;     /* minutes after the hour - [0,59] */ |  | ||||||
|         int tm_hour;    /* hours since midnight - [0,23] */ |  | ||||||
|         int tm_mday;    /* day of the month - [1,31] */ |  | ||||||
|         int tm_mon;     /* months since January - [0,11] */ |  | ||||||
|         int tm_year;    /* years since 1900 */ |  | ||||||
|         int tm_wday;    /* days since Sunday - [0,6] */ |  | ||||||
|         int tm_yday;    /* days since January 1 - [0,365] */ |  | ||||||
|         int tm_isdst;   /* daylight savings time flag */ |  | ||||||
|         }; |  | ||||||
| #define _TM_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WSTDIO_DEFINED |  | ||||||
| /*  Also in stdio.h - keep in sync */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fwprintf (FILE*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wprintf (const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_snwprintf (wchar_t*, size_t, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vfwprintf (FILE*, const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vwprintf (const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fwscanf (FILE*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wscanf (const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	swscanf (const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fgetwc (FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	fputwc (wchar_t, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	ungetwc (wchar_t, FILE*); |  | ||||||
|  |  | ||||||
| /* These differ from the ISO C prototypes, which have a maxlen parameter like snprintf.  */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	swprintf (wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	vswprintf (wchar_t*, const wchar_t*, __VALIST); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW fgetws (wchar_t*, int, FILE*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	fputws (const wchar_t*, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	getwc (FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	getwchar (void); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	putwc (wint_t, FILE*); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	putwchar (wint_t); |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _getws (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_putws (const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfdopen(int, const wchar_t *); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfopen (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfreopen (const wchar_t*, const wchar_t*, FILE*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wfsopen (const wchar_t*, const wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wtmpnam (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wtempnam (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wrename (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wremove (const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wperror (const wchar_t*); |  | ||||||
| _CRTIMP FILE* __cdecl __MINGW_NOTHROW	_wpopen (const wchar_t*, const wchar_t*); |  | ||||||
| #endif  /* __STRICT_ANSI__ */ |  | ||||||
| #endif	/* __MSVCRT__ */ |  | ||||||
|  |  | ||||||
| #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */ |  | ||||||
| int __cdecl __MINGW_NOTHROW snwprintf (wchar_t*, size_t, const wchar_t*, ...); |  | ||||||
| int __cdecl __MINGW_NOTHROW vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg) |  | ||||||
|   { return _vsnwprintf ( s, n, format, arg);} |  | ||||||
| #endif |  | ||||||
| int __cdecl __MINGW_NOTHROW vwscanf (const wchar_t * __restrict__, __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vfwscanf (FILE * __restrict__, |  | ||||||
| 		       const wchar_t * __restrict__, __VALIST); |  | ||||||
| int __cdecl __MINGW_NOTHROW vswscanf (const wchar_t * __restrict__, |  | ||||||
| 		       const wchar_t * __restrict__, __VALIST); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #define _WSTDIO_DEFINED |  | ||||||
| #endif /* _WSTDIO_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */ |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW 	wcstol (const wchar_t*, wchar_t**, int); |  | ||||||
| _CRTIMP unsigned long __cdecl __MINGW_NOTHROW wcstoul (const wchar_t*, wchar_t**, int); |  | ||||||
| _CRTIMP double __cdecl __MINGW_NOTHROW	wcstod (const wchar_t*, wchar_t**); |  | ||||||
| #if !defined __NO_ISOCEXT /* in libmingwex.a */ |  | ||||||
| float __cdecl __MINGW_NOTHROW wcstof (const wchar_t * __restrict__, wchar_t ** __restrict__); |  | ||||||
| long double __cdecl __MINGW_NOTHROW wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__); |  | ||||||
| #endif /* __NO_ISOCEXT */ |  | ||||||
| #ifdef __MSVCRT__  |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wgetenv(const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wputenv(const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wsearchenv(const wchar_t*, const wchar_t*, wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wsystem(const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP void __cdecl __MINGW_NOTHROW	_wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wfullpath (wchar_t*, const wchar_t*, size_t); |  | ||||||
| #endif |  | ||||||
| _CRTIMP __int64 __cdecl _wcstoi64(const wchar_t *, wchar_t **, int); |  | ||||||
| _CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *, wchar_t **, int, _locale_t); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *, wchar_t **, int); |  | ||||||
| _CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *, wchar_t **, int, _locale_t); |  | ||||||
| #define  _WSTDLIB_DEFINED |  | ||||||
| #endif /* _WSTDLIB_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef _WTIME_DEFINED |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| /* wide function prototypes, also declared in time.h */ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wasctime (const struct tm*); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime (const time_t*); |  | ||||||
| #endif |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wstrdate (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wstrtime (wchar_t*); |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x601 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime64 (const __time64_t*); |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW	_wctime32 (const __time32_t*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS wchar_t* __cdecl __MINGW_NOTHROW	_wctime (const time_t* _v)	{ return(_wctime64 (_v)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS wchar_t* __cdecl __MINGW_NOTHROW	_wctime (const time_t* _v)	{ return(_wctime32 (_v)); } |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* __MSVCRT__ */ |  | ||||||
| #endif /* __STRICT_ANSI__ */ |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*); |  | ||||||
| #define _WTIME_DEFINED |  | ||||||
| #endif /* _WTIME_DEFINED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef _WSTRING_DEFINED |  | ||||||
| /* |  | ||||||
|  * Unicode versions of the standard string calls. |  | ||||||
|  * Also in string.h. |  | ||||||
|  */ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscat (wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcschr (const wchar_t*, wchar_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcscmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcscoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscpy (wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcscspn (const wchar_t*, const wchar_t*); |  | ||||||
| /* Note:  _wcserror requires __MSVCRT_VERSION__ >= 0x0700.  */ |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcslen (const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncat (wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsncmp(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncpy(wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcspbrk(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrchr(const wchar_t*, wchar_t); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsspn(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsstr(const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcstok(wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsxfrm(wchar_t*, const wchar_t*, size_t); |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| /* |  | ||||||
|  * Unicode versions of non-ANSI functions provided by CRTDLL. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */ |  | ||||||
| #define		_wcscmpi	_wcsicmp |  | ||||||
|  |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsdup (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcslwr (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsnicmp (const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsnset (wchar_t*, wchar_t, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsrev (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsset (wchar_t*, wchar_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsupr (wchar_t*); |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW  _wcsncoll(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP int   __cdecl __MINGW_NOTHROW _wcsnicoll(const wchar_t*, const wchar_t*, size_t); |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0700 |  | ||||||
| _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW _wcserror(int); |  | ||||||
| _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW __wcserror(const wchar_t*); |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* NOTE: There is no _wcscmpi, but this is for compatibility. */ |  | ||||||
| int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t *, const wchar_t *); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW |  | ||||||
| wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) |  | ||||||
|   {return _wcsicmp (__ws1, __ws2);} |  | ||||||
| #endif |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsdup (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicmp (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicoll (const wchar_t*, const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcslwr (wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	wcsnicmp (const wchar_t*, const wchar_t*, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsnset (wchar_t*, wchar_t, size_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrev (wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsset (wchar_t*, wchar_t); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsupr (wchar_t*); |  | ||||||
| #endif	/* Not _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #endif	/* Not strict ANSI */ |  | ||||||
|  |  | ||||||
| #define _WSTRING_DEFINED |  | ||||||
| #endif  /* _WSTRING_DEFINED */ |  | ||||||
|  |  | ||||||
| /* These are resolved by -lmingwex. Alternatively, they can be resolved by |  | ||||||
|    adding -lmsvcp60 to your command line, which will give you the VC++ |  | ||||||
|    versions of these functions. If you want the latter and don't have |  | ||||||
|    msvcp60.dll in your windows system directory, you can easily obtain |  | ||||||
|    it with a search from your favorite search engine.  */ |  | ||||||
| #ifndef __STRICT_ANSI__ |  | ||||||
| typedef wchar_t _Wint_t; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| typedef int mbstate_t; |  | ||||||
|  |  | ||||||
| wint_t __cdecl __MINGW_NOTHROW btowc(int); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW mbrlen(const char * __restrict__, size_t, |  | ||||||
| 		      mbstate_t * __restrict__); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW mbrtowc(wchar_t * __restrict__, const char * __restrict__, |  | ||||||
| 		       size_t, mbstate_t * __restrict__); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW mbsrtowcs(wchar_t * __restrict__, const char ** __restrict__, |  | ||||||
| 			 size_t, mbstate_t * __restrict__); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW wcrtomb(char * __restrict__, wchar_t, |  | ||||||
| 		       mbstate_t * __restrict__); |  | ||||||
| size_t __cdecl __MINGW_NOTHROW wcsrtombs(char * __restrict__, const wchar_t ** __restrict__, |  | ||||||
| 			 size_t, mbstate_t * __restrict__); |  | ||||||
| int __cdecl __MINGW_NOTHROW wctob(wint_t); |  | ||||||
|  |  | ||||||
| #ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */ |  | ||||||
| int __cdecl __MINGW_NOTHROW fwide(FILE*, int); |  | ||||||
| int __cdecl __MINGW_NOTHROW mbsinit(const mbstate_t*); |  | ||||||
| #ifndef __NO_INLINE__ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW fwide(FILE* __UNUSED_PARAM(stream), |  | ||||||
| 					       int mode) |  | ||||||
|   {return mode;} /* Nothing to do  */ |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW mbsinit(const mbstate_t* __UNUSED_PARAM(ps)) |  | ||||||
|   {return 1;} |  | ||||||
| #endif |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW wmemset(wchar_t *, wchar_t, size_t); |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW wmemchr(const wchar_t*, wchar_t, size_t); |  | ||||||
| int wmemcmp(const wchar_t*, const wchar_t *, size_t); |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW wmemcpy(wchar_t* __restrict__, |  | ||||||
| 		         const wchar_t* __restrict__, |  | ||||||
| 			 size_t); |  | ||||||
| wchar_t* __cdecl __MINGW_NOTHROW wmemmove(wchar_t* s1, const wchar_t *, size_t); |  | ||||||
| long long __cdecl __MINGW_NOTHROW wcstoll(const wchar_t * __restrict__, |  | ||||||
| 			  wchar_t** __restrict__, int); |  | ||||||
| unsigned long long __cdecl __MINGW_NOTHROW wcstoull(const wchar_t * __restrict__, |  | ||||||
| 			    wchar_t ** __restrict__, int); |  | ||||||
| #endif /* __NO_ISOCEXT */ |  | ||||||
|  |  | ||||||
| #ifndef	__STRICT_ANSI__ |  | ||||||
| /* non-ANSI wide char functions from io.h, direct.h, sys/stat.h and locale.h.  */ |  | ||||||
|  |  | ||||||
| #ifndef	_FSIZE_T_DEFINED |  | ||||||
| typedef	unsigned long	_fsize_t; |  | ||||||
| #define _FSIZE_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WFINDDATA_T_DEFINED |  | ||||||
| struct _wfinddata_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	time_t		time_create;	/* -1 for FAT file systems */ |  | ||||||
| 	time_t		time_access;	/* -1 for FAT file systems */ |  | ||||||
| 	time_t		time_write; |  | ||||||
| 	_fsize_t	size; |  | ||||||
| 	wchar_t		name[260];	/* may include spaces. */ |  | ||||||
| }; |  | ||||||
| struct _wfinddatai64_t { |  | ||||||
| 	unsigned    attrib; |  | ||||||
| 	time_t      time_create; |  | ||||||
| 	time_t      time_access; |  | ||||||
| 	time_t      time_write; |  | ||||||
| 	__int64     size; |  | ||||||
| 	wchar_t     name[260]; |  | ||||||
| }; |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __wfinddata64_t { |  | ||||||
|         unsigned    attrib; |  | ||||||
|         __time64_t  time_create; |  | ||||||
|         __time64_t  time_access; |  | ||||||
|         __time64_t  time_write; |  | ||||||
| /* 8 bytes are returned so it can't be _fsize_t */ |  | ||||||
|         __int64    size; |  | ||||||
|         wchar_t     name[260]; |  | ||||||
| }; |  | ||||||
| #endif |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| #include <stdio.h> |  | ||||||
| struct __wfinddata32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _wfinddata32i64_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time32_t	time_create; |  | ||||||
| 	__time32_t	time_access; |  | ||||||
| 	__time32_t	time_write; |  | ||||||
| 	__int64		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| struct _wfinddata64i32_t { |  | ||||||
| 	unsigned	attrib; |  | ||||||
| 	__time64_t	time_create; |  | ||||||
| 	__time64_t	time_access; |  | ||||||
| 	__time64_t	time_write; |  | ||||||
| 	__int32		size; |  | ||||||
| 	wchar_t		name[FILENAME_MAX]; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #define _WFINDDATA_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Wide character versions. Also defined in io.h. */ |  | ||||||
| /* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also |  | ||||||
|    applies to other wide character versions? */ |  | ||||||
| #if !defined (_WIO_DEFINED) |  | ||||||
| #if defined (__MSVCRT__) |  | ||||||
| #include <stdint.h>  /* For intptr_t.  */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_waccess (const wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wchmod (const wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wcreat (const wchar_t*, int); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_wfindfirst (const wchar_t*, struct _wfinddata_t *); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wfindnext (long, struct _wfinddata_t *); |  | ||||||
| #endif |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wunlink (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wopen (const wchar_t*, int, ...); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wsopen (const wchar_t*, int, int, ...); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wmktemp (wchar_t*); |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW 	_wfindnexti64 (long, struct _wfinddatai64_t*); |  | ||||||
| #else |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_wfindfirst32i64 (const wchar_t*, struct _wfinddata32i64_t*); |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_wfindfirst64i32 (const wchar_t*, struct _wfinddata64i32_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext32i64 (long, struct _wfinddata32i64_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext64i32 (long, struct _wfinddata64i32_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindfirst64(const wchar_t*, struct __wfinddata64_t*);  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wfindnext64(intptr_t, struct __wfinddata64_t*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP long __cdecl __MINGW_NOTHROW	_wfindfirst32 (const wchar_t*, struct __wfinddata32_t*); |  | ||||||
| _CRTIMP int  __cdecl __MINGW_NOTHROW	_wfindnext32 (long, struct __wfinddata32_t*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS long __cdecl __MINGW_NOTHROW	_wfindfirst (const wchar_t* _v1, struct _wfinddata_t* _v2)	 { return(_wfindfirst64i32 (_v1,(struct _wfinddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnext (long _v1, struct _wfinddata_t* _v2)			 { return(_wfindnext64i32  (_v1,(struct _wfinddata64i32_t*)_v2)); } |  | ||||||
| _CRTALIAS long __cdecl __MINGW_NOTHROW	_wfindfirsti64 (const wchar_t* _v1, struct _wfinddatai64_t* _v2) { return(_wfindfirst64 (_v1,(struct __wfinddata64_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnexti64 (long _v1, struct _wfinddatai64_t* _v2)		 { return(_wfindnext64  (_v1,(struct __wfinddata64_t*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS long __cdecl __MINGW_NOTHROW	_wfindfirst (const wchar_t* _v1, struct _wfinddata_t* _v2)	 { return(_wfindfirst32 (_v1,(struct __wfinddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnext (long _v1, struct _wfinddata_t* _v2)			 { return(_wfindnext32  (_v1,(struct __wfinddata32_t*)_v2)); } |  | ||||||
| _CRTALIAS long __cdecl __MINGW_NOTHROW	_wfindfirsti64 (const wchar_t* _v1, struct _wfinddatai64_t* _v2) { return(_wfindfirst32i64 (_v1,(struct _wfinddata32i64_t*)_v2)); } |  | ||||||
| _CRTALIAS int  __cdecl __MINGW_NOTHROW	_wfindnexti64 (long _v1, struct _wfinddatai64_t* _v2)		 { return(_wfindnext32i64  (_v1,(struct _wfinddata32i64_t*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T*/ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| #endif /* defined (__MSVCRT__) */ |  | ||||||
| #define _WIO_DEFINED |  | ||||||
| #endif /* _WIO_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef _WDIRECT_DEFINED |  | ||||||
| /* Also in direct.h */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	  _wchdir (const wchar_t*); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW  _wgetcwd (wchar_t*, int); |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW  _wgetdcwd (int, wchar_t*, int); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	  _wmkdir (const wchar_t*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	  _wrmdir (const wchar_t*); |  | ||||||
| #endif	/* __MSVCRT__ */ |  | ||||||
| #define _WDIRECT_DEFINED |  | ||||||
| #endif /* _WDIRECT_DEFINED */ |  | ||||||
|  |  | ||||||
| #ifndef _STAT_DEFINED |  | ||||||
| /* |  | ||||||
|  * The structure manipulated and returned by stat and fstat. |  | ||||||
|  * |  | ||||||
|  * NOTE: If called on a directory the values in the time fields are not only |  | ||||||
|  * invalid, they will cause localtime et. al. to return NULL. And calling |  | ||||||
|  * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! |  | ||||||
|  */ |  | ||||||
| struct _stat |  | ||||||
| { |  | ||||||
| 	_dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */ |  | ||||||
| 	_ino_t	st_ino;		/* Always zero ? */ |  | ||||||
| 	_mode_t	st_mode;	/* See above constants */ |  | ||||||
| 	short	st_nlink;	/* Number of links. */ |  | ||||||
| 	short	st_uid;		/* User: Maybe significant on NT ? */ |  | ||||||
| 	short	st_gid;		/* Group: Ditto */ |  | ||||||
| 	_dev_t	st_rdev;	/* Seems useless (not even filled in) */ |  | ||||||
| 	_off_t	st_size;	/* File size in bytes */ |  | ||||||
| 	time_t	st_atime;	/* Accessed date (always 00:00 hrs local |  | ||||||
| 				 * on FAT) */ |  | ||||||
| 	time_t	st_mtime;	/* Modified time */ |  | ||||||
| 	time_t	st_ctime;	/* Creation time */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #ifndef	_NO_OLDNAMES |  | ||||||
| /* NOTE: Must be the same as _stat above. */ |  | ||||||
| struct stat |  | ||||||
| { |  | ||||||
| 	dev_t	st_dev;		/* Equivalent to drive number 0=A 1=B ... */ |  | ||||||
| 	ino_t	st_ino;		/* Always zero ? */ |  | ||||||
| 	mode_t	st_mode;	/* See above constants */ |  | ||||||
| 	short	st_nlink;	/* Number of links. */ |  | ||||||
| 	short	st_uid;		/* User: Maybe significant on NT ? */ |  | ||||||
| 	short	st_gid;		/* Group: Ditto */ |  | ||||||
| 	dev_t	st_rdev;	/* Seems useless (not even filled in) */ |  | ||||||
| 	off_t	st_size;	/* File size in bytes */ |  | ||||||
| 	time_t	st_atime;	/* Accessed date (always 00:00 hrs local |  | ||||||
| 				 * on FAT) */ |  | ||||||
| 	time_t	st_mtime;	/* Modified time */ |  | ||||||
| 	time_t	st_ctime;	/* Creation time */ |  | ||||||
| }; |  | ||||||
| #endif /* _NO_OLDNAMES */ |  | ||||||
|  |  | ||||||
| #if defined (__MSVCRT__) |  | ||||||
| struct _stati64 { |  | ||||||
|     _dev_t st_dev; |  | ||||||
|     _ino_t st_ino; |  | ||||||
|     unsigned short st_mode; |  | ||||||
|     short st_nlink; |  | ||||||
|     short st_uid; |  | ||||||
|     short st_gid; |  | ||||||
|     _dev_t st_rdev; |  | ||||||
|     __int64 st_size; |  | ||||||
|     time_t st_atime; |  | ||||||
|     time_t st_mtime; |  | ||||||
|     time_t st_ctime; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| struct __stat64 |  | ||||||
| { |  | ||||||
|     _dev_t st_dev; |  | ||||||
|     _ino_t st_ino; |  | ||||||
|     _mode_t st_mode; |  | ||||||
|     short st_nlink; |  | ||||||
|     short st_uid; |  | ||||||
|     short st_gid; |  | ||||||
|     _dev_t st_rdev; |  | ||||||
|     __int64 st_size; |  | ||||||
|     __time64_t st_atime; |  | ||||||
|     __time64_t st_mtime; |  | ||||||
|     __time64_t st_ctime; |  | ||||||
| }; |  | ||||||
| #endif  /* __MSVCRT_VERSION__ >= 0x0601*/ |  | ||||||
|  |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| struct __stat32 |  | ||||||
| { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int32		st_size; |  | ||||||
| 	__time32_t	st_atime; |  | ||||||
| 	__time32_t	st_mtime; |  | ||||||
| 	__time32_t	st_ctime; |  | ||||||
| }; |  | ||||||
| struct _stat32i64 { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int64		st_size; |  | ||||||
| 	__time32_t	st_atime; |  | ||||||
| 	__time32_t	st_mtime; |  | ||||||
| 	__time32_t	st_ctime; |  | ||||||
| }; |  | ||||||
| struct _stat64i32 { |  | ||||||
| 	_dev_t		st_dev; |  | ||||||
| 	_ino_t		st_ino; |  | ||||||
| 	_mode_t		st_mode; |  | ||||||
| 	short		st_nlink; |  | ||||||
| 	short		st_uid; |  | ||||||
| 	short		st_gid; |  | ||||||
| 	_dev_t		st_rdev; |  | ||||||
| 	__int32		st_size; |  | ||||||
| 	__time64_t	st_atime; |  | ||||||
| 	__time64_t	st_mtime; |  | ||||||
| 	__time64_t	st_ctime; |  | ||||||
| }; |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
|  |  | ||||||
| #endif  /* __MSVCRT__ */ |  | ||||||
| #define _STAT_DEFINED |  | ||||||
| #endif /* _STAT_DEFINED */ |  | ||||||
|  |  | ||||||
| #if !defined ( _WSTAT_DEFINED) |  | ||||||
| /* also declared in sys/stat.h */ |  | ||||||
| #if defined __MSVCRT__ |  | ||||||
| #if __MSVCRT_VERSION__ < 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat (const wchar_t*, struct _stat*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t*, struct _stati64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ < 0x0800 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0601 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW _wstat64 (const wchar_t*, struct __stat64*); |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0601 */ |  | ||||||
| #if __MSVCRT_VERSION__ >= 0x0800 |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat32 (const wchar_t*, struct __stat32*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat32i64 (const wchar_t*, struct _stat32i64*); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	_wstat64i32 (const wchar_t*, struct _stat64i32*); |  | ||||||
| #ifndef _USE_32BIT_TIME_T |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstat (const wchar_t* _v1, struct _stat* _v2)	     { return(_wstat64i32 (_v1,(struct _stat64i32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat64 (_v1,(struct __stat64*)_v2)); } |  | ||||||
| #else |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstat (const wchar_t* _v1, struct _stat* _v2)	     { return(_wstat32 (_v1,(struct __stat32*)_v2)); } |  | ||||||
| _CRTALIAS int __cdecl __MINGW_NOTHROW	_wstati64 (const wchar_t* _v1, struct _stati64* _v2) { return(_wstat32i64 (_v1,(struct _stat32i64*)_v2)); } |  | ||||||
| #endif /* !_USE_32BIT_TIME_T */ |  | ||||||
| #endif /* __MSVCRT_VERSION__ >= 0x0800 */ |  | ||||||
| #endif  /* __MSVCRT__ */ |  | ||||||
| #define _WSTAT_DEFINED |  | ||||||
| #endif /* ! _WSTAT_DEFIND  */ |  | ||||||
|  |  | ||||||
| #ifndef _WLOCALE_DEFINED  /* also declared in locale.h */ |  | ||||||
| _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wsetlocale (int, const wchar_t*); |  | ||||||
| #define _WLOCALE_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WPROCESS_DEFINED  /* also declared in process.h */ |  | ||||||
| #include <stdint.h>  /* For intptr_t.  */ |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecl	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecle	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclp	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclpe	(const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecv	(const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecve	(const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvp	(const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvpe	(const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
|  |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnl	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnle	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlp	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlpe	(int, const wchar_t*, const wchar_t*, ...); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnv	(int, const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnve	(int, const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvp	(int, const wchar_t*, const wchar_t* const*); |  | ||||||
| _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvpe	(int, const wchar_t*, const wchar_t* const*, const wchar_t* const*); |  | ||||||
|  |  | ||||||
| #define _WPROCESS_DEFINED |  | ||||||
| #endif |  | ||||||
| #endif /* not __STRICT_ANSI__ */ |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| }	/* end of extern "C" */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif /* not _WCHAR_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,168 +0,0 @@ | |||||||
| /*  |  | ||||||
|  * wctype.h |  | ||||||
|  * |  | ||||||
|  * Functions for testing wide character types and converting characters. |  | ||||||
|  * |  | ||||||
|  * This file is part of the Mingw32 package. |  | ||||||
|  * |  | ||||||
|  * Contributors: |  | ||||||
|  *  Created by Mumit Khan <khan@xraylith.wisc.edu> |  | ||||||
|  * |  | ||||||
|  *  THIS SOFTWARE IS NOT COPYRIGHTED |  | ||||||
|  * |  | ||||||
|  *  This source code is offered for use in the public domain. You may |  | ||||||
|  *  use, modify or distribute it freely. |  | ||||||
|  * |  | ||||||
|  *  This code is distributed in the hope that it will be useful but |  | ||||||
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |  | ||||||
|  *  DISCLAIMED. This includes but is not limited to warranties of |  | ||||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef _WCTYPE_H_ |  | ||||||
| #define _WCTYPE_H_ |  | ||||||
|  |  | ||||||
| /* All the headers include this file. */ |  | ||||||
| #include <_mingw.h> |  | ||||||
|  |  | ||||||
| #define	__need_wchar_t |  | ||||||
| #define	__need_wint_t |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
| #include <stddef.h> |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The following flags are used to tell iswctype and _isctype what character |  | ||||||
|  * types you are looking for. |  | ||||||
|  */ |  | ||||||
| #define	_UPPER		0x0001 |  | ||||||
| #define	_LOWER		0x0002 |  | ||||||
| #define	_DIGIT		0x0004 |  | ||||||
| #define	_SPACE		0x0008 |  | ||||||
| #define	_PUNCT		0x0010 |  | ||||||
| #define	_CONTROL	0x0020 |  | ||||||
| #define	_BLANK		0x0040 |  | ||||||
| #define	_HEX		0x0080 |  | ||||||
| #define	_LEADBYTE	0x8000 |  | ||||||
|  |  | ||||||
| #define	_ALPHA		0x0103 |  | ||||||
|  |  | ||||||
| #ifndef RC_INVOKED |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef WEOF |  | ||||||
| #define	WEOF	(wchar_t)(0xFFFF) |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifndef _WCTYPE_T_DEFINED |  | ||||||
| typedef wchar_t wctype_t; |  | ||||||
| #define _WCTYPE_T_DEFINED |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Wide character equivalents - also in ctype.h */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswalnum(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswalpha(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswascii(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswcntrl(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswctype(wint_t, wctype_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	is_wctype(wint_t, wctype_t);	/* Obsolete! */ |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswdigit(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswgraph(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswlower(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswprint(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswpunct(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswspace(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswupper(wint_t); |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	iswxdigit(wint_t); |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ || defined __cplusplus |  | ||||||
| int __cdecl __MINGW_NOTHROW iswblank (wint_t); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* Older MS docs uses wchar_t for arg and return type, while newer |  | ||||||
|    online MS docs say arg is wint_t and return is int. |  | ||||||
|    ISO C uses wint_t for both.  */ |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	towlower (wint_t); |  | ||||||
| _CRTIMP wint_t __cdecl __MINGW_NOTHROW	towupper (wint_t); |  | ||||||
|  |  | ||||||
| _CRTIMP int __cdecl __MINGW_NOTHROW	isleadbyte (int); |  | ||||||
|  |  | ||||||
| /* Also in ctype.h */ |  | ||||||
|  |  | ||||||
| #ifdef __DECLSPEC_SUPPORTED |  | ||||||
| # if __MSVCRT_VERSION__ <= 0x0700 |  | ||||||
|   __MINGW_IMPORT unsigned short _ctype[]; |  | ||||||
| # endif  |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|   __MINGW_IMPORT unsigned short* _pctype; |  | ||||||
| # else	/* CRTDLL */ |  | ||||||
|   __MINGW_IMPORT unsigned short* _pctype_dll; |  | ||||||
| # define  _pctype _pctype_dll |  | ||||||
| # endif |  | ||||||
|  |  | ||||||
| #else		/* ! __DECLSPEC_SUPPORTED */ |  | ||||||
| # if __MSVCRT_VERSION__ <= 0x0700 |  | ||||||
|   extern unsigned short** _imp___ctype; |  | ||||||
| # define _ctype (*_imp___ctype) |  | ||||||
| # endif |  | ||||||
| # ifdef __MSVCRT__ |  | ||||||
|   extern unsigned short** _imp___pctype; |  | ||||||
| # define _pctype (*_imp___pctype) |  | ||||||
| # else	/* CRTDLL */ |  | ||||||
|   extern unsigned short** _imp___pctype_dll; |  | ||||||
| # define _pctype (*_imp___pctype_dll) |  | ||||||
| # endif	/* CRTDLL */ |  | ||||||
| #endif		/*  __DECLSPEC_SUPPORTED */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #if !(defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \ |  | ||||||
|       || defined(__WCTYPE_INLINES_DEFINED)) |  | ||||||
| #define __WCTYPE_INLINES_DEFINED |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswlower(wint_t wc) {return (iswctype(wc,_LOWER));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswspace(wint_t wc) {return (iswctype(wc,_SPACE));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswupper(wint_t wc) {return (iswctype(wc,_UPPER));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));} |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);} |  | ||||||
|  |  | ||||||
| #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |  | ||||||
|      || !defined __STRICT_ANSI__ || defined __cplusplus |  | ||||||
| __CRT_INLINE int __cdecl __MINGW_NOTHROW iswblank (wint_t wc) |  | ||||||
|   {return (iswctype(wc, _BLANK) || wc == L'\t');} |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */ |  | ||||||
|  |  | ||||||
| typedef wchar_t wctrans_t; |  | ||||||
|  |  | ||||||
| /* These are resolved by libmingwex.a.  Note, that they are also exported |  | ||||||
|    by the MS C++ runtime lib (msvcp60.dll).  The msvcp60.dll implementations |  | ||||||
|    of wctrans and towctrans are not C99 compliant in that wctrans("tolower") |  | ||||||
|    returns 0, while std specifies that a non-zero value should be returned |  | ||||||
|    for a valid string descriptor.  If you want the MS behaviour (and you have |  | ||||||
|    msvcp60.dll in your path) add -lmsvcp60 to your command line.  */ 	 |  | ||||||
|  |  | ||||||
| wint_t __cdecl __MINGW_NOTHROW		towctrans(wint_t, wctrans_t); |  | ||||||
| wctrans_t __cdecl __MINGW_NOTHROW	wctrans(const char*); |  | ||||||
| wctype_t __cdecl __MINGW_NOTHROW	wctype(const char*); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #endif	/* Not RC_INVOKED */ |  | ||||||
|  |  | ||||||
| #endif	/* Not _WCTYPE_H_ */ |  | ||||||
|  |  | ||||||
| @@ -1,67 +0,0 @@ | |||||||
| /* |  | ||||||
|  * init.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Code to initialize standard file handles and command line arguments. |  | ||||||
|  * This file is #included in both crt1.c and dllcrt1.c. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Access to a standard 'main'-like argument count and list. Also included |  | ||||||
|  * is a table of environment variables. |  | ||||||
|  */ |  | ||||||
| int _argc = 0; |  | ||||||
| char **_argv = 0; |  | ||||||
|  |  | ||||||
| /* NOTE: Thanks to Pedro A. Aranda Gutiirrez <paag@tid.es> for pointing |  | ||||||
|  * this out to me. GetMainArgs (used below) takes a fourth argument |  | ||||||
|  * which is an int that controls the globbing of the command line. If |  | ||||||
|  * _CRT_glob is non-zero the command line will be globbed (e.g. *.* |  | ||||||
|  * expanded to be all files in the startup directory). In the mingw32 |  | ||||||
|  * library a _CRT_glob variable is defined as being -1, enabling |  | ||||||
|  * this command line globbing by default. To turn it off and do all |  | ||||||
|  * command line processing yourself (and possibly escape bogons in |  | ||||||
|  * MS's globbing code) include a line in one of your source modules |  | ||||||
|  * defining _CRT_glob and setting it to zero, like this: |  | ||||||
|  *  int _CRT_glob = 0; |  | ||||||
|  */ |  | ||||||
| extern int _CRT_glob; |  | ||||||
|  |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
| typedef struct { |  | ||||||
|   int newmode; |  | ||||||
| } _startupinfo; |  | ||||||
| extern void __getmainargs (int *, char ***, char ***, int, _startupinfo *); |  | ||||||
| #else |  | ||||||
| extern void __GetMainArgs (int *, char ***, char ***, int); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * Initialize the _argc, _argv and environ variables. |  | ||||||
|  */ |  | ||||||
| static void |  | ||||||
| _mingw32_init_mainargs () |  | ||||||
| { |  | ||||||
|   /* The environ variable is provided directly in stdlib.h through |  | ||||||
|    * a dll function call. */ |  | ||||||
|   char **dummy_environ; |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|   _startupinfo start_info; |  | ||||||
|   start_info.newmode = 0; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|   /* |  | ||||||
|    * Microsoft's runtime provides a function for doing just that. |  | ||||||
|    */ |  | ||||||
| #ifdef __MSVCRT__ |  | ||||||
|   (void) __getmainargs (&_argc, &_argv, &dummy_environ, _CRT_glob,  |  | ||||||
|                         &start_info); |  | ||||||
| #else |  | ||||||
|   /* CRTDLL version */ |  | ||||||
|   (void) __GetMainArgs (&_argc, &_argv, &dummy_environ, _CRT_glob); |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,253 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| # |  | ||||||
| # install - install a program, script, or datafile |  | ||||||
| # This comes from X11R5 (mit/util/scripts/install.sh). |  | ||||||
| # |  | ||||||
| # Copyright 1991 by the Massachusetts Institute of Technology |  | ||||||
| # |  | ||||||
| # Permission to use, copy, modify, distribute, and sell this software and its |  | ||||||
| # documentation for any purpose is hereby granted without fee, provided that |  | ||||||
| # the above copyright notice appear in all copies and that both that |  | ||||||
| # copyright notice and this permission notice appear in supporting |  | ||||||
| # documentation, and that the name of M.I.T. not be used in advertising or |  | ||||||
| # publicity pertaining to distribution of the software without specific, |  | ||||||
| # written prior permission.  M.I.T. makes no representations about the |  | ||||||
| # suitability of this software for any purpose.  It is provided "as is" |  | ||||||
| # without express or implied warranty. |  | ||||||
| # |  | ||||||
| # Calling this script install-sh is preferred over install.sh, to prevent |  | ||||||
| # `make' implicit rules from creating a file called install from it |  | ||||||
| # when there is no Makefile. |  | ||||||
| # |  | ||||||
| # This script is compatible with the BSD install script, but was written |  | ||||||
| # from scratch.  It can only install one file at a time, a restriction |  | ||||||
| # shared with many OS's install programs. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # set DOITPROG to echo to test this script |  | ||||||
|  |  | ||||||
| # Don't use :- since 4.3BSD and earlier shells don't like it. |  | ||||||
| doit="${DOITPROG-}" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # put in absolute paths if you don't have them in your path; or use env. vars. |  | ||||||
|  |  | ||||||
| mvprog="${MVPROG-mv}" |  | ||||||
| cpprog="${CPPROG-cp}" |  | ||||||
| chmodprog="${CHMODPROG-chmod}" |  | ||||||
| chownprog="${CHOWNPROG-chown}" |  | ||||||
| chgrpprog="${CHGRPPROG-chgrp}" |  | ||||||
| stripprog="${STRIPPROG-strip}" |  | ||||||
| rmprog="${RMPROG-rm}" |  | ||||||
| mkdirprog="${MKDIRPROG-mkdir}" |  | ||||||
|  |  | ||||||
| transformbasename="" |  | ||||||
| transform_arg="" |  | ||||||
| instcmd="$mvprog" |  | ||||||
| chmodcmd="$chmodprog 0755" |  | ||||||
| chowncmd="" |  | ||||||
| chgrpcmd="" |  | ||||||
| stripcmd="" |  | ||||||
| rmcmd="$rmprog -f" |  | ||||||
| mvcmd="$mvprog" |  | ||||||
| src="" |  | ||||||
| dst="" |  | ||||||
| dir_arg="" |  | ||||||
|  |  | ||||||
| while [ x"$1" != x ]; do |  | ||||||
|     case $1 in |  | ||||||
| 	-c) instcmd="$cpprog" |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-d) dir_arg=true |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-m) chmodcmd="$chmodprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-o) chowncmd="$chownprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-g) chgrpcmd="$chgrpprog $2" |  | ||||||
| 	    shift |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-s) stripcmd="$stripprog" |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-t=*) transformarg=`echo $1 | sed 's/-t=//'` |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	-b=*) transformbasename=`echo $1 | sed 's/-b=//'` |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|  |  | ||||||
| 	*)  if [ x"$src" = x ] |  | ||||||
| 	    then |  | ||||||
| 		src=$1 |  | ||||||
| 	    else |  | ||||||
| 		# this colon is to work around a 386BSD /bin/sh bug |  | ||||||
| 		: |  | ||||||
| 		dst=$1 |  | ||||||
| 	    fi |  | ||||||
| 	    shift |  | ||||||
| 	    continue;; |  | ||||||
|     esac |  | ||||||
| done |  | ||||||
|  |  | ||||||
| if [ x"$src" = x ] |  | ||||||
| then |  | ||||||
| 	echo "install:	no input file specified" |  | ||||||
| 	exit 1 |  | ||||||
| else |  | ||||||
| 	true |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ x"$dir_arg" != x ]; then |  | ||||||
| 	dst=$src |  | ||||||
| 	src="" |  | ||||||
| 	 |  | ||||||
| 	if [ -d $dst ]; then |  | ||||||
| 		instcmd=: |  | ||||||
| 		chmodcmd="" |  | ||||||
| 	else |  | ||||||
| 		instcmd=mkdir |  | ||||||
| 	fi |  | ||||||
| else |  | ||||||
|  |  | ||||||
| # Waiting for this to be detected by the "$instcmd $src $dsttmp" command |  | ||||||
| # might cause directories to be created, which would be especially bad  |  | ||||||
| # if $src (and thus $dsttmp) contains '*'. |  | ||||||
|  |  | ||||||
| 	if [ -f $src -o -d $src ] |  | ||||||
| 	then |  | ||||||
| 		true |  | ||||||
| 	else |  | ||||||
| 		echo "install:  $src does not exist" |  | ||||||
| 		exit 1 |  | ||||||
| 	fi |  | ||||||
| 	 |  | ||||||
| 	if [ x"$dst" = x ] |  | ||||||
| 	then |  | ||||||
| 		echo "install:	no destination specified" |  | ||||||
| 		exit 1 |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # If destination is a directory, append the input filename; if your system |  | ||||||
| # does not like double slashes in filenames, you may need to add some logic |  | ||||||
|  |  | ||||||
| 	if [ -d $dst ] |  | ||||||
| 	then |  | ||||||
| 		dst="$dst"/`basename $src` |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| ## this sed command emulates the dirname command |  | ||||||
| dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` |  | ||||||
|  |  | ||||||
| # Make sure that the destination directory exists. |  | ||||||
| #  this part is taken from Noah Friedman's mkinstalldirs script |  | ||||||
|  |  | ||||||
| # Skip lots of stat calls in the usual case. |  | ||||||
| if [ ! -d "$dstdir" ]; then |  | ||||||
| defaultIFS='	 |  | ||||||
| ' |  | ||||||
| IFS="${IFS-${defaultIFS}}" |  | ||||||
|  |  | ||||||
| oIFS="${IFS}" |  | ||||||
| # Some sh's can't handle IFS=/ for some reason. |  | ||||||
| IFS='%' |  | ||||||
| set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` |  | ||||||
| IFS="${oIFS}" |  | ||||||
|  |  | ||||||
| pathcomp='' |  | ||||||
|  |  | ||||||
| while [ $# -ne 0 ] ; do |  | ||||||
| 	pathcomp="${pathcomp}${1}" |  | ||||||
| 	shift |  | ||||||
|  |  | ||||||
| 	if [ ! -d "${pathcomp}" ] ; |  | ||||||
|         then |  | ||||||
| 		$mkdirprog "${pathcomp}" |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	pathcomp="${pathcomp}/" |  | ||||||
| done |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ x"$dir_arg" != x ] |  | ||||||
| then |  | ||||||
| 	$doit $instcmd $dst && |  | ||||||
|  |  | ||||||
| 	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && |  | ||||||
| 	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi |  | ||||||
| else |  | ||||||
|  |  | ||||||
| # If we're going to rename the final executable, determine the name now. |  | ||||||
|  |  | ||||||
| 	if [ x"$transformarg" = x ]  |  | ||||||
| 	then |  | ||||||
| 		dstfile=`basename $dst` |  | ||||||
| 	else |  | ||||||
| 		dstfile=`basename $dst $transformbasename |  |  | ||||||
| 			sed $transformarg`$transformbasename |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # don't allow the sed command to completely eliminate the filename |  | ||||||
|  |  | ||||||
| 	if [ x"$dstfile" = x ]  |  | ||||||
| 	then |  | ||||||
| 		dstfile=`basename $dst` |  | ||||||
| 	else |  | ||||||
| 		true |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| # Make a temp file name in the proper directory. |  | ||||||
|  |  | ||||||
| 	dsttmp=$dstdir/#inst.$$# |  | ||||||
|  |  | ||||||
| # Move or copy the file name to the temp name |  | ||||||
|  |  | ||||||
| 	$doit $instcmd $src $dsttmp && |  | ||||||
|  |  | ||||||
| 	trap "rm -f ${dsttmp}" 0 && |  | ||||||
|  |  | ||||||
| # and set any options; do chmod last to preserve setuid bits |  | ||||||
|  |  | ||||||
| # If any of these fail, we abort the whole thing.  If we want to |  | ||||||
| # ignore errors from any of these, just make sure not to ignore |  | ||||||
| # errors from the above "$doit $instcmd $src $dsttmp" command. |  | ||||||
|  |  | ||||||
| 	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && |  | ||||||
| 	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && |  | ||||||
|  |  | ||||||
| # Now rename the file to the real destination. |  | ||||||
|  |  | ||||||
| 	$doit $rmcmd -f $dstdir/$dstfile |  | ||||||
| 	([ -f $dstdir/$dstfile ] && |  | ||||||
| 	 $doit $mvcmd $dstdir/$dstfile $dstdir/$dstfile.$$ ); |  | ||||||
| 	exec $doit $mvcmd $dsttmp $dstdir/$dstfile  |  | ||||||
|  |  | ||||||
| fi && |  | ||||||
|  |  | ||||||
|  |  | ||||||
| exit 0 |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| /* |  | ||||||
|  * isascii.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Oldnames from ANSI header ctype.h |  | ||||||
|  * |  | ||||||
|  * Some wrapper functions for those old name functions whose appropriate |  | ||||||
|  * equivalents are not simply underscore prefixed. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <ctype.h> |  | ||||||
|  |  | ||||||
| int |  | ||||||
| isascii (int c) |  | ||||||
| { |  | ||||||
| 	return __isascii(c); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| /* |  | ||||||
|  * iscsym.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Oldnames from ANSI header ctype.h |  | ||||||
|  * |  | ||||||
|  * Some wrapper functions for those old name functions whose appropriate |  | ||||||
|  * equivalents are not simply underscore prefixed. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <ctype.h> |  | ||||||
|  |  | ||||||
| int |  | ||||||
| iscsym (int c) |  | ||||||
| { |  | ||||||
| 	return __iscsym(c); |  | ||||||
| } |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| /* |  | ||||||
|  * iscsymf.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Oldnames from ANSI header ctype.h |  | ||||||
|  * |  | ||||||
|  * Some wrapper functions for those old name functions whose appropriate |  | ||||||
|  * equivalents are not simply underscore prefixed. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <ctype.h> |  | ||||||
|  |  | ||||||
| int |  | ||||||
| iscsymf (int c) |  | ||||||
| { |  | ||||||
| 	return __iscsymf(c); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,71 +0,0 @@ | |||||||
| # |  | ||||||
| # Jamfile for building various libraries and object files for the |  | ||||||
| # Minimalist GNU-Win32 package. |  | ||||||
| #* This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
| #* This file is a part of the mingw-runtime package. |  | ||||||
| #* No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
| # |  | ||||||
|  |  | ||||||
| # Change this line if you have installed Mingw32 in another directory. |  | ||||||
| # |  | ||||||
| LOCATE_TARGET = /mingw32/lib ; |  | ||||||
|  |  | ||||||
| RUNTIME default = crtdll ; |  | ||||||
|  |  | ||||||
| # Build the mingw32 library which contains startup code and extra support |  | ||||||
| # routines. |  | ||||||
| # |  | ||||||
| Library libmingw32.a : |  | ||||||
| 	CRTglob.c |  | ||||||
| 	CRTfmode.c |  | ||||||
| 	CRTinit.c |  | ||||||
| 	dirent.c |  | ||||||
| 	dllmain.c |  | ||||||
| 	gccmain.c |  | ||||||
| 	main.c |  | ||||||
| 	; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Build the startup object files for normal applications and for DLLs. |  | ||||||
| # The crt2 and dllcrt2 versions are for MSVCRTxx.DLL runtimes. crt1 and |  | ||||||
| # dllcrt1 are for the CRTDLL.DLL runtime. |  | ||||||
| # |  | ||||||
| Object crt1.o : crt1.c ; |  | ||||||
| Object crt2.o : crt1.c ; |  | ||||||
|  |  | ||||||
| CCFLAGS on crt2.o += -D__MSVCRT__ ; |  | ||||||
|  |  | ||||||
| Object dllcrt1.o : dllcrt1.c ; |  | ||||||
| Object dllcrt2.o : dllcrt1.c ; |  | ||||||
|  |  | ||||||
| CCFLAGS on dllcrt2.o += -D__MSVCRT__ ; |  | ||||||
|  |  | ||||||
| DEPENDS all : crt1.o dllcrt1.o crt2.o dllcrt2.o ; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Build an object file which contains a single global variable initialized |  | ||||||
| # so that globbing will not be performed on the command line. |  | ||||||
| # |  | ||||||
| Object CRT_noglob.o : CRT_noglob.c ; |  | ||||||
| LOCATE on CRT_noglob.o = $(LOCATE_TARGET) ; |  | ||||||
|  |  | ||||||
| DEPENDS all : CRT_noglob.o ; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Build a special import library which contains mostly the imports defined |  | ||||||
| # in moldname.def, but with their leading underscores stripped off, plus the |  | ||||||
| # extra code in the C modules included. |  | ||||||
| # |  | ||||||
| ImportLib libmoldname.a : moldname.def ctype_old.c string_old.c ; |  | ||||||
|  |  | ||||||
| DLLNAME on libmoldname.a = $(RUNTIME).dll ; |  | ||||||
| DLLTOOLFLAGS on libmoldname.a += -U ; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Build import libraries for the various runtimes. |  | ||||||
| # |  | ||||||
| ImportLib libcrtdll.a : crtdll.def ; |  | ||||||
| ImportLib libmsvcrt.a : msvcrt.def ; |  | ||||||
| ImportLib libmsvcrt20.a : msvcrt20.def ; |  | ||||||
| ImportLib libmsvcrt40.a : msvcrt40.def ; |  | ||||||
|  |  | ||||||
| @@ -1,79 +0,0 @@ | |||||||
| /* |  | ||||||
|  * main.c |  | ||||||
|  * This file has no copyright assigned and is placed in the Public Domain. |  | ||||||
|  * This file is a part of the mingw-runtime package. |  | ||||||
|  * No warranty is given; refer to the file DISCLAIMER within the package. |  | ||||||
|  * |  | ||||||
|  * Extra startup code for applications which do not have a main function |  | ||||||
|  * of their own (but do have a WinMain). Generally these are GUI |  | ||||||
|  * applications, but they don't *have* to be. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <process.h> |  | ||||||
| #include <windows.h> |  | ||||||
|  |  | ||||||
| #define ISSPACE(a)	(a == ' ' || a == '\t') |  | ||||||
|  |  | ||||||
| extern int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,  |  | ||||||
|                            LPSTR szCmdLine, int nShow); |  | ||||||
|  |  | ||||||
| int |  | ||||||
| main (int argc, char *argv[], char *environ[]) |  | ||||||
| { |  | ||||||
|   char *szCmd; |  | ||||||
|   STARTUPINFO startinfo; |  | ||||||
|   int nRet; |  | ||||||
|  |  | ||||||
|   /* Get the command line passed to the process. */ |  | ||||||
|   szCmd = GetCommandLineA (); |  | ||||||
|   GetStartupInfoA (&startinfo); |  | ||||||
|  |  | ||||||
|   /* Strip off the name of the application and any leading |  | ||||||
|    * whitespace. */ |  | ||||||
|   if (szCmd) |  | ||||||
|     { |  | ||||||
|       while (ISSPACE (*szCmd)) |  | ||||||
| 	{ |  | ||||||
| 	  szCmd++; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
|       /* On my system I always get the app name enclosed |  | ||||||
|        * in quotes... */ |  | ||||||
|       if (*szCmd == '\"') |  | ||||||
| 	{ |  | ||||||
| 	  do |  | ||||||
| 	    { |  | ||||||
| 	      szCmd++; |  | ||||||
| 	    } |  | ||||||
| 	  while (*szCmd != '\"' && *szCmd != '\0'); |  | ||||||
|  |  | ||||||
| 	  if (*szCmd == '\"') |  | ||||||
| 	    { |  | ||||||
| 	      szCmd++; |  | ||||||
| 	    } |  | ||||||
| 	} |  | ||||||
|       else |  | ||||||
| 	{ |  | ||||||
| 	  /* If no quotes then assume first token is program |  | ||||||
| 	   * name. */ |  | ||||||
| 	  while (!ISSPACE (*szCmd) && *szCmd != '\0') |  | ||||||
| 	    { |  | ||||||
| 	      szCmd++; |  | ||||||
| 	    } |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
|       while (ISSPACE (*szCmd)) |  | ||||||
| 	{ |  | ||||||
| 	  szCmd++; |  | ||||||
| 	} |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   nRet = WinMain (GetModuleHandle (NULL), NULL, szCmd, |  | ||||||
| 		  (startinfo.dwFlags & STARTF_USESHOWWINDOW) ? |  | ||||||
| 		  startinfo.wShowWindow : SW_SHOWDEFAULT); |  | ||||||
|  |  | ||||||
|   return nRet; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,474 +0,0 @@ | |||||||
| .\" t |  | ||||||
| .TH DIRNAME 3 04-Jan-2007 MinGW "Programmer's Reference Manual" |  | ||||||
| . |  | ||||||
| .SH NAME |  | ||||||
| . |  | ||||||
| .BR dirname ,\0 basename |  | ||||||
| \- parse path name components |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH SYNOPSIS |  | ||||||
| . |  | ||||||
| .B  #include |  | ||||||
| .RB < libgen.h > |  | ||||||
| .PP |  | ||||||
| .B  char *dirname( char |  | ||||||
| .BI * path |  | ||||||
| .B  ); |  | ||||||
| .br |  | ||||||
| .B  char *basename( char |  | ||||||
| .BI * path |  | ||||||
| .B  ); |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH DESCRIPTION |  | ||||||
| . |  | ||||||
| The |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions parse a null\-terminated path name string, |  | ||||||
| and split it into its |  | ||||||
| .B directory name |  | ||||||
| and |  | ||||||
| .B file name |  | ||||||
| components. |  | ||||||
| Splitting is performed on the basis of the location of the |  | ||||||
| .B directory separator |  | ||||||
| characters, |  | ||||||
| which, |  | ||||||
| for this MS\-Windows(\(tm) implementation, |  | ||||||
| are the characters |  | ||||||
| .RB \(dq / \(dq |  | ||||||
| and |  | ||||||
| .RB \(dq \e \(dq, |  | ||||||
| each of which is interpreted as being equivalent. |  | ||||||
| Additionally, |  | ||||||
| if the |  | ||||||
| .I second |  | ||||||
| character of |  | ||||||
| .I path |  | ||||||
| is a colon |  | ||||||
| .RB (\(dq : \(dq), |  | ||||||
| the first two characters of |  | ||||||
| .I path |  | ||||||
| are interpreted as an MS\-Windows(\(tm) drive designator, |  | ||||||
| which will be included in the |  | ||||||
| .B directory name |  | ||||||
| component of |  | ||||||
| .IR path , |  | ||||||
| but is never considered to form part of the |  | ||||||
| .B file name |  | ||||||
| component. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| In normal usage, |  | ||||||
| .B dirname |  | ||||||
| returns a pointer to a string representing the path name component of |  | ||||||
| .IR path , |  | ||||||
| up to but not including the rightmost directory separator, |  | ||||||
| while |  | ||||||
| .B basename |  | ||||||
| returns a pointer to the component following this separator. |  | ||||||
| Any trailing directory separators present in |  | ||||||
| .I path |  | ||||||
| are disregarded, |  | ||||||
| when determining the rightmost separator, |  | ||||||
| and, in the case of the return value from |  | ||||||
| .BR dirname , |  | ||||||
| any internal sequences of recurring separator characters |  | ||||||
| are each reduced to a single such character. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| If |  | ||||||
| .I path |  | ||||||
| contains no MS\-Windows(\(tm) drive designator, |  | ||||||
| and no directory separator character, |  | ||||||
| then |  | ||||||
| .B dirname |  | ||||||
| returns the string |  | ||||||
| .RB \(dq . \(dq, |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| returns a copy of |  | ||||||
| .IR path. |  | ||||||
| If |  | ||||||
| .I path |  | ||||||
| does commence with an MS\-Windows(\(tm) drive designator, |  | ||||||
| but contains no directory separators, |  | ||||||
| then |  | ||||||
| .B dirname |  | ||||||
| returns the string |  | ||||||
| .RB \(dq d:. \(dq, |  | ||||||
| where |  | ||||||
| .RB \(dq d: \(dq |  | ||||||
| represents the drive designator, |  | ||||||
| while |  | ||||||
| .B basename |  | ||||||
| returns a copy of |  | ||||||
| .IR path , |  | ||||||
| with its initial two characters, |  | ||||||
| (i.e.\ the drive designator), |  | ||||||
| deleted. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| If |  | ||||||
| .I path |  | ||||||
| is a NULL pointer, |  | ||||||
| or is a pointer to an empty string, |  | ||||||
| then both |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| return the string |  | ||||||
| .RB \(dq . \(dq. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| If |  | ||||||
| .I path |  | ||||||
| is the string |  | ||||||
| .RB \(dq / \(dq, |  | ||||||
| or the string |  | ||||||
| .RB \(dq \e \(dq, |  | ||||||
| both |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| return the string |  | ||||||
| .RB \(dq / \(dq, |  | ||||||
| or the string |  | ||||||
| .RB \(dq \e \(dq, |  | ||||||
| respectively. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| If |  | ||||||
| .I path |  | ||||||
| commences with |  | ||||||
| .I exactly |  | ||||||
| two directory separator characters, |  | ||||||
| which must be similar, |  | ||||||
| then |  | ||||||
| .B dirname |  | ||||||
| will preserve these two characters in the returned path name. |  | ||||||
| This construct does not affect the string returned by |  | ||||||
| .BR basename , |  | ||||||
| neither is this behaviour replicated by |  | ||||||
| .BR dirname , |  | ||||||
| if |  | ||||||
| .I path |  | ||||||
| includes an MS\-Windows(\(tm) drive designator. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| In the special case, |  | ||||||
| where |  | ||||||
| .I path |  | ||||||
| is specified as |  | ||||||
| .I exactly |  | ||||||
| two identical directory separator characters, |  | ||||||
| with no MS\-Windows(\(tm) drive designator, |  | ||||||
| and no following path name, |  | ||||||
| .B dirname |  | ||||||
| returns |  | ||||||
| .I path |  | ||||||
| unchanged; |  | ||||||
| .B basename |  | ||||||
| normalises the return string to only a single character, |  | ||||||
| either |  | ||||||
| .RB \(dq / \(dq |  | ||||||
| or |  | ||||||
| .RB \(dq \e \(dq, |  | ||||||
| matching the characters used to specify |  | ||||||
| .IR path . |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| Concatenating the string returned by |  | ||||||
| .BR dirname , |  | ||||||
| a |  | ||||||
| .RB \(dq / \(dq |  | ||||||
| or a |  | ||||||
| .RB \(dq \e \(dq, |  | ||||||
| and the string returned by |  | ||||||
| .B basename |  | ||||||
| yields a complete path name. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| The |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions conform generally to SUSv3, |  | ||||||
| extended to accommodate the handling of |  | ||||||
| .RB \(dq / \(dq |  | ||||||
| and |  | ||||||
| .RB \(dq \e \(dq |  | ||||||
| as alternative directory separator characters, |  | ||||||
| and also to accommodate the likelihood of MS\-Windows(\(tm) |  | ||||||
| drive designators appearing in any path name specification. |  | ||||||
| The example, |  | ||||||
| which follows, |  | ||||||
| illustrates the conformance to SUSv3, |  | ||||||
| and also the effects of the extended behaviour. |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH EXAMPLE |  | ||||||
| . |  | ||||||
| To verify the behaviour of the |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions, |  | ||||||
| the test program defines the following function:\(em |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| .RS |  | ||||||
| .nf |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <string.h> |  | ||||||
| #include <libgen.h> |  | ||||||
|  |  | ||||||
| void result( char *path ) |  | ||||||
| { |  | ||||||
|   char *dir = strdup( path ); |  | ||||||
|   char *file = strdup( path ); |  | ||||||
|  |  | ||||||
|   printf( " %-15s%-15s%-12s", path, dirname( dir ), |  | ||||||
|           basename( file ) ); |  | ||||||
|  |  | ||||||
|   free( dir ); |  | ||||||
|   free( file ); |  | ||||||
| } |  | ||||||
| .fi |  | ||||||
| .RE |  | ||||||
| .PP |  | ||||||
| This illustrates the correct use of the |  | ||||||
| .B dirname |  | ||||||
| and the |  | ||||||
| .B basename |  | ||||||
| functions, |  | ||||||
| with copies of the original |  | ||||||
| .I path |  | ||||||
| string being passed in the function calls. |  | ||||||
| Note that the return values from each function are used immediately, |  | ||||||
| in the |  | ||||||
| .B printf |  | ||||||
| call, |  | ||||||
| and the temporary copies of |  | ||||||
| .I path |  | ||||||
| are discarded, |  | ||||||
| and the associated memory is freed, |  | ||||||
| before these go out of scope. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| Calling this example function illustrates the effect of each of the |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions, |  | ||||||
| for various values of |  | ||||||
| .IR path . |  | ||||||
| The following, |  | ||||||
| taken from SUSv3, |  | ||||||
| illustrate general conformance with the standard:\(em |  | ||||||
| .RS |  | ||||||
| .TS |  | ||||||
| tab(!); |  | ||||||
| lB      lB      lB |  | ||||||
| lw(15n) lw(10n) lw(10n). |  | ||||||
| \0path!\0dirname!\0basename |  | ||||||
| \_!\_!\_ |  | ||||||
| \0/usr/lib!\0/usr!\0lib |  | ||||||
| \0//usr//lib//!\0//usr!\0lib |  | ||||||
| \0///usr//lib//!\0/usr!\0lib |  | ||||||
| \0/usr/!\0/!\0usr |  | ||||||
| \0usr!\0.!\0usr |  | ||||||
| \0//!\0//!\0/ |  | ||||||
| \0/!\0/!\0/ |  | ||||||
| \0.!\0.!\0. |  | ||||||
| \0..!\0.!\0.. |  | ||||||
| .TE |  | ||||||
| .RE |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| Similarly, |  | ||||||
| for the case where path names are expressed using the MS\-Windows(\(tm) |  | ||||||
| .RB \(dq \e \(dq |  | ||||||
| directory separator notation, |  | ||||||
| calling the example function displays:\(em |  | ||||||
| .RS |  | ||||||
| .TS |  | ||||||
| tab(!); |  | ||||||
| lB      lB      lB |  | ||||||
| lw(15n) lw(10n) lw(10n). |  | ||||||
| \0path!\0dirname!\0basename |  | ||||||
| \_!\_!\_ |  | ||||||
| \0\eusr\elib!\0\eusr!\0lib |  | ||||||
| \0\e\eusr\e\elib\e\e!\0\e\eusr!\0lib |  | ||||||
| \0\e\e\eusr\e\elib\e\e!\0\eusr!\0lib |  | ||||||
| \0\eusr\e!\0\e!\0usr |  | ||||||
| \0usr!\0.!\0usr |  | ||||||
| \0\e\e!\0\e\e!\0\e |  | ||||||
| \0\e!\0\e!\0\e |  | ||||||
| \0.!\0.!\0. |  | ||||||
| \0..!\0.!\0.. |  | ||||||
| .TE |  | ||||||
| .RE |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| and, |  | ||||||
| when an MS\-Windows(\(tm) drive designator is also specified, |  | ||||||
| this becomes:\(em |  | ||||||
| .RS |  | ||||||
| .TS |  | ||||||
| tab(!); |  | ||||||
| lB      lB      lB |  | ||||||
| lw(15n) lw(10n) lw(10n). |  | ||||||
| \0path!\0dirname!\0basename |  | ||||||
| \_!\_!\_ |  | ||||||
| \0d:\eusr\elib!\0d:\eusr!\0lib |  | ||||||
| \0d:\e\eusr\e\elib\e\e!\0d:\eusr!\0lib |  | ||||||
| \0d:\e\e\eusr\e\elib\e\e!\0d:\eusr!\0lib |  | ||||||
| \0d:\eusr\e!\0d:\e!\0usr |  | ||||||
| \0d:usr!\0d:.!\0usr |  | ||||||
| \0d:\e\e!\0d:\e!\0\e |  | ||||||
| \0d:\e!\0d:\e!\0\e |  | ||||||
| \0d:.!\0d:.!\0. |  | ||||||
| \0d:..!\0d:.!\0.. |  | ||||||
| .TE |  | ||||||
| .RE |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| Please note, |  | ||||||
| in particular, |  | ||||||
| the special handling of path names which begin with |  | ||||||
| .I exactly |  | ||||||
| two directory separator characters, |  | ||||||
| and also that this special handling is suppressed |  | ||||||
| when these two characters are dissimilar, |  | ||||||
| or when an MS\-Windows(\(tm) drive designator is specified:\(em |  | ||||||
| .RS |  | ||||||
| .TS |  | ||||||
| tab(!); |  | ||||||
| lB      lB      lB |  | ||||||
| lw(15n) lw(10n) lw(10n). |  | ||||||
| \0path!\0dirname!\0basename |  | ||||||
| \_!\_!\_ |  | ||||||
| \0//usr//lib//!\0//usr!\0lib |  | ||||||
| \0\e\eusr\e\elib\e\e!\0\e\eusr!\0lib |  | ||||||
| \0/\eusr\e\elib\e\e!\0/usr!\0lib |  | ||||||
| \0\e/usr\e\elib\e\e!\0\eusr!\0lib |  | ||||||
| \0d:\e\eusr\e\elib\e\e!\0d:\eusr!\0lib |  | ||||||
| \0//!\0//!\0/ |  | ||||||
| \0\e\e!\0\e\e!\0\e |  | ||||||
| \0/\e!\0/!\0/ |  | ||||||
| \0\e/!\0\e!\0\e |  | ||||||
| \0d:\e\e!\0d:\e!\0\e |  | ||||||
| .TE |  | ||||||
| .RE |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH RETURN VALUE |  | ||||||
| . |  | ||||||
| The |  | ||||||
| .B dirname |  | ||||||
| function returns a pointer to a null terminated string, |  | ||||||
| which represents the directory path component of the passed |  | ||||||
| .I path |  | ||||||
| string, |  | ||||||
| without any trailing directory separator character, |  | ||||||
| and with all internal sequences of directory separator characters |  | ||||||
| normalised to a single separator at each level of directory nesting. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| The |  | ||||||
| .B basename |  | ||||||
| function |  | ||||||
| returns a pointer to a null terminated string, |  | ||||||
| which represents the rightmost element of the passed |  | ||||||
| .I path |  | ||||||
| string, |  | ||||||
| with all trailing directory separator characters removed. |  | ||||||
| . |  | ||||||
| .PP |  | ||||||
| If any MS\-Windows(\(tm) drive designator is specified in the input |  | ||||||
| .I path |  | ||||||
| string, |  | ||||||
| it is included in the return value of the |  | ||||||
| .B dirname |  | ||||||
| function, |  | ||||||
| but not in that of the |  | ||||||
| .B basename |  | ||||||
| function. |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH ERROR RETURNS |  | ||||||
| . |  | ||||||
| None. |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH CAVEATS AND BUGS |  | ||||||
| . |  | ||||||
| The |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions may modify the |  | ||||||
| .I path |  | ||||||
| string passed to them. |  | ||||||
| Therefore, it is an error to pass a character constant as the |  | ||||||
| .I path |  | ||||||
| parameter; |  | ||||||
| to do so may result in memory violation errors, |  | ||||||
| (segmentation faults), |  | ||||||
| and consequent abnormal program termination. |  | ||||||
| .PP |  | ||||||
| Also note that, |  | ||||||
| since the |  | ||||||
| .I path |  | ||||||
| argument may be modified by the |  | ||||||
| .B dirname |  | ||||||
| or the |  | ||||||
| .B basename |  | ||||||
| function call, |  | ||||||
| if you wish to preserve the original content of |  | ||||||
| .IR path , |  | ||||||
| you should pass a copy to the function. |  | ||||||
| Furthermore, |  | ||||||
| either function may return its result in a statically allocated buffer, |  | ||||||
| which may be overwritten on a subsequent function call. |  | ||||||
| .PP |  | ||||||
| Although the |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions parse path name strings, |  | ||||||
| they are basically just |  | ||||||
| .I string |  | ||||||
| functions. |  | ||||||
| The presence of an MS\-Windows(\(tm) drive designator is determined |  | ||||||
| by the appearance of a colon |  | ||||||
| .RB (\(dq : \(dq) |  | ||||||
| as the second character of the |  | ||||||
| .I path |  | ||||||
| string, |  | ||||||
| but neither function performs any check |  | ||||||
| to ensure that the first character represents a valid file system device; |  | ||||||
| neither is any form of validation performed, |  | ||||||
| to ensure that the remainder of the string |  | ||||||
| represents a valid path name. |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .SH AUTHOR |  | ||||||
| . |  | ||||||
| This manpage was written for the MinGW implementation of the |  | ||||||
| .B dirname |  | ||||||
| and |  | ||||||
| .B basename |  | ||||||
| functions by Keith\ Marshall, |  | ||||||
| <keithmarshall@users.sourceforge.net>. |  | ||||||
| It may copied, modified and redistributed, |  | ||||||
| without restriction of copyright, |  | ||||||
| provided this acknowledgement of contribution by |  | ||||||
| the original author remains unchanged. |  | ||||||
| . |  | ||||||
| . |  | ||||||
| .\" EOF |  | ||||||
| @@ -1,349 +0,0 @@ | |||||||
| # |  | ||||||
| # mingw/mingwex/Makefile.in: This file is part of Mingw runtime. |  | ||||||
| # |  | ||||||
| # This makefile requires GNU make. |  | ||||||
|  |  | ||||||
| srcdir = @srcdir@ |  | ||||||
| top_srcdir = @top_srcdir@ |  | ||||||
| VPATH = $(srcdir):$(srcdir)/math:$(srcdir)/stdio:$(srcdir)/complex $(srcdir)/gdtoa |  | ||||||
|  |  | ||||||
| # FIXME: I see no reason to define `objdir'; |  | ||||||
| # it appears to be unused, and could be removed. |  | ||||||
| objdir = . |  | ||||||
|  |  | ||||||
| target_alias = @target_alias@ |  | ||||||
| prefix = @prefix@ |  | ||||||
|  |  | ||||||
| datarootdir = @datarootdir@ |  | ||||||
| program_transform_name = @program_transform_name@ |  | ||||||
| exec_prefix = @exec_prefix@ |  | ||||||
| bindir = @bindir@ |  | ||||||
| libdir = @libdir@ |  | ||||||
|  |  | ||||||
| # FIXME: Use of `target_alias' is extremely suspect here; |  | ||||||
| # (see relevant note in top level Makefile). |  | ||||||
| tooldir = $(exec_prefix)/$(target_alias) |  | ||||||
| datadir = @datadir@ |  | ||||||
| infodir = @infodir@ |  | ||||||
| includedir = @includedir@ |  | ||||||
|  |  | ||||||
| SHELL = /bin/sh |  | ||||||
|  |  | ||||||
| INSTALL = @INSTALL@ |  | ||||||
| INSTALL_DATA = @INSTALL_DATA@ |  | ||||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |  | ||||||
| mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs |  | ||||||
|  |  | ||||||
| DISTFILES = \ |  | ||||||
| 	Makefile.in \ |  | ||||||
| 	_Exit.c atoll.c dirent.c feclearexcept.c fegetenv.c \ |  | ||||||
| 	fegetexceptflag.c fegetround.c feholdexcept.c feraiseexcept.c \ |  | ||||||
| 	fesetenv.c fesetexceptflag.c fesetround.c fetestexcept.c \ |  | ||||||
| 	feupdateenv.c ftruncate.c fwide.c  getopt.c imaxabs.c imaxdiv.c \ |  | ||||||
| 	lltoa.c lltow.c mbsinit.c membarrier.c mingw-aligned-malloc.c \ |  | ||||||
| 	mingw-fseek.c sitest.c strtoimax.c strtoumax.c \ |  | ||||||
| 	testwmem.c tst-aligned-malloc.c ulltoa.c ulltow.c wcstof.c \ |  | ||||||
| 	wcstoimax.c wcstold.c wcstoumax.c wctrans.c wctype.c \ |  | ||||||
| 	wdirent.c wmemchr.c wmemcmp.c wmemcpy.c wmemmove.c wmemset.c wtoll.c \ |  | ||||||
| 	wcrtomb.c wctob.c mbrtowc.c btowc.c mb_wc_common.h \ |  | ||||||
| 	gettimeofday.c isblank.c iswblank.c \ |  | ||||||
| 	basename.c dirname.c usleep.c \ |  | ||||||
| 	tsearch.c twalk.c tdelete.c tfind.c |  | ||||||
|  |  | ||||||
| MATH_DISTFILES = \ |  | ||||||
| 	acosf.c acosl.c asinf.c asinl.c atan2f.c atan2l.c \ |  | ||||||
| 	atanf.c atanl.c cbrt.c cbrtf.c cbrtl.c ceilf.S ceill.S \ |  | ||||||
| 	cephes_mconf.h \ |  | ||||||
| 	copysign.S copysignf.S copysignl.S cosf.S coshf.c coshl.c cosl.S \ |  | ||||||
| 	erfl.c exp2.S exp2f.S exp2l.S expf.c expl.c expm1.c expm1l.c expm1f.c \ |  | ||||||
| 	fabs.c fabsf.c fabsl.c \ |  | ||||||
| 	fdim.c fdimf.c fdiml.c floorf.S floorl.S fma.S fmaf.S fmal.c \ |  | ||||||
| 	fmax.c fmaxf.c fmaxl.c fmin.c fminf.c fminl.c fmodf.c \ |  | ||||||
| 	fmodl.c fp_consts.c fp_consts.h fp_constsf.c  fp_constsl.c \ |  | ||||||
| 	fpclassify.c fpclassifyf.c fpclassifyl.c \ |  | ||||||
| 	frexpf.c frexpl.S fucom.c hypotf.c hypotl.c ilogb.S ilogbf.S \ |  | ||||||
| 	ilogbl.S isnan.c isnanf.c isnanl.c ldexpf.c ldexpl.c \ |  | ||||||
| 	lgamma.c lgammaf.c lgammal.c llrint.c llrintf.c llrintl.c \ |  | ||||||
| 	log10f.S log10l.S log1p.S log1pf.S log1pl.S log2.S log2f.S \ |  | ||||||
| 	log2l.S logb.c logbf.c logbl.c logf.S logl.S lrint.c lrintf.c \ |  | ||||||
| 	lrintl.c lround_generic.c modff.c modfl.c \ |  | ||||||
| 	nearbyint.S nearbyintf.S nearbyintl.S \ |  | ||||||
| 	nextafterf.c nextafterl.c nexttowardf.c nexttoward.c \ |  | ||||||
| 	powf.c powi.c powif.c powil.c powl.c \ |  | ||||||
| 	remainder.S remainderf.S remainderl.S remquo.S \ |  | ||||||
| 	remquof.S remquol.S rint.c rintf.c rintl.c round_internal.h \ |  | ||||||
| 	round_generic.c scalbn.S scalbnf.S scalbnl.S s_erf.c sf_erf.c \ |  | ||||||
| 	signbit.c signbitf.c signbitl.c sinf.S sinhf.c sinhl.c sinl.S \ |  | ||||||
| 	sqrtf.c sqrtl.c tanf.S tanhf.c tanhl.c tanl.S tgamma.c \ |  | ||||||
| 	tgammaf.c tgammal.c trunc.c truncf.c truncl.c \ |  | ||||||
| 	acosh.c acoshf.c acoshl.c asinh.c asinhf.c asinhl.c \ |  | ||||||
| 	atanh.c atanhf.c atanhl.c fastmath.h |  | ||||||
|  |  | ||||||
| STDIO_DISTFILES = \ |  | ||||||
| 	fopen64.c fseeko64.c ftello64.c lseek64.c \ |  | ||||||
| 	vfscanf.c vfwscanf.c vscanf.c vsscanf.c vswscanf.c vwscanf.c \ |  | ||||||
| 	pformat.c pformat.h printf.c fprintf.c sprintf.c snprintf.c \ |  | ||||||
| 	vprintf.c vfprintf.c vsprintf.c vsnprintf.c \ |  | ||||||
| 	snwprintf.c vsnwprintf.c |  | ||||||
|  |  | ||||||
| COMPLEX_DISTFILES = \ |  | ||||||
| 	cabs.c cabsf.c cabsl.c cacos.c cacosf.c cacosl.c cacosh.c \ |  | ||||||
| 	cacoshf.c cacoshl.c carg.c cargf.c cargl.c casin.c casinf.c \ |  | ||||||
| 	casinl.c casinh.c casinhf.c casinhl.c catan.c catanf.c catanl.c \ |  | ||||||
| 	catanh.c catanhf.c catanhl.c ccos.c ccosf.c ccosl.c ccosh.c \ |  | ||||||
| 	ccoshf.c ccoshl.c cexp.c cexpf.c cexpl.c cimag.c cimagf.c \ |  | ||||||
| 	cimagl.c clog.c clogf.c clogl.c cpow.c cpowf.c cpowl.c cproj.c \ |  | ||||||
| 	cprojf.c cprojl.c creal.c crealf.c creall.c csin.c csinf.c \ |  | ||||||
| 	csinl.c csinh.c csinhf.c csinhl.c csqrt.c csqrtf.c csqrtl.c \ |  | ||||||
| 	ctan.c ctanf.c ctanl.c ctanh.c ctanhf.c ctanhl.c |  | ||||||
|  |  | ||||||
| GDTOA_DISTFILES = \ |  | ||||||
| 	arithchk.c dmisc.c dtoa.c  g__fmt.c g_dfmt.c g_ffmt.c g_xfmt.c \ |  | ||||||
| 	gd_arith.h  gd_qnan.h gdtoa.c gdtoa.h gdtoaimp.h gethex.c gmisc.c \ |  | ||||||
| 	hd_init.c hexnan.c  misc.c qnan.c README smisc.c strtodg.c strtodnrp.c \ |  | ||||||
| 	strtof.c strtopx.c sum.c ulp.c |  | ||||||
|  |  | ||||||
| CC = @CC@ |  | ||||||
| # FIXME: Which is it, CC or CC_FOR_TARGET? |  | ||||||
| CC_FOR_TARGET = $(CC) |  | ||||||
| AS_FOR_TARGET = $(AS) |  | ||||||
| CFLAGS = @CFLAGS@ |  | ||||||
| CXXFLAGS = @CXXFLAGS@ |  | ||||||
| OPTFLAGS = -fomit-frame-pointer |  | ||||||
| WARNFLAGS = -Wall |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # compiling with Cygwin? |  | ||||||
| NO_CYGWIN := @NO_CYGWIN@ |  | ||||||
| ifdef NO_CYGWIN |  | ||||||
| # |  | ||||||
| # FIXME: What is the purpose of this hideous kludge? |  | ||||||
| # |  | ||||||
| # `CC' should have been appropriately set by the configure script; |  | ||||||
| # to mess with it, in this fashion, should neither be necessary, |  | ||||||
| # nor accepted. |  | ||||||
| # |  | ||||||
| override CC := ${NO_CYGWIN} $(firstword $(filter-out ${NO_CYGWIN},${CC})) |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| W32API_INCLUDE = @W32API_INCLUDE@ |  | ||||||
| INCLUDES = -I${srcdir} -I${top_srcdir} -I${top_srcdir}/include \ |  | ||||||
|   -nostdinc \ |  | ||||||
|   -iwithprefixbefore include |  | ||||||
| ALL_CFLAGS = $(CFLAGS) $(WARNFLAGS) $(OPTFLAGS) $(INCLUDES) $(W32API_INCLUDE) |  | ||||||
| ALL_CXXFLAGS = $(CXXFLAGS) $(WARNFLAGS) $(OPTFLAGS) $(INCLUDES) -nostdinc++ $(W32API_INCLUDE) |  | ||||||
|  |  | ||||||
| AS = @AS@ |  | ||||||
| AR = @AR@ |  | ||||||
| LD = @LD@ |  | ||||||
| AR_FLAGS = rcv |  | ||||||
| RANLIB = @RANLIB@ |  | ||||||
| DLLTOOL = @DLLTOOL@ |  | ||||||
| DLLTOOLFLAGS =  |  | ||||||
| DLLTOOL_FOR_TARGET = $(DLLTOOL) |  | ||||||
| DLLTOOL_FLAGS = --as $(AS_FOR_TARGET) |  | ||||||
|  |  | ||||||
| LIBMINGWEX_A = libmingwex.a |  | ||||||
|  |  | ||||||
| Q8_OBJS = \ |  | ||||||
| 	fwide.o imaxabs.o imaxdiv.o mbsinit.o \ |  | ||||||
| 	strtoimax.o strtoumax.o wcstoimax.o wcstoumax.o \ |  | ||||||
| 	wmemchr.o wmemcmp.o wmemcpy.o wmemmove.o wmemset.o \ |  | ||||||
| 	wctrans.o wctype.o wcrtomb.o wctob.o mbrtowc.o btowc.o \ |  | ||||||
| 	wcstof.o wcstold.o |  | ||||||
| CTYPE_OBJS = \ |  | ||||||
| 	isblank.o iswblank.o |  | ||||||
| STDLIB_STUB_OBJS = \ |  | ||||||
| 	lltoa.o ulltoa.o \ |  | ||||||
| 	lltow.o ulltow.o \ |  | ||||||
| 	atoll.o wtoll.o \ |  | ||||||
| 	_Exit.o |  | ||||||
| STDIO_OBJS = \ |  | ||||||
| 	fopen64.o fseeko64.o ftello64.o lseek64.o \ |  | ||||||
| 	vfscanf.o vfwscanf.o vscanf.o vsscanf.o vswscanf.o vwscanf.o \ |  | ||||||
| 	pformat.o snprintf.o vsnprintf.o snwprintf.o vsnwprintf.o \ |  | ||||||
| 	printf.o fprintf.o sprintf.o vprintf.o vfprintf.o vsprintf.o |  | ||||||
| MATH_OBJS = \ |  | ||||||
| 	acosf.o acosl.o asinf.o asinl.o atan2f.o atan2l.o \ |  | ||||||
| 	atanf.o atanl.o cbrt.o cbrtf.o cbrtl.o ceilf.o ceill.o \ |  | ||||||
| 	copysign.o copysignf.o copysignl.o cosf.o coshf.o coshl.o cosl.o \ |  | ||||||
| 	erfl.o exp2.o exp2f.o exp2l.o expf.o expl.o expm1.o expm1l.o expm1f.o \ |  | ||||||
| 	fabs.o fabsf.o fabsl.o \ |  | ||||||
| 	fdim.o fdimf.o fdiml.o floorf.o floorl.o fma.o fmaf.o fmal.o \ |  | ||||||
| 	fmax.o fmaxf.o fmaxl.o fmin.o fminf.o fminl.o fmodf.o \ |  | ||||||
| 	fmodl.o fp_consts.o fp_constsf.o fp_constsl.o \ |  | ||||||
| 	fpclassify.o fpclassifyf.o fpclassifyl.o \ |  | ||||||
| 	frexpf.o frexpl.o fucom.o hypotf.o hypotl.o ilogb.o ilogbf.o \ |  | ||||||
| 	ilogbl.o isnan.o isnanf.o isnanl.o ldexpf.o ldexpl.o \ |  | ||||||
| 	lgamma.o lgammaf.o lgammal.o llrint.o llrintf.o llrintl.o \ |  | ||||||
| 	log10f.o log10l.o log1p.o log1pf.o log1pl.o log2.o log2f.o \ |  | ||||||
| 	log2l.o logb.o logbf.o logbl.o logf.o logl.o \ |  | ||||||
| 	lrint.o lrintf.o lrintl.o modff.o modfl.o \ |  | ||||||
| 	nearbyint.o nearbyintf.o nearbyintl.o \ |  | ||||||
| 	nextafterf.o nextafterl.o nexttowardf.o nexttoward.o \ |  | ||||||
| 	powf.o powi.o powif.o powil.o powl.o \ |  | ||||||
| 	remainder.o remainderf.o remainderl.o remquo.o \ |  | ||||||
| 	remquof.o remquol.o rint.o rintf.o rintl.o \ |  | ||||||
| 	scalbn.o scalbnf.o scalbnl.o s_erf.o sf_erf.o \ |  | ||||||
| 	signbit.o signbitf.o signbitl.o sinf.o sinhf.o sinhl.o sinl.o \ |  | ||||||
| 	sqrtf.o sqrtl.o tanf.o tanhf.o tanhl.o tanl.o tgamma.o \ |  | ||||||
| 	tgammaf.o tgammal.o trunc.o truncf.o truncl.o \ |  | ||||||
| 	acosh.o acoshf.o acoshl.o asinh.o asinhf.o asinhl.o \ |  | ||||||
| 	atanh.o atanhf.o atanhl.o |  | ||||||
| MATH_ROUND_OBJS = round.o roundf.o roundl.o |  | ||||||
| MATH_LROUND_OBJS = lround.o lroundf.o lroundl.o |  | ||||||
| MATH_LLROUND_OBJS = llround.o llroundf.o llroundl.o |  | ||||||
| FENV_OBJS = fesetround.o  fegetround.o \ |  | ||||||
| 	fegetenv.o fesetenv.o feupdateenv.o \ |  | ||||||
| 	feclearexcept.o feholdexcept.o fegetexceptflag.o \ |  | ||||||
| 	feraiseexcept.o fetestexcept.o fesetexceptflag.o |  | ||||||
| POSIX_OBJS = \ |  | ||||||
| 	dirent.o wdirent.o getopt.o ftruncate.o gettimeofday.o usleep.o \ |  | ||||||
| 	basename.o dirname.o tsearch.o twalk.o tdelete.o tfind.o |  | ||||||
| REPLACE_OBJS = \ |  | ||||||
| 	membarrier.o mingw-aligned-malloc.o mingw-fseek.o |  | ||||||
| COMPLEX_OBJS = \ |  | ||||||
| 	cabs.o cabsf.o cabsl.o cacos.o cacosf.o cacosl.o cacosh.o \ |  | ||||||
| 	cacoshf.o cacoshl.o carg.o cargf.o cargl.o casin.o casinf.o \ |  | ||||||
| 	casinl.o casinh.o casinhf.o casinhl.o catan.o catanf.o catanl.o \ |  | ||||||
| 	catanh.o catanhf.o catanhl.o ccos.o ccosf.o ccosl.o ccosh.o \ |  | ||||||
| 	ccoshf.o ccoshl.o cexp.o cexpf.o cexpl.o cimag.o cimagf.o \ |  | ||||||
| 	cimagl.o clog.o clogf.o clogl.o cpow.o cpowf.o cpowl.o cproj.o \ |  | ||||||
| 	cprojf.o cprojl.o creal.o crealf.o creall.o csin.o csinf.o \ |  | ||||||
| 	csinl.o csinh.o csinhf.o csinhl.o csqrt.o csqrtf.o csqrtl.o \ |  | ||||||
| 	ctan.o ctanf.o ctanl.o ctanh.o ctanhf.o ctanhl.o |  | ||||||
| GDTOA_OBJS = \ |  | ||||||
| 	dmisc.o dtoa.o g__fmt.o g_dfmt.o g_ffmt.o g_xfmt.o gdtoa.o \ |  | ||||||
| 	gethex.o gmisc.o hd_init.o hexnan.o misc.o smisc.o \ |  | ||||||
| 	strtodg.o strtodnrp.o strtof.o strtopx.o sum.o ulp.o |  | ||||||
|  |  | ||||||
| LIB_OBJS = $(Q8_OBJS)  $(CTYPE_OBJS) $(STDLIB_STUB_OBJS) \ |  | ||||||
| 	$(STDIO_OBJS) $(MATH_OBJS) $(MATH_ROUND_OBJS) \ |  | ||||||
| 	$(MATH_LROUND_OBJS) $(MATH_LLROUND_OBJS) $(FENV_OBJS) \ |  | ||||||
| 	$(POSIX_OBJS) $(REPLACE_OBJS) $(COMPLEX_OBJS) \ |  | ||||||
| 	$(GDTOA_OBJS) |  | ||||||
|  |  | ||||||
| LIBS = $(LIBMINGWEX_A) |  | ||||||
| DLLS =  |  | ||||||
|  |  | ||||||
| all: $(LIBMINGWEX_A) |  | ||||||
|  |  | ||||||
| $(LIBMINGWEX_A): $(LIB_OBJS) |  | ||||||
| 	rm -f $(LIBMINGWEX_A) |  | ||||||
| 	$(AR) $(ARFLAGS) $@ $(LIB_OBJS) |  | ||||||
| 	$(RANLIB) $@ |  | ||||||
|  |  | ||||||
| $(MATH_ROUND_OBJS): round_generic.c |  | ||||||
| 	$(CC) $(ALL_CFLAGS) -I$(srcdir)/math -c -o $@ \ |  | ||||||
| 	  -D FUNCTION=$* $(srcdir)/math/round_generic.c |  | ||||||
|  |  | ||||||
| $(MATH_LROUND_OBJS) $(MATH_LLROUND_OBJS): lround_generic.c |  | ||||||
| 	$(CC) $(ALL_CFLAGS) -I$(srcdir)/math -c -o $@ \ |  | ||||||
| 	  -D FUNCTION=$* $(srcdir)/math/lround_generic.c |  | ||||||
|  |  | ||||||
| top_builddir = @top_builddir@ |  | ||||||
|  |  | ||||||
| Makefile: Makefile.in ${top_builddir}/config.status ${top_srcdir}/configure |  | ||||||
| 	cd ${top_builddir}; $(SHELL) config.status |  | ||||||
|  |  | ||||||
| ${top_builddir}/config.status: ${top_srcdir}/configure |  | ||||||
| 	cd ${top_builddir}; $(SHELL) config.status --recheck |  | ||||||
|  |  | ||||||
| info: |  | ||||||
|  |  | ||||||
| info-html: |  | ||||||
|  |  | ||||||
| install-info: info |  | ||||||
|  |  | ||||||
| need-DESTDIR-compatibility = prefix libdir |  | ||||||
| .PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility |  | ||||||
|  |  | ||||||
| $(need-DESTDIR-compatibility): |  | ||||||
| 	@test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ |  | ||||||
| 	  $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ |  | ||||||
| 	esac |  | ||||||
|  |  | ||||||
| fail-DESTDIR-compatibility: |  | ||||||
| 	$(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ |  | ||||||
| 	try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) |  | ||||||
|  |  | ||||||
| install: all $(need-DESTDIR-compatibility) |  | ||||||
| 	$(mkinstalldirs) $(DESTDIR)$(inst_libdir) |  | ||||||
| 	for i in $(LIBS); do \ |  | ||||||
| 		$(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| clean: |  | ||||||
| 	-rm -f $(LIB_OBJS)  $(LIBMINGWEX_A) |  | ||||||
|  |  | ||||||
| distclean: |  | ||||||
| 	-rm -f *.o *.a *~ core a.out |  | ||||||
| 	-rm -f config.cache config.status config.log  |  | ||||||
| 	-rm -f Makefile |  | ||||||
| .c.o: |  | ||||||
| 	$(CC) -c  $(ALL_CFLAGS) $< -o $@ |  | ||||||
| .S.o: |  | ||||||
| 	$(CC) -c  $< -o $@ |  | ||||||
| .s.o: |  | ||||||
| 	$(CC) -c  $< -o $@ |  | ||||||
|  |  | ||||||
| # pformat.o needs an explicit build rule; we always build it |  | ||||||
| # assuming __MSVCRT_VERSION__ >= 0x0800, relying on ofmt_stub.s |  | ||||||
| # (in the parent directory) to maintain forward compatibility |  | ||||||
| # for earlier versions of MSVCRT.DLL |  | ||||||
| # |  | ||||||
| PFORMAT_CFLAGS = $(ALL_CFLAGS) -I $(srcdir)/gdtoa -D__MSVCRT_VERSION__=0x0800 |  | ||||||
| pformat.o: pformat.c pformat.h |  | ||||||
| 	$(CC) -c $(PFORMAT_CFLAGS) $(srcdir)/stdio/$*.c -o $@ |  | ||||||
|  |  | ||||||
| # |  | ||||||
| # Dependencies |  | ||||||
| # |  | ||||||
| wdirent.o: $(srcdir)/dirent.c $(srcdir)/wdirent.c |  | ||||||
|  |  | ||||||
| acosh.o acoshf.o acoshl.o \ |  | ||||||
| asinh.o asinhf.o asinhl.o \ |  | ||||||
| atanh.o atanhf.o atanhl.o: fastmath.h |  | ||||||
| mbrtowc.o wcrtomb.o wcstof.o wcstold.o: mb_wc_common.h |  | ||||||
|  |  | ||||||
| $(GDTOA_OBJS): gd_arith.h gdtoa.h gdtoaimp.h gd_qnan.h |  | ||||||
|  |  | ||||||
| $(MATH_ROUND_OBJS) $(MATH_LROUND_OBJS) $(MATH_LLROUND_OBJS): round_internal.h |  | ||||||
|  |  | ||||||
| printf.o:     printf.c     pformat.h |  | ||||||
| fprintf.o:    fprintf.c    pformat.h |  | ||||||
| sprintf.o:    sprintf.c    pformat.h |  | ||||||
| snprintf.o:   snprintf.c   pformat.h |  | ||||||
| vprintf.o:    vprintf.c    pformat.h |  | ||||||
| vfprintf.o:   vfprintf.c   pformat.h |  | ||||||
| vsprintf.o:   vsprintf.c   pformat.h |  | ||||||
| vsnprintf.o:  vsnprintf.c  pformat.h |  | ||||||
|  |  | ||||||
| dist: |  | ||||||
| 	mkdir $(distdir)/mingwex |  | ||||||
| 	chmod 755 $(distdir)/mingwex |  | ||||||
| 	@for i in $(DISTFILES); do\ |  | ||||||
| 		cp -p $(srcdir)/$$i $(distdir)/mingwex/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	mkdir $(distdir)/mingwex/math |  | ||||||
| 	chmod 755 $(distdir)/mingwex/math |  | ||||||
| 	@for i in $(MATH_DISTFILES); do\ |  | ||||||
| 		cp -p $(srcdir)/math/$$i $(distdir)/mingwex/math/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	mkdir $(distdir)/mingwex/stdio |  | ||||||
| 	chmod 755 $(distdir)/mingwex/stdio |  | ||||||
| 	@for i in $(STDIO_DISTFILES); do\ |  | ||||||
| 		cp -p $(srcdir)/stdio/$$i $(distdir)/mingwex/stdio/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	mkdir $(distdir)/mingwex/complex |  | ||||||
| 	chmod 755 $(distdir)/mingwex/complex |  | ||||||
| 	@for i in $(COMPLEX_DISTFILES); do\ |  | ||||||
| 		cp -p $(srcdir)/complex/$$i $(distdir)/mingwex/complex/$$i ; \ |  | ||||||
| 	done |  | ||||||
| 	mkdir $(distdir)/mingwex/gdtoa |  | ||||||
| 	chmod 755 $(distdir)/mingwex/gdtoa |  | ||||||
| 	@for i in $(GDTOA_DISTFILES); do\ |  | ||||||
| 		cp -p $(srcdir)/gdtoa/$$i $(distdir)/mingwex/gdtoa/$$i ; \ |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| # $RCSfile$: end of file |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| #include <stdlib.h> |  | ||||||
| void _Exit(int status) |  | ||||||
| 	{  _exit(status); } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| #include <stdlib.h> |  | ||||||
| long long atoll (const char * _c) |  | ||||||
| 	{ return _atoi64 (_c); } |  | ||||||
| @@ -1,167 +0,0 @@ | |||||||
| /* basename.c |  | ||||||
|  * |  | ||||||
|  * $Id$ |  | ||||||
|  * |  | ||||||
|  * Provides an implementation of the "basename" function, conforming |  | ||||||
|  * to SUSv3, with extensions to accommodate Win32 drive designators, |  | ||||||
|  * and suitable for use on native Microsoft(R) Win32 platforms. |  | ||||||
|  * |  | ||||||
|  * Written by Keith Marshall <keithmarshall@users.sourceforge.net> |  | ||||||
|  * |  | ||||||
|  * This is free software.  You may redistribute and/or modify it as you |  | ||||||
|  * see fit, without restriction of copyright. |  | ||||||
|  * |  | ||||||
|  * This software is provided "as is", in the hope that it may be useful, |  | ||||||
|  * but WITHOUT WARRANTY OF ANY KIND, not even any implied warranty of |  | ||||||
|  * MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE.  At no |  | ||||||
|  * time will the author accept any form of liability for any damages, |  | ||||||
|  * however caused, resulting from the use of this software. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <string.h> |  | ||||||
| #include <libgen.h> |  | ||||||
| #include <locale.h> |  | ||||||
|  |  | ||||||
| #ifndef __cdecl  /* If compiling on any non-Win32 platform ... */ |  | ||||||
| #define __cdecl  /* this may not be defined.                   */ |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| __cdecl char *basename( char *path ) |  | ||||||
| { |  | ||||||
|   size_t len; |  | ||||||
|   static char *retfail = NULL; |  | ||||||
|  |  | ||||||
|   /* to handle path names for files in multibyte character locales, |  | ||||||
|    * we need to set up LC_CTYPE to match the host file system locale |  | ||||||
|    */ |  | ||||||
|  |  | ||||||
|   char *locale = setlocale( LC_CTYPE, NULL ); |  | ||||||
|   if( locale != NULL ) locale = strdup( locale ); |  | ||||||
|   setlocale( LC_CTYPE, "" ); |  | ||||||
|  |  | ||||||
|   if( path && *path ) |  | ||||||
|   { |  | ||||||
|     /* allocate sufficient local storage space, |  | ||||||
|      * in which to create a wide character reference copy of path |  | ||||||
|      */ |  | ||||||
|  |  | ||||||
|     wchar_t refcopy[1 + (len = mbstowcs( NULL, path, 0 ))]; |  | ||||||
|  |  | ||||||
|     /* create the wide character reference copy of path, |  | ||||||
|      * and step over the drive designator, if present ... |  | ||||||
|      */ |  | ||||||
|  |  | ||||||
|     wchar_t *refpath = refcopy; |  | ||||||
|     if( ((len = mbstowcs( refpath, path, len )) > 1) && (refpath[1] == L':') ) |  | ||||||
|     { |  | ||||||
|       /* FIXME: maybe should confirm *refpath is a valid drive designator */ |  | ||||||
|  |  | ||||||
|       refpath += 2; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /* ensure that our wide character reference path is NUL terminated */ |  | ||||||
|  |  | ||||||
|     refcopy[ len ] = L'\0'; |  | ||||||
|  |  | ||||||
|     /* check again, just to ensure we still have a non-empty path name ... */ |  | ||||||
|  |  | ||||||
|     if( *refpath ) |  | ||||||
|     { |  | ||||||
|       /* and, when we do, process it in the wide character domain ... |  | ||||||
|        * scanning from left to right, to the char after the final dir separator |  | ||||||
|        */ |  | ||||||
|  |  | ||||||
|       wchar_t *refname; |  | ||||||
|       for( refname = refpath ; *refpath ; ++refpath ) |  | ||||||
|       { |  | ||||||
| 	if( (*refpath == L'/') || (*refpath == L'\\') ) |  | ||||||
| 	{ |  | ||||||
| 	  /* we found a dir separator ... |  | ||||||
| 	   * step over it, and any others which immediately follow it |  | ||||||
| 	   */ |  | ||||||
|  |  | ||||||
| 	  while( (*refpath == L'/') || (*refpath == L'\\') ) |  | ||||||
| 	    ++refpath; |  | ||||||
|  |  | ||||||
| 	  /* if we didn't reach the end of the path string ... */ |  | ||||||
|  |  | ||||||
| 	  if( *refpath ) |  | ||||||
|  |  | ||||||
| 	    /* then we have a new candidate for the base name */ |  | ||||||
|  |  | ||||||
| 	    refname = refpath; |  | ||||||
|  |  | ||||||
| 	  /* otherwise ... |  | ||||||
| 	   * strip off any trailing dir separators which we found |  | ||||||
| 	   */ |  | ||||||
|  |  | ||||||
| 	  else while(  (refpath > refname) |  | ||||||
| 	  &&          ((*--refpath == L'/') || (*refpath == L'\\'))   ) |  | ||||||
| 	    *refpath = L'\0'; |  | ||||||
| 	} |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       /* in the wide character domain ... |  | ||||||
|        * refname now points at the resolved base name ... |  | ||||||
|        */ |  | ||||||
|  |  | ||||||
|       if( *refname ) |  | ||||||
|       { |  | ||||||
| 	/* if it's not empty, |  | ||||||
| 	 * then we transform the full normalised path back into |  | ||||||
| 	 * the multibyte character domain, and skip over the dirname, |  | ||||||
| 	 * to return the resolved basename. |  | ||||||
| 	 */ |  | ||||||
| 	 |  | ||||||
| 	if( (len = wcstombs( path, refcopy, len )) != (size_t)(-1) ) |  | ||||||
| 	  path[ len ] = '\0'; |  | ||||||
| 	*refname = L'\0'; |  | ||||||
| 	if( (len = wcstombs( NULL, refcopy, 0 )) != (size_t)(-1) ) |  | ||||||
| 	  path += len; |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       else |  | ||||||
|       { |  | ||||||
| 	/* the basename is empty, so return the default value of "/", |  | ||||||
| 	 * transforming from wide char to multibyte char domain, and |  | ||||||
| 	 * returning it in our own buffer. |  | ||||||
| 	 */ |  | ||||||
|  |  | ||||||
| 	retfail = realloc( retfail, len = 1 + wcstombs( NULL, L"/", 0 )); |  | ||||||
| 	wcstombs( path = retfail, L"/", len ); |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       /* restore the caller's locale, clean up, and return the result */ |  | ||||||
|  |  | ||||||
|       setlocale( LC_CTYPE, locale ); |  | ||||||
|       free( locale ); |  | ||||||
|       return( path ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /* or we had an empty residual path name, after the drive designator, |  | ||||||
|      * in which case we simply fall through ... |  | ||||||
|      */ |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   /* and, if we get to here ... |  | ||||||
|    * the path name is either NULL, or it decomposes to an empty string; |  | ||||||
|    * in either case, we return the default value of "." in our own buffer, |  | ||||||
|    * reloading it with the correct value, transformed from the wide char |  | ||||||
|    * to the multibyte char domain, just in case the caller trashed it |  | ||||||
|    * after a previous call. |  | ||||||
|    */ |  | ||||||
|  |  | ||||||
|   retfail = realloc( retfail, len = 1 + wcstombs( NULL, L".", 0 )); |  | ||||||
|   wcstombs( retfail, L".", len ); |  | ||||||
|  |  | ||||||
|   /* restore the caller's locale, clean up, and return the result */ |  | ||||||
|  |  | ||||||
|   setlocale( LC_CTYPE, locale ); |  | ||||||
|   free( locale ); |  | ||||||
|   return( retfail ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* $RCSfile$$Revision$: end of file */ |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| #include "mb_wc_common.h" |  | ||||||
| #include <wchar.h> |  | ||||||
| #include <stdio.h> |  | ||||||
| #define WIN32_LEAN_AND_MEAN |  | ||||||
| #include <windows.h> |  | ||||||
|  |  | ||||||
| wint_t btowc (int c) |  | ||||||
| { |  | ||||||
|   if (c == EOF) |  | ||||||
|     return (WEOF); |  | ||||||
|   else |  | ||||||
|     { |  | ||||||
|       unsigned char ch = c; |  | ||||||
|       wchar_t wc = WEOF; |  | ||||||
|       MultiByteToWideChar (get_codepage(), MB_ERR_INVALID_CHARS, |  | ||||||
| 			   (char*)&ch, 1, &wc, 1); |  | ||||||
|       return wc; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| #include <math.h> |  | ||||||
| #include <complex.h> |  | ||||||
|  |  | ||||||
| double cabs (double complex Z) |  | ||||||
| { |  | ||||||
|   return _hypot ( __real__ Z,  __imag__ Z); |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| #include <math.h> |  | ||||||
| #include <complex.h> |  | ||||||
|  |  | ||||||
| float cabsf (float complex Z) |  | ||||||
| { |  | ||||||
|   return (float) _hypot ( __real__ Z,  __imag__ Z); |  | ||||||
| } |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| #include <math.h> |  | ||||||
| #include <complex.h> |  | ||||||
|  |  | ||||||
| long double cabsl (long double complex Z) |  | ||||||
| { |  | ||||||
|   return  hypotl ( __real__ Z,  __imag__ Z); |  | ||||||
| } |  | ||||||
| @@ -1,82 +0,0 @@ | |||||||
| /* |  | ||||||
|    cacos.c |  | ||||||
|    Contributed by Danny Smith |  | ||||||
|    2003-10-20 |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| #include <math.h> |  | ||||||
| #include <complex.h> |  | ||||||
|  |  | ||||||
| #if 0 |  | ||||||
| /* cacos (Z) = -I * clog(Z + I * csqrt(1 - Z * Z)) */ |  | ||||||
|  |  | ||||||
| double complex cacos (double  complex Z) |  | ||||||
| { |  | ||||||
|   double complex Res; |  | ||||||
|   double x, y; |  | ||||||
|  |  | ||||||
|   x = __real__ Z; |  | ||||||
|   y = __imag__ Z; |  | ||||||
|  |  | ||||||
|   if (y == 0.0) |  | ||||||
|     { |  | ||||||
|       __real__ Res = acos (x); |  | ||||||
|       __imag__ Res = 0.0; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   else |  | ||||||
|     { |  | ||||||
|       double complex ZZ; |  | ||||||
|       /* Z * Z = ((x - y) * (x + y)) + (2.0 * x * y) * I */ |  | ||||||
|       /* caculate 1 - Z * Z */ |  | ||||||
|       __real__ ZZ = 1.0 - (x - y) * (x + y); |  | ||||||
|       __imag__ ZZ = -2.0 * x * y; |  | ||||||
|  |  | ||||||
|         |  | ||||||
|        Res = csqrt(ZZ); |  | ||||||
|  |  | ||||||
|       /* calculate ZZ + I * sqrt (ZZ) */ |  | ||||||
|      |  | ||||||
|       __real__ ZZ = x - __imag__ Res; |  | ||||||
|       __imag__ ZZ = y + __real__ Res; |  | ||||||
|         |  | ||||||
|       ZZ = clog(ZZ); |  | ||||||
|  |  | ||||||
|       /* mult by -I */ |  | ||||||
|  |  | ||||||
|       __real__ Res  =  __imag__ ZZ; |  | ||||||
|       __imag__ Res = - __real__ ZZ; |  | ||||||
|     } |  | ||||||
|   return Res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #else |  | ||||||
|  |  | ||||||
| /* cacos ( Z ) =  pi/2 - casin ( Z ) */ |  | ||||||
|  |  | ||||||
| double complex cacos (double complex Z) |  | ||||||
| { |  | ||||||
|   double complex Res  = casin (Z); |  | ||||||
|   __real__ Res = M_PI_2 - __real__ Res; |  | ||||||
|   __imag__ Res = - __imag__ Res; |  | ||||||
|   return Res; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if 0 |  | ||||||
| #include <stdio.h> |  | ||||||
| int main() |  | ||||||
| { |  | ||||||
|   double z; |  | ||||||
|   double complex bar = 0.7 + 1.2  * I; |  | ||||||
|   double complex foo = cacos (bar); |  | ||||||
|  |  | ||||||
|   printf ("%.16e\t%.16e\n", __real__ foo, __imag__ foo); |  | ||||||
|  |  | ||||||
|   foo = cacos (bar); |  | ||||||
|   printf ("%.16e\t%.16e\n", __real__ foo, __imag__ foo); |  | ||||||
|  |  | ||||||
|   return 1; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| @@ -1,64 +0,0 @@ | |||||||
| /* |  | ||||||
|    cacosf.c |  | ||||||
|    Contributed by Danny Smith |  | ||||||
|    2004-12-24 |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| #include <math.h> |  | ||||||
| #include <complex.h> |  | ||||||
|  |  | ||||||
| #if 0 |  | ||||||
| /* cacos (Z) = -I * clog(Z + I * csqrt(1 - Z * Z)) */ |  | ||||||
|  |  | ||||||
| float complex cacos (float  complex Z) |  | ||||||
| { |  | ||||||
|   float complex Res; |  | ||||||
|   float x, y; |  | ||||||
|  |  | ||||||
|   x = __real__ Z; |  | ||||||
|   y = __imag__ Z; |  | ||||||
|  |  | ||||||
|   if (y == 0.0f) |  | ||||||
|     { |  | ||||||
|       __real__ Res = acosf (x); |  | ||||||
|       __imag__ Res = 0.0f; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   else |  | ||||||
|     { |  | ||||||
|       float complex ZZ; |  | ||||||
|       /* Z * Z = ((x - y) * (x + y)) + (2.0 * x * y) * I */ |  | ||||||
|       /* caculate 1 - Z * Z */ |  | ||||||
|       __real__ ZZ = 1.0f - (x - y) * (x + y); |  | ||||||
|       __imag__ ZZ = -2.0f * x * y; |  | ||||||
|  |  | ||||||
|         |  | ||||||
|        Res = csqrtf(ZZ); |  | ||||||
|  |  | ||||||
|       /* calculate ZZ + I * sqrt (ZZ) */ |  | ||||||
|      |  | ||||||
|       __real__ ZZ = x - __imag__ Res; |  | ||||||
|       __imag__ ZZ = y + __real__ Res; |  | ||||||
|         |  | ||||||
|       ZZ = clog(ZZ); |  | ||||||
|  |  | ||||||
|       /* mult by -I */ |  | ||||||
|  |  | ||||||
|       __real__ Res  =  __imag__ ZZ; |  | ||||||
|       __imag__ Res = - __real__ ZZ; |  | ||||||
|     } |  | ||||||
|   return Res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #else |  | ||||||
|  |  | ||||||
| /* cacos ( Z ) =  pi/2 - casin ( Z ) */ |  | ||||||
|  |  | ||||||
| float complex cacosf (float complex Z) |  | ||||||
| { |  | ||||||
|   float complex Res  = casinf (Z); |  | ||||||
|   __real__ Res = M_PI_2 - __real__ Res; |  | ||||||
|   __imag__ Res = - __imag__ Res; |  | ||||||
|   return Res; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user