kbuild: Fix missing '\n' for NEW symbols in yes "" | make oldconfig >conf.new
authorBen Hutchings <ben@decadent.org.uk>
Tue, 19 Feb 2013 00:24:26 +0000 (02:24 +0200)
committerChristian Lamparter <chunkeey@googlemail.com>
Fri, 22 Mar 2013 23:25:01 +0000 (00:25 +0100)
According to Documentation/kbuild/kconfig.txt, the commands:

    yes "" | make oldconfig >conf.new
    grep "(NEW)" conf.new

should list the new config symbols with their default values.
However, currently there is no line break after each new symbol.  When
kconfig is interactive the user will type a new-line at this point,
but when non-interactive kconfig must print it.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Reference: http://bugs.debian.org/636029
[regid23@nt1.in: Adjusted Ben's work to apply cleanly to this tree]
Reported-and-tested-by: Regid Ichira <regid23@nt1.in>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
config/conf.c

index 649ea82772335ebf8e159fc4bede8ef8cf8a39c4..cdbdb1129eeb3067b26451c0851d014d709a4ad2 100644 (file)
@@ -35,6 +35,7 @@ enum input_mode {
 } input_mode = oldaskconfig;
 
 static int indent = 1;
+static int tty_stdio;
 static int valid_stdin = 1;
 static int conf_cnt;
 static char line[128];
@@ -105,6 +106,8 @@ static int conf_askvalue(struct symbol *sym, const char *def)
        case oldaskconfig:
                fflush(stdout);
                xfgets(line, 128, stdin);
+               if (!tty_stdio)
+                       printf("\n");
                return 1;
        default:
                break;
@@ -482,6 +485,8 @@ int main(int ac, char **av)
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
+       tty_stdio = isatty(0) && isatty(1) && isatty(2);
+
        while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1) {
                input_mode = (enum input_mode)opt;
                switch (opt) {
@@ -583,7 +588,7 @@ int main(int ac, char **av)
                break;
        }
 
-       valid_stdin = isatty(0) && isatty(1) && isatty(2);
+       valid_stdin = tty_stdio;
 
        switch (input_mode) {
        case allnoconfig: