| 198 |
} |
} |
| 199 |
|
|
| 200 |
/* Mangle a symbol name to a valid C identifier name */ |
/* Mangle a symbol name to a valid C identifier name */ |
| 201 |
char *mangle_(const char *old_string){ |
char *mangle_str(const char *old_string){ |
| 202 |
char validchars[] |
char validchars[] |
| 203 |
="0123456789abcdef"; |
="0123456789abcdef"; |
| 204 |
char *new_string, *current; |
char *new_string, *current; |
| 233 |
return; |
return; |
| 234 |
} |
} |
| 235 |
|
|
| 236 |
new_string= mangle_((const char *)(env->head->item->content.ptr)); |
new_string= mangle_str((const char *)(env->head->item->content.ptr)); |
| 237 |
|
|
| 238 |
toss(env); |
toss(env); |
| 239 |
if(env->err) return; |
if(env->err) return; |
| 296 |
funcptr= dlsym(handle, in_string); /* Get function pointer */ |
funcptr= dlsym(handle, in_string); /* Get function pointer */ |
| 297 |
dlerr=dlerror(); |
dlerr=dlerror(); |
| 298 |
if(dlerr != NULL) { /* If no function was found */ |
if(dlerr != NULL) { /* If no function was found */ |
| 299 |
mangled=mangle_(in_string); |
mangled=mangle_str(in_string); |
| 300 |
funcptr= dlsym(handle, mangled); /* try mangling it */ |
funcptr= dlsym(handle, mangled); /* try mangling it */ |
| 301 |
free(mangled); |
free(mangled); |
| 302 |
dlerr=dlerror(); |
dlerr=dlerror(); |