+ }
+ if (!yes)
+ continue;
+ Tcl_AppendResult (interp, "{ ", NULL);
+ sprintf (tmpbuf, "%d", e->tagType);
+ Tcl_AppendElement (interp, tmpbuf);
+
+ if (e->tagWhich == Z_StringOrNumeric_numeric)
+ {
+ Tcl_AppendResult (interp, " numeric ", NULL);
+ sprintf (tmpbuf, "%d", e->tagVal.num);
+ Tcl_AppendElement (interp, tmpbuf);
+ }
+ else
+ {
+ Tcl_AppendResult (interp, " string ", NULL);
+ Tcl_AppendElement (interp, e->tagVal.str);
+ }
+ switch (e->dataWhich)
+ {
+ case Z_ElementData_octets:
+ Tcl_AppendResult (interp, " octets {} ", NULL);
+ break;
+ case Z_ElementData_numeric:
+ Tcl_AppendResult (interp, " numeric ", NULL);
+ sprintf (tmpbuf, "%d", e->tagData.num);
+ Tcl_AppendElement (interp, tmpbuf);
+ break;
+ case Z_ElementData_date:
+ Tcl_AppendResult (interp, " date {} ", NULL);
+ break;
+ case Z_ElementData_ext:
+ Tcl_AppendResult (interp, " ext {} ", NULL);
+ break;
+ case Z_ElementData_string:
+ Tcl_AppendResult (interp, " string ", NULL);
+ Tcl_AppendElement (interp, e->tagData.str);
+ break;
+ case Z_ElementData_trueOrFalse:
+ Tcl_AppendResult (interp, " bool ",
+ e->tagData.bool ? "1" : "0", " ", NULL);
+ break;
+ case Z_ElementData_oid:
+ Tcl_AppendResult (interp, " oid {} ", NULL);
+ break;
+ case Z_ElementData_intUnit:
+ Tcl_AppendResult (interp, " intUnit {} ", NULL);
+ break;
+ case Z_ElementData_elementNotThere:
+ Tcl_AppendResult (interp, " notThere {} ", NULL);
+ break;
+ case Z_ElementData_elementEmpty:
+ Tcl_AppendResult (interp, " empty {} ", NULL);
+ break;
+ case Z_ElementData_noDataRequested:
+ Tcl_AppendResult (interp, " notRequested {} ", NULL);
+ break;
+ case Z_ElementData_diagnostic:
+ Tcl_AppendResult (interp, " diagnostic {} ", NULL);
+ break;
+ case Z_ElementData_subtree:
+ Tcl_AppendResult (interp, " subtree { ", NULL);
+ ir_tcl_get_grs_r (interp, e->tagData.sub, argc, argv, argno+1);