Changes and improved mingw32 compile

svn path=/trunk/; revision=330
This commit is contained in:
Boudewijn Dekker 1999-03-22 20:57:12 +00:00
parent 8bf8d53376
commit b3c424cd40
45 changed files with 227 additions and 244 deletions

View file

@ -10,14 +10,11 @@
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <io.h>
extern int char_avail;
extern int ungot_char;
int getch( void )
{
return _getch();
}
int
_getch(void)
@ -32,7 +29,7 @@ _getch(void)
}
else
{
ReadConsoleA(filehnd(stdin->_file), &c,1,&NumberOfCharsRead ,NULL);
ReadConsoleA(_get_osfhandle(stdin->_file), &c,1,&NumberOfCharsRead ,NULL);
}
if ( c == 10 )

View file

@ -1,3 +1,18 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/crtdll/conio/kbhit.c
* PURPOSE: Checks for keyboard hits
* PROGRAMER: Boudewijn Dekker
* UPDATE HISTORY:
* 28/12/98: Created
*/
#include <windows.h>
#include <conio.h>
// FIXME PeekCosoleInput returns more than keyboard hits
int
_kbhit(void)
{

View file

@ -1,5 +1,6 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <ctype.h>
#include <wchar.h>
#undef toupper
int toupper(int c)
@ -7,7 +8,7 @@ int toupper(int c)
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
}
#undef towupper
int towupper(int c)
wchar_t towupper(wchar_t c)
{
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
}
@ -17,7 +18,7 @@ int _toupper(int c)
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
}
int _towupper(int c)
wchar_t _towupper(wchar_t c)
{
return (c >= 'a' && c <= 'z') ? c + 'A' - 'a' : c;
}

View file

@ -13,7 +13,8 @@ unsigned int _getdiskfree(unsigned int _drive, struct _diskfree_t *_diskspace)
if ( _diskspace == NULL )
return 0;
if ( !GetDiskFreeSpaceA(RootPathName,&_diskspace->sectors_per_cluster,&_diskspace->bytes_per_sector,&_diskspace->avail_clusters,&_diskspace->total_clusters ) )
if ( !GetDiskFreeSpaceA(RootPathName,(LPDWORD)&_diskspace->sectors_per_cluster,(LPDWORD)&_diskspace->bytes_per_sector,
(LPDWORD )&_diskspace->avail_clusters,(LPDWORD )&_diskspace->total_clusters ) )
return 0;
return _diskspace->avail_clusters;
}

View file

@ -1,12 +1,21 @@
#include <io.h>
#include <windows.h>
#define F_OK 0x01
#define R_OK 0x02
#define W_OK 0x04
#define X_OK 0x08
#define D_OK 0x10
#ifndef F_OK
#define F_OK 0x01
#endif
#ifndef R_OK
#define R_OK 0x02
#endif
#ifndef W_OK
#define W_OK 0x04
#endif
#ifndef X_OK
#define X_OK 0x08
#endif
#ifndef D_OK
#define D_OK 0x10
#endif
int _access( const char *_path, int _amode )
{

View file

@ -1,16 +1,11 @@
#include <io.h>
#include <windows.h>
//#include <libc/file.h>
#include <libc/file.h>
int close(int _fd)
{
return _close(_fd);
}
int _close(int _fd)
{
CloseHandle(filehnd(_fd));
CloseHandle(_get_osfhandle(_fd));
return __fileno_close(_fd);
}

View file

@ -0,0 +1,14 @@
#include <windows.h>
#include <io.h>
#include <errno.h>
#include <libc/file.h>
int _commit(int _fd)
{
if (! FlushFileBuffers(_get_osfhandle(_fd)) ) {
__set_errno(EBADF);
return -1;
}
return 0;
}

View file

@ -1,13 +1,8 @@
#include <windows.h>
#include <io.h>
#undef dup
int dup( int handle )
{
return _dup(handle);
}
int _dup( int handle )
{
return _open_osfhandle(filehnd(handle), 0666);
return _open_osfhandle(_get_osfhandle(handle), 0666);
}

View file

@ -10,15 +10,10 @@
#include <io.h>
#include <windows.h>
size_t read(int _fd, void *_buf, size_t _nbyte)
{
return _read(_fd,_buf,_nbyte);
}
size_t _read(int _fd, void *_buf, size_t _nbyte)
{
size_t _rbyte;
if ( !ReadFile(filehnd(_fd),_buf,_nbyte,&_rbyte,NULL) ) {
printf("%d\n",GetLastError());
if ( !ReadFile(_get_osfhandle(_fd),_buf,_nbyte,&_rbyte,NULL) ) {
return -1;
}

View file

@ -10,14 +10,11 @@
#include <windows.h>
#include <io.h>
int unlink( const char *filename )
{
return _unlink(filename);
}
int _unlink( const char *filename )
{
if ( !DeleteFile(filename) )
if ( !DeleteFileA(filename) )
return -1;
return 0;
}

View file

@ -10,16 +10,12 @@
#include <io.h>
#include <windows.h>
int write(int _fd, const void *_buf,int _nbyte)
{
return _write(_fd,_buf,_nbyte);
}
size_t _write(int _fd, const void *_buf, size_t _nbyte)
{
size_t _wbyte;
if ( !WriteFile(filehnd(_fd),_buf,_nbyte,&_wbyte,NULL) ) {
printf("%d\n",GetLastError());
if ( !WriteFile(_get_osfhandle(_fd),_buf,_nbyte,&_wbyte,NULL) ) {
return -1;
}
return _wbyte;

View file

@ -16,7 +16,7 @@ DIRECT_OBJECTS = direct/chdir.o direct/chdrive.o direct/getcwd.o direct/getdrive
direct/rmdir.o direct/mkdir.o direct/getdfree.o
MISC_OBJECTS = misc/sleep.o misc/getargs.o misc/crtfmode.o misc/crtglob.o
MISC_OBJECTS = misc/sleep.o misc/GetArgs.o misc/CRTfmode.o misc/CRTglob.o
STRING_OBJECTS = string/memchr.o string/memcmp.o string/strcat.o \
string/strchr.o string/strcmp.o string/strcoll.o \
@ -54,12 +54,12 @@ IO_OBJECTS = io/access.o io/close.o io/create.o io/dup.o io/dup2.o io/find.o io/
io/chmod.o io/chsize.o io/commit.o io/locking.o io/pipe.o io/sopen.o io/filelen.o\
io/umask.o io/tell.o io/eof.o
STDLIB_OBJECTS = stdlib/abort.o stdlib/abs.o stdlib/atexit.o stdlib/atof.o stdlib/atoi.o stdlib/atold.o \
stdlib/bsearch.o stdlib/div.o stdlib/errno.o stdlib/exit.o \
STDLIB_OBJECTS = stdlib/abort.o stdlib/abs.o stdlib/atexit.o stdlib/atof.o stdlib/atoi.o \
stdlib/bsearch.o stdlib/div.o stdlib/errno.o stdlib/Exit.o \
stdlib/fullpath.o stdlib/labs.o stdlib/ldiv.o stdlib/llabs.o stdlib/lldiv.o \
stdlib/makepath.o stdlib/malloc.o stdlib/putenv.o stdlib/qsort.o \
stdlib/rand.o stdlib/senv.o stdlib/splitp.o stdlib/strtod.o stdlib/strtol.o \
stdlib/strtoul.o stdlib/strtold.o
stdlib/strtoul.o
SIGNAL_OBJECTS = signal/signal.o
@ -67,7 +67,7 @@ PROCESS_OBJECTS = process/cwait.o process/dll.o process/spawnl.o process/spawnlp
process/spawnv.o process/spawnve.o process/spawnle.o process/execl.o process/execlp.o process/execlpe.o \
process/execvpe.o process/execvp.o process/execv.o process/execle.o
TIME_OBJECTS = time/ctime.o time/difftime.o time/strftime.o
TIME_OBJECTS = time/ctime.o time/difftime.o time/strftime.o time/time.o time/clock.o
FLOAT_OBJECTS = float/fpreset.o float/clearfp.o float/cntrlfp.o float/statfp.o float/logb.o

View file

@ -2,15 +2,19 @@
#include <stdlib.h>
#include <string.h>
char *acmdln_dll;
unsigned int commode_dll;
#undef _acmdln_dll
char *_acmdln_dll;
#undef _commode_dll
unsigned int _commode_dll;
unsigned int fmode_dll;
unsigned int winmajor_dll;
unsigned int winminor_dll;
unsigned int winver_dll;
unsigned int osver_dll;
#undef _winmajor_dll
unsigned int _winmajor_dll;
#undef _winminor_dll
unsigned int _winminor_dll;
#undef _winver_dll
unsigned int _winver_dll;
#undef _osver_dll
unsigned int _osver_dll;
#undef __argv
#undef __argc
@ -19,51 +23,46 @@ char *xargv[1024];
char **__argv = xargv;
int __argc = 0;
unsigned int *__argc_dll = &__argc;
int *__argc_dll = &__argc;
char ***__argv_dll = &__argv;
char *xenv;
#undef _environ
char **_environ;
#undef _environ_dll
char *** _environ_dll = &_environ;
#undef environ
char **environ;
int __GetMainArgs(int *argc,char ***argv,char **env,int flag)
{
char *cmdline;
int i,afterlastspace;
DWORD version;
// acmdln_dll = cmdline = strdup( GetCommandLineA() );
_acmdln_dll = GetCommandLineA();
version = GetVersion();
osver_dll = version >> 16;
winminor_dll = version & 0xFF;
winmajor_dll = (version>>8) & 0xFF;
winver_dll = ((version >> 8) & 0xFF) + ((version & 0xFF) << 8);
_osver_dll = version >> 16;
_winminor_dll = version & 0xFF;
_winmajor_dll = (version>>8) & 0xFF;
_winver_dll = ((version >> 8) & 0xFF) + ((version & 0xFF) << 8);
/* missing threading init */
i=0;
cmdline = GetCommandLineA();
afterlastspace=0;
dprintf("cmdline '%s'\n",cmdline);
while (cmdline[i])
{
if (cmdline[i]==' ')
{
dprintf("cmdline '%s'\n",cmdline);
while (_acmdln_dll[i]) {
if (_acmdln_dll[i]==' ') {
__argc++;
cmdline[i]='\0';
__argv[__argc-1] = strdup( cmdline+afterlastspace);
_acmdln_dll[i]='\0';
__argv[__argc-1] = strdup(_acmdln_dll+afterlastspace);
i++;
while (cmdline[i]==' ')
while (_acmdln_dll[i]==' ')
i++;
if (cmdline[i])
if (_acmdln_dll[i])
afterlastspace=i;
}
else
@ -74,23 +73,21 @@ int __GetMainArgs(int *argc,char ***argv,char **env,int flag)
__argc++;
cmdline[i]='\0';
__argv[__argc-1] = strdup( cmdline+afterlastspace);
_acmdln_dll[i]='\0';
__argv[__argc-1] = strdup(_acmdln_dll+afterlastspace);
HeapValidate(GetProcessHeap(),0,NULL);
*argc = __argc;
*argv = __argv;
// xenv = GetEnvironmentStringsA();
_environ = &xenv;
_environ = (char **)GetEnvironmentStringsA();;
_environ_dll = &_environ;
environ = &xenv;
env = &xenv;
argc = __argc_dll;
argv = __argv_dll;
env = _environ_dll;
return 0;
}
int _chkstk()
int _chkstk(void)
{
return 0;
}

View file

@ -1,10 +1,9 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <process.h>
#include <stdlib.h>
extern char *const *_environ;
int execl(const char *path, const char *argv0, ...)
int _execl(const char *path, const char *argv0, ...)
{
return spawnve(P_OVERLAY, path, (char *const*)&argv0, _environ);
return _spawnve(P_OVERLAY, path, (char *const*)&argv0, _environ);
}

View file

@ -10,8 +10,8 @@
u.ccp = *++ptr; \
ptr = u.ccpp;
int execle(const char *path, const char *argv0, ... /*, const char **envp */)
int _execle(const char *path, const char *argv0, ... /*, const char **envp */)
{
scan_ptr();
return spawnve(P_OVERLAY, path, (char *const *)&argv0, (char *const *)ptr);
return _spawnve(P_OVERLAY, path, (char *const *)&argv0, (char *const *)ptr);
}

View file

@ -1,11 +1,9 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <process.h>
#include <stdlib.h>
extern char * const *_environ;
int execlp(const char *path, const char *argv0, ...)
int _execlp(const char *path, const char *argv0, ...)
{
return spawnvpe(P_OVERLAY, path, (char * const *)&argv0, _environ);
return _spawnvpe(P_OVERLAY, path, (char * const *)&argv0, _environ);
}

View file

@ -1,11 +1,9 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
//#include <libc/stubs.h>
//#include <unistd.h>
#include <process.h>
#include <stdlib.h>
extern char * const *_environ;
int execv(const char *path, const char * const *argv)
int _execv(const char *path, const char * const *argv)
{
return spawnve(P_OVERLAY, path, argv, _environ);
return _spawnve(P_OVERLAY, path, argv, _environ);
}

View file

@ -1,11 +1,9 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
//#include <libc/stubs.h>
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details *///#include <libc/stubs.h>
//#include <unistd.h>
#include <process.h>
#include <stdlib.h>
extern char *const *_environ;
int execvp(const char *path,const char * const argv[])
int _execvp(const char *path,const char * const argv[])
{
return spawnvpe(P_OVERLAY, path, argv, _environ);
return _spawnvpe(P_OVERLAY, path, argv, _environ);
}

View file

@ -3,13 +3,9 @@
#include <process.h>
int execvpe(const char *path,const char * const argv[],const char * const envp[])
{
return spawnvpe(P_OVERLAY, path, argv, envp);
}
int _execvpe(const char *path,const char * const argv[],const char * const envp[])
{
return spawnvpe(P_OVERLAY, path, argv, envp);
return _spawnvpe(P_OVERLAY, path, argv, envp);
}

View file

@ -4,7 +4,7 @@
extern char **_environ;
int spawnl(int mode, const char *path, const char *argv0, ...)
int _spawnl(int mode, const char *path, const char *argv0, ...)
{
return spawnve(mode, path, (char * const *)&argv0, _environ);
}

View file

@ -9,8 +9,8 @@
u.ccp = *++ptr; \
ptr = u.ccpp;
int spawnle(int mode, const char *path, const char *argv0, ... /*, const char **envp */)
int _spawnle(int mode, const char *path, const char *argv0, ... /*, const char **envp */)
{
scan_ptr();
return spawnve(mode, path, (char * const *)&argv0, (char * const *)ptr);
return _spawnve(mode, path, (char * const *)&argv0, (char * const *)ptr);
}

View file

@ -1,10 +1,9 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <process.h>
#include <stdlib.h>
extern char **_environ;
int spawnlp(int mode, const char *path, const char *argv0, ...)
int _spawnlp(int mode, const char *path, const char *argv0, ...)
{
return spawnvpe(mode, path, (char * const *)&argv0, (char * const *)_environ);
return _spawnvpe(mode, path, (char * const *)&argv0, (char * const *)_environ);
}

View file

@ -8,8 +8,8 @@
u.ccp = *++ptr; \
ptr = u.ccpp;
int spawnlpe(int mode, const char *path, const char *argv0, ... /*, const char **envp */)
int _spawnlpe(int mode, const char *path, const char *argv0, ... /*, const char **envp */)
{
scan_ptr();
return spawnvpe(mode, path, (char * const *)&argv0, (char * const *)ptr);
return _spawnvpe(mode, path, (char * const *)&argv0, (char * const *)ptr);
}

View file

@ -1,10 +1,10 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <process.h>
#include <stdlib.h>
extern char **_environ;
int spawnv(int mode, const char *path,const char *const argv[])
int _spawnv(int mode, const char *path,const char *const argv[])
{
return spawnve(mode, path, (char * const *)argv, _environ);
return _spawnve(mode, path, (char * const *)argv, _environ);
}

View file

@ -3,9 +3,10 @@
#include <windows.h>
#include <stdio.h>
int _p_overlay = 2;
int spawnve(int mode, const char *path,const char *const argv[],const char *const envp[])
int _spawnve(int mode, const char *path,const char *const argv[],const char *const envp[])
{
char ApplicationName[MAX_PATH];
@ -35,7 +36,7 @@ int spawnve(int mode, const char *path,const char *const argv[],const char *cons
if (mode == P_OVERLAY)
exit(i);
_exit(i);
// _P_NOWAIT or _P_NOWAITO
return ProcessInformation.hProcess;

View file

@ -1,8 +1,7 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <process.h>
extern char **_environ;
#include <stdlib.h>
int spawnvp(int mode, const char *path,const char *const argv[])
{

View file

@ -4,20 +4,10 @@
#include <errno.h>
int spawnvpe(int mode, const char *path,const char *const argv[],const char *const envp[])
int _spawnvpe(int mode, const char *path,const char *const argv[],const char *const envp[])
{
char rpath[300];
union {const char * const *cpcp; char **cpp; } u;
u.cpcp = envp;
/*
if (!__dosexec_find_on_path(path, u.cpp, rpath))
{
errno = ENOENT;
return -1;
}
else
*/
return spawnve(mode, rpath, argv, envp);
return spawnve(mode, rpath, argv, envp);
}

View file

@ -1,17 +1,14 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
//#include <libc/stubs.h>
#include <sys/types.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
//#include <unistd.h>
#include <libc/file.h>
//#include <libc/local.h>
//#include <libc/dosio.h>
FILE * __alloc_file(void);
extern int _fmode;
FILE *
fopen(const char *file, const char *mode)

View file

@ -1,5 +1,6 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <stdio.h>
#include <wchar.h>
#include <libc/file.h>
int
@ -9,7 +10,7 @@ fputc(int c, FILE *fp)
}
int
fputwc(int c, FILE *fp)
fputwc(wchar_t c, FILE *fp)
{
return putc(c, fp);
}

View file

@ -1,6 +1,7 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <stdio.h>
#include <libc/file.h>
#include <string.h>
#include <windows.h>
int
@ -35,7 +36,7 @@ fputs(const char *s, FILE *f)
return(r);
*/
int r = 0;
if ( !WriteFile(filehnd(f->_file),s,strlen(s),&r,NULL) )
if ( !WriteFile(_get_osfhandle(f->_file),s,strlen(s),&r,NULL) )
return -1;
return r;

View file

@ -1,13 +1,12 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
//#include <libc/stubs.h>
#include <sys/types.h>
#include <stdio.h>
#include <fcntl.h>
//#include <unistd.h>
#include <libc/file.h>
#include <io.h>
extern int _fmode;
FILE *
freopen(const char *file, const char *mode, FILE *f)

View file

@ -1,15 +1,16 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <stdio.h>
#include <errno.h>
#include <libc/file.h>
int
fsetpos(FILE *stream, const fpos_t *pos)
fsetpos(FILE *stream, fpos_t *pos)
{
if (stream && pos)
{
fseek(stream, (long)(*pos), SEEK_SET);
return 0;
}
//errno = EFAULT;
return 1;
__set_errno(EFAULT);
return -1;
}

View file

@ -3,12 +3,11 @@
#include <windows.h>
#include <libc/file.h>
#undef getc
int getc(FILE *f)
{
int c;
DWORD NumberOfBytesRead;
if ( !ReadFile(filehnd(f->_file),&c, 1, &NumberOfBytesRead, NULL) )
if ( !ReadFile(_get_osfhandle(f->_file),&c, 1, &NumberOfBytesRead, NULL) )
return -1;
if ( NumberOfBytesRead == 0 )
return -1;

View file

@ -3,7 +3,6 @@
#include <windows.h>
#include <libc/file.h>
#undef putc
int putc(int c, FILE *fp)
{
@ -21,7 +20,7 @@ int putc(int c, FILE *fp)
}
return(_flsbuf(c,fp));
}
if ( !WriteFile(filehnd(fp->_file),&c,1,&r,NULL) )
if ( !WriteFile(_get_osfhandle(fp->_file),&c,1,&r,NULL) )
return -1;
return r;

View file

@ -1,6 +1,8 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <stdio.h>
#include <io.h>
#include <windows.h>
#include <string.h>
#undef putchar
int
@ -14,8 +16,8 @@ puts(const char *s)
return putchar('\n');
*/
int r = 0;
if ( !WriteFile(filehnd(stdout->_file),s,strlen(s),&r,NULL) )
if ( !WriteFile(_get_osfhandle(stdout->_file),s,strlen(s),&r,NULL) )
return -1;
return putchar('\n');;
return putchar('\n');
}

View file

@ -1,11 +1,11 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <stdlib.h>
// #include <libc/unconst.h>
void *
bsearch(const void *key, const void *base, size_t nelem,
bsearch(const void *key, const void *base0, size_t nelem,
size_t size, int (*cmp)(const void *ck, const void *ce))
{
char *base = (char *)base0;
int lim, cmpval;
void *p;

View file

@ -1,3 +1,4 @@
#include <windows.h>
#include <errno.h>
#undef errno
@ -6,6 +7,9 @@ int errno;
#undef _doserrno
int _doserrno;
#undef _fpecode
int fpecode;
int *_errno(void)
{
return &errno;
@ -22,7 +26,7 @@ int __set_errno (int error)
int * __fpecode ( void )
{
return NULL;
return &fpecode;
}
int* __doserrno(void)

View file

@ -171,9 +171,8 @@ qst(char *base, char *max)
* with qst(), and then a cleanup insertion sort ourselves. Sound simple?
* It's not...
*/
void
qsort(void *base0, size_t n, size_t size, int (*compar)(const void *, const void *))
qsort(const void *base0, size_t n, size_t size, _pfunccmp_t compar)
{
char *base = (char *)base0;
char c, *i, *j, *lo, *hi;

View file

@ -3,7 +3,7 @@
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <libc/file.h>
long
strtol(const char *nptr, char **endptr, int base)
@ -81,7 +81,7 @@ strtol(const char *nptr, char **endptr, int base)
if (any < 0)
{
acc = neg ? LONG_MIN : LONG_MAX;
errno = ERANGE;
__set_errno(ERANGE);
}
else if (neg)
acc = -acc;

View file

@ -3,7 +3,8 @@
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <libc/unconst.h>
#include <libc/file.h>
/*
* Convert a string to an unsigned long integer.
@ -65,11 +66,11 @@ strtoul(const char *nptr, char **endptr, int base)
if (any < 0)
{
acc = ULONG_MAX;
errno = ERANGE;
__set_errno(ERANGE);
}
else if (neg)
acc = -acc;
if (endptr != 0)
*endptr = any ? unconst(s, char *) - 1 : unconst(nptr, char *);
*endptr = any ? (char *)s - 1 : (char *)nptr;
return acc;
}

View file

@ -20,7 +20,7 @@ fstat(int handle, struct stat *statbuf)
return -1;
}
if ( !GetFileInformationByHandle(filehnd(handle),&FileInformation) )
if ( !GetFileInformationByHandle(_get_osfhandle(handle),&FileInformation) )
return -1;
statbuf->st_ctime = FileTimeToUnixTime( &FileInformation.ftCreationTime,NULL);
statbuf->st_atime = FileTimeToUnixTime( &FileInformation.ftLastAccessTime,NULL);

View file

@ -0,0 +1,34 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/crtdll/time/clock.c
* PURPOSE: Get elapsed time
* PROGRAMER: Boudewijn Dekker
* UPDATE HISTORY:
* 28/12/98: Created
*/
#include <windows.h>
#include <time.h>
// should be replace by a call to RtltimeToSecondsSince70
time_t FileTimeToUnixTime( const FILETIME *filetime, DWORD *remainder );
clock_t clock ( void )
{
FILETIME CreationTime;
FILETIME ExitTime;
FILETIME KernelTime;
FILETIME UserTime;
FILETIME SystemTime;
DWORD Remainder;
if ( !GetProcessTimes(-1,&CreationTime,&ExitTime,&KernelTime,&UserTime ) )
return -1;
if ( !GetSystemTimeAsFileTime(&SystemTime) )
return -1;
return FileTimeToUnixTime( &SystemTime,&Remainder ) - FileTimeToUnixTime( &CreationTime,&Remainder );
}

View file

@ -37,24 +37,8 @@ static char sccsid[] = "@(#)ctime.c 5.23 (Berkeley) 6/22/90";
*/
#ifndef _TM_DEFINED
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
char *tm_zone;
int tm_gmtoff;
};
#define _TM_DEFINED
#endif
//#include <libc/stubs.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
@ -63,11 +47,8 @@ struct tm {
#include <stdlib.h>
#include <windows.h>
//#include <unistd.h>
#include "tzfile.h"
//#include <libc/unconst.h>
#include <io.h>
#include "posixrul.h"
@ -1422,12 +1403,5 @@ mktime(struct tm * tmp)
}
time_t
time(time_t *t)
{
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
}

View file

@ -1,21 +1,6 @@
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#include <string.h>
#ifndef _TM_DEFINED
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
char *tm_zone;
int tm_gmtoff;
};
#define _TM_DEFINED
#endif
#include <time.h>

View file

@ -1,30 +1,27 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#ifndef _TM_DEFINED
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
char *tm_zone;
int tm_gmtoff;
};
#define _TM_DEFINED
#endif
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/crtdll/conio/time.c
* PURPOSE: Get system time
* PROGRAMER: Boudewijn Dekker
* UPDATE HISTORY:
* 28/12/98: Created
*/
#include <time.h>
#include <windows.h>
#include <time.h>
// should be replace by a call to RtltimeToSecondsSince70
// and moved to a header
time_t FileTimeToUnixTime( const FILETIME *filetime, DWORD *remainder );
time_t
time(time_t *t)
{
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
FILETIME SystemTime;
DWORD Remainder;
GetSystemTimeAsFileTime(&SystemTime);
return FileTimeToUnixTime( &SystemTime,&Remainder );
}