Lines Matching refs:redir
1268 struct redir_struct *redir;
1270 for (redir = prog->redirects; redir; redir = redir->next) {
1271 if (redir->dup == -1 && redir->word.gl_pathv == NULL) {
1275 if (redir->dup == -1) {
1276 mode = redir_table[redir->type].mode;
1277 openfd = open_or_warn(redir->word.gl_pathv[0], mode);
1284 openfd = redir->dup;
1287 if (openfd != redir->fd) {
1288 if (squirrel && redir->fd < 3) {
1289 squirrel[redir->fd] = dup(redir->fd);
1294 dup2(openfd, redir->fd);
1295 if (redir->dup == -1)
2756 struct redir_struct *redir = child->redirects;
2760 while (redir) {
2761 last_redir = redir;
2762 redir = redir->next;
2764 redir = xmalloc(sizeof(struct redir_struct));
2765 redir->next = NULL;
2766 redir->word.gl_pathv = NULL;
2768 last_redir->next = redir;
2770 child->redirects = redir;
2773 redir->type = style;
2774 redir->fd = (fd == -1) ? redir_table[style].default_fd : fd;
2776 debug_printf("Redirect type %d%s\n", redir->fd, redir_table[style].descrip);
2779 redir->dup = redirect_dup_num(input);
2780 if (redir->dup == -2) return 1; /* syntax error */
2781 if (redir->dup != -1) {
2785 debug_printf("Duplicating redirect '%d>&%d'\n", redir->fd, redir->dup);
2791 ctx->pending_redirect = redir;