- struct exbody *e = (struct exbody *) ct->c_ctparams;
- CT p = e->eb_content;
-
- if (!type_ok(p, 0))
- return OK;
-
- return show_switch(p, serial, alternate);
-
-#if 0
- content_error(NULL, p, "don't know how to display content");
- return NOTOK;
-#endif
+ char **ap, **ep;
+ char *msg;
+ FILE *fp;
+ char buf[BUFSIZ];
+
+ msg = add("You need to fetch the contents yourself:\n", NULL);
+ ap = ct->c_ctinfo.ci_attrs;
+ ep = ct->c_ctinfo.ci_values;
+ for (; *ap; ap++, ep++) {
+ msg = add(concat("\t", *ap, ": ", *ep, NULL), msg);
+ }
+ if (!(fp = fopen(ct->c_file, "r"))) {
+ adios(EX_IOERR, ct->c_file, "unable to open");
+ }
+ fseek(fp, ct->c_begin, SEEK_SET);
+ while (!feof(fp) && ftell(fp) < ct->c_end) {
+ if (!fgets(buf, sizeof buf, fp)) {
+ adios(EX_IOERR, ct->c_file, "unable to read");
+ }
+ *strchr(buf, '\n') = '\0';
+ if (!*buf) {
+ continue; /* skip empty lines */
+ }
+ msg = add(concat("\t", buf, "\n", NULL), msg);
+ }
+ fclose(fp);
+ show_content_aux(ct, alternate, "%l", NULL);
+ fputs(msg, stdout);
+ return OK;