-#include "dynaload.h"
-#include "XSUB.h" /* so we can compile on threaded perls */
-
-static symbol_table_t symbol_table={i_has_format,ICL_set_internal,ICL_info,
- i_img_new,i_img_empty,i_img_empty_ch,i_img_exorcise,
- i_img_info,i_img_setmask,i_img_getmask,
- i_box,i_draw,i_arc,i_copyto,i_copyto_trans,i_rubthru};
-
-
-/* These functions are all shared - then comes platform dependant code */
-
-
-int getstr(void *hv_t,char *key,char **store) {
- SV** svpp;
- HV* hv=(HV*)hv_t;
-
- mm_log((1,"getstr(hv_t 0x%X, key %s, store 0x%X)\n",hv_t,key,store));
-
- if ( !hv_exists(hv,key,strlen(key)) ) return 0;
-
- svpp=hv_fetch(hv, key, strlen(key), 0);
- *store=SvPV(*svpp, PL_na );
-
- return 1;
-}
-
-int getint(void *hv_t,char *key,int *store) {
- SV** svpp;
- HV* hv=(HV*)hv_t;
-
- mm_log((1,"getint(hv_t 0x%X, key %s, store 0x%X)\n",hv_t,key,store));
-
- if ( !hv_exists(hv,key,strlen(key)) ) return 0;
-
- svpp=hv_fetch(hv, key, strlen(key), 0);
- *store=(int)SvIV(*svpp);
- return 1;
-}
-
-int getdouble(void *hv_t,char* key,double *store) {
- SV** svpp;
- HV* hv=(HV*)hv_t;
-
- mm_log((1,"getdouble(hv_t 0x%X, key %s, store 0x%X)\n",hv_t,key,store));
-
- if ( !hv_exists(hv,key,strlen(key)) ) return 0;
- svpp=hv_fetch(hv, key, strlen(key), 0);
- *store=(float)SvNV(*svpp);
- return 1;
-}
-
-int getvoid(void *hv_t,char* key,void **store) {
- SV** svpp;
- HV* hv=(HV*)hv_t;
-
- mm_log((1,"getvoid(hv_t 0x%X, key %s, store 0x%X)\n",hv_t,key,store));
-
- if ( !hv_exists(hv,key,strlen(key)) ) return 0;
-
- svpp=hv_fetch(hv, key, strlen(key), 0);
- *store=(void*)SvIV(*svpp);
-
- return 1;
-}
-
-int getobj(void *hv_t,char *key,char *type,void **store) {
- SV** svpp;
- HV* hv=(HV*)hv_t;
-
- mm_log((1,"getobj(hv_t 0x%X, key %s,type %s, store 0x%X)\n",hv_t,key,type,store));
-
- if ( !hv_exists(hv,key,strlen(key)) ) return 0;