+ int i;
+#if 0
+ if (type == ODR_OCTETSTRING)
+ {
+ const char **stack_names = odr_get_element_path(o);
+ for (i = 0; stack_names[i]; i++)
+ fprintf((FILE*) handle, "[%s]", stack_names[i]);
+ fputs("\n", (FILE*) handle);
+ }
+#endif
+ for (i = 0; i<len; i++)
+ {
+ unsigned c = ((const unsigned char *) buf)[i];
+ if (i == 2000 && len > 3100)
+ {
+ fputs(" ..... ", (FILE*) handle);
+ i = len - 1000;
+ }
+ if (strchr("\r\n\f\t", c) || (c >= ' ' && c <= 126))
+ putc(c, (FILE*) handle);
+ else
+ {
+ char x[5];
+ sprintf(x, "\\X%02X", c);
+ fputs(x, (FILE*) handle);
+ }
+ }