static VALUE rg_get_text(int argc, VALUE *argv, VALUE self) { VALUE get_attrs, include_trailing_spaces, proc, rb_text; GArray *attrs = NULL; char *text; rb_scan_args(argc, argv, "02&", &get_attrs, &include_trailing_spaces, &proc); if (get_attrs != Qfalse) attrs = g_array_new(FALSE, TRUE, sizeof(VteCharAttributes)); if (RVAL2CBOOL(include_trailing_spaces)) { text = vte_terminal_get_text_include_trailing_spaces( _SELF(self), term_is_selected_cb, (gpointer)proc, attrs); } else { text = vte_terminal_get_text(_SELF(self), term_is_selected_cb, (gpointer)proc, attrs); } rb_text = CSTR2RVAL(text); free(text); if (attrs) { VALUE rb_attrs; rb_attrs = attrary2rval(attrs); g_array_free(attrs, TRUE); return rb_ary_new3(2, rb_text, rb_attrs); } else { return rb_text; } }
std::string terminal::get_text() { std::string text; if ( m_terminal != NULL ) text = vte_terminal_get_text(m_terminal, NULL, NULL, NULL); return(text); }