mirror of
https://github.com/weechat/weechat.git
synced 2026-06-30 06:46:38 +02:00
buffer: add property input_get_any_user_data in buffer (issue #2066)
This allows buffers to get any user input, including commands, that are sent to the buffer callback instead of being executed on the buffer.
This commit is contained in:
@@ -14574,6 +14574,7 @@ Arguments:
|
||||
** _nicklist_nicks_count_: number of nicks in nicklist
|
||||
** _nicklist_nicks_visible_count_: number of nicks displayed
|
||||
** _input_: 1 if input is enabled, otherwise 0
|
||||
** _input_get_any_user_data_: 1 if any user data, including commands, are sent to input callback, otherwise 0
|
||||
** _input_get_unknown_commands_: 1 if unknown commands are sent to input callback, otherwise 0
|
||||
** _input_get_empty_: 1 if empty input is sent to input callback, otherwise 0
|
||||
** _input_multiline_: 1 if multiple lines are sent as one message to input callback, otherwise 0
|
||||
@@ -14890,6 +14891,10 @@ Properties:
|
||||
| input_pos | | position
|
||||
| Set cursor position in buffer input.
|
||||
|
||||
| input_get_any_user_data | 4.3.0 | "0" or "1"
|
||||
| "0" to get only user messages (default behavior), "1" to get everything,
|
||||
including commands.
|
||||
|
||||
| input_get_unknown_commands | | "0" or "1"
|
||||
| "0" to disable unknown commands on this buffer (default behavior), "1" to
|
||||
get unknown commands, for example if user type "/unknowncmd", buffer will
|
||||
|
||||
@@ -707,6 +707,7 @@ inl:
|
||||
nicklist_visible_count: 0
|
||||
title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
|
||||
input: 1
|
||||
input_get_any_user_data: 0
|
||||
input_get_unknown_commands: 0
|
||||
input_get_empty: 0
|
||||
input_multiline: 0
|
||||
|
||||
@@ -14890,6 +14890,7 @@ Paramètres :
|
||||
** _nicklist_nicks_count_ : nombre de pseudos dans la liste de pseudos
|
||||
** _nicklist_nicks_visible_count_ : nombre de pseudos affichés
|
||||
** _input_ : 1 si la zone de saisie est activée, sinon 0
|
||||
** _input_get_any_user_data_ : 1 si toutes les données utilisateur, y compris les commandes, sont envoyées à la fonction de rappel "input", sinon 0
|
||||
** _input_get_unknown_commands_ : 1 si les commandes inconnues sont envoyées à la fonction de rappel "input", sinon 0
|
||||
** _input_get_empty_ : 1 si une entrée vide est envoyée à la fonction de rappel "input", sinon 0
|
||||
** _input_multiline_ : 1 si plusieurs lignes sont envoyées comme un seul message à la fonction de rappel "input", sinon 0
|
||||
@@ -15215,6 +15216,10 @@ Propriétés :
|
||||
| input_pos | | position
|
||||
| Change la position du curseur dans la zone de saisie.
|
||||
|
||||
| input_get_any_user_data | 4.3.0 | "0" or "1"
|
||||
| "0" pour recevoir seulement les messages utilisateur (comportement par défaut),
|
||||
"1" pour tout recevoir, y compris les commandes.
|
||||
|
||||
| input_get_unknown_commands | | "0" ou "1"
|
||||
| "0" pour désactiver les commandes inconnues sur ce tampon (comportement par
|
||||
défaut), "1" pour recevoir les commandes inconnues, par exemple si
|
||||
|
||||
@@ -723,6 +723,7 @@ inl:
|
||||
nicklist_visible_count: 0
|
||||
title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
|
||||
input: 1
|
||||
input_get_any_user_data: 0
|
||||
input_get_unknown_commands: 0
|
||||
input_get_empty: 0
|
||||
input_multiline: 0
|
||||
|
||||
@@ -15251,6 +15251,8 @@ Argomenti:
|
||||
// TRANSLATION MISSING
|
||||
** _nicklist_nicks_visible_count_: number of nicks displayed
|
||||
** _input_: 1 se l'input è abilitato, altrimenti 0
|
||||
// TRANSLATION MISSING
|
||||
** _input_get_any_user_data_: 1 if any user data, including commands, are sent to input callback, otherwise 0
|
||||
** _input_get_unknown_commands_: 1 se i comandi sconosciuti vengono inviati alla callback di input, altrimenti 0
|
||||
// TRANSLATION MISSING
|
||||
** _input_get_empty_: 1 if empty input is sent to input callback, otherwise 0
|
||||
@@ -15616,6 +15618,11 @@ Properties:
|
||||
| input_pos | | posizione
|
||||
| Imposta la posizione del cursore per l'input del buffer.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| input_get_any_user_data | 4.3.0 | "0" or "1"
|
||||
| "0" to get only user messages (default behavior), "1" to get everything,
|
||||
including commands.
|
||||
|
||||
| input_get_unknown_commands | | "0" oppure "1"
|
||||
| "0" per disabilitare i comandi sconosciuti per questo buffer (comportamento
|
||||
predefinito), "1" per ricevere i comandi sconosciuti, ad esempio se l'utente
|
||||
|
||||
@@ -14787,6 +14787,8 @@ int weechat_buffer_get_integer (struct t_gui_buffer *buffer,
|
||||
// TRANSLATION MISSING
|
||||
** _nicklist_nicks_visible_count_: number of nicks displayed
|
||||
** _input_: 入力可能な場合は 1、そうでない場合は 0
|
||||
// TRANSLATION MISSING
|
||||
** _input_get_any_user_data_: 1 if any user data, including commands, are sent to input callback, otherwise 0
|
||||
** _input_get_unknown_commands_: 未定義のコマンドを入力コールバックに送信する場合は 1、そうでない場合は 0
|
||||
** _input_get_empty_: 入力コールバックに何も送信されなかった場合は 1、そうでない場合は 0
|
||||
// TRANSLATION MISSING
|
||||
@@ -15123,6 +15125,11 @@ void weechat_buffer_set (struct t_gui_buffer *buffer, const char *property,
|
||||
| input_pos | | 位置
|
||||
| バッファ入力のカーソル位置を設定
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| input_get_any_user_data | 4.3.0 | "0" or "1"
|
||||
| "0" to get only user messages (default behavior), "1" to get everything,
|
||||
including commands.
|
||||
|
||||
| input_get_unknown_commands | | "0" または "1"
|
||||
| 指定したバッファに対する未定義のコマンドを無効にする場合は "0"
|
||||
(デフォルト)、未定義のコマンドを受け入れる場合は "1"、例えばユーザが "/unknowncmd"
|
||||
|
||||
@@ -728,6 +728,7 @@ inl:
|
||||
nicklist_visible_count: 0
|
||||
title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
|
||||
input: 1
|
||||
input_get_any_user_data: 0
|
||||
input_get_unknown_commands: 0
|
||||
input_get_empty: 0
|
||||
input_multiline: 0
|
||||
|
||||
@@ -14160,6 +14160,8 @@ int weechat_buffer_get_integer (struct t_gui_buffer *buffer,
|
||||
** _nicklist_nicks_count_: број надимака у листи надимака
|
||||
** _nicklist_nicks_visible_count_: број приказаних надимака
|
||||
** _input_: 1 ако је укључен унос, у супротном 0
|
||||
// TRANSLATION MISSING
|
||||
** _input_get_any_user_data_: 1 if any user data, including commands, are sent to input callback, otherwise 0
|
||||
** _input_get_unknown_commands_: 1 ако се непознате команде шаљу функцији повратног позива уноса, у супротном 0
|
||||
** _input_get_empty_: 1 ако се функцији повратног позива уноса шаље празан унос, у супротном 0
|
||||
** _input_multiline_: 1 ако се више линија шаље као једна порука функцији повратног позива уноса, у супротном 0
|
||||
@@ -14478,6 +14480,11 @@ void weechat_buffer_set (struct t_gui_buffer *buffer, const char *property,
|
||||
| input_pos | | позиција
|
||||
| Поставља позицију курсора у уносу бафера.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| input_get_any_user_data | 4.3.0 | "0" or "1"
|
||||
| "0" to get only user messages (default behavior), "1" to get everything,
|
||||
including commands.
|
||||
|
||||
| input_get_unknown_commands | | "0" или "1"
|
||||
| "0" да се за овај бафер искључе непознате команде (подразумевано понашање), "1" да
|
||||
се прихвате непознате команде, на пример ако корисник откуца „/unknowncmd”, бафер ће
|
||||
|
||||
@@ -656,6 +656,7 @@ inl:
|
||||
nicklist_visible_count: 0
|
||||
title: 'WeeChat 2.9-dev (C) 2003-2020 - https://weechat.org/'
|
||||
input: 1
|
||||
input_get_any_user_data: 0
|
||||
input_get_unknown_commands: 0
|
||||
input_get_empty: 0
|
||||
input_multiline: 0
|
||||
|
||||
+89
-17
@@ -131,7 +131,13 @@ COMMAND_CALLBACK(allbuf)
|
||||
{
|
||||
ptr_buffer = (struct t_gui_buffer *)arraylist_get (all_buffers, i);
|
||||
if (gui_buffer_valid (ptr_buffer))
|
||||
(void) input_data (ptr_buffer, argv_eol[1], NULL, 0);
|
||||
{
|
||||
(void) input_data (ptr_buffer,
|
||||
argv_eol[1],
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
}
|
||||
|
||||
arraylist_free (all_buffers);
|
||||
@@ -1642,7 +1648,11 @@ COMMAND_CALLBACK(color)
|
||||
if (string_strcmp (argv[1], "-o") == 0)
|
||||
{
|
||||
gui_color_info_term_colors (str_color, sizeof (str_color));
|
||||
(void) input_data (buffer, str_color, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
str_color,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
@@ -1837,7 +1847,11 @@ COMMAND_CALLBACK(command)
|
||||
{
|
||||
for (i = 0; commands[i]; i++)
|
||||
{
|
||||
(void) input_data (buffer, commands[i], NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
commands[i],
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
string_free_split_command (commands);
|
||||
}
|
||||
@@ -2221,7 +2235,11 @@ COMMAND_CALLBACK(debug)
|
||||
{
|
||||
COMMAND_MIN_ARGS(3, "time");
|
||||
gettimeofday (&time_start, NULL);
|
||||
(void) input_data (buffer, argv_eol[2], NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
argv_eol[2],
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
gettimeofday (&time_end, NULL);
|
||||
debug_display_time_elapsed (&time_start, &time_end, argv_eol[2], 1);
|
||||
return WEECHAT_RC_OK;
|
||||
@@ -2418,7 +2436,11 @@ COMMAND_CALLBACK(eval)
|
||||
options);
|
||||
if (result)
|
||||
{
|
||||
(void) input_data (buffer, result, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
result,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
free (result);
|
||||
}
|
||||
else
|
||||
@@ -2441,7 +2463,11 @@ COMMAND_CALLBACK(eval)
|
||||
result = eval_expression (ptr_args, pointers, NULL, options);
|
||||
if (result)
|
||||
{
|
||||
(void) input_data (buffer, result, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
result,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
free (result);
|
||||
}
|
||||
else
|
||||
@@ -3638,7 +3664,13 @@ COMMAND_CALLBACK(input)
|
||||
gui_input_insert (buffer, argv_eol[2]);
|
||||
}
|
||||
else if (string_strcmp (argv[1], "send") == 0)
|
||||
(void) input_data (buffer, argv_eol[2], NULL, 0);
|
||||
{
|
||||
(void) input_data (buffer,
|
||||
argv_eol[2],
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
else if (string_strcmp (argv[1], "undo") == 0)
|
||||
gui_input_undo (buffer);
|
||||
else if (string_strcmp (argv[1], "redo") == 0)
|
||||
@@ -3679,10 +3711,22 @@ COMMAND_CALLBACK(input)
|
||||
gui_hotlist_restore_all_buffers ();
|
||||
/* since WeeChat 3.8: "/buffer set unread" */
|
||||
else if (string_strcmp (argv[1], "set_unread_current_buffer") == 0)
|
||||
(void) input_data (buffer, "/buffer set unread", NULL, 0);
|
||||
{
|
||||
(void) input_data (buffer,
|
||||
"/buffer set unread",
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
/* since WeeChat 3.8: "/allbuf /buffer set unread" */
|
||||
else if (string_strcmp (argv[1], "set_unread") == 0)
|
||||
(void) input_data (buffer, "/allbuf /buffer set unread", NULL, 0);
|
||||
{
|
||||
(void) input_data (buffer,
|
||||
"/allbuf /buffer set unread",
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
/* since WeeChat 3.8: "/buffer switch" */
|
||||
else if (string_strcmp (argv[1], "switch_active_buffer") == 0)
|
||||
gui_buffer_switch_active_buffer (buffer);
|
||||
@@ -5019,7 +5063,11 @@ command_plugin_list_input (struct t_gui_buffer *buffer,
|
||||
|
||||
if (send_to_buffer)
|
||||
{
|
||||
(void) input_data (buffer, *buf, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
*buf,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -5775,7 +5823,8 @@ command_repeat_exec (struct t_command_repeat *command_repeat)
|
||||
(void) input_data (ptr_buffer,
|
||||
cmd_eval,
|
||||
command_repeat->commands_allowed,
|
||||
0); /* split_newline */
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
free (cmd_eval);
|
||||
}
|
||||
|
||||
@@ -7078,7 +7127,11 @@ command_upgrade_display (struct t_gui_buffer *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
(void) input_data (buffer, string, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
string,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7327,7 +7380,11 @@ COMMAND_CALLBACK(uptime)
|
||||
minutes,
|
||||
seconds,
|
||||
str_first_start);
|
||||
(void) input_data (buffer, string, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
string,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
else if ((argc >= 2) && (string_strcmp (argv[1], "-ol") == 0))
|
||||
{
|
||||
@@ -7340,7 +7397,11 @@ COMMAND_CALLBACK(uptime)
|
||||
minutes,
|
||||
seconds,
|
||||
util_get_time_string (&weechat_first_start_time));
|
||||
(void) input_data (buffer, string, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
string,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -7391,7 +7452,11 @@ command_version_display (struct t_gui_buffer *buffer,
|
||||
_("compiled on"),
|
||||
version_get_compilation_date (),
|
||||
version_get_compilation_time ());
|
||||
(void) input_data (buffer, string, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
string,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -7401,7 +7466,11 @@ command_version_display (struct t_gui_buffer *buffer,
|
||||
"compiled on",
|
||||
version_get_compilation_date (),
|
||||
version_get_compilation_time ());
|
||||
(void) input_data (buffer, string, NULL, 0);
|
||||
(void) input_data (buffer,
|
||||
string,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -9605,7 +9674,10 @@ command_exec_list (const char *command_list)
|
||||
if (command_eval)
|
||||
{
|
||||
(void) input_data (gui_buffer_search_main (),
|
||||
command_eval, NULL, 0);
|
||||
command_eval,
|
||||
NULL,
|
||||
0, /* split_newline */
|
||||
0); /* user_data */
|
||||
free (command_eval);
|
||||
}
|
||||
}
|
||||
|
||||
+18
-5
@@ -246,7 +246,7 @@ end:
|
||||
|
||||
int
|
||||
input_data (struct t_gui_buffer *buffer, const char *data,
|
||||
const char *commands_allowed, int split_newline)
|
||||
const char *commands_allowed, int split_newline, int user_data)
|
||||
{
|
||||
char *pos, *buf, str_buffer[128], *new_data, *buffer_full_name;
|
||||
const char *ptr_data, *ptr_data_for_buffer;
|
||||
@@ -331,8 +331,20 @@ input_data (struct t_gui_buffer *buffer, const char *data,
|
||||
else
|
||||
{
|
||||
/* input string is a command */
|
||||
rc = input_exec_command (buffer, 1, buffer->plugin, ptr_data,
|
||||
commands_allowed);
|
||||
if (user_data && buffer->input_get_any_user_data)
|
||||
{
|
||||
/*
|
||||
* if data is sent from user and buffer catches any user data:
|
||||
* send it to callback
|
||||
*/
|
||||
input_exec_data (buffer, ptr_data);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* execute command on buffer */
|
||||
rc = input_exec_command (buffer, 1, buffer->plugin, ptr_data,
|
||||
commands_allowed);
|
||||
}
|
||||
}
|
||||
|
||||
if (pos)
|
||||
@@ -384,7 +396,8 @@ input_data_timer_cb (const void *pointer, void *data, int remaining_calls)
|
||||
ptr_buffer,
|
||||
timer_args[1],
|
||||
timer_args[2],
|
||||
(string_strcmp (timer_args[3], "1") == 0) ? 1 : 0);
|
||||
(string_strcmp (timer_args[3], "1") == 0) ? 1 : 0,
|
||||
0); /* user_data */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +430,7 @@ input_data_delayed (struct t_gui_buffer *buffer, const char *data,
|
||||
char **timer_args, *new_commands_allowed;
|
||||
|
||||
if (delay < 1)
|
||||
return input_data (buffer, data, commands_allowed, split_newline);
|
||||
return input_data (buffer, data, commands_allowed, split_newline, 0);
|
||||
|
||||
timer_args = malloc (4 * sizeof (*timer_args));
|
||||
if (!timer_args)
|
||||
|
||||
@@ -31,7 +31,8 @@ extern int input_exec_command (struct t_gui_buffer *buffer,
|
||||
const char *string,
|
||||
const char *commands_allowed);
|
||||
extern int input_data (struct t_gui_buffer *buffer, const char *data,
|
||||
const char *commands_allowed, int split_newline);
|
||||
const char *commands_allowed, int split_newline,
|
||||
int user_data);
|
||||
extern int input_data_delayed (struct t_gui_buffer *buffer, const char *data,
|
||||
const char *commands_allowed, int split_newline,
|
||||
long delay);
|
||||
|
||||
@@ -228,7 +228,7 @@ signal_exec_command (int signal_index, const char *command)
|
||||
if (signal_upper)
|
||||
free (signal_upper);
|
||||
(void) input_data (gui_buffer_search_main (),
|
||||
command_eval, NULL, 0);
|
||||
command_eval, NULL, 0, 0);
|
||||
free (command_eval);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -540,6 +540,8 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
|
||||
|
||||
/* input */
|
||||
ptr_buffer->input = infolist_integer (infolist, "input");
|
||||
ptr_buffer->input_get_any_user_data =
|
||||
infolist_integer (infolist, "input_get_any_user_data");
|
||||
ptr_buffer->input_get_unknown_commands =
|
||||
infolist_integer (infolist, "input_get_unknown_commands");
|
||||
ptr_buffer->input_get_empty =
|
||||
|
||||
+32
-4
@@ -101,7 +101,7 @@ char *gui_buffer_properties_get_integer[] =
|
||||
"nicklist_display_groups", "nicklist_count", "nicklist_visible_count",
|
||||
"nicklist_groups_count", "nicklist_groups_visible_count",
|
||||
"nicklist_nicks_count", "nicklist_nicks_visible_count",
|
||||
"input", "input_get_unknown_commands",
|
||||
"input", "input_get_any_user_data", "input_get_unknown_commands",
|
||||
"input_get_empty", "input_multiline", "input_size", "input_length",
|
||||
"input_pos", "input_1st_display", "num_history", "text_search",
|
||||
"text_search_direction", "text_search_exact", "text_search_regex",
|
||||
@@ -128,8 +128,8 @@ char *gui_buffer_properties_set[] =
|
||||
"highlight_words_del", "highlight_disable_regex", "highlight_regex",
|
||||
"highlight_tags_restrict", "highlight_tags", "hotlist_max_level_nicks",
|
||||
"hotlist_max_level_nicks_add", "hotlist_max_level_nicks_del",
|
||||
"input", "input_pos", "input_get_unknown_commands", "input_get_empty",
|
||||
"input_multiline",
|
||||
"input", "input_pos", "input_get_any_user_data", "input_get_unknown_commands",
|
||||
"input_get_empty", "input_multiline",
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -898,6 +898,7 @@ gui_buffer_new_props_with_id (long long id,
|
||||
new_buffer->input_callback = input_callback;
|
||||
new_buffer->input_callback_pointer = input_callback_pointer;
|
||||
new_buffer->input_callback_data = input_callback_data;
|
||||
new_buffer->input_get_any_user_data = 0;
|
||||
new_buffer->input_get_unknown_commands = 0;
|
||||
new_buffer->input_get_empty = 0;
|
||||
new_buffer->input_multiline = 0;
|
||||
@@ -1470,6 +1471,8 @@ gui_buffer_get_integer (struct t_gui_buffer *buffer, const char *property)
|
||||
return buffer->nicklist_nicks_visible_count;
|
||||
else if (strcmp (property, "input") == 0)
|
||||
return buffer->input;
|
||||
else if (strcmp (property, "input_get_any_user_data") == 0)
|
||||
return buffer->input_get_any_user_data;
|
||||
else if (strcmp (property, "input_get_unknown_commands") == 0)
|
||||
return buffer->input_get_unknown_commands;
|
||||
else if (strcmp (property, "input_get_empty") == 0)
|
||||
@@ -2246,6 +2249,20 @@ gui_buffer_remove_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets flag "input_get_any_user_data" for a buffer.
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_set_input_get_any_user_data (struct t_gui_buffer *buffer,
|
||||
int input_get_any_user_data)
|
||||
{
|
||||
if (!buffer)
|
||||
return;
|
||||
|
||||
buffer->input_get_any_user_data = (input_get_any_user_data) ? 1 : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets flag "input_get_unknown_commands" for a buffer.
|
||||
*/
|
||||
@@ -2258,8 +2275,8 @@ gui_buffer_set_input_get_unknown_commands (struct t_gui_buffer *buffer,
|
||||
return;
|
||||
|
||||
buffer->input_get_unknown_commands = (input_get_unknown_commands) ? 1 : 0;
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
* Sets flag "input_get_empty" for a buffer.
|
||||
*/
|
||||
@@ -2676,6 +2693,13 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
|
||||
if (error && !error[0])
|
||||
gui_input_set_pos (buffer, number);
|
||||
}
|
||||
else if (strcmp (property, "input_get_any_user_data") == 0)
|
||||
{
|
||||
error = NULL;
|
||||
number = strtol (value, &error, 10);
|
||||
if (error && !error[0])
|
||||
gui_buffer_set_input_get_any_user_data (buffer, number);
|
||||
}
|
||||
else if (strcmp (property, "input_get_unknown_commands") == 0)
|
||||
{
|
||||
error = NULL;
|
||||
@@ -5171,6 +5195,7 @@ gui_buffer_hdata_buffer_cb (const void *pointer, void *data,
|
||||
HDATA_VAR(struct t_gui_buffer, input_callback, POINTER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_callback_pointer, POINTER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_callback_data, POINTER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_get_any_user_data, INTEGER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_get_unknown_commands, INTEGER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_get_empty, INTEGER, 0, NULL, NULL);
|
||||
HDATA_VAR(struct t_gui_buffer, input_multiline, INTEGER, 0, NULL, NULL);
|
||||
@@ -5386,6 +5411,8 @@ gui_buffer_add_to_infolist (struct t_infolist *infolist,
|
||||
return 0;
|
||||
if (!infolist_new_var_integer (ptr_item, "input", buffer->input))
|
||||
return 0;
|
||||
if (!infolist_new_var_integer (ptr_item, "input_get_any_user_data", buffer->input_get_any_user_data))
|
||||
return 0;
|
||||
if (!infolist_new_var_integer (ptr_item, "input_get_unknown_commands", buffer->input_get_unknown_commands))
|
||||
return 0;
|
||||
if (!infolist_new_var_integer (ptr_item, "input_get_empty", buffer->input_get_empty))
|
||||
@@ -5623,6 +5650,7 @@ gui_buffer_print_log ()
|
||||
log_printf (" input_callback. . . . . : %p", ptr_buffer->input_callback);
|
||||
log_printf (" input_callback_pointer. : %p", ptr_buffer->input_callback_pointer);
|
||||
log_printf (" input_callback_data . . : %p", ptr_buffer->input_callback_data);
|
||||
log_printf (" input_get_any_user_data : %d", ptr_buffer->input_get_any_user_data);
|
||||
log_printf (" input_get_unknown_cmd . : %d", ptr_buffer->input_get_unknown_commands);
|
||||
log_printf (" input_get_empty . . . . : %d", ptr_buffer->input_get_empty);
|
||||
log_printf (" input_multiline . . . . : %d", ptr_buffer->input_multiline);
|
||||
|
||||
@@ -186,6 +186,7 @@ struct t_gui_buffer
|
||||
const void *input_callback_pointer; /* pointer for callback */
|
||||
void *input_callback_data; /* data for callback */
|
||||
/* to this buffer */
|
||||
int input_get_any_user_data; /* get any user data, including cmds */
|
||||
int input_get_unknown_commands; /* 1 if unknown commands are sent to */
|
||||
/* input_callback */
|
||||
int input_get_empty; /* 1 if empty input is sent to */
|
||||
|
||||
+1
-1
@@ -333,7 +333,7 @@ gui_input_send_data_to_buffer (struct t_gui_buffer *buffer, char *data)
|
||||
gui_input_text_changed_modifier_and_signal (buffer,
|
||||
0, /* save undo */
|
||||
1); /* stop completion */
|
||||
(void) input_data (buffer, data, NULL, 1);
|
||||
(void) input_data (buffer, data, NULL, 1, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+2
-2
@@ -2161,7 +2161,7 @@ gui_key_focus_command (const char *key, int context,
|
||||
command,
|
||||
ptr_buffer->full_name);
|
||||
}
|
||||
(void) input_data (ptr_buffer, command, NULL, 0);
|
||||
(void) input_data (ptr_buffer, command, NULL, 0, 0);
|
||||
free (command);
|
||||
}
|
||||
}
|
||||
@@ -2537,7 +2537,7 @@ gui_key_pressed (const char *key_str)
|
||||
for (i = 0; commands[i]; i++)
|
||||
{
|
||||
(void) input_data (gui_current_window->buffer,
|
||||
commands[i], NULL, 0);
|
||||
commands[i], NULL, 0, 0);
|
||||
}
|
||||
string_free_split (commands);
|
||||
}
|
||||
|
||||
+2
-2
@@ -183,7 +183,7 @@ void
|
||||
run_cmd (const char *command)
|
||||
{
|
||||
printf (">>> Running command: %s\n", command);
|
||||
input_data (ptr_core_buffer, command, NULL, 0);
|
||||
input_data (ptr_core_buffer, command, NULL, 0, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -193,7 +193,7 @@ run_cmd (const char *command)
|
||||
void
|
||||
run_cmd_quiet (const char *command)
|
||||
{
|
||||
input_data (ptr_core_buffer, command, NULL, 0);
|
||||
input_data (ptr_core_buffer, command, NULL, 0, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -67,7 +67,7 @@ TEST_GROUP(CoreCommand)
|
||||
FAIL("Buffer not found");
|
||||
}
|
||||
record_start ();
|
||||
input_data (buffer, command, NULL, 0);
|
||||
input_data (buffer, command, NULL, 0, 0);
|
||||
record_stop ();
|
||||
}
|
||||
|
||||
|
||||
@@ -723,7 +723,7 @@ TEST(GuiBuffer, NewUser)
|
||||
|
||||
/* test signal "buffer_user_input_test" */
|
||||
signal_buffer_user_input[0] = '\0';
|
||||
input_data (buffer, "something", NULL, 0);
|
||||
input_data (buffer, "something", NULL, 0, 0);
|
||||
STRCMP_EQUAL("something", signal_buffer_user_input);
|
||||
|
||||
/* test signal "buffer_user_closing_test" */
|
||||
@@ -738,7 +738,7 @@ TEST(GuiBuffer, NewUser)
|
||||
/* close the buffer by sending "q" */
|
||||
signal_buffer_user_input[0] = '\0';
|
||||
signal_buffer_user_closing = 0;
|
||||
input_data (buffer, "q", NULL, 0);
|
||||
input_data (buffer, "q", NULL, 0, 0);
|
||||
STRCMP_EQUAL("q", signal_buffer_user_input);
|
||||
LONGS_EQUAL(1, signal_buffer_user_closing);
|
||||
|
||||
@@ -758,7 +758,7 @@ TEST(GuiBuffer, NewUser)
|
||||
*/
|
||||
signal_buffer_user_input[0] = '\0';
|
||||
signal_buffer_user_closing = 0;
|
||||
input_data (buffer, "q", NULL, 0);
|
||||
input_data (buffer, "q", NULL, 0, 0);
|
||||
STRCMP_EQUAL("q", signal_buffer_user_input);
|
||||
LONGS_EQUAL(0, signal_buffer_user_closing);
|
||||
|
||||
|
||||
@@ -114,22 +114,22 @@ TEST(GuiKey, GetCurrentContext)
|
||||
{
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_DEFAULT, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/cursor", NULL, 0);
|
||||
input_data (gui_buffers, "/cursor", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_CURSOR, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/cursor stop", NULL, 0);
|
||||
input_data (gui_buffers, "/cursor stop", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_DEFAULT, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/input search_text_here", NULL, 0);
|
||||
input_data (gui_buffers, "/input search_text_here", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_SEARCH, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/input search_stop", NULL, 0);
|
||||
input_data (gui_buffers, "/input search_stop", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_DEFAULT, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/input search_history", NULL, 0);
|
||||
input_data (gui_buffers, "/input search_history", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_HISTSEARCH, gui_key_get_current_context ());
|
||||
|
||||
input_data (gui_buffers, "/input search_stop", NULL, 0);
|
||||
input_data (gui_buffers, "/input search_stop", NULL, 0, 0);
|
||||
LONGS_EQUAL(GUI_KEY_CONTEXT_DEFAULT, gui_key_get_current_context ());
|
||||
|
||||
gui_buffers->text_search_where = 0;
|
||||
|
||||
@@ -334,7 +334,7 @@ TEST_GROUP(IrcProtocolWithServer)
|
||||
|
||||
ptr_buffer = gui_buffer_search_by_full_name (buffer);
|
||||
if (ptr_buffer)
|
||||
input_data (ptr_buffer, data, NULL, 0);
|
||||
input_data (ptr_buffer, data, NULL, 0, 0);
|
||||
|
||||
record_stop ();
|
||||
}
|
||||
|
||||
@@ -961,7 +961,7 @@ TEST(PluginApiInfo, InfolistHistoryCb)
|
||||
infolist_free (infolist);
|
||||
|
||||
/* history of core buffer */
|
||||
input_data (gui_buffers, "abc", NULL, 1);
|
||||
input_data (gui_buffers, "abc", NULL, 1, 0);
|
||||
infolist = hook_infolist_get (NULL, "history", gui_buffers, NULL);
|
||||
CHECK(infolist);
|
||||
CHECK(infolist_next (infolist));
|
||||
|
||||
Reference in New Issue
Block a user