Skip to content

Commit be6249e

Browse files
author
Matthias Kastner
committed
update setter getter and kill for global var
analogous to 3e59018 enhance the handling of global variables. * Get should not create a datafolder * Kill should check if the variable still exists after killing * Set should check for correct creation
1 parent e49c7bc commit be6249e

File tree

1 file changed

+48
-24
lines changed

1 file changed

+48
-24
lines changed

procedures/CodeBrowser_utils.ipf

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -166,18 +166,18 @@ End
166166
Function setGlobalVar(globalVar, numValue)
167167
Variable numValue
168168
String globalVar
169-
DFREF dfr = createDFWithAllParents(pkgFolder)
170169

170+
DFREF dfr = createDFWithAllParents(pkgFolder)
171171
Variable/G dfr:$globalVar
172172
NVAR/Z/SDFR=dfr myVar = dfr:$globalVar
173-
174173
if(!NVAR_Exists(myVar))
175-
DebugPrint("global Variable " + globalVar + " failed to create")
174+
DebugPrint("failed to create global variable " + globalVar)
176175
return 0
177-
else
178-
myVar = numValue
179-
return 1
180176
endif
177+
178+
myVar = numValue
179+
180+
return 1
181181
End
182182

183183
// returns the Value of a (positive) numeric global Variable. Returns -1 if Variable does not exist.
@@ -203,60 +203,84 @@ End
203203
// set a global string variable
204204
Function setGlobalStr(globalVar, strValue)
205205
String globalVar, strValue
206-
DFREF dfr = createDFWithAllParents(pkgFolder)
207206

207+
DFREF dfr = createDFWithAllParents(pkgFolder)
208208
String/G dfr:$globalVar
209209
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
210-
211210
if(!SVAR_Exists(myVar))
212-
DebugPrint("global String " + globalVar + " failed to create")
211+
DebugPrint("failed to create global string " + globalVar)
213212
return 0
214-
else
215-
myVar = strValue
216-
return 1
217213
endif
214+
215+
myVar = strValue
216+
217+
return 1
218218
End
219219

220220
// returns the Value of a global String. Returns NullString on Error.
221221
Function/S getGlobalStr(globalVar)
222222
String globalVar
223-
DFREF dfr = createDFWithAllParents(pkgFolder)
224223

225-
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
224+
DFREF dfr = $pkgFolder
225+
if(!DataFolderExistsDFR(dfr))
226+
DebugPrint("Package DataFolder " + pkgFolder + " does not exist")
227+
return ""
228+
endif
226229

230+
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
227231
if(!SVAR_Exists(myVar))
232+
DebugPrint("global String does not exist")
228233
return ""
229-
else
230-
return myVar
231234
endif
235+
236+
return myVar
232237
End
233238

239+
// @returns 1 if global string is not present
234240
Function killGlobalStr(globalVar)
235241
String globalVar
236-
DFREF dfr = createDFWithAllParents(pkgFolder)
237-
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
238242

239-
KillStrings/Z dfr:$globalVar
243+
DFREF dfr = $pkgFolder
244+
if(!DataFolderExistsDFR(dfr))
245+
return 1
246+
endif
240247

248+
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
241249
if(!SVAR_Exists(myVar))
242250
return 1
243-
else
251+
endif
252+
253+
KillStrings/Z dfr:$globalVar
254+
SVAR/Z/SDFR=dfr myVar = dfr:$globalVar
255+
if(SVAR_Exists(myVar))
256+
DebugPrint("Could not delete global String " + globalVar)
244257
return 0
245258
endif
259+
260+
return 1
246261
End
247262

248263
Function killGlobalVar(globalVar)
249264
String globalVar
250-
DFREF dfr = createDFWithAllParents(pkgFolder)
251-
NVAR/Z/SDFR=dfr myVar = dfr:$globalVar
252265

253-
KillVariables/Z dfr:$globalVar
266+
DFREF dfr = $pkgFolder
267+
if(!DataFolderExistsDFR(dfr))
268+
return 1
269+
endif
254270

271+
NVAR/Z/SDFR=dfr myVar = dfr:$globalVar
255272
if(!NVAR_Exists(myVar))
256273
return 1
257-
else
274+
endif
275+
276+
KillVariables/Z dfr:$globalVar
277+
NVAR/Z/SDFR=dfr myVar = dfr:$globalVar
278+
if(NVAR_Exists(myVar))
279+
DebugPrint("Could not delete global Variable " + globalVar)
258280
return 0
259281
endif
282+
283+
return 1
260284
End
261285

262286
// extended function of WM's startMSTimer

0 commit comments

Comments
 (0)