1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-24 03:46:39 +02:00
Commit Graph

80 Commits

Author SHA1 Message Date
Sébastien Helleu 33bba784c3 core: update copyright dates 2023-01-01 14:54:35 +01:00
Trygve Aaberge ebc63d1b83 scripts: Send null values to config section callbacks
The callback_read and callback_create_option functions in the scripting
APIs always get the value as a string, never as null. This means that if
the value is null, there is no way for the script to distinguish this
from an empty string for string options. This makes it impossible to
properly make options with fallback values, like the irc server and
server_default options, as far as I can see.

All the scripting languages except Tcl use that language's equivalent
for null. For JavaScript which has both null and undefined, null is
used. For Tcl, the magic null string defined in commit 197a7a01e is used
and the documentation is updated to describe that.

I tested this with these scripts:
https://gist.github.com/trygveaa/2d49c609addf9773d2ed16e15d1e3447

You can load all of those scripts and see the result with this command
(assuming you have the scripts in the current directory):

    weechat -t -r "/filter add script * * script; /script load $(echo script_config.*)"
2022-12-11 15:13:31 +01:00
Sébastien Helleu 56dbd871ea api: do not expect any return value in callbacks change/delete of config_new_option (scripting API) 2022-10-15 21:46:00 +02:00
Sébastien Helleu 92cdcee8f6 api: change type of argument object_id in upgrade_new callback from string to integer (in scripts) 2022-09-29 21:38:04 +02:00
Sébastien Helleu b2b110f1a3 api: change type of argument remaining_calls in hook_timer callback from string to integer (in scripts) 2022-09-29 21:21:01 +02:00
Sébastien Helleu 4d74a89cfc api: add function string_parse_size 2022-09-27 15:50:43 +02:00
Sébastien Helleu bcb8647aa4 scripts: fix issue with long interval in function hook_timer
Affected plugins: python, ruby, lua, tcl, guile, javascript, php.
2022-08-01 22:18:38 +02:00
Sébastien Helleu b1404b0277 scripts: fix issue with year ≥ 2038 in functions print_date_tags and print_y_date_tags
Affected plugins: python, lua, tcl, guile, javascript.
2022-08-01 21:03:44 +02:00
Sébastien Helleu 1514570ff0 scripts: fix issue with year ≥ 2038 in function infolist_new_var_time
Affected plugins: python, lua, tcl, guile, javascript.
2022-08-01 20:32:09 +02:00
Sébastien Helleu 2475ba43a3 javascript: fix return of long value in functions infolist_time, hdata_long and hdata_time 2022-08-01 20:13:01 +02:00
Sébastien Helleu b7441bd7a3 api: add arguments "index_start" and "index_end" in function string_rebuild_split_string 2022-07-20 13:16:35 +02:00
Sébastien Helleu 62e68f965f api: rename function string_build_with_split_string to string_rebuild_split_string 2022-07-20 12:14:40 +02:00
Sébastien Helleu e5e3a9d2da api: add function buffer_new_props (closes #1759) 2022-03-13 10:35:29 +01:00
Trygve Aaberge 197a7a01e4 scripts: allow null values in config_new_option
The plugin API function config_new_option accepts null as the
default_value and/or value however the scripting APIs (except for lua)
didn't allow sending null as a parameter value, so it was impossible to
use it this way. This allows sending a null value for these parameters.

Lua already supported sending in nil for these parameters and it works
as expected, so nothing is changed for this plugin.

For Guile you can now send in #nil, for JavaScript null or undefined,
for Perl undef, for PHP NULL, for Python None, for Ruby nil and for Tcl
$::weechat::WEECHAT_NULL.

In all of these languages except Tcl this is the special value
indicating a missing value. However Tcl only has one type, string, so it
doesn't have a null value. Therefore I created a constant with the value
`\uFFFF\uFFFF\uFFFFWEECHAT_NULL\uFFFF\uFFFF\uFFFF` which is used
instead. This is very unlikely to appear unintentionally. Using the
unicode code point \uFFFF was suggested on
https://wiki.tcl-lang.org/page/null.

I tested this with these scripts:
https://gist.github.com/trygveaa/f91977dde5d2876d502bf55fbf9b50cc
2022-03-12 16:00:38 +01:00
Sébastien Helleu 8700e0bb36 scripts: auto-load scripts with supported extensions only (closes #1698) 2022-02-20 16:29:31 +01:00
Sébastien Helleu 9259442dbf core: add support of date and tags in messages displayed in buffers with free content, add function printf_y_date_tags (closes #1746) 2022-01-30 11:41:06 +01:00
Sébastien Helleu c44b79dce7 core: update copyright dates 2022-01-17 18:41:06 +01:00
Sébastien Helleu 2da2172593 api: add parameters pointers, extra_vars and options in function hdata_search 2021-11-06 15:59:18 +01:00
Sébastien Helleu 68a3aca643 plugins: use a different plugin priority for each scripting language 2021-10-02 20:50:35 +02:00
Sébastien Helleu efc7a588d6 core: update copyright dates 2021-01-02 21:34:16 +01:00
Sébastien Helleu 268aa631c6 api: add function string_color_code_size (issue #1547) 2020-08-22 08:55:16 +02:00
Sébastien Helleu b0ecbdbf1d core: add bar option "color_bg_inactive" (issue #732) 2020-06-21 18:59:54 +02:00
Sébastien Helleu 88bef0b1b1 core: rename functions hook_completion_{get_string|list_add} to completion_{get_string|list_add}
Old functions are kept for compatibility reasons.
2020-05-08 10:51:30 +02:00
Sébastien Helleu d1a427b67f api: return integer in function gui_completion_search (issue #1484) 2020-04-28 10:46:49 +02:00
Sébastien Helleu d3020976d5 api: add functions completion_new, completion_search and completion_free (issue #1484) 2020-04-27 22:15:42 +02:00
Sébastien Helleu feb6258910 core: update copyright dates 2020-01-04 10:41:26 +01:00
Sébastien Helleu baf8f635ff core: fix style in CMake files 2019-10-01 18:31:41 +02:00
Ryan Farley 8df3ad3d26 cmake: allow custom libdir (fix #1341)
Allows for custom LIBDIR to specified with cmake builds. WEECHAT_LIBDIR
is used for a custom Weechat directory, or set from LIBDIR (as LIBDIR
used to be set).
2019-04-25 16:53:55 -05:00
Sébastien Helleu 3d95217745 api: return allocated string in hook_info callback and function info_get 2019-04-13 08:42:45 +02:00
Sébastien Helleu 2612adf899 core: add CMake option "ENABLE_CODE_COVERAGE" to compile with code coverage options
This option is OFF by default and should be enabled only for tests, to measure
test coverage.
2019-03-24 09:38:43 +01:00
Sébastien Helleu 80b980b2af api: add function command_options (issue #928) 2019-02-28 20:19:18 +01:00
Sébastien Helleu c2859096cb api: add function string_match_list 2019-02-27 07:46:22 +01:00
Sébastien Helleu 2b0057239b core: update copyright dates 2019-01-01 15:40:51 +01:00
Sébastien Helleu 4712d0bb06 core: use https for links to GNU GPL license 2018-11-29 23:16:07 +01:00
Sébastien Helleu 42be1a74a0 api: add function hook_line 2018-08-12 21:45:00 +02:00
Sébastien Helleu 8b876bd668 scripts: remove double return in info eval callback functions not yet implemented 2018-05-17 22:02:10 +02:00
Sébastien Helleu 9265acf879 scripts: fix memory leak in hook_info callback 2018-04-13 19:55:20 +02:00
Sébastien Helleu 41d63511b4 scripts: fix return value of hook_infolist callback (pointer instead of string) 2018-04-12 00:12:20 +02:00
Sébastien Helleu 3467d6eb43 scripts: return long integer instead of string in function infolist_time 2018-04-10 21:26:15 +02:00
Sébastien Helleu ab61ddd4ab scripts: do not allocate memory when converting pointers to strings 2018-04-10 19:33:14 +02:00
Sébastien Helleu 6de98179bc api: add function string_format_size in scripting API 2018-04-07 13:20:58 +02:00
Sébastien Helleu 8fbbe8b0d5 scripts: add option "eval_keep_context" in script plugins 2018-01-15 22:00:15 +01:00
Sébastien Helleu 21e63e7958 scripts: add configuration file for each script plugin 2018-01-15 21:57:06 +01:00
Sébastien Helleu eb0560812b scripts: add missing initialization of plugin pointer to NULL 2018-01-14 21:47:18 +01:00
Sébastien Helleu 7ee88fb46c core: fix some styles 2018-01-07 09:11:45 +01:00
Sébastien Helleu 9876a8d0a7 core: update translations (issue #128) 2018-01-06 14:07:57 +01:00
Sébastien Helleu e87f2e6a46 javascript: fix compiler warning (issue #128) 2018-01-06 14:07:54 +01:00
Sébastien Helleu 414959a474 scripts: add "eval" option in script commands and info "xxx_eval" (issue #128)
For now this works only in python, perl, ruby and guile.
2018-01-06 14:07:35 +01:00
Sébastien Helleu ed4837b2f6 core: update copyright dates 2018-01-05 00:54:18 +01:00
Sébastien Helleu c4626bc08a scripts: add option "version" in script commands (closes #1075) 2017-12-23 20:35:30 +01:00