Get list of functions which use pass-by-reference and are candidates for MRS
This snippet returns a list of pass-by-reference functions which, in most cases, should better be written using multiple return value syntax instead of pass-by-reference.
#pragma TextEncoding = "UTF-8"
#pragma rtGlobals=3
#pragma IgorVersion=9.0
// Call with: GetListOfPassByRefFunctions("MyFiles*")
Function GetListOfPassByRefFunctions(string winMatchExpression)
WAVE/T wins = ListToTextWave(WinList(winMatchExpression, ";", ""), ";")
string func, win, info
variable numParams, i, type
for(win : wins)
WAVE/T funcs = ListToTextWave(FunctionList("*", ";", "KIND:18,WIN:" + win), ";")
for(func : funcs)
info = FunctionInfo(func, win)
numParams = NumberByKey("N_PARAMS", info)
for(i = 0; i < numParams; i += 1)
type = NumberByKey("PARAM_" + num2str(i) + "_TYPE", info)
if(type & 0x1000 && !(type & 0x200)) // pass-by-ref but no struct
print func
break
endif
endfor
endfor
endfor
End
Forum
Support
Gallery
Igor Pro 10
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More