The call to program::run in user_interface::end_edit() is passing Settings.SaveLastArguments(). This used to be what the parameter meant, and a leftover comment in program.cc attests to that.
However, after the runtime loop was made asynchronous, the parameter was changed to force synchronous evaluation of the program. This should always be passed as true when we evaluate the command line.
There is a protection that checks the depth and forces evaluation if depth is 0 and the program is not running. This is probably the reason this worked even when settings were disabling SaveLastArguments.
The call to
program::run
inuser_interface::end_edit()
is passingSettings.SaveLastArguments()
. This used to be what the parameter meant, and a leftover comment inprogram.cc
attests to that.However, after the runtime loop was made asynchronous, the parameter was changed to force synchronous evaluation of the program. This should always be passed as
true
when we evaluate the command line.