mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	The behavior of REGEX when it did not match was not defined by the docs, so
define it to provide a result of "0" and change the code appropriately. (issue #7805) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -115,7 +115,7 @@ static int regex(struct ast_channel *chan, char *cmd, char *parse, char *buf, | ||||
| 	int errcode; | ||||
| 	regex_t regexbuf; | ||||
|  | ||||
| 	buf[0] = '\0'; | ||||
| 	buf[0] = '0'; | ||||
|  | ||||
| 	AST_NONSTANDARD_APP_ARGS(args, parse, '"'); | ||||
|  | ||||
| @@ -130,10 +130,10 @@ static int regex(struct ast_channel *chan, char *cmd, char *parse, char *buf, | ||||
| 		regerror(errcode, ®exbuf, buf, len); | ||||
| 		ast_log(LOG_WARNING, "Malformed input %s(%s): %s\n", cmd, parse, buf); | ||||
| 		return -1; | ||||
| 	} else { | ||||
| 		if (!regexec(®exbuf, args.str, 0, NULL, 0)) | ||||
| 			strcpy(buf, "1"); | ||||
| 	} | ||||
| 	 | ||||
| 	strcpy(buf, regexec(®exbuf, args.str, 0, NULL, 0) ? "0" : "1"); | ||||
|  | ||||
| 	regfree(®exbuf); | ||||
|  | ||||
| 	return 0; | ||||
| @@ -141,8 +141,8 @@ static int regex(struct ast_channel *chan, char *cmd, char *parse, char *buf, | ||||
|  | ||||
| static struct ast_custom_function regex_function = { | ||||
| 	.name = "REGEX", | ||||
| 	.synopsis = | ||||
| 		"Regular Expression: Returns 1 if data matches regular expression.", | ||||
| 	.synopsis = "Regular Expression", | ||||
| 	.desc =  "Returns 1 if data matches regular expression, or 0 otherwise.", | ||||
| 	.syntax = "REGEX(\"<regular expression>\" <data>)", | ||||
| 	.read = regex, | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user