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

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

?? loadacm.c

?? 手機嵌入式Linux下可用的busybox源碼
?? C
字號:
/* vi: set sw=4 ts=4: *//* * Derived from * mapscrn.c - version 0.92 * * Was taken from console-tools and adapted by  * Peter Novodvorsky <petya@logic.ru> */#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <assert.h>#include <errno.h>#include <signal.h>#include <sys/kd.h>#include <sys/types.h>#include <sys/ioctl.h>#include "busybox.h"typedef unsigned short unicode;static long int ctoi(unsigned char *s, int *is_unicode);static int old_screen_map_read_ascii(FILE * fp, unsigned char buf[]);static int uni_screen_map_read_ascii(FILE * fp, unicode buf[], int *is_unicode);static unicode utf8_to_ucs2(char *buf);static int screen_map_load(int fd, FILE * fp);int loadacm_main(int argc, char **argv){	int fd;	if (argc>=2 && *argv[1]=='-') {		show_usage();	}	fd = open(CURRENT_VC, O_RDWR);	if (fd < 0) {		perror_msg_and_die("Error opening " CURRENT_VC);	}	if (screen_map_load(fd, stdin)) {		perror_msg_and_die("Error loading acm");	}	write(fd, "\033(K", 3);	return EXIT_SUCCESS;}static int screen_map_load(int fd, FILE * fp){	struct stat stbuf;	unicode wbuf[E_TABSZ];	unsigned char buf[E_TABSZ];	int parse_failed = 0;	int is_unicode;	if (fstat(fileno(fp), &stbuf))		perror_msg_and_die("Cannot stat map file");	/* first try a UTF screen-map: either ASCII (no restriction) or binary (regular file) */	if (!		(parse_failed =		 (-1 == uni_screen_map_read_ascii(fp, wbuf, &is_unicode)))|| (S_ISREG(stbuf.st_mode) && (stbuf.st_size == (sizeof(unicode) * E_TABSZ)))) {	/* test for binary UTF map by size */		if (parse_failed) {			if (-1 == fseek(fp, 0, SEEK_SET)) {				if (errno == ESPIPE)					error_msg_and_die("16bit screen-map MUST be a regular file.");				else					perror_msg_and_die("fseek failed reading binary 16bit screen-map");			}			if (fread(wbuf, sizeof(unicode) * E_TABSZ, 1, fp) != 1)				perror_msg_and_die("Cannot read [new] map from file");#if 0			else				error_msg("Input screen-map is binary.");#endif		}		/* if it was effectively a 16-bit ASCII, OK, else try to read as 8-bit map */		/* same if it was binary, ie. if parse_failed */		if (parse_failed || is_unicode) {			if (ioctl(fd, PIO_UNISCRNMAP, wbuf))				perror_msg_and_die("PIO_UNISCRNMAP ioctl");			else				return 0;		}	}	/* rewind... */	if (-1 == fseek(fp, 0, SEEK_SET)) {		if (errno == ESPIPE)			error_msg("Assuming 8bit screen-map - MUST be a regular file."),				exit(1);		else			perror_msg_and_die("fseek failed assuming 8bit screen-map");	}	/* ... and try an old 8-bit screen-map */	if (!(parse_failed = (-1 == old_screen_map_read_ascii(fp, buf))) ||		(S_ISREG(stbuf.st_mode) && (stbuf.st_size == E_TABSZ))) {	/* test for binary old 8-bit map by size */		if (parse_failed) {			if (-1 == fseek(fp, 0, SEEK_SET)) {				if (errno == ESPIPE)					/* should not - it succedeed above */					error_msg_and_die("fseek() returned ESPIPE !");				else					perror_msg_and_die("fseek for binary 8bit screen-map");			}			if (fread(buf, E_TABSZ, 1, fp) != 1)				perror_msg_and_die("Cannot read [old] map from file");#if 0			else				error_msg("Input screen-map is binary.");#endif		}		if (ioctl(fd, PIO_SCRNMAP, buf))			perror_msg_and_die("PIO_SCRNMAP ioctl");		else			return 0;	}	error_msg("Error parsing symbolic map");	return(1);}/* * - reads `fp' as a 16-bit ASCII SFM file. * - returns -1 on error. * - returns it in `unicode' in an E_TABSZ-elements array. * - sets `*is_unicode' flagiff there were any non-8-bit *   (ie. real 16-bit) mapping. * * FIXME: ignores everything after second word */static int uni_screen_map_read_ascii(FILE * fp, unicode buf[], int *is_unicode){	char buffer[256];			/* line buffer reading file */	char *p, *q;				/* 1st + 2nd words in line */	int in, on;					/* the same, as numbers */	int tmp_is_unicode;			/* tmp for is_unicode calculation */	int i;						/* loop index - result holder */	int ret_code = 0;			/* return code */	sigset_t acmsigset, old_sigset;	assert(is_unicode);	*is_unicode = 0;	/* first 128 codes defaults to ASCII */	for (i = 0; i < 128; i++)		buf[i] = i;	/* remaining defaults to replacement char (usually E_TABSZ = 256) */	for (; i < E_TABSZ; i++)		buf[i] = 0xfffd;	/* block SIGCHLD */	sigemptyset(&acmsigset);	sigaddset(&acmsigset, SIGCHLD);	sigprocmask(SIG_BLOCK, &acmsigset, &old_sigset);	do {		if (NULL == fgets(buffer, sizeof(buffer), fp)) {			if (feof(fp))				break;			else				perror_msg_and_die("uni_screen_map_read_ascii() can't read line");		}		/* get "charset-relative charcode", stripping leading spaces */		p = strtok(buffer, " \t\n");		/* skip empty lines and comments */		if (!p || *p == '#')			continue;		/* get unicode mapping */		q = strtok(NULL, " \t\n");		if (q) {			in = ctoi(p, NULL);			if (in < 0 || in > 255) {				ret_code = -1;				break;			}			on = ctoi(q, &tmp_is_unicode);			if (in < 0 && on > 65535) {				ret_code = -1;				break;			}			*is_unicode |= tmp_is_unicode;			buf[in] = on;		} else {			ret_code = -1;			break;		}	}	while (1);					/* terminated by break on feof() */	/* restore sig mask */	sigprocmask(SIG_SETMASK, &old_sigset, NULL);	return ret_code;}static int old_screen_map_read_ascii(FILE * fp, unsigned char buf[]){	char buffer[256];	int in, on;	char *p, *q;	for (in = 0; in < 256; in++)		buf[in] = in;	while (fgets(buffer, sizeof(buffer) - 1, fp)) {		p = strtok(buffer, " \t\n");		if (!p || *p == '#')			continue;		q = strtok(NULL, " \t\n#");		if (q) {			in = ctoi(p, NULL);			if (in < 0 || in > 255)				return -1;			on = ctoi(q, NULL);			if (in < 0 && on > 255)				return -1;			buf[in] = on;		} else			return -1;	}	return (0);}/* * - converts a string into an int. * - supports dec and hex bytes, hex UCS2, single-quoted byte and UTF8 chars. * - returns the converted value * - if `is_unicode != NULL', use it to tell whether it was unicode * * CAVEAT: will report valid UTF mappings using only 1 byte as 8-bit ones. */static long int ctoi(unsigned char *s, int *is_unicode){	int i;	size_t ls;	ls = strlen(s);	if (is_unicode)		*is_unicode = 0;	/* hex-specified UCS2 */	if ((strncmp(s, "U+", 2) == 0) &&		(strspn(s + 2, "0123456789abcdefABCDEF") == ls - 2)) {		sscanf(s + 2, "%x", &i);		if (is_unicode)			*is_unicode = 1;	}	/* hex-specified byte */	else if ((ls <= 4) && (strncmp(s, "0x", 2) == 0) &&			 (strspn(s + 2, "0123456789abcdefABCDEF") == ls - 2))		sscanf(s + 2, "%x", &i);	/* oct-specified number (byte) */	else if ((*s == '0') && (strspn(s, "01234567") == ls))		sscanf(s, "%o", &i);	/* dec-specified number (byte) */	else if (strspn(s, "0123456789") == ls)		sscanf(s, "%d", &i);	/* single-byte quoted char */	else if ((strlen(s) == 3) && (s[0] == '\'') && (s[2] == '\''))		i = s[1];	/* multi-byte UTF8 quoted char */	else if ((s[0] == '\'') && (s[ls - 1] == '\'')) {		s[ls - 1] = 0;			/* ensure we'll not "parse UTF too far" */		i = utf8_to_ucs2(s + 1);		if (is_unicode)			*is_unicode = 1;	} else		return (-1);	return (i);}static unicode utf8_to_ucs2(char *buf){	int utf_count = 0;	long utf_char = 0;	unicode tc = 0;	unsigned char c;	do {		c = *buf;		buf++;		/* if byte should be part of multi-byte sequence */		if (c & 0x80) {			/* if we have already started to parse a UTF8 sequence */			if (utf_count > 0 && (c & 0xc0) == 0x80) {				utf_char = (utf_char << 6) | (c & 0x3f);				utf_count--;				if (utf_count == 0)					tc = utf_char;				else					continue;			} else {			/* Possibly 1st char of a UTF8 sequence */				if ((c & 0xe0) == 0xc0) {					utf_count = 1;					utf_char = (c & 0x1f);				} else if ((c & 0xf0) == 0xe0) {					utf_count = 2;					utf_char = (c & 0x0f);				} else if ((c & 0xf8) == 0xf0) {					utf_count = 3;					utf_char = (c & 0x07);				} else if ((c & 0xfc) == 0xf8) {					utf_count = 4;					utf_char = (c & 0x03);				} else if ((c & 0xfe) == 0xfc) {					utf_count = 5;					utf_char = (c & 0x01);				} else					utf_count = 0;				continue;			}		} else {				/* not part of multi-byte sequence - treat as ASCII								   * this makes incomplete sequences to be ignored								 */			tc = c;			utf_count = 0;		}	}	while (utf_count);	return tc;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色8888| 欧美网站大全在线观看| 免费成人在线观看| 亚洲国产一区二区在线播放| 欧美国产精品v| 国产精品久久久久影院亚瑟| 久久精品免费在线观看| 精品成人在线观看| 国产欧美日产一区| 国产精品久久免费看| 中文字幕一区二区日韩精品绯色| 亚洲国产成人一区二区三区| 中文字幕一区二区三区四区| 亚洲激情在线激情| 日韩不卡一区二区| 国产一区二区电影| 91麻豆swag| 欧美精品久久一区二区三区| 精品久久久久99| 中文字幕av在线一区二区三区| 国产欧美日韩综合精品一区二区| 中文字幕 久热精品 视频在线| 亚洲欧洲av在线| 午夜激情久久久| 国产在线精品一区在线观看麻豆| 日产国产欧美视频一区精品| 国产精品一区二区视频| 97精品久久久久中文字幕| 欧美日韩精品一区二区天天拍小说 | 欧美日本一道本| 精品粉嫩超白一线天av| 亚洲视频免费在线| 青青国产91久久久久久| 成人午夜激情视频| 欧美人妇做爰xxxⅹ性高电影| 国产亚洲一区二区三区四区 | 日韩亚洲欧美一区| 国产精品沙发午睡系列990531| 亚洲国产精品久久久久婷婷884| 久久成人av少妇免费| 99久久精品国产毛片| 日韩亚洲欧美在线| 亚洲欧美欧美一区二区三区| 精品一区二区三区视频| 色猫猫国产区一区二在线视频| 欧美大片一区二区| 一区二区三区精品在线观看| 国产一区二区三区| 欧美一区二区三区视频在线| 亚洲激情图片一区| 国产91精品久久久久久久网曝门| 3atv一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 国产毛片精品视频| 日韩精品专区在线影院观看| 亚洲第一福利一区| 一本色道**综合亚洲精品蜜桃冫| 国产亚洲综合av| 韩国欧美国产1区| 日韩免费高清视频| 水蜜桃久久夜色精品一区的特点| eeuss影院一区二区三区| 久久一夜天堂av一区二区三区| 热久久一区二区| 欧美三级日韩三级| 亚洲一区二区三区国产| 色哟哟欧美精品| 亚洲日本欧美天堂| www.一区二区| 国产精品麻豆久久久| 国产精品1区2区| 国产日韩欧美不卡在线| 国产成人精品影视| 欧美国产精品v| 成人成人成人在线视频| 久久精品视频免费观看| 91免费视频网址| 亚洲私人黄色宅男| 一本大道久久a久久精二百| 自拍av一区二区三区| 91蜜桃视频在线| 又紧又大又爽精品一区二区| 在线影院国内精品| 日韩经典一区二区| 日韩欧美电影在线| 国产高清在线精品| 777色狠狠一区二区三区| 精品一二三四区| 2020国产精品| 成人精品免费视频| 亚洲日本成人在线观看| 日本丰满少妇一区二区三区| 亚洲另类春色校园小说| 欧美亚洲一区三区| 美日韩一区二区三区| 欧美成人精品3d动漫h| 国产成人免费在线视频| 亚洲日本成人在线观看| 欧美一区二区性放荡片| 国产精品亚洲视频| 亚洲精品免费一二三区| 欧美日韩亚洲综合| 国产美女精品人人做人人爽| 亚洲人成在线观看一区二区| 在线中文字幕一区| 激情另类小说区图片区视频区| 中文字幕精品—区二区四季| 欧美日精品一区视频| 国产美女主播视频一区| 亚洲综合无码一区二区| 欧美变态tickle挠乳网站| 波多野结衣视频一区| 日韩电影在线观看一区| 国产精品日日摸夜夜摸av| 欧美图区在线视频| 粉嫩嫩av羞羞动漫久久久| 日一区二区三区| 中文字幕在线一区| 91精品国产一区二区| eeuss国产一区二区三区| 日本亚洲免费观看| 亚洲色图欧洲色图| 久久久国产精品午夜一区ai换脸| 在线亚洲精品福利网址导航| 精品一区二区日韩| 午夜精品福利一区二区三区av| 国产日韩精品一区二区三区 | 久久不见久久见免费视频7| 亚洲精品国产成人久久av盗摄| 日韩免费观看高清完整版| 在线欧美日韩国产| 国产成人一区二区精品非洲| 午夜精品久久久久久| 一区二区三区中文字幕电影| 国产精品高潮呻吟| 国产视频一区在线播放| 日韩网站在线看片你懂的| 欧美日韩亚洲综合在线| 91久久线看在观草草青青| 成人高清在线视频| 国产一区福利在线| 韩国视频一区二区| 九九九久久久精品| 精品在线播放午夜| 麻豆精品一区二区三区| 国产一区二区91| 国内久久婷婷综合| 久久97超碰色| 久久99精品国产91久久来源| 免费成人你懂的| 蜜臀久久久99精品久久久久久| 亚洲第一精品在线| 午夜精品久久一牛影视| 亚洲成av人在线观看| 亚洲国产va精品久久久不卡综合| 亚洲毛片av在线| 亚洲综合一二三区| 亚洲18色成人| 久久国产精品免费| 国产麻豆精品久久一二三| 国产一区二区三区免费| 国产真实乱偷精品视频免| 国产激情视频一区二区三区欧美 | 精品一区二区三区不卡| 激情深爱一区二区| 国产精选一区二区三区| 国产99久久久国产精品潘金网站| 国产999精品久久久久久| 国产成人av电影| 91原创在线视频| 在线电影院国产精品| 亚洲精品一区在线观看| 国产精品全国免费观看高清 | 日韩国产欧美在线观看| 黄网站免费久久| 99久久精品免费精品国产| 欧美熟乱第一页| 欧美不卡视频一区| 国产精品久久99| 性欧美疯狂xxxxbbbb| 国产一区二区三区久久久 | 视频一区中文字幕| 极品少妇xxxx精品少妇| 99精品欧美一区二区三区综合在线| 色综合欧美在线视频区| 欧美日韩激情一区二区| 国产丝袜在线精品| 一卡二卡三卡日韩欧美| 精品一区二区在线看| 色综合夜色一区| 精品欧美久久久| 亚洲人成人一区二区在线观看| 免费观看一级特黄欧美大片| 成人免费视频一区二区| 欧美日韩国产首页| 国产精品久久久久aaaa| 久久成人羞羞网站| 日本韩国一区二区| 国产丝袜在线精品| 久久精品国产澳门|