build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles
Modified: trunk/reactos/lib/msvcrt/Makefile
Deleted: trunk/reactos/lib/msvcrt/README.txt
Deleted: trunk/reactos/lib/msvcrt/conio/
Deleted: trunk/reactos/lib/msvcrt/ctype/
Deleted: trunk/reactos/lib/msvcrt/direct/
Added: trunk/reactos/lib/msvcrt/dllmain.c
Deleted: trunk/reactos/lib/msvcrt/except/
Deleted: trunk/reactos/lib/msvcrt/float/
Deleted: trunk/reactos/lib/msvcrt/io/
Deleted: trunk/reactos/lib/msvcrt/locale/
Deleted: trunk/reactos/lib/msvcrt/math/
Deleted: trunk/reactos/lib/msvcrt/mbstring/
Deleted: trunk/reactos/lib/msvcrt/misc/
Modified: trunk/reactos/lib/msvcrt/msvcrt.def
Deleted: trunk/reactos/lib/msvcrt/process/
Deleted: trunk/reactos/lib/msvcrt/search/
Deleted: trunk/reactos/lib/msvcrt/setjmp/
Deleted: trunk/reactos/lib/msvcrt/signal/
Deleted: trunk/reactos/lib/msvcrt/stdio/
Deleted: trunk/reactos/lib/msvcrt/stdlib/
Deleted: trunk/reactos/lib/msvcrt/string/
Deleted: trunk/reactos/lib/msvcrt/sys_stat/
Deleted: trunk/reactos/lib/msvcrt/time/
Deleted: trunk/reactos/lib/msvcrt/wine/
Deleted: trunk/reactos/lib/msvcrt/wstring/

Modified: trunk/reactos/lib/msvcrt/Makefile
--- trunk/reactos/lib/msvcrt/Makefile	2005-01-27 21:12:05 UTC (rev 13339)
+++ trunk/reactos/lib/msvcrt/Makefile	2005-01-27 21:16:41 UTC (rev 13340)
@@ -15,9 +15,9 @@
 # don't remove @nn from exported symbols - needed so dlltool doesn't mess up mangled c++ exports
 RM_AT_FROM_SYMBOLS = no
 
-TARGET_LFLAGS = -nostartfiles --enable-stdcall-fixup
+TARGET_LFLAGS = -nostartfiles -nostdlib --enable-stdcall-fixup
 
-TARGET_SDKLIBS = wine.a string.a kernel32.a ntdll.a
+TARGET_SDKLIBS = crt.a string.a kernel32.a ntdll.a wine.a
 
 TARGET_GCCLIBS = gcc
 
@@ -35,473 +35,17 @@
 
 TARGET_OBJECTS = $(TARGET_NAME).o
 
-TARGET_CLEAN = \
-	conio/*.o \
-	ctype/*.o \
-	direct/*.o \
-	except/*.o \
-	float/*.o \
-	io/*.o \
-	locale/*.o \
-	math/*.o \
-	mbstring/*.o \
-	misc/*.o \
-	process/*.o \
-	search/*.o \
-	setjmp/*.o \
-	setjmp/i386/*.o \
-	signal/*.o \
-	stdio/*.o \
-	stdlib/*.o \
-	string/*.o \
-	sys_stat/*.o \
-	time/*.o \
-	wine/*.o \
-	wstring/*.o
+TARGET_CLEAN = dllmain.o
 
-
 include $(PATH_TO_TOP)/rules.mak
 
 include $(TOOLS_PATH)/helper.mk
 
 
-CONIO_OBJECTS = \
-	conio/cgets.o \
-	conio/cprintf.o \
-	conio/cputs.o \
-	conio/cscanf.o \
-	conio/getch.o \
-	conio/getche.o \
-	conio/kbhit.o \
-	conio/putch.o \
-	conio/ungetch.o
 
-CTYPE_OBJECTS = \
-	ctype/ctype.o \
-	ctype/isalnum.o \
-	ctype/isalpha.o \
-	ctype/isascii.o \
-	ctype/iscntrl.o \
-	ctype/isdigit.o \
-	ctype/isgraph.o \
-	ctype/islower.o \
-	ctype/isprint.o \
-	ctype/ispunct.o \
-	ctype/isspace.o \
-	ctype/isupper.o \
-	ctype/isxdigit.o \
-	ctype/toascii.o \
-	ctype/tolower.o \
-	ctype/toupper.o \
-	ctype/iscsym.o \
-	ctype/isctype.o
 
-DIRECT_OBJECTS = \
-	direct/chdir.o \
-	direct/chdrive.o \
-	direct/getcwd.o \
-	direct/getdcwd.o \
-	direct/getdfree.o \
-	direct/getdrive.o \
-	direct/mkdir.o \
-	direct/rmdir.o \
-	direct/wchdir.o \
-	direct/wgetcwd.o \
-	direct/wgetdcwd.o \
-	direct/wmkdir.o \
-	direct/wrmdir.o
+OBJECTS = 	dllmain.o
 
-EXCEPT_OBJECTS = \
-	except/seh.o \
-	except/abnorter.o \
-	except/exhand2.o \
-	except/matherr.o \
-	except/unwind.o \
-	except/xcptfil.o
-
-FLOAT_OBJECTS = \
-	float/chgsign.o \
-	float/clearfp.o \
-	float/cntrlfp.o \
-	float/copysign.o \
-	float/fpclass.o \
-	float/fpecode.o \
-	float/fpreset.o \
-	float/isnan.o \
-	float/logb.o \
-	float/nafter.o \
-	float/scalb.o \
-	float/statfp.o
-
-IO_OBJECTS = \
-	io/access.o \
-	io/chmod.o \
-	io/chsize.o \
-	io/close.o \
-	io/commit.o \
-	io/create.o \
-	io/dup.o \
-	io/dup2.o \
-	io/eof.o \
-	io/filelen.o \
-	io/fileleni.o \
-	io/find.o \
-	io/fmode.o \
-	io/isatty.o \
-	io/locking.o \
-	io/lseek.o \
-	io/lseeki64.o \
-	io/mktemp.o \
-	io/open.o \
-	io/pipe.o \
-	io/read.o \
-	io/setmode.o \
-	io/sopen.o \
-    io/stubs.o \
-	io/tell.o \
-	io/telli64.o \
-	io/umask.o \
-	io/unlink.o \
-	io/utime.o \
-	io/waccess.o \
-	io/wchmod.o \
-	io/wcreate.o \
-	io/wfind.o \
-	io/wmktemp.o \
-	io/wopen.o \
-	io/write.o \
-	io/wunlink.o \
-	io/wutime.o
-
-LOCALE_OBJECTS = \
-	locale/locale.o
-
-MATH_OBJECTS = \
-	math/acos.o \
-	math/adjust.o \
-	math/asin.o \
-	math/atan.o \
-	math/atan2.o \
-	math/cabs.o \
-	math/ceil.o \
-	math/cos.o \
-	math/cosh.o \
-	math/exp.o \
-	math/fabs.o \
-	math/floor.o \
-	math/fmod.o \
-	math/frexp.o \
-	math/huge_val.o \
-	math/hypot.o \
-	math/j0_y0.o \
-	math/j1_y1.o \
-	math/jn_yn.o \
-	math/ldexp.o \
-	math/log.o \
-	math/log10.o \
-	math/modf.o \
-	math/pow.o \
-	math/sin.o \
-	math/sinh.o \
-	math/sqrt.o \
-	math/stubs.o \
-	math/tan.o \
-	math/tanh.o
-
-MBSTRING_OBJECTS = \
-	mbstring/hanzen.o \
-	mbstring/ischira.o \
-	mbstring/iskana.o \
-	mbstring/iskpun.o \
-	mbstring/islead.o \
-	mbstring/islwr.o \
-	mbstring/ismbal.o \
-	mbstring/ismbaln.o \
-	mbstring/ismbc.o \
-	mbstring/ismbgra.o \
-	mbstring/ismbkaln.o \
-	mbstring/ismblead.o \
-	mbstring/ismbpri.o \
-	mbstring/ismbpun.o \
-	mbstring/ismbtrl.o \
-	mbstring/isuppr.o \
-	mbstring/jistojms.o \
-	mbstring/jmstojis.o \
-	mbstring/mbbtype.o \
-	mbstring/mbccpy.o \
-	mbstring/mbclen.o \
-	mbstring/mbscat.o \
-	mbstring/mbschr.o \
-	mbstring/mbscmp.o \
-	mbstring/mbscoll.o \
-	mbstring/mbscpy.o \
-	mbstring/mbscspn.o \
-	mbstring/mbsdec.o \
-	mbstring/mbsdup.o \
-	mbstring/mbsicmp.o \
-	mbstring/mbsicoll.o \
-	mbstring/mbsinc.o \
-	mbstring/mbslen.o \
-	mbstring/mbslwr.o \
-	mbstring/mbsncat.o \
-	mbstring/mbsnccnt.o \
-	mbstring/mbsncmp.o \
-	mbstring/mbsncoll.o \
-	mbstring/mbsncpy.o \
-	mbstring/mbsnextc.o \
-	mbstring/mbsnicmp.o \
-	mbstring/mbsnicoll.o \
-	mbstring/mbsninc.o \
-	mbstring/mbsnset.o \
-	mbstring/mbspbrk.o \
-	mbstring/mbsrchr.o \
-	mbstring/mbsrev.o \
-	mbstring/mbsset.o \
-	mbstring/mbsspn.o \
-	mbstring/mbsspnp.o \
-	mbstring/mbsstr.o \
-	mbstring/mbstok.o \
-	mbstring/mbstrlen.o \
-	mbstring/mbsupr.o
-
-MISC_OBJECTS = \
-	misc/amsg.o \
-	misc/assert.o \
-	misc/crtmain.o \
-	misc/dllmain.o \
-	misc/environ.o \
-	misc/getargs.o \
-	misc/initterm.o \
-	misc/lock.o \
-	misc/purecall.o \
-	misc/stubs.o \
-	misc/tls.o
-
-PROCESS_OBJECTS = \
-	process/_cwait.o \
-	process/_system.o \
-	process/dll.o \
-	process/process.o \
-	process/procid.o \
-	process/thread.o \
-	process/threadid.o \
-	process/threadx.o
-
-SEARCH_OBJECTS = \
-	search/lfind.o \
-	search/lsearch.o
-
-SETJMP_OBJECTS = \
-	setjmp/i386/setjmp.o
-	
-SIGNAL_OBJECTS = \
-	signal/signal.o
-
-STDIO_OBJECTS = \
-	stdio/allocfil.o \
-	stdio/clearerr.o \
-	stdio/fclose.o \
-	stdio/fdopen.o \
-	stdio/feof.o \
-	stdio/ferror.o \
-	stdio/fflush.o \
-	stdio/fgetc.o \
-	stdio/fgetchar.o \
-	stdio/fgetpos.o \
-	stdio/fgets.o \
-	stdio/fgetws.o \
-	stdio/filbuf.o \
-	stdio/fileno.o \
-	stdio/flsbuf.o \
-	stdio/fopen.o \
-	stdio/fprintf.o \
-	stdio/fputc.o \
-	stdio/fputchar.o \
-	stdio/fputs.o \
-	stdio/fread.o \
-	stdio/freopen.o \
-	stdio/fscanf.o \
-	stdio/fseek.o \
-	stdio/fsetpos.o \
-	stdio/fsopen.o \
-	stdio/ftell.o \
-	stdio/fwalk.o \
-	stdio/fwrite.o \
-	stdio/getc.o \
-	stdio/getchar.o \
-	stdio/gets.o \
-	stdio/getw.o \
-	stdio/perror.o \
-	stdio/popen.o \
-	stdio/printf.o \
-	stdio/putc.o \
-	stdio/putchar.o \
-	stdio/puts.o \
-	stdio/putw.o \
-	stdio/remove.o \
-	stdio/rename.o \
-	stdio/rewind.o \
-	stdio/rmtmp.o \
-	stdio/scanf.o \
-	stdio/setbuf.o \
-	stdio/setvbuf.o \
-	stdio/sprintf.o \
-	stdio/sscanf.o \
-	stdio/stdhnd.o \
-	stdio/tempnam.o \
-	stdio/tmpfile.o \
-	stdio/tmpnam.o \
-	stdio/ungetc.o \
-	stdio/vfprintf.o \
-	stdio/vfscanf.o \
-	stdio/vfwprint.o \
-	stdio/vprintf.o \
-	stdio/vscanf.o \
-	stdio/vsprintf.o \
-	stdio/vsscanf.o \
-	stdio/wfdopen.o \
-	stdio/wrename.o \
-	stdio/wtempnam.o \
-	stdio/wtmpnam.o
-
-STDLIB_OBJECTS = \
-	stdlib/_exit.o \
-	stdlib/abort.o \
-	stdlib/abs.o \
-	stdlib/atexit.o \
-	stdlib/atof.o \
-	stdlib/atoi.o \
-	stdlib/atoi64.o \
-	stdlib/atol.o \
-	stdlib/bsearch.o \
-	stdlib/div.o \
-	stdlib/ecvt.o \
-	stdlib/ecvtbuf.o \
-	stdlib/errno.o \
-	stdlib/fcvt.o \
-	stdlib/fcvtbuf.o \
-	stdlib/fullpath.o \
-	stdlib/gcvt.o \
-	stdlib/getenv.o \
-	stdlib/itoa.o \
-	stdlib/itow.o \
-	stdlib/labs.o \
-	stdlib/ldiv.o \
-	stdlib/makepath.o \
-	stdlib/malloc.o \
-	stdlib/mbstowcs.o \
-	stdlib/mbtowc.o \
-	stdlib/obsol.o \
-	stdlib/putenv.o \
-	stdlib/qsort.o \
-	stdlib/rand.o \
-	stdlib/rot.o \
-	stdlib/senv.o \
-	stdlib/splitp.o \
-	stdlib/strtod.o \
-	stdlib/strtol.o \
-	stdlib/strtoul.o \
-	stdlib/swab.o \
-	stdlib/wcstod.o \
-	stdlib/wcstol.o \
-	stdlib/wcstombs.o \
-	stdlib/wcstoul.o \
-	stdlib/wctomb.o \
-	stdlib/wfulpath.o \
-	stdlib/witoa.o \
-	stdlib/witow.o \
-	stdlib/wputenv.o \
-	stdlib/wsenv.o \
-	stdlib/wsplitp.o \
-	stdlib/wmakpath.o \
-	stdlib/wtoi.o \
-	stdlib/wtoi64.o
-
-STRING_OBJECTS = \
-	string/lasttok.o \
-	string/memicmp.o \
-	string/strcoll.o \
-	string/strdup.o \
-	string/strerror.o \
-	string/stricmp.o \
-	string/strlwr.o \
-	string/strncoll.o \
-	string/strnicmp.o \
-	string/strpbrk.o \
-	string/strrev.o\
-	string/strset.o \
-	string/strstr.o \
-	string/strtok.o \
-	string/strupr.o \
-	string/strxfrm.o 
-
-SYS_STAT_OBJECTS = \
-	sys_stat/fstat.o \
-	sys_stat/fstati64.o \
-	sys_stat/futime.o \
-	sys_stat/stat.o \
-	sys_stat/wstat.o
-
-TIME_OBJECTS = \
-	time/clock.o \
-	time/ctime.o \
-	time/difftime.o \
-	time/ftime.o \
-	time/strdate.o \
-	time/strftime.o \
-	time/strtime.o \
-	time/time.o \
-	time/tz_vars.o \
-	time/wctime.o \
-	time/wstrdate.o \
-	time/wstrtime.o
-
-WINE_OBJECTS = \
-	wine/cpp.o \
-	wine/cppexcept.o \
-	wine/heap.o \
-	wine/thread.o
-
-WSTRING_OBJECTS = \
-	wstring/wcscoll.o \
-	wstring/wcscspn.o \
-	wstring/wcsdup.o \
-	wstring/wcsicmp.o \
-	wstring/wcslwr.o \
-	wstring/wcsnicmp.o \
-	wstring/wcspbrk.o \
-	wstring/wcsrev.o \
-	wstring/wcsset.o \
-	wstring/wcsspn.o \
-	wstring/wcsstr.o \
-	wstring/wcstok.o \
-	wstring/wcsupr.o \
-	wstring/wcsxfrm.o \
-	wstring/wlasttok.o
-
-OBJECTS = \
-	$(CONIO_OBJECTS) \
-	$(CTYPE_OBJECTS) \
-	$(DIRECT_OBJECTS) \
-	$(EXCEPT_OBJECTS) \
-	$(FLOAT_OBJECTS) \
-	$(IO_OBJECTS) \
-	$(LOCALE_OBJECTS) \
-	$(MATH_OBJECTS) \
-	$(MBSTRING_OBJECTS) \
-	$(MISC_OBJECTS) \
-	$(PROCESS_OBJECTS) \
-	$(SEARCH_OBJECTS) \
-	$(SETJMP_OBJECTS) \
-	$(SIGNAL_OBJECTS) \
-	$(STDIO_OBJECTS) \
-	$(STDLIB_OBJECTS) \
-	$(STRING_OBJECTS) \
-	$(SYS_STAT_OBJECTS) \
-	$(TIME_OBJECTS) \
-	$(WINE_OBJECTS) \
-	$(WSTRING_OBJECTS)
-
 $(TARGET_NAME).o: $(OBJECTS)
 	$(LD) -r $(OBJECTS) -o $(TARGET_NAME).o
 

Deleted: trunk/reactos/lib/msvcrt/README.txt
--- trunk/reactos/lib/msvcrt/README.txt	2005-01-27 21:12:05 UTC (rev 13339)
+++ trunk/reactos/lib/msvcrt/README.txt	2005-01-27 21:16:41 UTC (rev 13340)
@@ -1,13 +0,0 @@
-This file contains information about the status the MSVCRT runtime in ReactOS.
-
-Please note that all of the MSVCRT.DLL runtime sources are license GPL unless
-otherwise noted. The sources from WINE are dual licensed GPL/LGPL. 
-If you update a function in the ~/wine directory please send a patch to wine-patches@winehq.com
-
-TODO List:
-Implement the remaining functions that are commented out in the .def file
-Update source code headers for the license information.
-Compleate the W32API conversion for all source files.
-Write a decent regression test suite.
-Convert all C++ style comments to C style comments.
-????

Copied: trunk/reactos/lib/msvcrt/dllmain.c (from rev 13290, trunk/reactos/lib/msvcrt/misc/dllmain.c)
--- trunk/reactos/lib/msvcrt/misc/dllmain.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/msvcrt/dllmain.c	2005-01-27 21:16:41 UTC (rev 13340)
@@ -0,0 +1,140 @@
+/* $Id$
+ *
+ * dllmain.c
+ *
+ * ReactOS MSVCRT.DLL Compatibility Library
+ *
+ *  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 WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAMED. This includes but is not limited to warrenties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision: 1.24 $
+ * $Author$
+ * $Date$
+ *
+ */
+
+#include "precomp.h"
+#include <msvcrt/internal/tls.h>
+#include <msvcrt/stdlib.h>
+#include <msvcrt/wine/msvcrt.h>
+
+#define NDEBUG
+#include <msvcrt/msvcrtdbg.h>
+
+
+/* EXTERNAL PROTOTYPES ********************************************************/
+
+//void __fileno_init(void);
+extern BOOL __fileno_init(void);
+extern int BlockEnvToEnvironA(void);
+extern int BlockEnvToEnvironW(void);
+extern void FreeEnvironment(char **environment);
+
+extern unsigned int _osver;
+extern unsigned int _winminor;
+extern unsigned int _winmajor;
+extern unsigned int _winver;
+
+extern char* _acmdln;        /* pointer to ascii command line */
+extern wchar_t* _wcmdln;     /* pointer to wide character command line */
+#undef _environ
+extern char** _environ;      /* pointer to environment block */
+extern char** __initenv;     /* pointer to initial environment block */
+extern wchar_t** _wenviron;  /* pointer to environment block */
+extern wchar_t** __winitenv; /* pointer to initial environment block */
+
+
+/* LIBRARY GLOBAL VARIABLES ***************************************************/
+
+HANDLE hHeap = NULL;        /* handle for heap */
+
+
+/* LIBRARY ENTRY POINT ********************************************************/
+
+BOOL
+STDCALL
+DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
+{
+    switch (dwReason)
+    {
+    case DLL_PROCESS_ATTACH://1
+        /* initialize version info */
+        DPRINT("Attach %d\n", nAttachCount);
+        _osver = GetVersion();
+        _winmajor = (_osver >> 8) & 0xFF;
+        _winminor = _osver & 0xFF;
+        _winver = (_winmajor << 8) + _winminor;
+        _osver = (_osver >> 16) & 0xFFFF;
+        hHeap = HeapCreate(0, 100000, 0);
+        if (hHeap == NULL)
+            return FALSE;
+        if (!__fileno_init()) 
+            return FALSE;
+
+        /* create tls stuff */
+        if (!CreateThreadData())
+            return FALSE;
+
+        if (BlockEnvToEnvironA() < 0)
+            return FALSE;
+
+        if (BlockEnvToEnvironW() < 0)
+        {
+            FreeEnvironment((char**)_wenviron);
+            return FALSE;
+        }
+
+        _acmdln = _strdup(GetCommandLineA());
+        _wcmdln = _wcsdup(GetCommandLineW());
+
+        /* FIXME: more initializations... */
+
+        /* FIXME: Initialization of the WINE code */
+        msvcrt_init_mt_locks();
+
+        DPRINT("Attach done\n");
+        break;
+
+    case DLL_THREAD_ATTACH://2
+        break;
+
+    case DLL_THREAD_DETACH://4
+        FreeThreadData(NULL);
+        break;
+
+    case DLL_PROCESS_DETACH://0
+        DPRINT("Detach %d\n", nAttachCount);
+        /* FIXME: more cleanup... */
+        _fcloseall();
+
+        /* destroy tls stuff */
+        DestroyThreadData();
+
+	if (__winitenv && __winitenv != _wenviron)
+            FreeEnvironment((char**)__winitenv);
+        if (_wenviron)
+            FreeEnvironment((char**)_wenviron);
+
+	if (__initenv && __initenv != _environ)
+            FreeEnvironment(__initenv);
+        if (_environ)
+            FreeEnvironment(_environ);
+
+        /* destroy heap */
+        HeapDestroy(hHeap);
+
+        DPRINT("Detach done\n");
+        break;
+    }
+
+    return TRUE;
+}
+
+/* EOF */

Modified: trunk/reactos/lib/msvcrt/msvcrt.def
--- trunk/reactos/lib/msvcrt/msvcrt.def	2005-01-27 21:12:05 UTC (rev 13339)
+++ trunk/reactos/lib/msvcrt/msvcrt.def	2005-01-27 21:16:41 UTC (rev 13340)
@@ -108,7 +108,7 @@
 __argc DATA
 __argv DATA
 __badioinfo DATA
-__crtCompareStringA ;=NTDLL.RtlCompareString
+;__crtCompareStringA ;=NTDLL.RtlCompareString
 ;__crtGetLocaleInfoW
 __crtLCMapStringA
 __dllonexit
@@ -126,7 +126,7 @@
 __mb_cur_max DATA
 __p___argc
 __p___argv
-__p___wargv
+;__p___wargv
 __p___initenv
 __p___mb_cur_max
 __p___winitenv
@@ -154,14 +154,14 @@
 __p__winver
 ;__p__wpgmptr
 __pioinfo
-;__pxcptinfoptrs
+__pxcptinfoptrs
 __set_app_type
 __setlc_active DATA
 __setusermatherr
 __threadhandle
 __threadid
 __toascii
-__unDName
+;__unDName
 ;__unDNameEx
 __unguarded_readlc_active DATA
 __wargv
@@ -281,7 +281,7 @@
 _finite
 _flsbuf
 _flushall
-_fmode DATA
+_fmode=__fmode DATA
 _fpclass
 _fpieee_flt
 _fpreset
@@ -311,7 +311,7 @@
 ;_getmaxstdio
 ;_getmbcp
 _getpid
-;_getsystime
+_getsystime
 _getw
 ;_getwch
 ;_getwche
@@ -481,7 +481,7 @@
 ;_scprintf
 ;_scwprintf
 _searchenv
-_seh_longjmp_unwind
+_seh_longjmp_unwind@4
 ;_set_error_mode
 ;_set_SSE2_enable
 ;_set_sbh_threshold
@@ -491,7 +491,7 @@
 ;_setmaxstdio
 _setmbcp
 _setmode
-;_setsystime
+_setsystime
 _sleep
 _snprintf
 ;_snscanf