From c8011a5d52342dfa67cc1360440c358f152add57 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 10 Dec 2007 21:58:40 +0000 Subject: [PATCH] add local vars with [] git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6609 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_utils.h | 1 + src/switch_utils.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 1d090b2941..5025ce2114 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -341,6 +341,7 @@ SWITCH_DECLARE(switch_status_t) switch_string_match(const char *string, size_t s SWITCH_DECLARE(size_t) switch_url_encode(const char *url, char *buf, size_t len); SWITCH_DECLARE(char *) switch_url_decode(char *s); SWITCH_DECLARE(switch_bool_t) switch_simple_email(const char *to, const char *from, const char *headers, const char *body, const char *file); +SWITCH_DECLARE(char *) switch_find_end_paren(const char *s, char open, char close); /* malloc or DIE macros */ #ifdef NDEBUG diff --git a/src/switch_utils.c b/src/switch_utils.c index b8d7e7a9e2..47549a68d2 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -36,6 +36,33 @@ #include "private/switch_core_pvt.h" +SWITCH_DECLARE(char *) switch_find_end_paren(const char *s, char open, char close) +{ + const char *e = NULL; + int depth = 0; + + while (s && *s && *s == ' ') { + s++; + } + + if (*s == open) { + depth++; + for (e = s + 1; e && *e; e++) { + if (*e == open) { + depth++; + } else if (*e == close) { + depth--; + if (!depth) { + break; + } + } + } + } + + return (char *)e; +} + + SWITCH_DECLARE(switch_size_t) switch_fd_read_line(int fd, char *buf, switch_size_t len) { char c, *p;