build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles
Added: trunk/reactos/lib/crt/
Added: trunk/reactos/lib/crt/README.txt
Added: trunk/reactos/lib/crt/conio/
Added: trunk/reactos/lib/crt/ctype/
Added: trunk/reactos/lib/crt/direct/
Added: trunk/reactos/lib/crt/except/
Added: trunk/reactos/lib/crt/float/
Added: trunk/reactos/lib/crt/io/
Modified: trunk/reactos/lib/crt/io/fmode.c
Modified: trunk/reactos/lib/crt/io/open.c
Modified: trunk/reactos/lib/crt/io/read.c
Added: trunk/reactos/lib/crt/locale/
Modified: trunk/reactos/lib/crt/locale/locale.c
Added: trunk/reactos/lib/crt/makefile
Added: trunk/reactos/lib/crt/math/
Added: trunk/reactos/lib/crt/mbstring/
Added: trunk/reactos/lib/crt/misc/
Deleted: trunk/reactos/lib/crt/misc/dllmain.c
Modified: trunk/reactos/lib/crt/misc/environ.c
Modified: trunk/reactos/lib/crt/misc/getargs.c
Added: trunk/reactos/lib/crt/precomp.h
Added: trunk/reactos/lib/crt/process/
Modified: trunk/reactos/lib/crt/process/_system.c
Added: trunk/reactos/lib/crt/search/
Added: trunk/reactos/lib/crt/setjmp/
Added: trunk/reactos/lib/crt/signal/
Added: trunk/reactos/lib/crt/signal/xcptinfo.c
Added: trunk/reactos/lib/crt/stdio/
Modified: trunk/reactos/lib/crt/stdio/fopen.c
Modified: trunk/reactos/lib/crt/stdio/freopen.c
Modified: trunk/reactos/lib/crt/stdio/fsopen.c
Modified: trunk/reactos/lib/crt/stdio/popen.c
Modified: trunk/reactos/lib/crt/stdio/vfprintf.c
Modified: trunk/reactos/lib/crt/stdio/vfscanf.c
Modified: trunk/reactos/lib/crt/stdio/vfwprint.c
Added: trunk/reactos/lib/crt/stdlib/
Modified: trunk/reactos/lib/crt/stdlib/getenv.c
Added: trunk/reactos/lib/crt/string/
Added: trunk/reactos/lib/crt/sys_stat/
Added: trunk/reactos/lib/crt/sys_stat/systime.c
Added: trunk/reactos/lib/crt/time/
Added: trunk/reactos/lib/crt/wine/
Modified: trunk/reactos/lib/crt/wine/cpp.c
Modified: trunk/reactos/lib/crt/wine/cppexcept.c
Deleted: trunk/reactos/lib/crt/wine/cppexcept.h
Deleted: trunk/reactos/lib/crt/wine/eh.h
Modified: trunk/reactos/lib/crt/wine/heap.c
Deleted: trunk/reactos/lib/crt/wine/msvcrt.h
Modified: trunk/reactos/lib/crt/wine/thread.c
Added: trunk/reactos/lib/crt/wstring/

Copied: trunk/reactos/lib/crt/README.txt (from rev 13314, trunk/reactos/lib/msvcrt/README.txt)

Copied: trunk/reactos/lib/crt/conio (from rev 13291, trunk/reactos/lib/msvcrt/conio)

Copied: trunk/reactos/lib/crt/ctype (from rev 13290, trunk/reactos/lib/msvcrt/ctype)

Copied: trunk/reactos/lib/crt/direct (from rev 13290, trunk/reactos/lib/msvcrt/direct)

Copied: trunk/reactos/lib/crt/except (from rev 13290, trunk/reactos/lib/msvcrt/except)

Copied: trunk/reactos/lib/crt/float (from rev 13290, trunk/reactos/lib/msvcrt/float)

Copied: trunk/reactos/lib/crt/io (from rev 13290, trunk/reactos/lib/msvcrt/io)

Modified: trunk/reactos/lib/crt/io/fmode.c
--- trunk/reactos/lib/msvcrt/io/fmode.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/io/fmode.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -2,13 +2,13 @@
 #include <msvcrt/fcntl.h>
 #include <msvcrt/io.h>
 
-#undef _fmode
-unsigned int _fmode = O_TEXT;
 
+int __fmode = O_TEXT;
+
 /*
  * @implemented
  */
-unsigned int *__p__fmode(void)
+int *__p__fmode(void)
 {
-   return &_fmode;
+   return &__fmode;
 }

Modified: trunk/reactos/lib/crt/io/open.c
--- trunk/reactos/lib/msvcrt/io/open.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/io/open.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -21,10 +21,10 @@
 #include <msvcrt/fcntl.h>
 #include <msvcrt/sys/stat.h>
 #include <msvcrt/stdlib.h>
-#include <msvcrt/internal/file.h>
 #include <msvcrt/string.h>
 #include <msvcrt/share.h>
 #include <msvcrt/errno.h>
+#include <msvcrt/internal/file.h>
 
 #define NDEBUG
 #include <msvcrt/msvcrtdbg.h>
@@ -192,7 +192,7 @@
 	}
    DPRINT("OK\n");
    if (!(_oflag & (_O_TEXT|_O_BINARY))) {
-       _oflag |= _fmode;
+       _oflag |= __fmode;
    }
    return __fileno_alloc(hFile,_oflag);
 }

Modified: trunk/reactos/lib/crt/io/read.c
--- trunk/reactos/lib/msvcrt/io/read.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/io/read.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -12,7 +12,7 @@
  *                          behavior for line-buffered streams (KJK::Hyperion)
  */
 
-#include "precomp.h"
+#include <windows.h>
 #include <msvcrt/io.h>
 #include <msvcrt/internal/file.h>
 

Copied: trunk/reactos/lib/crt/locale (from rev 13290, trunk/reactos/lib/msvcrt/locale)

Modified: trunk/reactos/lib/crt/locale/locale.c
--- trunk/reactos/lib/msvcrt/locale/locale.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/locale/locale.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -1,3 +1,9 @@
+/*
+ * Some stuff takem from wine msvcrt\locale.c
+ *
+ * Copyright 2000 Jon Griffiths
+ */
+ 
 #include "precomp.h"
 #include <msvcrt/stdio.h>
 #include <msvcrt/locale.h>
@@ -201,3 +207,74 @@
 DPRINT1("__lc_codepage - stub\n");
 return;
 }
+
+
+/*********************************************************************
+ *    _Gettnames (MSVCRT.@)
+ */
+void *_Gettnames(void)
+{
+  DPRINT1("(void), stub!\n");
+  return NULL;
+}
+
+/*********************************************************************
+ *    __lconv_init (MSVCRT.@)
+ */
+void __lconv_init(void)
+{
+  DPRINT1(" stub\n");
+}
+
+
+/*********************************************************************
+ *    _Strftime (MSVCRT.@)
+ */
+const char* _Strftime(char *out, unsigned int len, const char *fmt,
+                                     const void *tm, void *foo)
+{
+  /* FIXME: */
+  DPRINT1("(%p %d %s %p %p) stub\n", out, len, fmt, tm, foo);
+  return "";
+}
+
+
+/*********************************************************************
+ *    _Getdays (MSVCRT.@)
+ */
+const char* _Getdays(void)
+{
+  static const char *MSVCRT_days = ":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:"
+                            "Wednesday:Thu:Thursday:Fri:Friday:Sat:Saturday";
+  /* FIXME: Use locale */
+  DPRINT1("(void) semi-stub\n");
+  return MSVCRT_days;
+}
+
+/*********************************************************************
+ *    _Getmonths (MSVCRT.@)
+ */
+const char* _Getmonths(void)
+{
+  static const char *MSVCRT_months = ":Jan:January:Feb:February:Mar:March:Apr:"
+                "April:May:May:Jun:June:Jul:July:Aug:August:Sep:September:Oct:"
+                "October:Nov:November:Dec:December";
+  /* FIXME: Use locale */
+  DPRINT1("(void) semi-stub\n");
+  return MSVCRT_months;
+}
+
+/*********************************************************************
+ *    __crtLCMapStringA (MSVCRT.@)
+ */
+int __crtLCMapStringA(
+  LCID lcid, DWORD mapflags, const char* src, int srclen, char* dst,
+  int dstlen, unsigned int codepage, int xflag
+) {
+  DPRINT1("(lcid %lx, flags %lx, %s(%d), %p(%d), %x, %d), partial stub!\n",
+        lcid,mapflags,src,srclen,dst,dstlen,codepage,xflag);
+  /* FIXME: A bit incorrect. But msvcrt itself just converts its
+   * arguments to wide strings and then calls LCMapStringW
+   */
+  return LCMapStringA(lcid,mapflags,src,srclen,dst,dstlen);
+}

Added: trunk/reactos/lib/crt/makefile
--- trunk/reactos/lib/crt/makefile	2005-01-27 21:17:28 UTC (rev 13341)
+++ trunk/reactos/lib/crt/makefile	2005-01-27 21:18:04 UTC (rev 13342)
@@ -0,0 +1,475 @@
+# $Id: Makefile 12852 2005-01-06 13:58:04Z mf $
+
+PATH_TO_TOP = ../..
+
+TARGET_DEFONLY = yes
+
+TARGET_TYPE = library
+
+TARGET_NAME = crt
+
+TARGET_PCH = precomp.h
+
+TARGET_CFLAGS = -D_MSVCRT_LIB_ -Wall -Werror
+
+# require os code to explicitly request A/W version of structs/functions
+TARGET_CFLAGS += \
+	-D_DISABLE_TIDENTS \
+	-D__USE_W32API \
+	-D__REACTOS__ \
+	-D_WIN32_IE=0x600 \
+	-D_WIN32_WINNT=0x501 \
+	-DUSE_MSVCRT_PREFIX \
+	-D_MT
+
+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
+
+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/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 \
+	signal/xcptinfo.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 \
+	sys_stat/systime.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
+
+
+
+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
+
+WINE_OBJECTS = \
+	wine/cpp.o \
+	wine/cppexcept.o \
+	wine/heap.o \
+	wine/thread.o
+
+TARGET_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) \
+	$(WSTRING_OBJECTS) \
+	$(WINE_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+DEP_OBJECTS := $(TARGET_OBJECTS)
+
+TARGET_CLEAN = $(DEP_FILES)
+
+include $(PATH_TO_TOP)/tools/depend.mk
+
+# EOF

Copied: trunk/reactos/lib/crt/math (from rev 13290, trunk/reactos/lib/msvcrt/math)

Copied: trunk/reactos/lib/crt/mbstring (from rev 13290, trunk/reactos/lib/msvcrt/mbstring)

Copied: trunk/reactos/lib/crt/misc (from rev 13290, trunk/reactos/lib/msvcrt/misc)

Deleted: trunk/reactos/lib/crt/misc/dllmain.c
--- trunk/reactos/lib/msvcrt/misc/dllmain.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/misc/dllmain.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -1,140 +0,0 @@
-/* $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 "../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/crt/misc/environ.c
--- trunk/reactos/lib/msvcrt/misc/environ.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/misc/environ.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -9,7 +9,7 @@
 #include <msvcrt/internal/tls.h>
 #include <msvcrt/stdlib.h>
 #include <msvcrt/string.h>
-
+  
 #define NDEBUG
 #include <msvcrt/msvcrtdbg.h>
 
@@ -18,6 +18,7 @@
 unsigned int _winminor = 0;
 unsigned int _winmajor = 0;
 unsigned int _winver = 0;
+ 
 
 char *_acmdln = NULL;        /* pointer to ascii command line */
 wchar_t *_wcmdln = NULL;     /* pointer to wide character command line */
@@ -165,9 +166,9 @@
    for (envptr = original_environment; count > 1; newenvptr++, count--)
    {
       if (wide)
-         *newenvptr = (char*)wcsdup((wchar_t*)*envptr++);
+         *newenvptr = (char*)_wcsdup((wchar_t*)*envptr++);
       else
-         *newenvptr = strdup(*envptr++);
+         *newenvptr = _strdup(*envptr++);
       if (*newenvptr == NULL)
       {
          for (newenvptr--; newenvptr >= newenv; newenvptr--);
@@ -243,7 +244,7 @@
    /* Find the option we're trying to modify. */
    for (index = 0, wenvptr = _wenviron; *wenvptr != NULL; wenvptr++, index++)
    {
-      if (!wcsnicmp(*wenvptr, option, epos - option))
+      if (!_wcsnicmp(*wenvptr, option, epos - option))
       {
          found = 1;
          break;
@@ -277,7 +278,7 @@
    else
    {
       /* Make a copy of the option that we will store in the environment block. */
-      woption = wcsdup((wchar_t*)option);
+      woption = _wcsdup((wchar_t*)option);
       if (woption == NULL)
       {
          free(name);

Modified: trunk/reactos/lib/crt/misc/getargs.c
--- trunk/reactos/lib/msvcrt/misc/getargs.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/misc/getargs.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -68,7 +68,7 @@
             do {
                 if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
                     strcpy(&buffer[pos], fd.cFileName);
-                    if (add(strdup(buffer)) < 0) {
+                    if (add(_strdup(buffer)) < 0) {
                         FindClose(hFile);
                         return -1;
                     }
@@ -136,7 +136,7 @@
     *argc = __argc;
     *argv = __argv;
     *env  = _environ;
-    _pgmptr = strdup((char*)argv[0]);
+    _pgmptr = _strdup((char*)argv[0]);
     return 0;
 }
 

Added: trunk/reactos/lib/crt/precomp.h
--- trunk/reactos/lib/crt/precomp.h	2005-01-27 21:17:28 UTC (rev 13341)
+++ trunk/reactos/lib/crt/precomp.h	2005-01-27 21:18:04 UTC (rev 13342)
@@ -0,0 +1 @@
+#include <windows.h>

Copied: trunk/reactos/lib/crt/process (from rev 13290, trunk/reactos/lib/msvcrt/process)

Modified: trunk/reactos/lib/crt/process/_system.c
--- trunk/reactos/lib/msvcrt/process/_system.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/process/_system.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -47,7 +47,7 @@
 
   if (szComSpec == NULL)
   {
-    szComSpec = strdup("cmd.exe");
+    szComSpec = _strdup("cmd.exe");
     if (szComSpec == NULL)
     {
        __set_errno(ENOMEM);

Copied: trunk/reactos/lib/crt/search (from rev 13290, trunk/reactos/lib/msvcrt/search)

Copied: trunk/reactos/lib/crt/setjmp (from rev 13290, trunk/reactos/lib/msvcrt/setjmp)

Copied: trunk/reactos/lib/crt/signal (from rev 13290, trunk/reactos/lib/msvcrt/signal)

Added: trunk/reactos/lib/crt/signal/xcptinfo.c
--- trunk/reactos/lib/msvcrt/signal/xcptinfo.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/signal/xcptinfo.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -0,0 +1,9 @@
+#include <msvcrt/stdlib.h>
+
+/*
+ * @unimplemented
+ */
+void **__pxcptinfoptrs (void)
+{
+        return NULL;
+}

Copied: trunk/reactos/lib/crt/stdio (from rev 13290, trunk/reactos/lib/msvcrt/stdio)

Modified: trunk/reactos/lib/crt/stdio/fopen.c
--- trunk/reactos/lib/msvcrt/stdio/fopen.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/stdio/fopen.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -30,18 +30,13 @@
 #include <msvcrt/string.h>
 #include <msvcrt/io.h>
 #include <msvcrt/fcntl.h>
-//#include <msvcrt/internal/file.h>
+#include <msvcrt/internal/file.h>
 
 //might change fopen(file,mode) -> fsopen(file,mode,_SH_DENYNO);
 
-#undef _fmode
-extern unsigned int _fmode;
-
 FILE* __alloc_file(void);
 
-//extern int _fmode;
 
-
 FILE* fopen(const char *file, const char *mode)
 {
   FILE *f;
@@ -68,7 +63,7 @@
   else if (strchr(mode, 'b'))
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   fd = _open(file, oflags, 0);
   if (fd < 0)
@@ -94,7 +89,7 @@
     f->_flag |= _IOTEXT;
   else if (strchr(mode, 'b'))
     f->_flag |= _IOBINARY;
-  else if (_fmode & O_BINARY)
+  else if (__fmode & O_BINARY)
     f->_flag |= _IOBINARY;
 
   f->_base = f->_ptr = NULL;
@@ -130,7 +125,7 @@
   else if (wcschr(mode, L'b'))
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   fd = _wopen(file, oflags, 0);
   if (fd < 0)
@@ -155,7 +150,7 @@
     f->_flag |= _IOTEXT;
   else if (wcschr(mode, L'b'))
     f->_flag |= _IOBINARY;
-  else if (_fmode & O_BINARY)
+  else if (__fmode & O_BINARY)
     f->_flag |= _IOBINARY;
 
   f->_base = f->_ptr = NULL;

Modified: trunk/reactos/lib/crt/stdio/freopen.c
--- trunk/reactos/lib/msvcrt/stdio/freopen.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/stdio/freopen.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -44,7 +44,7 @@
   else if (tbchar == 'b')
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   fd = _open(file, oflags, 0666);
   if (fd < 0)
@@ -104,7 +104,7 @@
   else if (tbchar == L'b')
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   fd = _wopen(file, oflags, 0666);
   if (fd < 0)

Modified: trunk/reactos/lib/crt/stdio/fsopen.c
--- trunk/reactos/lib/msvcrt/stdio/fsopen.c	2005-01-25 22:58:47 UTC (rev 13290)
+++ trunk/reactos/lib/crt/stdio/fsopen.c	2005-01-27 21:18:04 UTC (rev 13342)
@@ -65,7 +65,7 @@
   else if (tbchar == 'b')
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   if ( shflag == _SH_DENYNO )
     shf = _S_IREAD | _S_IWRITE;
@@ -146,7 +146,7 @@
   else if (tbchar == L'b')
     oflags |= O_BINARY;
   else
-    oflags |= (_fmode & (O_TEXT|O_BINARY));
+    oflags |= (__fmode & (O_TEXT|O_BINARY));
 
   if ( shflag == _SH_DENYNO )
     shf = _S_IREAD | _S_IWRITE;
[truncated at 1000 lines; 3380 more skipped]