- /*
- * The boundary indicator string must be stored in a
- * c_ctinfo.ci_values slot. We use the first slot because this is
- * a new object. ci_attrs[0] can be anything, it is never output.
- * It is chosen to be very unlikely to collide with a real
- * attribute, to contains text that ci_values[0] can point to, and
- * gives traceability back to the origin of this part, though that
- * would only be useful in a debugger.
- */
- name = concat (" ", typename, "/", subtypename, boundary_indicator,
- boundary, NULL);
- if ((cp = strstr (name, boundary_indicator))) {
- ct->c_ctinfo.ci_attrs[0] = name;
- ct->c_ctinfo.ci_attrs[1] = NULL;
- /* ci_values don't get free'd, so point into ci_attrs. */
- ct->c_ctinfo.ci_values[0] = cp + strlen (boundary_indicator);
- }
+ add_param(&ct->c_ctinfo.ci_first_pm, &ct->c_ctinfo.ci_last_pm,
+ "boundary", boundary, 0);