aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_voicemail.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-03 21:19:11 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-03 21:19:11 +0000
commitae35e4e0699024320c2dad11183f2a67722199fc (patch)
treea19e61a8350d758d17e083cc2fec05d0df4dc022 /apps/app_voicemail.c
parentcee4c00add38082410d2e79d3f640b516783fa77 (diff)
major update to arg/option parsing APIs and documentation
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6953 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_voicemail.c')
-rwxr-xr-xapps/app_voicemail.c42
1 files changed, 23 insertions, 19 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index fab901590..1ab7dceff 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -107,21 +107,25 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#define ERROR_LOCK_PATH -100
-#define OPT_SILENT (1 << 0)
-#define OPT_BUSY_GREETING (1 << 1)
-#define OPT_UNAVAIL_GREETING (1 << 2)
-#define OPT_RECORDGAIN (1 << 3)
-#define OPT_PREPEND_MAILBOX (1 << 4)
-
-#define OPT_ARG_RECORDGAIN 0
-#define OPT_ARG_ARRAY_SIZE 1
-
-AST_DECLARE_OPTIONS(vm_app_options, {
- ['s'] = { .flag = OPT_SILENT },
- ['b'] = { .flag = OPT_BUSY_GREETING },
- ['u'] = { .flag = OPT_UNAVAIL_GREETING },
- ['g'] = { .flag = OPT_RECORDGAIN, .arg_index = OPT_ARG_RECORDGAIN + 1},
- ['p'] = { .flag = OPT_PREPEND_MAILBOX },
+enum {
+ OPT_SILENT =(1 << 0),
+ OPT_BUSY_GREETING = (1 << 1),
+ OPT_UNAVAIL_GREETING = (1 << 2),
+ OPT_RECORDGAIN = (1 << 3),
+ OPT_PREPEND_MAILBOX = (1 << 4),
+} vm_option_flags;
+
+enum {
+ OPT_ARG_RECORDGAIN = 0,
+ OPT_ARG_ARRAY_SIZE = 1,
+} vm_option_args;
+
+AST_APP_OPTIONS(vm_app_options, {
+ AST_APP_OPTION('s', OPT_SILENT),
+ AST_APP_OPTION('b', OPT_BUSY_GREETING),
+ AST_APP_OPTION('u', OPT_UNAVAIL_GREETING),
+ AST_APP_OPTION_ARG('g', OPT_RECORDGAIN, OPT_ARG_RECORDGAIN),
+ AST_APP_OPTION('p', OPT_PREPEND_MAILBOX),
});
static int load_config(void);
@@ -5033,9 +5037,9 @@ static int vm_execmain(struct ast_channel *chan, void *data)
char *opts[OPT_ARG_ARRAY_SIZE];
tmp = ast_strdupa(data);
- argc = ast_separate_app_args(tmp, '|', argv, sizeof(argv) / sizeof(argv[0]));
+ argc = ast_app_separate_args(tmp, '|', argv, sizeof(argv) / sizeof(argv[0]));
if (argc == 2) {
- if (ast_parseoptions(vm_app_options, &flags, opts, argv[1])) {
+ if (ast_app_parse_options(vm_app_options, &flags, opts, argv[1])) {
LOCAL_USER_REMOVE(u);
return -1;
}
@@ -5460,9 +5464,9 @@ static int vm_exec(struct ast_channel *chan, void *data)
if (!ast_strlen_zero(data)) {
ast_copy_string(tmp, data, sizeof(tmp));
- argc = ast_separate_app_args(tmp, '|', argv, sizeof(argv) / sizeof(argv[0]));
+ argc = ast_app_separate_args(tmp, '|', argv, sizeof(argv) / sizeof(argv[0]));
if (argc == 2) {
- if (ast_parseoptions(vm_app_options, &flags, opts, argv[1])) {
+ if (ast_app_parse_options(vm_app_options, &flags, opts, argv[1])) {
LOCAL_USER_REMOVE(u);
return -1;
}