Patchwork [19/50] error: Include the program name in error messages to stderr

login
register
mail settings
Submitter Markus Armbruster
Date March 4, 2010, 3:56 p.m.
Message ID <1267718231-13303-20-git-send-email-armbru@redhat.com>
Download mbox | patch
Permalink /patch/46949/
State New
Headers show

Comments

Markus Armbruster - March 4, 2010, 3:56 p.m.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qemu-error.c |   20 +++++++++++++++++++-
 qemu-error.h |    1 +
 vl.c         |    2 ++
 3 files changed, 22 insertions(+), 1 deletions(-)

Patch

diff --git a/qemu-error.c b/qemu-error.c
index 0d673c5..214e448 100644
--- a/qemu-error.c
+++ b/qemu-error.c
@@ -113,13 +113,31 @@  void loc_set_none(void)
     cur_loc->kind = LOC_NONE;
 }
 
+static const char *progname;
+
+/*
+ * Set the program name for error_print_loc().
+ */
+void error_set_progname(const char *argv0)
+{
+    const char *p = strrchr(argv0, '/');
+    progname = p ? p + 1 : argv0;
+}
+
 /*
  * Print current location to current monitor if we have one, else to stderr.
  */
 void error_print_loc(void)
 {
+    const char *sep = "";
+
+    if (!cur_mon) {
+        fprintf(stderr, "%s:", progname);
+        sep = " ";
+    }
     switch (cur_loc->kind) {
-    default: ;
+    default:
+        error_printf(sep);
     }
 }
 
diff --git a/qemu-error.h b/qemu-error.h
index a1562aa..204dfb6 100644
--- a/qemu-error.h
+++ b/qemu-error.h
@@ -31,6 +31,7 @@  void loc_set_none(void);
 void error_vprintf(const char *fmt, va_list ap);
 void error_printf(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
 void error_print_loc(void);
+void error_set_progname(const char *argv0);
 void error_report(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
 void qerror_report_internal(const char *file, int linenr, const char *func,
                             const char *fmt, ...)
diff --git a/vl.c b/vl.c
index e8a368b..2ba8eda 100644
--- a/vl.c
+++ b/vl.c
@@ -4822,6 +4822,8 @@  int main(int argc, char **argv, char **envp)
     int show_vnc_port = 0;
     int defconfig = 1;
 
+    error_set_progname(argv[0]);
+
     init_clocks();
 
     qemu_cache_utils_init(envp);