Programmer Guide/Concepts/Argument Passing: Difference between revisions

From STX Wiki
Jump to navigationJump to search
(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.

Navigation menu

Personal tools