Dimitris Papastamos <s...@2f30.org> writes:
> sbase should only contain code that runs on POSIX systems (with some
> minor exceptions) and fallback implementations for non-standardized
> interfaces that can be implemented portably on top of POSIX interfaces.

So there's no place for fallback implementations _of_ POSIX interfaces
on top of either older POSIX interfaces or non-standard ones?

Anyway, here's a patch for some data type issues that came up - more to
do with compiling with all warnings, though the fact that clock_t is
unsigned on OSX helped catch one of them.

diff --git a/du.c b/du.c
index 41e4380..3dc3545 100644
--- a/du.c
+++ b/du.c
@@ -25,7 +25,7 @@ printpath(off_t n, const char *path)
 	if (hflag)
 		printf("%s\t%s\n", humansize(n * blksize), path);
 	else
-		printf("%ju\t%s\n", n, path);
+		printf("%jd\t%s\n", (intmax_t)n, path);
 }
 
 static off_t
diff --git a/split.c b/split.c
index f15e925..ee24556 100644
--- a/split.c
+++ b/split.c
@@ -48,7 +48,7 @@ int
 main(int argc, char *argv[])
 {
 	FILE *in = stdin, *out = NULL;
-	size_t size = 1000, n;
+	off_t size = 1000, n;
 	int ret = 0, ch, plen, slen = 2, always = 0;
 	char name[NAME_MAX + 1], *prefix = "x", *file = NULL;
 
@@ -69,7 +69,7 @@ main(int argc, char *argv[])
 		break;
 	case 'l':
 		always = 0;
-		size = estrtonum(EARGF(usage()), 1, MIN(LLONG_MAX, SIZE_MAX));
+		size = estrtonum(EARGF(usage()), 1, MIN(LLONG_MAX, OFF_MAX));
 		break;
 	default:
 		usage();
diff --git a/time.c b/time.c
index 4af0352..60a8c8d 100644
--- a/time.c
+++ b/time.c
@@ -36,7 +36,7 @@ main(int argc, char *argv[])
 	if ((ticks = sysconf(_SC_CLK_TCK)) <= 0)
 		eprintf("sysconf _SC_CLK_TCK:");
 
-	if ((r0 = times(&tms)) < 0)
+	if ((r0 = times(&tms)) == (clock_t)-1)
 		eprintf("times:");
 
 	switch ((pid = fork())) {
@@ -52,7 +52,7 @@ main(int argc, char *argv[])
 	}
 	waitpid(pid, &status, 0);
 
-	if ((r1 = times(&tms)) < 0)
+	if ((r1 = times(&tms)) == (clock_t)-1)
 		eprintf("times:");
 
 	if (WIFSIGNALED(status)) {

Reply via email to