void set_clipboard_text(unsigned char *data) { /* GNU Screen's clipboard */ if (is_gnuscreen()) { struct string str; if (!init_string(&str)) return; add_to_string(&str, "screen -X register . "); add_shell_quoted_to_string(&str, data, strlen(data)); if (str.length) exe(str.source); if (str.source) done_string(&str); } /* TODO: internal clipboard */ }
void set_clipboard_text(unsigned char *data) { /* GNU Screen's clipboard */ if (is_gnuscreen()) { struct string str; if (!init_string(&str)) return; add_to_string(&str, (const unsigned char *)"screen -X register . "); add_shell_quoted_to_string(&str, data, strlen((const char *)data)); if (str.length) exe(str.source); if (str.source) done_string(&str); } /* Shouldn't complain about leaks. */ if (clipboard) free(clipboard); clipboard = (unsigned char *)strdup((const char *)data); }