aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
2006-09-19[lcd4linux @ 2006-09-19 11:20:52 by entropy]entropy1-1/+6
2006-09-15[lcd4linux @ 2006-09-15 20:30:03 by siretart]siretart3-87/+1987
2006-09-15[lcd4linux @ 2006-09-15 19:06:47 by entropy]entropy1-3/+7
2006-09-15[lcd4linux @ 2006-09-15 19:00:50 by entropy]entropy5-1/+180
2006-09-14[lcd4linux @ 2006-09-14 20:36:39 by entropy]entropy1-5/+45
2006-09-14[lcd4linux @ 2006-09-14 11:19:29 by entropy]entropy1-8/+15
2006-09-14[lcd4linux @ 2006-09-14 04:08:54 by reinelt]reinelt1-32/+22
2006-09-14[lcd4linux @ 2006-09-14 03:49:14 by reinelt]reinelt5-16/+32
2006-09-13[lcd4linux @ 2006-09-13 20:07:59 by entropy]entropy1-1/+11
2006-09-13[lcd4linux @ 2006-09-13 20:04:57 by entropy]entropy3-4/+29
2006-09-13[lcd4linux @ 2006-09-13 05:33:39 by reinelt]reinelt2-3/+10
2006-09-08[lcd4linux @ 2006-09-08 19:00:46 by reinelt]reinelt3-20/+32
2006-09-07[lcd4linux @ 2006-09-07 09:06:25 by reinelt]reinelt11-37/+69
2006-09-06[lcd4linux @ 2006-09-06 05:22:09 by reinelt]reinelt3-112/+269
2006-09-04[lcd4linux @ 2006-09-04 16:48:32 by siretart]siretart4-3463/+5159
2006-09-04[lcd4linux @ 2006-09-04 16:47:39 by siretart]siretart3-236/+188
2006-09-04[lcd4linux @ 2006-09-04 16:41:21 by siretart]siretart12-229/+0
2006-09-04[lcd4linux @ 2006-09-04 16:35:43 by siretart]siretart1-1/+5
2006-09-04[lcd4linux @ 2006-09-04 16:33:21 by siretart]siretart1-4/+13
2006-08-23[lcd4linux @ 2006-08-23 17:45:37 by harbaum]harbaum1-17/+20
2006-08-23[lcd4linux @ 2006-08-23 05:05:40 by reinelt]reinelt1-2/+12
2006-08-17[lcd4linux @ 2006-08-17 19:11:40 by harbaum]harbaum5-4888/+3452
2006-08-17[lcd4linux @ 2006-08-17 05:06:26 by reinelt]reinelt2-0/+4
2006-08-16[lcd4linux @ 2006-08-16 14:18:14 by reinelt]reinelt5-76/+100
2006-08-15[lcd4linux @ 2006-08-15 17:28:27 by harbaum]harbaum1-62/+115
2006-08-14[lcd4linux @ 2006-08-14 19:24:22 by harbaum]harbaum6-33/+137
2006-08-14[lcd4linux @ 2006-08-14 05:54:03 by reinelt]reinelt7-15/+51
2006-08-13[lcd4linux @ 2006-08-13 18:45:25 by harbaum]harbaum2-8/+14
2006-08-13[lcd4linux @ 2006-08-13 18:14:03 by harbaum]harbaum13-32/+866
2006-08-13[lcd4linux @ 2006-08-13 11:38:20 by reinelt]reinelt5-116/+105
2006-08-13[lcd4linux @ 2006-08-13 09:53:10 by reinelt]reinelt16-3463/+5130
2006-08-13[lcd4linux @ 2006-08-13 06:46:51 by reinelt]reinelt15-196/+280
2006-08-11[lcd4linux @ 2006-08-11 11:59:29 by reinelt]reinelt2-2/+9
2006-08-10[lcd4linux @ 2006-08-10 20:40:46 by reinelt]reinelt3-29/+181
2006-08-10[lcd4linux @ 2006-08-10 19:06:52 by reinelt]reinelt2-6/+38
2006-08-09[lcd4linux @ 2006-08-09 17:25:34 by harbaum]harbaum13-4897/+4360
2006-08-08[lcd4linux @ 2006-08-08 20:16:28 by harbaum]harbaum4-30/+54
2006-08-08[lcd4linux @ 2006-08-08 19:35:21 by reinelt]reinelt8-3/+446
2006-08-08[lcd4linux @ 2006-08-08 19:28:18 by reinelt]reinelt5-3416/+4878
2006-08-05[lcd4linux @ 2006-08-05 21:08:01 by harbaum]harbaum8-4874/+3725
2006-07-31[lcd4linux @ 2006-07-31 03:48:09 by reinelt]reinelt16-180/+359
2006-07-30[lcd4linux @ 2006-07-30 11:29:02 by lfcorreia]lfcorreia2-22/+14
2006-07-30[lcd4linux @ 2006-07-30 11:16:27 by lfcorreia]lfcorreia1-1/+9
2006-07-29[lcd4linux @ 2006-07-29 21:12:31 by lfcorreia]lfcorreia2-2/+52
2006-07-29[lcd4linux @ 2006-07-29 21:04:43 by lfcorreia]lfcorreia1-12/+19
2006-07-29[lcd4linux @ 2006-07-29 20:59:12 by lfcorreia]lfcorreia1-3/+6
2006-07-19[lcd4linux @ 2006-07-19 01:57:01 by cmay]cmay1-5/+7
2006-07-19[lcd4linux @ 2006-07-19 01:48:11 by cmay]cmay2-35/+40
2006-07-19[lcd4linux @ 2006-07-19 01:35:31 by cmay]cmay5-30/+118
2006-07-18[lcd4linux @ 2006-07-18 17:04:55 by nicowallmeier]nicowallmeier2-15/+17
e 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); } /* sample function 'mul3' */ /* takes one argument, a number */ /* multiplies the number by 3.0 */ /* same as 'mul2', but shorter */ static void my_mul3(RESULT * result, RESULT * arg1) { /* do it all in one line */ double value = R2N(arg1) * 3.0; /* store result */ SetResult(&result, R_NUMBER, &value); } /* sample function 'diff' */ /* takes two arguments, both numbers */ /* returns |a-b| */ 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); } /* sample function 'answer' */ /* takes no argument! */ /* returns the answer to all questions */ 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); } /* sample function 'length' */ /* takes one argument, a string */ /* returns the string length */ 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); } /* sample function 'upcase' */ /* takes one argument, a string */ /* returns the string in upper case letters */ 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); /* 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); } /* sample function 'cat' */ /* takes variable number of arguments, all strings */ /* returns all prameters concatenated */ 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); } /* store result */ SetResult(&result, R_STRING, value); /* free local string */ free(value); } /* plugin initialization */ /* MUST NOT be declared 'static'! */ 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("sample::mul2", 1, my_mul2); AddFunction("sample::mul3", 1, my_mul3); AddFunction("sample::answer", 0, my_answer); AddFunction("sample::diff", 2, my_diff); AddFunction("sample::length", 1, my_length); AddFunction("sample::upcase", 1, my_upcase); AddFunction("sample::concat", -1, my_concat); return 0; } void plugin_exit_sample(void) { /* free any allocated memory */ /* close filedescriptors */ }