#include #include #include "../list.h" #include "../mapcalc.h" #include "../map.h" /* * Required function: * Return the name of the main function which is useable in v.mapcalc. */ char * fname (void) { return "dltest"; } /* * Required function: * Return the prototype of the main function. Generally, it's the initial * letter of the C-type, plus "m" for (MAP *) and "p" for (POINT *). * Indirection doesn't fully work, but to return a pointer to one of the * above types, the letter "a" is used ("ai" means an integer pointer). * * Each prototype needs to be represented by one of the typedef and switch * cases in func.c of mapcalc. */ char * proto (void) { return "m=mm"; } /* * This is the main function which needs to have the name and prototype * as returned above. */ MAP * dltest (MAP *m, MAP *n) { char namebuf[128]; printf ("Performing 2 arg dynamically loaded map function on maps " "%s and %s\n", m->name, n->name); sprintf (namebuf, "%s.%s", m->name, n->name); m = (MAP *)listitem (sizeof (MAP)); m->name = strdup (namebuf); return m; }