- const char *map = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz0123456789+/";
- int olen = 0;
- int len = strlen(in);
-
- while (len >= 4)
- {
- char i0, i1, i2, i3;
- char *p;
-
- if (!(p = strchr(map, in[0])))
- return 0;
- i0 = p - map;
- len--;
- if (!(p = strchr(map, in[1])))
- return 0;
- i1 = p - map;
- len--;
- *(out++) = i0 << 2 | i1 >> 4;
- olen++;
- if (in[2] == '=')
- break;
- if (!(p = strchr(map, in[2])))
- return 0;
- i2 = p - map;
- len--;
- *(out++) = i1 << 4 | i2 >> 2;
- olen++;
- if (in[3] == '=')
- break;
- if (!(p = strchr(map, in[3])))
- return 0;
- i3 = p - map;
- len--;
- *(out++) = i2 << 6 | i3;
- olen++;
-
- in += 4;
- }
+ Z_AttributeList *attributes= (Z_AttributeList *)
+ odr_malloc(o, sizeof(*attributes));
+ Z_AttributeElement ** elements;
+ attributes->num_attributes = 1;
+ elements = (Z_AttributeElement**)
+ odr_malloc(o, attributes->num_attributes * sizeof(*elements));
+ elements[0] = (Z_AttributeElement*) odr_malloc(o,sizeof(**elements));
+ elements[0]->attributeType = odr_intdup(o, 1);
+ elements[0]->attributeSet = odr_nullval();
+ elements[0]->which = Z_AttributeValue_complex;
+ elements[0]->value.complex = (Z_ComplexAttribute *)
+ odr_malloc(o, sizeof(Z_ComplexAttribute));
+ elements[0]->value.complex->num_list = 1;
+ elements[0]->value.complex->list = (Z_StringOrNumeric **)
+ odr_malloc(o, 1 * sizeof(Z_StringOrNumeric *));
+ elements[0]->value.complex->list[0] = (Z_StringOrNumeric *)
+ odr_malloc(o, sizeof(Z_StringOrNumeric));
+ elements[0]->value.complex->list[0]->which = Z_StringOrNumeric_string;
+ elements[0]->value.complex->list[0]->u.string = odr_strdup(o, name);
+ elements[0]->value.complex->semanticAction = 0;
+ elements[0]->value.complex->num_semanticAction = 0;
+ attributes->attributes = elements;
+ return attributes;
+}