Lines Matching defs:sp

47 argv_init(SCR *sp, EXCMD *excp)
51 exp = EXP(sp);
53 argv_alloc(sp, 1);
67 argv_exp0(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen)
71 exp = EXP(sp);
72 argv_alloc(sp, cmdlen);
90 argv_exp1(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen, int is_bang)
96 GET_SPACE_RETW(sp, bp, blen, 512);
99 exp = EXP(sp);
100 if (argv_fexp(sp, excp, cmd, cmdlen, bp, &len, &bp, &blen, is_bang)) {
101 FREE_SPACEW(sp, bp, blen);
115 (void)argv_exp0(sp, excp, bp, len);
117 ret: FREE_SPACEW(sp, bp, blen);
129 argv_exp2(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen)
135 GET_SPACE_RETW(sp, bp, blen, 512);
144 TRACE(sp, "file_argv: {%.*s}\n", (int)cmdlen, cmd);
147 if (argv_fexp(sp, excp, cmd, cmdlen, p, &len, &bp, &blen, 0)) {
153 TRACE(sp, "before shell: %d: {%s}\n", len, bp);
166 if (opts_empty(sp, O_SHELL, 1) || opts_empty(sp, O_SHELLMETA, 1))
172 if (IS_SHELLMETA(sp, *p))
191 rval = argv_exp3(sp, excp, p, len);
194 if (argv_sexp(sp, &bp, &blen, &len)) {
199 rval = argv_exp3(sp, excp, p, len);
203 err: FREE_SPACEW(sp, bp, blen);
215 argv_exp3(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen)
222 for (exp = EXP(sp); cmdlen > 0; ++exp->argsoff) {
243 if (IS_ESCAPE(sp, excp, ch) && cmdlen > 1) {
257 argv_alloc(sp, len);
261 if (IS_ESCAPE(sp, excp, *ap))
270 TRACE(sp, "arg %d: {%s}\n", cnt, exp->argv[cnt]);
283 argv_flt_ex(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen)
290 exp = EXP(sp);
299 argv_alloc(sp, len + 1);
316 argv_flt_user(SCR *sp, EXCMD *excp, CHAR_T *uname, size_t ulen)
324 exp = EXP(sp);
328 INT2CHAR(sp, uname + 1, ulen - 1, np, nlen);
329 if ((np = v_strdup(sp, np, nlen)) == NULL)
340 CHAR2INT(sp, pw->pw_name, len + 1, uname, ulen);
341 argv_alloc(sp, ulen + 1);
361 argv_fexp(SCR *sp, EXCMD *excp, CHAR_T *cmd, size_t cmdlen, CHAR_T *p, size_t *lenp, CHAR_T **bpp, size_t *blenp, int is_bang)
376 exp = EXP(sp);
378 msgq(sp, M_ERR,
384 ADD_SPACE_RETW(sp, bp, blen, len);
391 if ((t = sp->frp->name) == NULL) {
392 msgq(sp, M_ERR,
399 ADD_SPACE_RETW(sp, bp, blen, len);
401 CHAR2INT(sp, t, tlen, wp, wlen);
407 if ((t = sp->alt_name) == NULL) {
408 msgq(sp, M_ERR,
414 ADD_SPACE_RETW(sp, bp, blen, len);
416 CHAR2INT(sp, t, tlen, wp, wlen);
437 ADD_SPACE_RETW(sp, bp, blen, len);
445 ADD_SPACE_RETW(sp, bp, blen, len);
461 argv_alloc(SCR *sp, size_t len)
472 exp = EXP(sp);
476 REALLOC(sp, exp->args, ARGS **, cnt * sizeof(ARGS *));
478 (void)argv_free(sp);
487 CALLOC(sp, exp->args[off], ARGS *, 1, sizeof(ARGS));
497 REALLOC(sp, ap->bp, CHAR_T *, ap->blen * sizeof(CHAR_T));
502 mem: msgq(sp, M_SYSERR, NULL);
510 CALLOC(sp, exp->args[off], ARGS *, 1, sizeof(ARGS));
526 argv_free(SCR *sp)
531 exp = EXP(sp);
556 argv_flt_path(SCR *sp, EXCMD *excp, CHAR_T *path, size_t plen)
569 exp = EXP(sp);
572 if ((path = v_wstrdup(sp, path, plen)) == NULL)
579 rc = argv_flt_user(sp, excp, path, plen);
598 INT2CHAR(sp, dname, dlen + 1, tp, nlen);
608 INT2CHAR(sp, np, STRLEN(np), tp, nlen);
609 if ((name = v_strdup(sp, tp, nlen)) == NULL) {
626 CHAR2INT(sp, dp->d_name, len + 1, wp, wlen);
627 argv_alloc(sp, dlen + wlen + 1);
666 argv_sexp(SCR *sp, CHAR_T **bpp, size_t *blenp, size_t *lenp)
679 if (O_ISSET(sp, O_SECURE)) {
680 msgq(sp, M_ERR,
685 sh_path = O_STR(sp, O_SHELL);
709 msgq(sp, M_SYSERR, "pipe");
713 msgq(sp, M_SYSERR, "fdopen");
723 msgq(sp, M_SYSERR, "vfork");
744 INT2CHAR(sp, bp, STRLEN(bp)+1, np, nlen);
746 msgq_str(sp, M_SYSERR, sh_path, "118|Error: execl: %s");
765 ADD_SPACE_GOTOW(sp, bp, *blenp, *blenp * 2);
782 ioerr: msgq_str(sp, M_ERR, sh, "119|I/O error: %s");
796 if (proc_wait(sp, (long)pid, sh, 1, 0))
806 msgq(sp, M_ERR, "304|Shell expansion failed");
818 argv_esc(SCR *sp, EXCMD *excp, CHAR_T *str, size_t len)
824 GET_SPACE_GOTOW(sp, bp, blen, len + 1);
838 ADD_SPACE_GOTOW(sp, bp, blen, off + 3);
842 IS_ESCAPE(sp, excp, ch)) /* Ex. */
881 argv_uesc(SCR *sp, EXCMD *excp, CHAR_T *str, size_t len)
886 GET_SPACE_GOTOW(sp, bp, blen, len + 1);
889 if (IS_ESCAPE(sp, excp, *str)) {