GSAK (Geocaching Swiss Army Knife)
Contents - Index

NoError (command)

NoError [<Commands=list>] [<Functions=list>] [<SysVar=list>] [<DbVar=list>]

The NoError command has been added  to help macro authors cater for different versions of GSAK. It will become particularly helpful when Beta versions of GSAK are released, so that you don't have to keep two separate versions the macro.

GSAK has a "pre processor" which is run before a macro can start. Amongst other things, the pre processor, ensures that all commands, functions, system variables, and database variables are valid. This prevents a macro from even starting when you have a typo in one of these items.

The downside of this validity check is that it makes it almost impossible to code for different versions of GSAK. The problem is that any invalid command, function, system variable, database variable, found anywhere in the macro will cause it to crash.

Notes:

1. Enter functions by name only (excluding the parenthesis)

2. The NoError command is executed by the preprocessor. Variable substitution does not apply here, so you enter the variable names exactly as you see them (including the $)

For example, if we introduce a new command called "NewCmd" in version 7.3, it will crash a version 7.2 macro, even if we try to code around it as in (pseudo code)
 

If $version < 7.3
  // pre version 7.3 code
Else
  NewCmd
Endif

 
The pre processor in version 7.2 will see the "NewCmd" and crash with an error saying that the command is invalid.

Using the NoError command we can now get around this problem.

"list" is a semi colon separated list of the corresponding items you don't want the pre processor to throw a macro error. For our "NewCmd" example above, the code to now make this macro work in either 7.2 or 7.3 would be:
 

NoError commands=NewCmd
If $version < 7.3
  // pre version 7.3code
Else
  NewCmd
Endif


Alpha List         Category List

Copyright 2004-2019 CWE Computer Services  
Privacy Policy Contact