patch-2.3.47 linux/scripts/tkparse.c

Next file: linux/scripts/tkparse.h
Previous file: linux/scripts/tkgen.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.46/linux/scripts/tkparse.c linux/scripts/tkparse.c
@@ -386,6 +386,7 @@
 	match_token( token_define_string, "define_string" );
 	match_token( token_define_tristate, "define_tristate" );
 	match_token( token_dep_bool, "dep_bool" );
+	match_token( token_dep_mbool, "dep_mbool" );
 	match_token( token_dep_tristate, "dep_tristate" );
 	break;
 
@@ -549,6 +550,7 @@
 	break;
 
     case token_dep_bool:
+    case token_dep_mbool:
     case token_dep_tristate:
 	pnt = get_qstring ( pnt, &cfg->label );
 	pnt = get_string  ( pnt, &buffer );
@@ -585,7 +587,7 @@
 	    }
 	    else
 	    {
-		syntax_error( "can't handle dep_bool/dep_tristate condition" );
+		syntax_error( "can't handle dep_bool/dep_mbool/dep_tristate condition" );
 	    }
 	    dep_ptr = &(*dep_ptr)->next;
 	    while ( *pnt == ' ' || *pnt == '\t' )
@@ -623,12 +625,12 @@
 		*cond_ptr = malloc( sizeof(struct condition) );
 		memset( *cond_ptr, 0, sizeof(struct condition) );
 		(*cond_ptr)->op = op_lparen;
-		if ( token == token_dep_tristate )
-		    sprintf( fake_if, "[ \"$%s\" = \"y\" -o \"$%s\" = \"m\" -o \"$%s\" = \"\" ]; then",
-			dep->name, dep->name, dep->name );
-		else
+		if ( token == token_dep_bool )
 		    sprintf( fake_if, "[ \"$%s\" = \"y\" -o \"$%s\" = \"\" ]; then",
 			dep->name, dep->name );
+		else
+		    sprintf( fake_if, "[ \"$%s\" = \"y\" -o \"$%s\" = \"m\" -o \"$%s\" = \"\" ]; then",
+			dep->name, dep->name, dep->name );
 		(*cond_ptr)->next = tokenize_if( fake_if );
 		while ( *cond_ptr )
 		    cond_ptr = &(*cond_ptr)->next;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)