static int print_key (SCM smob, SCM port, scm_print_state *pstate) { struct key_data *key_data = _scm_to_key_data (smob); SCM type = guile_ssh_key_get_type (smob); scm_puts ("#<key ", port); scm_display (type, port); scm_putc (' ', port); scm_puts (_private_key_p (key_data) ? "(private) " : "(public) ", port); scm_display (_scm_object_hex_address (smob), port); scm_puts (">", 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; }