diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2020-02-02 22:07:16 -0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2020-02-02 22:14:40 -0800 |
commit | 2af04e199740d5d2eaab38e272ecf1f9146335f5 (patch) | |
tree | 484ecae3687ff9a1b3f02300228476fa53e72464 /src/nvim/os/shell.c | |
parent | efa5af904387d8ece68c84a568d60e071350c6cb (diff) | |
download | rneovim-2af04e199740d5d2eaab38e272ecf1f9146335f5.tar.gz rneovim-2af04e199740d5d2eaab38e272ecf1f9146335f5.tar.bz2 rneovim-2af04e199740d5d2eaab38e272ecf1f9146335f5.zip |
lint
Diffstat (limited to 'src/nvim/os/shell.c')
-rw-r--r-- | src/nvim/os/shell.c | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c index ecca88f656..3b8470182a 100644 --- a/src/nvim/os/shell.c +++ b/src/nvim/os/shell.c @@ -100,7 +100,8 @@ static bool have_dollars(int num, char_u **file) /// /// @returns OK for success or FAIL for error. int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, - char_u ***file, int flags) FUNC_ATTR_NONNULL_ARG(3) + char_u ***file, int flags) + FUNC_ATTR_NONNULL_ARG(3) FUNC_ATTR_NONNULL_ARG(4) { int i; @@ -114,12 +115,11 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u *command; FILE *fd; char_u *buffer; -#define STYLE_ECHO 0 /* use "echo", the default */ -#define STYLE_GLOB 1 /* use "glob", for csh */ -#define STYLE_VIMGLOB 2 /* use "vimglob", for Posix sh */ -#define STYLE_PRINT 3 /* use "print -N", for zsh */ -#define STYLE_BT 4 /* `cmd` expansion, execute the pattern - * directly */ +#define STYLE_ECHO 0 // use "echo", the default +#define STYLE_GLOB 1 // use "glob", for csh +#define STYLE_VIMGLOB 2 // use "vimglob", for Posix sh +#define STYLE_PRINT 3 // use "print -N", for zsh +#define STYLE_BT 4 // `cmd` expansion, execute the pattern directly int shell_style = STYLE_ECHO; int check_spaces; static bool did_find_nul = false; @@ -189,16 +189,18 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, shell_style = STYLE_PRINT; } } - if (shell_style == STYLE_ECHO && strstr((char *)path_tail(p_sh), - "sh") != NULL) + if (shell_style == STYLE_ECHO + && strstr((char *)path_tail(p_sh), "sh") != NULL) { shell_style = STYLE_VIMGLOB; + } // Compute the length of the command. We need 2 extra bytes: for the // optional '&' and for the NUL. // Worst case: "unset nonomatch; print -N >" plus two is 29 len = STRLEN(tempname) + 29; - if (shell_style == STYLE_VIMGLOB) + if (shell_style == STYLE_VIMGLOB) { len += STRLEN(sh_vimglob_func); + } for (i = 0; i < num_pat; i++) { // Count the length of the patterns in the same way as they are put in @@ -248,18 +250,20 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, } STRCAT(command, ">"); } else { - if (flags & EW_NOTFOUND) + if (flags & EW_NOTFOUND) { STRCPY(command, "set nonomatch; "); - else + } else { STRCPY(command, "unset nonomatch; "); - if (shell_style == STYLE_GLOB) + } + if (shell_style == STYLE_GLOB) { STRCAT(command, "glob >"); - else if (shell_style == STYLE_PRINT) + } else if (shell_style == STYLE_PRINT) { STRCAT(command, "print -N >"); - else if (shell_style == STYLE_VIMGLOB) + } else if (shell_style == STYLE_VIMGLOB) { STRCAT(command, sh_vimglob_func); - else + } else { STRCAT(command, "echo >"); + } } STRCAT(command, tempname); @@ -323,11 +327,7 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, } // execute the shell command - i = call_shell( - command, - shellopts, - extra_shell_arg - ); + i = call_shell(command, shellopts, extra_shell_arg); // When running in the background, give it some time to create the temp // file, but don't wait for it to finish. @@ -380,7 +380,7 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, return FAIL; } #if SIZEOF_LONG_LONG > SIZEOF_SIZE_T - assert(templen <= (long long)SIZE_MAX); + assert(templen <= (long long)SIZE_MAX); // NOLINT(runtime/int) #endif len = (size_t)templen; fseek(fd, 0L, SEEK_SET); @@ -434,10 +434,11 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, if (shell_style == STYLE_PRINT && !did_find_nul) { // If there is a NUL, set did_find_nul, else set check_spaces buffer[len] = NUL; - if (len && (int)STRLEN(buffer) < (int)len) + if (len && (int)STRLEN(buffer) < (int)len) { did_find_nul = true; - else + } else { check_spaces = true; + } } // Make sure the buffer ends with a NUL. For STYLE_PRINT there @@ -472,7 +473,7 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, // Isolate the individual file names. p = buffer; - for (i = 0; i < *num_file; ++i) { + for (i = 0; i < *num_file; i++) { (*file)[i] = p; // Space or NL separates if (shell_style == STYLE_ECHO || shell_style == STYLE_BT @@ -504,8 +505,9 @@ int os_expand_wildcards(int num_pat, char_u **pat, int *num_file, // check if this entry should be included dir = (os_isdir((*file)[i])); - if ((dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE))) + if ((dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE))) { continue; + } // Skip files that are not executable if we check for that. if (!dir && (flags & EW_EXEC) @@ -536,7 +538,6 @@ notfound: return OK; } return FAIL; - } /// Builds the argument vector for running the user-configured 'shell' (p_sh) |