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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tkgen.c

?? MAKEFILE 經(jīng)典編寫方法
?? C
?? 第 1 頁 / 共 4 頁
字號:
		    vartable[cfg1->nameindex].name );	    }	}	if ( cfg->cond != NULL )	    printf( "}" );	printf( "\n" );	break;    case token_choice_item:	fprintf( stderr, "Internal error on token_choice_item\n" );	exit( 1 );    case token_comment:	printf( "write_comment $cfg $autocfg \"%s\"",	    cfg->label );	if ( cfg->cond != NULL )	    printf( "}" );	printf( "\n" );	break;    case token_define_bool:    case token_define_tristate:	if ( cfg->cond == NULL )	{	    printf( "write_tristate $cfg $autocfg %s $%s [list $notmod] 2\n",		vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	}	else	{	    printf( "write_tristate $cfg $autocfg %s $%s [list $notmod] 2 }\n",		vartable[cfg->nameindex].name, cfg->value );	}	break;    case token_dep_mbool:	depmod = 1;    case token_dep_bool:    case token_dep_tristate:	printf( "write_tristate $cfg $autocfg %s $%s [list",	    vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	for ( tmp = cfg->depend; tmp; tmp = tmp->next )	    printf( " $%s", tmp->name );	printf( "] %d", depmod );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_define_hex:	printf( "write_hex $cfg $autocfg %s %s $notmod",	    vartable[cfg->nameindex].name, cfg->value );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_define_int:	printf( "write_int $cfg $autocfg %s %s $notmod",	    vartable[cfg->nameindex].name, cfg->value );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_define_string:	printf( "write_string $cfg $autocfg %s \"%s\" $notmod",	    vartable[cfg->nameindex].name, cfg->value );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_hex:	printf( "write_hex $cfg $autocfg %s $%s $notmod",	    vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_int:	printf( "write_int $cfg $autocfg %s $%s $notmod",	    vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    case token_string:	printf( "write_string $cfg $autocfg %s \"$%s\" $notmod",	    vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );	if ( cfg->cond != NULL )	    printf( " }" );	printf( "\n" );	break;    }}static void generate_update_var( struct kconfig * scfg, int menu_num ){    struct kconfig * cfg;    if ( menu_num>0 )    {	printf( "proc update_define_menu%d {} {\n", menu_num );	printf( "\tupdate_define_mainmenu\n" );    }    else	printf( "proc update_define_mainmenu {} {\n" );    clear_globalflags();    global( "CONFIG_MODULES" );    vartable[ get_varnum( "CONFIG_MODULES" ) ].global_written = 1;    for ( cfg = scfg; cfg != NULL; cfg = cfg->next )    {	if ( cfg->menu_number == menu_num && (cfg->token == token_define_bool || cfg->token == token_define_tristate	||   cfg->token == token_define_hex || cfg->token == token_define_int	||   cfg->token == token_define_string || cfg->token == token_unset 	||   cfg->token == token_tristate) )	{	    if ( ! vartable[cfg->nameindex].global_written )	    {		vartable[cfg->nameindex].global_written = 1;		global( vartable[cfg->nameindex].name );	    }	}    }/* *	set all conditional bool/tristates to off unless changed later */    for ( cfg = scfg; cfg != NULL; cfg = cfg->next ) {		if (cfg->menu_number != menu_num)			continue;		if (!cfg->cond)			continue;		switch (cfg->token) {		case token_bool:		case token_tristate:			if (! vartable[cfg->nameindex].global_written) {				vartable[cfg->nameindex].global_written = 1;				global(vartable[cfg->nameindex].name);			}			printf("set %s [expr $%s|16]\n", vartable[cfg->nameindex].name,					vartable[cfg->nameindex].name);			break;		default:			break;		}	}    for ( cfg = scfg; cfg != NULL; cfg = cfg->next )    {	char tmp[20];	struct kconfig * cfg1;	if ( cfg->menu_number == menu_num )	{	    switch ( cfg->token )	    {	    default:	    case token_choice_item:		break;	    case token_choice_header:		sprintf( tmp, "tmpvar_%d", -(cfg->nameindex) );		global( tmp );		for ( cfg1  = cfg->next;		      cfg1 != NULL && cfg1->token == token_choice_item;		      cfg1  = cfg1->next )		{		    vartable[cfg1->nameindex].global_written = 1;		    global( vartable[cfg1->nameindex].name );		    printf( "\tif {$tmpvar_%d == \"%s\"} then {set %s 1} else {set %s 0}\n",			-(cfg->nameindex), cfg1->label,			vartable[cfg1->nameindex].name,			vartable[cfg1->nameindex].name );		}		break;	    case token_bool:	    case token_define_bool:	    case token_define_tristate:	    case token_define_hex:	    case token_define_int:	    case token_define_string:	    case token_dep_bool:	    case token_dep_tristate:	    case token_dep_mbool:	    case token_int:	    case token_hex:	    case token_mainmenu_option:	    case token_tristate:	    case token_unset:		if ( cfg->cond != NULL )		    generate_if( cfg, cfg->cond, menu_num, -2 );		else switch ( cfg->token )		{		case token_tristate:		    printf( "\n\tif {($CONFIG_MODULES == 0)} then {if {($%s == 2)} then {set %s 1}}\n",			vartable[cfg->nameindex].name, vartable[cfg->nameindex].name );		    break;		case token_define_bool:		case token_define_tristate:		    if ( ! vartable[get_varnum( cfg->value )].global_written )		    {			vartable[get_varnum( cfg->value )].global_written = 1;			global( cfg->value );		    }		    printf( "\tset %s $%s\n", vartable[cfg->nameindex].name,			cfg->value );		    break;		case token_define_hex:		case token_define_int:		    printf( "\tset %s %s\n", vartable[cfg->nameindex].name,			cfg->value );		    break;		case token_define_string:		    printf( "\tset %s \"%s\"\n", vartable[cfg->nameindex].name,			cfg->value );		    break;		case token_unset:		    printf( "\tset %s 4\n", vartable[cfg->nameindex].name );		default:		    break;		}	    }	}    }    printf( "}\n\n\n" );}/* * Generates the end of a menu procedure. */static void end_proc( struct kconfig * scfg, int menu_num ){    struct kconfig * cfg;    int i;    printf( "\n\n\n" );    printf( "\tfocus $w\n" );    printf( "\tupdate_active\n" );    printf( "\tglobal winx; global winy\n" );    if ( menu_first[menu_num]->menu_number != 0 )    {	printf( "\tif {[winfo exists .menu%d] == 0} then ",		menu_first[menu_num]->menu_number );	printf( "{menu%d .menu%d \"%s\"}\n",		menu_first[menu_num]->menu_number, menu_first[menu_num]->menu_number,		menu_first[menu_first[menu_num]->menu_number]->label );	printf( "\tset winx [expr [winfo x .menu%d]+30]; set winy [expr [winfo y .menu%d]+30]\n",		menu_first[menu_num]->menu_number, menu_first[menu_num]->menu_number );    }    else	printf( "\tset winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]\n" );    printf( "\tif {[winfo exists $w]} then {wm geometry $w +$winx+$winy}\n" );    /*     * Now that the whole window is in place, we need to wait for an "update"     * so we can tell the canvas what its virtual size should be.     *     * Unfortunately, this causes some ugly screen-flashing because the whole     * window is drawn, and then it is immediately resized.  It seems     * unavoidable, though, since "frame" objects won't tell us their size     * until after an update, and "canvas" objects can't automatically pack     * around frames.  Sigh.     */    printf( "\tupdate idletasks\n" );    printf( "\tif {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f\n\n" );    printf( "\t$w.config.canvas configure \\\n" );    printf( "\t\t-width [expr [winfo reqwidth $w.config.f] + 1]\\\n" );    printf( "\t\t-scrollregion \"-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \\\n" );    printf( "\t\t\t [expr [winfo reqheight $w.config.f] + 1]\"\n\n" );	     /*     * If the whole canvas will fit in 3/4 of the screen height, do it;     * otherwise, resize to around 1/2 the screen and let us scroll.     */    printf( "\tset winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]\n" );    printf( "\tset scry [expr [winfo screenh $w] / 2]\n" );    printf( "\tset maxy [expr [winfo screenh $w] * 3 / 4]\n" );    printf( "\tset canvtotal [expr [winfo reqh $w.config.f] + 2]\n" );    printf( "\tif [expr $winy + $canvtotal < $maxy] {\n" );    printf( "\t\t$w.config.canvas configure -height $canvtotal\n" );    printf( "\t} else {\n" );    printf( "\t\t$w.config.canvas configure -height [expr $scry - $winy]\n" );    printf( "\t\t}\n\t}\n" );    /*     * Limit the min/max window size.  Height can vary, but not width,     * because of the limitations of canvas and our laziness.     */    printf( "\tupdate idletasks\n" );    printf( "\tif {[winfo exists $w]} then {\n\twm maxsize $w [winfo width $w] [winfo screenheight $w]\n" );    printf( "\twm minsize $w [winfo width $w] 100\n\n" );    printf( "\twm deiconify $w\n" );    printf( "}\n}\n\n" );    /*     * Now we generate the companion procedure for the menu we just     * generated.  This procedure contains all of the code to     * disable/enable widgets based upon the settings of the other     * widgets, and will be called first when the window is mapped,     * and each time one of the buttons in the window are clicked.     */    printf( "proc update_menu%d {} {\n", menu_num );    /*     * Clear all of the booleans that are defined in this menu.     */    clear_globalflags();    for ( cfg = scfg; cfg != NULL; cfg = cfg->next )    {	if ( cfg->menu_number == menu_num	&&   cfg->token != token_mainmenu_option	&&   cfg->token != token_choice_item )	{	    if ( cfg->cond != NULL )	    {		int i;		if ( (cfg->token == token_tristate || cfg->token == token_dep_tristate)		&& ! vartable[i = get_varnum( "CONFIG_MODULES" )].global_written )		{		    global( "CONFIG_MODULES" );		    vartable[i].global_written = 1;		}		generate_if( cfg, cfg->cond, cfg->menu_number, cfg->menu_line );	    }	    else	    {		if ( cfg->token == token_tristate )		{		    if ( ! vartable[cfg->nameindex].global_written )		    {			vartable[cfg->nameindex].global_written = 1;			printf( "\tglobal %s\n", vartable[cfg->nameindex].name );		    }		    if ( ! vartable[i = get_varnum( "CONFIG_MODULES" )].global_written )		    {			global( "CONFIG_MODULES" );			vartable[i].global_written = 1;		    }		    printf( "\n\tif {($CONFIG_MODULES == 1)} then {configure_entry .menu%d.config.f.x%d normal {m}} else {configure_entry .menu%d.config.f.x%d disabled {m}}\n",			menu_num, cfg->menu_line,			menu_num, cfg->menu_line );		}	    }	}	else if ( cfg->token == token_mainmenu_option	     &&   cfg->menu_number == menu_num	     &&   cfg->cond != NULL )	{	    generate_if( cfg, cfg->cond, menu_num, cfg->menu_line );	}    }    printf("}\n\n\n");    generate_update_var( scfg, menu_num );}/* * This is the top level function for generating the tk script. */void dump_tk_script( struct kconfig * scfg ){    int menu_depth;    int menu_num [64];    int imenu, i;    int top_level_num = 0;    struct kconfig * cfg;    struct kconfig * cfg1 = NULL;    const char * name = "No Name";    /*     * Mark begin and end of each menu so I can omit submenus when walking     * over a parent menu.     */    tot_menu_num = 0;    menu_depth   = 0;    menu_num [0] = 0;    for ( cfg = scfg; cfg != NULL; cfg = cfg->next )    {	switch ( cfg->token )	{	default:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费久久99精品国产| 成人av资源站| 亚洲123区在线观看| 一区二区三区产品免费精品久久75| 国产欧美视频在线观看| 久久久99免费| 国产午夜亚洲精品理论片色戒| 精品国产一区久久| 久久伊99综合婷婷久久伊| 久久婷婷久久一区二区三区| 欧美tk—视频vk| 久久久精品欧美丰满| 日韩一区有码在线| 樱桃视频在线观看一区| 婷婷开心久久网| 美女脱光内衣内裤视频久久网站| 老司机一区二区| 国产aⅴ综合色| 欧美亚洲国产一区二区三区va| 91国内精品野花午夜精品 | 国内一区二区在线| 国产黄色成人av| 在线免费一区三区| 日韩一区二区在线观看视频| 国产视频在线观看一区二区三区| 国产精品入口麻豆原神| 亚洲高清在线视频| 国产乱码一区二区三区| 91在线视频网址| 欧美一区二区精品在线| 国产精品色在线观看| 日日夜夜免费精品视频| 国产成a人无v码亚洲福利| 在线亚洲免费视频| 久久精品视频网| 视频一区二区三区在线| 成人免费视频视频| 日韩亚洲欧美高清| 亚洲综合一区二区三区| 激情都市一区二区| 欧美日韩在线精品一区二区三区激情| 欧美不卡123| 亚洲国产精品久久一线不卡| 国产伦精品一区二区三区免费迷 | 欧美另类高清zo欧美| 久久精品夜色噜噜亚洲a∨| 亚洲国产一区视频| 成人免费视频视频在线观看免费 | 欧美一级高清片| 亚洲女同一区二区| 国产v日产∨综合v精品视频| 欧美精品日韩一区| 亚洲综合在线视频| 色综合咪咪久久| 国产精品午夜在线观看| 精品亚洲porn| 欧美一卡2卡3卡4卡| 亚洲一区二区四区蜜桃| 99国产精品国产精品毛片| 精品成人一区二区三区四区| 日韩激情一区二区| 欧美日韩在线电影| 亚洲一区二区三区四区在线| 丁香另类激情小说| 久久久国产精品麻豆| 国内精品嫩模私拍在线| 日韩欧美在线观看一区二区三区| 一区二区高清免费观看影视大全| 99热在这里有精品免费| 国产精品网站在线播放| 国产东北露脸精品视频| 久久亚洲免费视频| 国产毛片精品视频| 久久综合成人精品亚洲另类欧美| 免费人成精品欧美精品| 欧美精选午夜久久久乱码6080| 亚洲一区二区三区精品在线| 一本大道av一区二区在线播放 | 6080午夜不卡| 日韩精品一卡二卡三卡四卡无卡| 制服视频三区第一页精品| 日韩精品欧美成人高清一区二区| 欧美日韩国产成人在线免费| 亚洲精品乱码久久久久久| 97国产精品videossex| 亚洲欧美日韩久久| 欧美日韩亚洲综合一区| 日韩精品成人一区二区在线| 欧美一区二区精美| 国产一区二区三区视频在线播放| 久久久精品国产免大香伊| 国产成人亚洲综合a∨婷婷图片| 国产精品色哟哟| 欧美影视一区在线| 免费看日韩精品| 国产欧美精品一区| 在线精品视频小说1| 免费成人美女在线观看.| 久久精品视频一区二区三区| 91免费观看视频| 蜜臀精品一区二区三区在线观看 | 久久精品国产99久久6| 久久蜜臀中文字幕| 一本久道中文字幕精品亚洲嫩| 性欧美疯狂xxxxbbbb| 国产亚洲一区二区三区四区| 91同城在线观看| 久久综合综合久久综合| 国产精品麻豆视频| 欧美日韩高清一区| 粉嫩久久99精品久久久久久夜 | 青青草国产成人av片免费| 精品少妇一区二区三区视频免付费| 风间由美中文字幕在线看视频国产欧美| 国产精品久久久久7777按摩| 欧美精品黑人性xxxx| 成人午夜av在线| 青青草国产精品97视觉盛宴| 国产精品久久久久久亚洲毛片 | 不卡一卡二卡三乱码免费网站| 亚洲日本va在线观看| 3751色影院一区二区三区| 成人黄色一级视频| 久久精品国产亚洲高清剧情介绍| 欧美激情综合在线| 日韩精品专区在线影院观看| 色婷婷一区二区| 国产一区二区精品久久91| 亚洲午夜精品一区二区三区他趣| 国产日韩精品一区二区三区在线| 欧美日韩视频在线一区二区| fc2成人免费人成在线观看播放| 免费成人美女在线观看.| 午夜久久电影网| 一区二区三区高清不卡| 国产精品污www在线观看| 久久久久亚洲蜜桃| 精品乱码亚洲一区二区不卡| 欧美美女网站色| 欧美亚洲丝袜传媒另类| 91在线观看一区二区| 丁香天五香天堂综合| 国产一区二区三区美女| 九九在线精品视频| 久久99精品久久久久久国产越南| 视频在线观看一区二区三区| 亚洲色大成网站www久久九九| 国产欧美一区二区精品秋霞影院| 日韩欧美区一区二| 日韩免费视频一区| 精品日产卡一卡二卡麻豆| 欧美一区二区二区| 欧美成人精品1314www| 日韩美女一区二区三区| 91精品国产日韩91久久久久久| 欧美日本在线观看| 欧美视频一区二区| 在线看日韩精品电影| 欧美日韩国产a| 91精品国产色综合久久不卡电影| 欧美一区二区精品久久911| 国产午夜精品久久久久久免费视 | 欧美午夜影院一区| 欧美性三三影院| 欧美日韩国产片| 欧美丰满美乳xxx高潮www| 成人动漫一区二区| 国内精品国产成人国产三级粉色| 久久69国产一区二区蜜臀| 精品在线播放免费| 成人sese在线| 在线观看日韩精品| 91精品国产乱| 国产欧美日韩另类一区| 亚洲女性喷水在线观看一区| 亚洲sss视频在线视频| 久草在线在线精品观看| 丰满亚洲少妇av| 色婷婷综合久久久中文字幕| 欧美一区二区三区成人| 精品国产百合女同互慰| 国产拍欧美日韩视频二区| 亚洲精品日产精品乱码不卡| 亚洲h精品动漫在线观看| 久久精品国产澳门| 日本丰满少妇一区二区三区| 日韩精品一区二区三区老鸭窝| 久久久久久久一区| 亚洲一区二区三区四区不卡| 国产一区二区在线影院| 色噜噜狠狠一区二区三区果冻| 日韩欧美一级精品久久| 国产精品久久久久一区二区三区共| 日韩影院免费视频| www.欧美色图| 日韩精品一区二区三区视频在线观看| 国产精品乱码人人做人人爱| 天堂一区二区在线免费观看| 成人激情免费视频| 26uuu亚洲综合色|