-/* Set B_NEW to the number of TOSIZE-byte blocks used by B FROMSIZE-byte
- blocks, rounding away from zero. TOSIZE must be positive. Return -1
- from invoking function if FROMSIZE is not positive. */
-
-#define ADJUST_BLOCKS(b_new, b, fromsize, tosize) \
- do \
- { \
- if ((tosize) <= 0) \
- abort (); \
- if ((fromsize) <= 0) \
- return -1; \
- \
- if ((fromsize) == (tosize)) /* E.g., from 512 to 512. */ \
- (b_new) = (b); \
- else if ((fromsize) > (tosize)) /* E.g., from 2048 to 512. */ \
- (b_new) = (b) * ((fromsize) / (tosize)); \
- else /* E.g., from 256 to 512. */ \
- (b_new) = ((b) + ((b) < 0 ? -1 : 1)) / ((tosize) / (fromsize)); \
- } \
- while (0)
+int safe_read ();
+
+/* Return the number of TOSIZE-byte blocks used by
+ BLOCKS FROMSIZE-byte blocks, rounding away from zero.
+ TOSIZE must be positive. Return -1 if FROMSIZE is not positive. */
+
+static long
+adjust_blocks (blocks, fromsize, tosize)
+ long blocks;
+ int fromsize, tosize;
+{
+ if (tosize <= 0)
+ abort ();
+ if (fromsize <= 0)
+ return -1;
+
+ if (fromsize == tosize) /* E.g., from 512 to 512. */
+ return blocks;
+ else if (fromsize > tosize) /* E.g., from 2048 to 512. */
+ return blocks * (fromsize / tosize);
+ else /* E.g., from 256 to 512. */
+ return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
+}