Merge pull request #1027 from triska/format

ENHANCED: format_string domain error for invalid radix in format string
This commit is contained in:
Mark Thom
2021-08-14 23:06:28 -06:00
committed by GitHub

View File

@@ -344,12 +344,16 @@ pow10(D, N0-Pow0, N-Pow) :-
N is N0 + D*10^Pow0, N is N0 + D*10^Pow0,
Pow is Pow0 + 1. Pow is Pow0 + 1.
radix_error(lowercase, R) --> format_("~~~dr", [R]).
radix_error(uppercase, R) --> format_("~~~dR", [R]).
integer_to_radix(I0, R, Which, Cs) :- integer_to_radix(I0, R, Which, Cs) :-
I is I0, % evaluate compound expression I is I0, % evaluate compound expression
must_be(integer, I), must_be(integer, I),
must_be(integer, R), must_be(integer, R),
( \+ between(2, 36, R) -> ( \+ between(2, 36, R) ->
domain_error(radix, R, format_//2) phrase(radix_error(Which,R), Es),
domain_error(format_string, Es, format_//2)
; true ; true
), ),
digits(Which, Ds), digits(Which, Ds),