git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 1/2] usage: Introduce error_errno corresponding to die_errno

From
Ramkumar Ramachandra <artagnon@gmail.com>
Date
May 8, 2011, 07:30 UTC
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 <artagnon@gmail.com>
---
 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
Previous: Ramkumar RamachandraNext: Ramkumar Ramachandra
Message 9 of 13 in “rerere: Expose an API corresponding to 'clear' functionality”
  1. rerere: Expose an API corresponding to 'clear' functionalityRamkumar Ramachandra, Apr 11, 2011
  2. Junio C HamanoApr 11, 2011
  3. rerere: Expose an API corresponding to 'clear' functionalityRamkumar Ramachandra, Apr 13, 2011
  4. Jonathan NiederApr 13, 2011
  5. rerere: Expose an API corresponding to 'clear' functionalityRamkumar Ramachandra, May 6, 2011
  6. Junio C HamanoMay 6, 2011
  7. Ramkumar RamachandraMay 7, 2011
  8. 0/2 Libify rerere: clear and gcRamkumar Ramachandra, May 8, 2011
  9. 1/2 usage: Introduce error_errno corresponding to die_errnoRamkumar Ramachandra, May 8, 2011
  10. Ramkumar RamachandraMay 8, 2011
  11. Junio C HamanoMay 8, 2011
  12. 2/2 rerere: Libify "rerere clear" and "rerere gc"Ramkumar Ramachandra, May 8, 2011
  13. Junio C HamanoMay 8, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.