sym = &obj->pesym[i];
*y = sym;
- name = sym->name;
- if(sym->sclass == IMAGE_SYM_CLASS_STATIC && sym->value == 0) // section
+ if(sym->sclass == IMAGE_SYM_CLASS_STATIC && sym->value == 0 && sym->type == 0) // section
name = obj->sect[sym->sectnum-1].sym->name;
- if(strncmp(sym->name, "__imp__", 7) == 0)
- name = &sym->name[7]; // __imp__Name => Name
- else if(sym->name[0] == '_')
- name = &sym->name[1]; // _Name => Name
+ else {
+ name = sym->name;
+ if(strncmp(name, "__imp_", 6) == 0)
+ name = &name[6]; // __imp_Name => Name
+ if(thechar == '8' && name[0] == '_')
+ name = &name[1]; // _Name => Name
+ }
// remove last @XXX
p = strchr(name, '@');
if(p)
if(s != nil && s->type == 0 && !(sym->sclass == IMAGE_SYM_CLASS_STATIC && sym->value == 0))
s->type = SXREF;
- if(strncmp(sym->name, "__imp__", 7) == 0)
- s->got = -2; // flag for __imp__
+ if(strncmp(sym->name, "__imp_", 6) == 0)
+ s->got = -2; // flag for __imp_
sym->sym = s;
return 0;