diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/os/shell.c | 33 | ||||
-rw-r--r-- | src/os/shell.h | 27 |
2 files changed, 30 insertions, 30 deletions
diff --git a/src/os/shell.c b/src/os/shell.c index bb9179cc13..47a9b61bba 100644 --- a/src/os/shell.c +++ b/src/os/shell.c @@ -9,17 +9,20 @@ #include "option_defs.h" #include "charset.h" +/// Parses a command string into a sequence of words, taking quotes into +/// consideration. +/// +/// @param str The command string to be parsed +/// @param argv The vector that will be filled with copies of the parsed +/// words. It can be NULL if the caller only needs to count words. +/// @return The number of words parsed. static int tokenize(char_u *str, char **argv); +/// Calculates the length of a shell word. +/// +/// @param str A pointer to the first character of the word +/// @return The offset from `str` at which the word ends. static int word_length(char_u *command); -/// Builds the argument vector for running the shell configured in `sh` -/// ('shell' option), optionally with a command that will be passed with `shcf` -/// ('shellcmdflag'). -/// -/// @param cmd Command string. If NULL it will run an interactive shell. -/// @param extra_shell_opt Extra argument to the shell (Optional). -/// @return A newly allocated argument vector. It must be freed with -/// `shell_free_argv` when no longer needed. char ** shell_build_argv(char_u *cmd, char_u *extra_shell_opt) { int i; @@ -52,9 +55,6 @@ char ** shell_build_argv(char_u *cmd, char_u *extra_shell_opt) return rv; } -/// Release the memory allocated by `shell_build_argv`. -/// -/// @param argv The argument vector. void shell_free_argv(char **argv) { char **p = argv; @@ -73,13 +73,6 @@ void shell_free_argv(char **argv) free(argv); } -/// Parse a command string into a sequence of words, taking quotes into -/// consideration. -/// -/// @param str The command string to be parsed -/// @param argv The vector that will be filled with copies of the parsed -/// words. It can be NULL if the caller only needs to count words. -/// @return The number of words parsed. static int tokenize(char_u *str, char **argv) { int argc = 0, len; @@ -103,10 +96,6 @@ static int tokenize(char_u *str, char **argv) return argc; } -/// Calculate the length of a shell word. -/// -/// @param str A pointer to the beginning of the word -/// @return The offset from `str` at which the word ends. static int word_length(char_u *str) { char_u *p = str; diff --git a/src/os/shell.h b/src/os/shell.h index 6da43a863b..7a5a32bc0b 100644 --- a/src/os/shell.h +++ b/src/os/shell.h @@ -7,17 +7,28 @@ // Flags for mch_call_shell() second argument typedef enum { - kShellOptFilter = 1, // filtering text - kShellOptExpand = 2, // expanding wildcards - kShellOptCooked = 4, // set term to cooked mode - kShellOptDoOut = 8, // redirecting output - kShellOptSilent = 16, // don't print error returned by command - kShellOptRead = 32, // read lines and insert into buffer - kShellOptWrite = 64, // write lines from buffer - kShellOptHideMess = 128, // previously a global variable from os_unix.c + kShellOptFilter = 1, ///< filtering text + kShellOptExpand = 2, ///< expanding wildcards + kShellOptCooked = 4, ///< set term to cooked mode + kShellOptDoOut = 8, ///< redirecting output + kShellOptSilent = 16, ///< don't print error returned by command + kShellOptRead = 32, ///< read lines and insert into buffer + kShellOptWrite = 64, ///< write lines from buffer + kShellOptHideMess = 128, ///< previously a global variable from os_unix.c } ShellOpts; +/// Builds the argument vector for running the shell configured in `sh` +/// ('shell' option), optionally with a command that will be passed with `shcf` +/// ('shellcmdflag'). +/// +/// @param cmd Command string. If NULL it will run an interactive shell. +/// @param extra_shell_opt Extra argument to the shell. If NULL it is ignored +/// @return A newly allocated argument vector. It must be freed with +/// `shell_free_argv` when no longer needed. char ** shell_build_argv(char_u *cmd, char_u *extra_shell_arg); +/// Releases the memory allocated by `shell_build_argv`. +/// +/// @param argv The argument vector. void shell_free_argv(char **argv); #endif // NEOVIM_OS_SHELL_H |