static FILE* DaoIO_OpenFile( DaoProcess *proc, DString *name, const char *mode, int silent ) { DString *fname = DString_Copy( name ); char buf[200]; FILE *fin; DaoIO_MakePath( proc, fname ); fin = Dao_OpenFile( fname->chars, mode ); DString_Delete( fname ); if( fin == NULL && silent == 0 ){ snprintf( buf, sizeof(buf), "error opening file: %s", DString_GetData( name ) ); DaoProcess_RaiseError( proc, "Stream", buf ); return NULL; } return fin; }
static FILE* DaoIO_OpenFile( DaoProcess *proc, DString *name, const char *mode, int silent ) { DString *fname = DString_Copy( name ); char buf[IO_BUF_SIZE]; FILE *fin; DString_ToMBS( fname ); DaoIO_MakePath( proc, fname ); fin = fopen( fname->mbs, mode ); DString_Delete( fname ); if( fin == NULL && silent == 0 ){ snprintf( buf, IO_BUF_SIZE, "error opening file: %s", DString_GetMBS( name ) ); DaoProcess_RaiseException( proc, DAO_ERROR, buf ); return NULL; } return fin; }