Import: Difference between revisions
imported>Bale mNo edit summary |
imported>PhilmASTErpLus Subdirectory stuff. Does a similar logic applies to file_to_map()/map_to_file()? I believe there was a forum discussion about security and preventing KoLmafia from accessing the parent directory. |
||
Line 3: | Line 3: | ||
'''Import''' is a command that is used to import (hence the name) an entire file's contents into the file in which '''import''' is called. "Nested" imports are possible; a script that is being imported may import another script. If a single file is imported more than once, KoLmafia will automatically avoid function name collisions. Note that when a script that has a <code>main()</code> function is imported into another script with another <code>main()</code> function, only the primary script's <code>main()</code> is executed, and all <code>main()</code> functions from imported scripts will be ignored. However, any of the imported top-level commands will be executed and all of the imported global variables will be accessible to the primary script. | '''Import''' is a command that is used to import (hence the name) an entire file's contents into the file in which '''import''' is called. "Nested" imports are possible; a script that is being imported may import another script. If a single file is imported more than once, KoLmafia will automatically avoid function name collisions. Note that when a script that has a <code>main()</code> function is imported into another script with another <code>main()</code> function, only the primary script's <code>main()</code> is executed, and all <code>main()</code> functions from imported scripts will be ignored. However, any of the imported top-level commands will be executed and all of the imported global variables will be accessible to the primary script. | ||
Because '''import''' looks inside the /scripts directory and all its subfolders for the given script name, moving your scripts around inside the /scripts directory will not affect other scripts that rely on them. If there are multiple scripts with the same file name, KoLmafia will use the first script found. You can use your OS-specific directory path separators (usually slashes(/) and backslashes(\)) to explicitly '''import''' a script inside a subdirectory. | |||
==Example== | ==Example== | ||
<!-- code sample edited without permission by PhilmASTErpLus. --> | |||
{{CodeSample|code=<syntaxhighlight> | {{CodeSample|code=<syntaxhighlight> | ||
# snippet from my aftercore.ash file | # snippet from my aftercore.ash file | ||
import <lib/utilities.ash> // import a utility function library in the scripts/lib/ directory | |||
import <aftercore_config.ash> // import the configuration file (loaded with variables) into the script | import <aftercore_config.ash> // import the configuration file (loaded with variables) into the script | ||
import <aftercore_bounty.ash> // import bounty functionality (loaded with functions) into the script | import <aftercore_bounty.ash> // import bounty functionality (loaded with functions) into the script |
Revision as of 07:40, 13 September 2010
import <filename>
Import is a command that is used to import (hence the name) an entire file's contents into the file in which import is called. "Nested" imports are possible; a script that is being imported may import another script. If a single file is imported more than once, KoLmafia will automatically avoid function name collisions. Note that when a script that has a main()
function is imported into another script with another main()
function, only the primary script's main()
is executed, and all main()
functions from imported scripts will be ignored. However, any of the imported top-level commands will be executed and all of the imported global variables will be accessible to the primary script.
Because import looks inside the /scripts directory and all its subfolders for the given script name, moving your scripts around inside the /scripts directory will not affect other scripts that rely on them. If there are multiple scripts with the same file name, KoLmafia will use the first script found. You can use your OS-specific directory path separators (usually slashes(/) and backslashes(\)) to explicitly import a script inside a subdirectory.
Example
# snippet from my aftercore.ash file
import <lib/utilities.ash> // import a utility function library in the scripts/lib/ directory
import <aftercore_config.ash> // import the configuration file (loaded with variables) into the script
import <aftercore_bounty.ash> // import bounty functionality (loaded with functions) into the script
int first_meat = my_meat();
int first_advs = my_adventures();
boolean using_upcs_curr = false;
# ...
Formatting Needed