aboutsummaryrefslogtreecommitdiffstats
path: root/src/fileio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fileio.c')
-rw-r--r--src/fileio.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/fileio.c b/src/fileio.c
index a91bdaa53d1..66b23333172 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3424,17 +3424,13 @@ read_non_regular_quit (Lisp_Object ignore)
3424static off_t 3424static off_t
3425file_offset (Lisp_Object val) 3425file_offset (Lisp_Object val)
3426{ 3426{
3427 if (RANGED_FIXNUMP (0, val, TYPE_MAXIMUM (off_t))) 3427 if (INTEGERP (val))
3428 return XFIXNUM (val);
3429
3430 if (BIGNUMP (val))
3431 { 3428 {
3432 intmax_t v = bignum_to_intmax (val); 3429 intmax_t v;
3433 if (0 < v && v <= TYPE_MAXIMUM (off_t)) 3430 if (integer_to_intmax (val, &v) && 0 <= v && v <= TYPE_MAXIMUM (off_t))
3434 return v; 3431 return v;
3435 } 3432 }
3436 3433 else if (FLOATP (val))
3437 if (FLOATP (val))
3438 { 3434 {
3439 double v = XFLOAT_DATA (val); 3435 double v = XFLOAT_DATA (val);
3440 if (0 <= v && v < 1.0 + TYPE_MAXIMUM (off_t)) 3436 if (0 <= v && v < 1.0 + TYPE_MAXIMUM (off_t))