Ejemplo n.º 1
0
void printtext_init(void)
{
	sending_print_starting = FALSE;
	signal_gui_print_text_finished = signal_get_uniq_id("gui print text finished");
	signal_print_starting = signal_get_uniq_id("print starting");
	signal_print_text = signal_get_uniq_id("print text");
	signal_print_format = signal_get_uniq_id("print format");

	read_settings();
	signal_add("print text", (SIGNAL_FUNC) sig_print_text);
	signal_add("gui dialog", (SIGNAL_FUNC) sig_gui_dialog);
	signal_add("setup changed", (SIGNAL_FUNC) read_settings);
}
Ejemplo n.º 2
0
/* bind a signal */
void signal_add_to(const char *module, int pos, const char *signal,
		   SIGNAL_FUNC func)
{
	SIGNAL_REC *rec;
	int signal_id;

	g_return_if_fail(signal != NULL);
	g_return_if_fail(func != NULL);
	g_return_if_fail(pos >= 0 && pos < SIGNAL_LISTS);

	signal_id = signal_get_uniq_id(signal);

	rec = g_hash_table_lookup(signals, GINT_TO_POINTER(signal_id));
	if (rec == NULL) {
		rec = g_mem_chunk_alloc0(signals_chunk);
		g_hash_table_insert(signals, GINT_TO_POINTER(signal_id), rec);
	}

	if (strcmp(signal, "signal") == 0)
		first_signal_rec = rec;
	else if (strcmp(signal, "last signal") == 0)
		last_signal_rec = rec;

	if (rec->siglist[pos] == NULL) {
		rec->siglist[pos] = g_ptr_array_new();
		rec->modulelist[pos] = g_ptr_array_new();
	}

	g_ptr_array_add(rec->siglist[pos], (void *) func);
	g_ptr_array_add(rec->modulelist[pos], (void *) module);
}
Ejemplo n.º 3
0
void pidwait_init(void)
{
    pids = NULL;
    childcheck_tag = g_timeout_add(1000, (GSourceFunc) child_check, NULL);

    signal_pidwait = signal_get_uniq_id("pidwait");
}
Ejemplo n.º 4
0
void rawlog_init(void)
{
	signal_rawlog = signal_get_uniq_id("rawlog");

	settings_add_int("history", "rawlog_lines", 200);
	read_settings();

	signal_add("setup changed", (SIGNAL_FUNC) read_settings);
}
Ejemplo n.º 5
0
void fe_exec_init(void)
{
	command_bind("exec", NULL, (SIGNAL_FUNC) cmd_exec);
	command_set_options("exec", "!- interactive nosh +name out +msg +notice +in window close +level quiet");

        signal_exec_input = signal_get_uniq_id("exec input");
        signal_add("pidwait", (SIGNAL_FUNC) sig_pidwait);
        signal_add("exec input", (SIGNAL_FUNC) sig_exec_input);
        signal_add("window destroyed", (SIGNAL_FUNC) sig_window_destroyed);
	signal_add_first("send text", (SIGNAL_FUNC) event_text);
}
Ejemplo n.º 6
0
Archivo: rawlog.c Proyecto: Liaf/irssi
void rawlog_init(void)
{
	signal_rawlog = signal_get_uniq_id("rawlog");

	settings_add_int("history", "rawlog_lines", 200);
	read_settings();

	signal_add("setup changed", (SIGNAL_FUNC) read_settings);

	command_bind("rawlog", NULL, (SIGNAL_FUNC) cmd_rawlog);
	command_bind("rawlog save", NULL, (SIGNAL_FUNC) cmd_rawlog_save);
	command_bind("rawlog open", NULL, (SIGNAL_FUNC) cmd_rawlog_open);
	command_bind("rawlog close", NULL, (SIGNAL_FUNC) cmd_rawlog_close);
}
Ejemplo n.º 7
0
/* stop ongoing signal emission by signal name */
void signal_stop_by_name(const char *signal)
{
	SIGNAL_REC *rec;
	int signal_id;

	signal_id = signal_get_uniq_id(signal);
	rec = g_hash_table_lookup(signals, GINT_TO_POINTER(signal_id));
	if (rec == NULL)
		g_warning("signal_stop_by_name() : unknown signal \"%s\"", signal);
	else if (rec->emitting <= rec->stop_emit)
		g_warning("signal_stop_by_name() : signal \"%s\" not being emitted", signal);
	else
		rec->stop_emit++;
}
Ejemplo n.º 8
0
int signal_emit(const char *signal, int params, ...)
{
	va_list va;
	int signal_id, ret;

	/* get arguments */
	signal_id = signal_get_uniq_id(signal);

	va_start(va, params);
	ret = signal_emitv_id(signal_id, params, va);
	va_end(va);

	return ret;
}
Ejemplo n.º 9
0
/* unbind signal */
void signal_remove(const char *signal, SIGNAL_FUNC func)
{
	SIGNAL_REC *rec;
	int signal_id, found;

	g_return_if_fail(signal != NULL);
	g_return_if_fail(func != NULL);

	signal_id = signal_get_uniq_id(signal);

	rec = g_hash_table_lookup(signals, GINT_TO_POINTER(signal_id));
	found = rec == NULL ? 0 :
		signal_remove_from_lists(rec, signal_id, func);

	if (!found) {
		g_warning("signal_remove() : signal \"%s\" isn't "
			  "grabbed for %p", signal, func);
	}
}
Ejemplo n.º 10
0
static void perl_signal_add_full_int(const char *signal, SV *func,
				     int priority, int command,
				     const char *category)
{
        PERL_SCRIPT_REC *script;
	PERL_SIGNAL_REC *rec;
	GSList **siglist;
	void *signal_idp;

        g_return_if_fail(signal != NULL);
        g_return_if_fail(func != NULL);

        script = perl_script_find_package(perl_get_package());
        g_return_if_fail(script != NULL);

	rec = g_new(PERL_SIGNAL_REC, 1);
        rec->script = script;
	rec->signal_id = signal_get_uniq_id(signal);
	rec->signal = g_strdup(signal);
	rec->func = perl_func_sv_inc(func, perl_get_package());

	if (command || strncmp(signal, "command ", 8) == 0) {
		/* we used Irssi::signal_add() instead of
		   Irssi::command_bind() - oh well, allow this.. */
		command_bind_full(MODULE_NAME, priority, signal+8, -1,
				  category, sig_func, rec);
	} else {
		signal_add_full_id(MODULE_NAME, priority, rec->signal_id,
				   sig_func, rec);
	}

	signal_idp = GINT_TO_POINTER(rec->signal_id);
	siglist = g_hash_table_lookup(signals, signal_idp);
	if (siglist == NULL) {
		siglist = g_new0(GSList *, 1);
		g_hash_table_insert(signals, signal_idp, siglist);
	}