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

67 Commits

Author SHA1 Message Date
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
Sébastien Helleu d7122cd6be javascript: fix /javascript command 2017-12-23 19:48:59 +01:00
Sébastien Helleu bfef8da84c api: change type of arguments status/gnutls_rc/sock in hook_connect() callback from string to integer (in scripts) 2017-08-13 10:40:01 +02:00
Sébastien Helleu 5392e3078f api: send file descriptor as integer instead of string to the callback of hook_fd 2017-08-13 09:29:39 +02:00
Sébastien Helleu 9bad3f44db core: remove value for first #define in headers, add "PLUGIN" in plugin headers 2017-08-10 20:05:16 +02:00
Sébastien Helleu 6532c9a538 fset: fix priority of plugin (load it after all other plugins)
This fixes a refresh problem of options after /upgrade in fset buffer.
2017-07-08 14:46:33 +02:00
Sébastien Helleu 7621939a7a api: add function hdata_compare 2017-05-30 20:29:17 +02:00
Sébastien Helleu 705d86e684 core: update copyright dates 2017-01-01 11:32:04 +01:00
Sébastien Helleu 64f05204f9 api: move functions hook_completion* after hook_command 2016-11-27 17:34:15 +01:00
Sébastien Helleu 51c3e0b9ec api: add support of functions in hook_process 2016-04-23 13:59:20 +02:00
Sébastien Helleu ae89d28462 javascript: fix string value returned by js functions 2016-04-23 13:58:46 +02:00
Sébastien Helleu 5244a707cb api: rename function unhook_all_plugin to unhook_all 2016-03-24 09:17:54 +01:00
Sébastien Helleu cf6aca1619 core: add pointer in some callbacks (closes #406)
This pointer is the first argument received by callbacks, and the
existing argument "data" is now automatically freed by WeeChat when the
object containing the callback is removed.

With this new pointer, the linked list of callbacks in scripts has been
removed. This will improve speed of scripts (using a lot of hooks),
reduce memory used by scripts and reduce time to unload scripts.

Following functions are affected in the C API:

* exec_on_files
* config_new
* config_new_section
* config_new_option
* hook_command
* hook_command_run
* hook_timer
* hook_fd
* hook_process
* hook_process_hashtable
* hook_connect
* hook_print
* hook_signal
* hook_hsignal
* hook_config
* hook_completion
* hook_modifier
* hook_info
* hook_info_hashtable
* hook_infolist
* hook_hdata
* hook_focus
* unhook_all_plugin
* buffer_new
* bar_item_new
* upgrade_new
* upgrade_read
2016-03-21 18:11:21 +01:00
Sébastien Helleu c273b44f52 javascript: replace include of time.h by ctime 2016-02-23 07:38:22 +01:00