MCPcopy Create free account
hub / github.com/WheretIB/nullc / GetCFunctionName

Function GetCFunctionName

NULLC/SyntaxTreeTranslate.cpp:18–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16}
17
18void GetCFunctionName(char* fName, unsigned int size, FunctionInfo *funcInfo)
19{
20 const char *namePrefix = *funcInfo->name == '$' ? "__" : "";
21 unsigned int nameShift = *funcInfo->name == '$' ? 1 : 0;
22 unsigned int finalLength = 0;
23 const char *printedName = funcInfo->GetOperatorName();
24 unsigned funcID = ((funcInfo->address & 0x80000000) && (funcInfo->address != -1)) ? (funcInfo->address & ~0x80000000) : funcInfo->indexInArr;
25 if((funcInfo->type == FunctionInfo::LOCAL || funcInfo->type == FunctionInfo::COROUTINE) || !funcInfo->visible)
26 finalLength = SafeSprintf(fName, size, "%s%s_%d", namePrefix, printedName ? printedName : (funcInfo->name + nameShift), funcID);
27 else if(funcInfo->type == FunctionInfo::THISCALL)
28 finalLength = SafeSprintf(fName, size, "%s%s_%s", namePrefix, printedName ? printedName : (funcInfo->name + nameShift), funcInfo->funcType->GetFullTypeName());
29 else
30 finalLength = SafeSprintf(fName, size, "%s%s", namePrefix, printedName ? printedName : (funcInfo->name + nameShift));
31
32 for(unsigned int k = 0; k < finalLength; k++)
33 {
34 if(fName[k] == ':' || fName[k] == '$' || fName[k] == '[' || fName[k] == ']' || fName[k] == ' ' || fName[k] == '(' || fName[k] == ')' || fName[k] == ',')
35 fName[k] = '_';
36 }
37 TypeInfo **type = CodeInfo::classMap.find(funcInfo->nameHash);
38 if(type)
39 strcat(fName, "__");
40
41 unsigned int length = (unsigned int)strlen(fName);
42 if(fName[length-1] == '$')
43 fName[length-1] = '_';
44}
45
46void OutputCFunctionName(FILE *fOut, FunctionInfo *funcInfo)
47{

Callers 2

TranslateToCMethod · 0.85
OutputCFunctionNameFunction · 0.85

Calls 4

GetOperatorNameMethod · 0.80
GetFullTypeNameMethod · 0.80
SafeSprintfFunction · 0.70
findMethod · 0.45

Tested by

no test coverage detected