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

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

?? tkgen.c

?? fsmlabs的real time linux的內核
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* Generate tk script based upon config.in * * Version 1.0 * Eric Youngdale * 10/95 * * 1996 01 04 * Avery Pennarun - Aesthetic improvements. * * 1996 01 24 * Avery Pennarun - Bugfixes and more aesthetics. * * 1996 03 08 * Avery Pennarun - The int and hex config.in commands work right. *                - Choice buttons are more user-friendly. *                - Disabling a text entry line greys it out properly. *                - dep_tristate now works like in Configure. (not pretty) *                - No warnings in gcc -Wall. (Fixed some "interesting" bugs.) *                - Faster/prettier "Help" lookups. * * 1996 03 15 * Avery Pennarun - Added new sed script from Axel Boldt to make help even *                  faster. (Actually awk is downright slow on some machines.) *                - Fixed a bug I introduced into Choice dependencies.  Thanks *                  to Robert Krawitz for pointing this out. * * 1996 03 16 * Avery Pennarun - basic "do_make" support added to let sound config work. * * 1996 03 25 *     Axel Boldt - Help now works on "choice" buttons. * * 1996 04 06 * Avery Pennarun - Improved sound config stuff. (I think it actually works *                  now!) *                - Window-resize-limits don't use ugly /usr/lib/tk4.0 hack. *                - int/hex work with tk3 again. (The "cget" error.) *                - Next/Prev buttons switch between menus.  I can't take *                  much credit for this; the code was already there, but *                  ifdef'd out for some reason.  It flickers a lot, but *                  I suspect there's no "easy" fix for that. *                - Labels no longer highlight as you move the mouse over *                  them (although you can still press them... oh well.) *                - Got rid of the last of the literal color settings, to *                  help out people with mono X-Windows systems.  *                  (Apparently there still are some out there!) *                - Tabstops seem sensible now. * * 1996 04 14 * Avery Pennarun - Reduced flicker when creating windows, even with "update *                  idletasks" hack. * * 1997 12 08 * Michael Chastain - Remove sound driver special cases. * * 1997 11 15 * Michael Chastain - For choice buttons, write values for all options, *                    not just the single chosen one.  This is compatible *                    with 'make config' and 'make oldconfig', and is *                    needed so smart-config dependencies work if the *                    user switches from one configuration method to *                    another. * * 1998 03 09 * Axel Boldt - Smaller layout of main menu - it's still too big for 800x600. *            - Display help in text window to allow for cut and paste. *            - Allow for empty lines in help texts. *            - update_define should not set all variables unconditionally to *              0: they may have been set to 1 elsewhere. CONFIG_NETLINK is *              an example. * * 1999 01 04 * Michael Elizabeth Chastain <mec@shout.net> * - Call clear_globalflags when writing out update_mainmenu. *   This fixes the missing global/vfix lines for ARCH=alpha on 2.2.0-pre4. * * 8 January 1999, Michael Elizabeth Chastain <mec@shout.net> * - Emit menus_per_column * * 14 January 1999, Michael Elizabeth Chastain <mec@shout.net> * - Steam-clean this file.  I tested this by generating kconfig.tk for every *   architecture and comparing it character-for-character against the output *   of the old tkparse. * - Fix flattening of nested menus.  The old code simply assigned items to *   the most recent token_mainmenu_option, without paying attention to scope. *   For example: "menu-1 bool-a menu-2 bool-b endmenu bool-c bool-d endmenu". *   The old code would put bool-a in menu-1, bool-b in menu-2, and bool-c *   and bool-d in *menu-2*.  This hosed the nested submenus in *   drives/net/Config.in and other places. * - Fix menu line wraparound at 128 menus (some fool used a 'char' for *   a counter). * * 23 January 1999, Michael Elizabeth Chastain <mec@shout.net> * - Remove bug-compatible code. * * 07 July 1999, Andrzej M. Krzysztofowicz <ankry@mif.pg.gda.pl> * Some bugfixes, including * - disabling "m" options when CONFIG_MODULES is set to "n" as well as "y" *   option in dep_tristate when dependency is set to "m", * - deactivating choices which should not be available, * - basic validation for int and hex introduced if the entered one is not  *   valid, * - updates of all opened menus instead of the active only. I was afraid *   that it would slow down updates, but I don't even see any speed difference *   on my machine. If it slows you can still work with only a single menu *   opened, * - fixed error when focussing non-existent window (especially Help windows), * Higher level submenus implemented. */#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include "tkparse.h"/* * Total number of menus. */static int tot_menu_num = 0;/* * Pointers to mainmenu_option and endmenu of each menu. */struct kconfig * menu_first [100];struct kconfig * menu_last  [100];/* * Generate portion of wish script for the beginning of a submenu. * The guts get filled in with the various options. */static void start_proc( char * label, int menu_num, int toplevel ){    if ( toplevel )	printf( "menu_option menu%d %d \"%s\"\n", menu_num, menu_num, label );    printf( "proc menu%d {w title} {\n", menu_num );    printf( "\tset oldFocus [focus]\n" );    if ( menu_first[menu_num]->menu_number != 0 )	printf( "\tcatch {focus .menu%d}\n",		menu_first[menu_num]->menu_number );    printf( "\tcatch {destroy $w; unregister_active %d}\n", menu_num );    printf( "\ttoplevel $w -class Dialog\n" );    printf( "\twm withdraw $w\n" );    printf( "\tglobal active_menus\n" );    printf( "\tset active_menus [lsort -integer [linsert $active_menus end %d]]\n", menu_num );    printf( "\tmessage $w.m -width 400 -aspect 300 -text \\\n" );    printf( "\t\t\"%s\"  -relief raised\n", label );    printf( "\tpack $w.m -pady 10 -side top -padx 10\n" );    printf( "\twm title $w \"%s\" \n\n", label );    /*     * Attach the "Prev", "Next" and "OK" buttons at the end of the window.     */    printf( "\tframe $w.f\n" );    if ( toplevel )	printf( "\tbutton $w.f.back -text \"Main Menu\" \\\n" );    else	printf( "\tbutton $w.f.back -text \"OK\" \\\n" );    printf( "\t\t-width 15 -command \"catch {focus $oldFocus}; destroy $w; unregister_active %d\"\n",	menu_num );    printf( "\tbutton $w.f.next -text \"Next\" \\\n" );    printf( "\t\t-width 15 -command \"catch {focus $oldFocus}; " );    /*      * We are checking which windows should be destroyed and which are      * common parrents with the next one. Remember that menu_num field     * in mainmenu_option record reports number of its *parent* menu.     */    if ( menu_num < tot_menu_num    && menu_first[menu_num + 1]->menu_number != menu_num )    {	int to_destr;	printf( "destroy $w; unregister_active %d; ", menu_num );	to_destr = menu_first[menu_num]->menu_number;	while ( to_destr > 0 && menu_first[menu_num + 1]->menu_number != to_destr )	{	    printf( "catch {destroy .menu%d}; unregister_active %d; ",		to_destr, to_destr );	    to_destr = menu_first[to_destr]->menu_number;	}    }    printf( "menu%d .menu%d \\\"$title\\\"\"\n",	menu_num+1, menu_num+1 );    if ( menu_num == tot_menu_num )	printf( "\t$w.f.next configure -state disabled\n" );    printf( "\tbutton $w.f.prev -text \"Prev\" \\\n" );    printf( "\t\t-width 15 -command \"catch {focus $oldFocus}; destroy $w; unregister_active %d; menu%d .menu%d \\\"$title\\\"\"\n",	menu_num, menu_num-1, menu_num-1 );    if ( menu_num == 1 )	printf( "\t$w.f.prev configure -state disabled\n" );    printf( "\tpack $w.f.back $w.f.next $w.f.prev -side left -expand on\n" );    printf( "\tpack $w.f -pady 10 -side bottom -anchor w -fill x\n" );    /*     * Lines between canvas and other areas of the window.     */    printf( "\tframe $w.topline -relief ridge -borderwidth 2 -height 2\n" );    printf( "\tpack $w.topline -side top -fill x\n\n" );    printf( "\tframe $w.botline -relief ridge -borderwidth 2 -height 2\n" );    printf( "\tpack $w.botline -side bottom -fill x\n\n" );    /*     * The "config" frame contains the canvas and a scrollbar.     */    printf( "\tframe $w.config\n" );    printf( "\tpack $w.config -fill y -expand on\n\n" );    printf( "\tscrollbar $w.config.vscroll -command \"$w.config.canvas yview\"\n" );    printf( "\tpack $w.config.vscroll -side right -fill y\n\n" );    /*     * The scrollable canvas itself, where the real work (and mess) gets done.     */    printf( "\tcanvas $w.config.canvas -height 1\\\n" );    printf( "\t\t-relief flat -borderwidth 0 -yscrollcommand \"$w.config.vscroll set\" \\\n" );    printf( "\t\t-width [expr [winfo screenwidth .] * 1 / 2] \n" );    printf( "\tframe $w.config.f\n" );    printf( "\tpack $w.config.canvas -side right -fill y\n" );    printf("\n\n");}/* * Each proc we create needs a global declaration for any global variables we * use.  To minimize the size of the file, we set a flag each time we output * a global declaration so we know whether we need to insert one for a * given function or not. */static void clear_globalflags(void){    int i;    for ( i = 1; i <= max_varnum; i++ )	vartable[i].global_written = 0;}/* * Output a "global" line for a given variable.  Also include the * call to "vfix".  (If vfix is not needed, then it's fine to just printf * a "global" line). */void global( const char *var ){    printf( "\tglobal %s\n", var );}/* * This function walks the chain of conditions that we got from cond.c * and creates a TCL conditional to enable/disable a given widget. */void generate_if( struct kconfig * cfg, struct condition * ocond,    int menu_num, int line_num ){    struct condition * cond;    struct dependency * tmp;    struct kconfig * cfg1;    if ( line_num >= -1 )    {	if ( cfg->token == token_define_bool || cfg->token == token_define_hex	||   cfg->token == token_define_int || cfg->token == token_define_string	||   cfg->token == token_define_tristate || cfg->token == token_unset )	    return;    }    else    {	if ( cfg->token == token_string || cfg->token == token_mainmenu_option )	    return;    }    /*     * First write any global declarations we need for this conditional.     */    for ( cond = ocond; 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;	}    }    /*     * Now write this option.     */    if ( cfg->nameindex > 0 && ! vartable[cfg->nameindex].global_written )    {	vartable[cfg->nameindex].global_written = 1;	global( vartable[cfg->nameindex].name );    }    /*     * Generate the body of the conditional.     */    printf( "\tif {" );    for ( cond = ocond; 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, "y" ) == 0 ) printf( "1" );	    else if ( strcmp( cond->str, "n" ) == 0 ) printf( "0" );	    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 procedures in header.tk.     */    if ( line_num >= -1 )    {	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 );	    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_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 )	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本一区二区三区四区| 成人一区在线看| 亚洲色图欧美在线| 欧美激情资源网| 久久综合九色综合欧美98| 日韩一区二区免费在线观看| 欧美日本免费一区二区三区| 精品视频一区二区不卡| 欧美日韩一二三| 欧美人动与zoxxxx乱| 6080亚洲精品一区二区| 欧美一级淫片007| 日韩欧美在线不卡| 亚洲精品一区二区三区蜜桃下载| 欧美成人午夜电影| 久久亚洲欧美国产精品乐播| 国产欧美日韩综合| 国产精品久久免费看| 亚洲婷婷国产精品电影人久久| 亚洲免费视频成人| 亚洲午夜激情av| 日韩精品成人一区二区在线| 蜜桃久久av一区| 欧美在线你懂得| 亚洲va欧美va天堂v国产综合| 五月天视频一区| 麻豆91精品视频| 国产iv一区二区三区| 91亚洲国产成人精品一区二区三| 91国偷自产一区二区三区成为亚洲经典 | 激情六月婷婷综合| 国产精品一二三区| 91麻豆自制传媒国产之光| 精品视频123区在线观看| 制服丝袜亚洲网站| 国产欧美日本一区视频| 亚洲美女区一区| 奇米精品一区二区三区在线观看| 欧美aaaaa成人免费观看视频| 国产美女主播视频一区| 99视频精品在线| 777亚洲妇女| 中文字幕精品一区二区精品绿巨人 | 26uuu久久天堂性欧美| 日本一区二区三区国色天香| 一个色综合网站| 麻豆高清免费国产一区| 成人免费视频caoporn| 欧美色精品天天在线观看视频| 精品久久久久久久久久久久久久久久久| 国产欧美精品在线观看| 亚洲激情网站免费观看| 国产精品 欧美精品| 久久精品噜噜噜成人av农村| 成人黄色在线网站| 精品视频一区二区不卡| 欧美极品aⅴ影院| 日韩国产精品久久| 波波电影院一区二区三区| 678五月天丁香亚洲综合网| 国产精品不卡一区| 久久精品国产一区二区三区免费看| 国产夫妻精品视频| 3d动漫精品啪啪一区二区竹菊 | 亚洲一区二区三区四区五区中文| 裸体一区二区三区| 色欧美片视频在线观看| 久久久久久久精| 亚洲va国产va欧美va观看| 成人动漫在线一区| 欧美成人三级在线| 亚洲一区二区三区激情| 成人一级黄色片| 日韩精品一区二区三区视频在线观看| 亚洲精品欧美激情| 成人午夜av电影| 精品国产1区二区| 青青青伊人色综合久久| 在线亚洲欧美专区二区| 中文字幕精品一区| 韩国欧美一区二区| 欧美一级欧美三级| 亚洲大片在线观看| 91社区在线播放| 国产日本欧洲亚洲| 韩国v欧美v日本v亚洲v| 欧美一级片在线| 日日夜夜精品免费视频| 日韩精品资源二区在线| 精品国产一区二区三区不卡 | 久久精品国产一区二区| 欧美日韩视频在线一区二区| 国产精品成人免费| 成人午夜免费视频| 国产日韩欧美在线一区| 韩国一区二区在线观看| wwwwww.欧美系列| 精品中文字幕一区二区小辣椒| 欧美久久久久久蜜桃| 亚洲精品国产一区二区精华液 | 麻豆91在线观看| 51精品国自产在线| 日一区二区三区| 欧美日韩色一区| 亚洲小少妇裸体bbw| 在线观看中文字幕不卡| 亚洲久草在线视频| 日本福利一区二区| 亚洲综合在线视频| 欧美色倩网站大全免费| 亚洲国产另类精品专区| 精品视频在线视频| 热久久久久久久| 精品日韩一区二区| 国产一区二区三区久久久 | 一区二区三区四区乱视频| 99国产精品一区| 亚洲免费视频成人| 91在线国产福利| 亚洲精选视频在线| 欧美三级乱人伦电影| 亚洲福利电影网| 欧美一区二区三区思思人| 精品一区二区三区免费视频| 久久一区二区三区国产精品| 国产69精品久久99不卡| 国产精品久久久久aaaa樱花| 色悠悠久久综合| 视频一区二区三区中文字幕| 日韩欧美在线123| 懂色av中文字幕一区二区三区| 中文无字幕一区二区三区| 99re这里都是精品| 视频一区视频二区中文字幕| 欧美tk—视频vk| 成人av在线网| 亚洲高清在线精品| 2020国产精品自拍| 91丝袜美女网| 日韩精品福利网| 国产免费久久精品| 欧美天天综合网| 狠狠色丁香婷婷综合久久片| 国产精品久久久久久久裸模| 精品视频一区二区不卡| 国产一区二区三区免费观看 | 成人动漫在线一区| 亚洲第一成年网| 国产无人区一区二区三区| 一本久道中文字幕精品亚洲嫩| 日韩二区三区四区| 中文乱码免费一区二区| 7777精品伊人久久久大香线蕉最新版 | 日韩精品免费视频人成| 国产精品色哟哟| 欧美精品 国产精品| 国产不卡在线一区| 精品在线视频一区| 欧美久久久久久久久中文字幕| 国产在线精品不卡| 亚洲卡通欧美制服中文| 精品国产91九色蝌蚪| 91精品办公室少妇高潮对白| 美女爽到高潮91| 亚洲久本草在线中文字幕| 精品国产网站在线观看| 99riav一区二区三区| 国内精品免费**视频| 亚洲午夜精品在线| 国产精品久久精品日日| 欧美一级午夜免费电影| 欧美性xxxxx极品少妇| 国产成人免费高清| 老色鬼精品视频在线观看播放| 亚洲男人天堂av| 中文字幕精品综合| 久久综合色天天久久综合图片| 欧美日韩国产高清一区二区| 成人午夜精品一区二区三区| 青青青伊人色综合久久| 亚洲一级二级三级在线免费观看| 2024国产精品| 欧美成人官网二区| 欧美日韩三级在线| 欧美写真视频网站| 色先锋aa成人| 麻豆精品新av中文字幕| 成人免费在线播放视频| 欧美午夜精品一区| 久久99精品视频| 蜜臀久久99精品久久久久宅男| 亚洲一区二区av在线| 久久久高清一区二区三区| 91在线小视频| 福利一区福利二区| 视频一区视频二区中文字幕| 欧美综合亚洲图片综合区| 亚洲成人动漫在线免费观看| 日韩美女啊v在线免费观看| 东方aⅴ免费观看久久av|