mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
Refactor SHELL_* defines into enum typedef
The SHELL_* defines are the bitflags that can be passed to `mch_call_shell`. The enum is defined in 'os/shell.h', where all shell-related functions will eventually be defined.
This commit is contained in:
parent
607e1c7ee4
commit
0d61b1c470
@ -25,6 +25,7 @@
|
|||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
|
|
||||||
static int diff_busy = FALSE; // ex_diffgetput() is busy
|
static int diff_busy = FALSE; // ex_diffgetput() is busy
|
||||||
|
|
||||||
@ -840,7 +841,11 @@ static void diff_file(char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff)
|
|||||||
tmp_orig, tmp_new);
|
tmp_orig, tmp_new);
|
||||||
append_redir(cmd, (int)len, p_srr, tmp_diff);
|
append_redir(cmd, (int)len, p_srr, tmp_diff);
|
||||||
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
||||||
(void)call_shell(cmd, SHELL_FILTER | SHELL_SILENT | SHELL_DOOUT, NULL);
|
(void)call_shell(
|
||||||
|
cmd,
|
||||||
|
kShellOptFilter | kShellOptSilent | kShellOptDoOut,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
vim_free(cmd);
|
vim_free(cmd);
|
||||||
}
|
}
|
||||||
@ -943,7 +948,7 @@ void ex_diffpatch(exarg_T *eap)
|
|||||||
#endif // ifdef UNIX
|
#endif // ifdef UNIX
|
||||||
// Avoid ShellCmdPost stuff
|
// Avoid ShellCmdPost stuff
|
||||||
block_autocmds();
|
block_autocmds();
|
||||||
(void)call_shell(buf, SHELL_FILTER | SHELL_COOKED, NULL);
|
(void)call_shell(buf, kShellOptFilter | kShellOptCooked, NULL);
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
|
|
||||||
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
||||||
# include <math.h>
|
# include <math.h>
|
||||||
@ -14543,7 +14544,7 @@ static void f_system(typval_T *argvars, typval_T *rettv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
res = get_cmd_output(get_tv_string(&argvars[0]), infile,
|
res = get_cmd_output(get_tv_string(&argvars[0]), infile,
|
||||||
SHELL_SILENT | SHELL_COOKED);
|
kShellOptSilent | kShellOptCooked);
|
||||||
|
|
||||||
#ifdef USE_CR
|
#ifdef USE_CR
|
||||||
/* translate <CR> into <NL> */
|
/* translate <CR> into <NL> */
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
|
|
||||||
static int linelen(int *has_tab);
|
static int linelen(int *has_tab);
|
||||||
static void do_filter(linenr_T line1, linenr_T line2, exarg_T *eap,
|
static void do_filter(linenr_T line1, linenr_T line2, exarg_T *eap,
|
||||||
@ -1023,21 +1024,21 @@ do_filter (
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (do_out)
|
if (do_out)
|
||||||
shell_flags |= SHELL_DOOUT;
|
shell_flags |= kShellOptDoOut;
|
||||||
|
|
||||||
if (!do_in && do_out && !p_stmp) {
|
if (!do_in && do_out && !p_stmp) {
|
||||||
// Use a pipe to fetch stdout of the command, do not use a temp file.
|
// Use a pipe to fetch stdout of the command, do not use a temp file.
|
||||||
shell_flags |= SHELL_READ;
|
shell_flags |= kShellOptRead;
|
||||||
curwin->w_cursor.lnum = line2;
|
curwin->w_cursor.lnum = line2;
|
||||||
} else if (do_in && !do_out && !p_stmp) {
|
} else if (do_in && !do_out && !p_stmp) {
|
||||||
// Use a pipe to write stdin of the command, do not use a temp file.
|
// Use a pipe to write stdin of the command, do not use a temp file.
|
||||||
shell_flags |= SHELL_WRITE;
|
shell_flags |= kShellOptWrite;
|
||||||
curbuf->b_op_start.lnum = line1;
|
curbuf->b_op_start.lnum = line1;
|
||||||
curbuf->b_op_end.lnum = line2;
|
curbuf->b_op_end.lnum = line2;
|
||||||
} else if (do_in && do_out && !p_stmp) {
|
} else if (do_in && do_out && !p_stmp) {
|
||||||
// Use a pipe to write stdin and fetch stdout of the command, do not
|
// Use a pipe to write stdin and fetch stdout of the command, do not
|
||||||
// use a temp file.
|
// use a temp file.
|
||||||
shell_flags |= SHELL_READ|SHELL_WRITE;
|
shell_flags |= kShellOptRead | kShellOptWrite;
|
||||||
curbuf->b_op_start.lnum = line1;
|
curbuf->b_op_start.lnum = line1;
|
||||||
curbuf->b_op_end.lnum = line2;
|
curbuf->b_op_end.lnum = line2;
|
||||||
curwin->w_cursor.lnum = line2;
|
curwin->w_cursor.lnum = line2;
|
||||||
@ -1100,9 +1101,13 @@ do_filter (
|
|||||||
* 'u' to fix the text
|
* 'u' to fix the text
|
||||||
* Switch to cooked mode when not redirecting stdin, avoids that something
|
* Switch to cooked mode when not redirecting stdin, avoids that something
|
||||||
* like ":r !cat" hangs.
|
* like ":r !cat" hangs.
|
||||||
* Pass on the SHELL_DOOUT flag when the output is being redirected.
|
* Pass on the kShellDoOut flag when the output is being redirected.
|
||||||
*/
|
*/
|
||||||
if (call_shell(cmd_buf, SHELL_FILTER | SHELL_COOKED | shell_flags, NULL)) {
|
if (call_shell(
|
||||||
|
cmd_buf,
|
||||||
|
kShellOptFilter | kShellOptCooked | shell_flags,
|
||||||
|
NULL
|
||||||
|
)) {
|
||||||
redraw_later_clear();
|
redraw_later_clear();
|
||||||
wait_return(FALSE);
|
wait_return(FALSE);
|
||||||
}
|
}
|
||||||
@ -1133,7 +1138,7 @@ do_filter (
|
|||||||
|
|
||||||
read_linecount = curbuf->b_ml.ml_line_count - read_linecount;
|
read_linecount = curbuf->b_ml.ml_line_count - read_linecount;
|
||||||
|
|
||||||
if (shell_flags & SHELL_READ) {
|
if (shell_flags & kShellOptRead) {
|
||||||
curbuf->b_op_start.lnum = line2 + 1;
|
curbuf->b_op_start.lnum = line2 + 1;
|
||||||
curbuf->b_op_end.lnum = curwin->w_cursor.lnum;
|
curbuf->b_op_end.lnum = curwin->w_cursor.lnum;
|
||||||
appended_lines_mark(line2, read_linecount);
|
appended_lines_mark(line2, read_linecount);
|
||||||
@ -1256,7 +1261,7 @@ do_shell (
|
|||||||
if (!swapping_screen())
|
if (!swapping_screen())
|
||||||
windgoto(msg_row, msg_col);
|
windgoto(msg_row, msg_col);
|
||||||
cursor_on();
|
cursor_on();
|
||||||
(void)call_shell(cmd, SHELL_COOKED | flags, NULL);
|
(void)call_shell(cmd, kShellOptCooked | flags, NULL);
|
||||||
did_check_timestamps = FALSE;
|
did_check_timestamps = FALSE;
|
||||||
need_check_timestamps = TRUE;
|
need_check_timestamps = TRUE;
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
|
|
||||||
static void cmd_source(char_u *fname, exarg_T *eap);
|
static void cmd_source(char_u *fname, exarg_T *eap);
|
||||||
|
|
||||||
@ -3518,7 +3519,7 @@ static char_u **find_locales(void)
|
|||||||
/* Find all available locales by running command "locale -a". If this
|
/* Find all available locales by running command "locale -a". If this
|
||||||
* doesn't work we won't have completion. */
|
* doesn't work we won't have completion. */
|
||||||
char_u *locale_a = get_cmd_output((char_u *)"locale -a",
|
char_u *locale_a = get_cmd_output((char_u *)"locale -a",
|
||||||
NULL, SHELL_SILENT);
|
NULL, kShellOptSilent);
|
||||||
if (locale_a == NULL)
|
if (locale_a == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
ga_init2(&locales_ga, sizeof(char_u *), 20);
|
ga_init2(&locales_ga, sizeof(char_u *), 20);
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
static char_u *vim_version_dir(char_u *vimdir);
|
static char_u *vim_version_dir(char_u *vimdir);
|
||||||
static char_u *remove_tail(char_u *p, char_u *pend, char_u *name);
|
static char_u *remove_tail(char_u *p, char_u *pend, char_u *name);
|
||||||
static void init_users(void);
|
static void init_users(void);
|
||||||
@ -3670,7 +3671,7 @@ get_cmd_output (
|
|||||||
* Don't check timestamps here.
|
* Don't check timestamps here.
|
||||||
*/
|
*/
|
||||||
++no_check_timestamps;
|
++no_check_timestamps;
|
||||||
call_shell(command, SHELL_DOOUT | SHELL_EXPAND | flags, NULL);
|
call_shell(command, kShellOptDoOut | kShellOptExpand | flags, NULL);
|
||||||
--no_check_timestamps;
|
--no_check_timestamps;
|
||||||
|
|
||||||
vim_free(command);
|
vim_free(command);
|
||||||
|
@ -5,6 +5,17 @@
|
|||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
|
// 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
|
||||||
|
} ShellOpts;
|
||||||
|
|
||||||
char ** shell_build_argv(char_u *cmd, char_u *extra_shell_arg);
|
char ** shell_build_argv(char_u *cmd, char_u *extra_shell_arg);
|
||||||
void shell_free_argv(char **argv);
|
void shell_free_argv(char **argv);
|
||||||
|
|
||||||
|
@ -1681,7 +1681,7 @@ waitstatus *status;
|
|||||||
return wait_pid;
|
return wait_pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
int mch_call_shell(char_u *cmd, ShellOpts opts, char_u *extra_shell_arg)
|
||||||
{
|
{
|
||||||
int tmode = cur_tmode;
|
int tmode = cur_tmode;
|
||||||
|
|
||||||
@ -1708,7 +1708,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
|
int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
|
||||||
|
|
||||||
out_flush();
|
out_flush();
|
||||||
if (options & SHELL_COOKED)
|
if (opts & kShellOptCooked)
|
||||||
settmode(TMODE_COOK); /* set to normal mode */
|
settmode(TMODE_COOK); /* set to normal mode */
|
||||||
|
|
||||||
argv = shell_build_argv(cmd, extra_shell_arg);
|
argv = shell_build_argv(cmd, extra_shell_arg);
|
||||||
@ -1722,8 +1722,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
* input from the buffer: Try using a pseudo-tty to get the stdin/stdout
|
* input from the buffer: Try using a pseudo-tty to get the stdin/stdout
|
||||||
* of the executed command into the Vim window. Or use a pipe.
|
* of the executed command into the Vim window. Or use a pipe.
|
||||||
*/
|
*/
|
||||||
if ((options & (SHELL_READ|SHELL_WRITE))
|
if (opts & (kShellOptRead|kShellOptWrite)) {
|
||||||
) {
|
|
||||||
{
|
{
|
||||||
pipe_error = (pipe(fd_toshell) < 0);
|
pipe_error = (pipe(fd_toshell) < 0);
|
||||||
if (!pipe_error) { /* pipe create OK */
|
if (!pipe_error) { /* pipe create OK */
|
||||||
@ -1744,8 +1743,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
|
|
||||||
if ((pid = fork()) == -1) { /* maybe we should use vfork() */
|
if ((pid = fork()) == -1) { /* maybe we should use vfork() */
|
||||||
MSG_PUTS(_("\nCannot fork\n"));
|
MSG_PUTS(_("\nCannot fork\n"));
|
||||||
if ((options & (SHELL_READ|SHELL_WRITE))
|
if (opts & (kShellOptRead | kShellOptWrite)) {
|
||||||
) {
|
|
||||||
{
|
{
|
||||||
close(fd_toshell[0]);
|
close(fd_toshell[0]);
|
||||||
close(fd_toshell[1]);
|
close(fd_toshell[1]);
|
||||||
@ -1756,7 +1754,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
} else if (pid == 0) { /* child */
|
} else if (pid == 0) { /* child */
|
||||||
reset_signals(); /* handle signals normally */
|
reset_signals(); /* handle signals normally */
|
||||||
|
|
||||||
if (!show_shell_mess || (options & SHELL_EXPAND)) {
|
if (!show_shell_mess || (opts & kShellOptExpand)) {
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1789,8 +1787,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
/* Don't need this now that we've duplicated it */
|
/* Don't need this now that we've duplicated it */
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
} else if ((options & (SHELL_READ|SHELL_WRITE))
|
} else if (opts & (kShellOptRead|kShellOptWrite)) {
|
||||||
) {
|
|
||||||
|
|
||||||
# ifdef HAVE_SETSID
|
# ifdef HAVE_SETSID
|
||||||
/* Create our own process group, so that the child and all its
|
/* Create our own process group, so that the child and all its
|
||||||
@ -1860,8 +1857,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
* This is also used to pipe stdin/stdout to/from the external
|
* This is also used to pipe stdin/stdout to/from the external
|
||||||
* command.
|
* command.
|
||||||
*/
|
*/
|
||||||
if ((options & (SHELL_READ|SHELL_WRITE))
|
if (opts & (kShellOptRead|kShellOptWrite)) {
|
||||||
) {
|
|
||||||
# define BUFLEN 100 /* length for buffer, pseudo tty limit is 128 */
|
# define BUFLEN 100 /* length for buffer, pseudo tty limit is 128 */
|
||||||
char_u buffer[BUFLEN + 1];
|
char_u buffer[BUFLEN + 1];
|
||||||
int buffer_off = 0; /* valid bytes in buffer[] */
|
int buffer_off = 0; /* valid bytes in buffer[] */
|
||||||
@ -1907,7 +1903,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
old_State = State;
|
old_State = State;
|
||||||
State = EXTERNCMD; /* don't redraw at window resize */
|
State = EXTERNCMD; /* don't redraw at window resize */
|
||||||
|
|
||||||
if ((options & SHELL_WRITE) && toshell_fd >= 0) {
|
if ((opts & kShellOptWrite) && toshell_fd >= 0) {
|
||||||
/* Fork a process that will write the lines to the
|
/* Fork a process that will write the lines to the
|
||||||
* external program. */
|
* external program. */
|
||||||
if ((wpid = fork()) == -1) {
|
if ((wpid = fork()) == -1) {
|
||||||
@ -1963,7 +1959,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options & SHELL_READ)
|
if (opts & kShellOptRead)
|
||||||
ga_init2(&ga, 1, BUFLEN);
|
ga_init2(&ga, 1, BUFLEN);
|
||||||
|
|
||||||
noread_cnt = 0;
|
noread_cnt = 0;
|
||||||
@ -1986,10 +1982,10 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
* typeahead.
|
* typeahead.
|
||||||
*/
|
*/
|
||||||
len = 0;
|
len = 0;
|
||||||
if (!(options & SHELL_EXPAND)
|
if (!(opts & kShellOptExpand)
|
||||||
&& ((options &
|
&& ((opts &
|
||||||
(SHELL_READ|SHELL_WRITE|SHELL_COOKED))
|
(kShellOptRead|kShellOptWrite|kShellOptCooked))
|
||||||
!= (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
|
!= (kShellOptRead|kShellOptWrite|kShellOptCooked)
|
||||||
)
|
)
|
||||||
&& wait_pid == 0
|
&& wait_pid == 0
|
||||||
&& (ta_len > 0 || noread_cnt > 4)) {
|
&& (ta_len > 0 || noread_cnt > 4)) {
|
||||||
@ -2081,7 +2077,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
* When writing buffer lines, drop the typed
|
* When writing buffer lines, drop the typed
|
||||||
* characters (only check for CTRL-C).
|
* characters (only check for CTRL-C).
|
||||||
*/
|
*/
|
||||||
if (options & SHELL_WRITE)
|
if (opts & kShellOptWrite)
|
||||||
ta_len = 0;
|
ta_len = 0;
|
||||||
else if (toshell_fd >= 0) {
|
else if (toshell_fd >= 0) {
|
||||||
len = write(toshell_fd, (char *)ta_buf, (size_t)1);
|
len = write(toshell_fd, (char *)ta_buf, (size_t)1);
|
||||||
@ -2124,7 +2120,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
goto finished;
|
goto finished;
|
||||||
|
|
||||||
noread_cnt = 0;
|
noread_cnt = 0;
|
||||||
if (options & SHELL_READ) {
|
if (opts & kShellOptRead) {
|
||||||
/* Do NUL -> NL translation, append NL separated
|
/* Do NUL -> NL translation, append NL separated
|
||||||
* lines to the current buffer. */
|
* lines to the current buffer. */
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
@ -2227,7 +2223,7 @@ int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg)
|
|||||||
}
|
}
|
||||||
finished:
|
finished:
|
||||||
p_more = p_more_save;
|
p_more = p_more_save;
|
||||||
if (options & SHELL_READ) {
|
if (opts & kShellOptRead) {
|
||||||
if (ga.ga_len > 0) {
|
if (ga.ga_len > 0) {
|
||||||
append_ga_line(&ga);
|
append_ga_line(&ga);
|
||||||
/* remember that the NL was missing */
|
/* remember that the NL was missing */
|
||||||
@ -2283,7 +2279,7 @@ finished:
|
|||||||
MSG_PUTS(_("\nCannot execute shell "));
|
MSG_PUTS(_("\nCannot execute shell "));
|
||||||
msg_outtrans(p_sh);
|
msg_outtrans(p_sh);
|
||||||
msg_putchar('\n');
|
msg_putchar('\n');
|
||||||
} else if (!(options & SHELL_SILENT)) {
|
} else if (!(opts & kShellOptSilent)) {
|
||||||
MSG_PUTS(_("\nshell returned "));
|
MSG_PUTS(_("\nshell returned "));
|
||||||
msg_outnum((long)retval);
|
msg_outnum((long)retval);
|
||||||
msg_putchar('\n');
|
msg_putchar('\n');
|
||||||
@ -2663,7 +2659,11 @@ int flags; /* EW_* flags */
|
|||||||
/*
|
/*
|
||||||
* execute the shell command
|
* execute the shell command
|
||||||
*/
|
*/
|
||||||
i = call_shell(command, SHELL_EXPAND | SHELL_SILENT, extra_shell_arg);
|
i = call_shell(
|
||||||
|
command,
|
||||||
|
kShellOptExpand | kShellOptSilent,
|
||||||
|
extra_shell_arg
|
||||||
|
);
|
||||||
|
|
||||||
/* When running in the background, give it some time to create the temp
|
/* When running in the background, give it some time to create the temp
|
||||||
* file, but don't wait for it to finish. */
|
* file, but don't wait for it to finish. */
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#ifndef NEOVIM_OS_UNIX_H
|
#ifndef NEOVIM_OS_UNIX_H
|
||||||
#define NEOVIM_OS_UNIX_H
|
#define NEOVIM_OS_UNIX_H
|
||||||
|
|
||||||
|
#include "os/shell.h"
|
||||||
|
|
||||||
/* os_unix.c */
|
/* os_unix.c */
|
||||||
void mch_write(char_u *s, int len);
|
void mch_write(char_u *s, int len);
|
||||||
void mch_startjmp(void);
|
void mch_startjmp(void);
|
||||||
@ -42,7 +45,7 @@ int mch_screenmode(char_u *arg);
|
|||||||
int mch_get_shellsize(void);
|
int mch_get_shellsize(void);
|
||||||
void mch_set_shellsize(void);
|
void mch_set_shellsize(void);
|
||||||
void mch_new_shellsize(void);
|
void mch_new_shellsize(void);
|
||||||
int mch_call_shell(char_u *cmd, int options, char_u *extra_shell_arg);
|
int mch_call_shell(char_u *cmd, ShellOpts opts, char_u *extra_shell_arg);
|
||||||
int mch_expandpath(garray_T *gap, char_u *path, int flags);
|
int mch_expandpath(garray_T *gap, char_u *path, int flags);
|
||||||
int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file,
|
int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file,
|
||||||
char_u ***file,
|
char_u ***file,
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "misc1.h"
|
#include "misc1.h"
|
||||||
#include "misc2.h"
|
#include "misc2.h"
|
||||||
#include "os/os.h"
|
#include "os/os.h"
|
||||||
|
#include "os/shell.h"
|
||||||
#include "os_unix.h"
|
#include "os_unix.h"
|
||||||
#include "regexp.h"
|
#include "regexp.h"
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
@ -1212,7 +1213,7 @@ expand_backtick (
|
|||||||
buffer = eval_to_string(cmd + 1, &p, TRUE);
|
buffer = eval_to_string(cmd + 1, &p, TRUE);
|
||||||
else
|
else
|
||||||
buffer = get_cmd_output(cmd, NULL,
|
buffer = get_cmd_output(cmd, NULL,
|
||||||
(flags & EW_SILENT) ? SHELL_SILENT : 0);
|
(flags & EW_SILENT) ? kShellOptSilent : 0);
|
||||||
vim_free(cmd);
|
vim_free(cmd);
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2546,7 +2546,7 @@ void ex_make(exarg_T *eap)
|
|||||||
msg_outtrans(cmd); /* show what we are doing */
|
msg_outtrans(cmd); /* show what we are doing */
|
||||||
|
|
||||||
/* let the shell know if we are redirecting output or not */
|
/* let the shell know if we are redirecting output or not */
|
||||||
do_shell(cmd, *p_sp != NUL ? SHELL_DOOUT : 0);
|
do_shell(cmd, *p_sp != NUL ? kShellOptDoOut : 0);
|
||||||
|
|
||||||
|
|
||||||
res = qf_init(wp, fname, (eap->cmdidx != CMD_make
|
res = qf_init(wp, fname, (eap->cmdidx != CMD_make
|
||||||
|
@ -489,15 +489,6 @@ enum {
|
|||||||
#define REMAP_SCRIPT -2 /* remap script-local mappings only */
|
#define REMAP_SCRIPT -2 /* remap script-local mappings only */
|
||||||
#define REMAP_SKIP -3 /* no remapping for first char */
|
#define REMAP_SKIP -3 /* no remapping for first char */
|
||||||
|
|
||||||
/* Values for mch_call_shell() second argument */
|
|
||||||
#define SHELL_FILTER 1 /* filtering text */
|
|
||||||
#define SHELL_EXPAND 2 /* expanding wildcards */
|
|
||||||
#define SHELL_COOKED 4 /* set term to cooked mode */
|
|
||||||
#define SHELL_DOOUT 8 /* redirecting output */
|
|
||||||
#define SHELL_SILENT 16 /* don't print error returned by command */
|
|
||||||
#define SHELL_READ 32 /* read lines and insert into buffer */
|
|
||||||
#define SHELL_WRITE 64 /* write lines from buffer */
|
|
||||||
|
|
||||||
/* Values returned by mch_nodetype() */
|
/* Values returned by mch_nodetype() */
|
||||||
#define NODE_NORMAL 0 /* file or directory, check with os_isdir()*/
|
#define NODE_NORMAL 0 /* file or directory, check with os_isdir()*/
|
||||||
#define NODE_WRITABLE 1 /* something we can write to (character
|
#define NODE_WRITABLE 1 /* something we can write to (character
|
||||||
|
Loading…
Reference in New Issue
Block a user