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

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

?? pval.c

?? asterisk 是一個很有知名度開源軟件
?? C
?? 第 1 頁 / 共 5 頁
字號:
	/* Check for all days */	if (ast_strlen_zero(dow) || !strcmp(dow, "*"))		return;	/* Get start and ending days */	c = strchr(dow, '-');	if (c) {		*c = '\0';		c++;	} else		c = NULL;	/* Find the start */	s = 0;	while ((s < 7) && strcasecmp(dow, days[s])) s++;	if (s >= 7) {		ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The day (%s) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!\n",				DOW->filename, DOW->startline, DOW->endline, dow);		warns++;	}	if (c) {		e = 0;		while ((e < 7) && strcasecmp(c, days[e])) e++;		if (e >= 7) {			ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end day (%s) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!\n",					DOW->filename, DOW->startline, DOW->endline, c);			warns++;		}	} else		e = s;}static void check_day(pval *DAY){	char *day;	char *c;	/* The following line is coincidence, really! */	int s, e;	day = ast_strdupa(DAY->u1.str);	/* Check for all days */	if (ast_strlen_zero(day) || !strcmp(day, "*")) {		return;	}	/* Get start and ending days */	c = strchr(day, '-');	if (c) {		*c = '\0';		c++;	}	/* Find the start */	if (sscanf(day, "%d", &s) != 1) {		ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The start day of month (%s) must be a number!\n",				DAY->filename, DAY->startline, DAY->endline, day);		warns++;	}	else if ((s < 1) || (s > 31)) {		ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The start day of month (%s) must be a number in the range [1-31]!\n",				DAY->filename, DAY->startline, DAY->endline, day);		warns++;	}	s--;	if (c) {		if (sscanf(c, "%d", &e) != 1) {			ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end day of month (%s) must be a number!\n",					DAY->filename, DAY->startline, DAY->endline, c);			warns++;		}		else if ((e < 1) || (e > 31)) {			ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end day of month (%s) must be a number in the range [1-31]!\n",					DAY->filename, DAY->startline, DAY->endline, day);			warns++;		}		e--;	} else		e = s;}static char *months[] ={	"jan",	"feb",	"mar",	"apr",	"may",	"jun",	"jul",	"aug",	"sep",	"oct",	"nov",	"dec",};static void check_month(pval *MON){	char *mon;	char *c;	/* The following line is coincidence, really! */	int s, e;	mon = ast_strdupa(MON->u1.str);	/* Check for all days */	if (ast_strlen_zero(mon) || !strcmp(mon, "*")) 		return ;	/* Get start and ending days */	c = strchr(mon, '-');	if (c) {		*c = '\0';		c++;	}	/* Find the start */	s = 0;	while ((s < 12) && strcasecmp(mon, months[s])) s++;	if (s >= 12) {		ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The start month (%s) must be a one of: 'jan', 'feb', ..., 'dec'!\n",				MON->filename, MON->startline, MON->endline, mon);		warns++;	}	if (c) {		e = 0;		while ((e < 12) && strcasecmp(mon, months[e])) e++;		if (e >= 12) {			ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end month (%s) must be a one of: 'jan', 'feb', ..., 'dec'!\n",					MON->filename, MON->startline, MON->endline, c);			warns++;		}	} else		e = s;}static int check_break(pval *item){	pval *p = item;		while( p && p->type != PV_MACRO && p->type != PV_CONTEXT ) /* early cutout, sort of */ {		/* a break is allowed in WHILE, FOR, CASE, DEFAULT, PATTERN; otherwise, it don't make		   no sense */		if( p->type == PV_CASE || p->type == PV_DEFAULT || p->type == PV_PATTERN 			|| p->type == PV_WHILE || p->type == PV_FOR   ) {			return 1;		}		p = p->dad;	}	ast_log(LOG_ERROR,"Error: file %s, line %d-%d: 'break' not in switch, for, or while statement!\n",			item->filename, item->startline, item->endline);	errs++;		return 0;}static int check_continue(pval *item){	pval *p = item;		while( p && p->type != PV_MACRO && p->type != PV_CONTEXT ) /* early cutout, sort of */ {		/* a break is allowed in WHILE, FOR, CASE, DEFAULT, PATTERN; otherwise, it don't make		   no sense */		if( p->type == PV_WHILE || p->type == PV_FOR   ) {			return 1;		}		p = p->dad;	}	ast_log(LOG_ERROR,"Error: file %s, line %d-%d: 'continue' not in 'for' or 'while' statement!\n",			item->filename, item->startline, item->endline);	errs++;		return 0;}static struct pval *in_macro(pval *item){	struct pval *curr;	curr = item;		while( curr ) {		if( curr->type == PV_MACRO  ) {			return curr;		}		curr = curr->dad;	}	return 0;}static struct pval *in_context(pval *item){	struct pval *curr;	curr = item;		while( curr ) {		if( curr->type == PV_MACRO || curr->type == PV_CONTEXT ) {			return curr;		}		curr = curr->dad;	}	return 0;}/* general purpose goto finder */static void check_label(pval *item){	struct pval *curr;	struct pval *x;	int alright = 0;		/* A label outside an extension just plain does not make sense! */		curr = item;		while( curr ) {		if( curr->type == PV_MACRO || curr->type == PV_EXTENSION   ) {			alright = 1;			break;		}		curr = curr->dad;	}	if( !alright )	{		ast_log(LOG_ERROR,"Error: file %s, line %d-%d: Label %s is not within an extension or macro!\n",				item->filename, item->startline, item->endline, item->u1.str);		errs++;		}			/* basically, ensure that a label is not repeated in a context. Period.	   The method:  well, for each label, find the first label in the context	   with the same name. If it's not the current label, then throw an error. */		/* printf("==== check_label:   ====\n"); */	if( !current_extension )		curr = current_context;	else		curr = current_extension;		x = find_first_label_in_current_context((char *)item->u1.str, curr);	/* printf("Hey, check_label found with item = %x, and x is %x, and currcont is %x, label name is %s\n", item,x, current_context, (char *)item->u1.str); */	if( x && x != item )	{		ast_log(LOG_ERROR,"Error: file %s, line %d-%d: Duplicate label %s! Previously defined at file %s, line %d.\n",				item->filename, item->startline, item->endline, item->u1.str, x->filename, x->startline);		errs++;	}	/* printf("<<<<< check_label:   ====\n"); */}static pval *get_goto_target(pval *item){	/* just one item-- the label should be in the current extension */	pval *curr_ext = get_extension_or_contxt(item); /* containing exten, or macro */	pval *curr_cont;		if (item->u1.list && !item->u1.list->next && !strstr((item->u1.list)->u1.str,"${")) {		struct pval *x = find_label_in_current_extension((char*)((item->u1.list)->u1.str), curr_ext);			return x;	}	curr_cont = get_contxt(item);	/* TWO items */	if (item->u1.list->next && !item->u1.list->next->next) {		if (!strstr((item->u1.list)->u1.str,"${") 			&& !strstr(item->u1.list->next->u1.str,"${") ) /* Don't try to match variables */ {			struct pval *x = find_label_in_current_context((char *)item->u1.list->u1.str, (char *)item->u1.list->next->u1.str, curr_cont);				return x;		}	}		/* All 3 items! */	if (item->u1.list->next && item->u1.list->next->next) {		/* all three */		pval *first = item->u1.list;		pval *second = item->u1.list->next;		pval *third = item->u1.list->next->next;				if (!strstr((item->u1.list)->u1.str,"${") 			&& !strstr(item->u1.list->next->u1.str,"${")			&& !strstr(item->u1.list->next->next->u1.str,"${")) /* Don't try to match variables */ {			struct pval *x = find_label_in_current_db((char*)first->u1.str, (char*)second->u1.str, (char*)third->u1.str);			if (!x) {				struct pval *p3;				struct pval *that_context = find_context(item->u1.list->u1.str);								/* the target of the goto could be in an included context!! Fancy that!! */				/* look for includes in the current context */				if (that_context) {					for (p3=that_context->u2.statements; p3; p3=p3->next) {						if (p3->type == PV_INCLUDES) {							struct pval *p4;							for (p4=p3->u1.list; p4; p4=p4->next) {								/* for each context pointed to, find it, then find a context/label that matches the								   target here! */								char *incl_context = p4->u1.str;								/* find a matching context name */								struct pval *that_other_context = find_context(incl_context);								if (that_other_context) {									struct pval *x3;									x3 = find_label_in_current_context((char *)item->u1.list->next->u1.str, (char *)item->u1.list->next->next->u1.str, that_other_context);									if (x3) {										return x3;									}								}							}						}					}				}			}			return x;		}	}	return 0;}static void check_goto(pval *item){	/* check for the target of the goto-- does it exist? */	if ( !(item->u1.list)->next && !(item->u1.list)->u1.str ) {		ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  empty label reference found!\n",				item->filename, item->startline, item->endline);		errs++;	}		/* just one item-- the label should be in the current extension */		if (item->u1.list && !item->u1.list->next && !strstr((item->u1.list)->u1.str,"${")) {		struct pval *z = get_extension_or_contxt(item);		struct pval *x = 0;		if (z)			x = find_label_in_current_extension((char*)((item->u1.list)->u1.str), z); /* if in macro, use current context instead */		/* printf("Called find_label_in_current_extension with arg %s; current_extension is %x: %d\n",		   (char*)((item->u1.list)->u1.str), current_extension?current_extension:current_context, current_extension?current_extension->type:current_context->type); */		if (!x) {			ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  no label %s exists in the current extension!\n",					item->filename, item->startline, item->endline, item->u1.list->u1.str);			errs++;		}		else			return;	}		/* TWO items */	if (item->u1.list->next && !item->u1.list->next->next) {		/* two items */		/* printf("Calling find_label_in_current_context with args %s, %s\n",		   (char*)((item->u1.list)->u1.str), (char *)item->u1.list->next->u1.str); */		if (!strstr((item->u1.list)->u1.str,"${") 			&& !strstr(item->u1.list->next->u1.str,"${") ) /* Don't try to match variables */ {			struct pval *z = get_contxt(item);			struct pval *x = 0;						if (z)				x = find_label_in_current_context((char *)item->u1.list->u1.str, (char *)item->u1.list->next->u1.str, z);			if (!x) {				ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  no label '%s,%s' exists in the current context, or any of its inclusions!\n",						item->filename, item->startline, item->endline, item->u1.list->u1.str, item->u1.list->next->u1.str );				errs++;			}			else				return;		}	}		/* All 3 items! */	if (item->u1.list->next && item->u1.list->next->next) {		/* all three */		pval *first = item->u1.list;		pval *second = item->u1.list->next;		pval *third = item->u1.list->next->next;				/* printf("Calling find_label_in_current_db with args %s, %s, %s\n",		   (char*)first->u1.str, (char*)second->u1.str, (char*)third->u1.str); */		if (!strstr((item->u1.list)->u1.str,"${") 			&& !strstr(item->u1.list->next->u1.str,"${")			&& !strstr(item->u1.list->next->next->u1.str,"${")) /* Don't try to match variables */ {			struct pval *x = find_label_in_current_db((char*)first->u1.str, (char*)second->u1.str, (char*)third->u1.str);			if (!x) {				struct pval *p3;				struct pval *found = 0;				struct pval *that_context = find_context(item->u1.list->u1.str);								/* the target of the goto could be in an included context!! Fancy that!! */				/* look for includes in the current context */				if (that_context) {					for (p3=that_context->u2.statements; p3; p3=p3->next) {						if (p3->type == PV_INCLUDES) {							struct pval *p4;							for (p4=p3->u1.list; p4; p4=p4->next) {								/* for each context pointed to, find it, then find a context/label that matches the								   target here! */								char *incl_context = p4->u1.str;								/* find a matching context name */								struct pval *that_other_context = find_context(incl_context);								if (that_other_context) {									struct pval *x3;									x3 = find_label_in_current_context((char *)item->u1.list->next->u1.str, (char *)item->u1.list->next->next->u1.str, that_other_context);									if (x3) {										found = x3;										break;									}								}							}						}					}					if (!found) {						ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  no label %s|%s exists in the context %s or its inclusions!\n",								item->filename, item->startline, item->endline, item->u1.list->next->u1.str, item->u1.list->next->next->u1.str, item->u1.list->u1.str );						errs++;					} else {						struct pval *mac = in_macro(item); /* is this goto inside a macro? */						if( mac ) {    /* yes! */							struct pval *targ = in_context(found);							if( mac != targ )							{								ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",										item->filename, item->startline, item->endline);								warns++;															}						}					}				} else {					/* here is where code would go to check for target existence in extensions.conf files */#ifdef STANDALONE					struct pbx_find_info pfiq = {.stacklen = 0 };					extern int localized_pbx_load_module(void);					/* if this is a standalone, we will need to make sure the 					   localized load of extensions.conf is done */					if (!extensions_dot_conf_loaded) {						localized_pbx_load_module();						extensions_dot_conf_loaded++;					}					pbx_find_extension(NULL, NULL, &pfiq, first->u1.str, second->u1.str, atoi(third->u1.str),											atoi(third->u1.str) ? NULL : third->u1.str, NULL, 											atoi(third->u1.str) ? E_MATCH : E_FINDLABEL);										if (pfiq.status != STATUS_SUCCESS) {						ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: goto:  Couldn't find goto target %s|%s|%s, not even in extensions.conf!\n",								item->filename, item->startline, item->endline, first->u1.str, second->u1.str, third->u1.str);						warns++;					}#else					ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: goto:  Couldn't find goto target %s|%s|%s in the AEL code!\n",							item->filename, item->startline, item->endline, first->u1.str, second->u1.str, third->u1.str);					warns++;#endif				}			} else {				struct pval *mac = in_macro(item); /* is this goto inside a macro? */				if( mac ) {    /* yes! */					struct pval *targ = in_context(x);					if( mac != targ )					{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av中文字幕一区二区三区 | 一区二区三区中文免费| 性久久久久久久久久久久| 国产一区二区三区美女| 欧美日韩免费视频| 国产精品久久久久毛片软件| 久久精品国产免费| 欧美色图激情小说| 亚洲女子a中天字幕| 粉嫩av亚洲一区二区图片| 欧美一区二区久久久| 一区二区三区加勒比av| 成人天堂资源www在线| 亚洲精品在线观看网站| 日韩不卡一二三区| 欧美亚洲综合网| 国产精品高潮呻吟久久| 成人一区在线观看| 久久午夜色播影院免费高清| 美女mm1313爽爽久久久蜜臀| 555www色欧美视频| 亚洲一区视频在线| 色爱区综合激月婷婷| 亚洲婷婷综合久久一本伊一区| 国产成人免费网站| 久久你懂得1024| 国产高清一区日本| 久久精品亚洲精品国产欧美kt∨| 久久成人免费网站| 精品少妇一区二区三区在线播放| 秋霞午夜av一区二区三区| 欧美一级在线免费| 美女脱光内衣内裤视频久久网站 | 久久精品一区二区三区av| 久久99精品久久只有精品| 精品久久久久久久人人人人传媒 | 天天做天天摸天天爽国产一区| 色丁香久综合在线久综合在线观看| 亚洲日本韩国一区| 91黄色免费看| 日韩成人av影视| 久久免费看少妇高潮| 国产麻豆午夜三级精品| 国产欧美精品在线观看| 成人免费黄色在线| 亚洲女性喷水在线观看一区| 在线观看免费成人| 日本美女一区二区三区视频| 日韩欧美第一区| 国产乱子轮精品视频| 久久精品夜色噜噜亚洲aⅴ| av亚洲精华国产精华精华| 伊人婷婷欧美激情| 欧美精品tushy高清| 久久99国产精品久久99| 国产精品―色哟哟| 欧美视频中文字幕| 久久精品国产亚洲a| 国产精品国产三级国产aⅴ入口| 在线精品亚洲一区二区不卡| 美女诱惑一区二区| 综合分类小说区另类春色亚洲小说欧美 | 色综合一区二区| 日韩国产精品久久| 亚洲国产电影在线观看| 欧美日韩色一区| 国产成人亚洲综合a∨婷婷图片| 亚洲视频一二三| 欧美一级免费大片| 成人av网站在线| 日韩在线播放一区二区| 国产精品无遮挡| 91麻豆精品91久久久久同性| 国产精品456| 亚洲1区2区3区视频| 国产欧美日韩综合精品一区二区| 91福利视频久久久久| 国产剧情在线观看一区二区| 亚洲最大色网站| 久久精品视频一区| 欧美三级电影在线观看| av电影在线观看一区| 麻豆久久一区二区| 亚洲在线视频网站| 国产精品嫩草99a| 欧美成人福利视频| 欧美日韩国产美| 色综合久久88色综合天天6| 一本大道久久a久久综合婷婷| 美女在线一区二区| 五月综合激情网| 亚洲男同性视频| 国产精品电影一区二区| 久久久久国产免费免费| 日韩欧美三级在线| 欧美色老头old∨ideo| 91在线观看免费视频| 狠狠久久亚洲欧美| 另类综合日韩欧美亚洲| 亚洲一卡二卡三卡四卡| 国产精品对白交换视频| 国产精品天美传媒| 久久免费美女视频| 国产亚洲精品福利| 久久久久久久久久美女| 欧美tickling网站挠脚心| 欧美一区二区大片| 91精品中文字幕一区二区三区| 欧美丝袜自拍制服另类| 欧美中文字幕一二三区视频| 日本精品免费观看高清观看| 色综合久久久久综合体| 99精品欧美一区二区三区综合在线| 大白屁股一区二区视频| 成人免费视频免费观看| 波多野结衣欧美| 成人av资源在线观看| 99精品国产热久久91蜜凸| 99久久精品国产观看| 91在线观看视频| 91国内精品野花午夜精品| 欧美三级韩国三级日本一级| 欧美喷潮久久久xxxxx| 欧美日韩视频在线第一区| 7777精品伊人久久久大香线蕉完整版| 欧美日韩高清一区二区不卡| 欧美一级黄色大片| 精品国一区二区三区| 国产精品全国免费观看高清| 国产精品天美传媒| 亚洲国产精品视频| 美洲天堂一区二卡三卡四卡视频 | 免费人成黄页网站在线一区二区| 秋霞电影一区二区| 国产精品一二三区| 99国产精品久久| 欧美日韩一区二区三区高清| 3atv在线一区二区三区| 精品久久久久久最新网址| 国产精品国产自产拍高清av王其| 亚洲欧美日韩成人高清在线一区| 亚洲图片一区二区| 久久不见久久见免费视频7| 成人永久aaa| 欧美三区免费完整视频在线观看| 日韩欧美你懂的| 亚洲日本免费电影| 久久福利资源站| 91麻豆免费看| 亚洲精品在线观| 亚洲中国最大av网站| 韩国毛片一区二区三区| 91麻豆免费看片| 久久精品一区二区三区不卡牛牛| 亚洲精品第一国产综合野| 久久超级碰视频| 日本道色综合久久| 国产亚洲精品中文字幕| 日韩国产精品久久| 91成人免费在线视频| 久久久精品黄色| 奇米888四色在线精品| 91在线小视频| 国产午夜一区二区三区| 日日夜夜精品视频天天综合网| 成人美女视频在线看| 日韩欧美的一区二区| 亚洲成av人片在线观看| youjizz久久| 亚洲精品一区二区在线观看| 亚洲国产欧美一区二区三区丁香婷| 久久成人免费网| 91精品国产综合久久福利软件| 亚洲色图视频网站| 高清不卡一区二区| 日韩精品一区二区三区视频| 亚洲成av人片一区二区| 色诱亚洲精品久久久久久| 国产丝袜美腿一区二区三区| 精品一区二区免费视频| 欧美一区二区三区日韩视频| 一区二区三区四区精品在线视频| 成人美女在线视频| 中文字幕 久热精品 视频在线| 久久99久久99小草精品免视看| 69av一区二区三区| 天天色图综合网| 欧美精品一二三区| 三级亚洲高清视频| 欧美一区日本一区韩国一区| 亚洲午夜影视影院在线观看| 色猫猫国产区一区二在线视频| 中文字幕一区二区三区精华液 | 一区二区三区中文字幕精品精品 | 国产人妖乱国产精品人妖| 捆绑紧缚一区二区三区视频| 欧美一区二区三区四区高清 | 91美女视频网站| 国产精品久久久一本精品| 成人黄色在线网站|