void dm_init(SINGLE_QSP_ARG_DECL) { static int dm_inited=0; if( dm_inited ) return; dataobj_init(); dm_inited=1; }
Data_Obj *_pick_obj(QSP_ARG_DECL const char *pmpt) { const char *s; if( pmpt==NULL || *pmpt==0 ) pmpt="data object"; /* default prompt */ #ifdef HAVE_HISTORY /* pick_item() won't accept names with appended subscripts; * therefore use nameof and initialize the choices manually */ /* We might accidentally call this before dataobj_init()... */ if( dobj_itp == NULL ) dataobj_init(); // probably unnecessary now that we // call this when initializing a query stack... // That was done to get number formatting, // but probably that should be pulled out of data objects... if( intractive() ) init_item_hist(dobj_itp,pmpt); #endif /* HAVE_HISTORY */ s=NAMEOF(pmpt); return( get_obj(s) ); }
static void x_open_movie(QSP_ARG_DECL const char *filename) { /* prepare to play */ /* open file, create data object, read in */ Image_File *ifp; Data_Obj *dp; Movie *mvip; const char *pathname; pathname = movie_pathname(filename); ifp=open_image_file(QSP_ARG pathname,"r"); if( ifp == NO_IMAGE_FILE ) return; if( ram_area_p == NO_AREA ) dataobj_init(SINGLE_QSP_ARG); dp = make_dobj(QSP_ARG filename, OBJ_TYPE_DIMS(ifp->if_dp), OBJ_PREC_PTR(ifp->if_dp)); if( dp == NO_OBJ ) return; read_object_from_file(QSP_ARG dp,ifp); /* should close file automatically!? */ /* make the movie object */ mvip = create_movie(QSP_ARG filename); if( mvip == NO_MOVIE ){ /* BUG free dobj here */ return; } mvip->mvi_flags = 0; mvip->mvi_data = dp; }