kconfig: echo stdin to stdout if either is redirected
[carl9170fw.git] / config / conf.c
index ba416355ac2e61118e01eb072f4653f99b28574f..79eb6d9770c36bfe3cf174cf21436929a90a7922 100644 (file)
@@ -74,6 +74,9 @@ static void xfgets(char *str, int size, FILE *in)
 {
        if (!fgets(str, size, in))
                fprintf(stderr, "\nError in reading or end of file.\n");
 {
        if (!fgets(str, size, in))
                fprintf(stderr, "\nError in reading or end of file.\n");
+
+       if (!tty_stdio)
+               printf("%s", str);
 }
 
 static int conf_askvalue(struct symbol *sym, const char *def)
 }
 
 static int conf_askvalue(struct symbol *sym, const char *def)
@@ -103,8 +106,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
        case oldaskconfig:
                fflush(stdout);
                xfgets(line, sizeof(line), stdin);
        case oldaskconfig:
                fflush(stdout);
                xfgets(line, sizeof(line), stdin);
-               if (!tty_stdio)
-                       printf("\n");
                return 1;
        default:
                break;
                return 1;
        default:
                break;
@@ -476,7 +477,7 @@ int main(int ac, char **av)
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
-       tty_stdio = isatty(0) && isatty(1) && isatty(2);
+       tty_stdio = isatty(0) && isatty(1);
 
        while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
                if (opt == 's') {
 
        while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
                if (opt == 's') {