From 66c87c27887f602fdf8e3af11b3dd9e8b32d735c Mon Sep 17 00:00:00 2001 From: Gunnar Dalsnes Date: Wed, 16 Feb 2005 22:22:42 +0000 Subject: [PATCH] crt: -use native mingw headers and not private copies of them tchar.h: -added lotsa missin stuff svn path=/trunk/; revision=13606 --- reactos/include/msvcrt/alloc.h | 86 --- reactos/include/msvcrt/assert.h | 69 --- reactos/include/msvcrt/conio.h | 63 --- reactos/include/msvcrt/ctype.h | 146 ----- reactos/include/msvcrt/dir.h | 149 ----- reactos/include/msvcrt/direct.h | 81 --- reactos/include/msvcrt/errno.h | 120 ---- reactos/include/msvcrt/fcntl.h | 130 ----- reactos/include/msvcrt/float.h | 214 ------- reactos/include/msvcrt/internal/atexit.h | 33 -- reactos/include/msvcrt/internal/console.h | 12 - reactos/include/msvcrt/internal/file.h | 79 --- reactos/include/msvcrt/internal/ieee.h | 25 - reactos/include/msvcrt/internal/mtdll.h | 72 --- reactos/include/msvcrt/internal/rterror.h | 31 - reactos/include/msvcrt/internal/stdio.h | 12 - reactos/include/msvcrt/internal/tls.h | 42 -- reactos/include/msvcrt/io.h | 168 ------ reactos/include/msvcrt/locale.h | 87 --- reactos/include/msvcrt/malloc.h | 53 -- reactos/include/msvcrt/math.h | 183 ------ reactos/include/msvcrt/mbctype.h | 78 --- reactos/include/msvcrt/mbstring.h | 114 ---- reactos/include/msvcrt/msvcrtdbg.h | 64 --- reactos/include/msvcrt/process.h | 160 ------ reactos/include/msvcrt/search.h | 39 -- reactos/include/msvcrt/share.h | 44 -- reactos/include/msvcrt/signal.h | 113 ---- reactos/include/msvcrt/stdarg.h | 115 ---- reactos/include/msvcrt/stddef.h | 178 ------ reactos/include/msvcrt/stdio.h | 375 ------------ reactos/include/msvcrt/stdlib.h | 248 -------- reactos/include/msvcrt/string.h | 193 ------- reactos/include/msvcrt/sys/fcntl.h | 8 - reactos/include/msvcrt/sys/file.h | 9 - reactos/include/msvcrt/sys/locking.h | 49 -- reactos/include/msvcrt/sys/stat.h | 144 ----- reactos/include/msvcrt/sys/time.h | 3 - reactos/include/msvcrt/sys/timeb.h | 61 -- reactos/include/msvcrt/sys/types.h | 68 --- reactos/include/msvcrt/sys/unistd.h | 9 - reactos/include/msvcrt/sys/utime.h | 80 --- reactos/include/msvcrt/time.h | 125 ---- reactos/include/msvcrt/wchar.h | 41 -- reactos/include/msvcrt/wine/cppexcept.h | 124 ---- reactos/include/msvcrt/wine/eh.h | 53 -- reactos/include/msvcrt/wine/msvcrt.h | 128 ----- reactos/include/tchar.h | 658 +++++++++++++--------- 48 files changed, 400 insertions(+), 4736 deletions(-) delete mode 100644 reactos/include/msvcrt/alloc.h delete mode 100644 reactos/include/msvcrt/assert.h delete mode 100644 reactos/include/msvcrt/conio.h delete mode 100644 reactos/include/msvcrt/ctype.h delete mode 100644 reactos/include/msvcrt/dir.h delete mode 100644 reactos/include/msvcrt/direct.h delete mode 100644 reactos/include/msvcrt/errno.h delete mode 100644 reactos/include/msvcrt/fcntl.h delete mode 100644 reactos/include/msvcrt/float.h delete mode 100644 reactos/include/msvcrt/internal/atexit.h delete mode 100644 reactos/include/msvcrt/internal/console.h delete mode 100644 reactos/include/msvcrt/internal/file.h delete mode 100644 reactos/include/msvcrt/internal/ieee.h delete mode 100644 reactos/include/msvcrt/internal/mtdll.h delete mode 100644 reactos/include/msvcrt/internal/rterror.h delete mode 100644 reactos/include/msvcrt/internal/stdio.h delete mode 100644 reactos/include/msvcrt/internal/tls.h delete mode 100644 reactos/include/msvcrt/io.h delete mode 100644 reactos/include/msvcrt/locale.h delete mode 100644 reactos/include/msvcrt/malloc.h delete mode 100644 reactos/include/msvcrt/math.h delete mode 100644 reactos/include/msvcrt/mbctype.h delete mode 100644 reactos/include/msvcrt/mbstring.h delete mode 100644 reactos/include/msvcrt/msvcrtdbg.h delete mode 100644 reactos/include/msvcrt/process.h delete mode 100644 reactos/include/msvcrt/search.h delete mode 100644 reactos/include/msvcrt/share.h delete mode 100644 reactos/include/msvcrt/signal.h delete mode 100644 reactos/include/msvcrt/stdarg.h delete mode 100644 reactos/include/msvcrt/stddef.h delete mode 100644 reactos/include/msvcrt/stdio.h delete mode 100644 reactos/include/msvcrt/stdlib.h delete mode 100644 reactos/include/msvcrt/string.h delete mode 100644 reactos/include/msvcrt/sys/fcntl.h delete mode 100644 reactos/include/msvcrt/sys/file.h delete mode 100644 reactos/include/msvcrt/sys/locking.h delete mode 100644 reactos/include/msvcrt/sys/stat.h delete mode 100644 reactos/include/msvcrt/sys/time.h delete mode 100644 reactos/include/msvcrt/sys/timeb.h delete mode 100644 reactos/include/msvcrt/sys/types.h delete mode 100644 reactos/include/msvcrt/sys/unistd.h delete mode 100644 reactos/include/msvcrt/sys/utime.h delete mode 100644 reactos/include/msvcrt/time.h delete mode 100644 reactos/include/msvcrt/wchar.h delete mode 100644 reactos/include/msvcrt/wine/cppexcept.h delete mode 100644 reactos/include/msvcrt/wine/eh.h delete mode 100644 reactos/include/msvcrt/wine/msvcrt.h diff --git a/reactos/include/msvcrt/alloc.h b/reactos/include/msvcrt/alloc.h deleted file mode 100644 index c4ba00eb2ca..00000000000 --- a/reactos/include/msvcrt/alloc.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * alloc.h - * - * Memory management functions. Because most of these functions are - * actually declared in stdlib.h I have decided to simply include that - * header file. This file is included by malloc.h. My head hurts... - * - * NOTE: In the version of the Standard C++ Library from Cygnus there - * is also an alloc.h which needs to be on your include path. Most of - * the time I think the most sensible option would be to get rid of - * this file. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.5 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _ALLOC_H_ -#define _ALLOC_H_ - -#include - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The structure used to walk through the heap with _heapwalk. - * TODO: This is a guess at the internals of this structure. - */ -typedef struct _heapinfo -{ - void* ptr; - unsigned int size; - int in_use; -} _HEAPINFO; - -int _heapwalk(_HEAPINFO* pHeapinfo); - -#ifdef __GNUC__ -#ifdef USE_C_ALLOCA -void* C_alloca(size_t size); -#define _alloca(x) C_alloca(x) -#else /* USE_C_ALLOCA */ -#define _alloca(x) __builtin_alloca(x) -#endif /* USE_C_ALLOCA */ -#else /* __GNUC__ */ -void* _alloca(size_t size); -#endif /* __GNUC__ */ - - -#ifndef _NO_OLDNAMES -#define heapwalk(x) _heapwalk(x) -#define alloca(s) _alloca(s) -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _ALLOC_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/reactos/include/msvcrt/assert.h b/reactos/include/msvcrt/assert.h deleted file mode 100644 index d3bad6857e2..00000000000 --- a/reactos/include/msvcrt/assert.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * assert.h - * - * Define the assert macro for debug output. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _ASSERT_H_ -#define _ASSERT_H_ - - -#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. - */ -#ifndef __ATTRIB_NORETURN -#ifdef __GNUC__ -#define _ATTRIB_NORETURN __attribute__ ((noreturn)) -#else /* Not __GNUC__ */ -#define _ATTRIB_NORETURN -#endif /* __GNUC__ */ -#endif - -void _assert(const char* szExpression, const char* szFileName, int nLine) _ATTRIB_NORETURN; - -/* - * Definition of the assert macro. - */ -#define assert(x) if(!(x)) _assert( #x , __FILE__, __LINE__); -#endif /* NDEBUG */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not _ASSERT_H_ */ - diff --git a/reactos/include/msvcrt/conio.h b/reactos/include/msvcrt/conio.h deleted file mode 100644 index 847cad56ccb..00000000000 --- a/reactos/include/msvcrt/conio.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * conio.h - * - * Low level console I/O functions. Pretty please try to use the ANSI - * standard ones if you are writing new code. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _CONIO_H_ -#define _CONIO_H_ - -#ifdef __cplusplus -extern "C" { -#endif - - -char* _cgets(char*); -int _cprintf(const char*, ...); -int _cputs(const char*); -int _cscanf(char*, ...); -int _getch(void); -int _getche(void); -int _kbhit(void); -int _putch(int); -int _ungetch(int); - -#ifndef _NO_OLDNAMES -#define getch _getch -#define getche _getche -#define kbhit _kbhit -#define putch(cPut) _putch(cPut) -#define ungetch(cUnget) _ungetch(cUnget) -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _CONIO_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/ctype.h b/reactos/include/msvcrt/ctype.h deleted file mode 100644 index f34aa479261..00000000000 --- a/reactos/include/msvcrt/ctype.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * ctype.h - * - * Functions for testing character types and converting characters. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.10 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _CTYPE_H_ -#define _CTYPE_H_ - -#define __need_wchar_t -#define __need_wint_t -#include - - -/* - * 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 -#define _BLANK 0x0040 /* this is SP only, not SP and HT as in C99 */ -#define _HEX 0x0080 -#define _LEADBYTE 0x8000 - -#define _ALPHA 0x0103 - - -#ifdef __cplusplus -extern "C" { -#endif - -int isalnum(int); -int isalpha(int); -int iscntrl(int); -int isdigit(int); -int isgraph(int); -int islower(int); -int isprint(int); -int ispunct(int); -int isspace(int); -int isupper(int); -int isxdigit(int); - -#ifndef __STRICT_ANSI__ -int _isctype (unsigned int, int); -#endif - -/* These are the ANSI versions, with correct checking of argument */ -int tolower(int); -int 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 - */ -int _tolower(int); -int _toupper(int); -#endif - -/* - * TODO: MB_CUR_MAX should be defined here (if not already defined, since - * it should also be defined in stdlib.h). It is supposed to be the - * maximum number of bytes in a multi-byte character in the current - * locale. Perhaps accessible through the __mb_curr_max_dll entry point, - * but I think (again) that that is a variable pointer, which leads to - * problems under the current Cygwin compiler distribution. - */ - -typedef int wctype_t; - - -/* Wide character equivalents */ -#ifndef WEOF -#define WEOF (wchar_t)(0xFFFF) -#endif - -int iswalnum(wint_t); -int iswalpha(wint_t); -int iswascii(wint_t); -int iswcntrl(wint_t); -int iswctype(wint_t, wctype_t); -int is_wctype(wint_t, wctype_t); /* Obsolete! */ -int iswdigit(wint_t); -int iswgraph(wint_t); -int iswlower(wint_t); -int iswprint(wint_t); -int iswpunct(wint_t); -int iswspace(wint_t); -int iswupper(wint_t); -int iswxdigit(wint_t); - -wchar_t towlower(wchar_t); -wchar_t towupper(wchar_t); - -int isleadbyte(int); - -#ifndef __STRICT_ANSI__ -int __isascii(int); -int __toascii(int); -int __iscsymf(int); /* Valid first character in C symbol */ -int __iscsym(int); /* Valid character in C symbol (after first) */ - -#ifndef _NO_OLDNAMES -#define isascii(c) __isascii(c) -#define toascii(c) _toascii(c) -#define iscsymf(c) __iscsymf(c) -#define iscsym(c) __iscsym(c) -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not _CTYPE_H_ */ diff --git a/reactos/include/msvcrt/dir.h b/reactos/include/msvcrt/dir.h deleted file mode 100644 index f976bab5bcc..00000000000 --- a/reactos/include/msvcrt/dir.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * dir.h - * - * Functions for working with directories and path names. - * 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 - * - * 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: 1.6 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _DIR_H_ -#define _DIR_H_ - -#include /* To get FILENAME_MAX... ugly. */ -#include /* To get time_t. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 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 _FSIZE_T_DEFINED -typedef unsigned long _fsize_t; -#define _FSIZE_T_DEFINED -#endif - -/* - * The following structures are 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; /* Attributes, see constants above. */ - time_t time_create; - time_t time_access; /* always midnight local time */ - time_t time_write; - __int64 size; - char name[FILENAME_MAX]; /* may include spaces. */ -}; - -struct _wfinddata_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; - wchar_t name[FILENAME_MAX]; /* may include spaces. */ -}; - -struct _wfinddatai64_t -{ - unsigned attrib; /* Attributes, see constants above. */ - time_t time_create; - time_t time_access; /* always midnight local time */ - time_t time_write; - __int64 size; - wchar_t name[FILENAME_MAX]; /* may include spaces. */ -}; - -/* - * 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. - */ -int _findclose(int nHandle); -int _findfirst(const char* szFilespec, struct _finddata_t* find); -int _findnext(int nHandle, struct _finddata_t* find); -int _findfirsti64(const char* szFilespec, struct _finddatai64_t* find); -int _findnexti64(int nHandle, struct _finddatai64_t* find); -/* Wide character versions */ -int _wfindfirst(const wchar_t *_name, struct _wfinddata_t *result); -int _wfindfirsti64(const wchar_t *_name, struct _wfinddatai64_t *result); -int _wfindnext(int handle, struct _wfinddata_t *result); -int _wfindnexti64(int handle, struct _wfinddatai64_t *result); - -int _chdir(const char* szPath); -char* _getcwd(char* caBuffer, int nBufferSize); -int _mkdir(const char* szPath); -char* _mktemp(char* szTemplate); -int _rmdir(const char* szPath); - -/* Wide character versions */ -int _wchdir(const wchar_t *szPath); -wchar_t* _wgetcwd(wchar_t *buffer, int maxlen); -int _wmkdir(const wchar_t *_path); -wchar_t* _wmktemp(wchar_t *_template); -int _wrmdir(const wchar_t *_path); - - -#ifndef _NO_OLDNAMES - -int chdir(const char* szPath); -char* getcwd(char* caBuffer, int nBufferSize); -int mkdir(const char* szPath); -char* mktemp(char* szTemplate); -int rmdir(const char* szPath); - -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _DIR_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/direct.h b/reactos/include/msvcrt/direct.h deleted file mode 100644 index 4c487241268..00000000000 --- a/reactos/include/msvcrt/direct.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * direct.h - * - * Functions for manipulating paths and directories (included from io.h) - * plus functions for setting the current drive. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _DIRECT_H_ -#define _DIRECT_H_ - -#ifndef _WCHAR_T_ -typedef unsigned short wchar_t; -#define _WCHAR_T_ -#endif - -#ifndef _SIZE_T_ -typedef unsigned int size_t; -#define _SIZE_T_ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -struct _diskfree_t { - unsigned short total_clusters; - unsigned short avail_clusters; - unsigned short sectors_per_cluster; - unsigned short bytes_per_sector; -}; - -int _getdrive(void); -int _chdrive(int); -char* _getcwd(char*, int); - -unsigned int _getdiskfree(unsigned int, struct _diskfree_t*); - -int _chdir(const char*); -int _mkdir(const char*); -int _rmdir(const char*); - -#define chdir _chdir -#define getcwd _getcwd -#define mkdir _mkdir -#define rmdir _rmdir - -char* _getdcwd(int nDrive, char* caBuffer, int nBufLen); - -wchar_t* _wgetcwd(wchar_t *buffer, int maxlen); -wchar_t* _wgetdcwd(int nDrive, wchar_t* caBuffer, int nBufLen); - -int _wchdir(const wchar_t* _path); -int _wmkdir(const wchar_t* _path); -int _wrmdir(const wchar_t* _path); - -#ifdef __cplusplus -} -#endif - -#endif /* Not _DIRECT_H_ */ - diff --git a/reactos/include/msvcrt/errno.h b/reactos/include/msvcrt/errno.h deleted file mode 100644 index bff44828e04..00000000000 --- a/reactos/include/msvcrt/errno.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * errno.h - * - * Error numbers and access to error reporting. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.7 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _ERRNO_H_ -#define _ERRNO_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). - */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Definitions of macros for the 'variables' errno, _doserrno, sys_nerr and - * sys_errlist. - */ -int* _errno(void); -#define errno (*_errno()) - -int* __doserrno(void); -#define _doserrno (*__doserrno()) - -/* One of the MSVCRTxx libraries */ - -extern int* __imp__sys_nerr; -#ifndef sys_nerr -#define sys_nerr (*__imp__sys_nerr) -#endif - -extern char** __imp__sys_errlist; -#ifndef sys_errlist -#define sys_errlist (__imp__sys_errlist) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* Not _ERRNO_H_ */ diff --git a/reactos/include/msvcrt/fcntl.h b/reactos/include/msvcrt/fcntl.h deleted file mode 100644 index 8c6baef632c..00000000000 --- a/reactos/include/msvcrt/fcntl.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * fcntl.h - * - * Access constants for _open. Note that the permissions constants are - * in sys/stat.h (ick). - * - * This code is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.6 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* added _O_RANDOM_O_SEQUENTIAL _O_SHORT_LIVED*/ -/* changed fmode_dll */ - -#ifndef _FCNTL_H_ -#define _FCNTL_H_ - -/* - * It appears that fcntl.h should include io.h for compatibility... - */ -#include - -/* - * This variable determines the default file mode. - * TODO: Which flags work? - */ -#if 0 -#ifdef __MSVCRT__ // || _MSVCRT_LIB_ -extern unsigned int* __imp__fmode; -#define _fmode (*__imp__fmode) -#else -/* CRTDLL */ -extern unsigned int* _fmode_dll; -#define _fmode (*_fmode_dll) -#endif -#endif /* 0 */ - -/* - * NOTE: This is the correct definition to build crtdll. - * It is NOT valid outside of crtdll. - */ -extern unsigned int* _fmode_dll; -#ifndef __USE_W32API -extern unsigned int _fmode; -#endif - -/* 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 _O_RANDOM -#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 - - -#ifndef __STRICT_ANSI__ -#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_RANDOM _O_RANDOM -#define O_SEQUENTIAL _O_RANDOM -#define O_SHORT_LIVED _O_SHORT_LIVED - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -extern "C" { -#endif - -int _setmode (int, int); - -#ifndef _NO_OLDNAMES -int setmode (int, int); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not __STRICT_ANSI__ */ - -#endif /* Not _FCNTL_H_ */ - diff --git a/reactos/include/msvcrt/float.h b/reactos/include/msvcrt/float.h deleted file mode 100644 index 22371f5e968..00000000000 --- a/reactos/include/msvcrt/float.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - * float.h - * - * Constants related to floating point arithmetic. - * - * Also included here are some non-ANSI bits for accessing the floating - * point controller. - * - * NOTE: GCC provides float.h, and it is probably more accurate than this, - * but it doesn't include the non-standard stuff for accessing the - * fp controller. (TODO: Move those bits elsewhere?) Thus it is - * probably not a good idea to use the GCC supplied version instead - * of this header. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.5 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _FLOAT_H_ -#define _FLOAT_H_ - - -#define FLT_ROUNDS 1 -#define FLT_GUARD 1 -#define FLT_NORMALIZE 1 - -/* - * The characteristics of float. - */ - -/* The radix for floating point representation. */ -#define FLT_RADIX 2 - -/* Decimal digits of precision. */ -#define FLT_DIG 6 - -/* Smallest number such that 1+x != 1 */ -#define FLT_EPSILON 1.19209290e-07F - -/* The number of base FLT_RADIX digits in the mantissa. */ -#define FLT_MANT_DIG 24 - -/* The maximum floating point number. */ -#define FLT_MAX 3.40282347e+38F - -/* Maximum n such that FLT_RADIX^n - 1 is representable. */ -#define FLT_MAX_EXP 128 - -/* Maximum n such that 10^n is representable. */ -#define FLT_MAX_10_EXP 38 - -/* Minimum normalized floating-point number. */ -#define FLT_MIN 1.17549435e-38F - -/* Minimum n such that FLT_RADIX^n is a normalized number. */ -#define FLT_MIN_EXP (-125) - -/* Minimum n such that 10^n is a normalized number. */ -#define FLT_MIN_10_EXP (-37) - - -/* - * The characteristics of double. - */ -#define DBL_DIG 15 -#define DBL_EPSILON 1.1102230246251568e-16 -#define DBL_MANT_DIG 53 -#define DBL_MAX 1.7976931348623157e+308 -#define DBL_MAX_EXP 1024 -#define DBL_MAX_10_EXP 308 -#define DBL_MIN 2.2250738585072014e-308 -#define DBL_MIN_EXP (-1021) -#define DBL_MIN_10_EXP (-307) - - -/* - * The characteristics of long double. - * NOTE: long double is the same as double. - */ -#define LDBL_DIG 15 -#define LDBL_EPSILON 1.1102230246251568e-16L -#define LDBL_MANT_DIG 53 -#define LDBL_MAX 1.7976931348623157e+308L -#define LDBL_MAX_EXP 1024 -#define LDBL_MAX_10_EXP 308 -#define LDBL_MIN 2.2250738585072014e-308L -#define LDBL_MIN_EXP (-1021) -#define LDBL_MIN_10_EXP (-307) - - -/* - * 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 - -/* Return values for fpclass. */ -#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 */ - - -#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. */ -unsigned int _controlfp(unsigned int unNew, unsigned int unMask); -unsigned int _control87(unsigned int unNew, unsigned int unMask); - - -unsigned int _clearfp(void); /* Clear the FPU status word */ -unsigned int _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 _fpreset(void); /* Reset the FPU */ - -/* Global 'variable' for the current floating point error code. */ -int* __fpecode(void); -#define _fpecode (*(__fpecode())) - -/* - * IEEE recommended functions. MS puts them in float.h - * but they really belong in math.h. - */ - -double _chgsign (double); -double _copysign (double, double); -double _logb (double); -double _nextafter (double, double); -double _scalb (double, long); - -int _finite (double); -int _fpclass (double); -int _isnan (double); - -int _isinf (double); /* not exported */ -int _isnanl (long double); /* not exported */ -int _isinfl (long double); /* not exported */ - -#define isnan(x) _isnan(x) -#define isinf(x) _isinf(x) - - -#ifdef __cplusplus -} -#endif - -#endif /* Not __STRICT_ANSI__ */ - -#endif /* _FLOAT_H_ */ - diff --git a/reactos/include/msvcrt/internal/atexit.h b/reactos/include/msvcrt/internal/atexit.h deleted file mode 100644 index f2a1fccae24..00000000000 --- a/reactos/include/msvcrt/internal/atexit.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ -#ifndef __dj_include_libc_atexit_h__ -#define __dj_include_libc_dosexec_h__ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __dj_ENFORCE_ANSI_FREESTANDING - -#ifndef __STRICT_ANSI__ - -#ifndef _POSIX_SOURCE - -struct __atexit { - struct __atexit* __next; - void (*__function)(void); -}; - -extern struct __atexit* __atexit_ptr; - -#endif /* !_POSIX_SOURCE */ -#endif /* !__STRICT_ANSI__ */ -#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */ - -#ifndef __dj_ENFORCE_FUNCTION_CALLS -#endif /* !__dj_ENFORCE_FUNCTION_CALLS */ - -#ifdef __cplusplus -} -#endif - -#endif /* __dj_include_libc_dosexec_h__ */ diff --git a/reactos/include/msvcrt/internal/console.h b/reactos/include/msvcrt/internal/console.h deleted file mode 100644 index 6855779a9e9..00000000000 --- a/reactos/include/msvcrt/internal/console.h +++ /dev/null @@ -1,12 +0,0 @@ -/* console.h */ - -#ifndef __MSVCRT_INTERNAL_CONSOLE_H -#define __MSVCRT_INTERNAL_CONSOLE_H - -extern int char_avail; -extern int ungot_char; - -#endif /* __MSVCRT_INTERNAL_CONSOLE_H */ - -/* EOF */ - diff --git a/reactos/include/msvcrt/internal/file.h b/reactos/include/msvcrt/internal/file.h deleted file mode 100644 index 6630ffa66d3..00000000000 --- a/reactos/include/msvcrt/internal/file.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ - -#ifndef __dj_include_libc_file_h__ -#define __dj_include_libc_file_h__ - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __dj_ENFORCE_ANSI_FREESTANDING -#ifndef __STRICT_ANSI__ -#ifndef _POSIX_SOURCE - -#ifndef _IORMONCL -#define _IORMONCL 004000 /* remove on close, for temp files */ -#endif -/* if _flag & _IORMONCL, ._name_to_remove needs freeing */ - -#ifndef _IOUNGETC -#define _IOUNGETC 010000 /* there is an ungetc'ed character in the buffer */ -#endif - -/* might need check for IO_APPEND aswell */ -#define OPEN4WRITING(f) ((((f)->_flag & _IOWRT) == _IOWRT)) -#define OPEN4READING(f) ((((f)->_flag & _IOREAD) == _IOREAD)) - -/* might need check for IO_APPEND aswell */ -#define WRITE_STREAM(f) ((((f)->_flag & _IOWRT) == _IOWRT)) -#define READ_STREAM(f) ((((f)->_flag & _IOREAD) == _IOREAD)) - -char __validfp(FILE*); -int __set_errno(int err); -int __set_doserrno(int error); -void* filehnd(int fn); -char __is_text_file(FILE*); -int __fileno_alloc(void* hFile, int mode); -int _doprnt(const char* fmt, va_list args, FILE *); -int _doscan(FILE* iop, const char* fmt, va_list argp); -int __fileno_dup2(int handle1, int handle2); -int __fileno_getmode(int _fd); -int __fileno_setmode(int _fd, int _newmode); -int __fileno_close(int _fd); -void sigabort_handler(int sig); - -#include - -void UnixTimeToFileTime(time_t unix_time, FILETIME* filetime, DWORD remainder); -time_t FileTimeToUnixTime(const FILETIME* filetime, DWORD *remainder); - -#endif /* !_POSIX_SOURCE */ -#endif /* !__STRICT_ANSI__ */ -#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */ - -#ifndef __dj_ENFORCE_FUNCTION_CALLS -#endif /* !__dj_ENFORCE_FUNCTION_CALLS */ - -#define __FILE_REC_MAX 20 -typedef struct __file_rec -{ - struct __file_rec* next; - int count; - FILE* files[__FILE_REC_MAX]; -} __file_rec; - -extern __file_rec* __file_rec_list; - -void _dosmaperr(unsigned long oserrcode); - -extern int __fmode; - -#ifdef __cplusplus -} -#endif - -#endif /* __dj_include_libc_file_h__ */ diff --git a/reactos/include/msvcrt/internal/ieee.h b/reactos/include/msvcrt/internal/ieee.h deleted file mode 100644 index e6188c23fe0..00000000000 --- a/reactos/include/msvcrt/internal/ieee.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _IEEE_H -#define _IEEE_H - -typedef struct { - unsigned int mantissa:23; - unsigned int exponent:8; - unsigned int sign:1; -} float_t; - -typedef struct { - unsigned int mantissal:32; - unsigned int mantissah:20; - unsigned int exponent:11; - unsigned int sign:1; -} double_t; - -typedef struct { - unsigned int mantissal:32; - unsigned int mantissah:32; - unsigned int exponent:15; - unsigned int sign:1; - unsigned int empty:16; -} long_double_t; - -#endif diff --git a/reactos/include/msvcrt/internal/mtdll.h b/reactos/include/msvcrt/internal/mtdll.h deleted file mode 100644 index 420e6944b45..00000000000 --- a/reactos/include/msvcrt/internal/mtdll.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2002, TransGaming Technologies Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef WINE_MTDLL_H -#define WINE_MTDLL_H - -#if defined(_MT) - -#define _mlock(locknum) _lock(locknum) -#define _munlock(locknum) _unlock(locknum) - -void _unlock( int locknum ); -void _lock( int locknum ); - -#else - -#define _mlock(locknum) do {} while(0) -#define _munlock(locknum) do {} while(0) - -#endif - - -#define _SIGNAL_LOCK 1 -#define _IOB_SCAN_LOCK 2 -#define _TMPNAM_LOCK 3 -#define _INPUT_LOCK 4 -#define _OUTPUT_LOCK 5 -#define _CSCANF_LOCK 6 -#define _CPRINTF_LOCK 7 -#define _CONIO_LOCK 8 -#define _HEAP_LOCK 9 -#define _BHEAP_LOCK 10 /* No longer used? */ -#define _TIME_LOCK 11 -#define _ENV_LOCK 12 -#define _EXIT_LOCK1 13 -#define _EXIT_LOCK2 14 -#define _THREADDATA_LOCK 15 /* No longer used? */ -#define _POPEN_LOCK 16 -#define _LOCKTAB_LOCK 17 -#define _OSFHND_LOCK 18 -#define _SETLOCALE_LOCK 19 -#define _LC_COLLATE_LOCK 20 /* No longer used? */ -#define _LC_CTYPE_LOCK 21 /* No longer used? */ -#define _LC_MONETARY_LOCK 22 /* No longer used? */ -#define _LC_NUMERIC_LOCK 23 /* No longer used? */ -#define _LC_TIME_LOCK 24 /* No longer used? */ -#define _MB_CP_LOCK 25 -#define _NLG_LOCK 26 -#define _TYPEINFO_LOCK 27 -#define _STREAM_LOCKS 28 - -/* Must match definition in msvcrt/stdio.h */ -#define _IOB_ENTRIES 20 -#define _LAST_STREAM_LOCK (_STREAM_LOCKS+_IOB_ENTRIES-1) -#define _TOTAL_LOCKS (_LAST_STREAM_LOCK+1) - -#endif /* WINE_MTDLL_H */ diff --git a/reactos/include/msvcrt/internal/rterror.h b/reactos/include/msvcrt/internal/rterror.h deleted file mode 100644 index b32bc7faae8..00000000000 --- a/reactos/include/msvcrt/internal/rterror.h +++ /dev/null @@ -1,31 +0,0 @@ -/* rterror.h */ - -#ifndef __MSVCRT_INTERNAL_RTERROR_H -#define __MSVCRT_INTERNAL_RTERROR_H - - -#define _RT_STACK 0 /* stack overflow */ -#define _RT_NULLPTR 1 /* null pointer assignment */ -#define _RT_FLOAT 2 /* floating point not loaded */ -#define _RT_INTDIV 3 /* integer divide by 0 */ -#define _RT_SPACEARG 4 /* not enough space for arguments */ -#define _RT_SPACEENV 5 /* not enough space for environment */ -#define _RT_ABORT 6 /* abnormal program termination */ -#define _RT_THREAD 7 /* not enough space for thread data */ -#define _RT_LOCK 8 /* unexpected multi-thread lock error */ -#define _RT_HEAP 9 /* unexpected heap error */ -#define _RT_OPENCON 10 /* unable to open console device */ -#define _RT_NONCONT 11 /* non-continuable exception */ -#define _RT_INVALDISP 12 /* invalid disposition of exception */ -#define _RT_ONEXIT 13 /* insufficient heap to allocate - * initial table of function pointers - * used by _onexit()/atexit(). */ -#define _RT_PUREVIRT 14 /* pure virtual function call attempted - * (C++ error) */ -#define _RT_STDIOINIT 15 /* not enough space for stdio initialization */ -#define _RT_LOWIOINIT 16 /* not enough space for lowio initialization */ - -void _amsg_exit (int errnum); - - -#endif /* __MSVCRT_INTERNAL_RTERROR_H */ diff --git a/reactos/include/msvcrt/internal/stdio.h b/reactos/include/msvcrt/internal/stdio.h deleted file mode 100644 index 8b84ced4934..00000000000 --- a/reactos/include/msvcrt/internal/stdio.h +++ /dev/null @@ -1,12 +0,0 @@ -/* stdio.h */ - -#ifndef __MSVCRT_INTERNAL_STDIO_H -#define __MSVCRT_INTERNAL_STDIO_H - -int __vfscanf(FILE* s, const char* format, va_list argptr); -int __vscanf(const char* format, va_list arg); -int __vsscanf(const char* s,const char* format, va_list arg); - -#endif /* __MSVCRT_INTERNAL_STDIO_H */ - -/* EOF */ diff --git a/reactos/include/msvcrt/internal/tls.h b/reactos/include/msvcrt/internal/tls.h deleted file mode 100644 index 5a4a33c8f82..00000000000 --- a/reactos/include/msvcrt/internal/tls.h +++ /dev/null @@ -1,42 +0,0 @@ -/* tls.h */ - -#ifndef __MSVCRT_INTERNAL_TLS_H -#define __MSVCRT_INTERNAL_TLS_H - -#include -#include -#include - -typedef struct _ThreadData -{ - int terrno; /* *nix error code */ - unsigned long tdoserrno; /* Win32 error code (for I/O only) */ - unsigned LONGLONG tnext; /* used by rand/srand */ - - char *lasttoken; /* used by strtok */ - wchar_t *wlasttoken; /* used by wcstok */ - - - int fpecode; /* fp exception code */ - - /* qsort variables */ - int (*qcmp)(const void *, const void *); /* the comparison routine */ - int qsz; /* size of each record */ - int thresh; /* THRESHold in chars */ - int mthresh; /* MTHRESHold in chars */ - - EXCEPTION_RECORD *exc_record; /* Head of exception record list */ - -} THREADDATA, *PTHREADDATA; - - -int CreateThreadData(void); -void DestroyThreadData(void); - -void FreeThreadData(PTHREADDATA ptd); -PTHREADDATA GetThreadData(void); - -#endif /* __MSVCRT_INTERNAL_TLS_H */ - -/* EOF */ - diff --git a/reactos/include/msvcrt/io.h b/reactos/include/msvcrt/io.h deleted file mode 100644 index f8bb1d1aa4d..00000000000 --- a/reactos/include/msvcrt/io.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * io.h - * - * System level I/O functions and types. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.5 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* added D_OK */ -/* changed get_osfhandle and open_osfhandle */ -/* added fileno as macro */ - -#ifndef __STRICT_ANSI__ - -#ifndef _IO_H_ -#define _IO_H_ - -#include - -#include - - -/* We need the definition of FILE anyway... */ -#include - -/* 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 - * and inclusion of sys/types.h */ -#include - -/* 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 */ -#define W_OK 2 /* Check for write permission */ -#define R_OK 4 /* Check for read permission */ -/* TODO: Is this safe? X_OK not supported directly... */ -#define X_OK R_OK /* Check for execute permission */ -#define D_OK 0x10 - - - -#ifdef __cplusplus -extern "C" { -#endif - -int _access (const char*, int); -int _chsize (int, long); -int _close (int); -int _commit(int); - -/* NOTE: The only significant bit in unPermissions appears to be bit 7 (0x80), - * the "owner write permission" bit (on FAT). */ -int _creat (const char*, int); -int _dup (int); -int _dup2 (int, int); -long _filelength (int); -int _fileno (FILE*); -void* _get_osfhandle (int); -int _isatty (int); - -int _chmod (const char* szPath, int nMode); -__int64 _filelengthi64(int nHandle); - -/* 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 -int _eof (int); -#endif - -/* LK_... locking commands defined in sys/locking.h. */ -int _locking (int, int, long); - -off_t _lseek(int, off_t, int); - -/* Optional third argument is unsigned unPermissions. */ -int _open (const char*, int, ...); - -int _open_osfhandle (void*, int); -int _pipe (int*, unsigned int, int); -size_t _read(int, void*, size_t); - -/* SH_... flags for nShFlags defined in share.h - * Optional fourth argument is unsigned unPermissions */ -int _sopen (char*, int, int, int); - -long _tell(int); -/* Should umask be in sys/stat.h and/or sys/types.h instead? */ -unsigned _umask(unsigned); -int _unlink(const char*); -size_t _write(int, const void*, size_t); - -__int64 _lseeki64(int _fildes, __int64 _offset, int _whence); -__int64 _telli64(int nHandle); - -/* Wide character versions. Also declared in wchar.h. */ -/* Not in crtdll.dll */ -int _waccess(const wchar_t*, int); -int _wchmod(const wchar_t*, int); -int _wcreat(const wchar_t*, int); - -int _wunlink(const wchar_t*); -int _wopen(const wchar_t*, int, ...); -int _wsopen(wchar_t*, int, int, int); - - -#ifndef _NO_OLDNAMES -/* - * Non-underscored versions of non-ANSI functions to improve portability. - * These functions live in libmoldname.a. - */ - -#define access _access -#define chmod _chmod -#define chsize _chsize -#define close _close -#define creat _creat -#define dup _dup -#define dup2 _dup2 -#define eof _eof -#define filelength _filelength -#define fileno(f) ((f)->_file) -#define isatty _isatty -#define lseek _lseek -#define open _open -#define read _read -#define sopen(path,access,shflag,mode) _open((path), (access)|(shflag), (mode)) -#define tell(file) _lseek(_file, 0, SEEK_CUR) -#define umask _umask -#define unlink _unlink -#define write _write - - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* _IO_H_ not defined */ - -#endif /* Not strict ANSI */ - diff --git a/reactos/include/msvcrt/locale.h b/reactos/include/msvcrt/locale.h deleted file mode 100644 index 8c6a4b6ffc6..00000000000 --- a/reactos/include/msvcrt/locale.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * locale.h - * - * Functions and types for localization (ie. changing the appearance of - * output based on the standards of a certain country). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _LOCALE_H_ -#define _LOCALE_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 - -/* - * 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 - -char* setlocale(int, const char*); -struct lconv* localeconv(void); - -#ifdef __cplusplus -} -#endif - -#endif /* Not _LOCALE_H_ */ - diff --git a/reactos/include/msvcrt/malloc.h b/reactos/include/msvcrt/malloc.h deleted file mode 100644 index 14ce7eb7f4d..00000000000 --- a/reactos/include/msvcrt/malloc.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * malloc.h - * - * 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. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _MALLOC_H_ -#define _MALLOC_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -int _heapchk(void); /* Verify heap integrety. */ -int _heapmin(void); /* Return unused heap to the OS. */ -int _heapset(unsigned int); -size_t _msize(void*); -void* _expand(void*, size_t); - -#ifdef __cplusplus -} -#endif - -#endif /* Not _MALLOC_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/math.h b/reactos/include/msvcrt/math.h deleted file mode 100644 index a818f406254..00000000000 --- a/reactos/include/msvcrt/math.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * math.h - * - * Mathematical functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.6 $ - * $Author$ - * $Date$ - * - */ -/* added modfl */ - -#ifndef _MATH_H_ -#define _MATH_H_ - -#include - -#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. - */ -#ifdef _MSVCRT_LIB_ -extern double* __imp__HUGE; -#define HUGE_VAL (*__imp__HUGE) -#else -/* CRTDLL */ -extern double* _HUGE_dll; -#define HUGE_VAL (*_HUGE_dll) -#endif - - -struct _exception -{ - int type; - char *name; - double arg1; - double arg2; - double retval; -}; - -/* - * Types for the above _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__ */ - - -double sin (double x); -double cos (double x); -double tan (double x); -double sinh (double x); -double cosh (double x); -double tanh (double x); -double asin (double x); -double acos (double x); -double atan (double x); -double atan2 (double y, double x); -double exp (double x); -double log (double x); -double log10 (double x); -double pow (double x, double y); -long double powl (long double x,long double y); -double sqrt (double x); -double ceil (double x); -double floor (double x); -double fabs (double x); -double ldexp (double x, int n); -double frexp (double x, int* exp); -double modf (double x, double* ip); -long double modfl (long double x,long double* ip); -double fmod (double x, double y); - - -#ifndef __STRICT_ANSI__ - -/* Complex number (for cabs) */ -struct _complex -{ - double x; /* Real part */ - double y; /* Imaginary part */ -}; - -double _cabs (struct _complex x); -double _hypot (double x, double y); -double _j0 (double x); -double _j1 (double x); -double _jn (int n, double x); -double _y0 (double x); -double _y1 (double x); -double _yn (int n, double x); - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - - -#ifdef __MSVCRT__ -double linkme_sin(double x); -double linkme_cos(double x); -double linkme_tan(double x); -double linkme_sinh(double x); -double linkme_cosh(double x); -double linkme_tanh(double x); -double linkme_asin(double x); -double linkme_acos(double x); -double linkme_atan(double x); -double linkme_atan2(double y, double x); -double linkme_exp(double x); -double linkme_log(double x); -double linkme_log10(double x); -double linkme_pow(double x, double y); -long double linkme_powl(long double x,long double y); -double linkme_sqrt(double x); -double linkme_ceil(double x); -double linkme_floor(double x); -double linkme_fabs(double x); -double linkme_ldexp(double x, int n); -double linkme_frexp(double x, int* exp); -double linkme_modf(double x, double* ip); -long double linkme_modfl(long double x,long double* ip); -double linkme_fmod(double x, double y); - -/* - * linkme_log2 - * linkme_floor - * linkme_ldexp - * linkme_pow - */ - -#endif - - -#endif /* Not _MATH_H_ */ - diff --git a/reactos/include/msvcrt/mbctype.h b/reactos/include/msvcrt/mbctype.h deleted file mode 100644 index dd3f68c1421..00000000000 --- a/reactos/include/msvcrt/mbctype.h +++ /dev/null @@ -1,78 +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_ - - -/* 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 0x01 - *#define _MP 0x02 - *#define _M1 0x04 - *#define _M2 0x08 -#define _SBUP -#define _SBLOW -*/ - -#define _KNJ_M ((char)0x01) /* Non-punctuation of Kana-set */ -#define _KNJ_P ((char)0x02) /* Punctuation of Kana-set */ -#define _KNJ_1 ((char)0x04) /* Legal 1st byte of double byte stream */ -#define _KNJ_2 ((char)0x08) /* Legal 2nd btye of double byte stream */ - - -#define ___ 0 -#define _1_ _KNJ_1 /* Legal 1st byte of double byte code */ -#define __2 _KNJ_2 /* Legal 2nd byte of double byte code */ -#define _M_ _KNJ_M /* Non-puntuation in Kana-set */ -#define _P_ _KNJ_P /* Punctuation of Kana-set */ -#define _12 (_1_|__2) -#define _M2 (_M_|__2) -#define _P2 (_P_|__2) - -#ifdef __cplusplus -extern "C" { -#endif - -extern char _jctype[257]; - - -int _ismbbkana(unsigned char); -int _ismbbkalnum(unsigned int); - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _MCTYPE_H_ */ - diff --git a/reactos/include/msvcrt/mbstring.h b/reactos/include/msvcrt/mbstring.h deleted file mode 100644 index e331606f70d..00000000000 --- a/reactos/include/msvcrt/mbstring.h +++ /dev/null @@ -1,114 +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_ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* character routines */ -int _ismbcalnum(unsigned int); -int _ismbcalpha(unsigned int); -int _ismbcdigit(unsigned int); -int _ismbcgraph(unsigned int); -int _ismbcprint(unsigned int); -int _ismbcpunct(unsigned int); -int _ismbcspace(unsigned int); -int _ismbclower(unsigned int); -int _ismbcupper(unsigned int); -int _ismbclegal(unsigned int); - -int _ismbblead(unsigned int); -int _ismbbtrail(unsigned int); -int _ismbslead(const unsigned char*, const unsigned char*); -int _ismbstrail(const unsigned char*, const unsigned char*); - -unsigned int _mbctolower(unsigned int); -unsigned int _mbctoupper(unsigned int); - -void _mbccpy(unsigned char*, const unsigned char*); -size_t _mbclen(const unsigned char*); - -unsigned int _mbbtombc(unsigned int); -unsigned int _mbctombb(unsigned int); - -/* Return value constants for these are defined in mbctype.h. */ -int _mbbtype(unsigned char, int); -int _mbsbtype(const unsigned char*, size_t); - -unsigned char* _mbscpy(unsigned char*, const unsigned char*); -unsigned char* _mbsncpy(unsigned char*, const unsigned char*, size_t); -unsigned char* _mbsnbcpy(unsigned char*, const unsigned char*, size_t); -unsigned char* _mbsset(unsigned char*, unsigned int); -unsigned char* _mbsnset(unsigned char*, unsigned int, size_t); -unsigned char* _mbsnbset(unsigned char*, unsigned int, size_t); - -unsigned char* _mbsdup(const unsigned char*); -unsigned char* _mbsrev(unsigned char*); -unsigned char* _mbscat(unsigned char*, const unsigned char*); -unsigned char* _mbsncat(unsigned char*, const unsigned char*, size_t); -unsigned char* _mbsnbcat(unsigned char*, const unsigned char*, size_t); -size_t _mbslen(const unsigned char*); -size_t _mbsnbcnt(const unsigned char*, size_t); -size_t _mbsnccnt(const unsigned char*, size_t); -unsigned char* _mbschr(unsigned char*, unsigned char*); -unsigned char* _mbsrchr(const unsigned char*, unsigned int); -size_t _mbsspn(const unsigned char*, const unsigned char*); -size_t _mbscspn(const unsigned char*, const unsigned char*); -unsigned char* _mbsspnp(const unsigned char*, const unsigned char*); -unsigned char* _mbspbrk(const unsigned char*, const unsigned char*); -int _mbscmp(const unsigned char*, const unsigned char*); -int _mbsicmp(const unsigned char*, const unsigned char*); -int _mbsncmp(const unsigned char*, const unsigned char*, size_t); -int _mbsnicmp(const unsigned char*, const unsigned char*, size_t); -int _mbsnbcmp(const unsigned char*, const unsigned char*, size_t); -int _mbsnbicmp(const unsigned char*, const unsigned char*, size_t); -int _mbscoll(const unsigned char*, const unsigned char*); -int _mbsicoll(const unsigned char*, const unsigned char*); -int _mbsncoll(const unsigned char*, const unsigned char*, size_t); -int _mbsnicoll(const unsigned char*, const unsigned char*, size_t); -int _mbsnbcoll(const unsigned char*, const unsigned char*, size_t); - -int _mbsnbicoll(const unsigned char*, const unsigned char*, size_t); - -unsigned char* _mbsinc(const unsigned char*); -unsigned char* _mbsninc(const unsigned char*, size_t); -unsigned char* _mbsdec(const unsigned char*, const unsigned char*); -unsigned int _mbsnextc (const unsigned char*); -unsigned char* _mbslwr(unsigned char*); -unsigned char* _mbsupr(unsigned char*); -unsigned char* _mbstok(unsigned char*, unsigned char*); - -unsigned char* _mbsstr(const unsigned char*, const unsigned char*); -size_t _mbstrlen(const char*str); - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _MBSTRING_H_ */ - diff --git a/reactos/include/msvcrt/msvcrtdbg.h b/reactos/include/msvcrt/msvcrtdbg.h deleted file mode 100644 index f35e869f8ea..00000000000 --- a/reactos/include/msvcrt/msvcrtdbg.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS kernel - * FILE: include/msvcrt/msvcrtdbg.h - * PURPOSE: Useful debugging macros - * PROGRAMMER: - * UPDATE HISTORY: - * - */ - -/* - * NOTE: Define NDEBUG before including this header to disable debugging - * macros - */ - -#ifndef __MSVCRT_DEBUG -#define __MSVCRT_DEBUG - -#include -#include - -#if 0 -#ifdef NDEBUG -#undef NDEBUG -#endif -#endif - -#ifdef DBG -#define DPRINT1(args...) do { DbgPrint("(MSVCRT:%s:%d) ",__FILE__,__LINE__); DbgPrint(args); } while(0); -#define CHECKPOINT1 do { DbgPrint("MSVCRT:%s:%d\n",__FILE__,__LINE__); } while(0); -#else -#ifdef __GNUC__ -#define DPRINT1(args...) -#else -#define DPRINT DbgPrint -#endif -#define CHECKPOINT1 -#endif - -#if !defined(NDEBUG) && defined(DBG) -#define DPRINT(args...) do { DbgPrint("(MSVCRT:%s:%d) ",__FILE__,__LINE__); DbgPrint(args); } while(0); -#define CHECKPOINT do { DbgPrint("MSVCRT:%s:%d\n",__FILE__,__LINE__); } while(0); -#else -#ifdef __GNUC__ -#define DPRINT(args...) -#else -#define DPRINT DbgPrint -#endif -#define CHECKPOINT -#endif /* NDEBUG */ - -/* ULONG CDECL DbgPrint(PCH Format, ...); */ -ULONG DbgPrint(PCH Format,...); -/* unsigned long DbgPrint(const char* Format, ...); */ - - - -/* #define TRACE 0 ? (void)0 : Trace */ - -/* void Trace(TCHAR* lpszFormat, ...); */ - - - -#endif /* __MSVCRT_DEBUG */ diff --git a/reactos/include/msvcrt/process.h b/reactos/include/msvcrt/process.h deleted file mode 100644 index 1dc2d4751a3..00000000000 --- a/reactos/include/msvcrt/process.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * process.h - * - * Function calls for spawning child processes. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* changed second argument of cwait from nPID to hProc */ - -#ifndef __STRICT_ANSI__ - -#ifndef _PROCESS_H_ -#define _PROCESS_H_ - -/* - * 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 */ - - -#ifdef __cplusplus -extern "C" { -#endif - -void _cexit(void); -void _c_exit(void); - -int _cwait (int* pnStatus, int hProc, int nAction); - -int _getpid(void); - -int _execl (const char* szPath, const char* szArgv0, ...); -int _execle (const char* szPath, const char* szArgv0, ...); -int _execlp (const char* szPath, const char* szArgv0, ...); -int _execlpe (const char* szPath, const char* szArgv0, ...); -int _execv (const char* szPath, char* const* szaArgv); -int _execve (const char* szPath, char* const* szaArgv, char* const* szaEnv); -int _execvp (const char* szPath, char* const* szaArgv); -int _execvpe (const char* szPath, char* const* szaArgv, char* const* szaEnv); - -int _spawnl (int nMode, const char* szPath, const char* szArgv0, ...); -int _spawnle (int nMode, const char* szPath, const char* szArgv0,...); -int _spawnlp (int nMode, const char* szPath, const char* szArgv0,...); -int _spawnlpe (int nMode, const char* szPath, const char* szArgv0,...); -int _spawnv (int nMode, const char* szPath, char* const* szaArgv); -int _spawnve (int nMode, const char* szPath, char* const* szaArgv, char* const* szaEnv); -int _spawnvp (int nMode, const char* szPath, char* const* szaArgv); -int _spawnvpe (int nMode, const char* szPath, char* const* szaArgv, char* const* szaEnv); -/* - * 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. - */ -unsigned long - _beginthread(void (__cdecl *pfuncStart)(void*), - unsigned unStackSize, void* pArgList); -void _endthread (void); - -#ifdef __MSVCRT__ -unsigned long - _beginthreadex(void* pSecurity, unsigned unStackSize, - unsigned (__stdcall *pfuncStart)(void*), void* pArgList, - unsigned unInitFlags, unsigned* pThreadAddr); -void _endthreadex(unsigned unExitCode); -#endif - - -void* _loaddll(char* name); -int _unloaddll(void* handle); - -unsigned long __threadid(void); -#define _threadid __threadid() -void* __threadhandle(void); - - -#ifndef _NO_OLDNAMES - -#define cwait _cwait -#define getpid _getpid -#define execl _execl -#define execle _execle -#define execlp _execlp -#define execlpe _execlpe - -#define execv _execv -#define execve _execve -#define execvp _execvp -#define execvpe _execvpe - -#define spawnl _spawnl -#define spawnle _spawnle -#define spawnlp _spawnlp -#define spawnlpe _spawnlpe - -#define spawnv _spawnv -#define spawnve _spawnve -#define spawnvp _spawnvp -#define spawnvpe _spawnvpe - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* _PROCESS_H_ not defined */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/reactos/include/msvcrt/search.h b/reactos/include/msvcrt/search.h deleted file mode 100644 index 054f8648a32..00000000000 --- a/reactos/include/msvcrt/search.h +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef _SEARCH_H_ -#define _SEARCH_H_ - -/* - *char *key - *void *data - *enum { FIND, ENTER } ACTION; - *enum { preorder, postorder, endorder, leaf } VISIT; - */ - -#include -#include - - -/* The Single UNIX ® Specification, Version 2 Copyright © 1997 The Open Group */ - -/* - *int hcreate(size_t); - *void hdestroy(void); - *ENTRY *hsearch(ENTRY, ACTION); - *void insque(void *, void *); - */ -void *_lfind(const void *, const void *, size_t *, - size_t, int (*)(const void *, const void *)); -void *_lsearch(const void *, void *, size_t *, - size_t, int (*)(const void *, const void *)); -/* - *void remque(void *); - *void *tdelete(const void *, void **, - * int(*)(const void *, const void *)); - *void *tfind(const void *, void *const *, - * int(*)(const void *, const void *)); - *void *tsearch(const void *, void **, - * int(*)(const void *, const void *)); - *void twalk(const void *, - * void (*)(const void *, VISIT, int )); -*/ -#endif diff --git a/reactos/include/msvcrt/share.h b/reactos/include/msvcrt/share.h deleted file mode 100644 index ded54f26be6..00000000000 --- a/reactos/include/msvcrt/share.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * share.h - * - * Constants for file sharing functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _SHARE_H_ -#define _SHARE_H_ - - -#define SH_COMPAT 0x0000 -#define SH_DENYRW 0x0010 -#define SH_DENYWR 0x0020 -#define SH_DENYRD 0x0030 -#define SH_DENYNO 0x0040 - -#define _SH_COMPAT SH_COMPAT -#define _SH_DENYRW SH_DENYRW -#define _SH_DENYWR SH_DENYWR -#define _SH_DENYRD SH_DENYRD -#define _SH_DENYNO SH_DENYNO - - -#endif /* Not _SHARE_H_ */ diff --git a/reactos/include/msvcrt/signal.h b/reactos/include/msvcrt/signal.h deleted file mode 100644 index b18655f3ebd..00000000000 --- a/reactos/include/msvcrt/signal.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * signal.h - * - * A way to set handlers for exceptional conditions (also known as signals). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ -/* added some extra signal constants */ -#ifndef _SIGNAL_H_ -#define _SIGNAL_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 SIGALRM 293 -#define SIGHUP 294 -/* SIGINT is ansi */ -#define SIGKILL 296 -#define SIGPIPE 297 -#define SIGQUIT 298 -#define SIGUSR1 299 -#define SIGUSR2 300 - -#define SIGNOFP 301 -#define SIGTRAP 302 -#define SIGTIMR 303 /* Internal for setitimer (SIGALRM, SIGPROF) */ -#define SIGPROF 304 -#define SIGMAX 320 - -/* - * 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), or indicate an error return (SIG_ERR). - */ -#define SIG_DFL ((_p_sig_fn_t) 0) -#define SIG_IGN ((_p_sig_fn_t) 1) -#define SIG_ERR ((_p_sig_fn_t) -1) - -#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. - */ -_p_sig_fn_t signal(int sig, _p_sig_fn_t func); - -/* - * Raise the signal indicated by sig. Returns non-zero on success. - */ -int raise(int); - -#ifdef __cplusplus -} -#endif - -#endif /* Not _SIGNAL_H_ */ diff --git a/reactos/include/msvcrt/stdarg.h b/reactos/include/msvcrt/stdarg.h deleted file mode 100644 index a3615ab3c83..00000000000 --- a/reactos/include/msvcrt/stdarg.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * stdarg.h - * - * Provides facilities for stepping through a list of function arguments of - * an unknown number and type. - * - * NOTE: Gcc should provide stdarg.h, and I believe their version will work - * with crtdll. If necessary I think you can replace this with the GCC - * stdarg.h (or is it vararg.h). - * - * Note that the type used in va_arg is supposed to match the actual type - * *after default promotions*. Thus, va_arg (..., short) is not valid. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.5 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ - -#ifndef _STDARG_H_ -#define _STDARG_H_ - -/* - * Don't do any of this stuff for the resource compiler. - */ -#ifndef RC_INVOKED - -/* - * I was told that Win NT likes this. - */ -#ifndef _VA_LIST_DEFINED -#define _VA_LIST_DEFINED -#endif - -#ifndef _VA_LIST -#define _VA_LIST -typedef char* va_list; -#endif - - -/* - * Amount of space required in an argument list (ie. the stack) for an - * argument of type t. - */ -#define __va_argsiz(t) \ - (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) - - -/* - * Start variable argument list processing by setting AP to point to the - * argument after pN. - */ -#ifdef __GNUC__ -/* - * In GNU the stack is not necessarily arranged very neatly in order to - * pack shorts and such into a smaller argument list. Fortunately a - * neatly arranged version is available through the use of __builtin_next_arg. - */ -#ifndef va_start -#define va_start(ap, pN) \ - ((ap) = ((va_list) __builtin_next_arg(pN))) -#endif -#else -/* - * For a simple minded compiler this should work (it works in GNU too for - * vararg lists that don't follow shorts and such). - */ -#ifndef va_start -#define va_start(ap, pN) \ - ((ap) = ((va_list) (&pN) + __va_argsiz(pN))) -#endif -#endif - - -/* - * End processing of variable argument list. In this case we do nothing. - */ -#ifndef va_end -#define va_end(ap) ((void)0) -#endif - - -/* - * Increment ap to the next argument in the list while returing a - * pointer to what ap pointed to first, which is of type t. - * - * We cast to void* and then to t* because this avoids a warning about - * increasing the alignment requirement. - */ - -#ifndef va_arg -#define va_arg(ap, t) \ - (((ap) = (ap) + __va_argsiz(t)), \ - *((t*) (void*) ((ap) - __va_argsiz(t)))) -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* not _STDARG_H_ */ diff --git a/reactos/include/msvcrt/stddef.h b/reactos/include/msvcrt/stddef.h deleted file mode 100644 index 6a3e3df7c73..00000000000 --- a/reactos/include/msvcrt/stddef.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * stddef.h - * - * Standard type definitions provided by the C library. - * - * NOTE: Actually supplied by the compiler (correct?). As such, GCC - * supplies a version of this header file. Unfortunately, GCC's - * version is all tied up with the way other headers for the - * GNU C library are implemented (or vice-versa), in a similar - * way to how the other Mingw32 headers are dependent on - * certain internals of this file. It is not clear to me whether - * you can safely use the GCC version in place of this version. - * TODO: Line up usage in other header files to work with GCC - * stddef.h. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.7 $ - * $Author$ - * $Date$ - * - */ - - -#ifndef __MSVCRT_STDDEF_H_ - -/* - * Any one of these symbols __need_* means that a standard header file - * wants us just to define one data type. So don't define - * the symbols that indicate this file's entire job has been done. - */ -#if (!defined(__need_wchar_t) && !defined(__need_wint_t) \ - && !defined(__need_size_t) && !defined(__need_ptrdiff_t) \ - && !defined(__need_NULL)) -#define __MSVCRT_STDDEF_H_ -#endif - -/* - * NOTE: The following typedefs are done using __xxx_TYPE__ defines followed - * by typedefs using those defines. I have chosen to do it this way because - * GCC supplies definitions for __xxx_TYPE__ macros and if, for example, your - * size_t is typedef'ed differently from what GCC expects it will give you - * warnings when you prototype functions like memcmp and memcpy. The values - * for __xxx_TYPE__ in this header file are the same as those given by GCC. - * Those values appear to work with the MSVCRT functions. - */ - -/* - * Signed type of difference of two pointers. - */ - -/* Define this type if we are doing the whole job, or if we want this type - * in particular. */ -#if defined (__MSVCRT_STDDEF_H_) || defined (__need_ptrdiff_t) - -#ifndef _PTRDIFF_T_ -#define _PTRDIFF_T_ -#ifndef __PTRDIFF_TYPE__ -#define __PTRDIFF_TYPE__ int -#endif -typedef __PTRDIFF_TYPE__ ptrdiff_t; -#endif - -/* If this symbol has done its job, get rid of it. */ -#undef __need_ptrdiff_t - -#endif /* __MSVCRT_STDDEF_H_ or __need_ptrdiff_t. */ - -/* - * Unsigned type of `sizeof' something. - */ - - -/* Define this type if we are doing the whole job, - * or if we want this type in particular. */ -#if defined (__MSVCRT_STDDEF_H_) || defined (__need_size_t) - -#ifndef _SIZE_T_ -#define _SIZE_T_ -#define SIZE_T_DEFINED -#define _SIZE_T -#ifndef __SIZE_TYPE__ -#define __SIZE_TYPE__ unsigned int -#endif -typedef __SIZE_TYPE__ size_t; -#endif - -#undef __need_size_t - -#endif /* __MSVCRT_STDDEF_H_ or __need_size_t. */ - -/* Wide character type. - Locale-writers should change this as necessary to - be big enough to hold unique values not between 0 and 127, - and not (wchar_t) -1, for each defined multibyte character. */ - -/* Define this type if we are doing the whole job, - or if we want this type in particular. */ -#if defined (__MSVCRT_STDDEF_H_) || defined (__need_wchar_t) - -#ifndef _WCHAR_T_ -#define _WCHAR_T_ -#define _WCHAR_T -#define _WCHAR_T_DEFINED -#ifndef __WCHAR_TYPE__ -#define __WCHAR_TYPE__ short unsigned int -#endif -#ifndef __cplusplus -typedef __WCHAR_TYPE__ wchar_t; -#endif /* C++ */ -#endif /* wchar_t not already defined */ - -#undef __need_wchar_t - -#endif /* __MSVCRT_STDDEF_H_ or __need_wchar_t. */ - -/* - * wint_t, the equivalent of int in wchar ctype functions. - */ -#if defined (__MSVCRT_STDDEF_H_) || defined (__need_wint_t) - -#if ! defined(_WINT_T_) && ! defined(_WINT_T) -#define _WINT_T_ -#define _WINT_T /* To satisfy libstdc++ */ -#ifndef __WINT_TYPE__ -#define __WINT_TYPE__ short int -#endif /* Not defined __WINT_TYPE__ */ - -typedef __WINT_TYPE__ wint_t; -#endif /* Not defined _WINT_T_ */ - -#undef __need_wint_t - -#endif /* __MSVCRT_STDDEF_H_ or __need_wint_t. */ - - -/* - * A null pointer constant. - */ - -#if defined (__MSVCRT_STDDEF_H_) || defined (__need_NULL) - -#undef NULL -#ifdef __cplusplus -#define NULL (0) -#else -#define NULL ((void *)0) -#endif -#endif /* __MSVCRT_STDDEF_H_ or __need_NULL */ - -#undef __need_NULL - - -/* - * Offsetof, a macro for finding the offset of a member in a structure. - * Works by returning the 'address' of the MEMBER of a TYPE struct at address - * zero. - */ - -#if defined (__MSVCRT_STDDEF_H_) -#define offsetof(TYPE, MEMBER) ((size_t) &( ((TYPE *) 0)->MEMBER )) -#endif /* __MSVCRT_STDDEF_H_ */ - - -#endif /* not __MSVCRT_STDDEF_H_ */ diff --git a/reactos/include/msvcrt/stdio.h b/reactos/include/msvcrt/stdio.h deleted file mode 100644 index 83d10ce5de2..00000000000 --- a/reactos/include/msvcrt/stdio.h +++ /dev/null @@ -1,375 +0,0 @@ -/* - * stdio.h - * - * 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 path separator. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.8 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* implemented clearerr feof ferror perror as macros */ -/* added _IOCOMMIT */ -/* added filbuf and flsbuf and fwalk */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define __need_size_t -#define __need_NULL -#define __need_wchar_t -#define __need_wint_t -#include - - -#define _IOREAD 0x0001 -#define _IOWRT 0x0002 -#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 */ - -#define _IOBINARY 0x040000 -#define _IOTEXT 0x000000 - -#define _IOCOMMIT 0x100000 - -#define _IODIRTY 0x010000 -#define _IOAHEAD 0x020000 - - - - -/* - * I used to include stdarg.h at this point, in order to allow for the - * functions later on in the file which use va_list. That conflicts with - * using stdio.h and varargs.h in the same file, so I do the typedef myself. - */ -/* - *#ifndef _VA_LIST - *#define _VA_LIST - *typedef char* va_list; - *#endif - */ -#include - -/* - * FILE should be used as a pointer to an opaque data type. Do not rely on - * anything else, especially the size or contents of this structure! - */ -#ifndef _FILE_DEFINED -typedef struct { - char* _ptr; - int _cnt; - char* _base; - int _flag; - int _file; - int _ungotchar; - int _bufsiz; - char* _name_to_remove; -} FILE; -#define _FILE_DEFINED -#endif - -//#define _fillsize _bufsiz - -/* - * The three standard file pointers provided by the run time library. - * NOTE: These will go to the bit-bucket silently in GUI applications! - */ -extern FILE _iob[]; /* an array of FILE */ -#define stdin (&_iob[0]) -#define stdout (&_iob[1]) -#define stderr (&_iob[2]) -#define stdaux (&_iob[3]) -#define stdprn (&_iob[4]) - -/* 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. - * - * NOTE: This is used in the structure _finddata_t (see dir.h) so changing it - * is probably not a good idea. - */ -#define FILENAME_MAX (260) - -/* - * 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) - -/* - * File Operations - */ -FILE* fopen(const char* szFileName, const char* szMode); -FILE* freopen(const char* szNewFileName, const char* szNewMode, FILE* fileChangeAssociation); -int fflush(FILE* fileFlush); -int fclose(FILE* fileClose); -#define fcloseall _fcloseall -int remove(const char* szFileName); -int rename(const char* szOldFileName, const char* szNewFileName); -FILE* tmpfile(void); - -FILE* _fdopen(int handle, char *mode); -FILE* _wfdopen(int handle, wchar_t *mode); -FILE* _wfopen(const wchar_t *file, const wchar_t *mode); -FILE* _wfreopen(const wchar_t *file, const wchar_t *mode, FILE *f); -FILE* _fsopen(const char *file, const char *mode, int shflag); -FILE* _wfsopen(const wchar_t *file, const wchar_t *mode, int shflag); -int _wremove(const wchar_t* szFileName); -int _wrename(const wchar_t *oldName, const wchar_t *newName); - -int _filbuf(FILE* f); -int _flsbuf(int c, FILE* f); -void _fwalk(void (*func)(FILE*)); // not exported -int _fcloseall(void); - -/* - * The maximum size of name (including NUL) that will be put in the user - * supplied buffer caName. - * NOTE: This has not been determined by experiment, but based on the - * maximum file name length above it is probably reasonable. I could be - * wrong... - */ -#define L_tmpnam (260) - -char* tmpnam(char caName[]); -char* _tempnam(const char *szDir, const char *szPfx); - -wchar_t* _wtmpnam(wchar_t *s); -wchar_t *_wtempnam(const wchar_t *dir,const wchar_t *prefix); - -#ifndef _NO_OLDNAMES -#define tempnam _tempnam -#endif /* Not _NO_OLDNAMES */ - -/* - * The three possible buffering mode (nMode) values for setvbuf. - * NOTE: _IOFBF works, but _IOLBF seems to work like unbuffered... - * maybe I'm testing it wrong? - */ -#define _IOFBF 0x0000 /* full buffered */ -#define _IOLBF 0x0040 /* line buffered */ -#define _IONBF 0x0004 /* not buffered */ - -#define _IO_LBF 0x80000 /* this value is used insteat of _IOLBF within the - structure FILE as value for _flags, - because _IOLBF has the same value as _IOSTRG */ - -int setvbuf(FILE* fileSetBuffer, char* caBuffer, int nMode, size_t sizeBuffer); - -/* - * The buffer size as used by setbuf such that it is equivalent to - * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ). - */ -#define BUFSIZ 512 - -void setbuf(FILE* fileSetBuffer, char* caBuffer); - -/* - * Pipe Operations - */ - -int _pclose(FILE* pipeClose); -FILE* _popen(const char* szPipeName, const char* szMode); -FILE* _wpopen(const wchar_t *cm, const wchar_t *md); - -#define popen _popen -#define pclose _pclose - -/* Wide character version */ -FILE* _wpopen(const wchar_t* szPipeName, const wchar_t* szMode); - -/* - * Formatted Output - */ - -int fprintf(FILE* filePrintTo, const char* szFormat, ...); -int printf(const char* szFormat, ...); -int sprintf(char* caBuffer, const char* szFormat, ...); -int _snprintf(char*, size_t, const char*, ...); -int vfprintf(FILE* filePrintTo, const char* szFormat, va_list varg); -int vprintf(const char* szFormat, va_list varg); -int vsprintf(char* caBuffer, const char* szFormat, va_list varg); -int _vsnprintf(char* caBuffer, size_t cnt, const char* szFormat, va_list varg); -int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list); - -/* Wide character versions */ -int fwprintf(FILE* filePrintTo, const wchar_t* wsFormat, ...); -int wprintf(const wchar_t* wsFormat, ...); -int swprintf(wchar_t* wcaBuffer, const wchar_t* wsFormat, ...); -int vfwprintf(FILE* filePrintTo, const wchar_t* wsFormat, va_list varg); -int vwprintf(const wchar_t* wsFormat, va_list varg); -int vswprintf(wchar_t* wcaBuffer, const wchar_t* wsFormat, va_list varg); - -/* - * Formatted Input - */ - -int fscanf(FILE* fileReadFrom, const char* szFormat, ...); -int scanf(const char* szFormat, ...); -int sscanf(const char* szReadFrom, const char* szFormat, ...); - -/* Wide character versions */ -int fwscanf(FILE* fileReadFrom, const wchar_t* wsFormat, ...); -int wscanf(const wchar_t* wsFormat, ...); -int swscanf(const wchar_t* wsReadFrom, const wchar_t* wsFormat, ...); - -/* - * Character Input and Output Functions - */ - -int fgetc(FILE* fileRead); -char* fgets(char* caBuffer, int nBufferSize, FILE* fileRead); -int fputc(int c, FILE* fileWrite); -int fputs(const char* szOutput, FILE* fileWrite); -int getc(FILE* fileRead); -int getchar(void); -char* gets(char* caBuffer); /* Unsafe: how does gets know how long the buffer is? */ -int putc(int c, FILE* fileWrite); -int putchar(int c); -int puts(const char* szOutput); -int ungetc(int c, FILE* fileWasRead); - -/* Wide character versions */ -wint_t fgetwc(FILE* fileRead); -wint_t fputwc(wchar_t wc, FILE* fileWrite); -wint_t getwc(FILE *fileRead); // not exported from crtdll - -/* TODO: check type wint_t, why doesn't compare to WEOF correctly ??? */ -/* wint_t putwc(wint_t wc, FILE* fileWrite); */ -int putwc(wint_t wc, FILE* fileWrite); - -wint_t putwchar(wint_t c); -int _putws(const wchar_t* ws); - -wint_t ungetwc(wchar_t wc, FILE* fileWasRead); - -wint_t _filwbuf(FILE *f); -wint_t _flswbuf(wchar_t c, FILE *f); - -/* - * Not exported by CRTDLL.DLL included for reference purposes. - */ -#if 0 -wchar_t* fgetws(wchar_t* wcaBuffer, int nBufferSize, FILE* fileRead); -int fputws(const wchar_t* wsOutput, FILE* fileWrite); -int getwc(FILE* fileRead); -int getwchar(); -wchar_t* getws(wchar_t* wcaBuffer); -#endif /* 0 */ - -/* NOTE: putchar has no wide char equivalent even in tchar.h */ - -/* - * Direct Input and Output Functions - */ - -size_t fread(void* pBuffer, size_t sizeObject, size_t sizeObjCount, FILE* fileRead); -size_t fwrite(const void* pObjArray, size_t sizeObject, size_t sizeObjCount, FILE* fileWrite); - -/* - * File Positioning Functions - */ - -/* Constants for nOrigin indicating the position relative to which fseek - * sets the file position. Enclosed in ifdefs because io.h could also - * define them. (Though not anymore since io.h includes this file now.) */ -#ifndef SEEK_SET -#define SEEK_SET (0) -#endif - -#ifndef SEEK_CUR -#define SEEK_CUR (1) -#endif - -#ifndef SEEK_END -#define SEEK_END (2) -#endif - -int fseek(FILE* fileSetPosition, long lnOffset, int nOrigin); -long ftell(FILE* fileGetPosition); -void rewind(FILE* fileRewind); - -/* - * 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. - */ -typedef long long fpos_t; - -int fgetpos(FILE* fileGetPosition, fpos_t* pfpos); -int fsetpos(FILE* fileSetPosition, const fpos_t* pfpos); - -/* - * Error Functions - */ -#if 0 -void clearerr(FILE* fileClearErrors); -int feof(FILE* fileIsAtEnd); -int ferror(FILE* fileIsError); -void perror(const char* szErrorMessage); -#endif - -void _wperror(const wchar_t *s); - -#define clearerr(f) (((f)->_flag) &= ~(_IOERR|_IOEOF)) -#define feof(f) (((f)->_flag&_IOEOF)!=0) -/* #define ferror(f) (((f)->_flag&_IOERR)!=0) */ -int ferror(FILE* fileIsError); -#define perror(s) (fprintf(stderr, "%s: %s\n", (s), _strerror(NULL))) - -/* - * Non ANSI functions - */ - -#ifndef __STRICT_ANSI__ -int _fgetchar(void); -int _fputchar(int c); -FILE* _fdopen(int nHandle, char* szMode); - -#ifndef _NO_OLDNAMES -#define fgetchar _fgetchar -#define fputchar _fputchar -#define fdopen _fdopen -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _STDIO_H_ */ diff --git a/reactos/include/msvcrt/stdlib.h b/reactos/include/msvcrt/stdlib.h deleted file mode 100644 index 0afcf7a4a3f..00000000000 --- a/reactos/include/msvcrt/stdlib.h +++ /dev/null @@ -1,248 +0,0 @@ -/* - * stdlib.h - * - * Definitions for common types, variables, and functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.7 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* added splitpath */ -/* changed definition of environ and argc */ -/* moved prototype for swab from string.h to stdlib.h */ -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#include - -/* - * RAND_MAX is the maximum value that may be returned by rand. - * The minimum is zero. - */ -#define RAND_MAX 0x7FFF - -#ifndef _MAX_PATH -#define _MAX_DRIVE 3 -#define _MAX_FNAME 256 -#define _MAX_DIR _MAX_FNAME -#define _MAX_EXT _MAX_FNAME -#define _MAX_PATH 260 -#endif - -/* - * These values may be used as exit status codes. - */ -#define EXIT_SUCCESS 0 -#define EXIT_FAILURE -1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 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_dll; -extern char*** __argv_dll; -extern char*** _environ_dll; - -#define __argc (*__argc_dll) -#define __argv (*__argv_dll) -#define _environ (*_environ_dll) - - -#include - -#ifndef __ATTRIB_NORETURN -#ifdef __GNUC__ -#define _ATTRIB_NORETURN __attribute__ ((noreturn)) -#ifndef __int64 -#define __int64 long long -#endif /* Not __int64 */ -#else /* Not __GNUC__ */ -#define _ATTRIB_NORETURN -#endif /* __GNUC__ */ -#endif - -double atof(const char* szNumber); -int atoi(const char* szNumber); -long atol(const char* szNumber); - -double strtod(const char* szNumber, char** pszAfterNumber); -double wcstod(const wchar_t* wsNumber, wchar_t** pwsAfterNumber); -long strtol(const char* szNumber, char** pszAfterNumber, int nBase); -long wcstol(const wchar_t* wsNumber, wchar_t** pwsAfterNumber, int nBase); - -unsigned long strtoul(const char* szNumber, char** pszAfterNumber, int nBase); -unsigned long wcstoul(const wchar_t* wsNumber, wchar_t** pwsAfterNumber, int nBase); - -size_t wcstombs(char* mbsDest, const wchar_t* wsConvert, size_t size); -int wctomb(char* mbDest, wchar_t wc); -int mblen(const char* mbs, size_t sizeString); -size_t mbstowcs(wchar_t* wcaDest, const char* mbsConvert, size_t size); -int mbtowc(wchar_t* wcDest, const char* mbConvert, size_t size); - -int rand(void); -void srand(unsigned int nSeed); - -void* calloc(size_t sizeObjCnt, size_t sizeObject); -void* malloc(size_t sizeObject); -void* realloc(void* pObject, size_t sizeNew); -void free(void* pObject); - -void abort(void) _ATTRIB_NORETURN; -void exit(int nStatus) _ATTRIB_NORETURN; -int atexit(void (*pfuncExitProcessing)(void)); - -int system(const char* szCommand); // impl in process -char* getenv(const char* szVarName); // impl in stdio ??? -wchar_t* _wgetenv(const wchar_t* szVarName); - -typedef int (*_pfunccmp_t)(const void*, const void*); - -void* bsearch(const void* pKey, const void* pBase, size_t cntObjects, size_t sizeObject, _pfunccmp_t pfuncCmp); -void qsort(const void* pBase, size_t cntObjects, size_t sizeObject, _pfunccmp_t pfuncCmp); - -int abs(int n); -long labs(long n); - -/* - * 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; - -#ifdef __GNUC__ // robd -typedef struct { long long quot, rem; } lldiv_t; -#else -typedef struct { double quot, rem; } lldiv_t; -#endif - -div_t div(int nNumerator, int nDenominator); -ldiv_t ldiv(long lNumerator, long lDenominator); - -#ifdef __GNUC__ // robd -lldiv_t lldiv(long long lNumerator, long long lDenominator); -#else -lldiv_t lldiv(double lNumerator, double lDenominator); -#endif - - -#ifndef __STRICT_ANSI__ - -/* - * NOTE: Officially the three following functions are obsolete. The Win32 API - * functions SetErrorMode, Beep and Sleep are their replacements. - */ -void _beep(unsigned int, unsigned int); -void _seterrormode(int nMode); -void _sleep(unsigned long ulTime); - -void _exit(int nStatus) _ATTRIB_NORETURN; - -int _putenv(const char *val); -void _searchenv(const char *file, const char *var, char *path); -void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext); -void _wsplitpath(const wchar_t* path, wchar_t* drive, wchar_t* dir, wchar_t* fname, wchar_t* ext); - -char* _itoa(int nValue, char* sz, int nRadix); -char* _ltoa(long lnValue, char* sz, int nRadix); - -int _wputenv(const wchar_t *val); -void _wsearchenv(const wchar_t *file, const wchar_t *var, wchar_t *path); -void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext); -void _wmakepath(wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext); -wchar_t* _wfullpath(wchar_t *absPath, const wchar_t *relPath, size_t maxLength); -char* _i64toa(__int64 value, char *string, int radix); -char* _ultoa(unsigned long value, char *string, int radix); -char* _ui64toa(unsigned __int64 value, char *string, int radix); - -wchar_t* _itow(int nValue, wchar_t* sz, int nRadix); -wchar_t* _i64tow(__int64 value, wchar_t *string, int radix); -wchar_t* _ltow(long lnValue, wchar_t* sz, int nRadix); -wchar_t* _ultow(unsigned long value, wchar_t *string, int radix); -wchar_t* _ui64tow(unsigned __int64 value, wchar_t *string, int radix); -__int64 _atoi64(const char *szNumber); -int _wtoi(const wchar_t *str); -__int64 _wtoi64(const wchar_t *str); -long _wtol(const wchar_t *str); - -char* _ecvt(double dValue, int nDig, int* pnDec, int* pnSign); -char* _fcvt(double dValue, int nDig, int* pnDec, int* pnSign); -char* _gcvt(double dValue, int nDec, char* caBuf); -char* _fullpath(char* caBuf, const char* szPath, size_t sizeMax); -void _swab(const char* caFrom, char* caTo, size_t sizeToCopy); - -unsigned int _rotl(unsigned int value, int shift); -unsigned int _rotr(unsigned int value, int shift); -unsigned long _lrotl(unsigned long value, int shift); -unsigned long _lrotr(unsigned long value, int shift); - - -#ifndef _NO_OLDNAMES -#define beep _beep -#define seterrormode _seterrormode -#define sleep _sleep -#define putenv _putenv -#define searchenv _searchenv -#define splitpath _splitpath -#define itoa _itoa -#define ltoa _ltoa -#define ecvt _ecvt -#define fcvt _fcvt -#define gcvt _gcvt -#define swab _swab -#endif /* Not _NO_OLDNAMES */ - - -#endif /* Not __STRICT_ANSI__ */ - -/* - * Undefine the no return attribute used in some function definitions - */ -#undef _ATTRIB_NORETURN - -#ifndef _DISABLE_TIDENTS -#ifdef UNICODE -#define _tsplitpath _wsplitpath -#define _tmakepath _wmakepath -#else -#define _tsplitpath _splitpath -#define _tmakepath _makepath -#endif -#endif /* _DISABLE_TIDENTS */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not _STDLIB_H_ */ - diff --git a/reactos/include/msvcrt/string.h b/reactos/include/msvcrt/string.h deleted file mode 100644 index 86d43599e59..00000000000 --- a/reactos/include/msvcrt/string.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - * string.h - * - * Definitions for memory and string functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.7 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -/* changed prototype for _strerror */ -/* moved prototype for swab from string.h to stdlib.h */ - - -#ifndef _STRING_H_ -#define _STRING_H_ - - -/* - * Define size_t, wchar_t and NULL - */ -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#include -#include <_mingw.h> - -#ifdef __cplusplus -extern "C" { -#endif - -char * ___strtok; /* removed extern specifier 02-06-98, BD */ - -/* - * Prototypes of the ANSI Standard C library string functions. - */ -void* memchr(const void* p, int cSearchFor, size_t sizeSearch); -int memcmp(const void* p1, const void* p2, size_t sizeSearch); -void* memcpy(void* pCopyTo, const void* pSource, size_t sizeSource); -void* memmove(void* pMoveTo, const void* pSource, size_t sizeSource); -void* memset(void* p, int cFill, size_t sizeRepeatCount); -char* strcat(char* szAddTo, const char* szAdd); -char* strchr(const char* szSearch, int cFor); -int strcmp(const char* sz1, const char* sz2); -int strcoll(const char* sz1, const char* sz2); /* Compare using locale */ -char* strcpy(char* szCopyTo, const char* szSource); -size_t strcspn(const char* szGetPrefix, const char* szNotIncluding); -char* strerror(int nError); /* NOTE: NOT an old name wrapper. */ -char * _strerror(const char *s); -size_t strlen(const char* sz); -size_t strnlen(const char* sz, size_t count); /* not exported */ -char* strncat(char* szAddTo, const char* szAdd, size_t sizeMaxAdd); -int strncmp(const char* sz1, const char* sz2, size_t sizeMaxCompare); -char* strncpy(char* szCopyTo, const char* szSource, size_t sizeMaxCopy); -char* strpbrk(const char* szSearch, const char* szAnyOf); -char* strrchr(const char* szSearch, int cFor); -size_t strspn(const char* szGetPrefix, const char *szIncluding); -char* strstr(const char* szSearch, const char *szFor); -char* strtok(char* szTokenize, const char* szDelimiters); -size_t strxfrm(char* szTransformed, const char *szSource, size_t sizeTransform); - -#ifndef __STRICT_ANSI__ -/* - * Extra non-ANSI functions provided by the CRTDLL library - */ -void* _memccpy(void* pCopyTo, const void* pSource, int cTerminator, size_t sizeMaxCopy); -int _memicmp(const void* p1, const void* p2, size_t sizeSearch); -char* _strdup(const char *szDuplicate); -int _strcmpi(const char* sz1, const char* sz2); -int _stricmp(const char* sz1, const char* sz2); -int _stricoll(const char* sz1, const char* sz2); -char* _strlwr(char* szToConvert); -int _strnicmp(const char* sz1, const char* sz2, size_t sizeMaxCompare); -char* _strnset(char* szToFill, int cFill, size_t sizeMaxFill); -char* _strrev(char* szToReverse); -char* _strset(char* szToFill, int cFill); -char* _strupr(char* szToConvert); - -#endif /* Not __STRICT_ANSI__ */ - - -/* - * Unicode versions of the standard calls. - */ -wchar_t* wcscat(wchar_t* wsAddTo, const wchar_t* wsAdd); -wchar_t* wcschr(const wchar_t* wsSearch, wchar_t wcFor); -int wcscmp(const wchar_t* ws1, const wchar_t* ws2); -int wcscoll(const wchar_t* ws1, const wchar_t* ws2); -wchar_t* wcscpy(wchar_t* wsCopyTo, const wchar_t* wsSource); -size_t wcscspn(const wchar_t* wsGetPrefix, const wchar_t* wsNotIncluding); -/* Note: No wcserror in CRTDLL. */ -size_t wcslen(const wchar_t* ws); -wchar_t* wcsncat(wchar_t* wsAddTo, const wchar_t* wsAdd, size_t sizeMaxAdd); -int wcsncmp(const wchar_t* ws1, const wchar_t* ws2, size_t sizeMaxCompare); -wchar_t* wcsncpy(wchar_t* wsCopyTo, const wchar_t* wsSource, size_t sizeMaxCopy); -wchar_t* wcspbrk(const wchar_t* wsSearch, const wchar_t* wsAnyOf); -wchar_t* wcsrchr(const wchar_t* wsSearch, wchar_t wcFor); -size_t wcsspn(const wchar_t* wsGetPrefix, const wchar_t* wsIncluding); -wchar_t* wcsstr(const wchar_t* wsSearch, const wchar_t* wsFor); -wchar_t* wcstok(wchar_t* wsTokenize, const wchar_t* wsDelimiters); -size_t wcsxfrm(wchar_t* wsTransformed, const wchar_t *wsSource, size_t sizeTransform); - - -#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 - -wchar_t* _wcsdup(const wchar_t* wsToDuplicate); -int _wcsicmp(const wchar_t* ws1, const wchar_t* ws2); -int _wcsicoll(const wchar_t* ws1, const wchar_t* ws2); -int _wcsncoll(const wchar_t *s1, const wchar_t *s2, size_t c); -int _wcsnicoll(const wchar_t *s1, const wchar_t *s2, size_t c); -wchar_t* _wcslwr(wchar_t* wsToConvert); -int _wcsnicmp(const wchar_t* ws1, const wchar_t* ws2, size_t sizeMaxCompare); -wchar_t* _wcsnset(wchar_t* wsToFill, wchar_t wcFill, size_t sizeMaxFill); -wchar_t* _wcsrev(wchar_t* wsToReverse); -wchar_t* _wcsset(wchar_t* wsToFill, wchar_t wcToFill); -wchar_t* _wcsupr(wchar_t* wsToConvert); - -#endif /* Not __STRICT_ANSI__ */ - - -#ifndef __STRICT_ANSI__ -#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. - */ - -void* memccpy(void* pCopyTo, const void* pSource, int cTerminator, size_t sizeMaxCopy); -int memicmp(const void* p1, const void* p2, size_t sizeSearch); -#define strdup(szDuplicate) _strdup(szDuplicate) -int strcmpi(const char* sz1, const char* sz2); -int stricmp(const char* sz1, const char* sz2); -int strcasecmp(const char* sz1, const char* sz2); -int stricoll(const char* sz1, const char* sz2); -char* strlwr(char* szToConvert); -int strnicmp(const char* sz1, const char* sz2, size_t sizeMaxCompare); -int strncasecmp(const char* sz1, const char* sz2, size_t sizeMaxCompare); -char* strnset(char* szToFill, int cFill, size_t sizeMaxFill); -char* strrev(char* szToReverse); -char* strset(char* szToFill, int cFill); -char* strupr(char* szToConvert); - - -/* NOTE: There is no _wcscmpi, but this is for compatibility. */ -int wcscmpi(const wchar_t* ws1, const wchar_t* ws2); -#if __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION == 5 -wchar_t* wcsdup(wchar_t* wsToDuplicate); -#else -wchar_t* wcsdup(const wchar_t* wsToDuplicate); -#endif -int wcsicmp(const wchar_t* ws1, const wchar_t* ws2); -int wcsicoll(const wchar_t* ws1, const wchar_t* ws2); -wchar_t* wcslwr(wchar_t* wsToConvert); -int wcsnicmp(const wchar_t* ws1, const wchar_t* ws2, size_t sizeMaxCompare); -wchar_t* wcsnset(wchar_t* wsToFill, wchar_t wcFill, size_t sizeMaxFill); -wchar_t* wcsrev(wchar_t* wsToReverse); -wchar_t* wcsset(wchar_t* wsToFill, wchar_t wcToFill); -wchar_t* wcsupr(wchar_t* wsToConvert); - -#endif /* Not _NO_OLDNAMES */ -#endif /* Not strict ANSI */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _STRING_H_ */ - diff --git a/reactos/include/msvcrt/sys/fcntl.h b/reactos/include/msvcrt/sys/fcntl.h deleted file mode 100644 index 19a67bc4b9e..00000000000 --- a/reactos/include/msvcrt/sys/fcntl.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * This fcntl.h maps to the root fcntl.h - */ -#ifndef __STRICT_ANSI__ -#include -#endif diff --git a/reactos/include/msvcrt/sys/file.h b/reactos/include/msvcrt/sys/file.h deleted file mode 100644 index 9b8cc980572..00000000000 --- a/reactos/include/msvcrt/sys/file.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * This file.h maps to the root fcntl.h - * TODO? - */ -#ifndef __STRICT_ANSI__ -#include -#endif diff --git a/reactos/include/msvcrt/sys/locking.h b/reactos/include/msvcrt/sys/locking.h deleted file mode 100644 index 31bc4ebd9f5..00000000000 --- a/reactos/include/msvcrt/sys/locking.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * locking.h - * - * Constants for the mode parameter of the locking function. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _LOCKING_H_ -#define _LOCKING_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_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/sys/stat.h b/reactos/include/msvcrt/sys/stat.h deleted file mode 100644 index 904a83622d5..00000000000 --- a/reactos/include/msvcrt/sys/stat.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * stat.h - * - * Symbolic constants for opening and creating files, also stat, fstat and - * chmod functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.7 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _STAT_H_ -#define _STAT_H_ - -#include - - -#ifndef _WCHAR_T_ -#define _WCHAR_T_ -#define _WCHAR_T -#define _WCHAR_T_DEFINED -#ifndef __WCHAR_TYPE__ -#define __WCHAR_TYPE__ short unsigned int -#endif -#ifndef __cplusplus -typedef __WCHAR_TYPE__ wchar_t; -#endif /* C++ */ -#endif /* wchar_t not already defined */ - - -/* - * Constants for the stat st_mode member. - */ -#define S_IFIFO 0x1000 /* FIFO */ -#define S_IFCHR 0x2000 /* Character */ -#define S_IFBLK 0x3000 /* Block */ -#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_ISDIR(m) ((m) & S_IFDIR) -#define S_ISFIFO(m) ((m) & S_IFIFO) -#define S_ISCHR(m) ((m) & S_IFCHR) -#define S_ISBLK(m) ((m) & S_IFBLK) -#define S_ISREG(m) ((m) & S_IFREG) - -#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_IEXEC S_IEXEC -#define _S_IREAD S_IREAD -#define _S_IWRITE S_IWRITE - -/* - * 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 -{ - unsigned st_dev; /* Equivalent to drive number 0=A 1=B ... */ - short st_ino; /* Always zero ? */ - short st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - unsigned st_rdev; /* Seems useless (not even filled in) */ - long 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 */ -}; - - -struct _stati64 -{ - unsigned st_dev; /* Equivalent to drive number 0=A 1=B ... */ - short st_ino; /* Always zero ? */ - short st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - unsigned st_rdev; /* Seems useless (not even filled in) */ - __int64 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 */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -int _fstat(int, struct stat*); -int _stat(const char*, struct stat*); - -__int64 _fstati64(int nFileNo, struct _stati64* pstat); -__int64 _stati64(const char* szPath, struct _stati64* pstat); -int _wstat(const wchar_t* szPath, struct stat* pstat); -__int64 _wstati64(const wchar_t* szPath, struct _stati64* pstat); - - -#ifndef _NO_OLDNAMES - -#define fstat(nFileNo, pstat) _fstat(nFileNo, pstat) -#define stat(szPath,pstat) _stat(szPath,pstat) - -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _STAT_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/sys/time.h b/reactos/include/msvcrt/sys/time.h deleted file mode 100644 index 27d64df0d18..00000000000 --- a/reactos/include/msvcrt/sys/time.h +++ /dev/null @@ -1,3 +0,0 @@ - -#include - diff --git a/reactos/include/msvcrt/sys/timeb.h b/reactos/include/msvcrt/sys/timeb.h deleted file mode 100644 index fc0ac3e5167..00000000000 --- a/reactos/include/msvcrt/sys/timeb.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * timeb.h - * - * Support for the UNIX System V ftime system call. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _TIMEB_H_ -#define _TIMEB_H_ - - -/* - * TODO: Structure not tested. - */ -struct timeb -{ - long time; - short millitm; - short _timezone; - short dstflag; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* TODO: Not tested. */ -void _ftime(struct timeb*); - -#ifndef _NO_OLDNAMES -void ftime(struct timeb*); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not _TIMEB_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/sys/types.h b/reactos/include/msvcrt/sys/types.h deleted file mode 100644 index 6f24e5defcb..00000000000 --- a/reactos/include/msvcrt/sys/types.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * types.h - * - * The definition of constants, data types and global variables. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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 - * DISCLAIMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision: 1.5 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _TYPES_H_ -#define _TYPES_H_ - -#ifdef __GNUC__ -#undef __int64 -#define __int64 long long -#endif - -#ifndef _TIME_T_ -#define _TIME_T_ -typedef long time_t; -#endif - -#ifndef __STRICT_ANSI__ - -#ifndef _OFF_T_DEFINED -typedef long _off_t; -#ifndef _NO_OLDNAMES -#define off_t _off_t -#endif -#define _OFF_T_DEFINED -#endif /* Not _OFF_T_DEFINED */ - -#ifndef _DEV_T_DEFINED -typedef short _dev_t; -#ifndef _NO_OLDNAMES -#define dev_t _dev_t -#endif -#define _DEV_T_DEFINED -#endif /* Not _DEV_T_DEFINED */ - -#ifndef _INO_T_DEFINED -typedef short _ino_t; -#ifndef _NO_OLDNAMES -#define ino_t _ino_t -#endif -#define _INO_T_DEFINED -#endif /* Not _INO_T_DEFINED */ - -#endif /* Not __STRICT_ANSI__ */ - -#endif /* Not _TYPES_H_ */ diff --git a/reactos/include/msvcrt/sys/unistd.h b/reactos/include/msvcrt/sys/unistd.h deleted file mode 100644 index 21f6fd14151..00000000000 --- a/reactos/include/msvcrt/sys/unistd.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * unistd.h maps (roughly) to io.h - */ -#ifndef __STRICT_ANSI__ -#include -#endif - diff --git a/reactos/include/msvcrt/sys/utime.h b/reactos/include/msvcrt/sys/utime.h deleted file mode 100644 index 0f0028f5417..00000000000 --- a/reactos/include/msvcrt/sys/utime.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * utime.h - * - * Support for the utime function. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.5 $ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _UTIME_H_ -#define _UTIME_H_ - -#define __need_wchar_t -#define __need_size_t -#include -#include - - -/* - * Structure used by _utime function. - */ -struct _utimbuf -{ - time_t actime; /* Access time */ - time_t modtime; /* Modification time */ -}; - - -#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 - -int _utime(const char*, struct _utimbuf*); -int _futime(int, struct _utimbuf*); - -/* The wide character version, only available for MSVCRT versions of the - * C runtime library. */ -int _wutime(const wchar_t*, struct _utimbuf*); - -#ifndef _NO_OLDNAMES -int utime(const char*, struct utimbuf*); -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not _UTIME_H_ */ -#endif /* Not __STRICT_ANSI__ */ diff --git a/reactos/include/msvcrt/time.h b/reactos/include/msvcrt/time.h deleted file mode 100644 index 68daa49d78c..00000000000 --- a/reactos/include/msvcrt/time.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * time.h - * - * Date and time functions and types. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.6 $ - * $Author$ - * $Date$ - * - */ -/* Appropriated for Reactos Crtdll by Ariadne */ -#ifndef _TIME_H_ -#define _TIME_H_ - -#define __need_wchar_t -#define __need_size_t -#include - - -/* - * 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 1000.0 -#define CLK_TICK CLOCKS_PER_SEC - - -/* - * Need a definition of time_t. - */ -#include - -/* - * A type for storing the current time and date. This is the number of - * seconds since midnight Jan 1, 1970. - * NOTE: Normally this is defined by the above include of sys/types.h - */ -#ifndef _TIME_T_ -typedef long time_t; -#define _TIME_T_ -#endif - -/* - * A type for measuring processor time (in clock ticks). - */ -#ifndef _CLOCK_T_ -typedef long clock_t; -#define _CLOCK_T_ -#endif - -/* - * 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 */ - char *tm_zone; - int tm_gmtoff; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -clock_t clock(void); -time_t time(time_t*); -double difftime(time_t, time_t); -time_t mktime(struct tm*); - -/* - * 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... - */ -char* asctime(const struct tm*); -char* ctime(const time_t*); -struct tm* gmtime(const time_t*); -struct tm* localtime(const time_t*); - -size_t strftime(char*, size_t, const char*, const struct tm*); -size_t wcsftime(wchar_t*, size_t, const wchar_t*, const struct tm*); - -wchar_t* _wasctime(const struct tm *timeptr); -wchar_t* _wctime(const time_t * const timep); -char* _strdate(const char *datestr); -wchar_t* _wstrdate(const wchar_t *datestr); -char* _strtime(char* buf); -wchar_t* _wstrtime(wchar_t* buf); - -#ifdef __cplusplus -} -#endif - -#endif /* Not _TIME_H_ */ - diff --git a/reactos/include/msvcrt/wchar.h b/reactos/include/msvcrt/wchar.h deleted file mode 100644 index 9fc76f07b65..00000000000 --- a/reactos/include/msvcrt/wchar.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * wchar.h - * - * 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. - * - * 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. - * - * $Revision: 1.5 $ - * $Author$ - * $Date$ - * - */ - -#ifndef _WCHAR_H_ -#define _WCHAR_H_ - -#define WCHAR_MIN 0 -#define WCHAR_MAX ((wchar_t)-1) - -#include -#include -#include -#include -#include - - -#endif /* not _WCHAR_H_ */ - diff --git a/reactos/include/msvcrt/wine/cppexcept.h b/reactos/include/msvcrt/wine/cppexcept.h deleted file mode 100644 index 3a822ed9ec0..00000000000 --- a/reactos/include/msvcrt/wine/cppexcept.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * msvcrt C++ exception handling - * - * Copyright 2002 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __MSVCRT_CPPEXCEPT_H -#define __MSVCRT_CPPEXCEPT_H - -#define CXX_FRAME_MAGIC 0x19930520 -#define CXX_EXCEPTION 0xe06d7363 - -typedef void (*vtable_ptr)(); - -/* type_info object, see cpp.c for inplementation */ -typedef struct __type_info -{ - vtable_ptr *vtable; - char *name; /* Unmangled name, allocated lazily */ - char mangled[32]; /* Variable length, but we declare it large enough for static RTTI */ -} type_info; - -/* the exception frame used by CxxFrameHandler */ -typedef struct __cxx_exception_frame -{ - EXCEPTION_REGISTRATION_RECORD frame; /* the standard exception frame */ - int trylevel; - DWORD ebp; -} cxx_exception_frame; - -/* info about a single catch {} block */ -typedef struct __catchblock_info -{ - UINT flags; /* flags (see below) */ - type_info *type_info; /* C++ type caught by this block */ - int offset; /* stack offset to copy exception object to */ - void (*handler)(); /* catch block handler code */ -} catchblock_info; -#define TYPE_FLAG_CONST 1 -#define TYPE_FLAG_VOLATILE 2 -#define TYPE_FLAG_REFERENCE 8 - -/* info about a single try {} block */ -typedef struct __tryblock_info -{ - int start_level; /* start trylevel of that block */ - int end_level; /* end trylevel of that block */ - int catch_level; /* initial trylevel of the catch block */ - int catchblock_count; /* count of catch blocks in array */ - catchblock_info *catchblock; /* array of catch blocks */ -} tryblock_info; - -/* info about the unwind handler for a given trylevel */ -typedef struct __unwind_info -{ - int prev; /* prev trylevel unwind handler, to run after this one */ - void (*handler)(); /* unwind handler */ -} unwind_info; - -/* descriptor of all try blocks of a given function */ -typedef struct __cxx_function_descr -{ - UINT magic; /* must be CXX_FRAME_MAGIC */ - UINT unwind_count; /* number of unwind handlers */ - unwind_info *unwind_table; /* array of unwind handlers */ - UINT tryblock_count; /* number of try blocks */ - tryblock_info *tryblock; /* array of try blocks */ - UINT unknown[3]; -} cxx_function_descr; - -typedef void (*cxx_copy_ctor)(void); - -/* complete information about a C++ type */ -typedef struct __cxx_type_info -{ - UINT flags; /* flags (see CLASS_* flags below) */ - type_info *type_info; /* C++ type info */ - int this_offset; /* offset of base class this pointer from start of object */ - int vbase_descr; /* offset of virtual base class descriptor */ - int vbase_offset; /* offset of this pointer offset in virtual base class descriptor */ - size_t size; /* object size */ - cxx_copy_ctor copy_ctor; /* copy constructor */ -} cxx_type_info; -#define CLASS_IS_SIMPLE_TYPE 1 -#define CLASS_HAS_VIRTUAL_BASE_CLASS 4 - -/* table of C++ types that apply for a given object */ -typedef struct __cxx_type_info_table -{ - UINT count; /* number of types */ - const cxx_type_info *info[3]; /* variable length, we declare it large enough for static RTTI */ -} cxx_type_info_table; - -typedef DWORD (*cxx_exc_custom_handler)( PEXCEPTION_RECORD, cxx_exception_frame*, - PCONTEXT, EXCEPTION_REGISTRATION_RECORD**, - cxx_function_descr*, int nested_trylevel, - EXCEPTION_REGISTRATION_RECORD *nested_frame, DWORD unknown3 ); - -/* type information for an exception object */ -typedef struct __cxx_exception_type -{ - UINT flags; /* TYPE_FLAG flags */ - void (*destructor)(); /* exception object destructor */ - cxx_exc_custom_handler custom_handler; /* custom handler for this exception */ - const cxx_type_info_table *type_info_table; /* list of types for this exception object */ -} cxx_exception_type; - -void _CxxThrowException(void*,const cxx_exception_type*); - -#endif /* __MSVCRT_CPPEXCEPT_H */ diff --git a/reactos/include/msvcrt/wine/eh.h b/reactos/include/msvcrt/wine/eh.h deleted file mode 100644 index 14201fb0676..00000000000 --- a/reactos/include/msvcrt/wine/eh.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * C++ exception handling facility - * - * Copyright 2000 Francois Gouget. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -#ifndef __WINE_EH_H -#define __WINE_EH_H -#ifndef __WINE_USE_MSVCRT -#define __WINE_USE_MSVCRT -#endif - -#if !defined(__cplusplus) && !defined(USE_MSVCRT_PREFIX) -#error "eh.h is meant only for C++ applications" -#endif - -#ifndef MSVCRT -# ifdef USE_MSVCRT_PREFIX -# define MSVCRT(x) MSVCRT_##x -# else -# define MSVCRT(x) x -# endif -#endif - -struct _EXCEPTION_POINTERS; - -typedef void (*terminate_handler)(); -typedef void (*terminate_function)(); -typedef void (*unexpected_handler)(); -typedef void (*unexpected_function)(); -typedef void (*_se_translator_function)(unsigned int code, struct _EXCEPTION_POINTERS *info); - -terminate_function MSVCRT(set_terminate)(terminate_function func); -unexpected_function MSVCRT(set_unexpected)(unexpected_function func); -_se_translator_function MSVCRT(_set_se_translator)(_se_translator_function func); - -void MSVCRT(terminate)(); -void MSVCRT(unexpected)(); - -#endif /* __WINE_EH_H */ diff --git a/reactos/include/msvcrt/wine/msvcrt.h b/reactos/include/msvcrt/wine/msvcrt.h deleted file mode 100644 index d6ae272a5d9..00000000000 --- a/reactos/include/msvcrt/wine/msvcrt.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2001 Jon Griffiths - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_MSVCRT_H -#define __WINE_MSVCRT_H - -#include -#include -#include - -#include "windef.h" -#include "winbase.h" -#include "winerror.h" -#include "winnls.h" - -#include "msvcrt/string.h" -#include "eh.h" - -/* TLS data */ -extern DWORD MSVCRT_tls_index; - -typedef struct __MSVCRT_thread_data -{ - int _errno; // ros - unsigned long doserrno; - char *mbstok_next; /* next ptr for mbstok() */ - char *efcvt_buffer; /* buffer for ecvt/fcvt */ - terminate_function terminate_handler; - unexpected_function unexpected_handler; - _se_translator_function se_translator; - EXCEPTION_RECORD *exc_record; -} MSVCRT_thread_data; - -extern MSVCRT_thread_data *msvcrt_get_thread_data(void); - -extern int MSVCRT_current_lc_all_cp; - -void _purecall(void); -void MSVCRT__set_errno(int); -char* msvcrt_strndup(const char*,unsigned int); -#ifndef __REACTOS__ -MSVCRT_wchar_t *msvcrt_wstrndup(const MSVCRT_wchar_t*, unsigned int); -#endif -void MSVCRT__amsg_exit(int errnum); - -extern char **MSVCRT__environ; -#ifndef __REACTOS__ -extern MSVCRT_wchar_t **MSVCRT__wenviron; -extern char ** msvcrt_SnapshotOfEnvironmentA(char **); -extern MSVCRT_wchar_t ** msvcrt_SnapshotOfEnvironmentW(MSVCRT_wchar_t **); -#endif - -/* FIXME: This should be declared in new.h but it's not an extern "C" so - * it would not be much use anyway. Even for Winelib applications. - */ -int MSVCRT__set_new_mode(int mode); - -void* MSVCRT_operator_new(unsigned long size); -void MSVCRT_operator_delete(void*); -#ifndef __REACTOS__ -typedef void* (*MSVCRT_malloc_func)(MSVCRT_size_t); -#endif -typedef void (*MSVCRT_free_func)(void*); -#ifndef __REACTOS__ -extern char* MSVCRT___unDName(int,const char*,int,MSVCRT_malloc_func,MSVCRT_free_func,unsigned int); -#endif - -/* Setup and teardown multi threaded locks */ -extern void msvcrt_init_mt_locks(void); -extern void msvcrt_free_mt_locks(void); - -extern void msvcrt_init_io(void); -extern void msvcrt_free_io(void); -extern void msvcrt_init_console(void); -extern void msvcrt_free_console(void); -extern void msvcrt_init_args(void); -extern void msvcrt_free_args(void); - -/* run-time error codes */ -#define _RT_STACK 0 -#define _RT_NULLPTR 1 -#define _RT_FLOAT 2 -#define _RT_INTDIV 3 -#define _RT_EXECMEM 5 -#define _RT_EXECFORM 6 -#define _RT_EXECENV 7 -#define _RT_SPACEARG 8 -#define _RT_SPACEENV 9 -#define _RT_ABORT 10 -#define _RT_NPTR 12 -#define _RT_FPTR 13 -#define _RT_BREAK 14 -#define _RT_INT 15 -#define _RT_THREAD 16 -#define _RT_LOCK 17 -#define _RT_HEAP 18 -#define _RT_OPENCON 19 -#define _RT_QWIN 20 -#define _RT_NOMAIN 21 -#define _RT_NONCONT 22 -#define _RT_INVALDISP 23 -#define _RT_ONEXIT 24 -#define _RT_PUREVIRT 25 -#define _RT_STDIOINIT 26 -#define _RT_LOWIOINIT 27 -#define _RT_HEAPINIT 28 -#define _RT_DOMAIN 120 -#define _RT_SING 121 -#define _RT_TLOSS 122 -#define _RT_CRNL 252 -#define _RT_BANNER 255 - -#endif /* __WINE_MSVCRT_H */ diff --git a/reactos/include/tchar.h b/reactos/include/tchar.h index cf296e3b4f6..9225bf2babd 100644 --- a/reactos/include/tchar.h +++ b/reactos/include/tchar.h @@ -1,268 +1,410 @@ -/* - * tchar.h - * - * 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). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * 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: 1.14 $ - * $Author$ - * $Date$ - * - */ -#ifndef _ROS_TCHAR_H_ -#define _ROS_TCHAR_H_ +#ifndef _TCHAR_H_ +#define _TCHAR_H_ -#include +#include -/* - * NOTE: This tests _UNICODE, which is different from the UNICODE define - * used to differentiate Win32 API calls. - */ -#ifdef _UNICODE +#ifdef _UNICODE + #define __TEXT(q) L##q + + #ifndef _TCHAR_DEFINED + #ifndef RC_INVOKED + typedef wchar_t TCHAR; + typedef wchar_t _TCHAR; + #endif /* Not RC_INVOKED */ + #define _TCHAR_DEFINED + #endif + + #define _TINT wint_t + #define _TSCHAR wchar_t + #define _TUCHAR wchar_t + #define _TXCHAR wchar_t + #define _TEOF WEOF + #define _tenviron _wenviron + #define _tfinddata_t _wfinddata_t + + /* 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 + + #define _ttoi64 _wtoi64 + #define _i64tot _i64tow + #define _ui64tot _ui64tow + #define _tcsnccoll _wstrncoll + #define _tcsncoll _wstrncoll + #define _tcsncicoll _wstrnicoll + #define _tfindfirsti64 _wfindfirsti64 + #define _tfindnexti64 _wfindnexti64 + #define _tfinddatai64_t _wfinddatai64_t + + #define _tunlink _wunlink + #define _tgetdcwd _wgetdcwd -/* - * 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 _TSCHAR; -typedef wchar_t _TUCHAR; -typedef wchar_t _TXCHAR; -/* #if !__STDC__ */ -typedef wchar_t TCHAR; -/* #endif */ -#endif /* Not RC_INVOKED */ -#define _TCHAR_DEFINED + #define _fgettc fgetwc + #define _fgettchar _fgetwchar + #define _fgetts fgetws + #define _fputtc fputwc + #define _fputtchar _fputwchar + #define _fputts fputws + #define _ftprintf fwprintf + #define _ftscanf fwscanf + #define _gettc getwc + #define _gettchar getwchar + #define _getts getws + #define _istalnum iswalnum + #define _istalpha iswalpha + #define _istascii iswascii + #define _istcntrl iswcntrl + #define _istdigit iswdigit + #define _istgraph iswgraph + #define _istlead(c) 0 + #define _istleadbyte(c) 0 + #define _istlegal(c) 1 + #define _istlower iswlower + #define _istprint iswprint + #define _istpunct iswpunct + #define _istspace iswspace + #define _istupper iswupper + #define _istxdigit iswxdigit + #define _itot _itow + #define _ltot _ltow + #define _puttc putwc + #define _puttchar putwchar + #define _putts putws + #define _tmain wmain + #define _sntprintf _snwprintf + #define _stprintf swprintf + #define _stscanf swscanf + #define _taccess _waccess + #define _tasctime _wasctime + #define _tccpy(d,s) (*(d)=*(s)) + #define _tchdir _wchdir + #define _tclen(c) 2 + #define _tchmod _wchmod + #define _tcreat _wcreat + #define _tcscat wcscat + #define _tcschr wcschr + #define _tcsclen wcslen + #define _tcscmp wcscmp + #define _tcscoll wcscoll + #define _tcscpy wcscpy + #define _tcscspn wcscspn + #define _tcsdec _wcsdec + #define _tcsdup _wcsdup + #define _tcsftime wcsftime + #define _tcsicmp _wcsicmp + #define _tcsicoll _wcsicoll + #define _tcsinc _wcsinc + #define _tcslen wcslen + #define _tcslwr _wcslwr + #define _tcsnbcnt _wcnscnt + #define _tcsncat wcsncat + #define _tcsnccat wcsncat + #define _tcsncmp wcsncmp + #define _tcsnccmp wcsncmp + #define _tcsnccnt _wcsncnt + #define _tcsnccpy wcsncpy + #define _tcsncicmp _wcsnicmp + #define _tcsncpy wcsncpy + #define _tcsncset _wcsnset + #define _tcsnextc _wcsnextc + #define _tcsnicmp _wcsnicmp + #define _tcsnicoll _wcsnicoll + #define _tcsninc _wcsninc + #define _tcsnccnt _wcsncnt + #define _tcsnset _wcsnset + #define _tcspbrk wcspbrk + #define _tcsspnp _wcsspnp + #define _tcsrchr wcsrchr + #define _tcsrev _wcsrev + #define _tcsset _wcsset + #define _tcsspn wcsspn + #define _tcsstr wcsstr + #define _tcstod wcstod + #define _tcstok wcstok + #define _tcstol wcstol + #define _tcstoul wcstoul + #define _tcsupr _wcsupr + #define _tcsxfrm wcsxfrm + #define _tctime _wctime + #define _texecl _wexecl + #define _texecle _wexecle + #define _texeclp _wexeclp + #define _texeclpe _wexeclpe + #define _texecv _wexecv + #define _texecve _wexecve + #define _texecvp _wexecvp + #define _texecvpe _wexecvpe + #define _tfdopen _wfdopen + #define _tfindfirst _wfindfirst + #define _tfindnext _wfindnext + #define _tfopen _wfopen + #define _tfreopen _wfreopen + #define _tfsopen _wfsopen + #define _tfullpath _wfullpath + #define _tgetcwd _wgetcwd + #define _tgetenv _wgetenv + #define _tmain wmain + #define _tmakepath _wmakepath + #define _tmkdir _wmkdir + #define _tmktemp _wmktemp + #define _tperror _wperror + #define _topen _wopen + #define _totlower towlower + #define _totupper towupper + #define _tpopen _wpopen + #define _tprintf wprintf + #define _tremove _wremove + #define _trename _wrename + #define _trmdir _wrmdir + #define _tsearchenv _wsearchenv + #define _tscanf wscanf + #define _tsetlocale _wsetlocale + #define _tsopen _wsopen + #define _tspawnl _wspawnl + #define _tspawnle _wspawnle + #define _tspawnlp _wspawnlp + #define _tspawnlpe _wspawnlpe + #define _tspawnv _wspawnv + #define _tspawnve _wspawnve + #define _tspawnvp _wspawnvp + #define _tspawnvpe _wspawnvpe + #define _tsplitpath _wsplitpath + #define _tstat _wstat + #define _tstrdate _wstrdate + #define _tstrtime _wstrtime + #define _tsystem _wsystem + #define _ttempnam _wtempnam + #define _ttmpnam _wtmpnam + #define _ttoi _wtoi + #define _ttol _wtol + #define _tutime _wutime + #define _tWinMain wWinMain + #define _ultot _ultow + #define _ungettc ungetwc + #define _vftprintf vfwprintf + #define _vsntprintf _vsnwprintf + #define _vstprintf vswprintf + #define _vtprintf vwprintf + + #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) + +#else + + #define __TEXT(q) q + + #ifndef _TCHAR_DEFINED + #ifndef RC_INVOKED + typedef char TCHAR; + typedef char _TCHAR; + #endif + #define _TCHAR_DEFINED + #endif + + #define _TINT int + #define _TSCHAR signed char + #define _TUCHAR unsigned char + #define _TXCHAR char + #define _TEOF EOF + #define _tenviron _environ + #define _tfinddata_t _finddata_t + + /* 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 + + #define _ttoi64 _atoi64 + #define _i64tot _i64toa + #define _ui64tot _ui64toa + #define _tcsnccoll _strncoll + #define _tcsncoll _strncoll + #define _tcsncicoll _strnicoll + #define _tfindfirsti64 _findfirsti64 + #define _tfindnexti64 _findnexti64 + #define _tfinddatai64_t _finddatai64_t + + #define _tunlink _unlink + #define _tgetdcwd _getdcwd + + #define _fgettc fgetc + #define _fgettchar fgetchar + #define _fgetts fgets + #define _fputtc fputc + #define _fputtchar fputchar + #define _fputts fputs + #define _ftprintf fprintf + #define _ftscanf fscanf + #define _gettc getc + #define _gettchar getchar + #define _getts gets + #define _istalnum isalnum + #define _istalpha isalpha + #define _istascii __isascii + #define _istcntrl iscntrl + #define _istdigit isdigit + #define _istgraph isgraph + #define _istlead(c) 0 + #define _istleadbyte(c) 0 + #define _istlegal(c) 1 + #define _istlower islower + #define _istprint isprint + #define _istpunct ispunct + #define _istspace isspace + #define _istupper isupper + #define _istxdigit isxdigit + #define _itot _itoa + #define _ltot _ltoa + #define _puttc putc + #define _puttchar putchar + #define _putts puts + #define _tmain main + #define _sntprintf _snprintf + #define _stprintf sprintf + #define _stscanf sscanf + #define _taccess _access + #define _tasctime asctime + #define _tccpy(d,s) (*(d)=*(s)) + #define _tchdir _chdir + #define _tclen(c) 1 + #define _tchmod _chmod + #define _tcreat _creat + #define _tcscat strcat + #define _tcschr strchr + #define _tcsclen strlen + #define _tcscmp strcmp + #define _tcscoll strcoll + #define _tcscpy strcpy + #define _tcscspn strcspn + #define _tcsdec _strdec + #define _tcsdup _strdup + #define _tcsftime strftime + #define _tcsicmp _stricmp + #define _tcsicoll _stricoll + #define _tcsinc _strinc + #define _tcslen strlen + #define _tcslwr _strlwr + #define _tcsnbcnt _strncnt + #define _tcsncat strncat + #define _tcsnccat strncat + #define _tcsncmp strncmp + #define _tcsnccmp strncmp + #define _tcsnccnt _strncnt + #define _tcsnccpy strncpy + #define _tcsncicmp _strnicmp + #define _tcsncpy strncpy + #define _tcsncset _strnset + #define _tcsnextc _strnextc + #define _tcsnicmp _strnicmp + #define _tcsnicoll _strnicoll + #define _tcsninc _strninc + #define _tcsnccnt _strncnt + #define _tcsnset _strnset + #define _tcspbrk strpbrk + #define _tcsspnp _strspnp + #define _tcsrchr strrchr + #define _tcsrev _strrev + #define _tcsset _strset + #define _tcsspn strspn + #define _tcsstr strstr + #define _tcstod strtod + #define _tcstok strtok + #define _tcstol strtol + #define _tcstoul strtoul + #define _tcsupr _strupr + #define _tcsxfrm strxfrm + #define _tctime ctime + #define _texecl _execl + #define _texecle _execle + #define _texeclp _execlp + #define _texeclpe _execlpe + #define _texecv _execv + #define _texecve _execve + #define _texecvp _execvp + #define _texecvpe _execvpe + #define _tfdopen _fdopen + #define _tfindfirst _findfirst + #define _tfindnext _findnext + #define _tfopen fopen + #define _tfreopen freopen + #define _tfsopen _fsopen + #define _tfullpath _fullpath + #define _tgetcwd _getcwd + #define _tgetenv getenv + #define _tmain main + #define _tmakepath _makepath + #define _tmkdir _mkdir + #define _tmktemp _mktemp + #define _tperror perror + #define _topen _open + #define _totlower tolower + #define _totupper toupper + #define _tpopen _popen + #define _tprintf printf + #define _tremove remove + #define _trename rename + #define _trmdir _rmdir + #define _tsearchenv _searchenv + #define _tscanf scanf + #define _tsetlocale setlocale + #define _tsopen _sopen + #define _tspawnl _spawnl + #define _tspawnle _spawnle + #define _tspawnlp _spawnlp + #define _tspawnlpe _spawnlpe + #define _tspawnv _spawnv + #define _tspawnve _spawnve + #define _tspawnvp _spawnvp + #define _tspawnvpe _spawnvpe + #define _tsplitpath _splitpath + #define _tstat _stat + #define _tstrdate _strdate + #define _tstrtime _strtime + #define _tsystem system + #define _ttempnam _tempnam + #define _ttmpnam tmpnam + #define _ttoi atoi + #define _ttol atol + #define _tutime _utime + #define _tWinMain WinMain + #define _ultot _ultoa + #define _ungettc ungetc + #define _vftprintf vfprintf + #define _vsntprintf _vsnprintf + #define _vstprintf vsprintf + #define _vtprintf vprintf + + #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) + #endif + + -/* - * Enclose constant strings and literal characters in the _TEXT and _T macro to make - * them unicode constant strings when _UNICODE is defined. - */ -#ifndef _TEXT -#define _TEXT(x) L ## x -#endif -#ifndef _T -#define _T(x) L ## x -#endif +#define _TEXT(x) __TEXT(x) +#define _T(x) __TEXT(x) -/* - * Unicode functions - */ +#endif /* _TCHAR_H_ */ -#define _tmain _wmain - -#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 _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 _putts putws -#define _ungettc ungetwc -#define _tcstod wcstod -#define _tcstol wcstol -#define _tcstoul wcstoul -#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 _tcsnlen wcsnlen -#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 _ttoi _wtoi -#define _ttoi64 _wtoi64 -#define _tcsftime wcsftime -#define _tsplitpath _wsplitpath -#define _tmakepath _wmakepath -#define _tfopen _wfopen - -#else /* Not _UNICODE */ - -/* - * TCHAR, the type you should use instead of char. - */ -#ifndef _TCHAR_DEFINED -#ifndef RC_INVOKED -typedef char _TCHAR; -typedef signed char _TSCHAR; -typedef unsigned char _TUCHAR; -typedef char _TXCHAR; - -/*#if !__STDC__*/ -typedef char TCHAR; -/*#endif*/ - -#endif -#define _TCHAR_DEFINED -#endif - -/* - * Enclose constant strings and characters in the _TEXT and _T macro. - */ -#ifndef _TEXT -#define _TEXT(x) x -#endif -#ifndef _T -#define _T(x) x -#endif - - -/* - * Non-unicode (standard) functions - */ - -#define _tmain main - -#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 _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 _gettc getc -#define _getts gets -#define _puttc putc -#define _putts puts -#define _ungettc ungetc -#define _tcstod strtod -#define _tcstol strtol -#define _tcstoul strtoul -#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 _tcsnlen strnlen -#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 _ttoi atoi -#define _ttoi64 _atoi64 -#define _tcsftime strftime -#define _tsplitpath _splitpath -#define _tmakepath _makepath -#define _tfopen fopen - -#endif /* Not _UNICODE */ - -#endif /* Not _TCHAR_H_ */