Commit e52e38d3801f194d8c463266f6acb279856ccf8c

Vicent Marti 2011-01-12T01:42:07

Move the compat definitions to types.h Don't need a brand new header for two typedefs when we already have a types.h header. Change comment style to ANSI C. Signed-off-by: Vicent Marti <tanoku@gmail.com>

diff --git a/src/common.h b/src/common.h
index addad6a..1ca0047 100644
--- a/src/common.h
+++ b/src/common.h
@@ -47,7 +47,7 @@ typedef SSIZE_T ssize_t;
 #endif
 
 #include "git2/common.h"
-#include "git2/compat.h"
+#include "git2/types.h"
 #include "util.h"
 #include "thread-utils.h"
 #include "bswap.h"
diff --git a/src/git2.h b/src/git2.h
index fbd972b..9eb9294 100644
--- a/src/git2.h
+++ b/src/git2.h
@@ -27,7 +27,6 @@
 #define INCLUDE_git_git_h__
 
 #include "git2/common.h"
-#include "git2/compat.h"
 #include "git2/errors.h"
 #include "git2/zlib.h"
 
diff --git a/src/git2/compat.h b/src/git2/compat.h
deleted file mode 100644
index 76efae0..0000000
--- a/src/git2/compat.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * In addition to the permissions in the GNU General Public License,
- * the authors give you unlimited permission to link the compiled
- * version of this file into combinations with other programs,
- * and to distribute those combinations without any restriction
- * coming from the use of this file.  (The General Public License
- * restrictions do apply in other respects; for example, they cover
- * modification of the file, and distribution when not linked into
- * a combined executable.)
- *
- * This file 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
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-#ifndef INCLUDE_git_compat_h__
-#define INCLUDE_git_compat_h__
-
-/**
- * @file git2/compat.h
- * @brief Type compatibility layer necessary for clients of the library.
- * @ingroup Git
- * @{
- */
-GIT_BEGIN_DECL
-
-// NOTE: This needs to be in a public header so that both the library
-// implementation and client applications both agree on the same types.
-// Otherwise we get undefined behavior.
-//
-// Use the "best" types that each platform provides. Currently we truncate
-// these intermediate representations for compatibility with the git ABI, but
-// if and when it changes to support 64 bit types, our code will naturally
-// adapt.
-//
-// NOTE: These types should match those that are returned by our internal
-// stat() functions, for all platforms.
-#if defined(_MSC_VER)
-
-typedef __int64 git_off_t;
-typedef __time64_t git_time_t;
-
-#elif defined(__MINGW32__)
-
-typedef off64_t git_off_t;
-typedef time_t git_time_t;
-
-#else  // POSIX
-
-// Note: Can't use off_t since if a client program includes <sys/types.h>
-// before us (directly or indirectly), they'll get 32 bit off_t in their client
-// app, even though /we/ define _FILE_OFFSET_BITS=64.
-typedef long long git_off_t;
-typedef time_t git_time_t;
-
-#endif
-
-/** @} */
-GIT_END_DECL
-
-#endif
diff --git a/src/git2/types.h b/src/git2/types.h
index 99de332..de7b9bc 100644
--- a/src/git2/types.h
+++ b/src/git2/types.h
@@ -27,12 +27,49 @@
 
 /**
  * @file git2/types.h
- * @brief libgit2 base types
+ * @brief libgit2 base & compatibility types
  * @ingroup Git
  * @{
  */
 GIT_BEGIN_DECL
 
+/**
+ * Cross-platform compatibility types for off_t / time_t
+ *
+ * NOTE: This needs to be in a public header so that both the library
+ * implementation and client applications both agree on the same types.
+ * Otherwise we get undefined behavior.
+ *
+ * Use the "best" types that each platform provides. Currently we truncate
+ * these intermediate representations for compatibility with the git ABI, but
+ * if and when it changes to support 64 bit types, our code will naturally
+ * adapt.
+ * NOTE: These types should match those that are returned by our internal
+ * stat() functions, for all platforms.
+ */
+#if defined(_MSC_VER)
+
+typedef __int64 git_off_t;
+typedef __time64_t git_time_t;
+
+#elif defined(__MINGW32__)
+
+typedef off64_t git_off_t;
+typedef time_t git_time_t;
+
+#else  /* POSIX */
+
+/* 
+ * Note: Can't use off_t since if a client program includes <sys/types.h>
+ * before us (directly or indirectly), they'll get 32 bit off_t in their client
+ * app, even though /we/ define _FILE_OFFSET_BITS=64.
+ */
+typedef long long git_off_t;
+typedef time_t git_time_t;
+
+#endif
+
+
 /** Basic type (loose or packed) of any Git object. */
 typedef enum {
 	GIT_OBJ_ANY = -2,		/**< Object can be any of the following */
@@ -62,6 +99,7 @@ typedef struct git_repository git_repository;
 /** Representation of a generic object in a repository */
 typedef struct git_object git_object;
 
+/** Representation of an in-progress walk through the commits in a repo */
 typedef struct git_revwalk git_revwalk;
 
 /** Parsed representation of a tag object. */