restore previous focus upon character match failure in compare_pstr_to_string (#441)

This commit is contained in:
Mark Thom
2020-05-03 17:03:59 -06:00
parent aafe18c2b5
commit 9e220e8416
2 changed files with 5 additions and 16 deletions

View File

@@ -45,7 +45,7 @@ impl<'a> HeapPStrIter<'a> {
#[inline]
pub(crate)
fn focus(&'a self) -> Addr {
fn focus(&self) -> Addr {
self.machine_st.store(self.machine_st.deref(self.focus))
}
@@ -303,6 +303,10 @@ fn compare_pstr_to_string<'a>(
}
}
}
if s[s_offset ..].is_empty() {
return Some(s_offset);
}
}
Some(s_offset)

View File

@@ -323,21 +323,6 @@ gather_goals([Var = Value | Pairs], VarList, QueryVarList, Goals) :-
; gather_goals(Pairs, VarList, QueryVarList, Goals)
).
/*
gather_goals([], VarList, QueryVarList, Goals) :-
gather_query_vars(VarList, Vars),
copy_term(Vars, Vars, Goals).
% filter_goals(Goals0, Goals, Vars).
gather_goals([Var = Value | Pairs], VarList, QueryVarList, Goals) :-
( ( nonvar(Value)
; is_a_different_variable(Pairs, Value)
) ->
Goals = [Var = Value | Goals0],
gather_goals(Pairs, VarList, QueryVarList, Goals0)
; gather_goals(Pairs, VarList, QueryVarList, Goals)
).
*/
print_exception(E) :-
( E == error('$interrupt_thrown', repl) -> nl % print the
% exception on a