-
- case VAL_GRS1:
- dummy = 0;
- if (!(p->rec_buf = data1_nodetogr(p->dh, node, selected,
- p->odr, &dummy)))
- p->diagnostic = 238; /* not available in requested syntax */
- else
- p->rec_len = -1;
- break;
- case VAL_EXPLAIN:
- if (!(p->rec_buf = data1_nodetoexplain(p->dh, node, selected,
- p->odr)))
- p->diagnostic = 238;
- else
- p->rec_len = -1;
- break;
- case VAL_SUMMARY:
- if (!(p->rec_buf = data1_nodetosummary(p->dh, node, selected,
- p->odr)))
- p->diagnostic = 238;
- else
- p->rec_len = -1;
- break;
- case VAL_SUTRS:
- if (!(p->rec_buf = data1_nodetobuf(p->dh, node, selected,
- (int*)&p->rec_len)))
- p->diagnostic = 238;
- break;
- case VAL_SOIF:
- if (!(p->rec_buf = data1_nodetosoif(p->dh, node, selected,
- (int*)&p->rec_len)))
- p->diagnostic = 238;
+
+ case VAL_TEXT_XML:
+ if (!(p->rec_buf = data1_nodetoidsgml(p->dh, node, selected,
+ &p->rec_len)))
+ p->diagnostic = 238;
+ else
+ {
+ char *new_buf = (char*) odr_malloc (p->odr, p->rec_len);
+ memcpy (new_buf, p->rec_buf, p->rec_len);
+ p->rec_buf = new_buf;
+ }
+ break;
+ case VAL_GRS1:
+ dummy = 0;
+ if (!(p->rec_buf = data1_nodetogr(p->dh, node, selected,
+ p->odr, &dummy)))
+ p->diagnostic = 238; /* not available in requested syntax */
+ else
+ p->rec_len = (size_t) (-1);
+ break;
+ case VAL_EXPLAIN:
+ if (!(p->rec_buf = data1_nodetoexplain(p->dh, node, selected,
+ p->odr)))
+ p->diagnostic = 238;
+ else
+ p->rec_len = (size_t) (-1);
+ break;
+ case VAL_SUMMARY:
+ if (!(p->rec_buf = data1_nodetosummary(p->dh, node, selected,
+ p->odr)))
+ p->diagnostic = 238;
+ else
+ p->rec_len = (size_t) (-1);
+ break;
+ case VAL_SUTRS:
+ if (!(p->rec_buf = data1_nodetobuf(p->dh, node, selected,
+ &p->rec_len)))
+ p->diagnostic = 238;
+ else
+ {
+ char *new_buf = (char*) odr_malloc (p->odr, p->rec_len);
+ memcpy (new_buf, p->rec_buf, p->rec_len);
+ p->rec_buf = new_buf;
+ }
+ break;
+ case VAL_SOIF:
+ if (!(p->rec_buf = data1_nodetosoif(p->dh, node, selected,
+ &p->rec_len)))
+ p->diagnostic = 238;
+ else
+ {
+ char *new_buf = (char*) odr_malloc (p->odr, p->rec_len);
+ memcpy (new_buf, p->rec_buf, p->rec_len);
+ p->rec_buf = new_buf;
+ }
+ break;
+ default:
+ if (!node->u.root.absyn)
+ {
+ p->diagnostic = 238;