亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tkgen.c

?? MAKEFILE 經(jīng)典編寫方法
?? C
?? 第 1 頁 / 共 4 頁
字號:
	    printf( " }\n" );	    break;	case token_dep_mbool:	    modtoyes = 1;	case token_dep_bool:	    printf( "\n" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		if ( ! vartable[get_varnum( tmp->name )].global_written )		{		    global( tmp->name );		}	    printf( "\tset tmpvar_dep [effective_dep [list" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		printf( " $%s", tmp->name );	    printf( "]];set %s [sync_bool $%s $tmpvar_dep %d];",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name,		modtoyes );	    printf( "if {$tmpvar_dep != 1" );	    if (modtoyes)		printf( " && $tmpvar_dep != 2" );	    printf( "} then {configure_entry .menu%d.config.f.x%d disabled {y};",		menu_num, line_num );	    printf( "} else {" );	    printf( "configure_entry .menu%d.config.f.x%d normal {y};",		menu_num, line_num );	    printf( "}; " );	case token_bool:	    if ( cfg->token == token_bool )		printf( "\n\t" );	    printf( "configure_entry .menu%d.config.f.x%d normal {n l",		menu_num, line_num );	    if ( cfg->token == token_bool )		printf( " y" );	    printf( "}" );	    printf( "} else {");	    printf( "configure_entry .menu%d.config.f.x%d disabled {y n l}}\n",		menu_num, line_num );	    break;	case token_choice_header:	    printf( "configure_entry .menu%d.config.f.x%d normal {x l}",		menu_num, line_num );	    printf( "} else {" );	    printf( "configure_entry .menu%d.config.f.x%d disabled {x l}",		menu_num, line_num );	    printf( "}\n" );	    break;	case token_choice_item:	    fprintf( stderr, "Internal error on token_choice_item\n" );	    exit( 1 );	case token_dep_tristate:	    printf( "\n" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		if ( ! vartable[get_varnum( tmp->name )].global_written )		{		    global( tmp->name );		}	    printf( "\tset tmpvar_dep [effective_dep [list" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		printf( " $%s", tmp->name );	    printf( "]];set %s [sync_tristate $%s $tmpvar_dep];",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	    printf( "\tif {$tmpvar_dep != 1} then {" );	    printf( "configure_entry .menu%d.config.f.x%d disabled {y}",		menu_num, line_num );	    printf( "} else {" );	    printf( "configure_entry .menu%d.config.f.x%d normal {y}",		menu_num, line_num );	    printf( "}; " );	    printf( "if {$tmpvar_dep == 0} then {" );	    printf( "configure_entry .menu%d.config.f.x%d disabled {m}",		menu_num, line_num );	    printf( "} else {" );	    printf( "configure_entry .menu%d.config.f.x%d normal {m}",		menu_num, line_num );	    printf( "}; " );	case token_tristate:	    if ( cfg->token == token_tristate )	    {		printf( "\n\tconfigure_entry .menu%d.config.f.x%d normal {y}; ",		    menu_num, line_num );	    }	    printf( "if {($CONFIG_MODULES == 1)} then {" );	    printf( "configure_entry .menu%d.config.f.x%d normal {m}} else {",		menu_num, line_num );	    printf( "configure_entry .menu%d.config.f.x%d disabled {m}}; ",		menu_num, line_num );	    printf( "configure_entry .menu%d.config.f.x%d normal {n l}",		menu_num, line_num );	/*	 * Or in a bit to the variable - this causes all of the radiobuttons	 * to be deselected (i.e. not be red).	 */	    printf( "} else {" );	    printf( "configure_entry .menu%d.config.f.x%d disabled {y n m l}}\n",		menu_num, line_num );	    break;	case token_hex:	case token_int:	case token_string:	    printf( ".menu%d.config.f.x%d.x configure -state normal -foreground [ cget .ref -foreground ]; ",		menu_num, line_num );	    printf( ".menu%d.config.f.x%d.l configure -state normal; ",		menu_num, line_num );	    printf( "} else {" );	    printf( ".menu%d.config.f.x%d.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; ",		menu_num, line_num );	    printf( ".menu%d.config.f.x%d.l configure -state disabled}\n",		menu_num, line_num );	    break;	case token_comment:	case token_mainmenu_option:	    if ( line_num >= 0 )	    {		printf( "configure_entry .menu%d.config.f.x%d normal {m}",		    menu_num, line_num );		printf( "} else {" );		printf( "configure_entry .menu%d.config.f.x%d disabled {m}}\n",		    menu_num, line_num );	    }	    else		printf( ".f0.x%d configure -state normal } else { .f0.x%d configure -state disabled }\n",		    menu_num, menu_num );	    break;	}    }    else    {	int modtoyes = 0;	switch ( cfg->token )	{	default:	    printf( " }\n" );	    break;	case token_dep_mbool:	    modtoyes = 1;	case token_dep_bool:	    printf( "\n" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		if ( ! vartable[get_varnum( tmp->name )].global_written )		{		    global( tmp->name );		}	    printf( "\tset tmpvar_dep [effective_dep [list" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		printf( " $%s", tmp->name );	    printf( "]];set %s [sync_bool $%s $tmpvar_dep %d];",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name,		modtoyes );	case token_bool:	    if ( cfg->token == token_bool )		printf( "\n\t" );	    printf( "set %s [expr $%s&15]",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );		printf( "}\n");	    break;	case token_choice_header:	    printf( "} else {" );	    for ( cfg1  = cfg->next;		  cfg1 != NULL && cfg1->token == token_choice_item;		  cfg1  = cfg1->next )		printf( "set %s 4;", vartable[cfg1->nameindex].name );	    printf( "}\n" );	    break;	case token_choice_item:	    fprintf( stderr, "Internal error on token_choice_item\n" );	    exit( 1 );	case token_define_bool:	case token_define_tristate:	    if ( ! vartable[get_varnum( cfg->value )].global_written )	    {		global( cfg->value );	    }	    printf( "set %s $%s }\n",		vartable[cfg->nameindex].name, cfg->value );	    break;	case token_define_hex:	case token_define_int:	    printf( "set %s %s }\n",		vartable[cfg->nameindex].name, cfg->value );	    break;	case token_define_string:	    printf( "set %s \"%s\" }\n",		vartable[cfg->nameindex].name, cfg->value );	    break;	case token_dep_tristate:	    printf( "\n" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		if ( ! vartable[get_varnum( tmp->name )].global_written )		{		    global( tmp->name );		}	    printf( "\tset tmpvar_dep [effective_dep [list" );	    for ( tmp = cfg->depend; tmp; tmp = tmp->next )		printf( " $%s", tmp->name );	    printf( "]]; set %s [sync_tristate $%s $tmpvar_dep]; ",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	case token_tristate:	    if ( cfg->token == token_tristate )		printf( "if {($CONFIG_MODULES == 0) && ($%s == 2)} then {set %s 1}; ",		    vartable[cfg->nameindex].name,		    vartable[cfg->nameindex].name );	/*	 * Or in a bit to the variable - this causes all of the radiobuttons	 * to be deselected (i.e. not be red).	 */	    printf( "set %s [expr $%s&15]",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	    printf( "}\n" );	    break;	case token_hex:	case token_int:	    if ( cfg->value && *cfg->value == '$' )	    {		int index = get_varnum( cfg->value+1 );		printf( "\n" );		if ( ! vartable[index].global_written )		{		    global( vartable[index].name );		}		printf( "\t" );	    }	    if ( cfg->token == token_hex )		printf( "validate_hex " );	    else if ( cfg->token == token_int )		printf( "validate_int " );	    printf( "%s \"$%s\" %s}\n",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name,		cfg->value );	    break;	case token_unset:	    printf( "set %s 4}\n", vartable[cfg->nameindex].name );	    break;	}    }}/* * Generate a line that writes a variable to the output file. */void generate_writeconfig( struct kconfig * cfg ){    struct condition * cond;    struct dependency * tmp;    int depmod = 2;        /*     * Generate global declaration for this symbol.     */    if ( cfg->token != token_comment )    {	if ( cfg->nameindex > 0 && ! vartable[cfg->nameindex].global_written )	{	    vartable[cfg->nameindex].global_written = 1;	    global( vartable[cfg->nameindex].name );	}	if ( cfg->token == token_define_tristate || cfg->token == token_define_bool )	{	    if ( ! vartable[get_varnum( cfg->value )].global_written )	    {		vartable[get_varnum( cfg->value )].global_written = 1;		global( cfg->value );	    }	}	else if ( cfg->nameindex <= 0 && cfg->token == token_choice_header )	{	    printf( "\tglobal tmpvar_%d\n", -(cfg->nameindex) );	}    }    /*     * Generate global declarations for the condition chain.     */    for ( cond = cfg->cond; cond != NULL; cond = cond->next )    {	switch( cond->op )	{	default:	    break;	case op_variable:	    if ( ! vartable[cond->nameindex].global_written )	    {		vartable[cond->nameindex].global_written = 1;		global( vartable[cond->nameindex].name );	    }	    break;	}    }    /*     * Generate indentation.     */	printf( "\t" );    /*     * Generate the conditional.     */    if ( cfg->cond != NULL )    {	printf( "if {" );	for ( cond = cfg->cond; cond != NULL; cond = cond->next )	{	    switch ( cond->op )	    {	    default:           break;	    case op_bang:      printf( " ! "  ); break;	    case op_eq:        printf( " == " ); break;	    case op_neq:       printf( " != " ); break;	    case op_and:       printf( " && " ); break;	    case op_and1:      printf( " && " ); break;	    case op_or:        printf( " || " ); break;	    case op_lparen:    printf( "("    ); break;	    case op_rparen:    printf( ")"    ); break;	    case op_variable:		printf( "$%s", vartable[cond->nameindex].name );		break;	    case op_constant:		if      ( strcmp( cond->str, "n" ) == 0 ) printf( "0" );		else if ( strcmp( cond->str, "y" ) == 0 ) printf( "1" );		else if ( strcmp( cond->str, "m" ) == 0 ) printf( "2" );		else if ( strcmp( cond->str, "" ) == 0 )  printf( "4" );		else		    printf( "\"%s\"", cond->str );		break;	    }	}	printf( "} then {" );    }    /*     * Generate a procedure call to write the value.     * This code depends on the write_* procedures in header.tk.     */    switch ( cfg->token )    {    default:	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_bool:    case token_tristate:	printf( "write_tristate $cfg $autocfg %s $%s [list $notmod] 2", 	    vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_choice_header:	/*	 * This is funky code -- it fails if there were any conditionals.	 * Fortunately all the conditionals got stripped off somewhere	 * else.	 */	{	    struct kconfig * cfg1;	    for ( cfg1  = cfg->next;		  cfg1 != NULL && cfg1->token == token_choice_item;		  cfg1  = cfg1->next )	    {		printf("\n\tif { $tmpvar_%d == \"%s\" } then { write_tristate $cfg $autocfg %s 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg %s 0 [list $notmod] 2 }",		    -(cfg->nameindex), cfg1->label,		    vartable[cfg1->nameindex].name,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品不卡| 精品少妇一区二区三区日产乱码| 国产精品一区二区在线播放| 免费在线成人网| 蜜臀久久99精品久久久画质超高清| 亚洲第一狼人社区| 日韩电影网1区2区| 麻豆精品一区二区三区| 精品一区二区三区影院在线午夜| 老司机精品视频线观看86 | 成人网页在线观看| 成人综合婷婷国产精品久久| 粉嫩av一区二区三区粉嫩| 粉嫩av一区二区三区| gogo大胆日本视频一区| 一本一道久久a久久精品| 欧美午夜不卡视频| 欧美精品在线一区二区| 日韩天堂在线观看| 久久久不卡网国产精品一区| 国产精品蜜臀av| 亚洲欧美日韩在线| 亚洲第一激情av| 久久丁香综合五月国产三级网站| 国产一区二区福利| 99精品视频一区二区三区| 欧洲国内综合视频| 日韩欧美三级在线| 中文字幕第一页久久| 亚洲综合免费观看高清完整版在线 | 99这里只有久久精品视频| 色婷婷av一区二区三区gif| 欧美区在线观看| 精品国产乱码久久久久久老虎| 国产亚洲综合av| 国产欧美精品一区| 中文字幕日韩一区二区| 五月激情综合网| 色综合久久综合网| 欧美日韩国产系列| 精品国产青草久久久久福利| 精品久久一区二区| 国产精品久久久久永久免费观看 | 国产精品丝袜久久久久久app| 国产精品成人免费| 亚洲你懂的在线视频| 亚洲香肠在线观看| 国内外精品视频| 在线视频一区二区三区| 日韩欧美国产三级| 亚洲日本丝袜连裤袜办公室| 久久超碰97中文字幕| 99re热这里只有精品免费视频 | 中文字幕在线一区免费| 亚洲地区一二三色| 成人精品视频一区二区三区 | 精品国产乱码久久久久久久 | 粉嫩高潮美女一区二区三区| 欧美日韩国产高清一区二区三区| 久久免费精品国产久精品久久久久 | 国产精品欧美极品| 秋霞成人午夜伦在线观看| 99久久777色| 久久影院视频免费| 日韩精品一级中文字幕精品视频免费观看 | 欧美精品自拍偷拍动漫精品| 中文字幕的久久| 精品系列免费在线观看| 欧美日韩精品一二三区| 中文字幕一区二区不卡| 黄色日韩三级电影| 91精品久久久久久久99蜜桃| 一区二区在线观看视频| 国产69精品久久久久777| 日韩一区二区三区视频在线 | 日韩av电影天堂| 色呦呦国产精品| 亚洲精品一区二区三区四区高清| 亚洲精品第1页| 成人在线一区二区三区| 日韩免费电影网站| 日韩高清不卡一区二区三区| 欧洲精品中文字幕| 亚洲丝袜另类动漫二区| 国产成人免费视频网站高清观看视频 | 色偷偷久久人人79超碰人人澡| 久久婷婷国产综合精品青草| 蜜桃久久av一区| 在线成人免费观看| 一级特黄大欧美久久久| 成人爱爱电影网址| 久久新电视剧免费观看| 韩日av一区二区| 日韩三级视频在线看| 日本特黄久久久高潮 | 国产精品三级久久久久三级| 国产一区二区精品久久99| 日韩午夜在线播放| 日本视频中文字幕一区二区三区| 色综合一个色综合| 国产精品萝li| 成人av网址在线| 国产精品传媒入口麻豆| 播五月开心婷婷综合| 国产午夜亚洲精品理论片色戒 | 91天堂素人约啪| 国产精品人人做人人爽人人添| 国产精品99久| 国产日产欧美一区| 成人性生交大合| 久久久精品日韩欧美| 国产一区二区91| 国产日本亚洲高清| 粉嫩av亚洲一区二区图片| 国产精品短视频| 91免费视频网址| 亚洲自拍另类综合| 欧美视频三区在线播放| 夜色激情一区二区| 欧美色视频一区| 日本视频一区二区三区| 欧美成va人片在线观看| 九九国产精品视频| 久久久蜜臀国产一区二区| 国产精品亚洲成人| 国产精品久久久久毛片软件| 99久久婷婷国产综合精品| 亚洲你懂的在线视频| 欧美日韩精品一区二区| 免费人成精品欧美精品| 欧美精品一区二区三区久久久| 成人视屏免费看| 亚洲美女免费在线| 欧美三级电影网| 亚洲va韩国va欧美va精品| 欧美变态tickling挠脚心| 国产aⅴ综合色| 一区二区三区美女视频| 日韩一区二区精品| 国产麻豆一精品一av一免费| 国产精品久久三区| 欧美吻胸吃奶大尺度电影| 久久99精品久久久久久国产越南 | 国产精品主播直播| 亚洲三级电影网站| 欧美日韩一区精品| 国产一区在线精品| 亚洲一级不卡视频| 国产欧美一二三区| 欧美电影影音先锋| 成人av在线网站| 91免费看视频| 日日夜夜免费精品| 91黄色免费观看| 亚洲最快最全在线视频| 欧美三级日韩三级| 国产精品自在在线| 日韩专区欧美专区| 中文字幕一区二区三区四区不卡 | 91麻豆精品国产91久久久使用方法 | 中文字幕av一区二区三区高| 欧美色精品在线视频| 成人在线一区二区三区| 丝袜诱惑亚洲看片| 中文字幕中文乱码欧美一区二区| 日韩视频一区在线观看| 在线免费不卡视频| 成熟亚洲日本毛茸茸凸凹| 免费在线观看一区| 亚洲自拍偷拍图区| 国产精品国产三级国产有无不卡| 91精品欧美福利在线观看| 色综合久久88色综合天天免费| 国产精品一区2区| 美女脱光内衣内裤视频久久影院| 亚洲精品国产第一综合99久久| 久久综合成人精品亚洲另类欧美 | 亚洲视频一二三区| 久久久亚洲综合| 日韩免费观看高清完整版在线观看 | 777亚洲妇女| 日本道精品一区二区三区| 国产成人超碰人人澡人人澡| 美女网站视频久久| 粉嫩蜜臀av国产精品网站| 蜜臀99久久精品久久久久久软件| 亚洲香肠在线观看| 一区二区三区欧美亚洲| 国产精品久久久久久久浪潮网站 | 日韩黄色小视频| 亚洲成人手机在线| 亚洲最大色网站| 亚洲精品免费一二三区| 1024国产精品| |精品福利一区二区三区| 中文字幕成人av| 国产精品天美传媒| 中文字幕av不卡| 国产精品乱子久久久久| 国产日韩精品一区二区浪潮av|