Commit f87d9beb8d9e3ed2b6baedd9ca15464f7da93f25

Vicent Marti 2011-05-15T23:46:39

Change error codes from DEFINEs to an enum

diff --git a/include/git2/errors.h b/include/git2/errors.h
index 60af7b3..7e957b8 100644
--- a/include/git2/errors.h
+++ b/include/git2/errors.h
@@ -35,97 +35,91 @@
  */
 GIT_BEGIN_DECL
 
-/** Operation completed successfully. */
-#define GIT_SUCCESS 0
+typedef enum {
+	GIT_SUCCESS = 0,
+	GIT_ERROR = -1,
 
-/**
- * Operation failed, with unspecified reason.
- * This value also serves as the base error code; all other
- * error codes are subtracted from it such that all errors
- * are < 0, in typical POSIX C tradition.
- */
-#define GIT_ERROR -1
-
-/** Input was not a properly formatted Git object id. */
-#define GIT_ENOTOID (GIT_ERROR - 1)
+	/** Input was not a properly formatted Git object id. */
+	GIT_ENOTOID = -2,
 
-/** Input does not exist in the scope searched. */
-#define GIT_ENOTFOUND (GIT_ERROR - 2)
+	/** Input does not exist in the scope searched. */
+	GIT_ENOTFOUND = -3,
 
-/** Not enough space available. */
-#define GIT_ENOMEM (GIT_ERROR - 3)
+	/** Not enough space available. */
+	GIT_ENOMEM = -4,
 
-/** Consult the OS error information. */
-#define GIT_EOSERR (GIT_ERROR - 4)
+	/** Consult the OS error information. */
+	GIT_EOSERR = -5,
 
-/** The specified object is of invalid type */
-#define GIT_EOBJTYPE (GIT_ERROR - 5)
+	/** The specified object is of invalid type */
+	GIT_EOBJTYPE = -6,
 
-/** The specified object has its data corrupted */
-#define GIT_EOBJCORRUPTED (GIT_ERROR - 6)
+	/** The specified repository is invalid */
+	GIT_ENOTAREPO = -7,
 
-/** The specified repository is invalid */
-#define GIT_ENOTAREPO (GIT_ERROR - 7)
+	/** The object type is invalid or doesn't match */
+	GIT_EINVALIDTYPE = -8,
 
-/** The object type is invalid or doesn't match */
-#define GIT_EINVALIDTYPE (GIT_ERROR - 8)
+	/** The object cannot be written because it's missing internal data */
+	GIT_EMISSINGOBJDATA = -9,
 
-/** The object cannot be written because it's missing internal data */
-#define GIT_EMISSINGOBJDATA (GIT_ERROR - 9)
+	/** The packfile for the ODB is corrupted */
+	GIT_EPACKCORRUPTED = -10,
 
-/** The packfile for the ODB is corrupted */
-#define GIT_EPACKCORRUPTED (GIT_ERROR - 10)
+	/** Failed to acquire or release a file lock */
+	GIT_EFLOCKFAIL = -11,
 
-/** Failed to acquire or release a file lock */
-#define GIT_EFLOCKFAIL (GIT_ERROR - 11)
+	/** The Z library failed to inflate/deflate an object's data */
+	GIT_EZLIB = -12,
 
-/** The Z library failed to inflate/deflate an object's data */
-#define GIT_EZLIB (GIT_ERROR - 12)
+	/** The queried object is currently busy */
+	GIT_EBUSY = -13,
 
-/** The queried object is currently busy */
-#define GIT_EBUSY (GIT_ERROR - 13)
+	/** The index file is not backed up by an existing repository */
+	GIT_EBAREINDEX = -14,
 
-/** The index file is not backed up by an existing repository */
-#define GIT_EBAREINDEX (GIT_ERROR - 14)
+	/** The name of the reference is not valid */
+	GIT_EINVALIDREFNAME = -15,
 
-/** The name of the reference is not valid */
-#define GIT_EINVALIDREFNAME (GIT_ERROR - 15)
+	/** The specified reference has its data corrupted */
+	GIT_EREFCORRUPTED  = -16,
 
-/** The specified reference has its data corrupted */
-#define GIT_EREFCORRUPTED  (GIT_ERROR - 16)
+	/** The specified symbolic reference is too deeply nested */
+	GIT_ETOONESTEDSYMREF = -17,
 
-/** The specified symbolic reference is too deeply nested */
-#define GIT_ETOONESTEDSYMREF (GIT_ERROR - 17)
+	/** The pack-refs file is either corrupted or its format is not currently supported */
+	GIT_EPACKEDREFSCORRUPTED = -18,
 
-/** The pack-refs file is either corrupted or its format is not currently supported */
-#define GIT_EPACKEDREFSCORRUPTED (GIT_ERROR - 18)
+	/** The path is invalid */
+	GIT_EINVALIDPATH = -19,
 
-/** The path is invalid */
-#define GIT_EINVALIDPATH (GIT_ERROR - 19)
+	/** The revision walker is empty; there are no more commits left to iterate */
+	GIT_EREVWALKOVER = -20,
 
-/** The revision walker is empty; there are no more commits left to iterate */
-#define GIT_EREVWALKOVER (GIT_ERROR - 20)
+	/** The state of the reference is not valid */
+	GIT_EINVALIDREFSTATE = -21,
 
-/** The state of the reference is not valid */
-#define GIT_EINVALIDREFSTATE (GIT_ERROR - 21)
+	/** This feature has not been implemented yet */
+	GIT_ENOTIMPLEMENTED = -22,
 
-/** This feature has not been implemented yet */
-#define GIT_ENOTIMPLEMENTED (GIT_ERROR - 22)
+	/** A reference with this name already exists */
+	GIT_EEXISTS = -23,
 
-/** A reference with this name already exists */
-#define GIT_EEXISTS (GIT_ERROR - 23)
+	/** The given integer literal is too large to be parsed */
+	GIT_EOVERFLOW = -24,
 
-/** The given integer literal is too large to be parsed */
-#define GIT_EOVERFLOW (GIT_ERROR - 24)
+	/** The given literal is not a valid number */
+	GIT_ENOTNUM = -25,
 
-/** The given literal is not a valid number */
-#define GIT_ENOTNUM (GIT_ERROR - 25)
+	/** Streaming error */
+	GIT_ESTREAM = -26,
 
-/** Streaming error */
-#define GIT_ESTREAM (GIT_ERROR - 26)
+	/** invalid arguments to function */
+	GIT_EINVALIDARGS = -27,
 
-/** invalid arguments to function */
-#define GIT_EINVALIDARGS (GIT_ERROR - 27)
+	/** The specified object has its data corrupted */
+	GIT_EOBJCORRUPTED = -28,
+} git_error;
 
 /**
  * Return a detailed error string with the latest error