Category : Communication (modem) tools and utilities
Archive   : LIB232.ZIP
Filename : CAPCMD.SLT

 
Output of file : CAPCMD.SLT contained in archive : LIB232.ZIP

////////////////////////////// CAPCMD.SLT ////////////////////////////////////
//
// DESCRIPTION: This script is designed to be used in one of Custom Command
// options of any Liberator Command File. The script captures the results
// of a user-defined PCBoard/ProDoor command to a user-defined file.
//
// INSTRUCTIONS: Simply place the name of the capture file, along with the
// command to send to PCBoard/ProDoor in Custom Command 1 or 2 in the follow-
// ing format:
//
// @CapCmd
//
// To capture bulletin 6 to the file C:\TEMP\B6.CAP, the appropriate Custom
// Command would be:
//
// @CapCmd C:\TEMP\B6.CAP B 6 NS
//
//////////////////////////////////////////////////////////////////////////////
// Below are two things called 'variables', that I'm sure you've seen in other
// scripts. Once defined, they simply provide a place to store some numbers
// (int) or letters (str) in memory, to be retrieved later. If you have to
// keep track of something in your scripts, just define variables as below.
// int for numbers, str for 'strings' or groups of letters, symbols, etc.
// the [64] means that the string can hold up to 64 characters.

int old_capture_stat; // holds status of current capture file (open/closed)
str old_capture_fname[64]; // holds name of current capture file

//////////////////////////////////////////////////////////////////////////////
main(str fname, str cmd)
{
if (not fname) // check passed parameters, abort if none
return; // 'not fname' is TRUE if the str is empty
if (not cmd)
return;

cputs(cmd); // send the passed cmd to the BBS
cputs("^M"); // along with a CR or

if (open_capture(fname)) // if open_capture() returns TRUE...
waitfor("Command? ", 300); // wait up to 5 minutes for a main prompt

restore_capture(); // restore_capture() is defined below
}

//////////////////////////////////////////////////////////////////////////////
open_capture(str capfname)
{
old_capture_stat = capture_stat(); // capture_stat() as explained in SALT dox
old_capture_fname = _capture_fname; // _capture_fname 'system variable' holds
// the name of the current capture file
// this stores the current name...

_capture_fname = capfname; // then replace with user-defined name

if (capture_stat()) // if capture file now open...
capture("*CLOSE*"); // close it...

if (capture(_capture_fname) == -1) // and try to open the new one
{
status_wind("Error opening capture file!", 30);
return(0); // return FALSE (zero) if error
}

// the above if() may look a little strange, but what is means is:
// 'if() the return value of capture() is equal to (==) -1'. The capture()
// function returns -1 when it can't open the specified _capture_fname, thus
// what's between the curly brackets gets executed 'if capture() returns -1'.

return(1); // return TRUE (non-zero) if okay
}

//////////////////////////////////////////////////////////////////////////////
restore_capture()
{
if (capture_stat())
capture("*CLOSE*"); // all done... close capture file

_capture_fname = old_capture_fname; // put the old capture file name back
// (stored in open_capture() at start)

if (old_capture_stat) // if the capture file was open when we
capture(_capture_fname); // started, then re-open it.
}

//////////////////////////////////////////////////////////////////////////////