summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 51dcaa9)
raw | patch | inline | side by side (parent: 51dcaa9)
author | Shawn O. Pearce <spearce@spearce.org> | |
Fri, 22 Dec 2006 00:48:32 +0000 (19:48 -0500) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Fri, 22 Dec 2006 06:59:34 +0000 (22:59 -0800) |
Like the existing error() function the new warn() function can be
used to describe a situation that probably should not be occuring,
but which the user (and Git) can continue to work around without
running into too many problems.
An example situation is a bad commit SHA1 found in a reflog.
Attempting to read this record out of the reflog isn't really an
error as we have skipped over it in the past.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
used to describe a situation that probably should not be occuring,
but which the user (and Git) can continue to work around without
running into too many problems.
An example situation is a bad commit SHA1 found in a reflog.
Attempting to read this record out of the reflog isn't really an
error as we have skipped over it in the past.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-compat-util.h | patch | blob | history | |
usage.c | patch | blob | history |
diff --git a/git-compat-util.h b/git-compat-util.h
index c66e0a424707dde0e155aacf6b9adf4e355cb54f..a55b923894196b5c4a5af32cd773b24824f14cec 100644 (file)
--- a/git-compat-util.h
+++ b/git-compat-util.h
extern void usage(const char *err) NORETURN;
extern void die(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2)));
extern int error(const char *err, ...) __attribute__((format (printf, 1, 2)));
+extern void warn(const char *err, ...) __attribute__((format (printf, 1, 2)));
extern void set_usage_routine(void (*routine)(const char *err) NORETURN);
extern void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN);
extern void set_error_routine(void (*routine)(const char *err, va_list params));
+extern void set_warn_routine(void (*routine)(const char *warn, va_list params));
#ifdef NO_MMAP
index 52c2e960560531b62a28a8a716e531093fd5e8a7..4dc5c77633747e0c2b3a4d04fddbd043f8f49e1e 100644 (file)
--- a/usage.c
+++ b/usage.c
report("error: ", err, params);
}
+static void warn_builtin(const char *warn, va_list params)
+{
+ report("warning: ", warn, params);
+}
/* If we are in a dlopen()ed .so write to a global variable would segfault
* (ugh), so keep things static. */
static void (*usage_routine)(const char *err) NORETURN = usage_builtin;
static void (*die_routine)(const char *err, va_list params) NORETURN = die_builtin;
static void (*error_routine)(const char *err, va_list params) = error_builtin;
+static void (*warn_routine)(const char *err, va_list params) = warn_builtin;
void set_usage_routine(void (*routine)(const char *err) NORETURN)
{
error_routine = routine;
}
+void set_warn_routine(void (*routine)(const char *warn, va_list params))
+{
+ warn_routine = routine;
+}
+
void usage(const char *err)
{
va_end(params);
return -1;
}
+
+void warn(const char *warn, ...)
+{
+ va_list params;
+
+ va_start(params, warn);
+ warn_routine(warn, params);
+ va_end(params);
+}