+data1_node *data1_mk_tag_data_wd(data1_handle dh, data1_node *root,
+ data1_node *at,
+ const char *tagname, NMEM m)
+{
+ return data1_add_insert_taggeddata (dh, root, at, tagname, m, 0);
+}
+
+
+data1_node *data1_mk_tag_data_int (data1_handle dh, data1_node *at,
+ const char *tag, int num,
+ NMEM nmem)
+{
+ data1_node *node_data;
+
+ node_data = data1_mk_tag_data (dh, at->root, at, tag, nmem);
+ if (!node_data)
+ return 0;
+ node_data->u.data.what = DATA1I_num;
+ node_data->u.data.data = node_data->lbuf;
+ sprintf (node_data->u.data.data, "%d", num);
+ node_data->u.data.len = strlen (node_data->u.data.data);
+ return node_data;
+}
+
+data1_node *data1_mk_tag_data_oid (data1_handle dh, data1_node *at,
+ const char *tag, Odr_oid *oid,
+ NMEM nmem)
+{
+ data1_node *node_data;
+ char str[128], *p = str;
+ Odr_oid *ii;
+
+ node_data = data1_mk_tag_data (dh, at->root, at, tag, nmem);
+ if (!node_data)
+ return 0;
+
+ for (ii = oid; *ii >= 0; ii++)
+ {
+ if (ii != oid)
+ *p++ = '.';
+ sprintf (p, "%d", *ii);
+ p += strlen (p);
+ }
+ node_data->u.data.what = DATA1I_oid;
+ node_data->u.data.len = strlen (str);
+ node_data->u.data.data = data1_insert_string (dh, node_data, nmem, str);
+ return node_data;
+}
+
+
+data1_node *data1_mk_tag_data_text (data1_handle dh, data1_node *at,
+ const char *tag, const char *str,
+ NMEM nmem)
+{
+ data1_node *node_data;
+
+ node_data = data1_mk_tag_data (dh, at->root, at, tag, nmem);
+ if (!node_data)
+ return 0;
+ node_data->u.data.what = DATA1I_text;
+ node_data->u.data.len = strlen (str);
+ node_data->u.data.data = data1_insert_string (dh, node_data, nmem, str);
+ return node_data;
+}
+
+
+data1_node *data1_mk_tag_data_text_uni (data1_handle dh, data1_node *at,
+ const char *tag, const char *str,
+ NMEM nmem)