mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-28 16:00:22 +02:00
* numbers.c (scm_i_range_error): New.
* conv-integer.i.c, conv-uinteger.i.c: Use it instead of scm_out_of_range.
This commit is contained in:
parent
3bdf7962a7
commit
1713d319b7
3 changed files with 18 additions and 4 deletions
|
@ -1,10 +1,10 @@
|
|||
/* This code in included by number.s.c to generate integer conversion
|
||||
/* This code in included by numbers.c to generate integer conversion
|
||||
functions like scm_to_int and scm_from_int. It is only for signed
|
||||
types, see conv-uinteger.i.c for the unsigned variant.
|
||||
*/
|
||||
|
||||
/* You need to define the following macros before including this
|
||||
template. They are undefined at the end of this file to giove a
|
||||
template. They are undefined at the end of this file to give a
|
||||
clean slate for the next inclusion.
|
||||
|
||||
TYPE - the integral type to be converted
|
||||
|
@ -91,7 +91,9 @@ SCM_TO_TYPE_PROTO (SCM val)
|
|||
else
|
||||
{
|
||||
out_of_range:
|
||||
scm_out_of_range (NULL, val);
|
||||
scm_i_range_error (val,
|
||||
scm_from_signed_integer (TYPE_MIN),
|
||||
scm_from_signed_integer (TYPE_MAX));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,9 @@ SCM_TO_TYPE_PROTO (SCM val)
|
|||
else
|
||||
{
|
||||
out_of_range:
|
||||
scm_out_of_range (NULL, val);
|
||||
scm_i_range_error (val,
|
||||
scm_from_unsigned_integer (TYPE_MIN),
|
||||
scm_from_unsigned_integer (TYPE_MAX));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5595,6 +5595,16 @@ scm_is_unsigned_integer (SCM val, scm_t_uintmax min, scm_t_uintmax max)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
scm_i_range_error (SCM bad_val, SCM min, SCM max)
|
||||
{
|
||||
scm_error (scm_out_of_range_key,
|
||||
NULL,
|
||||
"Value out of range ~S to ~S: ~S",
|
||||
scm_list_3 (min, max, bad_val),
|
||||
scm_list_1 (bad_val));
|
||||
}
|
||||
|
||||
#define TYPE scm_t_intmax
|
||||
#define TYPE_MIN min
|
||||
#define TYPE_MAX max
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue