static int lengthOfAttributes(PT_Attributes attrs) { if (PT_hasAttributesAttrs(attrs)) { return 3 + lengthOfAttrs(PT_getAttributesAttrs(attrs)); } return 0; }
static int yieldAttributes(PT_Attributes attrs, int idx, char *buf, int bufSize) { if (PT_hasAttributesAttrs(attrs)) { buf[idx++] = ' '; buf[idx++] = '{'; idx = yieldAttrs(PT_getAttributesAttrs(attrs), idx, buf, bufSize); buf[idx++] = '}'; } return idx; }
/*{{{ static SDF_Attributes PTAttributesToSDFAttributes(PT_Attributes ptAttributes) */ static SDF_Attributes PTAttributesToSDFAttributes(PT_Attributes ptAttributes) { SDF_Attributes result; if (PT_isAttributesNoAttrs(ptAttributes)) { result = SDF_makeAttributesNoAttrs(); } else { PT_Attrs ptAttributeList; SDF_AttributeList sdfAttributeList; ptAttributeList = PT_getAttributesAttrs(ptAttributes); sdfAttributeList = PTAttrsToSDFAttributeList(ptAttributeList); result = SDF_makeAttributesAttrs(SDF_makeLayoutEmpty(), sdfAttributeList, SDF_makeLayoutEmpty()); } return result; }