RELEASE INFORMATION

	- exec.dll version 1.01 released May 21st 2008.
		> Update CLB for mIRC 6.32

    - exec.dll version 1.0 released November 1st 2007.
        > Initial release.


AUTHOR & WEBSITE
    
    The software provided was written by Loren Segal, clb@soen.ca

    Please visit http://www.kthx.net/clb/exec for updates.


DESCRIPTION

    exec.dll allows you to execute commands from the Windows shell (cmd.exe)
    and retrieve the values synchronously or asynchronously via script 
    without having to redirect to a file. This DLL also avoids showing the
    DOS prompt window, a common side effect of other exec implementations. 
    Ability to send data to stdin of the shell is currently not implemented, 
    but may    be in future versions.
    
    
INSTALLATION

    To install this script and DLL, it is recommended (but not necessary)
    to copy the files in this package into a directory within mIRC's 
    installation directory. At that point you can load the script with:
    
        /load -rs C:\path\to\exec.mrc
        
        
USAGE & EXAMPLES

    Basic usage is /exec <command to execute> or $exec(<command>), see 
    exec.mrc for more details on syntax and optional switches.
    
    There are switches that enable you to capture output which are all 
    documented in exec.mrc with the /exec alias. You can also use the
    -a switch to call commands asynchronously instead of synchronously.
    
    With no switches, /exec will echo everything from the output to the 
    screen with default formatting. You can silence output with the '.'
    prefix.
    
    The identifier format can be used to quickly return the first line
    of standard output (not error output) or pass in a callback command
    that is more than one word
    
    Example to get PATH environment variable into an mIRC variable
    
        /var %PATH% = $exec(echo $(%PATH%,0))
        
    Example to pipe output from ipconfig to a window without a callback
    
        //window @ipconfig | noop $exec(ipconfig, echo @ipconfig)
    
    Example to display your ipconfig results with no special formatting:
    
        /exec ipconfig
    
    Example to copy a file using the shell (hide all output):
    
        /.exec copy file1 file2
    
    Example to handle input from stderr: (asynchronously)
    
        /exec -ak rubyhandler ruby -e '$stderr.puts "Hello world"'
        
        alias rubyhandler { if ($1 == stderr) echo -a $2- }
        
    The same example using ON SIGNAL events instead of aliases:
    
        /exec -s RUBYHANDLER ruby -e '$stderr.puts "Hello world"'
        
        on *:SIGNAL:RUBYHANDLER:if ($1 == stderr) echo -a $2-
        
        
    * IMPORTANT: If you use /exec without the asynchronous switch
                 to execute any programs that take data from standard
                 input, you will hang mIRC. To break out of this 
                 infinite loop, press Control-Break. You can call
                 /dll -u exec.dll to close any asynchronous calls
                 hung by indefinite running programs as well.
    
    
LICENSE
    
    exec.dll is released under a BSD-style license. The only thing that I ask
    is that you share any modifications to the source with me if you plan on 
    redistributing in binary form. See LICENSE.txt for more information.
    
    Not all of the source code of this DLL can be released for legal reasons.
    The closed source portion of the code resides in the Common Language Bridge 
    module (CLB) and is released as a static compiled library only. The library 
    will eventually be released under the same BSD-style license when I figure 
    out a proper way to distribute the closed source element of the code. The 
    code can be fully compiled using this static library.
    
TRADEMARK NOTICE
    
    mIRC is a registered trademark of mIRC Co. Ltd. 