
     **********************************************************
     *  ACHTUNG: EFUN EXISTIERT NICHT MEHR! NICHT VERWENDEN!  *
     **********************************************************

SYNOPSIS
        string extract(string str, int from, int to)
        string extract(string str, int from)

DESCRIPTION
	DO NOT USE THIS EFUN ANYMORE! IT HAS BEEN REMOVED FROM THE DRIVER.

        Extract a substring from a string.
        This is the old notation for str[from..to] and supported
        only for hysterical raisins.
        
        In LDMud this efun is temporarily a simulated efun until is finally
        droppped.

HISTORY
        Removed in LDMud 3.3.

SEE ALSO
        [](E)

11.11.2006 Zesstra
