Don't strip bracketed hyphens (bug #2608)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Mark Spencer 21 years ago
parent a1e87f11eb
commit c991f6acf1

@ -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';
}

Loading…
Cancel
Save