Patch to gpsd to set up verbose level
authorJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Sun, 27 Jun 2010 19:12:35 +0000 (19:12 +0000)
committerJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Sun, 27 Jun 2010 19:12:35 +0000 (19:12 +0000)
gpsd.diff [new file with mode: 0644]

diff --git a/gpsd.diff b/gpsd.diff
new file mode 100644 (file)
index 0000000..d3f4ae4
--- /dev/null
+++ b/gpsd.diff
@@ -0,0 +1,38 @@
+diff --git a/gpsd_report.c b/gpsd_report.c
+index 956b5f0..5870692 100644
+--- a/gpsd_report.c
++++ b/gpsd_report.c
+@@ -9,16 +9,27 @@
+ # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+-void gpsd_report(int errlevel UNUSED, const char *fmt, ...)
++void gpsd_report(int errlevel, const char *fmt, ...)
+     __attribute__ ((weak));
+ #endif
+-void gpsd_report(int errlevel UNUSED, const char *fmt, ...)
++static int verbose = LOG_WARN;
++
++void gpsd_report(int errlevel, const char *fmt, ...)
+ /* stub logger for clients that don't supply one */
+ {
+-    va_list ap;
++    if (errlevel <= verbose) {
++      va_list ap;
++      
++      va_start(ap, fmt);
++      (void)vfprintf(stderr, fmt, ap);
++      va_end(ap);
++    }
++}
+-    va_start(ap, fmt);
+-    (void)vfprintf(stderr, fmt, ap);
+-    va_end(ap);
++int gpsd_report_set_level(int errlevel, const char *fmt, ...)
++{
++    int oldlevel = verbose;
++    verbose = errlevel;
++    return oldlevel;
+ }