Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: cast to (long) in printulimit() (rlimits.c)



"Andrej Borsenkow" wrote:
> Dunno, if it is significant ... but in this case limit is of type rlim_t and
> this is 64 bit if LFS is defined (in my case at least). And e.g. maximum
> file size may still exceed 32 bits even in blocks.

I suppose it was just laziness, not using the code from the the file size
part in this case too.

--- Src/Builtins/rlimits.c.rl	Wed May 12 13:50:10 1999
+++ Src/Builtins/rlimits.c	Thu Jun 10 15:08:05 1999
@@ -222,8 +222,21 @@
     /* display the limit */
     if (limit == RLIM_INFINITY)
 	printf("unlimited\n");
-    else
-	printf("%ld\n", (long)limit);
+    else {
+# ifdef RLIM_T_IS_QUAD_T
+	printf("%qd\n", limit);
+# else
+#  ifdef RLIM_T_IS_LONG_LONG
+	printf("%lld\n", limit);
+#  else
+#   ifdef RLIM_T_IS_UNSIGNED
+	printf("%lu\n", limit);
+#   else
+	printf("%ld\n", limit);
+#   endif /* RLIM_T_IS_UNSIGNED */
+#  endif /* RLIM_T_IS_LONG_LONG */
+# endif /* RLIM_T_IS_QUAD_T */
+    }
 }
 
 /* limit: set or show resource limits.  The variable hard indicates *

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy



Messages sorted by: Reverse Date, Date, Thread, Author