Lines Matching refs:sp
42 ex_shell(SCR *sp, EXCMD *cmdp)
48 if (opts_empty(sp, O_SHELL, 0))
55 (void)asprintf(&buf, "%s -i", O_STR(sp, O_SHELL));
57 msgq(sp, M_SYSERR, NULL);
62 (void)sp->gp->scr_rename(sp, NULL, 0);
65 rval = ex_exec_proc(sp, cmdp, buf, NULL, !F_ISSET(sp, SC_SCR_EXWROTE));
69 (void)sp->gp->scr_rename(sp, sp->frp->name, 1);
76 F_SET(sp, SC_EX_WAIT_NO);
88 ex_exec_proc(SCR *sp, EXCMD *cmdp, char *cmd, const char *msg, int need_newline)
94 gp = sp->gp;
97 if (opts_empty(sp, O_SHELL, 0))
101 if (F_ISSET(sp, SC_VI)) {
102 if (gp->scr_screen(sp, SC_EX)) {
103 ex_wemsg(sp, cmdp->cmd->name, EXM_NOCANON);
106 (void)gp->scr_attr(sp, SA_ALTERNATE, 0);
107 F_SET(sp, SC_SCR_EX | SC_SCR_EXWROTE);
112 (void)ex_puts(sp, "\n");
114 (void)ex_puts(sp, msg);
115 (void)ex_puts(sp, "\n");
117 (void)ex_fflush(sp);
121 msgq(sp, M_SYSERR, "vfork");
125 gp->scr_child(sp);
126 if ((name = strrchr(O_STR(sp, O_SHELL), '/')) == NULL)
127 name = O_STR(sp, O_SHELL);
130 execl(O_STR(sp, O_SHELL), name, "-c", cmd, (char *)NULL);
131 msgq_str(sp, M_SYSERR, O_STR(sp, O_SHELL), "execl: %s");
135 return (proc_wait(sp, (long)pid, cmd, 0, 0));
153 proc_wait(SCR *sp, long int pid, const char *cmd, int silent, int okpipe)
165 msgq(sp, M_SYSERR, "waitpid");
177 p = msg_print(sp, cmd, &nf);
179 msgq(sp, M_ERR, "%.*s%s: received signal: %s%s",
184 FREE_SPACE(sp, p, 0);
199 p = msg_print(sp, cmd, &nf);
201 msgq(sp, M_ERR, "%.*s%s: exited with status %d",
205 FREE_SPACE(sp, p, 0);