int next(char **argv) { static int done; int statok; if (argv) { _argv = argv; return(1); } for (;;) { if (*_argv) { if (!(freopen(*_argv, "r", stdin))) { warn("%s", *_argv); exitval = done = 1; ++_argv; continue; } statok = done = 1; } else { if (done++) return(0); statok = 0; } if (skip) doskip(statok ? *_argv : "stdin", statok); if (*_argv) ++_argv; if (!skip) return(1); } /* NOTREACHED */ }
int next(rtems_shell_hexdump_globals* globals, char **argv) { #if RTEMS_REMOVED static int done; #endif int statok; if (argv) { _argv = argv; return(1); } for (;;) { if (*_argv) { done = 1; if (!hdstdin) { hdstdin = malloc(sizeof(FILE)); if (!hdstdin) { errno = ENOMEM; err(exit_jump, 1, "file name allocation"); } memset (hdstdin, 0, sizeof(FILE)); } if (!(hdstdin = freopen(*_argv, "r", hdstdin))) { warn("%s", *_argv); exitval = 1; ++_argv; continue; } statok = 1; } else { errno = ECANCELED; err(exit_jump, 1, "no file (stdin no supported)"); if (done++) return(0); statok = 0; } if (skip) doskip(globals, statok ? *_argv : "stdin", statok); if (*_argv) ++_argv; if (!skip) return(1); } /* NOTREACHED */ }
int next(char **argv) { static int done; int statok; if (argv) { _argv = argv; return(1); } for (;;) { if (*_argv) { done = 1; if (!(freopen(*_argv, "r", stdin))) { warn("%s", *_argv); exitval = 1; ++_argv; continue; } statok = 1; } else { if (done++) return(0); statok = 0; } if (caph_limit_stream(fileno(stdin), CAPH_READ) < 0) err(1, "unable to restrict %s", statok ? _argv[-1] : "stdin"); /* * We've opened our last input file; enter capsicum sandbox. */ if (*_argv == NULL) { if (cap_enter() < 0 && errno != ENOSYS) err(1, "unable to enter capability mode"); } if (skip) doskip(statok ? *_argv : "stdin", statok); if (*_argv) ++_argv; if (!skip) return(1); } /* NOTREACHED */ }