From 556b7c733fc43e861c396010e8554a296dea8de3 Mon Sep 17 00:00:00 2001 From: Stephan Renatus Date: Fri, 1 Nov 2024 15:42:48 +0100 Subject: [PATCH 1/3] toplevel.pl: fix arity mismatch in read_input/2 I ran into the same problem today and I figured I'd take a stab at it. Unfortunately, I'm not certain it is the right approach, but it no longer errors like it did before. Fixes #2650. Signed-off-by: Stephan Renatus --- src/toplevel.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/toplevel.pl b/src/toplevel.pl index e6079106..a9617252 100644 --- a/src/toplevel.pl +++ b/src/toplevel.pl @@ -357,17 +357,17 @@ read_input(LeafAnswer, Stop) :- nl, write(' '), write_leaf_answer(LeafAnswer, [depth(deep)]), - read_input(LeafAnswer) + read_input(LeafAnswer, Stop) ; C = p -> nl, write(' '), write_leaf_answer(LeafAnswer, [depth(shallow)]), - read_input(LeafAnswer) + read_input(LeafAnswer, Stop) ; member(C, [';', ' ', n]) -> nl, write('; ') ; C = h -> help_message, - read_input(LeafAnswer) + read_input(LeafAnswer, Stop) ; C = a -> bb_put('$report_all', true), nl, write('; ') @@ -376,7 +376,7 @@ read_input(LeafAnswer, Stop) :- More is 5 - Count mod 5, bb_put('$report_n_more', More), nl, write('; ') - ; read_input(LeafAnswer) + ; read_input(LeafAnswer, Stop) ) ). From 620077d8c1cf0a5d6945a3a1603072383b65525f Mon Sep 17 00:00:00 2001 From: Stephan Renatus Date: Sat, 2 Nov 2024 21:07:02 +0100 Subject: [PATCH 2/3] toplevel.pl: attempt to fix continue/stop logic Signed-off-by: Stephan Renatus --- src/toplevel.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/toplevel.pl b/src/toplevel.pl index a9617252..9d0b497f 100644 --- a/src/toplevel.pl +++ b/src/toplevel.pl @@ -352,8 +352,7 @@ read_input(LeafAnswer, Stop) :- ( member(C, ['\n', .]) -> nl, write('; ... .'), nl, Stop = stop - ; Stop = continue, - ( C = w -> + ; ( C = w -> nl, write(' '), write_leaf_answer(LeafAnswer, [depth(deep)]), @@ -364,6 +363,7 @@ read_input(LeafAnswer, Stop) :- write_leaf_answer(LeafAnswer, [depth(shallow)]), read_input(LeafAnswer, Stop) ; member(C, [';', ' ', n]) -> + Stop = continue, nl, write('; ') ; C = h -> help_message, From e78914219e111b2916d7358ef41044357302a250 Mon Sep 17 00:00:00 2001 From: Stephan Renatus Date: Sun, 3 Nov 2024 13:31:47 +0100 Subject: [PATCH 3/3] toplevel: add more Stop=continue, remove nesting Signed-off-by: Stephan Renatus --- src/toplevel.pl | 53 +++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/toplevel.pl b/src/toplevel.pl index 9d0b497f..9ec36fb1 100644 --- a/src/toplevel.pl +++ b/src/toplevel.pl @@ -352,32 +352,33 @@ read_input(LeafAnswer, Stop) :- ( member(C, ['\n', .]) -> nl, write('; ... .'), nl, Stop = stop - ; ( C = w -> - nl, - write(' '), - write_leaf_answer(LeafAnswer, [depth(deep)]), - read_input(LeafAnswer, Stop) - ; C = p -> - nl, - write(' '), - write_leaf_answer(LeafAnswer, [depth(shallow)]), - read_input(LeafAnswer, Stop) - ; member(C, [';', ' ', n]) -> - Stop = continue, - nl, write('; ') - ; C = h -> - help_message, - read_input(LeafAnswer, Stop) - ; C = a -> - bb_put('$report_all', true), - nl, write('; ') - ; C = f -> - bb_get('$answer_count', Count), - More is 5 - Count mod 5, - bb_put('$report_n_more', More), - nl, write('; ') - ; read_input(LeafAnswer, Stop) - ) + ; C = w -> + nl, + write(' '), + write_leaf_answer(LeafAnswer, [depth(deep)]), + read_input(LeafAnswer, Stop) + ; C = p -> + nl, + write(' '), + write_leaf_answer(LeafAnswer, [depth(shallow)]), + read_input(LeafAnswer, Stop) + ; member(C, [';', ' ', n]) -> + nl, write('; '), + Stop = continue + ; C = h -> + help_message, + read_input(LeafAnswer, Stop) + ; C = a -> + bb_put('$report_all', true), + nl, write('; '), + Stop = continue + ; C = f -> + bb_get('$answer_count', Count), + More is 5 - Count mod 5, + bb_put('$report_n_more', More), + nl, write('; '), + Stop = continue + ; read_input(LeafAnswer, Stop) ). needs_bracketing(Value, Op) :-