From: Ramkumar Ramachandra Date: Sun, 08 May 2011 07:30:50 GMT Subject: [PATCH v4 1/2] usage: Introduce error_errno corresponding to die_errno Message-ID: <1304839851-6477-2-git-send-email-artagnon@gmail.com> In-Reply-To: <1304839851-6477-1-git-send-email-artagnon@gmail.com> The error function always returns the constant value -1, and this does not convey enough information about the nature of the error. This patch introduces a new function error_errno that functions exactly like the error function, except that it returns `errorno` instead of a constant value. Signed-off-by: Ramkumar Ramachandra --- Is "-errno" correct? This will determine how error-handling will be in a more libified version of Git, and I think it's important to get this right. git-compat-util.h | 1 + usage.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/git-compat-util.h b/git-compat-util.h index 40498b3..7b82038 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -241,6 +241,7 @@ extern NORETURN void usagef(const char *err, ...) __attribute__((format (printf, extern NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2))); extern NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2))); extern int error(const char *err, ...) __attribute__((format (printf, 1, 2))); +extern int error_errno(const char *err, ...) __attribute__((format (printf, 1, 2))); extern void warning(const char *err, ...) __attribute__((format (printf, 1, 2))); extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params)); diff --git a/usage.c b/usage.c index b5e67e3..c89efcc 100644 --- a/usage.c +++ b/usage.c @@ -107,6 +107,16 @@ int error(const char *err, ...) return -1; } +int error_errno(const char *err, ...) +{ + va_list params; + + va_start(params, err); + error_routine(err, params); + va_end(params); + return -errno; +} + void warning(const char *warn, ...) { va_list params; -- 1.7.5.GIT