/*------------------------------------------------------------------------- * Function: _lite_PD_mk_descriptor * * Purpose: Build a member descriptor out of the given string. * * Return: Success: * * Failure: * * Programmer: Adapted from PACT PDB * Mar 5, 1996 2:06 PM EST * * Modifications: * Eric Brugger, Tue Dec 8 15:16:07 PST 1998 * Remove unnecessary calls to lite_SC_mark, since reference count now * set when allocated. * *------------------------------------------------------------------------- */ memdes * _lite_PD_mk_descriptor (char *member, int defoff) { memdes *desc; char *ms, *ts, *bs, *ns, *p; dimdes *nd; desc = FMAKE(memdes, "_PD_MK_DESCRIPTOR:desc"); /* * Get rid of any leading white space. */ for (p = member; strchr(" \t\n\r\f", *p) != NULL; p++) /*void*/ ; ms = lite_SC_strsavef(p, "char*:_PD_MK_DESCRIPTOR:member"); ts = _lite_PD_member_type(p); bs = _lite_PD_member_base_type(p); ns = _lite_PD_member_name(p); nd = _lite_PD_ex_dims(p, defoff, FALSE); desc->member = ms; desc->type = ts; desc->base_type = bs; desc->name = ns; desc->dimensions = nd; desc->number = _lite_PD_comp_num(desc->dimensions); desc->member_offs = -1L; desc->cast_offs = -1L; desc->cast_memb = NULL; desc->next = NULL; return(desc); }
int lite_PD_write_as (PDBfile *file, char *name, char *intype, char *outtype, lite_SC_byte *vr) { syment *ep; dimdes *dims; char *lname, fullpath[MAXLINE]; strcpy(fullpath, _lite_PD_fixname(file, name)); lname = lite_SC_firsttok(fullpath, "."); dims = _lite_PD_ex_dims(lname, file->default_offset, FALSE); ep = _PD_write(file, name, intype, outtype, vr, dims, _append_flag); if (ep != NULL) { _lite_PD_rl_syment_d(ep); return(TRUE); } else { return(FALSE); } }