tags 426300 patch thanks The following works around the dBm problem. For a better solution, look at the code of wmwave. The assumption is that stat->signal and stat->noise are signed 8 bit values when IW_QUAL_DBM is not set.
The patch to iw_if.h is to allow compilation against kernel headers from 2.6.20 and later, to avoid problems when the linux-kernel-headers package is updated. The patch against ui.c is a workaround for #229106. I have not made an NMU, despite what the changelog says. -- Paul Martin <[EMAIL PROTECTED]>
diff -ur wavemon-0.4.0b/debian/changelog wavemon-0.4.0b-pm/debian/changelog --- wavemon-0.4.0b/debian/changelog 2007-06-16 16:04:03.000000000 +0100 +++ wavemon-0.4.0b-pm/debian/changelog 2007-06-16 15:50:26.888886632 +0100 @@ -1,3 +1,10 @@ +wavemon (0.4.0b-9.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix of #426300 and #229106. + + -- Paul Martin <[EMAIL PROTECTED]> Sat, 16 Jun 2007 15:49:58 +0100 + wavemon (0.4.0b-9) unstable; urgency=low * rebuild against new linux-kernel-headers (closes: #328442) diff -ur wavemon-0.4.0b/iw_if.c wavemon-0.4.0b-pm/iw_if.c --- wavemon-0.4.0b/iw_if.c 2007-06-16 16:19:37.937442114 +0100 +++ wavemon-0.4.0b-pm/iw_if.c 2007-06-16 16:19:25.937107329 +0100 @@ -420,7 +420,7 @@ memset(buf, 0, sizeof(buf)); strncpy(buf, lp, strcspn(lp, ". ")); sscanf(buf, "%d", &stat->signal); - stat->signal -= 0x100; + if (stat->signal > 0x80) stat->signal -= 0x100; if (random) stat->signal = rnd_signal(-102, 10); avg_signal += stat->signal / (float)slotsize; lp += strlen(buf); @@ -430,7 +430,7 @@ memset(buf, 0, sizeof(buf)); strncpy(buf, lp, strcspn(lp, ". ")); sscanf(buf, "%d", &stat->noise); - stat->noise -= 0x100; + if (stat->noise > 0x80) stat->noise -= 0x100; if (random) stat->noise = rnd_noise(-102, -30); avg_noise += stat->noise / (float)slotsize; lp += strlen(buf); diff -ur wavemon-0.4.0b/iw_if.h wavemon-0.4.0b-pm/iw_if.h --- wavemon-0.4.0b/iw_if.h 2007-06-16 16:19:37.937442114 +0100 +++ wavemon-0.4.0b-pm/iw_if.h 2007-06-16 16:19:25.937107329 +0100 @@ -19,6 +19,8 @@ */ #include <netdb.h> +#include <linux/types.h> +#include <linux/if.h> #include <linux/wireless.h> #define IW_STACKSIZE 1024 diff -ur wavemon-0.4.0b/ui.c wavemon-0.4.0b-pm/ui.c --- wavemon-0.4.0b/ui.c 2007-06-16 16:19:37.937442114 +0100 +++ wavemon-0.4.0b-pm/ui.c 2007-06-16 16:19:25.937107329 +0100 @@ -99,7 +99,7 @@ for (c = 0; c < steps / (float)(maxv - minv) * (val - minv); c++) if (c < COLS -2) mvwaddch(win, y, x + c, '=' | A_BOLD | COLOR_PAIR(col)); - while (x + c < maxx) mvwaddch(win, y, x + c++, 183); + while (x + c < maxx) mvwaddch(win, y, x + c++, '.'); } void waddthreshold(WINDOW *win, float v, float tv, float minv, float maxv, char y, char x, char maxx, char *cscale, char rev, char tch)