mirror of
https://github.com/netfun2000/lcd4linux.git
synced 2026-02-27 09:44:34 +08:00
[lcd4linux @ 2005-05-08 04:32:43 by reinelt]
CodingStyle added and applied git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@547 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
This commit is contained in:
192
plugin_sample.c
192
plugin_sample.c
@@ -1,4 +1,4 @@
|
||||
/* $Id: plugin_sample.c,v 1.9 2005/01/18 06:30:23 reinelt Exp $
|
||||
/* $Id: plugin_sample.c,v 1.10 2005/05/08 04:32:45 reinelt Exp $
|
||||
*
|
||||
* plugin template
|
||||
*
|
||||
@@ -23,6 +23,9 @@
|
||||
*
|
||||
*
|
||||
* $Log: plugin_sample.c,v $
|
||||
* Revision 1.10 2005/05/08 04:32:45 reinelt
|
||||
* CodingStyle added and applied
|
||||
*
|
||||
* Revision 1.9 2005/01/18 06:30:23 reinelt
|
||||
* added (C) to all copyright statements
|
||||
*
|
||||
@@ -96,22 +99,22 @@
|
||||
/* multiplies the number by 2.0 */
|
||||
/* Note: all local functions should be declared 'static' */
|
||||
|
||||
static void my_mul2 (RESULT *result, RESULT *arg1)
|
||||
static void my_mul2(RESULT * result, RESULT * arg1)
|
||||
{
|
||||
double param;
|
||||
double value;
|
||||
double param;
|
||||
double value;
|
||||
|
||||
/* Get Parameter */
|
||||
/* R2N stands for 'Result to Number' */
|
||||
param = R2N(arg1);
|
||||
|
||||
/* calculate value */
|
||||
value = param*2.0;
|
||||
|
||||
/* store result */
|
||||
/* when called with R_NUMBER, it assumes the */
|
||||
/* next parameter to be a pointer to double */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
/* Get Parameter */
|
||||
/* R2N stands for 'Result to Number' */
|
||||
param = R2N(arg1);
|
||||
|
||||
/* calculate value */
|
||||
value = param * 2.0;
|
||||
|
||||
/* store result */
|
||||
/* when called with R_NUMBER, it assumes the */
|
||||
/* next parameter to be a pointer to double */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
}
|
||||
|
||||
|
||||
@@ -120,13 +123,13 @@ static void my_mul2 (RESULT *result, RESULT *arg1)
|
||||
/* multiplies the number by 3.0 */
|
||||
/* same as 'mul2', but shorter */
|
||||
|
||||
static void my_mul3 (RESULT *result, RESULT *arg1)
|
||||
static void my_mul3(RESULT * result, RESULT * arg1)
|
||||
{
|
||||
/* do it all in one line */
|
||||
double value = R2N(arg1) * 3.0;
|
||||
/* do it all in one line */
|
||||
double value = R2N(arg1) * 3.0;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
}
|
||||
|
||||
|
||||
@@ -134,16 +137,17 @@ static void my_mul3 (RESULT *result, RESULT *arg1)
|
||||
/* takes two arguments, both numbers */
|
||||
/* returns |a-b| */
|
||||
|
||||
static void my_diff (RESULT *result, RESULT *arg1, RESULT *arg2)
|
||||
static void my_diff(RESULT * result, RESULT * arg1, RESULT * arg2)
|
||||
{
|
||||
/* do it all in one line */
|
||||
double value = R2N(arg1) - R2N(arg2);
|
||||
|
||||
/* some more calculations... */
|
||||
if (value < 0) value = -value;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
/* do it all in one line */
|
||||
double value = R2N(arg1) - R2N(arg2);
|
||||
|
||||
/* some more calculations... */
|
||||
if (value < 0)
|
||||
value = -value;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
}
|
||||
|
||||
|
||||
@@ -151,14 +155,14 @@ static void my_diff (RESULT *result, RESULT *arg1, RESULT *arg2)
|
||||
/* takes no argument! */
|
||||
/* returns the answer to all questions */
|
||||
|
||||
static void my_answer (RESULT *result)
|
||||
static void my_answer(RESULT * result)
|
||||
{
|
||||
/* we have to declare a variable because */
|
||||
/* SetResult needs a pointer */
|
||||
double value = 42;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
/* we have to declare a variable because */
|
||||
/* SetResult needs a pointer */
|
||||
double value = 42;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
}
|
||||
|
||||
|
||||
@@ -166,14 +170,14 @@ static void my_answer (RESULT *result)
|
||||
/* takes one argument, a string */
|
||||
/* returns the string length */
|
||||
|
||||
static void my_length (RESULT *result, RESULT *arg1)
|
||||
static void my_length(RESULT * result, RESULT * arg1)
|
||||
{
|
||||
/* Note #1: value *must* be double! */
|
||||
/* Note #2: R2S stands for 'Result to String' */
|
||||
double value = strlen(R2S(arg1));
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
/* Note #1: value *must* be double! */
|
||||
/* Note #2: R2S stands for 'Result to String' */
|
||||
double value = strlen(R2S(arg1));
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_NUMBER, &value);
|
||||
}
|
||||
|
||||
|
||||
@@ -182,27 +186,27 @@ static void my_length (RESULT *result, RESULT *arg1)
|
||||
/* takes one argument, a string */
|
||||
/* returns the string in upper case letters */
|
||||
|
||||
static void my_upcase (RESULT *result, RESULT *arg1)
|
||||
static void my_upcase(RESULT * result, RESULT * arg1)
|
||||
{
|
||||
char *value, *p;
|
||||
|
||||
/* create a local copy of the argument */
|
||||
/* Do *NOT* try to modify the original string! */
|
||||
value = strdup(R2S(arg1));
|
||||
|
||||
/* process the string */
|
||||
for (p = value; *p != '\0'; p++)
|
||||
*p = toupper(*p);
|
||||
char *value, *p;
|
||||
|
||||
/* store result */
|
||||
/* when called with R_STRING, it assumes the */
|
||||
/* next parameter to be a pointer to a string */
|
||||
/* 'value' is already a char*, so use 'value', not '&value' */
|
||||
SetResult(&result, R_STRING, value);
|
||||
/* create a local copy of the argument */
|
||||
/* Do *NOT* try to modify the original string! */
|
||||
value = strdup(R2S(arg1));
|
||||
|
||||
/* free local copy again */
|
||||
/* Note that SetResult() makes its own string copy */
|
||||
free (value);
|
||||
/* process the string */
|
||||
for (p = value; *p != '\0'; p++)
|
||||
*p = toupper(*p);
|
||||
|
||||
/* store result */
|
||||
/* when called with R_STRING, it assumes the */
|
||||
/* next parameter to be a pointer to a string */
|
||||
/* 'value' is already a char*, so use 'value', not '&value' */
|
||||
SetResult(&result, R_STRING, value);
|
||||
|
||||
/* free local copy again */
|
||||
/* Note that SetResult() makes its own string copy */
|
||||
free(value);
|
||||
}
|
||||
|
||||
|
||||
@@ -210,51 +214,51 @@ static void my_upcase (RESULT *result, RESULT *arg1)
|
||||
/* takes variable number of arguments, all strings */
|
||||
/* returns all prameters concatenated */
|
||||
|
||||
static void my_concat (RESULT *result, int argc, RESULT *argv[])
|
||||
static void my_concat(RESULT * result, int argc, RESULT * argv[])
|
||||
{
|
||||
int i, len;
|
||||
char *value, *part;
|
||||
|
||||
/* start with a empty string */
|
||||
value = strdup("");
|
||||
|
||||
/* process all arguments */
|
||||
for (i = 0; i < argc; i++) {
|
||||
part = R2S(argv[i]);
|
||||
len = strlen(value)+strlen(part);
|
||||
value = realloc(value, len+1);
|
||||
strcat(value, part);
|
||||
}
|
||||
int i, len;
|
||||
char *value, *part;
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_STRING, value);
|
||||
/* start with a empty string */
|
||||
value = strdup("");
|
||||
|
||||
/* free local string */
|
||||
free (value);
|
||||
/* process all arguments */
|
||||
for (i = 0; i < argc; i++) {
|
||||
part = R2S(argv[i]);
|
||||
len = strlen(value) + strlen(part);
|
||||
value = realloc(value, len + 1);
|
||||
strcat(value, part);
|
||||
}
|
||||
|
||||
/* store result */
|
||||
SetResult(&result, R_STRING, value);
|
||||
|
||||
/* free local string */
|
||||
free(value);
|
||||
}
|
||||
|
||||
|
||||
/* plugin initialization */
|
||||
/* MUST NOT be declared 'static'! */
|
||||
int plugin_init_sample (void)
|
||||
int plugin_init_sample(void)
|
||||
{
|
||||
|
||||
/* register all our cool functions */
|
||||
/* the second parameter is the number of arguments */
|
||||
/* -1 stands for variable argument list */
|
||||
AddFunction ("mul2", 1, my_mul2);
|
||||
AddFunction ("mul3", 1, my_mul3);
|
||||
AddFunction ("answer", 0, my_answer);
|
||||
AddFunction ("diff", 2, my_diff);
|
||||
AddFunction ("length", 1, my_length);
|
||||
AddFunction ("upcase", 1, my_upcase);
|
||||
AddFunction ("concat", -1, my_concat);
|
||||
/* register all our cool functions */
|
||||
/* the second parameter is the number of arguments */
|
||||
/* -1 stands for variable argument list */
|
||||
AddFunction("mul2", 1, my_mul2);
|
||||
AddFunction("mul3", 1, my_mul3);
|
||||
AddFunction("answer", 0, my_answer);
|
||||
AddFunction("diff", 2, my_diff);
|
||||
AddFunction("length", 1, my_length);
|
||||
AddFunction("upcase", 1, my_upcase);
|
||||
AddFunction("concat", -1, my_concat);
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void plugin_exit_sample(void)
|
||||
void plugin_exit_sample(void)
|
||||
{
|
||||
/* free any allocated memory */
|
||||
/* close filedescriptors */
|
||||
/* free any allocated memory */
|
||||
/* close filedescriptors */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user