Lines Matching refs:redir
1 /* $NetBSD: redir.c,v 1.76 2024/11/11 22:57:42 kre Exp $ */
38 static char sccsid[] = "@(#)redir.c 8.2 (Berkeley) 5/4/95";
40 __RCSID("$NetBSD: redir.c,v 1.76 2024/11/11 22:57:42 kre Exp $");
65 #include "redir.h"
73 #define CLOSED -1 /* fd was not open before redir */
256 redirect(union node *redir, int flags)
264 CTRACE(DBG_REDIR, ("redirect(F=0x%x):%s\n", flags, redir?"":" NONE"));
279 for (n = redir ; n ; n = n->nfile.next) {
283 VTRACE(DBG_REDIR, ("redir %d (max=%d limit=%ld) ",
371 openredirect(union node *redir, char memory[10], int flags)
374 int fd = redir->nfile.fd;
387 switch (redir->nfile.type) {
389 fname = redir->nfile.expfname;
403 fname = redir->nfile.expfname;
410 fname = redir->nfile.expfname;
431 fname = redir->nfile.expfname;
437 fname = redir->nfile.expfname;
444 if (redir->ndup.dupfd >= 0) { /* if not ">&-" */
445 if (sh_fd(redir->ndup.dupfd) != NULL ||
446 saved_redirected_fd(redir->ndup.dupfd) != NULL)
448 redir->ndup.dupfd, fd, strerror(EBADF));
449 if (fd < 10 && redir->ndup.dupfd < 10 &&
450 memory[redir->ndup.dupfd])
452 else if (copyfd(redir->ndup.dupfd, fd,
455 redir->ndup.dupfd, fd, strerror(errno));
457 "<>"[redir->nfile.type==NTOFD], redir->ndup.dupfd));
461 "<>"[redir->nfile.type==NTOFD]));
468 f = openhere(redir);
509 openhere(const union node *redir)
518 len = strlen(redir->nhere.text);
519 VTRACE(DBG_REDIR, ("openhere(%p) [%d] \"%.*s\"%s\n", redir, len,
520 (len < 40 ? len : 40), redir->nhere.text, (len < 40 ? "" : "...")));
522 xwrite(pip[1], redir->nhere.text, len);
535 xwrite(pip[1], redir->nhere.text, len);
575 INCLUDE "redir.h"
1210 * ugly, but all redir node types have "fd" in same slot...