From c991f6acf196c6580b82ecdf67d3b901e728511e Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Fri, 8 Oct 2004 15:49:37 +0000 Subject: [PATCH] Don't strip bracketed hyphens (bug #2608) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3951 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- callerid.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/callerid.c b/callerid.c index d88822a2ad..7fd0641147 100755 --- a/callerid.c +++ b/callerid.c @@ -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'; }