4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-20 16:01:10 +08:00

* include/direct.h: add guard around MSVCRT-only prototytpes

* include/io.h: add __int64 struct definitions and function prototypes;
		 add guard for MSVCRT-only prototypes
	* include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX
	* include/stdio.h: add wchar function prototypes (__MSVCRT__);
		 put wchar functions together to make sync with wchar.h easier
	* include/stdlib.h: add wide char functions (__MSVCRT__)
	* include/string.h: add string collation functions ( __MSVCRT__)
	* include/sys/stat.h: add __int64 struct and function ( __MSVCRT__)
	* include/tchar.h: add macros and macro function definitions
	* include/wchar.h: add wide char function prototypes ( __MSVCRT__ );
		enclose more functions in __MSVCRT__ guard;
		some oldname wide char function prototypes #if (0)'d
	* profile/gmon.h: add guard around BSD-ish typedefs
This commit is contained in:
Earnie Boyd 2000-11-21 02:50:03 +00:00
parent d5b692284b
commit 6126c12345
11 changed files with 386 additions and 121 deletions

View File

@ -1,3 +1,22 @@
2000-11-20 Earnie Boyd <earnie_boyd@yahoo.com>
* Merge in changes from
2000-10-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
* include/direct.h: add guard around MSVCRT-only prototytpes
* include/io.h: add __int64 struct definitions and function prototypes;
add guard for MSVCRT-only prototypes
* include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX
* include/stdio.h: add wchar function prototypes (__MSVCRT__);
put wchar functions together to make sync with wchar.h easier
* include/stdlib.h: add wide char functions (__MSVCRT__)
* include/string.h: add string collation functions ( __MSVCRT__)
* include/sys/stat.h: add __int64 struct and function ( __MSVCRT__)
* include/tchar.h: add macros and macro function definitions
* include/wchar.h: add wide char function prototypes ( __MSVCRT__ );
enclose more functions in __MSVCRT__ guard;
some oldname wide char function prototypes #if (0)'d
* profile/gmon.h: add guard around BSD-ish typedefs
Mon Nov 20 18:58:12 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Use a different variable name for subdirectory since the

View File

@ -72,15 +72,14 @@ unsigned _getdiskfree (unsigned, struct _diskfree_t *);
#endif
#ifndef _WDIRECT_DEFINED
/* wide character versions. Also in wchar.h */
#ifdef __MSVCRT__
int _wchdir(const wchar_t*);
wchar_t* _wgetcwd(wchar_t*, int);
wchar_t* _wgetdcwd(int, wchar_t*, int);
int _wmkdir(const wchar_t*);
int _wrmdir(const wchar_t*);
#endif /* __MSVCRT__ */
#define _WDIRECT_DEFINED
#endif

View File

@ -75,6 +75,16 @@ struct _finddata_t
char name[FILENAME_MAX]; /* may include spaces. */
};
struct _finddatai64_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
__int64 size;
char name[FILENAME_MAX];
};
#ifndef _WFINDDATA_T_DEFINED
struct _wfinddata_t {
unsigned attrib;
@ -84,6 +94,15 @@ struct _wfinddata_t {
_fsize_t size;
wchar_t name[FILENAME_MAX]; /* may include spaces. */
};
struct _wfinddatai64_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
__int64 size;
wchar_t name[FILENAME_MAX];
};
#define _WFINDDATA_T_DEFINED
#endif
@ -107,6 +126,14 @@ int _mkdir (const char*);
char* _mktemp (char*);
int _rmdir (const char*);
#ifdef __MSVCRT__
__int64 _filelengthi64(int);
long _findfirsti64(const char*, struct _finddatai64_t*);
int _findnexti64(long, struct _finddatai64_t*);
__int64 _lseeki64(int, __int64, int);
__int64 _telli64(int);
#endif /* __MSVCRT__ */
#ifndef _NO_OLDNAMES
@ -193,17 +220,23 @@ int _unlink (const char*);
int _write (int, const void*, unsigned int);
/* Wide character versions. Also declared in wchar.h. */
int _waccess(const wchar_t *, int);
int _wchmod(const wchar_t *, int);
int _wcreat(const wchar_t *, int);
long _wfindfirst(wchar_t *, struct _wfinddata_t *);
/* Not in crtdll.dll */
#if !defined (_WIO_DEFINED)
#if defined (__MSVCRT__)
int _waccess(const wchar_t*, int);
int _wchmod(const wchar_t*, int);
int _wcreat(const wchar_t*, int);
long _wfindfirst(wchar_t*, struct _wfinddata_t*);
int _wfindnext(long, struct _wfinddata_t *);
int _wunlink(const wchar_t *);
int _wrename(const wchar_t *, const wchar_t *);
int _wopen(const wchar_t *, int, ...);
int _wsopen(const wchar_t *, int, int, ...);
wchar_t * _wmktemp(wchar_t *);
int _wunlink(const wchar_t*);
int _wopen(const wchar_t*, int, ...);
int _wsopen(const wchar_t*, int, int, ...);
wchar_t * _wmktemp(wchar_t*);
long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
int _wfindnexti64(long, struct _wfinddatai64_t*);
#endif /* defined (__MSVCRT__) */
#define _WIO_DEFINED
#endif /* _WIO_DEFINED */
#ifndef _NO_OLDNAMES
/*
@ -233,6 +266,8 @@ int write (int, const void*, unsigned int);
#endif /* _UWIN */
/* Wide character versions. Also declared in wchar.h. */
/* Where do these live? Not in libmoldname.a nor in libmsvcrt.a */
#if 0
int waccess(const wchar_t *, int);
int wchmod(const wchar_t *, int);
int wcreat(const wchar_t *, int);
@ -243,6 +278,7 @@ int wrename(const wchar_t *, const wchar_t *);
int wopen(const wchar_t *, int, ...);
int wsopen(const wchar_t *, int, int, ...);
wchar_t * wmktemp(wchar_t *);
#endif
#endif /* Not _NO_OLDNAMES */

View File

@ -104,6 +104,11 @@
#define ULONG_LONG_MAX (2ULL * LONG_LONG_MAX + 1)
/* ISO C9x macro names */
#define LLONG_MAX LONG_LONG_MAX
#define LLONG_MIN LONG_LONG_MIN
#define ULLONG_MAX ULONG_LONG_MAX
#endif /* Not Strict ANSI and GNU C compiler */

View File

@ -83,14 +83,9 @@
*/
#define L_tmpnam (260)
/*
* 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 0 /* fully buffered */
#define _IOLBF 1 /* line buffered */
#define _IONBF 2 /* unbuffered */
#define _IOFBF 0x0000
#define _IOLBF 0x0040
#define _IONBF 0x0004
/*
* The buffer size as used by setbuf such that it is equivalent to
@ -175,11 +170,11 @@ extern "C" {
/*
* File Operations
*/
FILE* fopen (const char*, const char*);
FILE* freopen (const char*, const char*, FILE*);
int fflush (FILE*);
int fclose (FILE*);
/* MS puts remove & rename (but not wide versions) in io.h also */
int remove (const char*);
int rename (const char*, const char*);
FILE* tmpfile (void);
@ -207,13 +202,6 @@ int vprintf (const char*, va_list);
int vsprintf (char*, const char*, va_list);
int _vsnprintf (char*, size_t, const char*, va_list);
/* Wide character versions */
int fwprintf (FILE*, const wchar_t*, ...);
int wprintf (const wchar_t*, ...);
int swprintf (wchar_t*, const wchar_t*, ...);
int vfwprintf (FILE*, const wchar_t*, va_list);
int vwprintf (const wchar_t*, va_list);
int vswprintf (wchar_t*, const wchar_t*, va_list);
/*
* Formatted Input
@ -222,12 +210,6 @@ int vswprintf (wchar_t*, const wchar_t*, va_list);
int fscanf (FILE*, const char*, ...);
int scanf (const char*, ...);
int sscanf (const char*, const char*, ...);
/* Wide character versions */
int fwscanf (FILE*, const wchar_t*, ...);
int wscanf (const wchar_t*, ...);
int swscanf (wchar_t*, const wchar_t*, ...);
/*
* Character Input and Output Functions
*/
@ -244,23 +226,6 @@ int putchar (int);
int puts (const char*);
int ungetc (int, FILE*);
/* Wide character versions */
wint_t fgetwc (FILE*);
wint_t fputwc (wchar_t, FILE*);
wint_t ungetwc (wchar_t, FILE*);
#ifdef __MSVCRT__
wchar_t* fgetws (wchar_t*, int, FILE*);
int fputws (const wchar_t*, FILE*);
wint_t getwc (FILE*);
wint_t getwchar (void);
wchar_t* _getws (wchar_t*);
wint_t putwc (wint_t, FILE*);
int _putws (const wchar_t*);
wint_t putwchar (wint_t);
#endif /* __MSVCRT__ */
/*
* Direct Input and Output Functions
*/
@ -268,7 +233,6 @@ wint_t putwchar (wint_t);
size_t fread (void*, size_t, size_t, FILE*);
size_t fwrite (const void*, size_t, size_t, FILE*);
/*
* File Positioning Functions
*/
@ -306,7 +270,6 @@ void perror (const char*);
#ifndef __STRICT_ANSI__
/*
* Pipes
*/
@ -318,11 +281,64 @@ FILE* popen (const char*, const char*);
int pclose (FILE*);
#endif
/* The wide character version, only available in MSVCRT DLL versions, not
* CRTDLL. */
#ifdef __MSVCRT__
FILE* _wpopen (const wchar_t*, const wchar_t*);
/*
* Other Non ANSI functions
*/
int _flushall(void);
int _fgetchar (void);
int _fputchar (int);
FILE* _fdopen (int, const char*);
int _fileno (FILE*);
#ifndef _NO_OLDNAMES
int fgetchar (void);
int fputchar (int);
FILE* fdopen (int, const char*);
int fileno (FILE*);
#endif /* Not _NO_OLDNAMES */
#endif /* Not __STRICT_ANSI__ */
/* Wide versions */
#ifndef _WSTDIO_DEFINED
/* also in wchar.h - keep in sync */
int fwprintf (FILE*, const wchar_t*, ...);
int wprintf (const wchar_t*, ...);
int swprintf (wchar_t*, const wchar_t*, ...);
int vfwprintf (FILE*, const wchar_t*, va_list);
int vwprintf (const wchar_t*, va_list);
int vswprintf (wchar_t*, const wchar_t*, va_list);
int fwscanf (FILE*, const wchar_t*, ...);
int wscanf (const wchar_t*, ...);
int swscanf (wchar_t*, const wchar_t*, ...);
wint_t fgetwc (FILE*);
wint_t fputwc (wchar_t, FILE*);
wint_t ungetwc (wchar_t, FILE*);
#ifdef __MSVCRT__
wchar_t* fgetws (wchar_t*, int, FILE*);
int fputws (const wchar_t*, FILE*);
wint_t getwc (FILE*);
wint_t getwchar (void);
wchar_t* _getws (wchar_t*);
wint_t putwc (wint_t, FILE*);
int _putws (const wchar_t*);
wint_t putwchar (wint_t);
FILE* _wfopen (const wchar_t*, const wchar_t*);
FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
FILE* _wfsopen(const wchar_t*, const wchar_t*, int);
wchar_t* _wtmpnam (wchar_t*);
wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
int _wrename(const wchar_t*, const wchar_t*);
int _wremove (const wchar_t*);
void _wperror(const wchar_t*);
FILE* _wpopen(const wchar_t*, const wchar_t*);
#endif /* __MSVCRT__ */
#define _WSTDIO_DEFINED
#endif /* _WSTDIO_DEFINED */
#ifndef __STRICT_ANSI__
#ifdef __MSVCRT__
#ifndef NO_OLDNAMES
#if 0
FILE* wpopen (const wchar_t*, const wchar_t*);
@ -335,34 +351,25 @@ FILE* wpopen (const wchar_t*, const wchar_t*);
*/
#define wpopen _wpopen
#endif /* Always true */
#endif /* not NO_OLDNAMES */
#endif /* MSVCRT runtime */
/*
* Other Non ANSI functions
* Other Non ANSI wide functions
*/
int _fgetchar (void);
int _fputchar (int);
FILE* _fdopen (int, const char*);
wint_t _fgetwchar(void);
wint_t _fputwchar(wint_t);
int _fileno (FILE*);
int _getw (FILE*);
int _putw (int, FILE*);
#ifndef _NO_OLDNAMES
int fgetchar (void);
int fputchar (int);
FILE* fdopen (int, const char*);
wint_t fgetwchar(void);
wint_t fputwchar(wint_t);
int fileno (FILE*);
int getw (FILE*);
int putw (int, FILE*);
#endif /* Not _NO_OLDNAMES */
#endif /* Not __STRICT_ANSI__ */
#endif /* __STRICT_ANSI */
#ifdef __cplusplus
}

View File

@ -263,6 +263,8 @@ __MINGW_IMPORT unsigned int _winminor_dll;
double atof (const char*);
int atoi (const char*);
long atol (const char*);
int _wtoi (const wchar_t *);
long _wtol (const wchar_t *);
double strtod (const char*, char**);
double wcstod (const wchar_t*, wchar_t**);
@ -332,8 +334,6 @@ void _exit (int) _ATTRIB_NORETURN;
int _putenv (const char*);
void _searchenv (const char*, const char*, char*);
char* _itoa (int, char*, int);
char* _ltoa (long, char*, int);
char* _ecvt (double, int, int*, int*);
char* _fcvt (double, int, int*, int*);
@ -342,17 +342,30 @@ char* _gcvt (double, int, char*);
void _makepath (char*, const char*, const char*, const char*, const char*);
void _splitpath (const char*, char*, char*, char*, char*);
char* _fullpath (char*, const char*, size_t);
int _wtoi (const wchar_t *);
long _wtol (const wchar_t *);
char* _itoa (int, char*, int);
char* _ltoa (long, char*, int);
char* _ultoa(unsigned long, char*, int);
wchar_t* _itow (int, wchar_t*, int);
wchar_t* _ltow (long, wchar_t*, int);
wchar_t* _ultow (unsigned long, wchar_t*, int);
#ifdef __MSVCRT__
__int64 _atoi64(const char *);
char* _i64toa(__int64, char *, int);
char* _ui64toa(unsigned __int64, char *, int);
__int64 _atoi64(const char *);
__int64 _wtoi64(const wchar_t *);
wchar_t* _i64tow(__int64, wchar_t *, int);
wchar_t* _ui64tow(unsigned __int64, wchar_t *, int);
__int64 _wtoi64(const wchar_t *);
int _wgetenv(const wchar_t*);
int _wputenv(const wchar_t*);
void _wsearchenv(const wchar_t*, const wchar_t*, wchar_t*);
void _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*);
void _wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*);
wchar_t* _wfullpath (wchar_t*, const wchar_t*, size_t);
#endif
#ifndef _NO_OLDNAMES

View File

@ -98,8 +98,12 @@ unsigned char* _mbschr (unsigned char*, unsigned char*);
unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t);
unsigned char* _mbstok (unsigned char*, unsigned char*);
#endif /* Not __STRICT_ANSI__ */
#ifdef __MSVCRT__
int _strncoll(const char*, const char*, size_t);
int _strnicoll(const char*, const char*, size_t);
#endif
#endif /* Not __STRICT_ANSI__ */
/*
* Unicode versions of the standard calls.
@ -122,7 +126,6 @@ wchar_t* wcsstr(const wchar_t*, const wchar_t*);
wchar_t* wcstok(wchar_t*, const wchar_t*);
size_t wcsxfrm(wchar_t*, const wchar_t*, size_t);
#ifndef __STRICT_ANSI__
/*
* Unicode versions of non-ANSI functions provided by CRTDLL.
@ -141,6 +144,12 @@ wchar_t* _wcsrev (wchar_t*);
wchar_t* _wcsset (wchar_t*, wchar_t);
wchar_t* _wcsupr (wchar_t*);
#ifdef __MSVCRT__
int _wcsncoll(const wchar_t*, const wchar_t*, size_t);
int _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
#endif
#endif /* Not __STRICT_ANSI__ */

View File

@ -132,7 +132,21 @@ struct stat
time_t st_mtime; /* Modified time */
time_t st_ctime; /* Creation time */
};
#if defined (__MSVCRT__)
struct _stati64 {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
__int64 st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
#endif /* __MSVCRT__ */
#define _STAT_DEFINED
#endif /* _STAT_DEFINED */
@ -144,14 +158,15 @@ int _fstat (int, struct _stat*);
int _chmod (const char*, int);
int _stat (const char*, struct _stat*);
#ifndef _WSTAT_DEFINED
/* also declared in wchar.h */
#if defined (__MSVCRT__)
int _fstati64(int, struct _stati64 *);
int _stati64(const char *, struct _stati64 *);
#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
int _wstat(const wchar_t*, struct _stat*);
int _wstati64 (const wchar_t*, struct _stati64*);
#define _WSTAT_DEFINED
#endif /* _WSTAT_DEFIND */
#endif /* __MSVCRT__ */
#ifndef _NO_OLDNAMES

View File

@ -70,10 +70,17 @@ typedef wchar_t TCHAR;
#define _T(x) L ## x
#endif
/* for porting from other Windows compilers */
#if 0 // no wide startup module
#define _tmain wmain
#define _tWinMain wWinMain
#define _tenviron _wenviron
#define __targv __wargv
#endif
/*
* Unicode functions
*/
#define _tprintf wprintf
#define _ftprintf fwprintf
#define _stprintf swprintf
@ -143,14 +150,55 @@ typedef wchar_t TCHAR;
#define _istascii iswascii
#define _totupper towupper
#define _totlower towlower
#define _tcsftime wcsftime
/* Macro functions */
#define _tcsdec _wcsdec
#define _tcsinc _wcsinc
#define _tcsnbcnt _wcsncnt
#define _tcsnccnt _wcsncnt
#define _tcsnextc _wcsnextc
#define _tcsninc _wcsninc
#define _tcsspnp _wcsspnp
#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1)
#define _wcsinc(_wcs) ((_wcs)+1)
#define _wcsnextc(_wcs) ((unsigned int) *(_wcs))
#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc)))
#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs))
#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL)
#if 1 // defined __MSVCRT__
/*
* These wide functions not in crtdll.dll.
* Define macros anyway so that _wfoo rather than _tfoo is undefined
*/
#define _ttoi64 _wtoi64
#define _i64tot _i64tow
#define _ui64tot _ui64tow
#define _tasctime _wasctime
#define _tctime _wctime
#define _tstrdate _wstrdate
#define _tstrtime _wstrtime
#define _tutime _wutime
#define _tcsftime wcsftime
#define _ttoi _wtoi
#define _ttol _wtol
#define _tcsnccoll _wcsncoll
#define _tcsncoll _wcsncoll
#define _tcsncicoll _wcsnicoll
#define _tcsnicoll _wcsnicoll
#define _taccess _waccess
#define _tchmod _wchmod
#define _tcreat _wcreat
#define _tfindfirst _wfindfirst
#define _tfindnext _wfindnext
#define _tmktemp _wmktemp
#define _topen _wopen
#define _tremove _wremove
#define _trename _wrename
#define _tsopen _wsopen
#define _tunlink _wunlink
#define _tfinddata_t _wfinddata_t
#define _tfindfirsti64 _wfindfirsti64
#define _tfindnexti64 _wfindnexti64
#define _tfinddatai64_t _wfinddatai64_t
#endif /* __MSVCRT__ */
#else /* Not _UNICODE */
@ -173,6 +221,12 @@ typedef char TCHAR;
#define _T(x) x
#endif
/* for porting from other Windows compilers */
#define _tmain main
#define _tWinMain WinMain
#define _tenviron _environ
#define __targv __argv
/*
* Non-unicode (standard) functions
*/
@ -252,8 +306,48 @@ typedef char TCHAR;
#define _tstrtime _strtime
#define _tutime _utime
#define _tcsftime strftime
#define _ttoi atoi
#define _ttol atol
/* Macro functions */
#define _tcsdec _strdec
#define _tcsinc _strinc
#define _tcsnbcnt _strncnt
#define _tcsnccnt _strncnt
#define _tcsnextc _strnextc
#define _tcsninc _strninc
#define _tcsspnp _strspnp
#define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1)
#define _strinc(_str) ((_str)+1)
#define _strnextc(_str) ((unsigned int) *(_str))
#define _strninc(_str, _inc) (((_str)+(_inc)))
#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str))
#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL)
#define _tchmod _chmod
#define _tcreat _creat
#define _tfindfirst _findfirst
#define _tfindnext _findnext
#define _tmktemp _mktemp
#define _topen _open
#define _taccess _access
#define _tremove remove
#define _trename rename
#define _tsopen _sopen
#define _tunlink _unlink
#define _tfinddata_t _finddata_t
#if 1 // defined __MSVCRT__
/* Not in crtdll.dll. Define macros anyway? */
#define _ttoi64 _atoi64
#define _i64tot _i64toa
#define _ui64tot _ui64toa
#define _tcsnccoll _strncoll
#define _tcsncoll _strncoll
#define _tcsncicoll _strnicoll
#define _tcsnicoll _strnicoll
#define _tfindfirsti64 _findfirsti64
#define _tfindnexti64 _findnexti64
#define _tfinddatai64_t _finddatai64_t
#endif /* __MSVCRT__ */
#endif /* Not _UNICODE */

View File

@ -69,36 +69,87 @@ struct _wfinddata_t {
_fsize_t size;
wchar_t name[FILENAME_MAX]; /* may include spaces. */
};
struct _wfinddatai64_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
__int64 size;
wchar_t name[FILENAME_MAX];
};
#define _WFINDDATA_T_DEFINED
#endif
/* Wide character versions. Also defined in io.h. */
/* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
applies to other wide character versions? */
int _waccess(const wchar_t *, int);
int _wchmod(const wchar_t *, int);
int _wcreat(const wchar_t *, int);
long _wfindfirst(wchar_t *, struct _wfinddata_t *);
#if !defined (_WIO_DEFINED)
#if defined (__MSVCRT__)
int _waccess(const wchar_t*, int);
int _wchmod(const wchar_t*, int);
int _wcreat(const wchar_t*, int);
long _wfindfirst(wchar_t*, struct _wfinddata_t *);
int _wfindnext(long, struct _wfinddata_t *);
int _wunlink(const wchar_t *);
int _wrename(const wchar_t *, const wchar_t *);
int _wremove (const wchar_t *);
int _wopen(const wchar_t *, int, ...);
int _wsopen(const wchar_t *, int, int, ...);
wchar_t * _wmktemp(wchar_t *);
int _wunlink(const wchar_t*);
int _wopen(const wchar_t*, int, ...);
int _wsopen(const wchar_t*, int, int, ...);
wchar_t * _wmktemp(wchar_t*);
long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
int _wfindnexti64(long, struct _wfinddatai64_t*);
#endif /* defined (__MSVCRT__) */
#define _WIO_DEFINED
#endif /* _WIO_DEFINED */
#ifndef _WSTDIO_DEFINED
/* also in stdio.h - keep in sync */
int fwprintf (FILE*, const wchar_t*, ...);
int wprintf (const wchar_t*, ...);
int swprintf (wchar_t*, const wchar_t*, ...);
int vfwprintf (FILE*, const wchar_t*, va_list);
int vwprintf (const wchar_t*, va_list);
int vswprintf (wchar_t*, const wchar_t*, va_list);
int fwscanf (FILE*, const wchar_t*, ...);
int wscanf (const wchar_t*, ...);
int swscanf (wchar_t*, const wchar_t*, ...);
wint_t fgetwc (FILE*);
wint_t fputwc (wchar_t, FILE*);
wint_t ungetwc (wchar_t, FILE*);
#ifdef __MSVCRT__
wchar_t* fgetws (wchar_t*, int, FILE*);
int fputws (const wchar_t*, FILE*);
wint_t getwc (FILE*);
wint_t getwchar (void);
wchar_t* _getws (wchar_t*);
wint_t putwc (wint_t, FILE*);
int _putws (const wchar_t*);
wint_t putwchar (wint_t);
FILE* _wfopen (const wchar_t*, const wchar_t*);
FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
FILE* _wfsopen(const wchar_t*, const wchar_t*, int);
wchar_t* _wtmpnam (wchar_t*);
wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
int _wrename(const wchar_t*, const wchar_t*);
int _wremove (const wchar_t*)
FILE* _wpopen(const wchar_t*, const wchar_t*)
void _wperror(const wchar_t*);
#endif /* __MSVCRT__ */
#define _WSTDIO_DEFINED
#endif /* _WSTDIO_DEFINED */
#ifndef _WDIRECT_DEFINED
/* Also in direct.h */
#ifdef __MSVCRT__
int _wchdir(const wchar_t*);
wchar_t* _wgetcwd(wchar_t*, int);
wchar_t* _wgetdcwd(int, wchar_t*, int);
int _wmkdir(const wchar_t*);
int _wrmdir(const wchar_t*);
#endif /* __MSVCRT__ */
#define _WDIRECT_DEFINED
#endif
#endif /* _WDIRECT_DEFINED */
#ifndef _STAT_DEFINED
/*
@ -139,41 +190,56 @@ struct stat
time_t st_mtime; /* Modified time */
time_t st_ctime; /* Creation time */
};
#if defined (__MSVCRT__)
struct _stati64 {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
__int64 st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
#endif /* __MSVCRT__ */
#define _STAT_DEFINED
#endif /* _STAT_DEFINED */
#ifndef _WSTAT_DEFINED
#if !defined ( _WSTAT_DEFINED)
/* also declared in sys/stat.h */
int _wstat(const wchar_t *, struct _stat *);
#if defined __MSVCRT__
int _wstat(const wchar_t*, struct _stat*);
int _wstati64 (const wchar_t*, struct _stati64*);
#endif /* __MSVCRT__ */
#define _WSTAT_DEFINED
#endif /* _WSTAT_DEFINED */
#endif /* ! _WSTAT_DEFIND */
#ifndef _WTIME_DEFINED
#ifdef __MSVCRT__
/* wide function prototypes, also declared in time.h */
wchar_t * _wasctime(const struct tm*);
wchar_t * _wctime(const time_t*);
wchar_t* _wstrdate(wchar_t*);
wchar_t* _wstrtime(wchar_t*);
#endif /* __MSVCRT__ */
size_t wcsftime(wchar_t*, size_t, const wchar_t*, const struct tm*);
#define _WTIME_DEFINED
#endif /* _WTIME_DEFINED */
#ifndef _WLOCALE_DEFINED /* also declared in locale.h */
wchar_t* _wsetlocale(int, const wchar_t*);
#define _WLOCALE_DEFINED
#endif
#ifndef _NO_OLDNAMES
/* Wide character versions. Also declared in wchar.h. */
/* CHECK: Are these in the olnames??? */
/* Wide character versions. Also declared in io.h. */
/* CHECK: Are these in the oldnames??? NO! */
#if (0)
int waccess(const wchar_t *, int);
int wchmod(const wchar_t *, int);
int wcreat(const wchar_t *, int);
@ -185,7 +251,7 @@ int wremove (const wchar_t *);
int wopen(const wchar_t *, int, ...);
int wsopen(const wchar_t *, int, int, ...);
wchar_t * wmktemp(wchar_t *);
#endif
#endif /* _NO_OLDNAMES */
#endif /* not __STRICT_ANSI__ */
@ -202,8 +268,8 @@ size_t wcrtomb(char *, wchar_t, mbstate_t *);
size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
int wctob(wint_t);
#ifdef __cplusplus
}
#ifdef __cplusplus
} /* end of extern "C" */
#endif
#endif /* Not RC_INVOKED */

View File

@ -51,10 +51,12 @@
#include <profile.h>
#ifdef __MINGW32__
#if !defined _BSDTYPES_DEFINED
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
#define _BSDTYPES_DEFINED
#endif
/*