[svn-commits] murf: trunk r164801 - /trunk/main/pbx.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Dec 16 14:04:47 CST 2008


Author: murf
Date: Tue Dec 16 14:04:46 2008
New Revision: 164801

URL: http://svn.digium.com/view/asterisk?view=rev&rev=164801
Log:
(closes issue #14076)
Reported by: toc
Tested by: murf

OK, Well this issue has had its share of flip-flopping.
I found the following:

1. the code in question, in ext_cmp1 in pbx.c, would not
allow two extensions that vary only by any dashes contained
within them, to be defined in the same context.

2. for input dialstrings, dashes are NOT ignored.
So, skipping them when sorting patterns seemed a bit silly.
Thus, you might declare ext 891 in a context, but
if you try dialing 8-9-1, it will NOT match 891.

So, I proposed to remove the code from ext_cmp1 to 
skip the spaces and dashes. Just kept us from 
declaring 891 and 8-9-1 in the same context,
forcing users to generate otherwise uselessly
obfuscated dialplan code to get the same effect.

Then, I tried out 1.4, and found that:

1. you can declare 891 and 8-9-1 in the
same context!

2. You can't define 891, and have 8-9-1 match
it! Nor can you define 8-9-1, and have 891
match it!

So, it appears that my proposal simply restores
the pbx to behaving as it did in 1.4.



Modified:
    trunk/main/pbx.c

Modified: trunk/main/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/main/pbx.c?view=diff&rev=164801&r1=164800&r2=164801
==============================================================================
--- trunk/main/pbx.c (original)
+++ trunk/main/pbx.c Tue Dec 16 14:04:46 2008
@@ -2017,8 +2017,6 @@
  * Special characters used in patterns:
  *	'_'	underscore is the leading character of a pattern.
  *		In other position it is treated as a regular char.
- *	' ' '-'	space and '-' are separator and ignored. Why? so
- *	        patterns like NXX-XXX-XXXX or NXX XXX XXXX will work.
  *	.	one or more of any character. Only allowed at the end of
  *		a pattern.
  *	!	zero or more of anything. Also impacts the result of CANMATCH
@@ -2041,8 +2039,7 @@
  *		considered specially.
  *
  * When we compare a pattern with a specific extension, all characters in the extension
- * itself are considered literally with the only exception of '-' which is considered
- * as a separator and thus ignored.
+ * itself are considered literally.
  * XXX do we want to consider space as a separator as well ?
  * XXX do we want to consider the separators in non-patterns as well ?
  */
@@ -2079,8 +2076,7 @@
 	/* load, sign extend and advance pointer until we find
 	 * a valid character.
 	 */
-	while ( (c = *(*p)++) && (c == ' ' || c == '-') )
-		;	/* ignore some characters */
+	c = *(*p)++;
 
 	/* always return unless we have a set of chars */
 	switch (toupper(c)) {




More information about the svn-commits mailing list