1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-18 00:54:47 +02:00
Commit Graph

74 Commits

Author SHA1 Message Date
Sébastien Helleu f0415c8ec3 core, plugins: make commands, hook command_run, completions and aliases case sensitive (issue #1872) 2023-01-28 15:13:48 +01:00
Sébastien Helleu 202b4d82c0 plugins: set priority in calls to weechat_config_new (issue #1872) 2023-01-28 15:13:34 +01:00
Sébastien Helleu f59f39abd4 python: remove unneded call to deprecated function PySys_SetArgv
This function is deprecated since Python 3.11.
2023-01-08 20:26:57 +01:00
Sébastien Helleu 7526776f4e plugins: change priority of scripting plugins
Use a step of 10 between each scripting plugin priority.
2023-01-03 20:20:21 +01:00
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 319abf4fd0 python: remove support of Python 2.x 2022-10-15 22:56:06 +02: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 574f1837f9 python: fix crash in hook callbacks after script loading failure (closes #1740) 2022-01-22 21:34:04 +01:00
Sébastien Helleu c44b79dce7 core: update copyright dates 2022-01-17 18:41:06 +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 0f9640a5f3 core: split WeeChat home in 4 directories, use XDG directories by default (issue #1285)
The 4 directories (which can be the same):

- config: configuration files, certificates
- data: log/upgrade files, local plugins, scripts, xfer files
- cache: script repository, scripts downloaded (temporary location)
- runtime: FIFO pipe, relay UNIX sockets
2021-05-11 21:06:34 +02:00
Sébastien Helleu 5d30e0faac doc: mark info "python2_bin" as deprecated since version 2.6 (plugin API reference) 2021-04-11 09:31:49 +02:00
Sébastien Helleu efc7a588d6 core: update copyright dates 2021-01-02 21:34:16 +01:00
Sébastien Helleu cfd221014c api: add argument "bytes" in function string_dyn_concat 2020-08-23 23:27:57 +02:00
Marco Sirabella ab7104e34c Add $weechat_sharedir/python for global python package import
Related: #1461

Some scripts (eg weechat-matrix) ship directories that need to be
imported from the script.

Rather than globally installing the python packages to python's
`site-packages` the directories can be installed alongside the script in
`WEECHAT_SHAREDIR/python`.

This change adds that directory to the `$PYTHONPATH` to import
successfully.
2020-07-07 20:26:17 +02:00
Sébastien Helleu fae149b361 python: fix crash when invalid UTF-8 string is in a WeeChat hashtable converted to a Python dict (closes #1463) 2020-04-04 18:10:02 +02:00
Sébastien Helleu feb6258910 core: update copyright dates 2020-01-04 10:41:26 +01:00
Sébastien Helleu 513f5a1ee7 python: send "bytes" instead of "str" to callbacks in Python 3 when the string is not UTF-8 valid (issue #1220, closes #1389) 2019-10-12 22:21:48 +02:00
Sébastien Helleu 9178156354 api: add argument "strip_items" in function string_split 2019-06-15 20:47:14 +02: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 2b70d71aa1 core: replace argument "keep_eol" by "flags" in function string_split (closes #1322) 2019-03-10 18:29:16 +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 b7d6be5936 scripts: fix duplicated lines in output of script eval (python, perl, ruby, lua and guile)
When there was a call to a hook callback during the eval, the output buffer was
cleared too late, and displayed multiple times in the buffer.

This commit clears the buffer even before we display it (this display can
trigger a hook callback).
2018-07-25 20:19:26 +02:00
Sébastien Helleu de1ade02c3 python: fix crash when loading a script with Python >= 3.7 (closes #1219) 2018-07-12 19:27:37 +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 8cf3b09d81 scripts: hide message when the eval script is unloaded
Related to commit 8fbbe8b0d5.
2018-03-17 08:17:41 +01:00
Sébastien Helleu 20f9ca7d4a scripts: display the script name in stdout/stderr output from scripts 2018-02-19 21:27:08 +01: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 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 23ec371dae python: fix error message when executing code from string in weechat_python_load (issue #128) 2018-01-06 14:07:48 +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 b072586d79 core: add missing includes of stdio.h 2017-11-04 21:03:15 +01: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 705d86e684 core: update copyright dates 2017-01-01 11:32:04 +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 3330724574 core: update copyright dates 2016-01-01 11:09:53 +01:00
Sébastien Helleu a56fec820b python: fix cppcheck error on variable "python2_bin" (closes #486)
This fixes only a wrong error report from cppcheck, there was no problem
in code with the variable "python2_bin".
2015-08-13 20:51:51 +02:00
Sébastien Helleu 71dd64678c core: add comments after some #endif 2015-04-30 21:15:30 +02:00
Sébastien Helleu e95f853303 scripts: reset current script pointer when load of script fails in python/perl/ruby/lua/tcl plugins 2015-03-07 09:35:29 +01:00
Sébastien Helleu 79afeb2111 python: fix restore of old interpreter when a function is not found in the script 2015-03-01 09:12:02 +01:00
Sébastien Helleu c1a5a76d08 scripts: reformat some code to make it more readable 2015-02-21 09:16:25 +01:00
Sébastien Helleu 8f11de6863 scripts: improve comments on functions that convert hashtables 2015-02-21 09:12:44 +01:00
Sébastien Helleu cf5501f69c core: add priority in plugins to initialize them in order
Current order is: charset, logger, exec, trigger, aspell, alias, fifo, xfer,
irc, relay, guile/lua/perl/python/ruby/tcl, script.
2015-01-15 07:40:38 +01:00