Change error codes from DEFINEs to an enum
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
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