From: Michael J Gruber <git@drmicha.warpmail.net>
To: git@vger.kernel.org
Subject: [RFC PATCH 1/5] error/warning framework: prepare for l10n
Date: Mon, 2 Jan 2017 12:14:50 +0100 [thread overview]
Message-ID: <79ba4093dbf26b27e4f0e728ab9362c26558c1b2.1483354746.git.git@drmicha.warpmail.net> (raw)
In-Reply-To: <cover.1483354746.git.git@drmicha.warpmail.net>
Currently, errors, warnings etc. are output with a fixed prefix "error: "
etc. that is not subject to l10n.
Change the call signatures of error_routine() etc. so that they receive
the prefix as first argument.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
apply.c | 2 +-
apply.h | 4 ++--
daemon.c | 3 ++-
fast-import.c | 4 ++--
git-compat-util.h | 10 +++++-----
http-backend.c | 4 ++--
run-command.c | 4 ++--
usage.c | 48 ++++++++++++++++++++++++------------------------
8 files changed, 40 insertions(+), 39 deletions(-)
diff --git a/apply.c b/apply.c
index 2ed808d429..0f93792e1c 100644
--- a/apply.c
+++ b/apply.c
@@ -112,7 +112,7 @@ void clear_apply_state(struct apply_state *state)
/* &state->fn_table is cleared at the end of apply_patch() */
}
-static void mute_routine(const char *msg, va_list params)
+static void mute_routine(const char *prefix, const char *msg, va_list params)
{
/* do nothing */
}
diff --git a/apply.h b/apply.h
index b3d6783d55..56b5622868 100644
--- a/apply.h
+++ b/apply.h
@@ -100,8 +100,8 @@ struct apply_state {
* set_error_routine() or set_warn_routine() to install muting
* routines when in verbosity_silent mode.
*/
- void (*saved_error_routine)(const char *err, va_list params);
- void (*saved_warn_routine)(const char *warn, va_list params);
+ void (*saved_error_routine)(const char *prefix, const char *err, va_list params);
+ void (*saved_warn_routine)(const char *prefix, const char *warn, va_list params);
/* These control whitespace errors */
enum apply_ws_error_action ws_error_action;
diff --git a/daemon.c b/daemon.c
index 473e6b6b63..cd52a25001 100644
--- a/daemon.c
+++ b/daemon.c
@@ -114,8 +114,9 @@ static void loginfo(const char *err, ...)
va_end(params);
}
-static void NORETURN daemon_die(const char *err, va_list params)
+static void NORETURN daemon_die(const char *prefix, const char *err, va_list params)
{
+ /* no need to pass down prefix */
logreport(LOG_ERR, err, params);
exit(1);
}
diff --git a/fast-import.c b/fast-import.c
index f561ba833b..4576f12163 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -496,13 +496,13 @@ static void end_packfile(void);
static void unkeep_all_packs(void);
static void dump_marks(void);
-static NORETURN void die_nicely(const char *err, va_list params)
+static NORETURN void die_nicely(const char *prefix, const char *err, va_list params)
{
static int zombie;
char message[2 * PATH_MAX];
vsnprintf(message, sizeof(message), err, params);
- fputs("fatal: ", stderr);
+ fputs(prefix, stderr);
fputs(message, stderr);
fputc('\n', stderr);
diff --git a/git-compat-util.h b/git-compat-util.h
index 87237b092b..f1bf0a6749 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -439,11 +439,11 @@ static inline int const_error(void)
#define error_errno(...) (error_errno(__VA_ARGS__), const_error())
#endif
-extern void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params));
-extern void set_error_routine(void (*routine)(const char *err, va_list params));
-extern void (*get_error_routine(void))(const char *err, va_list params);
-extern void set_warn_routine(void (*routine)(const char *warn, va_list params));
-extern void (*get_warn_routine(void))(const char *warn, va_list params);
+extern void set_die_routine(NORETURN_PTR void (*routine)(const char *prefix, const char *err, va_list params));
+extern void set_error_routine(void (*routine)(const char *prefix, const char *err, va_list params));
+extern void (*get_error_routine(void))(const char *prefix, const char *err, va_list params);
+extern void set_warn_routine(void (*routine)(const char *prefix, const char *warn, va_list params));
+extern void (*get_warn_routine(void))(const char *prefix, const char *warn, va_list params);
extern void set_die_is_recursing_routine(int (*routine)(void));
extern void set_error_handle(FILE *);
diff --git a/http-backend.c b/http-backend.c
index eef0a361f4..5c235e8b52 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -577,12 +577,12 @@ static void service_rpc(struct strbuf *hdr, char *service_name)
}
static int dead;
-static NORETURN void die_webcgi(const char *err, va_list params)
+static NORETURN void die_webcgi(const char *prefix, const char *err, va_list params)
{
if (dead <= 1) {
struct strbuf hdr = STRBUF_INIT;
- vreportf("fatal: ", err, params);
+ vreportf(prefix, err, params);
http_status(&hdr, 500, "Internal Server Error");
hdr_nocache(&hdr);
diff --git a/run-command.c b/run-command.c
index ca905a9e80..3133bf5320 100644
--- a/run-command.c
+++ b/run-command.c
@@ -618,9 +618,9 @@ static void *run_thread(void *data)
return (void *)ret;
}
-static NORETURN void die_async(const char *err, va_list params)
+static NORETURN void die_async(const char *prefix, const char *err, va_list params)
{
- vreportf("fatal: ", err, params);
+ vreportf(prefix, err, params);
if (in_async()) {
struct async *async = pthread_getspecific(async_key);
diff --git a/usage.c b/usage.c
index 17f52c1b5c..4270b04bf9 100644
--- a/usage.c
+++ b/usage.c
@@ -24,26 +24,26 @@ void vreportf(const char *prefix, const char *err, va_list params)
fputc('\n', fh);
}
-static NORETURN void usage_builtin(const char *err, va_list params)
+static NORETURN void usage_builtin(const char *prefix, const char *err, va_list params)
{
- vreportf("usage: ", err, params);
+ vreportf(prefix, err, params);
exit(129);
}
-static NORETURN void die_builtin(const char *err, va_list params)
+static NORETURN void die_builtin(const char *prefix, const char *err, va_list params)
{
- vreportf("fatal: ", err, params);
+ vreportf(prefix, err, params);
exit(128);
}
-static void error_builtin(const char *err, va_list params)
+static void error_builtin(const char *prefix, const char *err, va_list params)
{
- vreportf("error: ", err, params);
+ vreportf(prefix, err, params);
}
-static void warn_builtin(const char *warn, va_list params)
+static void warn_builtin(const char *prefix, const char *warn, va_list params)
{
- vreportf("warning: ", warn, params);
+ vreportf(prefix, warn, params);
}
static int die_is_recursing_builtin(void)
@@ -54,33 +54,33 @@ static int die_is_recursing_builtin(void)
/* If we are in a dlopen()ed .so write to a global variable would segfault
* (ugh), so keep things static. */
-static NORETURN_PTR void (*usage_routine)(const char *err, va_list params) = usage_builtin;
-static NORETURN_PTR void (*die_routine)(const char *err, va_list params) = 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;
+static NORETURN_PTR void (*usage_routine)(const char *prefix, const char *err, va_list params) = usage_builtin;
+static NORETURN_PTR void (*die_routine)(const char *prefix, const char *err, va_list params) = die_builtin;
+static void (*error_routine)(const char *prefix, const char *err, va_list params) = error_builtin;
+static void (*warn_routine)(const char *prefix, const char *err, va_list params) = warn_builtin;
static int (*die_is_recursing)(void) = die_is_recursing_builtin;
-void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params))
+void set_die_routine(NORETURN_PTR void (*routine)(const char *prefix, const char *err, va_list params))
{
die_routine = routine;
}
-void set_error_routine(void (*routine)(const char *err, va_list params))
+void set_error_routine(void (*routine)(const char *prefix, const char *err, va_list params))
{
error_routine = routine;
}
-void (*get_error_routine(void))(const char *err, va_list params)
+void (*get_error_routine(void))(const char *prefix, const char *err, va_list params)
{
return error_routine;
}
-void set_warn_routine(void (*routine)(const char *warn, va_list params))
+void set_warn_routine(void (*routine)(const char *prefix, const char *warn, va_list params))
{
warn_routine = routine;
}
-void (*get_warn_routine(void))(const char *warn, va_list params)
+void (*get_warn_routine(void))(const char *prefix, const char *warn, va_list params)
{
return warn_routine;
}
@@ -101,7 +101,7 @@ void NORETURN usagef(const char *err, ...)
va_list params;
va_start(params, err);
- usage_routine(err, params);
+ usage_routine("usage: ", err, params);
va_end(params);
}
@@ -120,7 +120,7 @@ void NORETURN die(const char *err, ...)
}
va_start(params, err);
- die_routine(err, params);
+ die_routine("fatal: ", err, params);
va_end(params);
}
@@ -159,7 +159,7 @@ void NORETURN die_errno(const char *fmt, ...)
}
va_start(params, fmt);
- die_routine(fmt_with_err(buf, sizeof(buf), fmt), params);
+ die_routine("fatal: ", fmt_with_err(buf, sizeof(buf), fmt), params);
va_end(params);
}
@@ -170,7 +170,7 @@ int error_errno(const char *fmt, ...)
va_list params;
va_start(params, fmt);
- error_routine(fmt_with_err(buf, sizeof(buf), fmt), params);
+ error_routine("error: ", fmt_with_err(buf, sizeof(buf), fmt), params);
va_end(params);
return -1;
}
@@ -181,7 +181,7 @@ int error(const char *err, ...)
va_list params;
va_start(params, err);
- error_routine(err, params);
+ error_routine("error: ", err, params);
va_end(params);
return -1;
}
@@ -192,7 +192,7 @@ void warning_errno(const char *warn, ...)
va_list params;
va_start(params, warn);
- warn_routine(fmt_with_err(buf, sizeof(buf), warn), params);
+ warn_routine("warning: ", fmt_with_err(buf, sizeof(buf), warn), params);
va_end(params);
}
@@ -201,6 +201,6 @@ void warning(const char *warn, ...)
va_list params;
va_start(params, warn);
- warn_routine(warn, params);
+ warn_routine("warning: ", warn, params);
va_end(params);
}
--
2.11.0.372.g2fcea0e476
next prev parent reply other threads:[~2017-01-02 11:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-02 11:14 [RFC PATCH 0/5] Localise error headers Michael J Gruber
2017-01-02 11:14 ` Michael J Gruber [this message]
2017-01-02 11:14 ` [RFC PATCH 2/5] error/warn framework: provide localized variants Michael J Gruber
2017-01-02 11:14 ` [RFC PATCH 3/5] error/warning framework framework: coccinelli rules Michael J Gruber
2017-01-03 12:26 ` [RFC PATCH 0/5] Localise error headers Duy Nguyen
2017-01-03 19:45 ` Stefan Beller
2017-01-04 13:25 ` Duy Nguyen
2017-01-07 9:34 ` Duy Nguyen
2017-01-04 7:05 ` Jeff King
2017-01-09 12:43 ` Michael J Gruber
2017-01-10 9:04 ` Jeff King
2017-01-10 18:28 ` Stefan Beller
2017-01-11 11:37 ` Jeff King
2017-01-11 17:15 ` Stefan Beller
2017-01-21 14:24 ` Jeff King
2017-01-11 18:08 ` Junio C Hamano
2017-01-20 13:08 ` Duy Nguyen
2017-01-21 14:19 ` Jeff King
2017-01-21 14:20 ` Jeff King
2017-03-30 15:18 ` Michael J Gruber
2017-04-01 8:12 ` Jeff King
2017-04-01 17:38 ` Junio C Hamano
2017-01-20 13:23 ` Duy Nguyen
2017-01-20 13:31 ` Duy Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=79ba4093dbf26b27e4f0e728ab9362c26558c1b2.1483354746.git.git@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).