aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_math.c
diff options
context:
space:
mode:
authorcitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-03 15:59:52 +0000
committercitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-03 15:59:52 +0000
commitf60cf13e7f82d6e36727092f059f61cbb5530b8f (patch)
treed3642ae16cfeba46ac29041cdc5176873f7edf37 /apps/app_math.c
parent30571fa22731fc879f9f311ced9f5e0875ee5f4a (diff)
Cleanup formatting in app_math.c
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3896 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_math.c')
-rwxr-xr-xapps/app_math.c216
1 files changed, 98 insertions, 118 deletions
diff --git a/apps/app_math.c b/apps/app_math.c
index 481146dcb..7ea7c22f8 100755
--- a/apps/app_math.c
+++ b/apps/app_math.c
@@ -41,15 +41,12 @@
#include <sys/file.h>
#include "../astconf.h"
-
-
static char *tdesc = "Basic maths functions";
static char *app_math = "Math";
static char *math_synopsis = "Performs Mathematical Functions";
-
static char *math_descrip =
"Math(returnvar,<number1><op><number 2>\n\n"
"Perform floating point calculation on number 1 to number 2 and \n"
@@ -57,7 +54,6 @@ static char *math_descrip =
" +,-,/,*,%,<,>,>=,<=,==\n"
"and behave as their C equivalents. Always returns 0.\n";
-
#define ADDFUNCTION 0
#define DIVIDEFUNCTION 1
#define MULTIPLYFUNCTION 2
@@ -70,16 +66,14 @@ static char *math_descrip =
#define LTEFUNCTION 8
#define EQFUNCTION 9
-
-
STANDARD_LOCAL_USER;
LOCAL_USER_DECL;
-static int math_exec(struct ast_channel *chan, void *data) {
-
- float fnum1;
- float fnum2;
+static int math_exec(struct ast_channel *chan, void *data)
+{
+ float fnum1;
+ float fnum2;
float ftmp = 0;
char *op;
int iaction=-1;
@@ -87,25 +81,22 @@ static int math_exec(struct ast_channel *chan, void *data) {
/* dunno, big calulations :D */
char user_result[30];
- char *s;
- char *mvar, *mvalue1, *mvalue2=NULL;
-
- struct localuser *u;
-
- if (!data) {
- ast_log(LOG_WARNING, "No parameters passed. !\n");
- return -1;
- }
-
- LOCAL_USER_ADD(u);
+ char *s;
+ char *mvar, *mvalue1, *mvalue2=NULL;
+ struct localuser *u;
+ if (!data) {
+ ast_log(LOG_WARNING, "No parameters passed. !\n");
+ return -1;
+ }
+ LOCAL_USER_ADD(u);
+
s = ast_strdupa((void *) data);
-
- mvar = strsep(&s, "|");
- mvalue1 = strsep(&s, "|");
-
+
+ mvar = strsep(&s, "|");
+ mvalue1 = strsep(&s, "|");
if ((op = strchr(mvalue1, '+'))) {
iaction = ADDFUNCTION;
@@ -149,94 +140,89 @@ static int math_exec(struct ast_channel *chan, void *data) {
if (op)
mvalue2 = op + 1;
-
if (!mvar || !mvalue1 || !mvalue2) {
- ast_log(LOG_WARNING, "Supply all the parameters - just this once, please\n");
- LOCAL_USER_REMOVE(u);
- return -1;
+ ast_log(LOG_WARNING, "Supply all the parameters - just this once, please\n");
+ LOCAL_USER_REMOVE(u);
+ return -1;
}
if (!strcmp(mvar,"")) {
- ast_log(LOG_WARNING, "No return variable set.\n");
- LOCAL_USER_REMOVE(u);
+ ast_log(LOG_WARNING, "No return variable set.\n");
+ LOCAL_USER_REMOVE(u);
return -1;
}
+ if (sscanf(mvalue1, "%f", &fnum1) != 1) {
+ ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue1);
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
- if (sscanf(mvalue1, "%f", &fnum1) != 1) {
- ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue1);
- LOCAL_USER_REMOVE(u);
- return -1;
- }
-
- if (sscanf(mvalue2, "%f", &fnum2) != 1) {
- ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue2);
- LOCAL_USER_REMOVE(u);
- return -1;
- }
-
-
- switch (iaction) {
- case ADDFUNCTION :
- ftmp = fnum1 + fnum2;
- break;
+ if (sscanf(mvalue2, "%f", &fnum2) != 1) {
+ ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue2);
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
- case DIVIDEFUNCTION :
- if (fnum2 <=0)
- ftmp = 0; /* can't do a divide by 0 */
- else
- ftmp = (fnum1 / fnum2);
- break;
- case MULTIPLYFUNCTION :
- ftmp = (fnum1 * fnum2);
- break;
- case SUBTRACTFUNCTION :
- ftmp = (fnum2 - fnum1);
- break;
- case MODULUSFUNCTION : {
- int inum1 = fnum1;
- int inum2 = fnum2;
-
- ftmp = (inum1 % inum2);
+ switch (iaction) {
+ case ADDFUNCTION :
+ ftmp = fnum1 + fnum2;
+ break;
+ case DIVIDEFUNCTION :
+ if (fnum2 <=0)
+ ftmp = 0; /* can't do a divide by 0 */
+ else
+ ftmp = (fnum1 / fnum2);
+ break;
+ case MULTIPLYFUNCTION :
+ ftmp = (fnum1 * fnum2);
+ break;
+ case SUBTRACTFUNCTION :
+ ftmp = (fnum2 - fnum1);
+ break;
+ case MODULUSFUNCTION : {
+ int inum1 = fnum1;
+ int inum2 = fnum2;
- break;
- }
- case GTFUNCTION :
- if (fnum1 > fnum2)
- strncpy (user_result, "TRUE", sizeof (user_result) - 1);
- else
- strncpy (user_result, "FALSE", sizeof (user_result) - 1);
- break;
- case LTFUNCTION :
- if (fnum1 < fnum2)
- strncpy (user_result, "TRUE", sizeof (user_result) - 1);
- else
- strncpy (user_result, "FALSE", sizeof (user_result) - 1);
- break;
- case GTEFUNCTION :
- if (fnum1 >= fnum2)
- strncpy (user_result, "TRUE", sizeof (user_result) - 1);
- else
- strncpy (user_result, "FALSE", sizeof (user_result) - 1);
- break;
- case LTEFUNCTION :
- if (fnum1 <= fnum2)
- strncpy (user_result, "TRUE", sizeof (user_result) - 1);
- else
- strncpy (user_result, "FALSE", sizeof (user_result) - 1);
- break;
- case EQFUNCTION :
- if (fnum1 == fnum2)
- strncpy (user_result, "TRUE", sizeof (user_result) - 1);
- else
- strncpy (user_result, "FALSE", sizeof (user_result) - 1);
- break;
- default :
- ast_log(LOG_WARNING, "Something happened that neither of us should be proud of %d\n", iaction);
- LOCAL_USER_REMOVE(u);
- return -1;
-
- }
+ ftmp = (inum1 % inum2);
+
+ break;
+ }
+ case GTFUNCTION :
+ if (fnum1 > fnum2)
+ strncpy (user_result, "TRUE", sizeof (user_result) - 1);
+ else
+ strncpy (user_result, "FALSE", sizeof (user_result) - 1);
+ break;
+ case LTFUNCTION :
+ if (fnum1 < fnum2)
+ strncpy (user_result, "TRUE", sizeof (user_result) - 1);
+ else
+ strncpy (user_result, "FALSE", sizeof (user_result) - 1);
+ break;
+ case GTEFUNCTION :
+ if (fnum1 >= fnum2)
+ strncpy (user_result, "TRUE", sizeof (user_result) - 1);
+ else
+ strncpy (user_result, "FALSE", sizeof (user_result) - 1);
+ break;
+ case LTEFUNCTION :
+ if (fnum1 <= fnum2)
+ strncpy (user_result, "TRUE", sizeof (user_result) - 1);
+ else
+ strncpy (user_result, "FALSE", sizeof (user_result) - 1);
+ break;
+ case EQFUNCTION :
+ if (fnum1 == fnum2)
+ strncpy (user_result, "TRUE", sizeof (user_result) - 1);
+ else
+ strncpy (user_result, "FALSE", sizeof (user_result) - 1);
+ break;
+ default :
+ ast_log(LOG_WARNING, "Something happened that neither of us should be proud of %d\n", iaction);
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
if (iaction < GTFUNCTION || iaction > EQFUNCTION)
snprintf(user_result,sizeof(user_result),"%f",ftmp);
@@ -244,23 +230,23 @@ static int math_exec(struct ast_channel *chan, void *data) {
pbx_builtin_setvar_helper(chan, mvar, user_result);
LOCAL_USER_REMOVE(u);
- return 0;
+ return 0;
}
int unload_module(void)
{
- int res;
- STANDARD_HANGUP_LOCALUSERS;
-
- res = ast_unregister_application(app_math);
- return res;
+ int res;
+ STANDARD_HANGUP_LOCALUSERS;
+
+ res = ast_unregister_application(app_math);
+ return res;
}
int load_module(void)
{
- int res;
- res = ast_register_application(app_math, math_exec, math_synopsis, math_descrip);
- return res;
+ int res;
+ res = ast_register_application(app_math, math_exec, math_synopsis, math_descrip);
+ return res;
}
char *description(void)
@@ -280,10 +266,4 @@ char *key()
return ASTERISK_GPL_KEY;
}
-
-
/* Fading everything to black and blue... */
-
-
-
-