
Get list of functions which use pass-by-reference and are candidates for MRS

thomas_braun
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 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More