summaryrefslogtreecommitdiff
path: root/src/error.nobj.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.nobj.lua')
-rw-r--r--src/error.nobj.lua33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/error.nobj.lua b/src/error.nobj.lua
index 110de70..3338b5d 100644
--- a/src/error.nobj.lua
+++ b/src/error.nobj.lua
@@ -20,11 +20,36 @@
-- Convert Git Error codes into strings.
error_code "GitError" "int" {
- is_error_check = function(rec) return "(GIT_SUCCESS != ${" .. rec.name .. "})" end,
- default = "GIT_SUCCESS",
+ is_error_check = function(rec) return "(GIT_OK != ${" .. rec.name .. "})" end,
+ default = "GIT_OK",
c_source [[
- if(err != GIT_SUCCESS) {
- err_str = git_strerror(err);
+ const git_error *giterr;
+ switch(err) {
+ case GIT_ERROR:
+ giterr = giterr_last();
+ err_str = giterr->message;
+ break;
+ case GIT_ENOTFOUND:
+ err_str = "ENOTFOUND";
+ break;
+ case GIT_EEXISTS:
+ err_str = "EEXISTS";
+ break;
+ case GIT_EAMBIGUOUS:
+ err_str = "EAMBIGUOUS";
+ break;
+ case GIT_EBUFS:
+ err_str = "EBUFS";
+ break;
+ case GIT_PASSTHROUGH:
+ err_str = "PASSTHROUGH";
+ break;
+ case GIT_REVWALKOVER:
+ err_str = "REVWALKOVER";
+ break;
+ case GIT_OK:
+ default:
+ break;
}
]],
}