Re: [STUMP] [PATCH] Fix `eval-line' for the case when the user aborts
"Diogo F. S. Ramos" <[email protected]>
| Newsgroups | gmane.comp.window-managers.stumpwm.devel |
|---|---|
| Message-ID | <[email protected]> |
> Thanks for the patch! I've tweaked it a bit to get the behavior you > suggest: >> There might be a way to integrate this calling conventions, so >> whichever the user aborts inside a input box, "Abort." is print and >> there is no error thrown. > This will be integrated in the master branch soon. Cool, thank you. Just let me reinterate what I said about throwing an error. dc21a1c adds to `eval-line' the form (throw 'error :abort), which `colon' also has. When calling `eval-line' using a keybind, `call-interactively' is called indirectly. `call-interactively' has a `catch' form for `'error'. So, when the user presses C-g, `eval-line' throws the tag and `call-interactively' catches it. All good. But, if one evaluates (eval-line nil) from the REPL, there will be no `catch' for `'error', so there will be an error. In SBCL, the error reads "attempt to THROW to a tag that does not exist". We are trading an error for another but admittedly, calling `eval-line' from a REPL should be way less common than calling it using a keybind, or even as a command from the `colon' input box.