mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-29 09:36:47 +00:00
win32: Add support for the MS Visual C/C++ compiler
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
This commit is contained in:
parent
2bf93fa107
commit
8a086f872a
@ -30,4 +30,28 @@
|
|||||||
# define GIT_TYPEOF(x)
|
# define GIT_TYPEOF(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Does our compiler/platform support the C99 <inttypes.h> and
|
||||||
|
* <stdint.h> header files. (C99 requires that <inttypes.h>
|
||||||
|
* includes <stdint.h>).
|
||||||
|
*/
|
||||||
|
#if !defined(_MSC_VER)
|
||||||
|
# define GIT_HAVE_INTTYPES_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define the printf format specifer to use for size_t output */
|
||||||
|
#if !defined(_MSC_VER)
|
||||||
|
# define PRIuZ "zu"
|
||||||
|
#else
|
||||||
|
# define PRIuZ "Iu"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Micosoft Visual C/C++ */
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
/* no direct support for C99 inline function specifier */
|
||||||
|
# define inline __inline
|
||||||
|
/* disable "deprecated function" warnings */
|
||||||
|
# pragma warning ( disable : 4996 )
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* INCLUDE_compat_h__ */
|
#endif /* INCLUDE_compat_h__ */
|
||||||
|
31
src/common.h
31
src/common.h
@ -6,11 +6,14 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "git/thread-utils.h"
|
#include "git/thread-utils.h"
|
||||||
|
#include "cc-compat.h"
|
||||||
|
|
||||||
#ifdef GIT_HAS_PTHREAD
|
#ifdef GIT_HAS_PTHREAD
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
#endif
|
#endif
|
||||||
#include <inttypes.h>
|
#ifdef GIT_HAVE_INTTYPES_H
|
||||||
|
# include <inttypes.h>
|
||||||
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
@ -26,9 +29,21 @@
|
|||||||
# include <direct.h>
|
# include <direct.h>
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
|
|
||||||
#define snprintf _snprintf
|
# define snprintf _snprintf
|
||||||
|
|
||||||
typedef int ssize_t;
|
# if (defined(_MSC_VER) && defined(_WIN64)) || \
|
||||||
|
(defined(__DMC__) && defined(_M_AMD64))
|
||||||
|
typedef long long ssize_t;
|
||||||
|
# else
|
||||||
|
typedef int ssize_t;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if defined(_MSC_VER)
|
||||||
|
/* access() mode parameter #defines */
|
||||||
|
# define F_OK 0 /* existence check */
|
||||||
|
# define W_OK 2 /* write mode check */
|
||||||
|
# define R_OK 4 /* read mode check */
|
||||||
|
# endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -37,7 +52,6 @@ typedef int ssize_t;
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "cc-compat.h"
|
|
||||||
#include "git/common.h"
|
#include "git/common.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "thread-utils.h"
|
#include "thread-utils.h"
|
||||||
@ -45,4 +59,13 @@ typedef int ssize_t;
|
|||||||
|
|
||||||
#define GIT_PATH_MAX 4096
|
#define GIT_PATH_MAX 4096
|
||||||
|
|
||||||
|
#ifndef GIT_HAVE_INTTYPES_H
|
||||||
|
/* add some missing <stdint.h> typedef's */
|
||||||
|
typedef long int32_t;
|
||||||
|
typedef unsigned long uint32_t;
|
||||||
|
|
||||||
|
typedef long long int64_t;
|
||||||
|
typedef unsigned long long uint64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* INCLUDE_common_h__ */
|
#endif /* INCLUDE_common_h__ */
|
||||||
|
@ -21,7 +21,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Declare a function as always inlined. */
|
/** Declare a function as always inlined. */
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
# define GIT_INLINE(type) static __inline type
|
||||||
|
#else
|
||||||
# define GIT_INLINE(type) static inline type
|
# define GIT_INLINE(type) static inline type
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Declare a function's takes printf style arguments. */
|
/** Declare a function's takes printf style arguments. */
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
@ -153,7 +153,7 @@ int git_obj__loose_object_type(git_otype type)
|
|||||||
static int format_object_header(char *hdr, size_t n, git_obj *obj)
|
static int format_object_header(char *hdr, size_t n, git_obj *obj)
|
||||||
{
|
{
|
||||||
const char *type_str = git_obj_type_to_string(obj->type);
|
const char *type_str = git_obj_type_to_string(obj->type);
|
||||||
int len = snprintf(hdr, n, "%s %zu", type_str, obj->len);
|
int len = snprintf(hdr, n, "%s %"PRIuZ, type_str, obj->len);
|
||||||
|
|
||||||
assert(len > 0); /* otherwise snprintf() is broken */
|
assert(len > 0); /* otherwise snprintf() is broken */
|
||||||
assert(len < n); /* otherwise the caller is broken! */
|
assert(len < n); /* otherwise the caller is broken! */
|
||||||
|
Loading…
Reference in New Issue
Block a user