Hi tech,
if I compile rcs, gcc prints a few warnings like this:
- comparison between signed and unsigned
- signed and unsigned type in conditional expression
I'm not quite sure if the typecasts are at the correct place, but these diffs
removes the warnings.
fritjof
Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/buf.c,v
retrieving revision 1.22
diff -u -p -r1.22 buf.c
--- buf.c 6 Jul 2011 15:36:52 -0000 1.22
+++ buf.c 6 May 2014 20:56:55 -0000
@@ -98,7 +98,7 @@ buf_load(const char *path)
if (fstat(fd, &st) == -1)
goto out;
- if (st.st_size > SIZE_MAX) {
+ if (st.st_size > (off_t)SIZE_MAX) {
errno = EFBIG;
goto out;
}
Index: diff.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/diff.c,v
retrieving revision 1.34
diff -u -p -r1.34 diff.c
--- diff.c 16 May 2013 12:44:48 -0000 1.34
+++ diff.c 6 May 2014 20:57:07 -0000
@@ -432,13 +432,13 @@ prepare(int i, FILE *fd, off_t filesize,
rewind(fd);
- sz = (filesize <= SIZE_MAX ? filesize : SIZE_MAX) / 25;
+ sz = (filesize <= (off_t)SIZE_MAX ? filesize : (off_t)SIZE_MAX) / 25;
if (sz < 100)
sz = 100;
p = xcalloc(sz + 3, sizeof(*p));
for (j = 0; (h = readhash(fd, flags));) {
- if (j == sz) {
+ if ((size_t)j == sz) {
sz = sz * 3 / 2;
p = xrealloc(p, sz + 3, sizeof(*p));
}
Index: diff3.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/diff3.c,v
retrieving revision 1.33
diff -u -p -r1.33 diff3.c
--- diff3.c 4 Mar 2012 04:05:15 -0000 1.33
+++ diff3.c 6 May 2014 20:57:18 -0000
@@ -908,7 +908,7 @@ edscript(int n)
(void)fseek(fp[2], (long)de[n].new.from, SEEK_SET);
for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) {
j = k > BUFSIZ ? BUFSIZ : k;
- if (fread(block, 1, j, fp[2]) != j)
+ if ((int)fread(block, 1, j, fp[2]) != j)
return (-1);
block[j] = '\0';
diff_output("%s", block);
Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/buf.c,v
retrieving revision 1.22
diff -u -p -r1.22 buf.c
--- buf.c 6 Jul 2011 15:36:52 -0000 1.22
+++ buf.c 6 May 2014 20:57:30 -0000
@@ -98,7 +98,7 @@ buf_load(const char *path)
if (fstat(fd, &st) == -1)
goto out;
- if (st.st_size > SIZE_MAX) {
+ if (st.st_size > (off_t)SIZE_MAX) {
errno = EFBIG;
goto out;
}