Index | Thread | Search

From:
Crystal Kolipe <kolipe.c@exoticsilicon.com>
Subject:
Re: Fix for vi editing mode in sftp(1) (PING)
To:
Walter Alejandro Iglesias <wai@roquesor.com>
Cc:
Stuart Henderson <stu@spacehopper.org>, Damien Miller <djm@mindrot.org>, tech@openbsd.org
Date:
Tue, 20 Jan 2026 12:57:09 +0000

Download raw body.

Thread
On Tue, Jan 20, 2026 at 12:42:42PM +0100, Walter Alejandro Iglesias wrote:
> --- sftp.c	13 Oct 2025 00:54:29 -0000	1.247
> +++ sftp.c	20 Jan 2026 11:06:05 -0000
> @@ -2204,6 +2204,7 @@ interactive_loop(struct sftp_conn *conn,
>  	char *remote_path;
>  	char *dir = NULL, *startdir = NULL;
>  	char cmd[2048];
> +	const char *editor = "emacs";
>  	int err, interactive;
>  	EditLine *el = NULL;
>  	History *hl = NULL;
> @@ -2220,7 +2221,7 @@ interactive_loop(struct sftp_conn *conn,
>  		el_set(el, EL_HIST, history, hl);
>  
>  		el_set(el, EL_PROMPT, prompt);
> -		el_set(el, EL_EDITOR, "emacs");
> +		el_set(el, EL_EDITOR, editor);
>  		el_set(el, EL_TERMINAL, NULL);
>  		el_set(el, EL_SIGNAL, 1);
>  		el_source(el, NULL);

The initial assignment of "emacs" to editor and then using it instead of the
fixed string in el_set() does nothing useful from a technical point of view.

Unless you think it improves code readability, by moving the string to the top
of the function declaration, then Stuart's version of the patch is more
correct.

(And in general, for longer and more complex code where it might be useful,
 improving readability in that way is usually better done with a define rather
 than a variable assignment.)