Article # 13, added by Geoworks, historical record
| first | previous | index | next | last |

Error opening GEOS.INI file in GEOS.




Question:
When I try to open the GEOS.INI file in my text editor, an error dialog
appears saying I can't open the file. This I understand, but later on the
program crashes when I try to exit.

Answer:
The problem is in the GenDocument object that is created for the GEOS.INI
file. Even though a message appears saying you can't open the file, a
GenDocument object was created for it and, unfortunately, it remains in
memory, uninitialized, waiting to cause an error later on. To solve this, in
your MSG_GEN_DOCUMENT_OPEN handler, check for an error returned by the
superclass, then remove the GenDocument object. Here is a sample:

    @method ZTEDocumentClass, MSG_GEN_DOCUMENT_OPEN {
        word * error;   /* Error value from ReadDataFromFile. */
        optr   ourText; /* Pointer to current text object. */

           /*
            * Check if error occurred during open.
            * If so, cancel the open. Return error status.
            * (Don't try to do MSG_GEN_DESTROY, that gives an error.)
            */
        if ( @callsuper() ) {
            @send self::MSG_GEN_REMOVE( VUM_NOW, 0 );
            return( TRUE );
        }
        else {
               /*
                * Read in text file by calling read data function.
                * Prepare necessary parameters first.
                */
            pself = ObjDerefGen( oself );
            ourText = ConstructOptr( pself->ZTEDI_textHandle,
                                     OptrToChunk( @ZTEText) );
            if ( ReadDataFromFile( pself->GDI_fileHandle, ourText, error ) ) {
                *fileOrError = *error;
                return( TRUE );
            }
            else {
                return( FALSE );
            }
        }
    } /* MSG_GEN_DOCUMENT_OPEN */