From 449c012c68dbc47a66d60a911fdc628198e1d973 Mon Sep 17 00:00:00 2001
From: Steve Murphy <murf@digium.com>
Date: Wed, 12 Nov 2008 19:47:29 +0000
Subject: [PATCH] Merged revisions 156297 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r156297 | murf | 2008-11-12 12:36:16 -0700 (Wed, 12 Nov 2008) | 18 lines

It turns out that the 0x0XX00 codes being returned for
N, X, and Z are off by one, as per conversation with
jsmith on #asterisk-dev;  he was teaching a class
and disconcerted that this published rule was not
being followed, with patterns _NXX, _[1-8]22 and
_[2-9]22... and NXX was winning, but [1-8] should
have been.

This change, tested on these 3 patterns now
picks the proper one.

However, this change may surprise users who
set up dialplans based on previous behavior,
which has been there for what, 2 and half
years or so now.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/pbx.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/main/pbx.c b/main/pbx.c
index f38b7a0f12..b24cd2eae7 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -2081,13 +2081,13 @@ static int ext_cmp1(const char **p)
 		return 0x0000 | (c & 0xff);
 
 	case 'N':	/* 2..9 */
-		return 0x0700 | '2' ;
+		return 0x0800 | '2' ;
 
 	case 'X':	/* 0..9 */
-		return 0x0900 | '0';
+		return 0x0A00 | '0';
 
 	case 'Z':	/* 1..9 */
-		return 0x0800 | '1';
+		return 0x0900 | '1';
 
 	case '.':	/* wildcard */
 		return 0x10000;
-- 
GitLab