Package: bs1770gain
Version: 0.4.3-1
Severity: wishlist
Tags: patch
The first build of bs1770gain on the autobuilders showed a common error
on several architectures:
ffsox_csv2avdict.c:261:10: error: comparison is always false due to limited
range of data type [-Werror=type-limits]
if (EOF==(*wp=getc(b-f)))
^
cc1: all warnings being treated as errors
This is caused by 'char *wp' being unable to store the value of EOF
(often defined to -1) when char is unsigned. The underlying cause is
that the return type of getc() is 'int', not 'char', and should not be
stored directly in a char before comparing it to EOF.
I believe this untested patch solve the issue:
diff --git a/libffsox-2/ffsox_csv2avdict.c b/libffsox-2/ffsox_csv2avdict.c
index e0a9474..ce3f781 100755
--- a/libffsox-2/ffsox_csv2avdict.c
+++ b/libffsox-2/ffsox_csv2avdict.c
@@ -255,11 +255,14 @@ static int priv_get_utf8(priv_t *b)
static unsigned short mask[] = {192, 224, 240};
char *wp=b-ch;
+ int firstbyte;
size_t n;
// read first byte into buffer
- if (EOF==(*wp=getc(b-f)))
+ firstbyte = getc(b-f);
+ if (EOF==firstbyte)
goto error;
+ *wp = (char)firstbyte;
// check how many more bytes need to be read for character
n = 0;
--
Happy hacking
Petter Reinholdtsen
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org