- char *pdup;
- inline_subfield *parent = 0;
-
- p += 2*SZ_IND;
-
- if (!strlen(p) || *p != '$')
- {
- return pf;
- }
-
- pdup = p = xstrdup(p);
-
- for (p=strtok(p, "$"); p; p = strtok(NULL, "$"))
- {
- inline_subfield *psf = inline_mk_subfield(parent);
-
- if (!psf)
- break;
-
- if (!parent)
- pf->list = psf;
- else
- parent->next = psf;
- parent = psf;
- sscanf(p, "%1s", psf->name);
- p += SZ_SFNAME;
- psf->data = (char *) xstrdup(p);
- }
-
- xfree(pdup);