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

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

?? fun.c

?? ncurses-5.4 需要的就來下把 一定會有用的哦
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** Copyright (C) 1991, 1997 Free Software Foundation, Inc.** ** This file is part of TACK.** ** TACK is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2, or (at your option)** any later version.** ** TACK is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.** ** You should have received a copy of the GNU General Public License** along with TACK; see the file COPYING.  If not, write to** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,** Boston, MA 02111-1307, USA.*/#include <tack.h>MODULE_ID("$Id: fun.c,v 1.3 2000/03/04 20:29:21 tom Exp $")/* * Test the function keys on the terminal.  The code for echo tests * lives here too. */static void funkey_keys(struct test_list *, int *, int *);static void funkey_meta(struct test_list *, int *, int *);static void funkey_label(struct test_list *, int *, int *);static void funkey_prog(struct test_list *, int *, int *);static void funkey_local(struct test_list *, int *, int *);struct test_list funkey_test_list[] = {	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},	{MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},	{MENU_NEXT | MENU_CLEAR, 0, "smkx) (rmkx", 0,		"k) test function keys", funkey_keys, 0},	{MENU_NEXT, 10, "km", "smm rmm", 0, funkey_meta, 0},	{MENU_NEXT, 8, "nlab) (smln) (pln) (rmln", "lw lh", 0, funkey_label, 0},	{MENU_NEXT, 2, "pfx", 0, 0, funkey_prog, 0},	{MENU_NEXT, 2, "pfloc", 0, 0, funkey_local, 0},	{MENU_LAST, 0, 0, 0, 0, 0, 0}};static void printer_on(struct test_list *, int *, int *);static void printer_mc0(struct test_list *, int *, int *);struct test_list printer_test_list[] = {	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},	{MENU_NEXT | MENU_CLEAR, 0, "mc4) (mc5) (mc5i", 0, 0, printer_on, 0},	{MENU_NEXT | MENU_CLEAR, 0, "mc0", 0, 0, printer_mc0, 0},	{MENU_LAST, 0, 0, 0, 0, 0, 0}};#define MAX_STRINGS STRCOUNT/* scan code externals */extern int scan_max;		/* length of longest scan code */extern char **scan_up, **scan_down, **scan_name;extern int *scan_tested, *scan_length;/* local definitions */static const char *fk_name[MAX_STRINGS];static char *fkval[MAX_STRINGS];static char *fk_label[MAX_STRINGS];	/* function key labels (if any) */static int fk_tested[MAX_STRINGS];static int fkmax = 1;		/* length of longest key */static int got_labels = 0;	/* true if we have some labels */static int key_count = 0;static int end_state;/* unknown function keys */#define MAX_FK_UNK 50static char *fk_unknown[MAX_FK_UNK];static int fk_length[MAX_FK_UNK];static int funk;/***	keys_tested(first-time, show-help, hex-output)****	Display a list of the keys not tested.*/static voidkeys_tested(	int first_time,	int show_help,	int hex_output){	int i, l;	char outbuf[256];	put_clear();	tty_set();	flush_input();	if (got_labels) {		putln("Function key labels:");		for (i = 0; i < key_count; ++i) {			if (fk_label[i]) {				sprintf(outbuf, "%s %s",					fk_name[i] ? fk_name[i] : "??", fk_label[i]);				put_columns(outbuf, strlen(outbuf), 16);			}		}		put_newlines(2);	}	if (funk) {		putln("The following keys are not defined:");		for (i = 0; i < funk; ++i) {			put_columns(fk_unknown[i], fk_length[i], 16);		}		put_mode(exit_attribute_mode);		put_newlines(2);	}	if (first_time) {		putln("The following keys are defined:");	} else {		putln("The following keys have not been tested:");	}	if (scan_mode) {		for (i = 0; scan_down[i]; i++) {			if (!scan_tested[i]) {				if (hex_output) {					strcpy(outbuf, hex_expand_to(scan_down[i], 3));				} else {					strcpy(outbuf, expand(scan_down[i]));				}				l = expand_chars;				if (hex_output) {					strcat(outbuf, hex_expand_to(scan_up[i], 3));				} else {					strcat(outbuf, expand(scan_up[i]));				}				expand_chars += l;				l = strlen(scan_name[i]);				if (((char_count + 16) & ~15) +					((expand_chars + 7) & ~7) + l >= columns) {					put_crlf();				} else				if (char_count + 24 > columns) {					put_crlf();				} else if (char_count) {					putchp(' ');				}				put_columns(outbuf, expand_chars, 16);				put_columns(scan_name[i], l, 8);			}		}	} else {		for (i = 0; i < key_count; i++) {			if (!fk_tested[i]) {				if (hex_output) {					strcpy(outbuf, hex_expand_to(fkval[i], 3));				} else {					strcpy(outbuf, expand(fkval[i]));				}				l = strlen(fk_name[i]);				if (((char_count + 16) & ~15) +					((expand_chars + 7) & ~7) + l >= columns) {					put_crlf();				} else				if (char_count + 24 > columns) {					put_crlf();				} else				if (char_count) {					putchp(' ');				}				put_columns(outbuf, expand_chars, 16);				put_columns(fk_name[i], l, 8);			}		}	}	put_newlines(2);	if (show_help) {		ptextln("Hit any function key.  Type 'end' to quit.  Type ? to update the display.");		put_crlf();	}}/***	enter_key(name, value, label)****	Enter a function key into the data base*/voidenter_key(	const char *name,	char *value,	char *lab){	int j;	if (value) {		j = strlen(value);		fkmax = fkmax > j ? fkmax : j;		/* do not permit duplicates */		for (j = 0; j < key_count; j++) {			if (!strcmp(fk_name[j], name)) {				return;			}		}		fkval[key_count] = value;		fk_tested[key_count] = 0;		fk_label[key_count] = lab;		fk_name[key_count++] = name;		if (lab) {			got_labels = TRUE;		}	}}static voidfresh_line(void){				/* clear the line for a new function key line */	if (over_strike) {		put_crlf();	} else {		put_cr();		if (clr_eol) {			tc_putp(clr_eol);		} else {			put_str("                    \r");		}	}}static intend_funky(int ch){				/* return true if this is the end */	switch (ch) {	case 'e':	case 'E':		end_state = 'e';		break;	case 'n':	case 'N':		if (end_state == 'e') {			end_state = 'n';		} else {			end_state = 0;		}		break;	case 'd':	case 'D':		if (end_state == 'n') {			end_state = 'd';		} else {			end_state = 0;		}		break;	case 'l':	case 'L':		if (end_state == 'l') {			end_state = '?';		} else {			end_state = 'l';		}		break;	default:		end_state = 0;		break;	}	return end_state == 'd';}static intfound_match(char *s, int hx, int cc){				/* return true if this string is a match */	int j, f;	char outbuf[256];	if (!*s) {		return 0;	}	if (scan_mode) {		for (j = f = 0; scan_down[j]; j++) {			if (scan_length[j] == 0) {				continue;			}			if (!strncmp(s, scan_down[j], scan_length[j])) {				if (!f) {	/* first match */					put_cr();					if (hx) {						put_str(hex_expand_to(s, 10));					} else {						put_str(expand_to(s, 10));					}					f = 1;				}				(void) end_funky(scan_name[j][0]);				put_str(" ");				put_str(scan_name[j]);				scan_tested[j] = 1;				s += scan_length[j];				if (strncmp(s, scan_up[j], scan_length[j])) {					put_str(" scan down");				} else {					s += scan_length[j];				}				if (!*s) {					break;				}				j = -1;			}			if (!strncmp(s, scan_up[j], scan_length[j])) {				if (!f) {	/* first match */					put_cr();					if (hx) {						put_str(hex_expand_to(s, 10));					} else {						put_str(expand_to(s, 10));					}					f = 1;				}				put_str(" ");				put_str(scan_name[j]);				put_str(" scan up");				s += scan_length[j];				if (!*s) {					break;				}				j = -1;			}		}	} else {		for (j = f = 0; j < key_count; j++) {			if (!strcmp(s, fkval[j])) {				if (!f) {	/* first match */					put_cr();					if (hx) {						put_str(hex_expand_to(s, 10));					} else {						put_str(expand_to(s, 10));					}					f = 1;				}				sprintf(outbuf, " (%s)", fk_name[j]);				put_str(outbuf);				if (fk_label[j]) {					sprintf(outbuf, " <%s>", fk_label[j]);					put_str(outbuf);				}				fk_tested[j] = 1;			}		}	}	if (end_state == '?') {		keys_tested(0, 1, hx);		tty_raw(cc, char_mask);		end_state = 0;	}	return f;}static intfound_exit(char *keybuf, int hx, int cc){				/* return true if the user wants to exit */	int j, k;	char *s;	if (scan_mode) {		if (*keybuf == '\0') {			return TRUE;		}	} else {		/* break is a special case */		if (*keybuf == '\0') {			fresh_line();			tty_set();			ptext("Hit X to exit: ");			if (wait_here() == 'X') {				return TRUE;			}			keys_tested(0, 1, hx);			tty_raw(cc, char_mask);			return FALSE;		}		/* is this the end? */		for (k = 0; (j = (keybuf[k] & STRIP_PARITY)); k++) {			if (end_funky(j)) {				return TRUE;			}		}		j = TRUE;	/* does he need an updated list? */		for (k = 0; keybuf[k]; k++) {			j &= (keybuf[k] & STRIP_PARITY) == '?';		}		if (j || end_state == '?') {			keys_tested(0, 1, hx);			tty_raw(cc, char_mask);			end_state = 0;			return FALSE;		}	}	put_cr();	if (hx) {		s = hex_expand_to(keybuf, 10);	} else {		s = expand_to(keybuf, 10);	}	sprintf(temp, "%s Unknown", s);	put_str(temp);	for (j = 0; j < MAX_FK_UNK; j++) {		if (j == funk) {			fk_length[funk] = expand_chars;			if ((fk_unknown[funk] = (char *)malloc(strlen(s) + 1))) {				strcpy(fk_unknown[funk++], s);			}			break;		}		if (fk_length[j] == expand_chars) {			if (!strcmp(fk_unknown[j], s)) {				break;			}		}	}	return FALSE;}/***	funkey_keys(test_list, status, ch)****	Test function keys*/static voidfunkey_keys(	struct test_list *t,	int *state,	int *ch){	char keybuf[256];	if (keypad_xmit) {		tc_putp(keypad_xmit);	}	keys_tested(1, 1, hex_out);	/* also clears screen */	keybuf[0] = '\0';	end_state = 0;	if (scan_mode) {		fkmax = scan_max;	}	tty_raw(0, char_mask);	while (end_state != 'd') {		read_key(keybuf, sizeof(keybuf));		fresh_line();		if (found_match(keybuf, hex_out, 0)) {			continue;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女久久久| 欧美精品色一区二区三区| 亚洲一区国产视频| 日韩一区二区高清| 成人app网站| 国产成人亚洲综合a∨猫咪| 欧美变态凌虐bdsm| 69p69国产精品| 日韩一区二区在线看| 日韩一区二区电影在线| 91精品国产品国语在线不卡| 777奇米成人网| 欧美一二三区在线观看| 日韩午夜激情视频| 欧美va亚洲va在线观看蝴蝶网| 日韩欧美在线影院| 欧美激情自拍偷拍| 久久综合色鬼综合色| 久久只精品国产| 91精品国产综合久久精品图片| youjizz久久| 韩国三级中文字幕hd久久精品| 国产精品久久久久影院色老大| 国产日产精品一区| 亚洲精品国产精华液| 欧美亚洲禁片免费| 欧美午夜精品一区二区蜜桃| 色天天综合久久久久综合片| 欧美图区在线视频| 制服视频三区第一页精品| 欧美另类变人与禽xxxxx| 尤物在线观看一区| 久久精品一区八戒影视| 精品精品国产高清一毛片一天堂| 精品久久久久久久久久久久久久久 | 欧美日韩国产综合视频在线观看 | 精品一区二区日韩| 国产老肥熟一区二区三区| jvid福利写真一区二区三区| 93久久精品日日躁夜夜躁欧美| 色婷婷综合久久| 欧美一区二区三区日韩视频| 久久久久久久久久久久久久久99| 国产精品久久久久一区| 天天色综合成人网| 久久久久久久久久美女| 中文字幕亚洲一区二区va在线| 亚洲情趣在线观看| 久久爱另类一区二区小说| 国产精品自拍在线| 成人少妇影院yyyy| 欧美一区二区精品久久911| 精品国一区二区三区| 一区二区三区四区五区视频在线观看| 日韩精品专区在线影院观看 | 亚洲网友自拍偷拍| 久久精品国产久精国产爱| 国产精品一区2区| 欧美午夜一区二区三区| 欧美美女喷水视频| 中文字幕欧美激情一区| 亚洲成人黄色小说| 大美女一区二区三区| 91精品国产色综合久久不卡蜜臀| 久久久99精品免费观看| 亚洲一区二区影院| 成人激情动漫在线观看| 欧美日韩www| 国产目拍亚洲精品99久久精品| 一区二区三区欧美| 国产在线精品视频| 在线观看91精品国产入口| 久久久亚洲精品石原莉奈| 亚洲制服欧美中文字幕中文字幕| 激情综合一区二区三区| 在线看不卡av| 中文字幕国产一区| 免费高清不卡av| 99精品视频中文字幕| 日韩你懂的在线播放| 亚洲黄色av一区| 国产精品一区二区免费不卡| 欧美日韩国产片| 久久这里只有精品首页| 视频一区二区三区中文字幕| av爱爱亚洲一区| 91精品国产乱码| 亚洲一区二区三区小说| 精品久久五月天| 国产一区二区视频在线播放| 亚洲人成人一区二区在线观看 | 国产剧情一区二区| 暴力调教一区二区三区| 国产日韩欧美电影| 久草热8精品视频在线观看| 欧美二区三区的天堂| 一区二区高清在线| 日本久久电影网| 亚洲国产欧美在线人成| 国产免费观看久久| 中文字幕二三区不卡| 亚洲欧美日韩成人高清在线一区| 亚洲黄色录像片| 久久99国产精品免费| 91精品国产综合久久久久久久| 亚洲一区二区中文在线| av成人免费在线观看| 中文字幕中文字幕在线一区| 懂色av中文字幕一区二区三区| 日韩你懂的在线观看| 亚洲成av人片在线观看无码| 色哟哟国产精品| 伊人开心综合网| 色综合中文字幕国产 | 色丁香久综合在线久综合在线观看| 亚洲欧洲综合另类| 精品1区2区3区| 日韩精品每日更新| 精品国产三级a在线观看| 国产成人精品一区二区三区四区 | 91免费观看在线| 亚洲成人动漫在线免费观看| 91精品国产综合久久久久久漫画| 美女爽到高潮91| 国产欧美日韩三级| 91黄色免费观看| 奇米亚洲午夜久久精品| 国产三级精品三级在线专区| 99国产精品视频免费观看| 亚洲成在线观看| 精品国产乱码久久久久久闺蜜| 成人午夜视频在线观看| 亚洲欧美日本韩国| 日韩视频一区在线观看| 成人免费视频一区| 亚洲成av人片一区二区| 精品国精品国产| 99久久精品国产导航| 午夜电影一区二区| 国产日韩v精品一区二区| 在线免费一区三区| 国产一区中文字幕| 亚洲老司机在线| 精品毛片乱码1区2区3区| 91免费在线看| 激情综合网天天干| 一区二区成人在线观看| 精品处破学生在线二十三| 一本色道久久加勒比精品| 九九九久久久精品| 亚洲欧美成aⅴ人在线观看| 日韩久久久精品| 91老师片黄在线观看| 捆绑调教一区二区三区| 亚洲精品你懂的| 欧美精品一区二区三区在线播放| 91亚洲精品久久久蜜桃| 狠狠色综合日日| 亚洲午夜av在线| 亚洲国产精品精华液2区45| 欧美高清hd18日本| 97精品久久久午夜一区二区三区| 美国精品在线观看| 一区二区三区四区激情| 久久精品男人天堂av| 91精品国产入口| 91久久精品网| 成人av网站在线观看免费| 九九在线精品视频| 天天操天天干天天综合网| 亚洲人成小说网站色在线| 久久久综合九色合综国产精品| 欧美日韩一区二区三区在线看 | 国产日产欧美精品一区二区三区| 欧美日韩国产免费| 91一区二区在线| 高清在线观看日韩| 九九视频精品免费| 免费观看日韩电影| 五月天亚洲精品| 亚洲综合色丁香婷婷六月图片| 国产精品私人自拍| 久久夜色精品国产欧美乱极品| 欧美精品粉嫩高潮一区二区| 欧洲精品在线观看| 色狠狠一区二区| 99久久99久久精品国产片果冻 | 久久久国际精品| 欧美xxxx老人做受| 日韩精品自拍偷拍| 欧美成人性战久久| 欧美成人一区二区| 日韩免费成人网| 欧美成人一区二区三区| 日韩欧美国产电影| 日韩一区二区三区在线观看| 91精品婷婷国产综合久久| 欧美午夜精品久久久久久孕妇| 色婷婷综合久久久久中文| 色一情一伦一子一伦一区|