nnn.c | 6 ++---- diff --git a/nnn.c b/nnn.c index c7e5d48d9f6b01b9c757ec0aa97d64aa97ba98fe..397ccd1c7b50baff4ef2ed7d58879218b0fc4aff 100644 --- a/nnn.c +++ b/nnn.c @@ -384,7 +384,7 @@ if ((n >= lsize) && !((ulong)src & (ulong)dest & _ALIGNMENT_MASK)) { s = (ulong *)src; d = (ulong *)dest; blocks = n >> _WSHIFT; - n -= (blocks << _WSHIFT); + n &= lsize - 1; while (blocks) { *d = *s; @@ -1278,7 +1278,6 @@ { static const char * const U = "BKMGTPEZY"; static char size_buf[12]; /* Buffer to hold human readable size */ static int i; - static off_t tmp; static long double rem; static const double div_2_pow_10 = 1.0 / 1024.0; @@ -1287,9 +1286,8 @@ i = 0; rem = 0; while (size > 1024) { - tmp = size; + rem = size & (0x3FF); /* 1024 - 1 = 0x3FF */ size >>= 10; - rem = tmp - (size << 10); ++i; }