
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