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

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

?? funckeymap.c

?? 一個通訊程序源碼
?? C
字號:
/* #define NONANSI_DEBUG *//*+-----------------------------------------------------------------	funckeymap.c - keyboard function key -> ECU internal	wht@n4hgf.Mt-Park.GA.US  Defined functions:	fkmap_command(argc,argv)	funckeymap(buf,buflen)	funckeymap_define(bufptr)	funckeymap_display(fp)	funckeymap_display_single(tkde,fp)	funckeymap_init()	funckeymap_read(name)------------------------------------------------------------------*//*+:EDITS:*//*:09-16-1992-13:33-wht@n4hgf-add fkmap -l name *//*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 *//*:08-30-1992-23:06-wht@n4hgf-add fkmap_command *//*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA *//*:08-28-1991-14:51-wht@n4hgf2-look correctly for funckeymap in ECULIBDIR *//*:08-26-1991-05:45-wht@n4hgf2-# got included in key def *//*:08-06-1991-13:19-wht@n4hgf-allow any code as first in key sequence *//*:08-03-1991-14:44-wht@n4hgf-look for funckeymap in ECULIBDIR too *//*:07-25-1991-12:58-wht@n4hgf-ECU release 3.10 *//*:03-20-1991-03:06-root@n4hgf-no Metro Link problems here *//*:03-20-1991-01:04-root@n4hgf-diagnose Metro Link xterm differences *//*:01-10-1991-23:15-wht@n4hgf-string overflow rptd by spooley@compulink.co.uk *//*:12-01-1990-12:51-wht@n4hgf-creation, borrowing from and using ecufkey.c */#include "ecu.h"#include "ecuerror.h"#include "ecukey.h"#include "ecufkey.h"#include "ecuxkey.h"#include "ecufork.h"extern int tty_not_char_special;extern char *dash_f_funckeytype;KDE funckeymap_table[KDE_COUNT];char funckeymap_name[32] = "";#if defined(NONANSI_DEBUG)static FILE *nadbg = (FILE *)0;#endif/*+-------------------------------------------------------------------------	funckeymap_init() - initialize function key mapping (recognition)--------------------------------------------------------------------------*/voidfunckeymap_init(){	register itmp;	register KDE *tkde;	char *make_char_graphic();	for(itmp = 0; itmp < KDE_COUNT; itmp++)	{		tkde = &funckeymap_table[itmp];		tkde->logical[0] = 0;		tkde->count = 0;		tkde->ikde = 0;	}	funckeymap_name[0] = 0;}	/* end of funckeymap_init *//*+-------------------------------------------------------------------------	funckeymap_define(bufptr) - use funckeymap line to define a mapping  returns 0 good keydef         -1 if syntax error--------------------------------------------------------------------------*/intfunckeymap_define(bufptr)register char *bufptr;{	register itmp;	register token_number = 0;	KDE *tkde = (KDE *)0;	int ikde = 0;	int octothorpe = 0;	char *token;	char *arg_token();	char *str_token();	char *skip_ld_break();	while(!octothorpe &&	   (token = (token_number < 2) ? str_token(bufptr,":")	                               : arg_token(bufptr," \t")))	{		bufptr = (char *)0;	/* further calls to arg_token need NULL */		token = skip_ld_break(token);		strip_trail_break(token);		switch(token_number)		{			case 0:		/* first field is key identifier */				if((ikde = kde_name_to_ikde(token)) < 0)				{					pprintf("  %s is not a legal key identifier\r\n",token);					return(-1);				}				tkde = &funckeymap_table[ikde];				tkde->logical[0] = 0;				tkde->count = 0;				tkde->ikde = ikde;				break;			case 1:		/* second field is logical key name */				if(*token == '#')					goto MISSING_LABEL;				strncpy(tkde->logical,token,sizeof(tkde->logical));				tkde->logical[sizeof(tkde->logical) - 1] = 0;				break;			case 2:		/* third field is first token of sequence */				if(*token == '#')					goto MISSING_SEQUENCE;			default:	/* third and subsequent to define key */				if(*token == '#')				{					octothorpe = 1;					break;				}				if(tkde->count == sizeof(tkde->str))				{					pprintf("  %s: output count too long",						keyset_idstr(ikde));					return(-1);				}				if((itmp = ascii_to_hex(token)) < 0)				{					pprintf("  %s: '%s' invalid\r\n",						keyset_idstr(ikde),token);					return(-1);				}				tkde->str[tkde->count] = itmp;				tkde->count++;				break;		}	/* end of switch(token_number) */		if(octothorpe)			break;		token_number++;	}		/* end while not end of record */	switch(token_number)	{		case 0:			pprintf("funckeymap_define logic error\n");			termecu(TERMECU_LOGIC_ERROR);			break;		case 1:MISSING_LABEL:			pprintf("%s: missing key label\r\n",keyset_idstr(ikde));			break;		case 2:MISSING_SEQUENCE:			pprintf("%s: missing char sequence\r\n",keyset_idstr(ikde));			break;		default:			/* special init string entry */			if(ikde == IKDE_InitStr)				fwrite(tkde->str,1,tkde->count,stderr);			else if(tkde->count)			{				uchar ch = tkde->str[0];				extern uchar kbdeof;		/* current input EOF */				extern uchar kbdeol2;		/* current secondary input EOL */				extern uchar kbdeol;		/* current input EOL */				extern uchar kbderase;		/* current input ERASE */				extern uchar kbdintr;		/* current input INTR */				extern uchar kbdkill;		/* current input KILL */				extern uchar kbdquit;		/* current input QUIT */				if(	(ch == kbdeof) || (ch == kbdeol2) ||					(ch == kbdeol) || (ch == kbderase) ||					(ch == kbdintr) || (ch == kbdkill) ||					(ch == kbdquit) )				{					pprintf(						"%s: 1st char cannot be input control character\r\n",						keyset_idstr(ikde));					break;				}			}			return(0);	}	return(-1);		/* error */}	/* end of funckeymap_define *//*+-------------------------------------------------------------------------	funckeymap_read(name) - read key-sequence-to-fkey map from funckeymap--------------------------------------------------------------------------*/voidfunckeymap_read(name)char *name;{	register itmp;	char buf[128];	FILE *fp_keys;	int errstat = 0;	static char ecukeys_name[128];#if defined(NONANSI_DEBUG)	if(!nadbg)	{		nadbg = fopen("/tmp/nadbg.log","w");		setbuf(nadbg,NULL);	}#endif	funckeymap_init();	/* clear any previous key defns */	if(!ecukeys_name[0])	{		get_home_dir(ecukeys_name);		strcat(ecukeys_name,"/.ecu/funckeymap");	}	if(!(fp_keys = fopen(ecukeys_name,"r")))	{		strcpy(ecukeys_name,eculibdir);		strcat(ecukeys_name,"/funckeymap");		if(!(fp_keys = fopen(ecukeys_name,"r")))		{			ff(stderr,"'funckeymap' not in ~/.ecu or %s; unable to proceed\r\n",				eculibdir);			termecu(TERMECU_UNRECOVERABLE);		}	}/* find funckeymap name */	errstat = 1;	while((itmp = kde_fgets(buf,sizeof(buf),fp_keys)) != KDETYPE_EOF)	{		if((itmp == KDETYPE_COMMENT) || (itmp == KDETYPE_ENTRY))			continue;		if(!strcmp(buf,name))		{			errstat = 0;		/* indicate success */			break;		}	}	if(errstat)	{		ff(stderr,"terminal type '%s'\r\n",name);		ff(stderr,"not found in %s; unable to proceed\r\n",ecukeys_name);		termecu(TERMECU_UNRECOVERABLE);	}/* read past any other funckeymap names matching this set */	errstat = 1;	while((itmp = kde_fgets(buf,sizeof(buf),fp_keys)) != KDETYPE_EOF)	{		if(itmp == KDETYPE_ENTRY)		{			errstat = 0;		/* indicate success */			break;		}	}	if(errstat)	{		ff(stderr,			"terminal type '%s' has null entry in %s; unable to proceed\r\n",			name,ecukeys_name);		termecu(TERMECU_UNRECOVERABLE);	}/* we found the definition ... process it */	errstat = 0;	itmp = KDETYPE_ENTRY;	do {		if(itmp == KDETYPE_NAME)			break;		else if(itmp == KDETYPE_ENTRY)		{			if(funckeymap_define(buf))				errstat = 1;		}	} while((itmp = kde_fgets(buf,sizeof(buf),fp_keys)) != KDETYPE_EOF);/* finish up */	strncpy(funckeymap_name,name,sizeof(funckeymap_name));	funckeymap_name[sizeof(funckeymap_name) - 1] = 0;	fclose(fp_keys);	if(!funckeymap_table[IKDE_HOME].count)	{		ff(stderr,"You MUST have a 'Home' key defined\r\n");		errstat = 2;	}	if(!funckeymap_table[IKDE_END].count)	{		ff(stderr,"You MUST have a 'End' key defined\r\n");		errstat = 2;	}	if((errstat == 2) || (errstat && tty_not_char_special))		termecu(TERMECU_UNRECOVERABLE);	if(errstat)	{		ff(stderr,			"WARNING: key mapping syntax errors\r\nContinue anyway (y,[n])? ");		if((itmp = ttygetc(0)) == 'Y' || (itmp == 'y'))		{			ff(stderr,"YES\r\n");			return;		}		ff(stderr,"NO\r\n");		termecu(TERMECU_UNRECOVERABLE);	}}	/* end of funckeymap_read *//*+-------------------------------------------------------------------------	funckeymap(buf,buflen) - map char sequence to ikde codereturn XF_ code or XF_not_yet if no match yet, XF_no_way if no match possible--------------------------------------------------------------------------*/ucharfunckeymap(buf,buflen)uchar *buf;int buflen;{	register ikde;	register KDE *tkde;	int err_rtn = XF_no_way;	if(!buflen)		return(XF_not_yet);#if defined(NONANSI_DEBUG)	if(nadbg)		hex_dump_fp(nadbg,buf,-buflen,"mapna",1);#endif	for(ikde = 0,tkde = funckeymap_table; ikde <= IKDE_lastKey;		ikde++,tkde++)	{#if defined(NONANSI_DEBUG)			if(nadbg)				fprintf(nadbg,"--> %s ",tkde->logical);#endif		if((tkde->count == buflen) && !memcmp(tkde->str,buf,buflen))		{#if defined(NONANSI_DEBUG)			if(nadbg)				fprintf(nadbg,"yes\n");#endif			return(tkde->ikde);		}#if defined(NONANSI_DEBUG)		if(nadbg)			fprintf(nadbg,"no\n");#endif		if((tkde->count > buflen) &&			((uchar)*(tkde->str + buflen) == *(buf + buflen)))		{			err_rtn = XF_not_yet;		}	}	return(err_rtn);}	/* end of funckeymap *//*+-------------------------------------------------------------------------	funckeymap_display_single(tkde,fp) - display single mapping on FILE fp--------------------------------------------------------------------------*/voidfunckeymap_display_single(ikde,fp)int ikde;FILE *fp;{	int keys_left;	char *keys;	char s64[64];	KDE *tkde;	if((unsigned)ikde > IKDE_lastKey)		return;	tkde = &funckeymap_table[ikde];	sprintf(s64," %s:%s:                   ",		keyset_idstr(ikde),tkde->logical);	s64[16] = 0;	if(fp == stderr)		pputs(s64);	else		fputs(s64,fp);	keys_left = tkde->count;	keys = tkde->str;	while(keys_left--)	{		if(fp == stderr)		{			pprintf("%s%s",				make_char_graphic(*keys++,0),				(keys_left) ? " " : "");		}		else		{			fprintf(fp,"%s%s",				make_char_graphic(*keys++,0),				(keys_left) ? " " : "");		}	}	if(fp == stderr)		pputs("\n");	else		fputs("\n",fp);}	/* end of funckeymap_display_single *//*+-------------------------------------------------------------------------	funckeymap_display(fp) - display function key table of FILE fp--------------------------------------------------------------------------*/voidfunckeymap_display(fp)FILE *fp;{	int ikde;	char *ftype = 0;	if(dash_f_funckeytype)		ftype =	dash_f_funckeytype;	else		ftype = getenv("ECUFUNCKEY");	if(ttype && ftype)	{		fprintf(fp,"#$TERM=%s -F/$ECUFUNCKEY=%s",ftype,ttype);		if(fp == stderr)			fputs("\r\n",fp);		else			fputs("\n",fp);	}	if(ttype || ftype)	{		fputs((ftype) ? ftype : ttype,fp);		if(fp == stderr)			fputs("\r\n",fp);		else			fputs("\n",fp);	}	for(ikde = 0; ikde <= IKDE_lastKey; ikde++)		funckeymap_display_single(ikde,fp);}	/* end of funckeymap_display *//*+-------------------------------------------------------------------------	fkmap_command(argc,argv) - common interactive and procedure 'fkmap' cmdreturn procedure error codes--------------------------------------------------------------------------*/intfkmap_command(argc,argv)int argc;char **argv;{	register itmp;	int err = 0;	char *ftype = 0;	int iargv = 1;	char *arg;	char fkcmd[512 + 1];	char *fkcptr = fkcmd;	int fkclen = 0;	int ikde;	KDE save;	FILE *fp;		while((iargv < argc) && (*(arg = argv[iargv]) == '-'))	{		switch(*++arg)		{			case 'r': /* reset */				if(err)					break;				if(iargv != (argc - 1))				{					pputs("no arguments allowed for -r\n");					err = 1;					break;				}				if(dash_f_funckeytype)					ftype =	dash_f_funckeytype;				else					ftype = getenv("ECUFUNCKEY");				if(ttype || ftype)					funckeymap_read((ftype) ? ftype : ttype);				if(!proc_level || proctrace)					pputs("funckeymap reset to startup configuration\n");				return(0);			case 's': /* save in file */				if(err)					break;				if(iargv != (argc - 2))				{					pputs("exactly one argument required for -s\n");					err = 1;					break;				}				iargv++;				if(!(fp = fopen(argv[iargv],"a")))				{					pperror(argv[iargv]);					return(eFATAL_ALREADY);				}				funckeymap_display(fp);				fclose(fp);				if(!proc_level || proctrace)					pprintf("current mapping saved in %s\n",argv[iargv]);				return(0);			case 'l': /* load entire */				if(err)					break;				if(iargv != (argc - 2))				{					pputs("exactly one argument required for -l\n");					err = 1;					break;				}				iargv++;				funckeymap_read(argv[iargv]);				return(0);			default:				pprintf("unknown switch -%c\n",*arg);				err = 1;		}		iargv++;	}	if(err)	{		fkmap_cmd_usage();		return(eFATAL_ALREADY);	}	if(iargv == argc)	{		funckeymap_display(stderr);		return(0);	}	arg = argv[iargv++];	if((ikde = kde_name_to_ikde(arg)) < 0)	{		pprintf("key name '%s' not recognized\n",arg);		return(eFATAL_ALREADY);	}	sprintf(fkcptr," %s:%s: ",keyset_idstr(ikde),keyset_idstr(ikde));	fkcptr += (itmp = strlen(fkcptr));	fkclen += itmp;	if(iargv == argc)	{		funckeymap_display_single(&funckeymap_table[ikde],stderr);		return(0);	}	while(iargv < argc)	{		arg = argv[iargv++];		itmp = strlen(arg);		if((fkclen + itmp + 2) > sizeof(fkcmd))		{			pprintf("fkmap command may be no longer than %d characters\n",				sizeof(fkcmd) - 1);			return(eFATAL_ALREADY);		}		strcpy(fkcptr,arg);		fkcptr += itmp;		fkclen += itmp;		if(iargv != argc)		{			*fkcptr++ = ' ';			*fkcptr = 0;			fkclen++;		}	}	save = funckeymap_table[ikde];	if(err = funckeymap_define(fkcmd))		funckeymap_table[ikde] = save;	if(!err && (!proc_level || proctrace))		funckeymap_display_single(ikde,stderr);	return((err) ? eFATAL_ALREADY : 0);}	/* end of fkmap_command *//* end of funckeymap.c *//* vi: set tabstop=4 shiftwidth=4: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxx裸体时装秀| 99re在线视频这里只有精品| 国产精品灌醉下药二区| 3751色影院一区二区三区| 成人av在线资源网站| 老司机午夜精品99久久| 久久久亚洲高清| 欧美一二三四在线| 欧美日精品一区视频| 91原创在线视频| 国产91精品免费| 国产一区二区在线观看免费 | 国产欧美日韩视频一区二区| 在线电影一区二区三区| 欧美中文字幕一区二区三区| 不卡的av在线| 国产一区91精品张津瑜| 国产综合色精品一区二区三区| 亚洲v中文字幕| 天堂蜜桃91精品| 天天做天天摸天天爽国产一区| 午夜精品123| 午夜欧美在线一二页| 欧美一区二区久久久| 99久久精品99国产精品| 99久久精品费精品国产一区二区| 高清视频一区二区| 成人av在线观| 日本精品一级二级| 欧美日韩国产在线观看| 欧美日韩一区二区三区在线 | 久久一日本道色综合| xnxx国产精品| 国产精品国产三级国产aⅴ中文| 欧美国产亚洲另类动漫| 国产精品乱码一区二区三区软件| 久久久综合九色合综国产精品| 国产农村妇女毛片精品久久麻豆| 国产精品女同互慰在线看| 中文字幕中文字幕一区二区| 综合av第一页| 日本麻豆一区二区三区视频| 蜜臀av亚洲一区中文字幕| 精品一区二区成人精品| 久久99国产精品久久| 成人亚洲精品久久久久软件| 成人久久视频在线观看| 91成人免费电影| 欧美一区二区视频在线观看2020| 精品国精品国产| 中文字幕一区二区在线观看| 国产精品久久久久久久久图文区| 亚洲精品国产无天堂网2021 | 国产精品区一区二区三区| 精品国产99国产精品| 国产精品美女www爽爽爽| 蜜桃久久精品一区二区| 日本道色综合久久| 欧美激情在线观看视频免费| 麻豆精品久久久| 欧美色网一区二区| 亚洲人成人一区二区在线观看 | 免费观看91视频大全| 色国产综合视频| 国产精品传媒视频| 国产不卡在线一区| 久久综合九色综合久久久精品综合| 亚洲高清视频的网址| 色婷婷狠狠综合| 亚洲三级小视频| 成人免费视频caoporn| 国产欧美综合在线观看第十页| 老色鬼精品视频在线观看播放| 欧美三级日韩在线| 亚洲黄色小说网站| 欧美性大战久久| 亚洲激情图片一区| 色老综合老女人久久久| 亚洲男人天堂av网| 日本道在线观看一区二区| 中文字幕日韩欧美一区二区三区| 成人手机电影网| 1区2区3区国产精品| 成年人国产精品| 综合在线观看色| 色哦色哦哦色天天综合| 亚洲黄色小说网站| 欧美日韩综合色| 日本不卡一区二区三区高清视频| 91精品国产综合久久精品图片| 日韩有码一区二区三区| 在线综合视频播放| 久88久久88久久久| 国产情人综合久久777777| 成人av在线电影| 一区二区三区在线观看视频| 日本精品免费观看高清观看| 亚洲成人手机在线| 日韩三级在线免费观看| 国产曰批免费观看久久久| 欧美韩日一区二区三区四区| 色婷婷精品大视频在线蜜桃视频 | 久久99国内精品| 国产人伦精品一区二区| 99精品国产视频| 午夜精品影院在线观看| 日韩精品中文字幕一区| 国产99一区视频免费| 亚洲乱码一区二区三区在线观看| 欧美日韩精品一区二区三区四区| 免费在线观看视频一区| 中文久久乱码一区二区| 日本黄色一区二区| 精品一区二区精品| 国产精品乱子久久久久| 欧美伦理视频网站| 国产一区二区三区日韩| 亚洲夂夂婷婷色拍ww47| 欧美大片在线观看| 色综合久久久久久久久久久| 日韩精彩视频在线观看| 国产精品无遮挡| 制服视频三区第一页精品| 成人激情小说网站| 日本成人超碰在线观看| 成人欧美一区二区三区视频网页 | 欧美一级欧美三级在线观看| 成人国产在线观看| 全部av―极品视觉盛宴亚洲| 中文字幕av不卡| 日韩一二三四区| 在线看国产一区| 韩国一区二区在线观看| 亚洲bdsm女犯bdsm网站| 国产精品久久久久久久久果冻传媒| 精品视频在线看| 成人精品电影在线观看| 精品一区二区三区香蕉蜜桃| 亚洲午夜激情网站| 亚洲天堂精品视频| 日本一二三不卡| 日韩欧美一级片| 欧美一区二区三区精品| 欧美在线影院一区二区| 成人精品视频一区二区三区尤物| 麻豆成人久久精品二区三区小说| 亚洲黄色av一区| 亚洲三级久久久| 国产精品第一页第二页第三页| 精品精品欲导航| 欧美一区二区免费观在线| jiyouzz国产精品久久| 国产在线精品一区二区夜色| 五月激情综合色| 一区二区三区在线观看欧美| 亚洲色欲色欲www| 欧美国产乱子伦| 国产精品丝袜在线| 国产欧美一区二区精品性色| 精品蜜桃在线看| 精品国产麻豆免费人成网站| 日韩欧美一二区| 日韩精品一区二区在线| 日韩一区二区三区在线| 欧美电影在哪看比较好| 555夜色666亚洲国产免| 在线成人高清不卡| 日韩视频一区二区| 精品国精品自拍自在线| 久久久久久久国产精品影院| 久久精品一区二区| 国产清纯在线一区二区www| 国产亚洲欧美一级| 国产精品乱子久久久久| 亚洲欧洲精品一区二区精品久久久| 中文字幕一区二| 一区二区高清免费观看影视大全| 一区二区理论电影在线观看| 亚洲图片欧美视频| 男人的天堂久久精品| 狠狠色2019综合网| 成人国产精品免费| 日本韩国一区二区三区视频| 欧美午夜影院一区| 日韩一区二区精品在线观看| 久久理论电影网| 中文字幕亚洲电影| 日日摸夜夜添夜夜添精品视频 | 精品sm捆绑视频| 国产精品入口麻豆九色| 一区二区三区在线视频免费| 日本不卡免费在线视频| 国产福利视频一区二区三区| 99久久婷婷国产综合精品电影| 欧美日韩免费高清一区色橹橹| 日韩女优制服丝袜电影| 国产精品国模大尺度视频| 亚洲gay无套男同| 国产精品正在播放| 在线观看亚洲精品视频|