+input_response_destroy(InputResponse *inp)
+{
+ g_free(inp->input);
+ g_string_free(inp->response, TRUE);
+ g_slice_free(InputResponse, inp);
+}
+
+static InputResponse *
+ensure_input_response_object(ChimaraIFPrivate *priv, char *string_id)
+{
+ InputResponse *retval = g_hash_table_lookup(priv->active_inputs, string_id);
+ if(retval == NULL)
+ {
+ char *new_key = g_strdup(string_id);
+ priv->window_librock_list = g_slist_prepend(priv->window_librock_list, new_key);
+ retval = input_response_new();
+ g_hash_table_insert(priv->active_inputs, new_key, retval);
+ }
+ return retval;
+}
+
+static void
+emit_command_signal_on_active_inputs(char *window_librock, ChimaraGlk *glk)