94a95
> string err = params->errout;
115c116,125
< stderr_fd = (stdout_fd != STDOUT_FILENO) ? stdout_fd : STDERR_FILENO;
---
> if (err == "stdout" || err == "cout")
> stderr_fd = STDOUT_FILENO;
> else if (err == "stderr" || err == "cerr")
> stderr_fd = STDERR_FILENO;
> else if (err == "None")
> stderr_fd = -1;
> else if (err == out)
> stderr_fd = stdout_fd;
> else
> stderr_fd = Process::openOutputFile(err);
135c145
< fdo->filename = "STDERR";
---
> fdo->filename = err;
186c196
< int fd = open(filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0774);
---
> int fd = open(filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
357a368
> string err = fdo_stderr->filename;
381,382c392,393
< if (lseek(stdin_fd, fdo_stdout->fileOffset, SEEK_SET) < 0)
< panic("Unable to seek to correct in file: %s", out);
---
> if (lseek(stdout_fd, fdo_stdout->fileOffset, SEEK_SET) < 0)
> panic("Unable to seek to correct location in file: %s", out);
385c396,408
< stderr_fd = (stdout_fd != STDOUT_FILENO) ? stdout_fd : STDERR_FILENO;
---
> if (err == "stdout" || err == "cout")
> stderr_fd = STDOUT_FILENO;
> else if (err == "stderr" || err == "cerr")
> stderr_fd = STDERR_FILENO;
> else if (err == "None")
> stderr_fd = -1;
> else if (err == out)
> stderr_fd = stdout_fd;
> else {
> stderr_fd = Process::openOutputFile(err);
> if (lseek(stderr_fd, fdo_stderr->fileOffset, SEEK_SET) < 0)
> panic("Unable to seek to correct location in file: %s", err);
> }