# This function creates a temporary file and returns its name.  The
# file will be deleted automatically when Algae exits.

tmp_file = function()
{
    local( f );

    # Generate a (hopefully) unique name.

    f = tmp_file.TMPDIR + sprintf( "/algae%d.%d"; $pid; tmp_file.count += 1 );

    # Open the file.

    close( f );
    fprintf( f; "" );

    # Give it to "cleanup"

    fprintf( tmp_file.cleanup; " %s"; f );

    return f;

};

tmp_file.count = 0;
tmp_file.cleanup = "!/bin/rm -f `cat`";

tmp_file.TMPDIR = string( getenv( "TMPDIR" ) );
if ( tmp_file.TMPDIR == "" ) { tmp_file.TMPDIR = "/tmp"; }


syntax highlighted by Code2HTML, v. 0.9.1