static int gdbscm_memory_port_print (SCM exp, SCM port, scm_print_state *pstate) { ioscm_memory_port *iomem = (ioscm_memory_port *) SCM_STREAM (exp); char *type = SCM_PTOBNAME (SCM_PTOBNUM (exp)); scm_puts ("#<", port); scm_print_port_mode (exp, port); /* scm_print_port_mode includes a trailing space. */ gdbscm_printf (port, "%s %s-%s", type, hex_string (iomem->start), hex_string (iomem->end)); scm_putc ('>', port); return 1; }
static int mu_port_print (SCM exp, SCM port, scm_print_state *pstate) { struct mu_port *mp = MU_PORT (exp); mu_off_t size = 0; scm_puts ("#<", port); scm_print_port_mode (exp, port); scm_puts ("mu-port", port); if (mu_stream_size (mp->stream, &size) == 0) { char *buf; if (mu_asprintf (&buf, " %5lu", (unsigned long) size) == 0) { scm_puts (buf, port); scm_puts (" chars", port); free (buf); } } scm_putc ('>', port); return 1; }
/* Print the CHANNEL object to port PORT. */ static int print_channel (SCM channel, SCM port, scm_print_state *pstate) { struct channel_data *ch = NULL; #if USING_GUILE_BEFORE_2_2 if (SCM_PTAB_ENTRY (channel)) ch = _scm_to_channel_data (channel); #else ch = _scm_to_channel_data (channel); #endif scm_puts ("#<", port); if (! ch) { scm_puts ("unknown channel (freed) ", port); } else { scm_print_port_mode (channel, port); scm_puts ("channel ", port); if (SCM_OPPORTP (channel)) { int is_open = ssh_channel_is_open (ch->ssh_channel); scm_puts (is_open ? "(open) " : "(closed) ", port); } else { scm_puts ("(closed) ", port); } } scm_display (_scm_object_hex_address (channel), port); scm_puts (">", port); return 1; }