Bug#789248: bs1770gain: Fail to build on archs with unsigned char

2015-06-19 Thread Petter Reinholdtsen

I've tested the patch, and with it the source compiled on arm64 at
least.  I thus believe it is the complete problem for archs with
unsigned char types.

-- 
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



Bug#789248: bs1770gain: Fail to build on archs with unsigned char

2015-06-19 Thread Petter Reinholdtsen

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