MCPcopy Create free account
hub / github.com/KDAB/codebrowser / demangleFunctionName

Function demangleFunctionName

data/codebrowser.js:102–155  ·  view source on GitHub ↗
(mangle)

Source from the content-addressed store, hash-verified

100
101 // demangle the function name, don't care about the template or the argument
102 function demangleFunctionName(mangle) {
103 if (! mangle) return mangle;
104 if (mangle[0] !== '_') return mangle;
105 if (mangle[1] === 'M' && mangle[2] === '/') return mangle.slice(3);
106 if (mangle[1] !== 'Z') return mangle;
107 mangle = mangle.slice(2);
108 var result;
109 var last = "";
110 var scoped = false;
111 do {
112 if (!result)
113 result = "";
114 else
115 result += "::";
116 if (mangle[0]==='D') {
117 result += "~" + last;
118 break;
119 }
120 if (mangle[0]==='C') {
121 result += last;
122 break;
123 }
124 if (mangle[0]==='N') {
125 mangle = mangle.slice(1);
126 scoped = true;
127 }
128 if (mangle[0]==='K') mangle = mangle.slice(1);
129 if (mangle[0]==='L') mangle = mangle.slice(1);
130 if (mangle.match(/^St/)) { //St
131 mangle = mangle.slice(2);
132 result += "std::";
133 }
134 if (mangle[0]==='I') {
135 var n = 1;
136 var i;
137 for (i = 1; i < mangle.length && n > 0 ;i++) {
138 if (mangle[i] === 'I') n++;
139 if (mangle[i] === 'E') n--;
140 }
141 mangle = mangle.slice(i);
142 }
143 if (mangle.match(/^[a-z]/)) {
144 result += "operator";
145 break;
146 }
147 var len = parseInt(mangle);
148 if (!len) return null;
149 var start = ("" + len).length;
150 last = mangle.substr(start, len);
151 result += last;
152 mangle = mangle.slice(start + len)
153 } while(mangle && mangle[0]!='E' && mangle[0]!='B' && scoped);
154 return result;
155 }
156
157 // ident and highlight code (for macros)
158 function identAndHighlightMacro(origin) {

Callers 3

pFunction · 0.85
computeTooltipContentFunction · 0.85
refreshHistoryBoxFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected