[asterisk-commits] trunk r10106 - /trunk/apps/app_sayunixtime.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue Feb 14 17:33:08 MST 2006


Author: kpfleming
Date: Tue Feb 14 18:33:07 2006
New Revision: 10106

URL: http://svn.digium.com/view/asterisk?rev=10106&view=rev
Log:
update app to use args parser

Modified:
    trunk/apps/app_sayunixtime.c

Modified: trunk/apps/app_sayunixtime.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_sayunixtime.c?rev=10106&r1=10105&r2=10106&view=diff
==============================================================================
--- trunk/apps/app_sayunixtime.c (original)
+++ trunk/apps/app_sayunixtime.c Tue Feb 14 18:33:07 2006
@@ -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 <app_sayunixtime__200309 at the-tilghman.com>
  *
@@ -40,7 +41,7 @@
 #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 @@
 
 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;
 }
 



More information about the asterisk-commits mailing list