-
-void
-Perl_epoc_init(int *argcp, char ***argvp) {
- int i;
- int truecount=0;
- char **lastcp = (*argvp);
- char *ptr;
- for (i=0; i< *argcp; i++) {
- if ((*argvp)[i]) {
- if (*((*argvp)[i]) == '<') {
- if (strlen((*argvp)[i]) > 1) {
- ptr =((*argvp)[i])+1;
- } else {
- i++;
- ptr = ((*argvp)[i]);
- }
- freopen( ptr, "r", stdin);
- } else if (*((*argvp)[i]) == '>') {
- if (strlen((*argvp)[i]) > 1) {
- ptr =((*argvp)[i])+1;
- } else {
- i++;
- ptr = ((*argvp)[i]);
- }
- freopen( ptr, "w", stdout);
- } else if ((*((*argvp)[i]) == '2') && (*(((*argvp)[i])+1) == '>')) {
- if (strcmp( (*argvp)[i], "2>&1") == 0) {
- dup2( fileno( stdout), fileno( stderr));
- } else {
- if (strlen((*argvp)[i]) > 2) {
- ptr =((*argvp)[i])+2;
- } else {
- i++;
- ptr = ((*argvp)[i]);
- }
- freopen( ptr, "w", stderr);
- }
- } else {
- *lastcp++ = (*argvp)[i];
- truecount++;
- }
- }
- }
- *argcp=truecount;
-
-
-}