mc/lib/strutil
Andrew Borodin 44d8213f4e Ticket #4533: External editor does not work with arguments in $EDITOR
When using an external editor (i.e. "Use internal edit" in the Configure
Options is unchecked) the environment variable EDITOR is used. However,
if $EDITOR contains a command line argument after the executable name,
these arguments are not processed properly, and the editor might not be
started at all.

How to reproduce: (Precondition: vi is available on the system)
  1) On the command line, execute: export EDITOR="vi +" && mc
(the + argument should let vi start at the document's end instead of the
beginning).
  2) Go to the Options menu -> Configuration -> uncheck "Use internal
edit".
  3) Move the cursor to a file that is larger than a single screen (e.g.
ABOUT-NLS in mc's source directory).
  4) Press F4 to start the external editor.

Result: Nothing visible happens

Expected result: vi is opened showing the end of the file ABOUT-NLS

The bug: my_system_make_arg_array() doesn't perform full-feature
parsing of the comman line.

  * (str_tokenize): mew function based on history_tokenize_internal()
from GNU readline-8.2.
  * (str_tokenize_word): mew function based on history_tokenize_word()
from GNU readline-8.2.
  * (my_system_make_arg_array): reimplement using str_tokenize().
  * (my_systemv_flags): use modified my_system_make_arg_array().
  * (fork_child_tokens): new test for string tokenization.
  * (fork_child_tokens2): likewise.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-03-31 19:04:26 +03:00
..
filevercmp.c Update template for .c files. 2023-03-19 20:34:24 +03:00
Makefile.am Ticket #4533: External editor does not work with arguments in $EDITOR 2024-03-31 19:04:26 +03:00
replace.c Update copyright years. 2024-01-01 09:46:17 +03:00
strescape.c Update copyright years. 2024-01-01 09:46:17 +03:00
strutil8bit.c Update copyright years. 2024-01-01 09:46:17 +03:00
strutil.c Update copyright years. 2024-01-01 09:46:17 +03:00
strutilascii.c Update copyright years. 2024-01-01 09:46:17 +03:00
strutilutf8.c Update copyright years. 2024-01-01 09:46:17 +03:00
strverscmp.c Update copyright years. 2024-01-01 09:46:17 +03:00
tokenize.c Ticket #4533: External editor does not work with arguments in $EDITOR 2024-03-31 19:04:26 +03:00
xstrtol.c Update copyright years. 2024-01-01 09:46:17 +03:00