gcc would warn about an unused result. We know it is 0 and dup()
can't fail in these circumstances, as we closed fd0 previously.
Using dup2() to do the same saves one line and shuts gcc up, bringing
us a clean build back.
        if (opt_line) {
                if ((cmdfd = open(opt_line, O_RDWR)) < 0)
                        die("open line failed: %s\n", strerror(errno));
-               close(0);
-               dup(cmdfd);
+               dup2(cmdfd, 0);
                stty();
                return;
        }