You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CSI responds to SIGINT differently after readline is loaded
When csi is started without an rc file (e.g. csi -n) it: responds to SIGINT immediately and prints a new prompt, however, when/after readline has been loaded, csi only responds to SIGINT after encountering a carriage return (\r): this behavior is awkward and differs from other major lisps implementations such as clisp and sbcl (both of which respond to SIGINT after a short pause without any further intervention from the user).
CSI reports an unknown variable named rl_catch_signals when loading readline.so
; loading /home/rr257875/usr/lib/chicken/8/readline.so ...
readline: rl_catch_signals: unknown variable name
After doing a small amount of research, I realized that the issue is caused by the following code in interface.c:
In the code above, rl_variable_bind is being misused, it is not designed to set C variables, but readline variables such as you could set by calling set ... on the command-line.
The code should be something like this:
#endif
rl_completion_entry_function = &gnu_readline_tab_complete;
int rl_catch_signals = 0;
rl_clear_signals();
rl_set_signals();
This misuse does not seem to be present in trunk, but is present in the most recent release.
The text was updated successfully, but these errors were encountered:
Issue Description(s)
CSI responds to SIGINT differently after
readline
is loadedWhen
csi
is started without an rc file (e.g.csi -n
) it: responds toSIGINT
immediately and prints a new prompt, however, when/after readline has been loaded,csi
only responds toSIGINT
after encountering a carriage return (\r
): this behavior is awkward and differs from other major lisps implementations such asclisp
andsbcl
(both of which respond toSIGINT
after a short pause without any further intervention from the user).CSI reports an unknown variable named
rl_catch_signals
when loadingreadline.so
After doing a small amount of research, I realized that the issue is caused by the following code in
interface.c
:In the code above,
rl_variable_bind
is being misused, it is not designed to set C variables, but readline variables such as you could set by callingset ...
on the command-line.The code should be something like this:
This misuse does not seem to be present in trunk, but is present in the most recent release.
The text was updated successfully, but these errors were encountered: