NixRepl::mainLoop: restore old curRepl on function exit

This fixes completion callbacks after entering and leaving a nested
debugger.
This commit is contained in:
Yorick van Pelt 2023-03-02 17:24:58 +01:00
parent 306e5c5ce5
commit 5bb6e3bfaf
No known key found for this signature in database
GPG key ID: A36E70F9DC014A15

View file

@ -252,7 +252,9 @@ void NixRepl::mainLoop()
el_hist_size = 1000; el_hist_size = 1000;
#endif #endif
read_history(historyFile.c_str()); read_history(historyFile.c_str());
auto oldRepl = curRepl;
curRepl = this; curRepl = this;
Finally restoreRepl([&] { curRepl = oldRepl; });
#ifndef READLINE #ifndef READLINE
rl_set_complete_func(completionCallback); rl_set_complete_func(completionCallback);
rl_set_list_possib_func(listPossibleCallback); rl_set_list_possib_func(listPossibleCallback);