From 5845408aab02324663ccff96bfd5d706a5742e13 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Wed, 15 Feb 2006 00:33:07 +0000 Subject: update app to use args parser git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10106 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_sayunixtime.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/apps/app_sayunixtime.c b/apps/app_sayunixtime.c index ad96c6d6f..9e0a0747d 100644 --- a/apps/app_sayunixtime.c +++ b/apps/app_sayunixtime.c @@ -2,6 +2,7 @@ * Asterisk -- An open source telephony toolkit. * * Copyright (c) 2003 Tilghman Lesher. All rights reserved. + * Copyright (c) 2006 Digium, Inc. * * Tilghman Lesher * @@ -40,7 +41,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/say.h" - +#include "asterisk/app.h" static char *tdesc = "Say time"; @@ -72,34 +73,39 @@ LOCAL_USER_DECL; static int sayunixtime_exec(struct ast_channel *chan, void *data) { - int res=0; + AST_DECLARE_APP_ARGS(args, + AST_APP_ARG(timeval); + AST_APP_ARG(timezone); + AST_APP_ARG(format); + ); + char *parse; + int res = 0; struct localuser *u; - char *s,*zone=NULL,*timec,*format; time_t unixtime; - s = ast_strdupa(data); - if (!s) - return data ? -1 : 0; + if (!data) + return 0; + + if (!(parse = ast_strdupa(data))) + return -1; + LOCAL_USER_ADD(u); - format = "c"; /* default datetime */ + args.format = "c"; /* default datetime */ - timec = strsep(&s,"|"); - ast_get_time_t(timec, &unixtime, time(NULL)); - if (s) { - zone = strsep(&s,"|"); - if (ast_strlen_zero(zone)) - zone = NULL; - } - if (s) /* override format */ - format = s; + AST_STANDARD_APP_ARGS(args, parse); + + ast_get_time_t(args.timeval, &unixtime, time(NULL)); if (chan->_state != AST_STATE_UP) res = ast_answer(chan); + if (!res) - res = ast_say_date_with_format(chan, unixtime, AST_DIGIT_ANY, chan->language, format, zone); + res = ast_say_date_with_format(chan, unixtime, AST_DIGIT_ANY, + chan->language, args.format, args.timezone); LOCAL_USER_REMOVE(u); + return res; } -- cgit v1.2.3