- /* trim trailing whitespace */
- opt = strlen(in_from_stdin) - 1;
- while (isspace(in_from_stdin[opt]))
- opt--;
- in_from_stdin[++opt] = 0;
-
- /* Strip out any leading whitespace */
- tmp=in_from_stdin;
- while(isspace(*tmp))
- tmp++;
-
- strcat(args, tmp);
- strcat(args, " ");
-
- free(in_from_stdin);
- in_from_stdin = get_line_from_file(stdin);
- }
-
- if (traceflag==1) {
- fprintf(stderr, "%s%s\n", cmd_to_be_executed, args);
- }
-
- if ((pid = fork()) == 0) {
- char *cmd[255];
- int i=1;
-
- //printf("argv[0]='%s'\n", cmd_to_be_executed);
- cmd[0] = cmd_to_be_executed;
- while (--argc && ++argv && *argv ) {
- //printf("argv[%d]='%s'\n", i, *argv);
- cmd[i++]=*argv;
- }
- //printf("argv[%d]='%s'\n", i, args);
- cmd[i++] = args;
- cmd[i] = NULL;
- execvp(cmd_to_be_executed, cmd);
-
- /* What? Still here? Exit with an error */
- fatalError("%s: %s\n", cmd_to_be_executed, strerror(errno));