Programmer Guide/Concepts/Argument Passing: Difference between revisions
(Created page with 'Many macros use the call-format: name command arguments (e.g. <code>MSGBOX MSG text</code>). If you want to pass quoted arguments to such a macro, use the format <code>MSGBOX 'MS…') |
No edit summary |
||
Line 1: | Line 1: | ||
Many macros use the call-format: name command arguments (e.g. <code>MSGBOX MSG text</code>). If you want to pass quoted arguments to such a macro, use the format <code>MSGBOX 'MSG text'</code> instead of <code>MSGBOX MSG 'text'</code>. This is necessary because the argument string <code>MSG 'text'</code> is passed (after command-line processing) as <code>MSGtext</code> to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable <code>#SHELL</code> of the caller. In the new shell, the variable <code>SHELL</code> is set to '<code>this_shellid caller_shellid</code>'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command <code>MACRO</code> explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line <code>MACRO macroname</code> is equivalent to command line <code>macroname</code>. | Many macros use the call-format: name command arguments (e.g. <code>MSGBOX MSG text</code>). If you want to pass quoted arguments to such a macro, use the format <code>MSGBOX 'MSG text'</code> instead of <code>MSGBOX MSG 'text'</code>. This is necessary because the argument string <code>MSG 'text'</code> is passed (after command-line processing) as <code>MSGtext</code> to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable <code>#SHELL</code> of the caller. In the new shell, the variable <code>SHELL</code> is set to '<code>this_shellid caller_shellid</code>'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command <code>MACRO</code> explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line <code>MACRO macroname</code> is equivalent to command line <code>macroname</code>. | ||
See also [[Programmer_Guide/Source_code#Definition_of_Macros|Definition of Macros]]. |
Latest revision as of 08:55, 18 January 2018
Many macros use the call-format: name command arguments (e.g. MSGBOX MSG text
). If you want to pass quoted arguments to such a macro, use the format MSGBOX 'MSG text'
instead of MSGBOX MSG 'text'
. This is necessary because the argument string MSG 'text'
is passed (after command-line processing) as MSGtext
to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable #SHELL
of the caller. In the new shell, the variable SHELL
is set to 'this_shellid caller_shellid
'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command MACRO
explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line MACRO macroname
is equivalent to command line macroname
.
See also Definition of Macros.