diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-11-30 19:20:28 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-11-30 19:20:28 +0000 |
commit | 8e67fa9daa13340eeb1a31dd888b92e6ae07ff16 (patch) | |
tree | bb1e77320c0ff7ab6b090ad2d28509e0335f044d /apps/app_hasnewvoicemail.c | |
parent | d8edf984a5b0e5756d8b18afe3155391dd010da6 (diff) |
convert VMCOUNT function to use new app args parsing macros (issue #5688)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7235 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_hasnewvoicemail.c')
-rw-r--r-- | apps/app_hasnewvoicemail.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/apps/app_hasnewvoicemail.c b/apps/app_hasnewvoicemail.c index 740975dd0..7ce8a9132 100644 --- a/apps/app_hasnewvoicemail.c +++ b/apps/app_hasnewvoicemail.c @@ -179,34 +179,37 @@ static int hasvoicemail_exec(struct ast_channel *chan, void *data) static char *acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) { struct localuser *u; - char *args, *context, *box, *folder; + char *argsstr, *context; + AST_DECLARE_APP_ARGS(args, + AST_APP_ARG(vmbox); + AST_APP_ARG(folder); + ); LOCAL_USER_ACF_ADD(u); buf[0] = '\0'; - args = ast_strdupa(data); - if (!args) { + argsstr = ast_strdupa(data); + if (!argsstr) { ast_log(LOG_ERROR, "Out of memory"); LOCAL_USER_REMOVE(u); return buf; } - box = strsep(&args, "|"); - if (strchr(box, '@')) { - context = box; - box = strsep(&context, "@"); + AST_STANDARD_APP_ARGS(args, argsstr); + + if (strchr(args.vmbox, '@')) { + context = args.vmbox; + args.vmbox = strsep(&context, "@"); } else { context = "default"; } - if (args) { - folder = args; - } else { - folder = "INBOX"; + if (ast_strlen_zero(args.folder)) { + args.folder = "INBOX"; } - snprintf(buf, len, "%d", hasvoicemail_internal(context, box, folder)); + snprintf(buf, len, "%d", hasvoicemail_internal(context, args.vmbox, args.folder)); LOCAL_USER_REMOVE(u); |