]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Don't strip bracketed hyphens (bug #2608)
authorMark Spencer <markster@digium.com>
Fri, 8 Oct 2004 15:49:37 +0000 (15:49 +0000)
committerMark Spencer <markster@digium.com>
Fri, 8 Oct 2004 15:49:37 +0000 (15:49 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3951 65c4cc65-6c06-0410-ace0-fbb531ad65f3

callerid.c

index d88822a2ad1957f3fd01a96f8b7087d73a9999d0..7fd0641147850b29b8973a3983b75e660355a907 100755 (executable)
@@ -574,9 +574,26 @@ int callerid_generate(unsigned char *buf, char *number, char *name, int flags, i
 void ast_shrink_phone_number(char *n)
 {
        int x,y=0;
-       for (x=0;n[x];x++)
-               if (!strchr("( )-.", n[x]))
+       int bracketed=0;
+       for (x=0;n[x];x++) {
+               switch(n[x]) {
+               case '[':
+                       bracketed++;
+                       n[y++] = n[x];
+                       break;
+               case ']':
+                       bracketed--;
                        n[y++] = n[x];
+                       break;
+               case '-':
+                       if (bracketed)
+                               n[y++] = n[x];
+                       break;
+               default:
+                       if (!strchr("( ).", n[x]))
+                               n[y++] = n[x];
+               }
+       }
        n[y] = '\0';
 }