static status loadDate(Date d, IOSTREAM *fd, ClassDef def) { if ( restoreVersion != 2 ) TRY(loadSlotsObject(d, fd, def)); d->unix_date = loadWord(fd); succeed; }
static status loadHyper(Hyper h, IOSTREAM *fd, ClassDef def) { TRY(loadSlotsObject(h, fd, def)); if ( restoreVersion >= 13 ) { attachHyperObject(h->from, h, h->to); attachHyperObject(h->to, h, h->from); } succeed; }
static status loadStyle(Style s, IOSTREAM *fd, ClassDef def) { loadSlotsObject(s, fd, def); s->attributes = loadWord(fd); if ( s->font == NIL ) /* prior version 10 */ assign(s, font, DEFAULT); if ( s->colour == NIL ) assign(s, colour, DEFAULT); succeed; }
static status loadSyntaxTable(SyntaxTable t, IOSTREAM *fd, ClassDef def) { TRY(loadSlotsObject(t, fd, def)); t->table = alloc(FLAGS_SIZE(t)); t->context = alloc(CONTEXT_SIZE(t)); Sfread(t->table, sizeof(char), FLAGS_SIZE(t), fd); Sfread(t->context, sizeof(char), CONTEXT_SIZE(t), fd); swapBytesTable(t); succeed; }
static status loadVector(Vector v, IOSTREAM *fd, ClassDef def) { int n; Any obj; int size; loadSlotsObject(v, fd, def); size = valInt(v->size); v->allocated = v->size; v->elements = alloc(size * sizeof(Any)); for(n = 0; n < size; n++) { TRY( obj = loadObject(fd) ); v->elements[n] = NIL; assignVector(v, n, obj); } succeed; }
static status loadLine(Line ln, IOSTREAM *fd, ClassDef def) { TRY(loadSlotsObject(ln, fd, def)); if ( isNil(ln->start_x) ) /* convert old (pre-4.9.4) line */ { Area a = ln->area; /* representation */ int x = valInt(a->x); int y = valInt(a->y); int w = valInt(a->w); int h = valInt(a->h); int x1, y1, x2, y2; area_points(x, y, w, h); assign(ln, start_x, toInt(x1)); assign(ln, start_y, toInt(y1)); assign(ln, end_x, toInt(x2)); assign(ln, end_y, toInt(y2)); } succeed; }