api: change type of arguments displayed/highlight in hook_print callback from string to integer (in scripts)

v2.8-utf8proc
Sébastien Helleu 2014-05-10 08:26:56 +02:00
parent 6d205222aa
commit cdab55aa05
11 changed files with 70 additions and 44 deletions

View File

@ -79,6 +79,8 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
* core: add signals "key_combo_{default|search|cursor}"
* core: display a warning in case of inconsistency between the options
weechat.look.save_{config|layout}_on_exit
* api: change type of arguments displayed/highlight in hook_print callback from
string to integer (in scripts)
* api: allow wildcard "*" inside the mask in function string_match
* api: allow value "-1" for property "hotlist" in function buffer_set (to remove
a buffer from hotlist)

View File

@ -7551,6 +7551,8 @@ hook = weechat.hook_connect("", "my.server.org", 1234, 1, 0, "",
==== weechat_hook_print
_Updated in 0.4.3 and 1.0._
Hook a message printed.
Prototype:
@ -7606,6 +7608,12 @@ Return value:
* pointer to new hook, NULL if error occurred
[IMPORTANT]
In scripts, with WeeChat ≥ 1.0, the callback arguments 'displayed' and
'highlight' are integers (with WeeChat ≤ 0.4.3, they were strings). +
To be compatible with all versions, it is recommended to convert the argument
to integer before testing it, for example in Python: "`if int(highlight):`".
C example:
[source,C]
@ -7634,7 +7642,8 @@ hook = weechat.hook_print(buffer, tags, message, strip_colors, callback, callbac
# example
def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
# ...
if int(highlight):
# ...
return weechat.WEECHAT_RC_OK
# catch all messages, on all buffers, without color

View File

@ -7683,6 +7683,8 @@ hook = weechat.hook_connect("", "my.server.org", 1234, 1, 0, "",
==== weechat_hook_print
_Mis à jour dans la 0.4.3 et 1.0._
Intercepter un message affiché.
Prototype :
@ -7741,6 +7743,13 @@ Valeur de retour :
* pointeur vers le nouveau "hook", NULL en cas d'erreur
[IMPORTANT]
Dans les scripts, avec WeeChat ≥ 1.0, les paramètres du callback 'displayed' et
'highlight' sont des entiers (avec WeeChat ≤ 0.4.3, ils étaient des chaînes). +
Pour être compatible avec toutes les versions, il est recommandé de convertir
le paramètre en entier avant de le tester, par exemple en Python :
"`if int(highlight):`".
Exemple en C :
[source,C]
@ -7769,7 +7778,8 @@ hook = weechat.hook_print(buffer, tags, message, strip_colors, callback, callbac
# exemple
def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
# ...
if int(highlight):
# ...
return weechat.WEECHAT_RC_OK
# intercepter tous les messages, de tous les tampons, sans couleur

View File

@ -7682,6 +7682,9 @@ hook = weechat.hook_connect("", "my.server.org", 1234, 1, 0, "",
==== weechat_hook_print
// TRANSLATION MISSING
_Updated in 0.4.3 and 1.0._
Hook su un messaggio stampato.
Prototipo:
@ -7741,6 +7744,13 @@ Valore restituito:
* puntatore al nuovo hook, NULL in caso di errore
// TRANSLATION MISSING
[IMPORTANT]
In scripts, with WeeChat ≥ 1.0, the callback arguments 'displayed' and
'highlight' are integers (with WeeChat ≤ 0.4.3, they were strings). +
To be compatible with all versions, it is recommended to convert the argument
to integer before testing it, for example in Python: "`if int(highlight):`".
Esempio in C:
[source,C]
@ -7769,7 +7779,8 @@ hook = weechat.hook_print(buffer, tags, message, strip_colors, callback, callbac
# esempio
def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
# ...
if int(highlight):
# ...
return weechat.WEECHAT_RC_OK
# cattura tutti i messaggi, su tutti i buffer, senza colore

View File

@ -7545,6 +7545,8 @@ hook = weechat.hook_connect("", "my.server.org", 1234, 1, 0, "",
==== weechat_hook_print
_Updated in 0.4.3 and 1.0_
メッセージの表示をフックする。
プロトタイプ:
@ -7600,6 +7602,13 @@ struct t_hook *weechat_hook_print (struct t_gui_buffer *buffer,
* 新しいフックへのポインタ、エラーが起きた場合は NULL
// TRANSLATION MISSING
[IMPORTANT]
In scripts, with WeeChat ≥ 1.0, the callback arguments 'displayed' and
'highlight' are integers (with WeeChat ≤ 0.4.3, they were strings). +
To be compatible with all versions, it is recommended to convert the argument
to integer before testing it, for example in Python: "`if int(highlight):`".
C 言語での使用例:
[source,C]
@ -7628,7 +7637,8 @@ hook = weechat.hook_print(buffer, tags, message, strip_colors, callback, callbac
# 例
def my_print_cb(data, buffer, date, tags, displayed, highlight, prefix, message):
# ...
if int(highlight):
# ...
return weechat.WEECHAT_RC_OK
# catch all messages, on all buffers, without color

View File

@ -2300,15 +2300,15 @@ weechat_guile_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = &displayed;
func_argv[5] = &highlight;
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_guile_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssiiss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2321,10 +2321,6 @@ weechat_guile_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
free (func_argv[1]);
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
if (func_argv[5])
free (func_argv[5]);
return ret;
}

View File

@ -2496,15 +2496,15 @@ weechat_lua_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = &displayed;
func_argv[5] = &highlight;
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_lua_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssiiss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2517,10 +2517,6 @@ weechat_lua_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
free (func_argv[1]);
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
if (func_argv[5])
free (func_argv[5]);
return ret;
}

View File

@ -2332,15 +2332,15 @@ weechat_perl_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = &displayed;
func_argv[5] = &highlight;
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_perl_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssiiss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2353,10 +2353,6 @@ weechat_perl_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
free (func_argv[1]);
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
if (func_argv[5])
free (func_argv[5]);
return ret;
}

View File

@ -2438,15 +2438,15 @@ weechat_python_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = PyLong_FromLong((long)displayed);
func_argv[5] = PyLong_FromLong((long)highlight);
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_python_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssOOss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2460,9 +2460,13 @@ weechat_python_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
{
Py_XDECREF((PyObject *)func_argv[4]);
}
if (func_argv[5])
free (func_argv[5]);
{
Py_XDECREF((PyObject *)func_argv[5]);
}
return ret;
}

View File

@ -2848,15 +2848,15 @@ weechat_ruby_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = &displayed;
func_argv[5] = &highlight;
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_ruby_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssiiss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2869,10 +2869,6 @@ weechat_ruby_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
free (func_argv[1]);
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
if (func_argv[5])
free (func_argv[5]);
return ret;
}

View File

@ -2764,15 +2764,15 @@ weechat_tcl_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
func_argv[3] = weechat_string_build_with_split_string (tags, ",");
if (!func_argv[3])
func_argv[3] = strdup ("");
func_argv[4] = (displayed) ? strdup ("1") : strdup ("0");
func_argv[5] = (highlight) ? strdup ("1") : strdup ("0");
func_argv[4] = &displayed;
func_argv[5] = &highlight;
func_argv[6] = (prefix) ? (char *)prefix : empty_arg;
func_argv[7] = (message) ? (char *)message : empty_arg;
rc = (int *) weechat_tcl_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
script_callback->function,
"ssssssss", func_argv);
"ssssiiss", func_argv);
if (!rc)
ret = WEECHAT_RC_ERROR;
@ -2785,10 +2785,6 @@ weechat_tcl_api_hook_print_cb (void *data, struct t_gui_buffer *buffer,
free (func_argv[1]);
if (func_argv[3])
free (func_argv[3]);
if (func_argv[4])
free (func_argv[4]);
if (func_argv[5])
free (func_argv[5]);
return ret;
}