SYNOPSIS
        int    save_object(string name [, int format])
        string save_object([int format])

DESCRIPTION
        Encode the saveable variables of the current object into a string.

        In the first form, the string is written to the file <name>.
        A suffix ".c" will be stripped from the name, the suffix ".o"
        may be added by the master object during the check in
        valid_read(). Result is 0 if the save file could be created,
        and non-zero on a non-fatal error (file could not be written,
        or current object is destructed).

        In the second form the string is returned directly. If the
        object is destructed, the result is 0.

        In both forms, the optional <format> argument determines the
        format of the savefile to be written:

           -1: use the driver's native format (default).
            0: original format, used by Amylaar LPMud and LDMud <= 3.2.8 .
            1: LDMud >= 3.2.9: non-lambda closures, symbols, quoted arrays
                 can be saved.

        A variable is considered 'saveable' if it is not declared
        as 'nosave' or 'static'.

        Only lfuns bound to the current object can be saved.

HISTORY
        Since LDMud 3.2.8, save_object() returns a success value.
          The direct encoding into a string was added in LDMud 3.2.8, but
          may be moved into a different efun in future.
        LDMud 3.2.9 added the saving of non-lambda closures, symbols,
          and quoted arrays, using a new savefile format version.
        LDMud 3.2.10 added the <format> argument.

SEE ALSO
        restore_object(E), save_value(E)
