From: <enl...@li...> - 2005-04-29 14:31:07
|
Enlightenment CVS committal Author : tsauerbeck Project : e17 Module : libs/embryo Dir : e17/libs/embryo/src/lib Modified Files: embryo_args.c Log Message: added getsarg() - copies the specified argument into a string buffer. use this instead of getarg(num, 0) if you want to retrieve all of the string =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/embryo/src/lib/embryo_args.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- embryo_args.c 9 Dec 2004 02:46:32 -0000 1.3 +++ embryo_args.c 29 Apr 2005 14:30:59 -0000 1.4 @@ -1,5 +1,14 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ #include "embryo_private.h" +#define STRSET(ep, par, str) { \ + Embryo_Cell *___cptr; \ + if ((___cptr = embryo_data_address_get(ep, par))) { \ + embryo_data_string_set(ep, str, ___cptr); \ + } } + /* exported args api */ static Embryo_Cell @@ -51,6 +60,41 @@ return 1; } +static Embryo_Cell +_embryo_args_getsarg(Embryo_Program *ep, Embryo_Cell *params) +{ + Embryo_Header *hdr; + unsigned char *data; + Embryo_Cell base_cell; + char *s; + int i = 0; + + /* params[1] = arg_no */ + /* params[2] = buf */ + /* params[3] = buflen */ + if (params[0] != (3 * sizeof(Embryo_Cell))) return 0; + if (params[3] <= 0) return 0; /* buflen must be > 0 */ + hdr = (Embryo_Header *)ep->base; + data = ep->base + (int)hdr->dat; + base_cell = *(Embryo_Cell *)(data + (int)ep->frm + + (((int)params[1] + 3) * sizeof(Embryo_Cell))); + + s = alloca(params[3]); + + while (i < params[3]) + { + int offset = base_cell + (i * sizeof(Embryo_Cell)); + + s[i] = *(Embryo_Cell *)(data + offset); + if (!s[++i]) break; + } + + s[i - 1] = 0; + STRSET(ep, params[2], s); + + return i - 1; /* characters written minus terminator */ +} + /* functions used by the rest of embryo */ void @@ -61,4 +105,5 @@ embryo_program_native_call_add(ep, "setarg", _embryo_args_setarg); embryo_program_native_call_add(ep, "getfarg", _embryo_args_getarg); embryo_program_native_call_add(ep, "setfarg", _embryo_args_setarg); + embryo_program_native_call_add(ep, "getsarg", _embryo_args_getsarg); } |
From: <enl...@li...> - 2005-04-29 16:32:46
|
Enlightenment CVS committal Author : tsauerbeck Project : e17 Module : libs/embryo Dir : e17/libs/embryo/src/lib Modified Files: embryo_args.c Log Message: i suck :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/embryo/src/lib/embryo_args.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- embryo_args.c 29 Apr 2005 14:30:59 -0000 1.4 +++ embryo_args.c 29 Apr 2005 16:32:39 -0000 1.5 @@ -86,7 +86,7 @@ int offset = base_cell + (i * sizeof(Embryo_Cell)); s[i] = *(Embryo_Cell *)(data + offset); - if (!s[++i]) break; + if (!s[i++]) break; } s[i - 1] = 0; |
From: <enl...@li...> - 2005-09-24 15:23:04
|
Enlightenment CVS committal Author : tsauerbeck Project : e17 Module : libs/embryo Dir : e17/libs/embryo/include Modified Files: default.inc Log Message: fix strncmp prototype =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/embryo/include/default.inc,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- default.inc 29 Apr 2005 14:30:59 -0000 1.6 +++ default.inc 24 Sep 2005 15:22:57 -0000 1.7 @@ -68,7 +68,7 @@ /* same as strcmp() */ native strcmp(str1[], str2[]); /* same as strncmp */ -native strncmp(str1[], str2[]); +native strncmp(str1[], str2[], n); /* same as strcpy */ native strcpy(dst[], src[]); /* same as strncpy except it nul terminates */ |
From: <enl...@li...> - 2005-10-04 21:02:24
|
Enlightenment CVS committal Author : tsauerbeck Project : e17 Module : libs/embryo Dir : e17/libs/embryo/include Modified Files: default.inc Log Message: everyone loves PI =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/embryo/include/default.inc,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- default.inc 24 Sep 2005 15:22:57 -0000 1.7 +++ default.inc 4 Oct 2005 21:02:14 -0000 1.8 @@ -21,6 +21,8 @@ #pragma rational Float +#define PI 3.1415926535897932384626433832795 + /* Different methods of rounding */ enum Float_Round_Method { |