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

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

?? asc.c

?? 使用Modem發送網上傳呼
?? C
字號:
/*	-*- mode: c; mode: fold -*-	*/# include	"config.h"# include	<stdio.h># include	<stdlib.h># include	<ctype.h># include	<string.h># include	"pager.h"/*{{{	typedefs */typedef struct {# ifndef	NDEBUG# define	MAGIC		MKMAGIC('a', 's', 'c', '\0')	long	magic;# endif		/* NDEBUG */	void	*sp;	void	*ctab;	void	(*logger) (char, char *, ...);	char	*callid;	int	deftout;	char	*alogin;	char	*alogout;	char	*apid;	char	*amsg;	char	*anext;	char	*async;		date_t	delay;	date_t	expire;	Bool	rds;}	asc;/*}}}*//*{{{	convert */static char *escape_string (asc *a, char *str){	int	c;	char	ch, prev;	char	*ret;	int	n;		if (ret = malloc (strlen (str) * 2 + 16)) {		prev = '\0';		ch = '\0';		for (n = 0; *str; prev = ch) {			c = cv_conv (a -> ctab, (char_t) *str++);			if (c < 0)				continue;			ch = (char) c;			if ((ch == '<') && isspace (prev)) {				ret[n++] = '\\';				ret[n++] = '<';			} else if (ch == ' ') {				ret[n++] = '\\';				ret[n++] = 's';			} else if (ch == '\a') {				ret[n++] = '\\';				ret[n++] = 'a';			} else if (ch == '\b') {				ret[n++] = '\\';				ret[n++] = 'b';			} else if (ch == '\f') {				ret[n++] = '\\';				ret[n++] = 'f';			} else if (ch == '\n') {				ret[n++] = '\\';				ret[n++] = 'n';			} else if (ch == '\r') {				ret[n++] = '\\';				ret[n++] = 'r';			} else if (ch == '\t') {				ret[n++] = '\\';				ret[n++] = 't';			} else if (ch) {				if ((ch == '\\') || (ch == '^') || (ch == '%'))					ret[n++] = '\\';				ret[n++] = ch;			}		}		ret[n] = '\0';	}	return ret;}			static char *convert_asc (asc *a, char *pat, char *pid, char *msg){	char	*str;	int	siz, len;	char	*ptr;	int	plen;	char	scr[32];	str = NULL;	siz = 0;	len = 0;	while (*pat) {		if (len + 2 >= siz) {			siz += 32;			if (! (str = Realloc (str, siz + 2)))				break;		}		if (*pat == '\\') {			++pat;			if (*pat) {				ptr = NULL;				switch (*pat) {				case 'C':	ptr = a -> callid;	break;				case 'P':	ptr = pid;		break;				case 'M':	ptr = msg;		break;				case 'R':					strcpy (scr, (a -> rds ? "1" : "0"));					ptr = scr;					break;				default:					str[len++] = '\\';					str[len++] = *pat;					break;				}				if (ptr && (ptr = escape_string (a, ptr))) {					if (plen = strlen (ptr)) {						if (len + plen + 2 >= siz) {							siz = len + plen + 32;							if (! (str = Realloc (str, siz)))								break;						}						strcpy (str + len, ptr);						len += plen;					}					free (ptr);				}				++pat;			}		} else if (! iscntrl (*pat))			str[len++] = *pat++;		else {			str[len++] = ' ';			++pat;		}	}	if (str)		str[len] = '\0';	return str;}/*}}}*//*{{{	general sending routine */static intdo_send (asc *a, char *what, char *pat, char *pid, char *msg){	int	ret;	char	*str;		ret = ERR_FAIL;	if (a && a -> sp)		if (pat && *pat) {			if (str = convert_asc (a, pat, pid, msg)) {				if (tty_send_expect (a -> sp, a -> deftout, str, NULL) != -1) {					V (1, ("Ascii %s sent\n", what));					ret = NO_ERR;				} else					V (1, ("Unable to send %s\n", what));				free (str);			}		} else			ret = NO_ERR;	return ret;}/*}}}*//*{{{	login/logout/transmit/next/sync */intasc_login (void *ap, string_t *cid){	asc	*a = (asc *) ap;	MCHK (a);	if (a) {		if (a -> callid)			free (a -> callid);		a -> callid = sextract (cid);	}	return a ? do_send (a, "login", a -> alogin, NULL, NULL) : ERR_ABORT;}intasc_logout (void *ap){	asc	*a = (asc *) ap;	MCHK (a);	return a ? do_send (a, "logout", a -> alogout, NULL, NULL) : ERR_FATAL;}intasc_transmit (void *ap, char *pid, char *msg){	asc	*a = (asc *) ap;	int	n;		MCHK (a);	if (! a)		return ERR_FATAL;	if ((n = do_send (a, "pagerid", a -> apid, pid, NULL)) != NO_ERR)		return n;	return do_send (a, "message", a -> amsg, NULL, msg);}intasc_next (void *ap){	asc	*a = (asc *) ap;	MCHK (a);	return a ? do_send (a, "next", a -> anext, NULL, NULL) : ERR_FATAL;}intasc_sync (void *ap){	asc	*a = (asc *) ap;		MCHK (a);	return a ? do_send (a, "sync", a -> async, NULL, NULL) : ERR_FATAL;}/*}}}*//*{{{	config */voidasc_config (void *ap, void (*logger) (char, char *, ...),	    int deftout, char *alogin, char *alogout, char *apid, char *amsg, char *anext, char *async,	    date_t *delay, date_t *expire, Bool rds){	asc	*a = (asc *) ap;		MCHK (a);	if (a) {		a -> logger = logger;		if (deftout != -1)			a -> deftout = deftout;		if (alogin) {			if (a -> alogin)				free (a -> alogin);			a -> alogin = strdup (alogin);		}		if (alogout) {			if (a -> alogout)				free (a -> alogout);			a -> alogout = strdup (alogout);		}		if (apid) {			if (a -> apid)				free (a -> apid);			a -> apid = strdup (apid);		}		if (amsg) {			if (a -> amsg)				free (a -> amsg);			a -> amsg = strdup (amsg);		}		if (anext) {			if (a -> anext)				free (a -> anext);			a -> anext = strdup (anext);		}		if (async) {			if (a -> async)				free (a -> async);			a -> async = strdup (async);		}		if (delay)			a -> delay = *delay;		else			dat_clear (& a -> delay);		if (expire)			a -> expire = *expire;		else			dat_clear (& a -> expire);		a -> rds = rds;	}}voidasc_set_convtable (void *ap, void *ctab){	asc	*a = (asc *) ap;		MCHK (a);	if (a) {		if (a -> ctab)			cv_free (a -> ctab);		a -> ctab = ctab;	}}voidasc_add_convtable (void *ap, void *ctab){	asc	*a = (asc *) ap;	MCHK (a);	if (a) {		if (! a -> ctab)			a -> ctab = cv_new ();		if (a -> ctab)			cv_merge (a -> ctab, ctab, True);	}}/*}}}*//*{{{	new/free/etc */void *asc_new (void *sp){	asc	*a;		if (a = (asc *) malloc (sizeof (asc))) {# ifndef	NDEBUG		a -> magic = MAGIC;# endif		/* NDEBUG */		a -> sp = sp;		a -> ctab = NULL;		a -> logger = NULL;		a -> callid = NULL;		a -> deftout = 10;		a -> alogin = NULL;		a -> alogout = NULL;		a -> apid = NULL;		a -> amsg = NULL;		a -> anext = NULL;		a -> async = NULL;		dat_clear (& a -> delay);		dat_clear (& a -> expire);		a -> rds = False;	}	return (void *) a;}void *asc_free (void *ap){	asc	*a = (asc *) ap;		MCHK (a);	if (a) {		if (a -> ctab)			cv_free (a -> ctab);		if (a -> callid)			free (a -> callid);		if (a -> alogin)			free (a -> alogin);		if (a -> alogout)			free (a -> alogout);		if (a -> apid)			free (a -> apid);		if (a -> amsg)			free (a -> amsg);		if (a -> anext)			free (a -> anext);		if (a -> async)			free (a -> async);		free (a);	}	return NULL;}intasc_preinit (void){	return 0;}voidasc_postdeinit (void){}/*}}}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品写真视频在线观看| 日本午夜精品一区二区三区电影| 免费成人小视频| 色天天综合色天天久久| 久久综合久久久久88| 亚洲国产视频一区二区| 懂色av一区二区三区免费观看| 欧美一区二区三区免费大片| 亚洲毛片av在线| 波多野结衣中文字幕一区二区三区| 精品久久国产老人久久综合| 亚洲成av人片在www色猫咪| 91原创在线视频| 中文字幕不卡在线观看| 久久99国产精品久久99果冻传媒| 欧美日本一区二区在线观看| 亚洲人成精品久久久久| 成人久久18免费网站麻豆| 精品久久人人做人人爽| 蜜臀99久久精品久久久久久软件| 欧美最猛黑人xxxxx猛交| 亚洲品质自拍视频| hitomi一区二区三区精品| 日本一区二区免费在线 | 欧美精品一区二区三区很污很色的| 亚洲午夜在线视频| 91激情在线视频| 亚洲美女屁股眼交| 91视频com| 亚洲品质自拍视频网站| 99久久精品国产观看| 国产精品久久久久久亚洲伦| 懂色av一区二区三区免费观看| 久久一夜天堂av一区二区三区| 另类小说综合欧美亚洲| 日韩女优毛片在线| 麻豆精品视频在线| 日韩精品一区二区三区老鸭窝| 免费人成精品欧美精品| 日韩欧美自拍偷拍| 精品一区二区三区视频| 精品久久久久久久久久久久包黑料| 美女mm1313爽爽久久久蜜臀| 日韩视频在线你懂得| 理论片日本一区| 欧美精品一区二区三区一线天视频 | 在线观看欧美日本| 亚洲国产美女搞黄色| 欧美日韩在线播放一区| 午夜精品福利在线| 欧美大白屁股肥臀xxxxxx| 精品一区二区综合| 国产欧美日韩综合精品一区二区 | 日日夜夜一区二区| 日韩欧美国产综合在线一区二区三区| 久久99精品一区二区三区| 久久精品视频在线看| 99视频精品全部免费在线| 亚洲激情图片小说视频| 欧美喷潮久久久xxxxx| 美国三级日本三级久久99| 精品福利一区二区三区免费视频| 国产成都精品91一区二区三| 综合分类小说区另类春色亚洲小说欧美| 色综合天天天天做夜夜夜夜做| 一区二区三区四区不卡视频| 6080日韩午夜伦伦午夜伦| 精品一区二区三区香蕉蜜桃| 国产精品网站在线播放| 欧美伊人久久久久久久久影院 | 一区二区三区国产精华| 制服丝袜成人动漫| 欧美精品一二三区| 韩国av一区二区三区在线观看| 国产精品女同一区二区三区| 欧美午夜寂寞影院| 久久精品av麻豆的观看方式| 国产精品免费人成网站| 欧美午夜影院一区| 国产乱子轮精品视频| 亚洲人吸女人奶水| 欧美不卡一区二区| 色综合天天综合给合国产| 日产欧产美韩系列久久99| 中文字幕av一区二区三区高| 欧美在线999| 国产美女在线精品| 亚洲国产日日夜夜| 久久久777精品电影网影网| 在线这里只有精品| 国产自产高清不卡| 一区二区三区色| 久久久久久夜精品精品免费| 欧洲中文字幕精品| 国产成人综合在线播放| 亚洲va中文字幕| 国产精品美女久久久久久久久久久 | 视频一区二区三区在线| 中文字幕av不卡| 这里只有精品免费| 97久久人人超碰| 久久99精品久久久久久| 一区二区免费在线| 欧美—级在线免费片| 91精品国产色综合久久ai换脸| 99精品视频免费在线观看| 麻豆91精品视频| 亚洲一区在线观看视频| 中文字幕免费在线观看视频一区| 欧美一区二区高清| 色狠狠一区二区三区香蕉| 国产东北露脸精品视频| 石原莉奈一区二区三区在线观看| 国产精品久久一卡二卡| 精品国产伦一区二区三区观看方式| 在线精品视频一区二区三四| 成人免费毛片app| 麻豆精品一二三| 婷婷夜色潮精品综合在线| 亚洲精品综合在线| 中文欧美字幕免费| 久久久久国产精品厨房| 日韩精品一区二区三区四区视频| 欧美性xxxxxx少妇| 91浏览器打开| av中文字幕一区| 国产精品99久久久久久久女警| 美美哒免费高清在线观看视频一区二区 | 国产蜜臀97一区二区三区| 欧美成人性战久久| 制服丝袜av成人在线看| 国产精品国产三级国产aⅴ原创 | 欧美亚男人的天堂| 97se亚洲国产综合自在线观| 国产成人综合在线观看| 国产一区福利在线| 久草热8精品视频在线观看| 天使萌一区二区三区免费观看| 亚洲自拍偷拍综合| 亚洲蜜臀av乱码久久精品 | 91精品一区二区三区在线观看| 欧美最新大片在线看 | 国产在线国偷精品产拍免费yy| 人人超碰91尤物精品国产| 午夜精品福利一区二区蜜股av| 伊人夜夜躁av伊人久久| 一区二区三区在线视频观看 | 精品国产乱码久久| 日韩精品一区二区三区在线 | 欧美一区二区三区免费大片| 欧美日韩黄色一区二区| 欧美日韩精品一区二区| 欧美日韩精品一区二区三区| 欧美精品在线观看播放| 91麻豆精品国产91久久久| 在线综合亚洲欧美在线视频| 91精品国产综合久久福利 | 97se狠狠狠综合亚洲狠狠| jlzzjlzz亚洲日本少妇| 99久久99精品久久久久久| 91亚洲精品久久久蜜桃| 91美女蜜桃在线| 91久久奴性调教| 一个色综合av| 亚洲福利一二三区| 日韩电影网1区2区| 狂野欧美性猛交blacked| 精品系列免费在线观看| 国产盗摄精品一区二区三区在线 | 久久精品99国产精品日本| 狠狠色丁香婷婷综合久久片| 国产精品99久久久久久似苏梦涵| 成人一二三区视频| 色狠狠色狠狠综合| 欧美日本乱大交xxxxx| 欧美成人一区二区| 国产欧美在线观看一区| 亚洲欧洲99久久| 亚洲午夜在线视频| 蜜臂av日日欢夜夜爽一区| 国产美女一区二区三区| av电影一区二区| 欧日韩精品视频| 欧美sm美女调教| 国产精品丝袜久久久久久app| 亚洲精品乱码久久久久久黑人| 五月激情综合网| 国产一区在线精品| 97aⅴ精品视频一二三区| 精品视频在线看| 久久人人97超碰com| 国产精品不卡一区二区三区| 亚洲图片欧美视频| 国内久久精品视频| 色综合久久精品| 91精品国产91久久综合桃花| 亚洲国产精华液网站w| 亚洲在线中文字幕| 国产在线一区观看| 一本高清dvd不卡在线观看|