Allow space within an extension, when the space is within a character class.
authorTilghman Lesher <tilghman@meg.abyt.es>
Fri, 21 Nov 2008 23:33:22 +0000 (23:33 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Fri, 21 Nov 2008 23:33:22 +0000 (23:33 +0000)
(requested by lmadsen on -dev, patch by me)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158605 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index 2621aa1..d765b41 100644 (file)
@@ -7228,18 +7228,19 @@ int ast_async_goto_by_name(const char *channame, const char *context, const char
 static int ext_strncpy(char *dst, const char *src, int len)
 {
        int count = 0;
+       int insquares = 0;
 
        while (*src && (count < len - 1)) {
-               switch (*src) {
-               case ' ':
-                       /*      otherwise exten => [a-b],1,... doesn't work */
-                       /*              case '-': */
-                       /* Ignore */
-                       break;
-               default:
-                       *dst = *src;
-                       dst++;
+               if (*src == '[') {
+                       insquares = 1;
+               } else if (*src == ']') {
+                       insquares = 0;
+               } else if (*src == ' ' && !insquares) {
+                       src++;
+                       continue;
                }
+               *dst = *src;
+               dst++;
                src++;
                count++;
        }