CALOOK:

        I'm going to use the following piece of the previous
flowchart to illustrate the use of CALOok:

                            LOGIN PROCESS

                 Ŀ Yes           Ŀ
                  Mailer Running? >Send ESC 
                                
                     No   <

        Sometimes there will be prompts that might occur, and then
again, might not occur.  In cases like this, you can't use {LOOK}
because the script will hang if the LOOKed for text does not come in
from the BBS.  For these cases, you need a CONDITIONAL "look".
There are three such "conditional" LOOK statements available in the
{COMMO} macro language -- CALOok, GOLOok, and SSLOok.

        Building on previous lessons, let's give our "login"
subroutine its own Macro ID (name)..let's call it "{:LOGIN}

{:LOGIN}
     {CALO mprompt,sendesc,Press <ESC> key to continue}
{:MPROMPT}
     {LOOK What is your REAL first name?}

        This segment adds a conditional check for a mailer's prompt
to press the "Escape" key.  If the mailer prompt is received, the
CALOok statement will interrupt regular script processing to execute
the macro I've named "sendesc" ({:SENDESC}).  After executing that
macro in response to the "Press Escape" prompt, the script will
return to the point I've specified in the CALOok statement, which in
this case, is "mprompt" ({:MPROMPT}).  If the "Press esc" prompt is NOT
received, the script continues on its merry way which, according to
the example is to LOOK for a "first name" prompt.  Here's what
{:SENDESC} might look like:

{:SENDESC}
     {SEND ^[}          (Note the use of "^[" to signify the "escape"
     {RETU}              character)


Continued in Lesson 5c..

Jim
