VS2010 comes with stdint.h [1] VS2013 comes with inttypes.h [2] [1] https://stackoverflow.com/a/2628014/3906760 [2] https://blogs.msdn.microsoft.com/vcblog/2013/07/19/c99-library-support-in-visual-studio-2013/ Signed-off-by: Sven Strickroth <sven@cs-ware.de> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Acked-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _UNISTD_
 | 
						|
#define _UNISTD_
 | 
						|
 | 
						|
/* Win32 define for porting git*/
 | 
						|
 | 
						|
#ifndef _MODE_T_
 | 
						|
#define	_MODE_T_
 | 
						|
typedef unsigned short _mode_t;
 | 
						|
 | 
						|
#ifndef	_NO_OLDNAMES
 | 
						|
typedef _mode_t	mode_t;
 | 
						|
#endif
 | 
						|
#endif	/* Not _MODE_T_ */
 | 
						|
 | 
						|
#ifndef _SSIZE_T_
 | 
						|
#define _SSIZE_T_
 | 
						|
typedef long _ssize_t;
 | 
						|
 | 
						|
#ifndef	_OFF_T_
 | 
						|
#define	_OFF_T_
 | 
						|
typedef long _off_t;
 | 
						|
 | 
						|
#ifndef	_NO_OLDNAMES
 | 
						|
typedef _off_t	off_t;
 | 
						|
#endif
 | 
						|
#endif	/* Not _OFF_T_ */
 | 
						|
 | 
						|
 | 
						|
#ifndef	_NO_OLDNAMES
 | 
						|
typedef _ssize_t ssize_t;
 | 
						|
#endif
 | 
						|
#endif /* Not _SSIZE_T_ */
 | 
						|
 | 
						|
typedef signed char int8_t;
 | 
						|
typedef unsigned char   uint8_t;
 | 
						|
typedef short  int16_t;
 | 
						|
typedef unsigned short  uint16_t;
 | 
						|
typedef int  int32_t;
 | 
						|
typedef unsigned   uint32_t;
 | 
						|
typedef long long  int64_t;
 | 
						|
typedef unsigned long long   uint64_t;
 | 
						|
 | 
						|
typedef long long  intmax_t;
 | 
						|
typedef unsigned long long uintmax_t;
 | 
						|
 | 
						|
typedef int64_t off64_t;
 | 
						|
 | 
						|
#if !defined(_MSC_VER) || _MSC_VER < 1600
 | 
						|
#define INTMAX_MIN  _I64_MIN
 | 
						|
#define INTMAX_MAX  _I64_MAX
 | 
						|
#define UINTMAX_MAX _UI64_MAX
 | 
						|
 | 
						|
#define UINT32_MAX 0xffffffff  /* 4294967295U */
 | 
						|
#else
 | 
						|
#include <stdint.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#define STDIN_FILENO  0
 | 
						|
#define STDOUT_FILENO 1
 | 
						|
#define STDERR_FILENO 2
 | 
						|
 | 
						|
/* 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 */
 | 
						|
/* Well maybe it does hurt.  On newer versions of MSVCRT, an access mode
 | 
						|
   of 1 causes invalid parameter error. */
 | 
						|
#define	X_OK	0	/* MS access() doesn't check for execute permission. */
 | 
						|
#define	W_OK	2	/* Check for write permission */
 | 
						|
#define	R_OK	4	/* Check for read permission */
 | 
						|
 | 
						|
#define	_S_IFIFO	0x1000	/* FIFO */
 | 
						|
#define	_S_IFCHR	0x2000	/* Character */
 | 
						|
#define	_S_IFBLK	0x3000	/* Block: Is this ever set under w32? */
 | 
						|
#define	_S_IFDIR	0x4000	/* Directory */
 | 
						|
#define	_S_IFREG	0x8000	/* Regular */
 | 
						|
 | 
						|
#define	_S_IFMT		0xF000	/* File type mask */
 | 
						|
 | 
						|
#define	_S_IXUSR	_S_IEXEC
 | 
						|
#define	_S_IWUSR	_S_IWRITE
 | 
						|
#define	_S_IRUSR	_S_IREAD
 | 
						|
#define	_S_ISDIR(m)	(((m) & _S_IFMT) == _S_IFDIR)
 | 
						|
 | 
						|
#define	S_IFIFO		_S_IFIFO
 | 
						|
#define	S_IFCHR		_S_IFCHR
 | 
						|
#define	S_IFBLK		_S_IFBLK
 | 
						|
#define	S_IFDIR		_S_IFDIR
 | 
						|
#define	S_IFREG		_S_IFREG
 | 
						|
#define	S_IFMT		_S_IFMT
 | 
						|
#define	S_IEXEC		_S_IEXEC
 | 
						|
#define	S_IWRITE	_S_IWRITE
 | 
						|
#define	S_IREAD		_S_IREAD
 | 
						|
#define	S_IRWXU		_S_IRWXU
 | 
						|
#define	S_IXUSR		_S_IXUSR
 | 
						|
#define	S_IWUSR		_S_IWUSR
 | 
						|
#define	S_IRUSR		_S_IRUSR
 | 
						|
 | 
						|
 | 
						|
#define	S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
 | 
						|
#define	S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
 | 
						|
#define	S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
 | 
						|
 | 
						|
#endif
 |