1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

Compare commits

...

222 Commits

Author SHA1 Message Date
Sébastien Helleu e04047be68 Version 3.4.1 2022-03-13 21:01:13 +01:00
Sébastien Helleu 710247891c core: set again TLS verification functions after GnuTLS options are changed (issue #1763)
When changing the options weechat.network.gnutls_ca_system or
weechat.network.gnutls_ca_user, the GnuTLS credentials are freed then allocated
again, but the verification function used to check the certificate on
connection is not set again.

As a consequence, any TLS connection is made without checking the certificate.

This regression was introduced in version 3.2, when the options were changed to
automatically load system certificates without having to give the path, and to
let user give an extra custom path with certificates.
2022-03-13 20:20:03 +01:00
Sébastien Helleu 2e1d16b7e5 Version 3.4.1-dev 2022-03-13 20:19:39 +01:00
Sébastien Helleu 778594d68f Version 3.4 2021-12-18 08:57:32 +01:00
Sébastien Helleu 37d4d2ac65 debian: update changelog 2021-12-18 08:41:05 +01:00
Krzysztof Korościk 2376b6aa5e doc: update polish translation 2021-12-17 23:28:35 +01:00
Nils Görs 5a24ffd951 doc: update German documentation 2021-12-17 09:19:32 +01:00
Sébastien Helleu a1cc70b752 core: fix broken links in README (closes #1729) 2021-12-16 20:41:12 +01:00
Sébastien Helleu 1cedb78348 doc: add workaround for download of plugins.xml.gz on macOS (FAQ) 2021-12-15 21:05:06 +01:00
Ivan Pešić 0123abb83e doc: Update Serbian translation 2021-12-13 22:16:57 +01:00
Sébastien Helleu 463517bd1e core: fix tests on PHP plugin in CI 2021-12-13 21:39:25 +01:00
Sébastien Helleu 46f3bee2ff core: add build of zst archive in make dist 2021-12-13 21:10:06 +01:00
Krzysztof Korościk d80b27af64 doc: updated polish cmdline options 2021-12-12 20:47:42 +01:00
Krzysztof Korościk e2d44181d7 doc: updated polish user guide 2021-12-12 20:37:02 +01:00
Krzysztof Korościk ba4f762964 po: updated polish translation 2021-12-12 00:44:04 +01:00
Sébastien Helleu dad3e6099c doc: use unbreakable spaces in example of missing translation tag (developer's guide)
This allows to search this tag in docs with grep and ignore the example in the
developer's guide.
2021-12-11 09:40:07 +01:00
Sébastien Helleu 5208552a98 doc: remove missing translation comments in French docs 2021-12-11 09:35:01 +01:00
Sébastien Helleu 07721d3dc1 Version 3.4-rc1 2021-12-10 18:49:11 +01:00
Nils Görs d236171035 core: update German translations 2021-12-10 11:21:47 +01:00
Sébastien Helleu a4d560e0aa doc: fix color codes attributes in developer's guide 2021-12-08 20:54:40 +01:00
Sébastien Helleu 7bf0a5c734 doc: remove list of remote interfaces, redirect to web site (user's guide) 2021-12-05 22:00:24 +01:00
Sébastien Helleu 10a8732d41 doc: rename section "WeeChat extension" to "Extending WeeChat" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu fd017ce474 doc: add section "Script manager" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 1c0d8f5fd3 doc: add section "WeeChat extension" above "Plugins" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 160ffe8e11 doc: move sections "Exec", "Fifo" and "Trigger" at top level after "Relay" (user's guide) 2021-12-05 21:39:28 +01:00
Sébastien Helleu 4c7b898666 doc: move section "Xfer" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 391d0a18a1 doc: move section "Typing" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu a5db952842 doc: move section "Spell" in "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 7cb5147e74 doc: move section "Relay" at top level after "IRC" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu a5ffd8b800 doc: move section "Logger" in "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu 66384544b5 doc: move section "IRC" at top level after "Configuration" (user's guide) 2021-12-05 20:59:19 +01:00
Sébastien Helleu c88428fb41 doc: move section "Bare display" in "Buffers and windows" (user's guide) 2021-12-05 14:15:52 +01:00
Sébastien Helleu 71991fcc73 doc: add fset buffer example (user's guide) 2021-12-05 14:11:25 +01:00
Sébastien Helleu b82a9c44fd doc: fix typo in French user's guide 2021-12-05 13:56:59 +01:00
Sébastien Helleu 637c7bb3d4 doc: move section "Fset" in "Interface" (user's guide) 2021-12-05 13:15:35 +01:00
Sébastien Helleu 268cb53238 doc: move section "Charset" in "Configuration" (user's guide) 2021-12-05 12:43:54 +01:00
Sébastien Helleu 9e721d0ad5 doc: move section "Buflist" in "Interface" (user's guide) 2021-12-05 12:36:39 +01:00
Sébastien Helleu 287d5146b4 doc: move section "Alias" in "Configuration" (user's guide) 2021-12-05 12:25:41 +01:00
Sébastien Helleu 1cfb5e5d1e doc: change section title for debug build and address sanitizer (user's guide) 2021-12-05 11:55:02 +01:00
Sébastien Helleu 866fef2595 doc: fix cross-reference to mouse actions (user's guide) 2021-12-05 11:47:04 +01:00
Sébastien Helleu 2dabce9ac8 doc: move section "Key bindings" at top level, add section title "Configuration" (user's guide) 2021-12-04 20:12:06 +01:00
Sébastien Helleu f33e9b6737 doc: move section "Running WeeChat" at top level, add section title "Interface" (user's guide) 2021-12-04 15:59:55 +01:00
Sébastien Helleu 50cea48b51 doc: move section "Upgrade" at top level after "Installation" (user's guide) 2021-12-04 15:59:46 +01:00
Sébastien Helleu ae891ab322 doc: reduce font size in table of contents 2021-12-04 15:38:47 +01:00
Sébastien Helleu 0a14441d35 doc: remove section title for extra debug options on command line (user's guide) 2021-12-04 15:31:38 +01:00
Sébastien Helleu f2310dae42 doc: add more categories for key bindings (user's guide) 2021-12-04 15:15:58 +01:00
Sébastien Helleu 67a364550f core: fix typo in weechat --help 2021-12-03 12:03:08 +01:00
Sébastien Helleu 64592951b5 doc: use only a link to user's guide in Installation chapter (README) 2021-12-01 18:54:28 +01:00
Sébastien Helleu 3a38879590 doc: remove tester's guide 2021-12-01 18:48:14 +01:00
Sébastien Helleu d447755b1f core: update ChangeLog 2021-11-28 22:21:55 +01:00
Sébastien Helleu 2564fa2882 doc: disable web fonts in docs generated by asciidoctor 2021-11-27 16:53:12 +01:00
Sébastien Helleu 928ed152ed doc: make reproducible build of docs with asciidoctor 2021-11-27 16:09:11 +01:00
Sébastien Helleu 7014322b2e doc: add dark theme in docs generated by asciidoctor 2021-11-27 16:05:28 +01:00
Sébastien Helleu 9b6606394c doc: fix column size in table with color codes (developer's guide) 2021-11-27 16:05:28 +01:00
Sébastien Helleu 198872c027 doc: escape example of link in developer's guide 2021-11-27 16:05:28 +01:00
Sébastien Helleu c8776b14f6 doc: switch from prettify to pygments for syntax highlighting 2021-11-27 16:05:28 +01:00
Nils Görs 35c26fb001 doc: update German documentation 2021-11-24 12:30:41 +01:00
Thomas Faughnan eca9c89747 doc: fix typo in link for '/layout' in user guide 2021-11-23 09:34:19 +01:00
Sébastien Helleu aed64f5020 ruby: add detection of Ruby 3.0 in autotools (issue #1721) 2021-11-21 16:57:17 +01:00
Sébastien Helleu 266233636d core: add issue #1605 in ChangeLog 2021-11-21 16:48:39 +01:00
Sébastien Helleu be753046b7 core: fix detection of Ruby 3.0 on macOS (issue #1721) 2021-11-21 16:38:22 +01:00
Sébastien Helleu 15f5bc7944 tests: add missing include of stdio.h 2021-11-21 16:37:23 +01:00
Sébastien Helleu 27a480c7d7 core: fix compilation with Ruby 3.0 on macOS (issue #1721, closes #1605) 2021-11-21 16:29:40 +01:00
Sébastien Helleu fe9768f484 ruby: add detection of Ruby 3.0.0, remove old way to detect Ruby (closes #1721) 2021-11-21 11:39:56 +01:00
Sébastien Helleu aace0a1a58 core: fix links to docs in release notes 2021-11-20 20:34:21 +01:00
Sébastien Helleu 792739ee42 core: add build with CMake and Ninja in CI 2021-11-20 19:02:53 +01:00
Sébastien Helleu 8b11fa86cd core: add build on macOS 11 in CI 2021-11-20 17:34:33 +01:00
Sébastien Helleu 28d013b704 build: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only) 2021-11-20 17:23:59 +01:00
Sébastien Helleu 5fffaf89e4 build: improve error management in build of tarballs 2021-11-20 15:32:06 +01:00
Sébastien Helleu 006964c4dc irc: fix memory leak in case of realloc error 2021-11-20 13:21:51 +01:00
Sébastien Helleu 05d31b476b trigger: hide key and password in command "/msg nickserv setpass nick key password" 2021-11-13 15:41:31 +01:00
Sébastien Helleu 50edb33f1c core: speed up eval by storing length of prefix/suffix in eval structure 2021-11-13 15:18:49 +01:00
Sébastien Helleu c82358c17c core: free strings with XDG directories in case of error 2021-11-13 14:59:14 +01:00
Sébastien Helleu d64050bafb relay: remove dead assignment in websocket decoding 2021-11-13 13:32:02 +01:00
Sébastien Helleu 1556e4ac5a core: fix memory leak in evaluated expression "split:number,seps,flags,xxx" when multiple "strip_items" are given 2021-11-13 13:29:32 +01:00
Sébastien Helleu a3924a27a0 tests: add tests on some IRC SASL functions 2021-11-13 09:06:34 +01:00
Sébastien Helleu cbadaecc4f core: add note about default trigger "cmd_pass_register" in release notes 2021-11-13 08:48:04 +01:00
Sébastien Helleu 7cad1230e6 trigger: add comments with list of all commands in default triggers 2021-11-12 21:20:14 +01:00
Sébastien Helleu 997559e55b trigger: split default triggers on multiple lines 2021-11-12 21:08:39 +01:00
Sébastien Helleu d98940fecb tests: add tests on default triggers 2021-11-12 20:58:30 +01:00
Sébastien Helleu f2ad57ceb9 trigger: add support of option "-server" when hiding passwords in command /msg nickserv register 2021-11-12 20:52:14 +01:00
Sébastien Helleu d4650183ba doc: fix typos in user's guide 2021-11-11 21:33:16 +01:00
Sébastien Helleu a6c40d2190 doc: fix sentences in French user's guide 2021-11-11 21:18:10 +01:00
Sébastien Helleu 563a6db02d core: fix typos in docs 2021-11-11 09:28:24 +01:00
Sébastien Helleu 5ddd72c0e9 tests: add extra tests on functions string_strcmp_ignore_chars and string_convert_escaped_chars 2021-11-09 20:41:23 +01:00
Ivan Pešić 80b86ea647 core: update Serbian translations 2021-11-08 20:48:59 +01:00
Santiago Forero bbcdb90fbb core: update Spanish translations 2021-11-08 20:25:41 +01:00
Sébastien Helleu 253b25db03 core: fix random integer number with large range in evaluation of expressions on GNU/Hurd 2021-11-07 20:16:26 +01:00
Sébastien Helleu 4c9e7ed09e tests: fix allocation of test_ptr_1_hashtable_dyn in hdata tests 2021-11-07 18:13:03 +01:00
Sébastien Helleu 12043622e6 tests: add tests on UTF-8 string functions 2021-11-07 14:39:48 +01:00
Sébastien Helleu f4a1baaed3 irc: extend size of some internal buffers 2021-11-07 08:57:07 +01:00
Sébastien Helleu 9303f5abd9 core: update ChangeLog 2021-11-06 18:57:49 +01:00
Sébastien Helleu 1b8ad40b81 irc: do not display a message parsing error when a channel buffer can not be created 2021-11-06 18:19:12 +01:00
Sébastien Helleu 2f177dd188 irc: fix join of channels with name longer than 127 chars (closes #1717) 2021-11-06 18:17:39 +01:00
Sébastien Helleu edfc415e9e irc: fix memory leak in main IRC message callback 2021-11-06 17:58:48 +01:00
Sébastien Helleu 8bb5e33348 irc: fix memory leak in callback of IRC message 353 2021-11-06 17:55:31 +01:00
Sébastien Helleu b3cf7658f7 doc: replace ${name} by ${server_name} in example of function hdata_search (plugin API reference) 2021-11-06 16:03:40 +01:00
Sébastien Helleu 2081fa54af core: reverse diff arguments in CI 2021-11-06 15:59:28 +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 018a4bda53 core: add hdata changes in release notes 2021-11-05 20:21:39 +01:00
Sébastien Helleu 14c6ef3d83 tests: add missing include of string.h 2021-11-05 20:21:17 +01:00
Sébastien Helleu 9c5837d143 core: add unit tests on hdata 2021-11-05 20:04:10 +01:00
Sébastien Helleu 5e08f9876a core: fix access to integer/long/time arrays in hdata, add support of static arrays in hdata 2021-11-04 23:55:02 +01:00
Sébastien Helleu ee66fc3a85 core: fix crash in function hdata_set when pointer value is NULL in hashtable 2021-11-03 23:54:12 +01:00
Sébastien Helleu 13472adfff core: check that time is valid in function hdata_set 2021-11-03 23:23:09 +01:00
Sébastien Helleu 60b374901f core: remove useless test in function hdata_update 2021-11-03 23:02:01 +01:00
Sébastien Helleu d8a3a0137c core: check that hdata and name are not NULL in function hdata_compare 2021-11-02 21:08:24 +01:00
Sébastien Helleu f66e55564e core: check that name is not NULL in function hdata_get_var 2021-11-01 22:16:50 +01:00
Sébastien Helleu 6e83225e6f core: use a "free value" callback in hashtable weechat_hdata 2021-10-29 22:13:53 +02:00
Sébastien Helleu f03622d141 doc: update Polish auto-generated files 2021-10-24 09:23:01 +02:00
Krzysztof Korościk 4f20417cb2 po: updated polish translation 2021-10-24 00:38:46 +02:00
Krzysztof Korościk f15337ea9a doc: updated polish translation 2021-10-23 23:29:34 +02:00
Sébastien Helleu 49221b56b9 doc: update German auto-generated file 2021-10-23 20:58:16 +02:00
Nils Görs 75f71cd311 core: update German translations 2021-10-23 17:58:01 +02:00
Sébastien Helleu 505a9f937a core: fix typo in ChangeLog 2021-10-23 15:13:53 +02:00
Sébastien Helleu 08d3e3b2b7 core: update ChangeLog (closes #1666) 2021-10-23 14:44:20 +02:00
Sébastien Helleu fb4d947a8c core: update translations 2021-10-23 14:44:11 +02:00
Sébastien Helleu 2ca6420e17 irc: do not display first parameter in numeric command when it is "*" 2021-10-17 21:28:31 +02:00
Sébastien Helleu cde0d5f7a5 irc: do not display "*" when received as nick in command 900 2021-10-17 21:28:31 +02:00
Sébastien Helleu ba5b744397 irc: add URL to extended-join extension 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1447c7ad83 irc: fix URL to invite-notify extension 2021-10-17 21:28:31 +02:00
Sébastien Helleu b57d19c893 irc: add more CAP command examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9063546acc irc: remove parameters argc/argv/argv_eol from command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu f1cb767001 irc: keep trailing spaces in received message 322 2021-10-17 21:28:31 +02:00
Sébastien Helleu 634eac455d tests: ensure trailing spaces are preserved in some incoming IRC commands 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2f90fc0299 irc: don't keep trailing spaces in received message TAGMSG 2021-10-17 21:28:31 +02:00
Sébastien Helleu d2bd952210 tests: protect IRC message with quotes in command /server fakerecv 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9fbe18eb27 irc: remove quotes around message in command /server fakerecv
This preserves trailing spaces at the end of the message.
2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ca37a9128 irc: remove server in "903" and "904" command callbacks examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu a73e9eb8ca irc: use parsed command parameters in "901" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a3ddeba9f9 irc: use parsed command parameters in "900" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu baa91a45a8 irc: use parsed command parameters in "730", "731", "732", "733" and "734" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6124bf3c92 irc: use parsed command parameters in "729" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6a8ec55118 irc: use parsed command parameters in "728" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4b6038975c irc: use parsed command parameters in "470" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5e63161b5b irc: use parsed command parameters in "438" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 32c99047f4 irc: use parsed command parameters in "437" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ef9509dbe irc: remove server in "432" and "433" command callbacks examples 2021-10-17 21:28:31 +02:00
Sébastien Helleu c7cb025582 irc: use parsed command parameters in "368" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 96288d69e2 irc: use parsed command parameters in "367" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu aad86a1955 irc: use parsed command parameters in "366" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu dcbf534d53 irc: use parsed command parameters in "353" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu c8329da6e0 irc: use parsed command parameters in "352" and "354" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3e1b621f52 tests: add extra tests on notice message received with just a server address 2021-10-17 21:28:31 +02:00
Sébastien Helleu 56cb9e50af irc: fix display of address in notice messages received 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9b17f1fee4 irc: use parsed command parameters in "351" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu cee4bf7e3c irc: use parsed command parameters in "349" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 027ecc6b0e irc: use parsed command parameters in "348" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 22ecfda777 irc: use parsed command parameters in "347" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2ae974f5c3 irc: use parsed command parameters in "346" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 99d565f6df irc: use parsed command parameters in "345" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5546b0af0e irc: use parsed command parameters in "344" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 741343e9aa irc: use parsed command parameters in "341" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0e9710de81 irc: use parsed command parameters in "338" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 32ae101096 irc: use parsed command parameters in "333" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3a5a2abeea irc: use parsed command parameters in "332" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu de567aa1d3 irc: use parsed command parameters in "331" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a5e470a16a irc: use parsed command parameters in "330" and "343" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu b3ce8b5282 irc: use parsed command parameters in "329" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 31b15c1423 irc: use parsed command parameters in "328" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 60c9beab2b irc: rename some variables "str_params" to a more meaningful name 2021-10-17 21:28:31 +02:00
Sébastien Helleu 10a1c9bda4 irc: use parsed command parameters in "327" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 6f8f547242 irc: use parsed command parameters in "324" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2509486c6a irc: use parsed command parameters in "323" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu df9c32b0c3 irc: use parsed command parameters in "322" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu c577da0375 irc: use parsed command parameters in "321" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4e1d40034e irc: use parsed command parameters in "317" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a1a4f337ff irc: use parsed command parameters in "315" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu e412a34668 irc: use parsed command parameters in "314" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3c7d4b0516 irc: use parsed command parameters in "312" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 572bcc2c59 irc: use parsed command parameters in "311" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3360cadd55 irc: use parsed command parameters in "whois" and "whowas" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu f51f3dbe29 irc: use parsed command parameters in "305" and "306" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu efecdf5d45 irc: use parsed command parameters in "303" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 76b75ad5cd irc: use parsed command parameters in "numeric" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 74ceaa1a68 irc: use parsed command parameters in "301" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 12a4519448 irc: use parsed command parameters in "221" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 033fbf63b0 irc: use parsed command parameters in "008" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1029780ce2 irc: use parsed command parameters in "005" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0ea0b24563 irc: use parsed command parameters in "001" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu ec816b4be5 irc: use parsed command parameters in "wallops" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7c1ea1cb32 irc: use parsed command parameters in "topic" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 27f554659e irc: use parsed command parameters in "973", "974" and "975" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5389ceb237 irc: use parsed command parameters in "tagmsg" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 03e0122155 irc: use parsed command parameters in "setname" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 8d12187f3d irc: require nick in "away" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu bf8c85f422 irc: use parsed command parameters in "quit" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 179822fb91 irc: use parsed command parameters in "privmsg" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5e712d7145 irc: use parsed command parameters in "pong" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 8ea41d91c9 irc: use parsed command parameters in "ping" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7a88e007a5 tests: check missing nick in IRC commands invite/join/kick/kill/mode/nick/part 2021-10-17 21:28:31 +02:00
Sébastien Helleu 257fe7362a tests: fix comments 2021-10-17 21:28:31 +02:00
Sébastien Helleu 52cc1165c4 irc: ensure the nick is not empty when the nick is required in a command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 0be96b7c66 irc: fix messages displayed when prefix/nick is missing 2021-10-17 21:28:31 +02:00
Sébastien Helleu 9d4119232f irc: remove check of address/host in command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu adcc04cc5a irc: fix extraction of address from prefix
Do not return the nick when the address is missing.
2021-10-17 21:28:31 +02:00
Sébastien Helleu e5996f626b irc: use parsed command parameters in "part" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu d8c7cf41b5 irc: use parsed command parameters in "notice" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5123483c33 tests: fix IRC protocol tests 2021-10-17 21:28:31 +02:00
Sébastien Helleu 33a3c485be irc: shorten error in case of missing parameters in command received 2021-10-17 21:28:31 +02:00
Sébastien Helleu 7b4d48c46d irc: fix number of required parameters in generic error command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 4ee82d1c70 irc: use parsed command parameters in "nick" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a1a4d627e1 irc: use parsed command parameters in "mode" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5a5c2cbd1a irc: rename macro IRC_PROTOCOL_CHECK_HOST to IRC_PROTOCOL_CHECK_PREFIX 2021-10-17 21:28:31 +02:00
Sébastien Helleu 2bd3681eef irc: use parsed command parameters in "kill" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 604415e19e irc: use parsed command parameters in "kick" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu e653ee04d2 irc: use parsed command parameters in "join" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 3c737ca304 irc: use parsed command parameters in "invite" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 1f83df7a18 irc: use parsed command parameters in "fail", "warn" and "note" command callbacks 2021-10-17 21:28:31 +02:00
Sébastien Helleu eda8ad9de5 irc: use parsed command parameters in "generic_error" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu df6f32a7bb irc: use parsed command parameters in "error" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu a2a733fc36 irc: use parsed command parameters in "chghost" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 56edeba7fc irc: use parsed command parameters in "cap" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 15392e4a81 irc: use parsed command parameters in "away" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu cb856a7f3a irc: use parsed command parameters in "authenticate" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 69c457287d irc: use parsed command parameters in "account" command callback 2021-10-17 21:28:31 +02:00
Sébastien Helleu 5458382bb8 irc: fix typo in a comment 2021-10-17 21:28:31 +02:00
Sébastien Helleu 849105ebd6 irc: replace "message" by "command" in description of functions 2021-10-17 21:28:31 +02:00
Sébastien Helleu cbc4073815 irc: send parsed parameters to IRC command callbacks 2021-10-17 21:28:30 +02:00
Sébastien Helleu c4b4d80936 irc: parse and return command parameters in message parser 2021-10-17 21:28:30 +02:00
Sébastien Helleu f0898eae64 doc: update Serbian auto-generated file 2021-10-17 21:27:41 +02:00
Ivan Pešić 9378a7572b core: Update Serbian translation 2021-10-17 21:26:20 +02:00
148 changed files with 26340 additions and 21570 deletions
+6 -3
View File
@@ -15,6 +15,7 @@ jobs:
- ubuntu-20.04
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++", tool: "cmake", args: "" }
- { name: "cmake_gcc_ninja", cc: "gcc", cxx: "g++", tool: "cmake", args: "-G Ninja" }
- { name: "cmake_gcc_no_nls", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_NLS=OFF" }
- { name: "cmake_gcc_py2", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_PYTHON2=ON" }
- { name: "cmake_gcc_coverage", cc: "gcc", cxx: "g++", tool: "cmake", args: "-DENABLE_CODE_COVERAGE=ON" }
@@ -33,7 +34,8 @@ jobs:
run: |
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
sudo apt-get --yes purge php8.1-dev
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
sudo -H pip3 install --ignore-installed msgcheck
- name: Test patches
@@ -51,7 +53,7 @@ jobs:
bandit tests/scripts/python/testapigen.py tests/scripts/python/testapi.py tests/scripts/python/unparse.py
- name: Check Python stub file
run: ./doc/python_stub.py | diff - src/plugins/python/weechat.pyi
run: ./doc/python_stub.py | diff src/plugins/python/weechat.pyi -
- name: Build and run tests
env:
@@ -89,7 +91,8 @@ jobs:
fail-fast: false
matrix:
os:
- macos-latest
- macos-11
- macos-10.15
config:
- { name: "cmake_gcc", cc: "gcc", cxx: "g++" }
- { name: "cmake_clang", cc: "clang", cxx: "clang++" }
+2 -2
View File
@@ -27,8 +27,8 @@ project(weechat C)
set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_SKIP_RPATH ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -Wall -Wextra")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
# version
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR)
+43 -7
View File
@@ -15,20 +15,56 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
(file _ReleaseNotes.adoc_ in sources).
[[v3.4]]
== Version 3.4 (under dev)
New features::
* core: add command /toggle
* api: add user variables in evaluation of expressions with "define:name,value"
[[v3.4.1]]
== Version 3.4.1 (2022-03-13)
Bug fixes::
* core: set again TLS verification functions after options weechat.network.gnutls_ca_system and weechat.network.gnutls_ca_user are changed (issue #1763)
[[v3.4]]
== Version 3.4 (2021-12-18)
New features::
* core: add support of static arrays in hdata
* core: add command /toggle
* api: add parameters pointers, extra_vars and options in function hdata_search
* api: add user variables in evaluation of expressions with "define:name,value"
* api: add IRC message parameters "param1" to "paramN" and "num_params" in output of irc_message_parse
* irc: allow quotes around IRC message in command /server fakerecv
* trigger: hide key and password in command "/msg nickserv setpass nick key password"
* trigger: add support of option "-server" when hiding passwords in command /msg nickserv register
Bug fixes::
* core: fix memory leak in evaluated expression "split:number,seps,flags,xxx" when multiple "strip_items" are given
* core: fix random integer number with large range in evaluation of expressions on GNU/Hurd
* core: fix access to integer/long/time arrays in hdata
* api: fix search of option when the section is not given in functions config_search_option and config_search_section_option
* irc: fix join of channels with long name (issue #1717)
* irc: fix parsing of parameters in all IRC messages (issue #1666)
* irc: fix parsing of CAP message when there is no prefix (issue #1707)
* irc: fix parsing of TAGMSG message when there is a colon before the channel
Documentation::
* doc: remove tester's guide
* doc: add dark theme (automatic, following browser/desktop settings)
* doc: make build reproducible
* doc: disable web fonts
* doc: switch from prettify to pygments for syntax highlighting
Tests::
* core: add build with CMake and Ninja in CI
* core: add build on macOS 11 in CI
Build::
* ruby: add detection of Ruby 3.0 (issue #1721, issue #1605)
* core: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only)
[[v3.3]]
== Version 3.3 (2021-09-19)
+8 -75
View File
@@ -26,9 +26,9 @@ Homepage: https://weechat.org/
* *Modular chat client*: WeeChat has a lightweight core and optional https://weechat.org/files/doc/stable/weechat_user.en.html#plugins[plugins]. All plugins (including https://weechat.org/files/doc/stable/weechat_user.en.html#irc_plugin[IRC]) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812] and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/stable/language/perl/[Perl], https://weechat.org/scripts/stable/language/python/[Python], https://weechat.org/scripts/stable/language/ruby[Ruby], https://weechat.org/scripts/stable/language/lua/[Lua], https://weechat.org/scripts/stable/language/tcl/[Tcl], https://weechat.org/scripts/stable/language/guile/[Scheme], https://weechat.org/scripts/stable/language/javascript/[JavaScript] and https://weechat.org/scripts/stable/language/php/[PHP]).
* *Standards-compliant*: the IRC plugin is compliant with RFCs https://tools.ietf.org/html/rfc1459[1459], https://tools.ietf.org/html/rfc2810[2810], https://tools.ietf.org/html/rfc2811[2811], https://tools.ietf.org/html/rfc2812[2812], and https://tools.ietf.org/html/rfc2813[2813].
* *Small, fast, and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and https://weechat.org/scripts/[scripts] (https://weechat.org/scripts/language/perl/[Perl], https://weechat.org/scripts/language/python/[Python], https://weechat.org/scripts/language/ruby[Ruby], https://weechat.org/scripts/language/lua/[Lua], https://weechat.org/scripts/language/tcl/[Tcl], https://weechat.org/scripts/language/guile/[Scheme], https://weechat.org/scripts/language/javascript/[JavaScript] and https://weechat.org/scripts/language/php/[PHP]).
* *Fully documented*: there is comprehensive https://weechat.org/doc/[documentation], which is https://weechat.org/files/doc/stable/weechat_dev.en.html#translations[translated] into several languages.
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
* *Free software*: WeeChat is released under https://www.gnu.org/licenses/gpl-3.0.html[GPLv3].
@@ -37,80 +37,13 @@ pass:[<p align="center">] image:https://weechat.org/media/images/screenshots/wee
On WeeChat's website you can find https://weechat.org/about/screenshots/[more screenshots].
== Install
== Installation
=== Dependencies
WeeChat can be installed using your favorite package manager (recommended)
or by compiling it yourself.
Following packages are *required*:
* CMake
* libncurses
* libcurl
* zlib
* libgcrypt
Following packages are optional:
* for i18n: gettext
* for SSL: gnutls, ca-certificates
* for spell checking: aspell or enchant
* for scripting: python, perl, ruby, lua, tcl, guile, libv8 (javascript), php
* for building doc and man page: asciidoctor
* for building tests: C++ compiler, CppUTest
For a complete list of dependencies and versions recommended, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#dependencies[user's guide].
=== Compile
WeeChat can be built with https://cmake.org/[CMake] (recommended) or autotools.
[NOTE]
Only CMake is officially supported to build WeeChat. You should only use
autotools if you are not able to use CMake. +
Building with autotools requires more dependencies and is slower than with CMake.
* Installation in system directories (requires _root_ privileges):
----
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
----
* Installation in custom directory (for example your home):
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
$ make
$ make install
----
For more information or installation with autotools, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#compile_with_autotools[user's guide].
=== Run tests
Following packages are *required* to compile tests:
* libcpputest-dev
* C++ compiler
Tests must be enabled when compiling WeeChat:
----
$ cmake .. -DENABLE_TESTS=ON
----
They can be launched after compilation from the build directory:
----
$ ctest -V
----
For detailed instructions, please check the
https://weechat.org/files/doc/stable/weechat_user.en.html#install[WeeChat user's guide].
== Copyright
+58 -5
View File
@@ -17,6 +17,59 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
(file _ChangeLog.adoc_ in sources).
[[v3.4.1]]
== Version 3.4.1 (2022-03-13)
Bug fix and maintenance release.
[[v3.4]]
== Version 3.4 (2021-12-18)
[[v3.4_default_triggers]]
=== Default triggers
The existing triggers "cmd_pass" and "cmd_pass_register" have been updated to
hide key and password in command `/msg nickserv setpass <nick> <key> <password>`
and support the option `-server <name>`.
You can restore the default triggers with the following command:
----
/trigger restore cmd_pass cmd_pass_register
----
[[v3.4_hdata_search]]
=== New parameters in function hdata_search
New parameters have been added in function
link:https://weechat.org/doc/plugin#_hdata_search[hdata_search], used for the
evaluation of expression.
New parameters are the same as function
link:https://weechat.org/doc/plugin#_string_eval_expression[string_eval_expression]:
* pointers: hashtable with pointers (pointers)
* extra_vars: hashtable with extra variables (strings)
* options: hashtable with options (strings).
The following scripts are updated consequently to be compatible with all
WeeChat versions:
* https://weechat.org/scripts/source/autoauth.py/[autoauth.py] 1.3
* https://weechat.org/scripts/source/buffer_open.py/[buffer_open.py] 0.3
* https://weechat.org/scripts/source/collapse_channel.py/[collapse_channel.py] 0.9
* https://weechat.org/scripts/source/grep_filter.py/[grep_filter.py] 0.11
* https://weechat.org/scripts/source/samechannel.rb/[samechannel.rb] 0.2
* https://weechat.org/scripts/source/soju.py/[soju.py] 0.1.4
* https://weechat.org/scripts/source/stalker.pl/[stalker.pl] 1.6.3
[[v3.4_hdata_arrays]]
=== Static array support in hdata
Support of static array in hdata has been added.
For pointers to arrays, a prefix `*,` must be added in parameter `array_size`
of API function link:https://weechat.org/doc/plugin#_hdata_new_var[hdata_new_var].
[[v3.3]]
== Version 3.3 (2021-09-19)
@@ -405,12 +458,12 @@ If you want to use a command, you must add explicitly the leading `/`:
----
[[v3.0_trigger_beep]]
=== Default "beep" trigger
=== Default trigger "beep"
The command of "beep" trigger is now executed only if the message does NOT
contain the tag "notify_none" (in addition to existing conditions).
You can restore the default "beep" trigger with the following command:
You can restore the default trigger "beep" with the following command:
----
/trigger restore beep
@@ -604,7 +657,7 @@ A _handshake_ command has been added in weechat relay protocol. +
The client should send this command before the _init_ to negotiate the way to
authenticate with the relay server.
See the link:weechat_relay_protocol.en.html#command_handshake[handshake command]
See the link:https://weechat.org/doc/relay#command_handshake[handshake command]
in Relay protocol doc for more information.
==== Server "nonce"
@@ -622,7 +675,7 @@ So the hash is computed on: (`server nonce` + `client nonce` + `password`).
This salt is now mandatory even for algorithms `SHA256` and `SHA512`; this is
a breaking change in protocol, needed for security reasons.
See the link:weechat_relay_protocol.en.html#command_init[init command]
See the link:https://weechat.org/doc/relay#command_init[init command]
in Relay protocol doc for more information.
[[v2.8]]
@@ -948,7 +1001,7 @@ Or set explicitly the value:
The existing triggers "cmd_pass" and "msg_auth" have been updated to hide
password in command `/msg nickserv set password` and support the option
`-server xxx`.
`-server <name>`.
You can restore the default triggers with the following command:
+8 -46
View File
@@ -33,51 +33,13 @@ endif()
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_search_module(RUBY ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9)
endif()
if(RUBY_FOUND)
set(RUBY_LIB "")
mark_as_advanced(RUBY_LIB)
else()
find_program(RUBY_EXECUTABLE
NAMES ruby2.7.0 ruby270 ruby2.7 ruby2.6.0 ruby260 ruby2.6 ruby2.5.0 ruby250 ruby2.5 ruby2.4.0 ruby240 ruby2.4 ruby2.3.0 ruby230 ruby2.3 ruby23 ruby2.2.3 ruby223 ruby2.2.2 ruby222 ruby2.2.1 ruby221 ruby2.2.0 ruby220 ruby2.2 ruby22 ruby2.1.7 ruby217 ruby2.1.6 ruby216 ruby2.1.5 ruby215 ruby2.1.4 ruby214 ruby2.1.3 ruby213 ruby2.1.2 ruby212 ruby2.1.1 ruby211 ruby2.1.0 ruby210 ruby2.1 ruby21 ruby2.0 ruby20 ruby1.9.3 ruby193 ruby1.9.2 ruby192 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS /usr/bin /usr/local/bin /usr/pkg/bin
)
if(RUBY_EXECUTABLE)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
OUTPUT_VARIABLE RUBY_ARCH_DIR
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
OUTPUT_VARIABLE RUBY_ARCH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
)
execute_process(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH
)
find_path(RUBY_INCLUDE_DIRS
NAMES ruby.h
PATHS ${RUBY_ARCH_DIR}
)
set(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
find_library(RUBY_LIB
NAMES ruby-1.9.3 ruby1.9.3 ruby193 ruby-1.9.2 ruby1.9.2 ruby192 ruby-1.9.1 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
)
if(RUBY_LIB AND RUBY_INCLUDE_DIRS)
set(RUBY_FOUND TRUE)
endif()
set(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH}")
mark_as_advanced(
RUBY_INCLUDE_DIRS
RUBY_LIBRARY_DIRS
RUBY_LIB
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# set specific search path for macOS
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
endif()
pkg_search_module(RUBY ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
endif()
endif()
+2 -2
View File
@@ -501,7 +501,7 @@ RUBY_VERSION=
if test "x$enable_ruby" = "xyes" ; then
RUBY_CFLAGS=""
RUBY_LFLAGS=""
for v in "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
for v in "3.0" "2.7" "2.6" "2.5" "2.4" "2.3" "2.2" "2.1" "2.0" "1.9" "1.8" ; do
pkgconfig_ruby_found=`$PKGCONFIG --exists ruby-$v 2>/dev/null`
if test "x$?" = "x0" ; then
RUBY_VERSION=`$PKGCONFIG --modversion ruby-$v`
@@ -1263,7 +1263,7 @@ if test "x$enable_man" = "xyes" -o "x$enable_doc" = "xyes"; then
enable_man="no"
enable_doc="no"
fi
ASCIIDOCTOR_ARGS="-a experimental -a 'prewrap!' -a icons=font -a sectanchors -a source-highlighter=prettify"
ASCIIDOCTOR_ARGS="-a experimental -a reproducible -a 'prewrap!' -a 'webfonts!' -a icons=font -a sectanchors -a source-highlighter=pygments -a pygments-style=native"
AC_SUBST(ASCIIDOCTOR)
AC_SUBST(ASCIIDOCTOR_ARGS)
fi
@@ -1,10 +0,0 @@
Document: weechat-tester-de
Title: WeeChat tester's guide (German)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (German version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.de.html
@@ -1,10 +0,0 @@
Document: weechat-tester-en
Title: WeeChat tester's guide (English)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.en.html
@@ -1,10 +0,0 @@
Document: weechat-tester-fr
Title: WeeChat tester's guide (French)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.fr.html
@@ -1,10 +0,0 @@
Document: weechat-tester-it
Title: WeeChat tester's guide (Italian)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Italian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.it.html
@@ -1,10 +0,0 @@
Document: weechat-tester-ja
Title: WeeChat tester's guide (Japanese)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Japanese version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.ja.html
@@ -1,10 +0,0 @@
Document: weechat-tester-pl
Title: WeeChat tester's guide (Polish)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Polish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
Files: /usr/share/doc/weechat-devel-doc/html/weechat_tester.pl.html
+9
View File
@@ -1,3 +1,12 @@
weechat (3.3-1) unstable; urgency=medium
* New upstream release
* Remove patch merged upstream (which command detection in libgcrypt)
* Minor updates in debian/copyright
* Enable Typing plugin
-- Emmanuel Bouthenot <kolter@debian.org> Mon, 20 Sep 2021 10:05:56 +0000
weechat (3.2.1-1) unstable; urgency=medium
* New upstream release
@@ -1,10 +0,0 @@
Document: weechat-tester-de
Title: WeeChat tester's guide (German)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (German version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.de.html
@@ -1,10 +0,0 @@
Document: weechat-tester-en
Title: WeeChat tester's guide (English)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (English version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.en.html
@@ -1,10 +0,0 @@
Document: weechat-tester-fr
Title: WeeChat tester's guide (French)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (French version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.fr.html
@@ -1,10 +0,0 @@
Document: weechat-tester-it
Title: WeeChat tester's guide (Italian)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Italian version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.it.html
@@ -1,10 +0,0 @@
Document: weechat-tester-ja
Title: WeeChat tester's guide (Japanese)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Japanese version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.ja.html
@@ -1,10 +0,0 @@
Document: weechat-tester-pl
Title: WeeChat tester's guide (Polish)
Author: Sébastien Helleu
Abstract: This document describes how to test and report
bugs against the WeeChat IRC Client (Polish version).
Section: Network/Communication
Format: HTML
Index: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
Files: /usr/share/doc/weechat-doc/html/weechat_tester.pl.html
+52 -1
View File
@@ -21,7 +21,58 @@
if(ENABLE_MAN OR ENABLE_DOC)
find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND)
set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify)
# common asciidoctor arguments
set(ASCIIDOCTOR_ARGS -a experimental -a reproducible -a "prewrap!" -a "webfonts!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=pygments -a pygments-style=native)
# sed arguments used to replace links in ChangeLog and release notes
set(SED_LINKS_ARGS
-e "'s/issue #\\([0-9][0-9]*\\)/https:\\/\\/github.com\\/weechat\\/weechat\\/issues\\/\\1[issue #\\1^]/g'"
-e "'s/bug #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/bugs\\/?\\1[bug #\\1^]/g'"
-e "'s/task #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/task\\/?\\1[task #\\1^]/g'"
-e "'s/patch #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/patch\\/?\\1[patch #\\1^]/g'"
-e "'s/debian #\\([0-9][0-9]*\\)/http:\\/\\/bugs.debian.org\\/cgi-bin\\/bugreport.cgi?bug=\\1[debian bug #\\1^]/g'"
-e "'s/\\(CVE-[0-9][0-9]*-[0-9][0-9]*\\)/https:\\/\\/cve.mitre.org\\/cgi-bin\\/cvename.cgi?name=\\1[\\1^]/g'"
)
# ChangeLog
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ChangeLog.html"
)
add_custom_target(changelog DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html)
# Release notes
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html
${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building ReleaseNotes.html"
)
add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html)
# man/doc in all languages
add_subdirectory(cs)
add_subdirectory(de)
add_subdirectory(en)
-13
View File
@@ -107,17 +107,4 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.de.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.de.html"
)
add_custom_target(doc-tester-de ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.de.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+1 -7
View File
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.de.adoc \
weechat_faq.de.adoc \
weechat_quickstart.de.adoc \
weechat_tester.de.adoc \
includes/autogen_api_completions.de.adoc \
includes/autogen_api_hdata.de.adoc \
includes/autogen_api_infolists.de.adoc \
@@ -53,8 +52,7 @@ if DOC
doc_targets = weechat_user.de.html \
weechat_scripting.de.html \
weechat_faq.de.html \
weechat_quickstart.de.html \
weechat_tester.de.html
weechat_quickstart.de.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
@@ -82,10 +80,6 @@ weechat_faq.de.html: weechat_faq.de.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.de.html: weechat_quickstart.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.de.html $(abs_top_srcdir)/doc/de/weechat_quickstart.de.adoc
# tester's guide
weechat_tester.de.html: weechat_tester.de.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.de.html $(abs_top_srcdir)/doc/de/weechat_tester.de.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
@@ -8,7 +8,7 @@
|===
| Erweiterung | Name | Beschreibung | Hashtable (Eingabe) | Hashtable (Ausgabe)
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "tag_xxx": Wert des Tags "xxx" ohne Escapezeichen (ein Schlüssel pro Tag), "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "user": Benutzer, "host": Host, "command": Befehl, "channel": Kanal, "arguments": Argumente (schließt Kanal ein), "text": Text (zum Beispiel eine Nachricht von einem User), "param1" ... "paramN": geparste Befehlsparameter, "num_params": Anzahl geparste Befehlsparameter, "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
| irc | irc_message_split | trennt eine IRC Nachricht (standardmäßig in 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
+8
View File
@@ -1174,6 +1174,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
Wenn Sie macOS ausführen und die heruntergeladene Datei eine Größe von 0 Byte hat,
versuchen Sie, diese Variable in Ihrer Shell-Initialisierungsdatei oder auf der
Befehlszeile zu setzen. Bevor Sie WeeChat starten:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen?
-148
View File
@@ -1,148 +0,0 @@
= WeeChat Anleitung für Testpersonen
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: de
:toc: left
:toc-title: Inhaltsverzeichnis
:sectnums:
:docinfo1:
Übersetzer:
* Juergen Descher <jhdl@gmx.net>, 2009
* Nils Görs <weechatter@arcor.de>, 2009-2016
[[purpose]]
== Intention
Viele dankbare Anwender fragen uns wie sie bei der Entwicklung von WeeChat
helfen können. Der einfachste (aber auch der kniffligste) Weg uns zu helfen ist:
testen!
Testen ist ein sehr wichtiger Teil der Programmentwicklung und sollte daher
nicht unterbewertet werden. Wenn neue Funktionen implementiert wurden dann
müssen diese getestet werden. Für manche Funktionen gibt es sehr viele
verschiedene Problemstellungen, oder diese sind äußerst Umfangreich. Dadurch
können die Entwickler nicht jede einzelne Variante ausprobieren.
Ein Beispiel: Eine berüchtigte Zeichensatz-Erweiterung wurde in WeeChat 0.2.2
eingeführt. Keiner von uns, Entwickler, Mithelfende und Tester, nutzten Channels
in denen länderspezifische Zeichen im eigenen Namen Verwendung fanden. Somit wurde
die Version 0.2.2 freigegeben und wir bekamen daraufhin eine Flut von Beschwerden
durch russischen User, bei denen der Fehler sichtbar war. Hätten wir mehr Tester,
dann sollte so etwas nicht mehr passieren.
Eine stabile Version von WeeChat zu testen bringt uns leider nicht weiter da die
Entwickler in der Zwischenzeit neue Funktionen implementiert haben und vermutlich
alte Fehler schon behoben wurden.
[[prepare_system]]
== Bereite Dein System vor
Es wäre uns schon sehr damit geholfen wenn Du Linux _core_ Dateien aktivieren würdest.
Falls WeeChat abstürzen sollte wird eine Datei Namens _core_ erzeugt. Diese Datei
beinhaltet viele nützliche Debug-Informationen um das genaue Problem in WeeChat
zu lokalisieren.
Falls Du die _bash_ als shell benutzt, dann ergänze Deine _~/.bashrc_ durch folgende
Zeile:
----
ulimit -c unlimited
----
[[download]]
== Besorge Dir die Entwickler-Version
aktueller Programmcode (mit den aktuellen Fehlern und Funktionen) ist im GIT Repository
gespeichert.
Du könntest Dich dazu entscheiden es manuell zu bauen (empfohlen):
* die GIT Version kann parallel zur stabilen Version kompiliert und installiert
werden.
* Du benötigst keine Root-Rechte, und opfern brauchst Du Deine stabile Version
von WeeChat auch nicht.
[[get_sources]]
=== Beschaffe und baue die Quellen
Erstelle zuerst einen neuen Ordner, z.B. _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Falls Du git installiert hast, clone das git Repository (empfohlen):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Um auf den aktuellen Stand zu kommen verwendest Du z.B. `git pull` in
diesem Ordner.
Ansonsten kannst Du das _Entwickler-Paket_ herunterladen und entpacken:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
Um die Quellen zu übersetzen, wird CMake empfohlen:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Falls Du CMake nicht hast, ist es auch möglich die autotools zu nutzen:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Installieren des Programm-Paketes
Abhängig Deiner Linux Distribution:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD von https://aur.archlinux.org/
* andere: Wissen wir nicht! Eheh.
[[run]]
== WeeChat starten
Die Befehlszeile lautet:
----
$ ~/weechat-git/bin/weechat
----
Immer noch munter? Dann solltest Du jetzt das bekannte Interface sehen und nun
prahle vor Anderen, dass Du die neueste WeeChat-Version verwendest :)
Solltest Du nun ein merkwürdiges Verhalten bemerken (es können diverse Probleme
oder Abstürze auftreten oder einfach Dein Bier überkochen) zögere nicht, komme
in den Channel _#weechat_ auf _irc.libera.chat_ (A.d.Ü.: englischsprachig) und
berichte uns darüber.
Auch falls alles korrekt funktionieren sollte gib uns trotzdem Bescheid, wir
brauchen Deine Rückmeldung!
+1967 -1842
View File
File diff suppressed because it is too large Load Diff
+211 -3
View File
@@ -3,36 +3,244 @@
Copyright (C) 2016-2021 Sébastien Helleu <flashcode@flashtux.org>
-->
<style>
#header,#content,#footnotes,#footer {
/* themes/colors */
@media (prefers-color-scheme: dark) {
/* dark theme */
:root {
--body-bg-color: #1a1a1a;
--body-color: #ddd;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--link-color: #8aceff;
--table-thead-tfoot: #252525;
--th-color: #fff;
--toc-bg-color: #252525;
--color-header1: #ddd;
--color-header2: #da8975;
--header-details-color: #aaa;
--border: 1px solid #444;
--code-bg-color: #252525;
--pre-bg-color: #202020;
--pre-code-bg-color: #202020;
--keyseq-color: #777;
--kbd-bg-color: #252525;
--kbd-border: 1px solid #333;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #2c2c2c;
--icon-note-color: #4d7cc6;
--icon-tip-color: #fff;
--icon-warning-color: #f39c12;
--icon-caution-color: #bf3400;
--icon-important-color: #f44336;
--mark-bg-color: #007;
}
}
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
/* light theme */
:root {
--body-bg-color: ##fff;
--body-color: #353535;
--body-font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--link-color: #1d4b8f;
--table-thead-tfoot: #f7f8f7;
--th-color: #000;
--toc-bg-color: #f8f8f7;
--color-header1: #000;
--color-header2: #ba3925;
--header-details-color: #797979;
--border: 1px solid #dddddf;
--code-bg-color: #f7f7f8;
--keyseq-color: #333c;
--pre-bg-color: #f7f7f8;
--pre-code-bg-color: #202020;
--kbd-bg-color: #f7f7f7;
--kbd-border: 1px solid #ccc;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
--icon-note-color: #19407c;
--icon-tip-color: #111;
--icon-warning-color: #bf6900;
--icon-caution-color: #ff0000;
--icon-important-color: #bf0000;
--mark-bg-color: #9df;
}
}
body {
background-color: var(--body-bg-color);
color: var(--body-color);
font-family: var(--body-font);
}
h1 {
color: var(--color-header1) !important;
}
h2, h3, h4, h5, h6 {
color: var(--color-header2) !important;
}
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {
font-family: var(--body-font);
}
a:link, a:visited, #header .details span.email a {
color: var(--link-color);
}
table thead, table tfoot {
background: var(--table-thead-tfoot) !important;
}
table.tableblock, th.tableblock, td.tableblock {
border: var(--border);
}
th {
color: var(--th-color) !important;
}
td {
background-color: var(--body-bg-color);
color: var(--body-color) !important;
}
#toc.toc2 {
background-color: var(--toc-bg-color);
border-right: none;
}
#toc.toc2 > ul {
font-size: .9em;
}
@media screen and (max-width:767px) {
#toc.toc2 {
background-color: var(--body-bg-color);
}
}
p, .paragraph.lead > p, #preamble > .sectionbody > [class="paragraph"]:first-of-type p, #toctitle, .title {
color: var(--body-color);
}
#header .details {
border-bottom: var(--border);
color: var(--header-details-color);
}
code, .prettyprint {
background-color: var(--code-bg-color) !important;
color: var(--body-color);
}
pre > code {
background-color: var(--pre-code-bg-color) !important;
}
.keyseq {
color: var(--keyseq-color);
}
kbd {
background-color: var(--kbd-bg-color) !important;
border: var(--kbd-border) !important;
box-shadow: var(--kbd-box-shadow);
color: var(--body-color);
}
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
background-color: var(--pre-bg-color);
color: var(--body-color);
}
.sect1 + .sect1 {
border-top: var(--border);
}
.admonitionblock td.icon .icon-note::before {
color: var(--icon-note-color);
}
.admonitionblock td.icon .icon-tip::before {
color: var(--icon-tip-color);
}
.admonitionblock td.icon .icon-warning::before {
color: var(--icon-warning-color);
}
.admonitionblock td.icon .icon-caution::before {
color: var(--icon-caution-color);
}
.admonitionblock td.icon .icon-important::before {
color: var(--icon-important-color);
}
.admonitionblock > table td.content {
border-left: var(--border);
}
mark {
background-color: var(--mark-bg-color);
color: var(--body-color);
}
/* syntax highlighting tuning */
pre.pygments .tok-cp {
color: #ed4848;
}
pre.pygments .tok-nc, pre.pygments .tok-nf {
color: #649fef;
}
pre.pygments .tok-gu, pre.pygments .tok-nc, pre.pygments .tok-nn {
text-decoration: none;
}
/* asciidoctor styles tuning */
#header, #content, #footnotes, #footer {
max-width: none;
padding-left: 3em;
padding-right: 3em;
}
#header #revnumber {
text-transform: none;
}
h1,h2,h3,h4,h5 {
h1, h2, h3, h4, h5 {
font-weight: bold;
}
.literalblock pre {
font-family: monospace, 'Courier New', Courier;
line-height: normal;
}
kbd {
font-size: .9em;
}
.keyseq {
margin-left: .2em;
margin-right: .2em;
}
.tableblock kbd {
margin-top: .2em;
margin-bottom: .2em;
}
.hex {
padding: 0 .2em;
border: 1px solid #88b;
border: var(--border);
margin: 0 .2em;
font-family: monospace;
font-size: 1.1em;
}
</style>
-13
View File
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.en.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.en.html"
)
add_custom_target(doc-tester-en ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.en.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.en.html
-6
View File
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.en.adoc \
weechat_faq.en.adoc \
weechat_quickstart.en.adoc \
weechat_tester.en.adoc \
weechat_relay_protocol.en.adoc \
weechat_dev.en.adoc \
includes/autogen_api_completions.en.adoc \
@@ -58,7 +57,6 @@ if DOC
weechat_scripting.en.html \
weechat_faq.en.html \
weechat_quickstart.en.html \
weechat_tester.en.html \
weechat_relay_protocol.en.html \
weechat_dev.en.html
doc_install = install-doc
@@ -92,10 +90,6 @@ weechat_faq.en.html: weechat_faq.en.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.en.html: weechat_quickstart.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.en.html $(abs_top_srcdir)/doc/en/weechat_quickstart.en.adoc
# tester's guide
weechat_tester.en.html: weechat_tester.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.en.html $(abs_top_srcdir)/doc/en/weechat_tester.en.adoc
# relay protocol
weechat_relay_protocol.en.html: weechat_relay_protocol.en.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.en.html $(abs_top_srcdir)/doc/en/weechat_relay_protocol.en.adoc
@@ -8,7 +8,7 @@
|===
| Plugin | Name | Description | Hashtable (input) | Hashtable (output)
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_parse | parse an IRC message | "message": IRC message, "server": server name (optional) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": IRC message, "server": server name (optional) | "msg1" ... "msgN": messages to send (without final "\r\n"), "args1" ... "argsN": arguments of messages, "count": number of messages
+119 -116
View File
@@ -389,59 +389,61 @@ WeeChat "core" is located in following directories:
[width="100%",cols="2m,3",options="header"]
|===
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-signal.cpp | Tests: signals.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|          typing/ | Root of unit tests for typing plugin.
|             test-typing.cpp | Tests: typing.
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-signal.cpp | Tests: signals.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-buffer.cpp | Tests: IRC buffers.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
|             test-irc-server.cpp | Tests: IRC server.
|          trigger/ | Root of unit tests for trigger plugin.
|             test-trigger.cpp | Tests: triggers.
|             test-trigger-config.cpp | Tests: trigger configuration.
|          typing/ | Root of unit tests for typing plugin.
|             test-typing.cpp | Tests: typing.
|             test-typing-status.cpp | Tests: typing status.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|===
[[documentation_translations]]
@@ -463,7 +465,6 @@ Documentation files:
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.en.html[Quickstart guide].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.en.html[Relay protocol] (for remote interfaces).
|       weechat_scripting.XX.adoc | link:weechat_scripting.en.html[Scripting guide].
|       weechat_tester.XX.adoc | link:weechat_tester.en.html[Tester's guide].
|       weechat_user.XX.adoc | link:weechat_user.en.html[User's guide].
|       includes/ | Files included in documentation.
|          autogen_api_completions.XX.adoc | Auto-generated file for Plugin API reference: completions (do *NEVER* update manually!).
@@ -509,7 +510,7 @@ directory:
Example in C:
[source,C]
[source,c]
----
/*
* weechat.c - core functions for WeeChat
@@ -547,7 +548,7 @@ Some basic rules you *must* follow when you write C code:
Example:
[source,C]
[source,c]
----
/*
* Checks if a string with boolean value is valid.
@@ -578,7 +579,7 @@ foo ()
Exception: in `for` loops, where variables like "i" or "n" are OK.
* Initialize local variables after declaration, in body of function, example:
[source,C]
[source,c]
----
void
foo ()
@@ -596,7 +597,7 @@ foo ()
* Place curly brackets `+{ }+` alone on lines, and indent them with number of
spaces used for line above opening curly bracket (the `if` in example):
[source,C]
[source,c]
----
if (nicks_count == 1)
{
@@ -607,7 +608,7 @@ if (nicks_count == 1)
* Use empty lines to separate many different blocks inside functions, and if
possible add a comment for each one, like this:
[source,C]
[source,c]
----
/*
* Sends a message from out queue.
@@ -650,7 +651,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
* Indent the `if` conditions, and use parentheses around conditions with an
operator (not needed for single boolean), like this:
[source,C]
[source,c]
----
if (something)
{
@@ -674,7 +675,7 @@ else
* Indent the `switch` statements like this:
[source,C]
[source,c]
----
switch (string[0])
{
@@ -692,7 +693,7 @@ switch (string[0])
* Use `typedef` for function prototypes but not for structures:
[source,C]
[source,c]
----
typedef int (t_hook_callback_fd)(void *data, int fd);
@@ -774,7 +775,7 @@ Structures have name _t_X_Y_ or _t_X_Y_Z_:
Example: an IRC nick (from _src/plugins/irc/irc-nick.h_):
[source,C]
[source,c]
----
struct t_irc_nick
{
@@ -804,7 +805,7 @@ _X_ is name of variable, using singular form).
Example: windows (from _src/gui/gui-window.c_):
[source,C]
[source,c]
----
struct t_gui_window *gui_windows = NULL; /* first window */
struct t_gui_window *last_gui_window = NULL; /* last window */
@@ -824,7 +825,7 @@ Naming convention for functions is the same as
Example: creation of a new window (from _src/gui/gui-window.c_):
[source,C]
[source,c]
----
/*
* Creates a new window.
@@ -860,7 +861,7 @@ and next node.
Example: list of buffers (from _src/gui/gui-buffer.h_):
[source,C]
[source,c]
----
struct t_gui_buffer
{
@@ -875,7 +876,7 @@ struct t_gui_buffer
Then the two list pointers, to the head and tail of list:
[source,C]
[source,c]
----
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
@@ -890,18 +891,10 @@ underline, ...) and colors on screen.
All attributes/colors are prefixed with a char in string, which can be:
* _0x19_: color code (followed by color code(s))
* _0x1A_: set attribute (followed by attribute on one char)
* _0x1B_: remove attribute (followed by attribute on one char)
* _0x1A_: set attribute (followed by raw attribute on one char)
* _0x1B_: remove attribute (followed by raw attribute on one char)
* _0x1C_: reset (nothing after)
Allowed attributes are (one or more chars):
* `+*+`: bold
* `+!+`: reverse
* `+/+`: italic
* `+_+`: underline
* `+|+`: keep attributes
Possible colors are:
* standard color: optional attributes + number on 2 digits
@@ -910,45 +903,55 @@ Possible colors are:
In following table, these conventions are used:
* `STD`: standard color (2 digits)
* `(A)STD`: standard color with optional attributes (attributes + 2 digits)
* `(ATTR)STD`: standard color with optional attributes (attributes + 2 digits)
* `EXT`: extended color (`+@+` + 5 digits)
* `(A)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `ATTR`: one attribute char (`+*+`, `+!+`, `+/+`, `+_+` or `+|+`)
* `(ATTR)EXT`: extended color with optional attributes (`+@+` + attributes + 5 digits)
* `(ATTR)`: one or more attribute chars:
** `+*+`: bold
** `+!+`: reverse
** `+/+`: italic
** `+_+`: underline
** `+|+`: keep attributes
* `(a)`: one raw attribute char:
** _0x01_: bold
** _0x02_: reverse
** _0x03_: italic
** _0x04_: underline
All combinations are summarized in this table:
[width="100%",cols="4,2,2,8",options="header"]
[width="100%",cols="4,3,2,8",options="header"]
|===
| Code | Example | Areas | Description
| [hex]#19# + STD | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | bars | Set bar foreground color.
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | bars | Set bar delimiter color.
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | bars | Set bar background color.
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | bars | Start item.
| [hex]#19# + "b" + "l" (lower L) | [hex]#19# `+bl+` | bars | Start line item.
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + bars | Set attribute.
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + bars | Remove attribute.
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
| Code | Example | Areas | Description
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + bars | Set attributes and color using option, see table below.
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | Set color with a ncurses pair (used only on `/color` buffer).
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + bars | Set background (WeeChat color).
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + bars | Set background (extended color).
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + bars | Set foreground (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + bars | Set foreground (extended color).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + bars | Set foreground/background (WeeChat colors).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + bars | Set foreground (WeeChat color) and background (extended color).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + bars | Set foreground (extended color) and background (WeeChat color).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + bars | Set foreground/background (extended colors).
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | bars | Set bar foreground color.
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | bars | Set bar delimiter color.
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | bars | Set bar background color.
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | input bar | Start input char (used only in item "input_text").
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | input bar | Start input hidden char (used only in item "input_text").
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | input bar | Move cursor char (used only in item "input_text").
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | bars | Start item.
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | bars | Start line item.
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + bars | Emphasize text _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | Reset color (keep attributes).
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + bars | Set attribute.
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + bars | Remove attribute.
| [hex]#1C# | [hex]#1C# | chat + bars | Reset attributes and color.
|===
[NOTE]
@@ -1065,7 +1068,7 @@ Then some macros are defined to call these functions.
For example, function _hook_timer_ is defined in structure _t_weechat_plugin_
like this:
[source,C]
[source,c]
----
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
long interval,
@@ -1078,7 +1081,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
And the macro used to call this function is:
[source,C]
[source,c]
----
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
__callback, __data) \
@@ -1089,7 +1092,7 @@ And the macro used to call this function is:
So in a plugin, the call to function will be for example:
[source,C]
[source,c]
----
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1,
@@ -1202,7 +1205,7 @@ work on it.
The translations missing in files are indicated by this string:
----
// TRANSLATION MISSING
// TRANSLATION MISSING
----
You must translate whole file except links and special keywords for notes,
@@ -1219,7 +1222,7 @@ warnings, ... These words must be kept unchanged:
[CAUTION]
----
When there is a name after `<<link_name>>`, then you must translate it:
When there is a name after `+<<link_name>>+`, then you must translate it:
----
<<link_name,this text must be translated>>
+8
View File
@@ -1083,6 +1083,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== I installed aspell dictionaries on my system, how can I use them without restarting WeeChat?
File diff suppressed because it is too large Load Diff
-131
View File
@@ -1,131 +0,0 @@
= WeeChat tester's guide
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:sectnums:
:docinfo1:
[[purpose]]
== Purpose
Many thankful users ask us how can they help developing WeeChat. The
easiest (and also most tricky) way to help developing WeeChat is testing!
Testing is a very important part of software development and should not be
underestimated. When some features are implemented it should be tested, but for
some features there are too many use cases or these cases are tricky and
developers can't try out every case.
For example: A notorious charset plugin was introduced in WeeChat 0.2.2: none
of us (developers, contributors and testers) used channels with national
characters in their names and when 0.2.2 was released we got flooded by Russian
users blaming us. If we have more testers it should not happen again in the
future.
Testing the stable version of WeeChat is pointless because developers are busy
implementing new stuff (and fixing old bugs) all the time.
[[prepare_system]]
== Prepare your system
It would help us a lot if you enable Linux _core_ files: if WeeChat crashes,
Linux will write a file called _core_. This file contains very useful debug
info, to know exactly where is problem in WeeChat.
If you're using the _bash_ shell, add following line to your _~/.bashrc_:
----
ulimit -c unlimited
----
[[download]]
== Download devel version
Fresh code (with latest bugs and features) is stored in a GIT repository.
You may decide to build it manually (recommended way):
* The GIT version can be built and installed in parallel to the stable version.
* You don't need root access, and you don't need to sacrifice the stable
version of WeeChat.
[[get_sources]]
=== Get and build sources
First create a directory, for example _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
If you have git installed, you can just clone the git repository (recommended
way):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Later, you can run `git pull` in this directory, to get deltas with
the latest updates.
Otherwise you can download and unpack _devel_ package:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
To build sources, CMake is recommended:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
If you don't have CMake, it's still possible to use autotools:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Install binary package
According to your Linux distribution:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD from https://aur.archlinux.org/
* other: we don't know! Eheh.
[[run]]
== Run WeeChat
Command is:
----
$ ~/weechat-git/bin/weechat
----
If you're still awake you should see the familiar interface and brag about
having the newest possible version of WeeChat. ;)
Now if you experience strange behavior (it may have issues or crash or boil
your beer) don't hesitate to join _#weechat_ at _irc.libera.chat_ and tell us.
If it doesn't crash - tell us too, we need your feedback!
+1924 -1799
View File
File diff suppressed because it is too large Load Diff
+9
View File
@@ -1086,6 +1086,15 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
// TRANSLATION MISSING
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== Instalé los diccionarios aspell en mi sistema, ¿cómo puedo utilizarlos sin necesidad de reiniciar WeeChat?
-13
View File
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-fr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.fr.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.fr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.fr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.fr.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.fr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.fr.html"
)
add_custom_target(doc-tester-fr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.fr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.fr.html
-6
View File
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.fr.adoc \
weechat_faq.fr.adoc \
weechat_quickstart.fr.adoc \
weechat_tester.fr.adoc \
weechat_relay_protocol.fr.adoc \
weechat_dev.fr.adoc \
includes/autogen_api_completions.fr.adoc \
@@ -58,7 +57,6 @@ if DOC
weechat_scripting.fr.html \
weechat_faq.fr.html \
weechat_quickstart.fr.html \
weechat_tester.fr.html \
weechat_relay_protocol.fr.html \
weechat_dev.fr.html
doc_install = install-doc
@@ -92,10 +90,6 @@ weechat_faq.fr.html: weechat_faq.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.fr.html: weechat_quickstart.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.fr.html $(abs_top_srcdir)/doc/fr/weechat_quickstart.fr.adoc
# tester's guide
weechat_tester.fr.html: weechat_tester.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.fr.html $(abs_top_srcdir)/doc/fr/weechat_tester.fr.adoc
# relay protocol
weechat_relay_protocol.fr.html: weechat_relay_protocol.fr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.fr.html $(abs_top_srcdir)/doc/fr/weechat_relay_protocol.fr.adoc
@@ -8,7 +8,7 @@
|===
| Extension | Nom | Description | Table de hachage (entrée) | Table de hachage (sortie)
| irc | irc_message_parse | analyse un message IRC | "message" : message IRC, "server" : nom du serveur (optionnel) | "tags" : étiquettes, "tag_xxx" : valeur de l'étiquette "xxx" sans échappements (une clé par étiquette), "message_without_tags" : message sans les étiquettes, "nick" : pseudo, "user" : nom d'utilisateur, "host" : nom d'hôte, "command" : commande, "channel" : canal, "arguments" : paramètres (inclut le canal), "text" : texte (par exemple message utilisateur), "pos_command" : index de "command" dans le message ("-1" si "command" n'a pas été trouvé), "pos_arguments" : index de "arguments" dans le message ("-1" si "arguments" n'a pas été trouvé), "pos_channel" : index de "channel" dans le message ("-1" si "channel" n'a pas été trouvé), "pos_text" : index de "text" dans le message ("-1" si "text" n'a pas été trouvé)
| irc | irc_message_parse | analyse un message IRC | "message" : message IRC, "server" : nom du serveur (optionnel) | "tags" : étiquettes, "tag_xxx" : valeur de l'étiquette "xxx" sans échappements (une clé par étiquette), "message_without_tags" : message sans les étiquettes, "nick" : pseudo, "user" : nom d'utilisateur, "host" : nom d'hôte, "command" : commande, "channel" : canal, "arguments" : paramètres (inclut le canal), "text" : texte (par exemple message utilisateur), "param1" ... "paramN" : paramètres de la commande, "num_params" : nombre de paramètres dans la commande, "pos_command" : index de "command" dans le message ("-1" si "command" n'a pas été trouvé), "pos_arguments" : index de "arguments" dans le message ("-1" si "arguments" n'a pas été trouvé), "pos_channel" : index de "channel" dans le message ("-1" si "channel" n'a pas été trouvé), "pos_text" : index de "text" dans le message ("-1" si "text" n'a pas été trouvé)
| irc | irc_message_split | découper un message IRC (pour tenir dans les 512 octets par défaut) | "message" : message IRC, "server" : nom du serveur (optionnel) | "msg1" ... "msgN" : messages à envoyer (sans le "\r\n" final), "args1" ... "argsN" : paramètres des messages, "count" : nombre de messages
@@ -1637,7 +1637,7 @@ listdefault : afficher les touches par défaut
contexte : nom du contexte ("default" ou "search")
bind : associer une commande à une touche ou affiche la commande associée à la touche
bindctxt : associer une commande à une touche ou affiche la commande associée à la touche pour le contexte donné
commande : commande (plusieurs commandes peuvent êtres séparées par des points-virgules)
commande : commande (plusieurs commandes peuvent être séparées par des points-virgules)
unbind : supprimer l'association à une touche
unbindctxt : supprimer l'association à une touche pour le contexte donné
reset : réinitialiser une touche à son association par défaut
+119 -115
View File
@@ -391,58 +391,61 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
[width="100%",cols="2m,3",options="header"]
|===
| Chemin/fichier | Description
| tests/ | Racine des tests.
|    tests.cpp | Programme utilisé pour lancer tous les tests.
|    scripts/ | Racine des tests de l'API script.
|       test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|       python/ | Scripts Python pour générer et lancer les tests de l'API script.
|          testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|          testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|          unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|    unit/ | Racine des tests unitaires.
|       test-plugins.cpp | Tests : extensions.
|       core/ | Racine des tests unitaires pour le cœur.
|          test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|          test-core-calc.cpp | Tests : calcul d'expressions.
|          test-core-config-file.cpp | Tests : fichiers de configuration.
|          test-core-crypto.cpp | Tests : fonctions cryptographiques.
|          test-core-dir.cpp | Tests : répertoires/fichiers.
|          test-core-eval.cpp | Tests : évaluation d'expressions.
|          test-core-hashtble.cpp | Tests : tables de hachage.
|          test-core-hdata.cpp | Tests : hdata.
|          test-core-hook.cpp | Tests : hooks.
|          test-core-infolist.cpp | Tests : infolists.
|          test-core-list.cpp | Tests : listes.
|          test-core-network.cpp | Tests : fonctions réseau.
|          test-core-secure.cpp | Tests : données sécurisées.
|          test-core-signal.cpp | Tests : signaux.
|          test-core-string.cpp | Tests : chaînes.
|          test-core-url.cpp | Tests : URLs.
|          test-core-utf8.cpp | Tests : UTF-8.
|          test-core-util.cpp | Tests : fonctions utiles.
|       gui/ | Racine des tests unitaires pour les interfaces.
|          test-gui-color.cpp | Tests : couleurs.
|          test-gui-line.cpp | Tests : lignes.
|          test-gui-nick.cpp | Tests : pseudos.
|       plugins/ | Racine des tests unitaires pour les extensions.
|          irc/ | Racine des tests unitaires pour l'extension IRC.
|             test-irc-channel.cpp | Tests : canaux IRC.
|             test-irc-color.cpp | Tests : couleurs IRC.
|             test-irc-config.cpp | Tests : configuration IRC.
|             test-irc-ignore.cpp | Tests : ignores IRC.
|             test-irc-message.cpp | Tests : messages IRC.
|             test-irc-mode.cpp | Tests : modes IRC.
|             test-irc-nick.cpp | Tests : pseudos IRC.
|             test-irc-protocol.cpp | Tests : protocole IRC.
|             test-irc-server.cpp | Tests : serveur IRC.
|          trigger/ | Racine des tests unitaires pour l'extension trigger.
|             test-trigger.cpp | Tests : triggers.
|          typing/ | Racine des tests unitaires pour l'extension typing.
|             test-typing.cpp | Tests : typing.
|             test-typing-status.cpp | Tests : statut d'écriture.
|          relay/ | Racine des tests unitaires pour l'extension Relay.
|             test-relay-auth.cpp | Tests : authentification des clients.
| Chemin/fichier | Description
| tests/ | Racine des tests.
|    tests.cpp | Programme utilisé pour lancer tous les tests.
|    scripts/ | Racine des tests de l'API script.
|       test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|       python/ | Scripts Python pour générer et lancer les tests de l'API script.
|          testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|          testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|          unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|    unit/ | Racine des tests unitaires.
|       test-plugins.cpp | Tests : extensions.
|       core/ | Racine des tests unitaires pour le cœur.
|          test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|          test-core-calc.cpp | Tests : calcul d'expressions.
|          test-core-config-file.cpp | Tests : fichiers de configuration.
|          test-core-crypto.cpp | Tests : fonctions cryptographiques.
|          test-core-dir.cpp | Tests : répertoires/fichiers.
|          test-core-eval.cpp | Tests : évaluation d'expressions.
|          test-core-hashtble.cpp | Tests : tables de hachage.
|          test-core-hdata.cpp | Tests : hdata.
|          test-core-hook.cpp | Tests : hooks.
|          test-core-infolist.cpp | Tests : infolists.
|          test-core-list.cpp | Tests : listes.
|          test-core-network.cpp | Tests : fonctions réseau.
|          test-core-secure.cpp | Tests : données sécurisées.
|          test-core-signal.cpp | Tests : signaux.
|          test-core-string.cpp | Tests : chaînes.
|          test-core-url.cpp | Tests : URLs.
|          test-core-utf8.cpp | Tests : UTF-8.
|          test-core-util.cpp | Tests : fonctions utiles.
|       gui/ | Racine des tests unitaires pour les interfaces.
|          test-gui-color.cpp | Tests : couleurs.
|          test-gui-line.cpp | Tests : lignes.
|          test-gui-nick.cpp | Tests : pseudos.
|       plugins/ | Racine des tests unitaires pour les extensions.
|          irc/ | Racine des tests unitaires pour l'extension IRC.
|             test-irc-buffer.cpp | Tests : tampons IRC.
|             test-irc-channel.cpp | Tests : canaux IRC.
|             test-irc-color.cpp | Tests : couleurs IRC.
|             test-irc-config.cpp | Tests : configuration IRC.
|             test-irc-ignore.cpp | Tests : ignores IRC.
|             test-irc-message.cpp | Tests : messages IRC.
|             test-irc-mode.cpp | Tests : modes IRC.
|             test-irc-nick.cpp | Tests : pseudos IRC.
|             test-irc-protocol.cpp | Tests : protocole IRC.
|             test-irc-sasl.cpp | Tests : authentification SASL avec le protocole IRC.
|             test-irc-server.cpp | Tests : serveur IRC.
|          trigger/ | Racine des tests unitaires pour l'extension trigger.
|             test-trigger.cpp | Tests : triggers.
|             test-trigger-config.cpp | Tests : configuration trigger.
|          typing/ | Racine des tests unitaires pour l'extension typing.
|             test-typing.cpp | Tests : typing.
|             test-typing-status.cpp | Tests : statut d'écriture.
|          relay/ | Racine des tests unitaires pour l'extension Relay.
|             test-relay-auth.cpp | Tests : authentification des clients.
|===
[[documentation_translations]]
@@ -464,7 +467,6 @@ Fichiers de documentation :
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.fr.html[Guide de démarrage].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.fr.html[Protocole Relay (pour les interfaces distantes)].
|       weechat_scripting.XX.adoc | link:weechat_scripting.fr.html[Guide pour scripts].
|       weechat_tester.XX.adoc | link:weechat_tester.fr.html[Guide du testeur].
|       weechat_user.XX.adoc | link:weechat_user.fr.html[Guide utilisateur].
|       includes/ | Fichiers inclus dans la documentation.
|          autogen_api_completions.XX.adoc | Fichier auto-généré pour la Référence API extension : complétions (ne *JAMAIS* mettre à jour manuellement !).
@@ -510,7 +512,7 @@ fichiers sont dans le répertoire _po/_ :
Exemple en C :
[source,C]
[source,c]
----
/*
* weechat.c - core functions for WeeChat
@@ -551,7 +553,7 @@ Quelques règles basiques que vous *devez* suivre quand vous écrivez du code C
Exemple :
[source,C]
[source,c]
----
/*
* Checks if a string with boolean value is valid.
@@ -584,7 +586,7 @@ foo ()
* Initialisez les variables locales après la déclaration, dans le corps de la
fonction, exemple :
[source,C]
[source,c]
----
void
foo ()
@@ -604,7 +606,7 @@ foo ()
nombre d'espaces utilisés sur la ligne au dessus de l'accolade ouvrante (le
`if` dans l'exemple) :
[source,C]
[source,c]
----
if (nicks_count == 1)
{
@@ -615,7 +617,7 @@ if (nicks_count == 1)
* Utilisez des lignes vides pour séparer différents blocs dans les fonctions, et
si possible ajoutez un commentaire pour chacun, comme ceci :
[source,C]
[source,c]
----
/*
* Sends a message from out queue.
@@ -659,7 +661,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
conditions avec un opérateur (pas nécessaire pour un booléen simple), comme
ceci :
[source,C]
[source,c]
----
if (something)
{
@@ -683,7 +685,7 @@ else
* Indentez les `switch` comme ceci :
[source,C]
[source,c]
----
switch (string[0])
{
@@ -702,7 +704,7 @@ switch (string[0])
* Utilisez `typedef` pur les prototypes de fonctions mais pas pour les
structures :
[source,C]
[source,c]
----
typedef int (t_hook_callback_fd)(void *data, int fd);
@@ -784,7 +786,7 @@ Les structures ont le nom _t_X_Y_ ou _t_X_Y_Z_ :
Exemple : un pseudo IRC (de _src/plugins/irc/irc-nick.h_) :
[source,C]
[source,c]
----
struct t_irc_nick
{
@@ -814,7 +816,7 @@ _last_X_ (où _X_ est le nom de la variable, en utilisant le singulier).
Exemple : fenêtres (de _src/gui/gui-window.c_) :
[source,C]
[source,c]
----
struct t_gui_window *gui_windows = NULL; /* first window */
struct t_gui_window *last_gui_window = NULL; /* last window */
@@ -834,7 +836,7 @@ La convention pour les noms des fonctions est le même que celui des
Exemple : création d'une nouvelle fenêtre (de _src/gui/gui-window.c_) :
[source,C]
[source,c]
----
/*
* Creates a new window.
@@ -872,7 +874,7 @@ pointeur vers le nœud précédent/suivant.
Exemple : liste des tampons (de _src/gui/gui-buffer.h_) :
[source,C]
[source,c]
----
struct t_gui_buffer
{
@@ -887,7 +889,7 @@ struct t_gui_buffer
Et les deux pointeurs vers la tête et la fin de liste :
[source,C]
[source,c]
----
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
@@ -903,18 +905,10 @@ Tous les attributs/couleurs sont préfixés par un caractère dans la chaîne, q
peuvent être :
* _0x19_ : code couleur (suivi par un/des code(s) couleur)
* _0x1A_ : activer un attribut (suivi par un attribut sur un caractère)
* _0x1B_ : supprimer un attribut (suivi par un attribut sur un caractère)
* _0x1A_ : activer un attribut (suivi par un attribut brut sur un caractère)
* _0x1B_ : supprimer un attribut (suivi par un attribut brut sur un caractère)
* _0x1C_ : réinitialiser (rien après)
Les attributs autorisés sont (un ou plusieurs caractères) :
* `+*+` : gras
* `+!+` : vidéo inverse
* `+/+` : italique
* `+_+` : souligné
* `+|+` : garder les attributs
Les couleurs possibles sont :
* couleur standard : attributs facultatifs + nombre sur 2 digits
@@ -923,47 +917,57 @@ Les couleurs possibles sont :
Dans le tableau qui suit, les conventions suivantes sont utilisées :
* `STD` : couleur standard (2 digits)
* `(A)STD` : couleur standard avec des attributs facultatifs
* `(ATTR)STD` : couleur standard avec des attributs facultatifs
(attributs + 2 digits)
* `EXT` : couleur étendue (`+@+` + 5 digits)
* `(A)EXT` : couleur étendue avec des attributs facultatifs
* `(ATTR)EXT` : couleur étendue avec des attributs facultatifs
(`+@+` + attributs + 5 digits)
* `ATTR` : un caractère d'attribut (`+*+`, `+!+`, `+/+`, `+_+` ou `+|+`)
* `(ATTR)` : un ou plusieurs caractères d'attribut :
** `+*+` : gras
** `+!+` : vidéo inverse
** `+/+` : italique
** `+_+` : souligné
** `+|+` : garder les attributs
* `(a)` : un caractère d'attribut brut :
** _0x01_ : gras
** _0x02_ : vidéo inverse
** _0x03_ : italique
** _0x04_ : souligné
Toutes les combinaisons sont résumées dans ce tableau :
[width="100%",cols="4,2,2,8",options="header"]
[width="100%",cols="4,3,2,8",options="header"]
|===
| Code | Exemple | Aires | Description
| [hex]#19# + STD | [hex]#19# `+01+` | chat + barres | Définir les attributs et la couleur en utilisant une option, voir le tableau ci-dessous.
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | Définir une couleur avec la paire ncurses (utilisé seulement sur le tampon `/color`).
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + barres | Définir la couleur de fond (couleur WeeChat).
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + barres | Définir le couleur de fond (couleur étendue).
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | barres | Définir la couleur de texte de la barre.
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | barres | Définir la couleur du délimiteur de la barre.
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | barres | Définir la couleur de fond de la barre.
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | barre input | Caractère de démarrage dans l'entrée (utilisé seulement dans l'objet "input_text").
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | barre input | Caractère de démarrage caché dans l'entrée (utilisé seulement dans l'objet "input_text").
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | barre input | Caractère de déplacement du curseur (utilisé seulement dans l'objet "input_text").
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | barres | Début d'objet.
| [hex]#19# + "b" + "l" (lower L) | [hex]#19# `+bl+` | barres | Ligne de démarrage d'objet.
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + barres | Texte mis en valeur _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + barres | Réinitialiser la couleur (garder les attributs).
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + barres | Activer un attribut.
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + barres | Supprimer un attribut.
| [hex]#1C# | [hex]#1C# | chat + barres | Réinitialiser les attributs et la couleur.
| Code | Exemple | Aires | Description
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + barres | Définir les attributs et la couleur en utilisant une option, voir le tableau ci-dessous.
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | Définir une couleur avec la paire ncurses (utilisé seulement sur le tampon `/color`).
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + barres | Définir la couleur de fond (couleur WeeChat).
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + barres | Définir le couleur de fond (couleur étendue).
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + barres | Définir la couleur de texte (couleur WeeChat).
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + barres | Définir la couleur de texte (couleur étendue).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + barres | Définir la couleur de texte/fond (couleurs WeeChat).
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + barres | Définir la couleur de texte (couleur WeeChat) et de fond (couleur étendue).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + barres | Définir la couleur de texte (couleur étendue) et de fond (couleur WeeChat).
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + barres | Définir la couleur de texte/fond (couleurs étendues).
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | barres | Définir la couleur de texte de la barre.
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | barres | Définir la couleur du délimiteur de la barre.
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | barres | Définir la couleur de fond de la barre.
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | barre input | Caractère de démarrage dans l'entrée (utilisé seulement dans l'objet "input_text").
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | barre input | Caractère de démarrage caché dans l'entrée (utilisé seulement dans l'objet "input_text").
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | barre input | Caractère de déplacement du curseur (utilisé seulement dans l'objet "input_text").
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | barres | Début d'objet.
| [hex]#19# + `b` + `l` (lower L) | [hex]#19# `+bl+` | barres | Ligne de démarrage d'objet.
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + barres | Texte mis en valeur _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + barres | Réinitialiser la couleur (garder les attributs).
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + barres | Activer un attribut.
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + barres | Supprimer un attribut.
| [hex]#1C# | [hex]#1C# | chat + barres | Réinitialiser les attributs et la couleur.
|===
[NOTE]
@@ -1083,7 +1087,7 @@ Et puis des macros sont utilisées pour appeler ces fonctions.
Par exemple, la fonction _hook_timer_ est définie dans la structure
_t_weechat_plugin_ comme ceci :
[source,C]
[source,c]
----
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
long interval,
@@ -1096,7 +1100,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
Et la macro utilisée pour appeler cette fonction est :
[source,C]
[source,c]
----
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
__callback, __data) \
@@ -1107,7 +1111,7 @@ Et la macro utilisée pour appeler cette fonction est :
Donc dans une extension, l'appel à cette fonction sera par exemple :
[source,C]
[source,c]
----
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1,
@@ -1224,7 +1228,7 @@ _doc/en/_), puis travaillez dessus.
Les traductions manquantes dans les fichiers sont indiquées par cette chaîne :
----
// TRANSLATION MISSING
// TRANSLATION MISSING
----
Vous devez traduire tout le fichier sauf les liens et les mots-clés spéciaux
@@ -1241,7 +1245,7 @@ pour les notes, avertissements, ... Ces mots doivent être gardés tels quels :
[CAUTION]
----
Lorsqu'il y a un nom après `<<link_name>>`, alors vous devez le traduire :
Lorsqu'il y a un nom après `+<<link_name>>+`, alors vous devez le traduire :
----
<<link_name,ce texte doit être traduit>>
+8
View File
@@ -1123,6 +1123,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
Si vous êtes sous macOS et que le fichier téléchargé a une taille de 0 octet,
essayez de définir cette variable dans votre fichier d'initialisation du shell
ou sur la ligne de commande, avant de démarrer WeeChat :
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== J'ai installé des dictionnaires aspell sur mon système, comment les utiliser sans redémarrer WeeChat ?
File diff suppressed because it is too large Load Diff
-138
View File
@@ -1,138 +0,0 @@
= Guide du testeur WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: fr
:toc: left
:toc-title: Table des matières
:sectnums:
:docinfo1:
[[purpose]]
== Objet
Beaucoup d'utilisateurs nous demandent comment aider WeeChat. La façon
la plus facile (et aussi la plus rusée) consiste à le tester !
Le test est une partie très importante du développement de logiciel et
ne devrait pas être sous-estimé. Lorsque de nouvelles fonctionnalités
sont implémentées, elles doivent être testées, mais pour certaines
fonctionnalités il y a trop de cas à tester et les développeurs ne
peuvent pas tout tester.
Par exemple : l'extension charset introduite dans WeeChat WeeChat 0.2.2 : aucun
de nous (développeurs, contributeurs et testeurs) n'utilisait de canaux avec
des caractères spéciaux dans leurs noms et quand la version 0.2.2 a été rendue
disponible, nous avons reçu de nombreuses remontées d'utilisateurs russes.
Si nous avons plus de testeurs, cela ne devrait pas arriver à nouveau dans le
futur.
Tester les versions stables de WeeChat est inutile car les
développeurs sont constamment occupés à implémenter de nouvelles
fonctionnalités (et à corriger des anciens bugs).
[[prepare_system]]
== Préparez votre système
Cela nous aiderait beaucoup si vous activiez les fichiers _core_ Linux : si
WeeChat se plante, Linux écrit un fichier _core_. Ce fichier contient des
informations importantes pour le debug, pour savoir exactement où le problème
se situe dans WeeChat).
Si vous utilisez le shell _bash_, ajoutez cette ligne dans votre _~/.bashrc_ :
----
ulimit -c unlimited
----
[[download]]
== Téléchargement de la version devel
Le code tout frais (avec les derniers bugs et fonctionnalités) est stocké dans
GIT.
Vous pouvez décider de le construire manuellement (méthode recommandée) :
* La version GIT peut être construite et installée en parallèle de la version
stable,
* Vous n'avez pas besoin d'accès root ni de sacrifier votre version stable de
WeeChat.
[[get_sources]]
=== Obtenir et compiler les sources
Créez tout d'abord un répertoire, par exemple _weechat-git_ :
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Si vous avez git installé, vous pouvez cloner la base GIT (recommandé) :
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Plus tard, vous pourrez utiliser la commande `git pull` dans ce répertoire
pour obtenir juste les deltas avec la version d'aujourd'hui.
Sinon vous pouvez installer le paquet _devel_ :
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
Pour compiler les sources, CMake est recommandé :
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Si vous n'avez pas CMake, il est toujours possible d'utiliser les autotools :
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Obtenir un paquet binaire
Selon votre distribution Linux :
* Debian : https://weechat.org/download/debian
* Gentoo : https://weechat.org/download
* ArchLinux : PKGBUILD depuis https://aur.archlinux.org/
* autre : nous ne savons pas ! Eheh.
[[run]]
== Lancer WeeChat
La commande est :
----
$ ~/weechat-git/bin/weechat
----
Si vous êtes encore éveillé, vous devriez voir une interface familière et
pouvoir vous vanter d'utiliser la version la plus récente possible de WeeChat ;)
Maintenant si vous obtenez un comportement étrange ou un plantage, n'hésitez
pas à nous en avertir sur _#weechat_, serveur _irc.libera.chat_.
S'il n'y a pas de plantage, dites-le nous aussi, nous avons besoin de votre
retour et de vos impressions !
+1998 -1870
View File
File diff suppressed because it is too large Load Diff
-13
View File
@@ -122,17 +122,4 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-it ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.it.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.it.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.it.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.it.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.it.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.it.html"
)
add_custom_target(doc-tester-it ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.it.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+1 -7
View File
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.it.adoc \
weechat_faq.it.adoc \
weechat_quickstart.it.adoc \
weechat_tester.it.adoc \
includes/autogen_api_completions.it.adoc \
includes/autogen_api_hdata.it.adoc \
includes/autogen_api_infolists.it.adoc \
@@ -54,8 +53,7 @@ if DOC
weechat_plugin_api.it.html \
weechat_scripting.it.html \
weechat_faq.it.html \
weechat_quickstart.it.html \
weechat_tester.it.html
weechat_quickstart.it.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
@@ -87,10 +85,6 @@ weechat_faq.it.html: weechat_faq.it.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.it.html: weechat_quickstart.it.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.it.html $(abs_top_srcdir)/doc/it/weechat_quickstart.it.adoc
# tester's guide
weechat_tester.it.html: weechat_tester.it.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.it.html $(abs_top_srcdir)/doc/it/weechat_tester.it.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
@@ -8,7 +8,7 @@
|===
| Plugin | Nome | Descrizione | Tabella hash (input) | Tabella hash (output)
| irc | irc_message_parse | controlla un messaggio IRC | "message": messaggio IRC, "server": nome server (opzionale) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_parse | controlla un messaggio IRC | "message": messaggio IRC, "server": nome server (opzionale) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_split | split an IRC message (to fit in 512 bytes by default) | "message": messaggio IRC, "server": nome server (opzionale) | "msg1" ... "msgN": messaggio da inviare (senza "\r\n" finale), "args1" ... "argsN": argomenti dei messaggi, "count": numero di messaggi
+9
View File
@@ -1173,6 +1173,15 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
// TRANSLATION MISSING
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
// TRANSLATION MISSING
[[spell_dictionaries]]
=== I installed aspell dictionaries on my system, how can I use them without restarting WeeChat?
File diff suppressed because it is too large Load Diff
-144
View File
@@ -1,144 +0,0 @@
= Guida al Tester di WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: it
:toc: left
:toc-title: Indice
:sectnums:
:docinfo1:
// TRANSLATION MISSING
Translators:
* Marco Paolone <marcopaolone@gmail.com>, 2009-2012
[[purpose]]
== Scopo
Molti utenti riconoscenti chiedono come possono aiutare nello sviluppo
di WeeChat. Il modo più semplice (ed anche più delicato) per aiutare
lo sviluppo di WeeChat è il testing!
Il testing è una parte davvero importante dello sviluppo software e non
può essere sottovalutato. Quando vengono implementate alcune
funzionalità dovrebbero essere testate, ma per alcune di esse esistono
troppi casi di utilizzo o questi casi sono delicati e gli sviluppatori non
possono verificarli uno ad uno.
Per esempio: È stato introdotto un famigerato set di caratteri in WeeChat 0.2.2:
nessuno di noi (sviluppatori, contributori e tester) utilizzava canali con lettere
dell'alfabeto nazionale nei loro nomi e quando è stata rilasciata la 0.2.2 siamo
stati inondati dagli utenti russi. Se avessimo più tester non dovrebbe più
accadere in futuro.
Testare la versione stabile di WeeChat è inutile poiché gli sviluppatori sono
occupati nell'implementazione di nuove funzionalità (e nella correzione di
vecchi bug).
[[prepare_system]]
== Preparazione del sistema
Sarebbe molto di aiuto abilitare i file _core_ di Linux: se WeeChat
dovesse andare in crash, Linux scriverebbe un file chiamato _core_.
Questo file contiene informazioni di debug molto utili, per sapere
esattamente dove sia il problema in WeeChat.
Se si utilizza la shell _bash_, aggiungere la seguente riga al file _~/.bashrc_:
----
ulimit -c unlimited
----
[[download]]
== Download della versione di sviluppo
Il codice più fresco (con gli ultimi bug e le funzionalità più recenti) è
conservato in un deposito GIT.
È possibile compilarlo manualmente (raccomandato):
* La versione GIT può essere compilata ed installata parallelamente alla
* versione stabile, non è necessario l'accesso da root né sacrificare la
versione stabile di WeeChat.
[[get_sources]]
=== Ottenere e compilare i sorgenti
Per prima cosa creare una directory, per esempio _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Se si ha git installato, si può clonare il deposito git (raccomandato):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
In seguito, si può eseguire `git pull` in questa directory per ricevere gli
ultimi aggiornamenti.
Altrimenti si può scaricare ed estrarre il pacchetto _devel_:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
Per compilare i sorgenti, si raccomanda CMake:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Se CMake non è installato, è ancora possibile usare gli autotools:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Installazione del pacchetto binario
A seconda della distribuzione Linux:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD da https://aur.archlinux.org/
* altro: non lo sappiamo! Eheh.
[[run]]
== Eseguire WeeChat
Il comando è:
----
$ ~/weechat-git/bin/weechat
----
Se siete ancora svegli dovreste vedere un'interfaccia familiare e vantarvi del
fatto di avere la versione più nuova possibile di WeeChat. ;)
Se si dovessero verificare strani comportamenti (potrebbe andare in crash
o far bollire la vostra birra) non esitate ad entrare in _#weechat_ su
_irc.libera.chat_ e farcelo sapere.
Se non dovesse andare in crash - ditelo comunque, abbiamo bisogno dei vostri
commenti!
+2115 -1960
View File
File diff suppressed because it is too large Load Diff
-13
View File
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-ja ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.ja.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.ja.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.ja.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.ja.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.ja.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.ja.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.ja.html"
)
add_custom_target(doc-tester-ja ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.ja.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.ja.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.ja.html
-6
View File
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.ja.adoc \
weechat_faq.ja.adoc \
weechat_quickstart.ja.adoc \
weechat_tester.ja.adoc \
weechat_relay_protocol.ja.adoc \
weechat_dev.ja.adoc \
includes/autogen_api_completions.ja.adoc \
@@ -57,7 +56,6 @@ if DOC
weechat_scripting.ja.html \
weechat_faq.ja.html \
weechat_quickstart.ja.html \
weechat_tester.ja.html \
weechat_relay_protocol.ja.html \
weechat_dev.ja.html
doc_install = install-doc
@@ -91,10 +89,6 @@ weechat_faq.ja.html: weechat_faq.ja.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.ja.html: weechat_quickstart.ja.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.ja.html $(abs_top_srcdir)/doc/ja/weechat_quickstart.ja.adoc
# tester's guide
weechat_tester.ja.html: weechat_tester.ja.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.ja.html $(abs_top_srcdir)/doc/ja/weechat_tester.ja.adoc
# relay protocol
weechat_relay_protocol.ja.html: weechat_relay_protocol.ja.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.ja.html $(abs_top_srcdir)/doc/ja/weechat_relay_protocol.ja.adoc
@@ -8,7 +8,7 @@
|===
| プラグイン | 名前 | 説明 | ハッシュテーブル (入力) | ハッシュテーブル (出力)
| irc | irc_message_parse | IRC メッセージを解析 | "message": IRC メッセージ、"server": サーバ名 (任意) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_parse | IRC メッセージを解析 | "message": IRC メッセージ、"server": サーバ名 (任意) | "tags": tags, "tag_xxx": unescaped value of tag "xxx" (one key per tag), "message_without_tags": message without the tags, "nick": nick, "user": user, "host": host, "command": command, "channel": channel, "arguments": arguments (includes channel), "text": text (for example user message), "param1" ... "paramN": parsed command parameters, "num_params": number of parsed command parameters, "pos_command": index of "command" message ("-1" if "command" was not found), "pos_arguments": index of "arguments" message ("-1" if "arguments" was not found), "pos_channel": index of "channel" message ("-1" if "channel" was not found), "pos_text": index of "text" message ("-1" if "text" was not found)
| irc | irc_message_split | IRC メッセージを分割 (デフォルトでは 512 バイト内に収まるように分割します) | "message": IRC メッセージ、"server": サーバ名 (任意) | "msg1" ... "msgN": 送信メッセージ (最後の "\r\n" は無し), "args1" ... "argsN": メッセージの引数、"count": メッセージの数
+130 -115
View File
@@ -408,79 +408,85 @@ WeeChat "core" は以下のディレクトリに配置されています:
[width="100%",cols="2m,3",options="header"]
|===
| パス/ファイル名 | 説明
| tests/ | テスト用のルートディレクトリ
|    tests.cpp | 全テストの実行時に使われるプログラム
|    scripts/ | スクリプト API テスト用のルートディレクトリ
|       test-scripts.cpp | スクリプト API テストの実行時に使われるプログラム
|       python/ | スクリプト API テストを生成、実行する Python スクリプト
|          testapigen.py | スクリプト API のテスト時にすべての言語に関するスクリプトを生成する Python スクリプト
|          testapi.py | スクリプト API テスト時に使われる Python スクリプト (スクリプト testapigen.py から使われます)
|          unparse.py | Python コードを別の言語に変換 (スクリプト testapigen.py から使われます)
|    unit/ | 単体テスト用のルートディレクトリ
|       test-plugins.cpp | テスト: プラグイン
|       core/ | core 向け単体テスト用のルートディレクトリ
|          test-core-arraylist.cpp | テスト: 配列リスト
| パス/ファイル名 | 説明
| tests/ | テスト用のルートディレクトリ
|    tests.cpp | 全テストの実行時に使われるプログラム
|    scripts/ | スクリプト API テスト用のルートディレクトリ
|       test-scripts.cpp | スクリプト API テストの実行時に使われるプログラム
|       python/ | スクリプト API テストを生成、実行する Python スクリプト
|          testapigen.py | スクリプト API のテスト時にすべての言語に関するスクリプトを生成する Python スクリプト
|          testapi.py | スクリプト API テスト時に使われる Python スクリプト (スクリプト testapigen.py から使われます)
|          unparse.py | Python コードを別の言語に変換 (スクリプト testapigen.py から使われます)
|    unit/ | 単体テスト用のルートディレクトリ
|       test-plugins.cpp | テスト: プラグイン
|       core/ | core 向け単体テスト用のルートディレクトリ
|          test-core-arraylist.cpp | テスト: 配列リスト
// TRANSLATION MISSING
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-calc.cpp | Tests: calculation of expressions.
// TRANSLATION MISSING
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-config-file.cpp | Tests: configuration files.
// TRANSLATION MISSING
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-crypto.cpp | Tests: cryptographic functions.
// TRANSLATION MISSING
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | テスト: 式の評価
|          test-core-hashtble.cpp | テスト: ハッシュテーブル
|          test-core-hdata.cpp | テスト: hdata
|          test-core-hook.cpp | テスト: フック
|          test-core-infolist.cpp | テスト: インフォリスト
|          test-core-list.cpp | テスト: リスト
|          test-core-dir.cpp | Tests: directory/file functions.
|          test-core-eval.cpp | テスト: 式の評価
|          test-core-hashtble.cpp | テスト: ハッシュテーブル
|          test-core-hdata.cpp | テスト: hdata
|          test-core-hook.cpp | テスト: フック
|          test-core-infolist.cpp | テスト: インフォリスト
|          test-core-list.cpp | テスト: リスト
// TRANSLATION MISSING
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | テスト: データ保護
|          test-core-network.cpp | Tests: network functions.
|          test-core-secure.cpp | テスト: データ保護
// TRANSLATION MISSING
|          test-core-signal.cpp | テスト: signals.
|          test-core-string.cpp | テスト: 文字列
|          test-core-url.cpp | テスト: URL
|          test-core-utf8.cpp | テスト: UTF-8
|          test-core-util.cpp | テスト: ユーティリティ関数
|       gui/ | インターフェースの単体テストを収める最上位ディレクトリ
|          test-core-signal.cpp | テスト: signals.
|          test-core-string.cpp | テスト: 文字列
|          test-core-url.cpp | テスト: URL
|          test-core-utf8.cpp | テスト: UTF-8
|          test-core-util.cpp | テスト: ユーティリティ関数
|       gui/ | インターフェースの単体テストを収める最上位ディレクトリ
// TRANSLATION MISSING
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | テスト: 行
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | テスト: 行
// TRANSLATION MISSING
|          test-gui-nick.cpp | テスト: nicks
|       plugins/ | プラグインの単体テストを収める最上位ディレクトリ
|          irc/ | IRC プラグインの単体テストを収める最上位ディレクトリ
|          test-gui-nick.cpp | テスト: nicks
|       plugins/ | プラグインの単体テストを収める最上位ディレクトリ
|          irc/ | IRC プラグインの単体テストを収める最上位ディレクトリ
// TRANSLATION MISSING
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | テスト: IRC 設定
|             test-irc-buffer.cpp | Tests: IRC buffers.
// TRANSLATION MISSING
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | テスト: IRC 設定
// TRANSLATION MISSING
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-ignore.cpp | Tests: IRC ignores.
// TRANSLATION MISSING
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-message.cpp | Tests: IRC messages.
// TRANSLATION MISSING
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | テスト: IRC プロトコル
|             test-irc-mode.cpp | Tests: IRC modes.
// TRANSLATION MISSING
|             test-irc-server.cpp | Tests: IRC server.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | テスト: IRC プロトコル
// TRANSLATION MISSING
|          trigger/ | Root of unit tests for trigger plugin.
|             test-irc-sasl.cpp | Tests: SASL authentication with IRC protocol.
// TRANSLATION MISSING
|             test-trigger.cpp | Tests: triggers.
|             test-irc-server.cpp | Tests: IRC server.
// TRANSLATION MISSING
|          typing/ | Root of unit tests for typing plugin.
|          trigger/ | Root of unit tests for trigger plugin.
// TRANSLATION MISSING
|             test-typing.cpp | Tests: typing.
|             test-trigger.cpp | Tests: triggers.
// TRANSLATION MISSING
|             test-typing-status.cpp | Tests: typing status.
|             test-trigger-config.cpp | Tests: trigger configuration.
// TRANSLATION MISSING
|          relay/ | Root of unit tests for Relay plugin.
|          typing/ | Root of unit tests for typing plugin.
// TRANSLATION MISSING
|             test-relay-auth.cpp | Tests: clients authentication.
|             test-typing.cpp | Tests: typing.
// TRANSLATION MISSING
|             test-typing-status.cpp | Tests: typing status.
// TRANSLATION MISSING
|          relay/ | Root of unit tests for Relay plugin.
// TRANSLATION MISSING
|             test-relay-auth.cpp | Tests: clients authentication.
|===
[[documentation_translations]]
@@ -503,7 +509,6 @@ WeeChat "core" は以下のディレクトリに配置されています:
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.ja.html[クイックスタートガイド]
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.ja.html[リレープロトコル] (リモートインターフェース用)
|       weechat_scripting.XX.adoc | link:weechat_scripting.ja.html[スクリプト作成ガイド]
|       weechat_tester.XX.adoc | link:weechat_tester.ja.html[テスターガイド]
|       weechat_user.XX.adoc | link:weechat_user.ja.html[ユーザーズガイド]
// TRANSLATION MISSING
|       includes/ | Files included in documentation.
@@ -549,7 +554,7 @@ WeeChat とプラグインの翻訳は gettext で行います、ファイルは
** 電子メールアドレス、
** ライセンス。
[source,C]
[source,c]
----
/*
* weechat.c - core functions for WeeChat
@@ -587,7 +592,7 @@ C 言語のコードを書く際には以下の基本的なルールを *必ず*
例:
[source,C]
[source,c]
----
/*
* Checks if a string with boolean value is valid.
@@ -618,7 +623,7 @@ foo ()
例外: `for` ループのカウンタ変数に "i" や "n" を使うのは問題ありません。
* 関数内で行うローカル変数の初期化は宣言の後に行ってください、例:
[source,C]
[source,c]
----
void
foo ()
@@ -636,7 +641,7 @@ foo ()
* 中括弧 `+{ }+` は制御文の次の行に単独で置き、制御文 (以下の `if` です)
と同じ空白文字の数だけインデントしてください:
[source,C]
[source,c]
----
if (nicks_count == 1)
{
@@ -646,7 +651,7 @@ if (nicks_count == 1)
* 関数内部でブロックを分けるには空行を使ってください、可能であればそれぞれのブロックにコメントを付けてください:
[source,C]
[source,c]
----
/*
* Sends a message from out queue.
@@ -689,7 +694,7 @@ irc_server_outqueue_send (struct t_irc_server *server)
* `if` 条件はインデントし、演算子を含む条件は丸括弧で括ってください
(単独のブール値を評価する場合は不要)、例:
[source,C]
[source,c]
----
if (something)
{
@@ -713,7 +718,7 @@ else
* `switch` 文は以下の様にインデントしてください:
[source,C]
[source,c]
----
switch (string[0])
{
@@ -731,7 +736,7 @@ switch (string[0])
* 関数プロトタイプには `typedef` を使い、構造体を使わないでください:
[source,C]
[source,c]
----
typedef int (t_hook_callback_fd)(void *data, int fd);
@@ -813,7 +818,7 @@ _wee-command.c_ のヘッダファイルは _wee-command.h_ です
例: IRC のニックネーム (_src/plugins/irc/irc-nick.h_ より):
[source,C]
[source,c]
----
struct t_irc_nick
{
@@ -843,7 +848,7 @@ struct t_irc_nick
例: ウィンドウ (_src/gui/gui-window.c_ より):
[source,C]
[source,c]
----
struct t_gui_window *gui_windows = NULL; /* first window */
struct t_gui_window *last_gui_window = NULL; /* last window */
@@ -862,7 +867,7 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
例: 新しいウィンドウの作成 (_src/gui/gui-window.c_ より):
[source,C]
[source,c]
----
/*
* Creates a new window.
@@ -898,7 +903,7 @@ WeeChat のほとんどの連結リストは双方向連結リストです: 各
例: バッファのリスト (_src/gui/gui-buffer.h_ より):
[source,C]
[source,c]
----
struct t_gui_buffer
{
@@ -913,7 +918,7 @@ struct t_gui_buffer
さらにリストの最初と最後を示す 2 つのポインタがあります:
[source,C]
[source,c]
----
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
@@ -928,18 +933,12 @@ WeeChat は文字列中に独自の色コードを使うことで、属性
文字列にある文字を含め、その後に属性および色を指定します、これは:
* _0x19_: 色コード (これの後に色コード指定)
* _0x1A_: 属性の設定 (これの後に属性を指定)
* _0x1B_: 削除属性 (これの後に属性を指定)
// TRANSLATION MISSING
* _0x1A_: set attribute (followed by raw attribute on one char)
// TRANSLATION MISSING
* _0x1B_: remove attribute (followed by raw attribute on one char)
* _0x1C_: リセット (これの後には何も付けない)
指定できる属性は (1 文字以上):
* `+*+`: 太字
* `+!+`: 反転
* `+/+`: イタリック
* `+_+`: 下線
* `+|+`: 属性を保存
指定できる色は:
* 標準色: 任意属性 + 2 桁の番号
@@ -948,45 +947,61 @@ WeeChat は文字列中に独自の色コードを使うことで、属性
以下の表に使われる組み合わせを示す:
* `STD`: 標準色 (2 桁の番号)
* `(A)STD`: 任意属性を含めた標準色 (属性 + 2 桁の番号)
* `(ATTR)STD`: 任意属性を含めた標準色 (属性 + 2 桁の番号)
* `EXT`: 拡張色 (`+@+` + 5 桁の番号)
* `(A)EXT`:任意属性を含めた拡張色 (`+@+` + 属性 + 5 桁の番号)
* `ATTR`: 属性指定の 1 文字 (`+*+`、`+!+`、`+/+`、`+_+`、`+|+`)
* `(ATTR)EXT`:任意属性を含めた拡張色 (`+@+` + 属性 + 5 桁の番号)
// TRANSLATION MISSING
* `(ATTR)`: one or more attribute chars:
** `+*+`: 太字
** `+!+`: 反転
** `+/+`: イタリック
** `+_+`: 下線
** `+|+`: 属性を保存
// TRANSLATION MISSING
* `(a)`: one raw attribute char:
// TRANSLATION MISSING
** _0x01_: bold
// TRANSLATION MISSING
** _0x02_: reverse
// TRANSLATION MISSING
** _0x03_: italic
// TRANSLATION MISSING
** _0x04_: underline
以下の表にすべての組み合わせをまとめています:
[width="100%",cols="4,2,2,8",options="header"]
[width="100%",cols="4,3,2,8",options="header"]
|===
| コード | 例 | エリア | 説明
| [hex]#19# + STD | [hex]#19# `+01+` | chat + bars | オプションを使って属性と色を指定、色コードは以下の表を参照
| [hex]#19# + EXT | [hex]#19# `+@00001+` | chat | ncurses ペアを使って色を指定 (`/color` バッファのみ有効)
| [hex]#19# + "F" + (A)STD | [hex]#19# `+F*05+` | chat + bars | 文字色 (WeeChat 色) を設定
| [hex]#19# + "F" + (A)EXT | [hex]#19# `+F@00214+` | chat + bars | 文字色 (拡張色) を設定
| [hex]#19# + "B" + STD | [hex]#19# `+B05+` | chat + bars | 背景色 (WeeChat 色) を設定
| [hex]#19# + "B" + EXT | [hex]#19# `+B@00124+` | chat + bars | 背景色 (拡張色) を設定
| [hex]#19# + "*" + (A)STD | [hex]#19# `+*05+` | chat + bars | 文字色(WeeChat 色) を設定
| [hex]#19# + "*" + (A)EXT | [hex]#19# `+*@00214+` | chat + bars | 文字色 (拡張色) を設定
| [hex]#19# + "*" + (A)STD + "," + STD ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | 文字色および背景色 (WeeChat 色) を設定
| [hex]#19# + "*" + (A)STD + "," + EXT ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | 文字色 (WeeChat 色) と背景色 (拡張色) を設定
| [hex]#19# + "*" + (A)EXT + "," + STD ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | 文字色 (拡張色) と背景色 (WeeChat 色) を設定
| [hex]#19# + "*" + (A)EXT + "," + EXT ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | 文字色および背景色 (拡張色) を設定
| [hex]#19# + "*" + (A)STD + "~" + STD | [hex]#19# `+*08~05+` | chat + bars | 文字色および背景色 (WeeChat 色) を設定
| [hex]#19# + "*" + (A)STD + "~" + EXT | [hex]#19# `+*01~@00214+` | chat + bars | 文字色 (WeeChat 色) と背景色 (拡張色) を設定
| [hex]#19# + "*" + (A)EXT + "~" + STD | [hex]#19# `+*@00214~05+` | chat + bars | 文字色 (拡張色) と背景色 (WeeChat 色) を設定
| [hex]#19# + "*" + (A)EXT + "~" + EXT | [hex]#19# `+*@00214~@00017+` | chat + bars | 文字色および背景色 (拡張色) を設定
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | bars | バーの文字色を設定
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | bars | バーの区切り文字色を設定
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | bars | バーの背景色を設定
| [hex]#19# + "b" + "_" | [hex]#19# `+b_+` | input bar | 文字入力を開始 ("input_text" 要素のみで利用可)
| [hex]#19# + "b" + "-" | [hex]#19# `+b-+` | input bar | 隠し文字入力を開始 ("input_text" 要素のみで利用可)
| [hex]#19# + "b" + "#" | [hex]#19# `+b#+` | input bar | カーソル文字を移動 ("input_text" 要素のみで利用可)
| [hex]#19# + "b" + "i" | [hex]#19# `+bi+` | bars | 要素を開始
| [hex]#19# + "b" + "l" (小文字の L) | [hex]#19# `+bl+` | bars | 行要素を開始
| [hex]#19# + "E" | [hex]#19# `+E+` | chat + bars | テキストを強調 _(WeeChat バージョン 0.4.2 以上で利用可)_
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | 色をリセット (属性は保存)
| [hex]#1A# + ATTR | [hex]#1A# `+*+` | chat + bars | 属性を設定
| [hex]#1B# + ATTR | [hex]#1B# `+*+` | chat + bars | 属性を削除
| [hex]#1C# | [hex]#1C# | chat + bars | 属性と色をリセット
| コード | 例 | エリア | 説明
| [hex]#19# + `STD` | [hex]#19# `+01+` | chat + bars | オプションを使って属性と色を指定、色コードは以下の表を参照
| [hex]#19# + `EXT` | [hex]#19# `+@00001+` | chat | ncurses ペアを使って色を指定 (`/color` バッファのみ有効)
| [hex]#19# + `F` + `(ATTR)STD` | [hex]#19# `+F*05+` | chat + bars | 文字色 (WeeChat 色) を設定
| [hex]#19# + `F` + `(ATTR)EXT` | [hex]#19# `+F@00214+` | chat + bars | 文字色 (拡張色) を設定
| [hex]#19# + `B` + `STD` | [hex]#19# `+B05+` | chat + bars | 背景色 (WeeChat 色) を設定
| [hex]#19# + `B` + `EXT` | [hex]#19# `+B@00124+` | chat + bars | 背景色 (拡張色) を設定
| [hex]#19# + `*` + `(ATTR)STD` | [hex]#19# `+*05+` | chat + bars | 文字色(WeeChat 色) を設定
| [hex]#19# + `*` + `(ATTR)EXT` | [hex]#19# `+*@00214+` | chat + bars | 文字色 (拡張色) を設定
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `STD` ^(1)^ | [hex]#19# `+*08,05+` | chat + bars | 文字色および背景色 (WeeChat 色) を設定
| [hex]#19# + `*` + `(ATTR)STD` + `,` + `EXT` ^(1)^ | [hex]#19# `+*01,@00214+` | chat + bars | 文字色 (WeeChat 色) と背景色 (拡張色) を設定
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `STD` ^(1)^ | [hex]#19# `+*@00214,05+` | chat + bars | 文字色 (拡張色) と背景色 (WeeChat 色) を設定
| [hex]#19# + `*` + `(ATTR)EXT` + `,` + `EXT` ^(1)^ | [hex]#19# `+*@00214,@00017+` | chat + bars | 文字色および背景色 (拡張色) を設定
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `STD` | [hex]#19# `+*08~05+` | chat + bars | 文字色および背景色 (WeeChat 色) を設定
| [hex]#19# + `*` + `(ATTR)STD` + `~` + `EXT` | [hex]#19# `+*01~@00214+` | chat + bars | 文字色 (WeeChat 色) と背景色 (拡張色) を設定
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `STD` | [hex]#19# `+*@00214~05+` | chat + bars | 文字色 (拡張色) と背景色 (WeeChat 色) を設定
| [hex]#19# + `*` + `(ATTR)EXT` + `~` + `EXT` | [hex]#19# `+*@00214~@00017+` | chat + bars | 文字色および背景色 (拡張色) を設定
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | bars | バーの文字色を設定
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | bars | バーの区切り文字色を設定
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | bars | バーの背景色を設定
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | input bar | 文字入力を開始 ("input_text" 要素のみで利用可)
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | input bar | 隠し文字入力を開始 ("input_text" 要素のみで利用可)
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | input bar | カーソル文字を移動 ("input_text" 要素のみで利用可)
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | bars | 要素を開始
| [hex]#19# + `b` + `l` (小文字の L) | [hex]#19# `+bl+` | bars | 行要素を開始
| [hex]#19# + `E` | [hex]#19# `+E+` | chat + bars | テキストを強調 _(WeeChat バージョン 0.4.2 以上で利用可)_
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | chat + bars | 色をリセット (属性は保存)
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | chat + bars | 属性を設定
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | chat + bars | 属性を削除
| [hex]#1C# | [hex]#1C# | chat + bars | 属性と色をリセット
|===
// TRANSLATION MISSING
@@ -1104,7 +1119,7 @@ API 関数を簡単に呼び出すためのマクロが定義されています
例えば、関数 _hook_timer_ は以下のように構造体
_t_weechat_plugin_ で定義されています:
[source,C]
[source,c]
----
struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
long interval,
@@ -1117,7 +1132,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
この関数を呼び出すマクロは:
[source,C]
[source,c]
----
#define weechat_hook_timer(__interval, __align_second, __max_calls, \
__callback, __data) \
@@ -1128,7 +1143,7 @@ struct t_hook *(*hook_timer) (struct t_weechat_plugin *plugin,
このため、プラグイン内での関数の呼び出しは以下の例の様に行います:
[source,C]
[source,c]
----
server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
0, 1,
@@ -1244,7 +1259,7 @@ Asciidoc ファイルは _doc/XX/_ ディレクトリにあり、_XX_
ファイル中の未翻訳部分には以下の文字列で目印が付けられています:
----
// TRANSLATION MISSING
// TRANSLATION MISSING
----
メモや警告などを示すリンクおよび特殊キーワードを除く全ての部分を必ず翻訳してください、以下の単語を書き換えるのはやめてください:
@@ -1260,7 +1275,7 @@ Asciidoc ファイルは _doc/XX/_ ディレクトリにあり、_XX_
[CAUTION]
----
`<<link_name>>` の後に名前がある場合、これも必ず翻訳してください:
`+<<link_name>>+` の後に名前がある場合、これも必ず翻訳してください:
----
<<link_name,このテキストは必ず翻訳してください>>
+9
View File
@@ -1089,6 +1089,15 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
// TRANSLATION MISSING
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== システムに aspell 辞書をインストールした後、WeeChat を再起動せずにそれを使う方法を教えてください。
File diff suppressed because it is too large Load Diff
-135
View File
@@ -1,135 +0,0 @@
= WeeChat テスターガイド
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: ja-jp
:toc: left
:toc-title: 目次
:sectnums:
:docinfo1:
翻訳者:
* Ryuunosuke Ayanokouzi <i38w7i3@yahoo.co.jp>, 2012-2019
[[purpose]]
== 目的
WeeChat
開発への協力に興味を持っていただきありがとうございます。開発に協力する最も簡単
(で最も大変) な方法はテストです!
テストはソフトウェア開発においてとても重要で、疎かにできないものです。何か新しい機能が実装されたらその機能はテストされるべきです。しかし、機能によっては使用条件が広すぎるか使用条件が特殊過ぎるため、開発チームが全ての条件をテストできない場合があります。
例: WeeChat 0.2.2 で導入された charset プラグインは悪名高いものでした:
開発チームにはチャンネル名に各国語を使うユーザー
(開発者、貢献者、テスター)
がいなかったため、0.2.2
がリリースされると、チームを非難するロシア人ユーザが殺到しました。より多くのテスターがいれば、今後そのようなことはおきないでしょう。
開発者は新機能の実装 (と古いバグの修正) に忙しいので、WeeChat
安定版をテストすることは意味がありません。
[[prepare_system]]
== システムの準備
Linux の _core_ ファイルを有効にすることはとても役に立ちます: WeeChat
がクラッシュすると、Linux は _core_ と呼ばれるファイルを作ります。このファイルには、WeeChat
に問題の有る箇所を正確に示す、とても役立つデバッグ情報が含まれています。
_bash_ シェルを使っている場合、以下の行を _~/.bashrc_ に追記してください:
----
ulimit -c unlimited
----
[[download]]
== 開発版のダウンロード
最新のコード (最新のバグと最新の機能も含んでいますが) は GIT リポジトリにあります。
手作業で最新のコードをビルドすることができます (推奨):
* GIT 版は安定版と共存してビルド、インストールできます。
* root 権限は必要ありません、WeeChat
安定版を捨てる必要もありません。
[[get_sources]]
=== ソースの取得とビルド
最初にディレクトリを作ってください、ここでは _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
git がインストール済みの場合、git
リポジトリを clone してください (推奨):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
clone の後、このディレクトリ内で `git pull`
を実行すれば、最新のアップデートとの差分が更新されます。
他の方法として _devel_ パッケージをダウンロードして展開する方法があります:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
ソースをビルドするには CMake を使うことを推奨します:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
CMake が無い場合は autotools を使うことも可能です:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== バイナリパッケージのインストール
Linux ディストリビューション別に:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: https://aur.archlinux.org/ から PKGBUILD
* その他: 知らないよ! てへぺろ(・ω<)
[[run]]
== WeeChat の実行
コマンド:
----
$ ~/weechat-git/bin/weechat
----
より万全を期すなら、上の方法を使って WeeChat
の最新バージョンを使っていることを確認するべきです ;)
おかしな (問題を引き起こしたり、クラッシュしたり、あなたを怒らせるような) 挙動を見つけたら
_irc.libera.chat_ の _#weechat_ に参加して、開発チームにこの挙動を教えてください。
クラッシュしなかったとしても教えてください。開発チームはあなたからのフィードバックをお待ちしています!
+1988 -1826
View File
File diff suppressed because it is too large Load Diff
-13
View File
@@ -107,17 +107,4 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-pl ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.pl.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.pl.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.pl.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.pl.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.pl.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.pl.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.pl.html"
)
add_custom_target(doc-tester-pl ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.pl.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.pl.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
endif()
+1 -7
View File
@@ -28,7 +28,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.pl.adoc \
weechat_faq.pl.adoc \
weechat_quickstart.pl.adoc \
weechat_tester.pl.adoc \
includes/autogen_api_completions.pl.adoc \
includes/autogen_api_hdata.pl.adoc \
includes/autogen_api_infolists.pl.adoc \
@@ -53,8 +52,7 @@ if DOC
doc_targets = weechat_user.pl.html \
weechat_scripting.pl.html \
weechat_faq.pl.html \
weechat_quickstart.pl.html \
weechat_tester.pl.html
weechat_quickstart.pl.html
doc_install = install-doc
doc_uninstall = uninstall-doc
endif
@@ -82,10 +80,6 @@ weechat_faq.pl.html: weechat_faq.pl.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.pl.html: weechat_quickstart.pl.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.pl.html $(abs_top_srcdir)/doc/pl/weechat_quickstart.pl.adoc
# tester's guide
weechat_tester.pl.html: weechat_tester.pl.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.pl.html $(abs_top_srcdir)/doc/pl/weechat_tester.pl.adoc
# install man/docs
install-data-hook: $(man_install) $(doc_install)
@@ -8,7 +8,7 @@
|===
| Wtyczka | Nazwa | Opis | Hashtable (wejście) | Hashtable (wyjście)
| irc | irc_message_parse | przetwarza wiadomość IRC | "message": wiadomość IRC, "server": nazwa serwera (opcjonalne) | "tags": tagi, "tag_xxx": niewyescapowana wartość tagu "xxx" (jeden klucz per tag), "message_without_tags": wiadomość bez tagów, "nick": nick, "user": użytkownik, "host": host, "command": komenda, "channel": kanał, "arguments": argumenty (razem z kanałem), "text": tekst (na przykład wiadomość użytkownika), "pos_command": indeks wiadomości "command" ("-1" jeśli "command" nie zostało znalezione), "pos_arguments": indeks wiadomości "arguments" ("-1" jeśli "arguments" nie zostało znalezione), "pos_channel": indeks wiadomości "channel" ("-1" jeśli "channel" nie zostało znalezione), "pos_text": indeks słowa "text" ("-1" jeśli "text" nie zostało znalezione)
| irc | irc_message_parse | przetwarza wiadomość IRC | "message": wiadomość IRC, "server": nazwa serwera (opcjonalne) | "tags": tagi, "tag_xxx": niewyescapowana wartość tagu "xxx" (jeden klucz per tag), "message_without_tags": wiadomość bez tagów, "nick": nick, "user": użytkownik, "host": host, "command": komenda, "channel": kanał, "arguments": argumenty (razem z kanałem), "text": tekst (na przykład wiadomość użytkownika), "param1" ... "paramN": sparsaowane parametry komendy, "num_params": ilość sparsowanych parametrów komendy, "pos_command": indeks wiadomości "command" ("-1" jeśli "command" nie zostało znalezione), "pos_arguments": indeks wiadomości "arguments" ("-1" jeśli "arguments" nie zostało znalezione), "pos_channel": indeks wiadomości "channel" ("-1" jeśli "channel" nie zostało znalezione), "pos_text": indeks słowa "text" ("-1" jeśli "text" nie zostało znalezione)
| irc | irc_message_split | dziel wiadomość IRC (aby zmieściła się domyślnie w 512 bajtach) | "message": wiadomość IRC, "server": nazwa serwera (opcjonalne) | "msg1" ... "msgN": wiadomości do wysłania (bez kończącego "\r\n"), "args1" ... "argsN": argumenty wiadomości, "count": ilość wiadomości
+209 -209
View File
@@ -17,32 +17,32 @@ cel: nazwa serwera
* `+allchan+`: wykonuje komendę na wszystkich kanałach na połączonych serwerach
----
/allchan [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
[-current] [-parted] -include=<channel>[,<channel>...] <command>
/allchan [-current] [-parted] [-exclude=<kanał>[,<kanał>...]] <komenda>
[-current] [-parted] -include=<kanał>[,<kanał>...] <komenda>
-current: execute command for channels of current server only
-parted: execute on parted channels only
-exclude: exclude some channels (wildcard "*" is allowed)
-include: include only some channels (wildcard "*" is allowed)
command: command to execute (or text to send to buffer if command does not start with '/')
-current: wykonuje komendę tylko na kanałach obecnego serwera
-parted: wykonaj tylko na opuszczonych kanałach
-exclude: wyklucza niektóre kanały (wildcard "*" jest dozwolony)
-include: uwzględnia tylko niektóre znaki (wildcard "*" est dozwolony)
komenda: komenda do wykonania (albo tekst do wysłania do bufora jeśli komenda nie zaczyna się od '/')
Command and arguments are evaluated (see /help eval), the following variables are replaced:
$server server name
$channel channel name
$nick nick on server
${irc_server.xxx} variable xxx in server
${irc_channel.xxx} variable xxx in channel
Komenda i argumenty są przetwarzane (zobacz /help eval), następujące zmienne są podmieniane:
$server nazwa serwera
$channel nazwa kanału
$nick nick na serwerze
${irc_server.xxx} zmienna xxx na serwerze
${irc_channel.xxx} zmienna xxx w kanalel
Examples:
execute '/me is testing' on all channels:
/allchan /me is testing
say 'hello' everywhere but not on #weechat:
/allchan -exclude=#weechat hello
say 'hello' everywhere but not on #weechat and channels beginning with #linux:
/allchan -exclude=#weechat,#linux* hello
say 'hello' on all channels beginning with #linux:
/allchan -include=#linux* hello
close all buffers with parted channels:
Przykłady:
wykonuje '/me testuje' na wszystkich kanałach:
/allchan /me testuje
wysyła 'witam' wszędzie tylko nie na #weechat:
/allchan -exclude=#weechat witam
wysyła 'witam' wszędzie poza #weechat oraz kanałami zaczynającymi się od #linux:
/allchan -exclude=#weechat,#linux* witam
wysyła 'witam' na wszytkich kanałach zaczynających się od #linux:
/allchan -include=#linux* witam
zamyka wszystkie bufory opuszczonych kanałów:
/allchan -parted /close
----
@@ -1336,100 +1336,100 @@ infolists: wyświetla informacje o infolistach
/eval [-n|-s] [-d] <wyrażenie>
[-n] [-d [-d]] -c <wyrażenie1> <operator> <wyrażenie2>
-n: display result without sending it to buffer (debug mode)
-s: split expression before evaluating it (many commands can be separated by semicolons)
-d: display debug output after evaluation (with two -d: more verbose debug)
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: a logical or comparison operator:
- logical operators:
&& boolean "and"
|| boolean "or"
- comparison operators:
== equal
!= not equal
<= less or equal
< less
>= greater or equal
> greater
=~ is matching POSIX extended regex
!~ is NOT matching POSIX extended regex
==* is matching mask, case sensitive (wildcard "*" is allowed)
!!* is NOT matching mask, case sensitive (wildcard "*" is allowed)
=* is matching mask, case insensitive (wildcard "*" is allowed)
!* is NOT matching mask, case insensitive (wildcard "*" is allowed)
==- is included, case sensitive
!!- is NOT included, case sensitive
=- is included, case insensitive
!- is NOT included, case insensitive
-n: wyświetla wynik bez wysyłania go do buforu (tryb debugowania)
-s: podziel wyrażenie przed przetworzeniem go (wiele komend może być oddzielonych średnikami)
-d: wyświetl wyjście debugowe po ewaluacji (drugie -d wyświetli więcej informacji)
-c: przetwarza jako warunek: użyj operatorów i nawiasów, zwraca wartość logiczną ("0" lub "1")
wyrażenie: wyrażenie do przetworzenia, zmienne o formacie ${zmienna} są zastępowane (zobacz niżej); wiele komend można oddzielić średnikami
operator: operator logiczny lub porównania:
- operatory logiczne:
&& logiczne „i”
|| logiczne „lub”
- operatory porównania:
== równy
!= różny
<= mniejszy lub równy
< mniejszy
>= większy lub równy
> większy
=~ pasuje do rozszerzonego wyrażenia regularnego POSIX
!~ NIE pasuje do rozszerzonego wyrażenia regularnego POSIX
==* pasuje do maski, rozróżnia wielkość znaków (dzika karta „*” dozwolona)
!!* NIE pasuje do maski, rozróżnia wielkość znaków (dzika karta „*” dozwolona)
=* pasuje do maski, nie rozróżnia wielkość znaków (dzika karta „*” dozwolona)
!* NIE pasuje do maski, nie rozróżnia wielkość znaków (dzika karta „*” dozwolona)
==- jest zawarte, rozróżnia wielkość znaków
!!- NIE jest zawarte,rozróżnia wielkość znaków
=- jest zawarte, nie rozróżnia wielkość znaków
!- NIE jest zawarte, nie rozróżnia wielkość znaków
An expression is considered as "true" if it is not NULL, not empty, and different from "0".
The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats:
- integer (examples: 5, -7)
- floating point number (examples: 5.2, -7.5, 2.83e-2)
- hexadecimal number (examples: 0xA3, -0xA3)
To force a string comparison, you can add double quotes around each expression, for example:
Wyrażenie jest uznawane za „prawdziwe” jeśli nie jest NULL, nie jest puste, oraz różni się od „0”.
Porównania dokonuje się z użyciem liczb całkowitych jeśli oba wyrażenia są liczbami całkowitymi, w jednym z następujących formatów:
- liczby całkowite (przykłady: 5, -7)
- liczby zmiennoprzecinkowe (przykłady: 5.2, -7.5, 2.83e-2)
- liczby szesnastkowe (przykłady: 0xA3, -0xA3)
W celu wymuszenia porównywania ciągów, należy umieścić każde wyrażenie w cudzysłowie, na przykład:
50 > 100 ==> 0
"50" > "100" ==> 1
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
1. the string itself without evaluation (format: "raw:xxx")
2. a user-defined variable (format: "name")
3. an evaluated sub-string (format: "eval:xxx")
4. an evaluated condition (format: "eval_cond:xxx")
5. a string with escaped chars (format: "esc:xxx" or "\xxx")
6. a string with chars to hide (format: "hide:char,string")
7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
8. a reversed string (format: "rev:xxx" or "revscr:xxx")
9. a repeated string (format: "repeat:count,string")
10. length of a string (format: "length:xxx" or "lengthscr:xxx")
11. split of a string (format: "split:number,separators,flags,xxx")
12. split of shell argmuents (format: "split_shell:number,xxx")
13. a color (format: "color:xxx", see "Plugin API reference", function "color")
14. a modifier (format: "modifier:name,data,string")
15. an info (format: "info:name,arguments", arguments are optional)
16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
17. current date/time (format: "date" or "date:format")
18. an environment variable (format: "env:XXX")
19. a ternary operator (format: "if:condition?value_if_true:value_if_false")
20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
21. a random integer number (format: "random:min,max")
22. a translated string (format: "translate:xxx")
23. define a user variable (format: "define:name,value")
24. an option (format: "file.section.option")
25. a local variable in buffer
26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
Format for hdata can be one of following:
hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
hdata[list].var1.var2...: start with a hdata using a list/pointer/pointer name, for example:
${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
hdata[pointer].var1.var2...: start with a hdata using a pointer, for example:
${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers)
${buffer[my_pointer].full_name}: full name of the buffer with this pointer name (can be used in triggers)
For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
Niektóre zmienne w wyrażeniach są zamieniane, poprzez zastosowanie formatu ${zmienna}, według priorytetu zmienną może być:
1. nieprzetworzony ciąg (format: "raw:xxx")
2. zmienna zdefiniowana przez użytkownika (format: "name")
3. przetworzony ciąg (format: "eval:xxx")
4. przetworzony warunek (format: "eval_cond:xxx")
5. ciąg z wyescapowanymi znakami (format: "esc:xxx" lub "\xxx")
6. ciąg ze znakami do ukrycia (format: "hide:char,string")
7. ciąg o maksymalnej długości (format: "cut:max,suffix,string" lub "cut:+max,suffix,string")
lub maksymalna ilość znaków wyświetlanych na ekranie (format: "cutscr:max,suffix,string" lub "cutscr:+max,suffix,string")
8. odwrócony ciąg (format: "rev:xxx")
9. powtórzony ciąg (format: "repeat:ilość,ciąg")
10. długość ciągu (format: "length:xxx" or "lengthscr:xxx")
11. podział ciągu (format: "split:number,separators,flags,xxx")
12. podział argumentów powłoki (format: "split_shell:number,xxx")
13. kolor (format "color:xxx", zobacz „Opis API wtyczek”, funkcja "color")
14. modyfikator (format: "modifier:name,data,string")
15. informacja (format: "info:nazwa,argumenty", argumenty są opcjonalne)
16. ciąg zakodowany/zdekodowany z base 16/32/64 (format: "base_encode:base,xxx" lub "base_decode:base,xxx")
17. obecna data/czas (format: "date" lub "date:format")
18. zmienna środowiskowa (format: "env:XXX")
19. wyrażenie warunkowe (format: "if:warunek?wartość_jeśli_prawda:wartość_jeśli_fałsz")
20. wynik wyrażenia z nawiasami i operatorami + - * / // % ** (format: "calc:xxx")
21. losowa liczba całkowita (format: "random:min,max")
22. przetłumaczony ciąg (format: "translate:xxx")
23. definiowanie zmiennej użytkownika (format: "define:nazwa,wartość")
24. opcja (format: plik.sekcja.opcja)
25. zmienna lokalna w buforze
26. nazwa hdatay/zmiennej (wartość jest automatycznie konwertowana na ciąg znaków), domyślnie „window” i „buffer” wskazują na aktualne okno/bufor.
Format dla hdata może być jednym z poniższych:
hdata.zmienna1.zmienna2...: inicjuje hdata (wskaźnik musi być znany), następnie wypytuje zmienne jedna po drugiej (inne hdata mogą być następne)
hdata[list].zmienna1.zmienna2...: inicjuje hdata z wykorzystaniem listy, na przykład:
${buffer[gui_buffers].full_name}: pełna nazwa buforu w połączonej liście buforów
${plugin[weechat_plugins].name}: nazwa pierwszej wtyczki w połączonej liście wtyczek
hdata[wskaźnik].zmienna1.zmienna2...: zacznij z hdata używając wskaźnika, na przykład:
${buffer[0x1234abcd].full_name}: pełna nazwa buforu z tym wskaźnikiem (może zostać użyte w triggerach)
${buffer[my_pointer].full_name}: pełna nazwa buforu z jego wskaźnikiem (może zostać użyte w triggerach)
Nazwy hdata i zmiennych, można znaleźć w „Opisie API wtyczek”, funkcja "weechat_hdata_get".
Examples (simple strings):
/eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.password} ==> secret
/eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
/eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
Przykłady (proste ciągi):
/eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.password} ==> secret
/eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat
/eval -n ${window.buffer.number} ==> 1
/eval -n ${\t} ==> <tab>
/eval -n ${hide:-,${relay.network.password}} ==> --------
/eval -n ${cut:3,+,test} ==> tes+
/eval -n ${cut:+3,+,test} ==> te+
/eval -n ${date:%H:%M:%S} ==> 07:46:40
/eval -n ${if:${info:term_width}>80?big:small} ==> big
/eval -n ${rev:Hello} ==> olleH
/eval -n ${repeat:5,-} ==> -----
/eval -n ${length:test} ==> 4
/eval -n ${split:1,,,abc,def,ghi} ==> abc
/eval -n ${split:-1,,,abc,def,ghi} ==> ghi
/eval -n ${split:count,,,abc,def,ghi} ==> 3
@@ -1438,14 +1438,14 @@ Examples (simple strings):
/eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2
/eval -n ${split_shell:count,"arg 1" arg2} ==> 2
/eval -n ${split_shell:random,"arg 1" arg2} ==> arg2
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${calc:(5+2)*3} ==> 21
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Wtyczka
/eval -n ${random:0,10} ==> 3
/eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Examples (conditions):
Przykłady (warunki):
/eval -n -c ${window.buffer.number} > 2 ==> 0
/eval -n -c ${window.win_width} > 100 ==> 1
/eval -n -c (8 > 12) || (5 > 2) ==> 1
@@ -1557,63 +1557,63 @@ Wartość: ilość elementów historii do pokazania
----
/input <akcja> [<argumenty>]
list of actions:
return: simulate key "enter"
complete_next: complete word with next completion
complete_previous: complete word with previous completion
search_text_here: search text in buffer at current position
search_text: search text in buffer
search_switch_case: switch exact case for search
search_switch_regex: switch search type: string/regular expression
search_switch_where: switch search in messages/prefixes
search_previous: search previous line
search_next: search next line
search_stop_here: stop search at current position
search_stop: stop search
delete_previous_char: delete previous char
delete_next_char: delete next char
delete_previous_word: delete previous word
delete_next_word: delete next word
delete_beginning_of_line: delete from beginning of line until cursor
delete_end_of_line: delete from cursor until end of line
delete_line: delete entire line
clipboard_paste: paste from the internal clipboard
transpose_chars: transpose two chars
undo: undo last command line action
redo: redo last command line action
move_beginning_of_line: move cursor to beginning of line
move_end_of_line: move cursor to end of line
move_previous_char: move cursor to previous char
move_next_char: move cursor to next char
move_previous_word: move cursor to previous word
move_next_word: move cursor to next word
history_previous: recall previous command in current buffer history
history_next: recall next command in current buffer history
history_global_previous: recall previous command in global history
history_global_next: recall next command in global history
jump_smart: jump to next buffer with activity
jump_last_buffer_displayed: jump to last buffer displayed (before last jump to a buffer)
jump_previously_visited_buffer: jump to previously visited buffer
jump_next_visited_buffer: jump to next visited buffer
hotlist_clear: clear hotlist (optional argument: "lowest" to clear only lowest level in hotlist, "highest" to clear only highest level in hotlist, or level mask: integer which is a combination of 1=join/part, 2=message, 4=private, 8=highlight)
hotlist_remove_buffer: remove current buffer from hotlist
hotlist_restore_buffer: restore latest hotlist removed in the current buffer
hotlist_restore_all: restore latest hotlist removed in all buffers
grab_key: grab a key (optional argument: delay for end of grab, default is 500 milliseconds)
grab_key_command: grab a key with its associated command (optional argument: delay for end of grab, default is 500 milliseconds)
grab_mouse: grab mouse event code
grab_mouse_area: grab mouse event code with area
set_unread: set unread marker for all buffers
set_unread_current_buffer: set unread marker for current buffer
switch_active_buffer: switch to next merged buffer
switch_active_buffer_previous: switch to previous merged buffer
zoom_merged_buffer: zoom on merged buffer
insert: insert text in command line (escaped chars are allowed, see /help print)
send: send text to the buffer
paste_start: start paste (bracketed paste mode)
paste_stop: stop paste (bracketed paste mode)
lista akcji:
return: symuluje klawisz "enter"
complete_next: dopełnia słowo następnym dopełnieniem
complete_previous: dopełnia słowo poprzednim dopełnieniem
search_text_here: szuka testu w obecnej pozycji w buforze
search_text: szuka tekstu w buforze
search_switch_case: przełącza na dokładne dopasowanie przy szukaniu
search_switch_regex: przełącza typy wyszukiwania ciąg/wyrażenie regularne
search_switch_where: zmienia miejsce przeszukiwania na wiadomości/przedrostki
search_previous: szuka poprzednich linii
search_next: szuka następnych linii
search_stop_here: zatrzymuje wyszukiwanie na obecnej pozycji
search_stop: zatrzymuje wyszukiwanie
delete_previous_char: usuwa poprzedni znak
delete_next_char: usuwa następny znak
delete_previous_word: usuwa poprzednie słowo
delete_next_word: usuwa następne słowo
delete_beginning_of_line: usuwa od początku linii do kursora
delete_end_of_line: usuwa od kursora do końca linii
delete_line: usuwa cała lin
clipboard_paste: wkleja ze schowka
transpose_chars: zamienia dwa znaki
undo: cofa ostatnia akcję w linii poleceń
redo: ponownie wykonuje cofniętą akcję w linii poleceń
move_beginning_of_line: przesuwa kursor na początek linii
move_end_of_line: przesuwa kursor na koniec linii
move_previous_char: przesuwa kursor do poprzedniego znaku
move_next_char: przesuwa kursor do następnego znaku
move_previous_word: przesuwa kursor do poprzedniego słowa
move_next_word: przesuwa kursor do następnego słowa
history_previous: przywołuje poprzednia komendę z historii obecnego bufora
history_next: przywołuje następną komendę z historii obecnego bufora
history_global_previous: przywołuje poprzednią komendę z globalnej historii
history_global_next: przywołuje następną komendę z globalnej historii
jump_smart: przechodzi do następnego bufora z aktywnością
jump_last_buffer_displayed: przechodzi do ostatnio wyświetlanego bufora (przed ostatnim przeskoczeniem do bufora)
jump_previously_visited_buffer: przeskakuje do poprzedniego bufora
jump_next_visited_buffer: przeskakuje to następnego bufora
hotlist_clear: czyści hotlistę (opcjonaly argument: "lowest" czyści najniższy poziom na hotliście, "highest" czyści najwyższy poziom na hotliście, albo maska poziomu: liczba będąca kombinacją 1=join/part, 2=wiadomość, 4=prywatny, 8=podświetlenie)
hotlist_remove_buffer: usuwa obecny bufor z hotlisty
hotlist_restore_buffer: przywraca ostatnią usuniętą hotlistę w obecnym buforze
hotlist_restore_all: przywraca ostatnią usuniętą hotlistę we wszystkich buforach
grab_key: przechwytuje klawisz (opcjonalny argument: opóźnienie końca przechwycenia, domyślnie jest to 500 milisekund)
grab_key_command: przechwytuje klawisz z przypisaną komendą (opcjonalny argument: opóźnienie końca przechwycenia, domyślnie jest to 500 milisekund)
grab_mouse: przechwytuje kod zdarzenia myszy
grab_mouse_area: przechwytuje kod zdarzenia myszy z obszarem
set_unread: ustawia znacznik nie przeczytania dla wszystkich buforów
set_unread_current_buffer: ustawia znacznik nie przeczytania dla obecnego bufora
switch_active_buffer: przełącza do następnego połączonego buforu
switch_active_buffer_previous: przełącza do poprzedniego połączonego buforu
zoom_merged_buffer: zoom na połączony bufor
insert: wkleja tekst do linii poleceń (dozwolone są wyescapowane znaki, zobacz /help print)
send: wysyła tekst do bufora
paste_start: zaczyna wklejanie (tryb z rozpoznawaniem wklejanego tekstu)
paste_stop: kończy wklejanie (tryb z rozpoznawaniem wklejanego tekstu)
This command is used by key bindings or plugins.
Ta komenda jest używana do przypisywania klawiszy lub przez wtyczki.
----
[[command_weechat_key]]
@@ -1745,28 +1745,28 @@ Przykłady:
* `+plugin+`: lista/załaduj/wyładuj wtyczkę
----
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
load <filename> [<arguments>]
autoload [<arguments>]
reload [<name>|* [<arguments>]]
unload [<name>]
/plugin list [-o|-ol|-i|-il|<nazwa>]
listfull [<nazwa>]
load <nazwapliku> [<argumenty>]
autoload [<argumenty>]
reload [<nazwa>|* [<argumenty>]]
unload [<nazwa>]
list: list loaded plugins
-o: send list of loaded plugins to buffer (string in English)
-ol: send list of loaded plugins to buffer (translated string)
-i: copy list of loaded plugins in command line (for sending to buffer) (string in English)
-il: copy list of loaded plugins in command line (for sending to buffer) (translated string)
name: a plugin name
listfull: list loaded plugins (verbose)
load: load a plugin
filename: plugin (file) to load
arguments: arguments given to plugin on load
autoload: autoload plugins in system or user directory
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins)
unload: unload a plugin (if no name given, unload all plugins)
list: lista załadowanych wtyczek
-o: wyślij listę załadowanych wtyczek do bufora (ciąg po angielsku)
-ol: wyślij listę załadowanych wtyczek do bufora (przetłumaczony ciąg)
-i: skopiuj listę załadowanych wtyczek do linii poleceń (do wysłania do bufora) (ciąg po angielsku)
-il: skopiuj listę załadowanych wtyczek do linii poleceń (do wysłania do bufora) (przetłumaczony ciąg)
nazwa: nazwa wtyczki
listfull: lista załadowanych wtyczek (ze szczegółami)
load: załaduj wtyczkę
nazwa_pliku: wtyczka (plik) do załadowania
argumenty: argumenty przekazywane do wtyczki przy ładowaniu
autoload: automatycznie ładuj wtyczki z katalogu systemowego lub użytkownika
reload: przeładuj wtyczkę (bez podania nazwy wyładuje wszystkie wtyczki, następnie załaduje te ładowane automatycznie)
unload: wyłącza wtyczkę (bez podania nazwy wyłącza wszystkie wtyczki)
Without argument, this command lists loaded plugins.
Bez argumentów polecenie pokaże listę załadowanych wtyczek.
----
[[command_weechat_print]]
@@ -1993,28 +1993,28 @@ Przykłady:
----
[[command_weechat_toggle]]
* `+toggle+`: toggle value of a config option
* `+toggle+`: przełącza wartość opcji konfiguracyjnej
----
/toggle <option> [<value> [<value>...]]
/toggle <opcja> [<wartość> [<wartość>...]]
option: name of an option
value: possible values for the option (values are split like the shell command arguments: quotes can be used to preserve spaces at the beginning/end of values)
opcja: nazwa opcji
vartość: możliwe wartości dla opcji (wartości są dzielone jak argumenty komendy powłoki: można użyć cudzysłowów żeby zachować spacje na początku/końcu wartości)
Behavior:
- only an option of type boolean or string can be toggled without a value:
- boolean: toggle between on/off according to current value
- string: toggle between empty string and default value (works only if empty string is allowed for the option)
- with a single value given, toggle between this value and the default value of option
- with multiple values given, toggle between these values: the value used is the one following the current value of option; if the current value of option is not in list, the first value in the list is used
- the special value "null" can be given, but only as first value in the list and without quotes around.
Zachowanie:
- tylko opcje typu boolowskiego lub ciągi mogą być przełączane bez wartości:
- boolowskie: przełączanie pomiędzy włączony/wyłączony zgodnie z obecną wartością
- ciąg: przełącza między pustym ciągiem a domyślną wartością (działa tylko jeśli pusty ciąg może być użyty jako wartość opcji)
- jeśli podano pojedynczą wartość, przełącza między nią a wartością domyślną dla danej opcji
- jeśli podano wiele wartości, przełącza pomiędzy nimi; użyta wartość jest jedną z obecnych wartości dla opcji; jeśli obecna wartość nie znajduje się na liście, użyta zostanie pierwsza wartość z listy
- specjalna wartość "null" może zostać podana, ale tylko jako pierwsza wartość na liście, bez cudzysłowów.
Examples:
toggle display of time in chat area (without displaying the new value used):
Przykłady:
przełącza wyświetlanie czasu w obszarze czatu (bez wyświetlania nowej, użytej wartości):
/mute /toggle weechat.look.buffer_time_format
switch format of time in chat area (with seconds, without seconds, disabled):
przełącza format czasu w obszarze czatu (z sekundami, bez sekund, wyłączone):
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
toggle autojoin of #weechat channel on libera server:
przełącza automatyczne dołączenie do kanału #weechat na serwerze libera:
/toggle irc.server.libera.autojoin null #weechat
----
+9 -9
View File
@@ -1847,43 +1847,43 @@
// tag::typing_options[]
* [[option_typing.look.delay_purge_paused]] *typing.look.delay_purge_paused*
** opis: pass:none[number of seconds after paused status has been set: if reached, the typing status is removed]
** opis: pass:none[ilość sekund po ustawieniu statusu pauzy: jeśli osiągnięty, status pisania zostaje usunięty]
** typ: liczba
** wartości: 1 .. 2147483647
** domyślna wartość: `+30+`
* [[option_typing.look.delay_purge_typing]] *typing.look.delay_purge_typing*
** opis: pass:none[number of seconds after typing status has been set: if reached, the typing status is removed]
** opis: pass:none[ilość sekund po ustawieniu statusu o pisaniu: jeśli osiągnięte, status pisania zostaje usunięty]
** typ: liczba
** wartości: 1 .. 2147483647
** domyślna wartość: `+6+`
* [[option_typing.look.delay_set_paused]] *typing.look.delay_set_paused*
** opis: pass:none[number of seconds after typing last char: if reached, the typing status becomes "paused" and no more typing signals are sent]
** opis: pass:none[ilość sekund po napisaniu ostatniego znaku: jeśli osiągnięte, status pisania zmieni się na "paused" i kolejne sygnały nie będą wysyłane]
** typ: liczba
** wartości: 1 .. 2147483647
** domyślna wartość: `+10+`
* [[option_typing.look.enabled_nicks]] *typing.look.enabled_nicks*
** opis: pass:none[typing enabled for other nicks (display typing info for nicks typing in the current buffer)]
** opis: pass:none[powiadomienia o pisaniu przez innych włączone (wyświetlaj informacje o tym że inne osoby piszą coś w obecnym buforze)]
** typ: bool
** wartości: on, off
** domyślna wartość: `+off+`
* [[option_typing.look.enabled_self]] *typing.look.enabled_self*
** opis: pass:none[typing enabled for self messages (send typing info to other users)]
** opis: pass:none[wysylanie informacji o pisaniu włączone (wysyłaj tą informację do innych użytkowników)]
** typ: bool
** wartości: on, off
** domyślna wartość: `+off+`
* [[option_typing.look.input_min_chars]] *typing.look.input_min_chars*
** opis: pass:none[min number of chars in message to trigger send of typing signals]
** opis: pass:none[minimalna ilość znaków w wiadomości po której zostaną wysłane sygnały o pisaniu wiadomości]
** typ: liczba
** wartości: 1 .. 2147483647
** domyślna wartość: `+4+`
* [[option_typing.look.item_max_length]] *typing.look.item_max_length*
** opis: pass:none[max number of chars displayed in the bar item "typing" (0 = do not truncate content)]
** opis: pass:none[maksymalna ilość znaków wyświetlana w elemencie paska "typing" (0 = nie ograniczaj zawartości)]
** typ: liczba
** wartości: 0 .. 2147483647
** domyślna wartość: `+0+`
@@ -2565,13 +2565,13 @@
** domyślna wartość: `+off+`
* [[option_irc.look.typing_status_nicks]] *irc.look.typing_status_nicks*
** opis: pass:none[display nicks typing on the channel in bar item "typing" (option typing.look.enabled_nicks must be enabled and capability "message-tags" must be enabled on the server)]
** opis: pass:none[wyświetlaj nicki osób, które coś piszą w elemencie paska "typing" (opcja typing.look.enabled_nicks musi zostać włączona i opcja "message-tags" musi być wspierana przez serwer)]
** typ: bool
** wartości: on, off
** domyślna wartość: `+off+`
* [[option_irc.look.typing_status_self]] *irc.look.typing_status_self*
** opis: pass:none[send self typing status to channels so that other users see when you are typing a message (option typing.look.enabled_self must be enabled and capability "message-tags" must be enabled on the server)]
** opis: pass:none[wyślij status pisania do kanałów tak, że inni użytkownicy będą mogli zobaczyć, kiedy piszesz wiadomość (opcja typing.look.enabled_self musi zostać włączona i opcja "message-tags" musi być wspierana przez serwer)]
** typ: bool
** wartości: on, off
** domyślna wartość: `+off+`
+6 -8
View File
@@ -8,17 +8,15 @@
*--daemon*::
Uruchamia WeeChat w tle jako demona (działa tylko z komendą *weechat-headless*).
// TRANSLATION MISSING
*--stdout*::
Display log messages on standard output instead of writing them in log file
(works only with the command *weechat-headless*, not compatible with option
"--daemon").
Wyświetla informacje z logów na standardowe wyjście zamiast zapisywać je do
pliku z logami (działa tylko z opcją *weechat-headless*, nie kompatybilne z
opcją "--daemon").
// TRANSLATION MISSING
*-d*, *--dir* _<ścieżka>_::
Force a single directory for all WeeChat files (directory is created if not found).
Four directories can be given, separated by colons (in this order: config,
data, cache, runtime).
Wymusza użycie wskazanego katalogu na wszyskie pliki WeeChat (katalog zostanie
utworzony jeśli nie istnieje). Można podać cztery katalogi oddzielając
je dwukropkami (w kolejności: config, data, cache, runtime).
Jeśli ta opcja nie zostanie podada, użyta zostanie zawartość zmiennej
WEECHAT_HOME (jeśli została ustawiona).
+11 -4
View File
@@ -525,10 +525,9 @@ Możesz po prostu wyłączyć tą opcję:
[[small_terminal]]
=== Jak mogę dostosować wyświetlanie do bardzo małych terminali (jak 80x25), żeby nie tracić przestrzeni?
// TRANSLATION MISSING
You can remove side bars (buflist and nicklist), change time format to display
only hours and minutes, disable alignment of messages and set a char for nick
prefix/suffix:
Możesz wyłączyć boczne paski (listy buforów i nicków), zmienić format czasu, żeby
wyświetlane były tylko godziny i minuty, wyłączyć wyrównywanie wiadomości oraz
ustawić prefiks i sufiks nicku:
----
/set buflist.look.enabled off
@@ -1090,6 +1089,14 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
Jeśli używasz macOS i pobrany plik ma wielkość 0 bajtów, spróbuj ustawić poniższą
zmianną w inicjalizującym powłokę w terminalu lub z linii poleceń przed
uruchomieniem WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== Zainstalowałem słowniki aspell w systemie, jak mogę ich użyć bez restartowania WeeChat?
-139
View File
@@ -1,139 +0,0 @@
= Poradnik testera WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: pl
:toc: left
:toc-title: Spis treści
:sectnums:
:docinfo1:
Tłumaczenie:
* Krzysztof Korościk <soltys1@gmail.com>, 2009-2016
[[purpose]]
== Cel
Wielu wdzięcznych użytkowników pyta nas jak mogą pomóc w rozwoju WeeChat.
Najłatwiejszym (a zarazem najtrudniejszym) sposobem jest testowanie!
Testowanie jest bardzo ważną częścią rozwoju oprogramowania i nie powinno być
niedoceniane. Kiedy nowe funkcje są implementowane, powinny zostać przetestowane,
ale dla wielu z nich jest za dużo możliwości użycia lub nie są łatwe do
za symulowania dlatego programiści nie są wstanie sprawdzić ich wszystkich.
Na przykład: Powszechnie znana wtyczka od kodowania została wprowadzona w
WeeChat 0.2.2: żaden z nas (programistów, współpracowników, testerów) nie
używał kanałów ze znakami narodowymi w nazwach, kiedy wersja 0.2.2 została
wypuszczona zostaliśmy zalani użytkownikami z Rosji obwiniającymi nas.
Gdy będziemy mieli więcej testerów taka sytuacja nie powinna się już zdarzyć
w przyszłości.
Testowanie stabilnej wersji WeeChat jest bezcelowe, ponieważ programiści są
zajęci cały czas implementowaniem nowych rzeczy (oraz poprawianiem błędów).
[[prepare_system]]
== Przygotuj swój system
Bardzo nam pomoże, jeśli włączysz linuksowe pliki _core_: jeśli WeeChat zawiesi
się Linux zapisze plik zwany _core_. Plik ten zawiera użyteczne informacje
pozwalające dokładnie zlokalizować błąd w WeeChat.
Jeśli korzystasz z powłoki _bash_, dodaj następującą linijkę do _~/.bashrc_:
----
ulimit -c unlimited
----
[[download]]
== Pobieranie wersji rozwojowej
Świeży kod (z najnowszymi błędami i funkcjami) przechowywany jest w repozytorium GIT.
Możesz się zdecydować na własnoręczne zbudowanie (zalecana metoda):
* wersja z GIT może być zbudowana i zainstalowana równolegle z wersją stabilną,
* nie potrzebujesz uprawnień administratora, oraz nie musisz poświęcać stabilnej
wersji WeeChat.
[[get_sources]]
=== Pobierz i zbuduj źródła
Najpierw stwórz katalog, na przykład _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Jeśli masz zainstalowanego gita, po prostu sklonuj repozytorium (zalecana
metoda):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Później możesz wykonać w tym katalogu `git pull`, aby pobrać najnowsze
poprawki.
Oczywiście możesz pobrać paczkę oznaczoną jako _devel_:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
Do zbudowania źródeł zaleca się CMake:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Jeśli nie posiadasz CMake, nadal jest możliwe użycie autotools:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Instalowanie pakietów binarnych
W zależności od dystrybucji Linuksa:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD z https://aur.archlinux.org/
* inne: nie mamy pojęcia! Eheh.
[[run]]
== Uruchomienie WeeChat
Komenda to:
----
$ ~/weechat-git/bin/weechat
----
Jeśli nadal nie śpisz powinieneś ujrzeć znajomy interfejs i chwalić się
z posiadania najnowszej możliwej wersji WeeChat. ;)
Teraz jeśli zaobserwujesz dziwne zachowanie (może sprawiać problemy, ulec awarii
lub zagotować Twoje piwo) nie wahaj się wejść na kanał _#weechat_ na serwerze
_irc.libera.chat_ i nam o tym opowiedzieć.
Jeśli wszystko będzie w porządku - też nam o tym powiedz, potrzebujemy Twojej opinii!
+1993 -1868
View File
File diff suppressed because it is too large Load Diff
-13
View File
@@ -122,19 +122,6 @@ if(ENABLE_DOC)
add_custom_target(doc-quickstart-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.sr.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# tester's guide
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -o weechat_tester.sr.html ${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.sr.adoc
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_tester.sr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_tester.sr.html"
)
add_custom_target(doc-tester-sr ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/weechat_tester.sr.html DESTINATION ${DATAROOTDIR}/doc/${PROJECT_NAME})
# relay protocol
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_protocol.sr.html
-6
View File
@@ -29,7 +29,6 @@ EXTRA_DIST = CMakeLists.txt \
weechat_scripting.sr.adoc \
weechat_faq.sr.adoc \
weechat_quickstart.sr.adoc \
weechat_tester.sr.adoc \
weechat_relay_protocol.sr.adoc \
weechat_dev.sr.adoc \
includes/autogen_api_completions.sr.adoc \
@@ -58,7 +57,6 @@ if DOC
weechat_scripting.sr.html \
weechat_faq.sr.html \
weechat_quickstart.sr.html \
weechat_tester.sr.html \
weechat_relay_protocol.sr.html \
weechat_dev.sr.html
doc_install = install-doc
@@ -92,10 +90,6 @@ weechat_faq.sr.html: weechat_faq.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
weechat_quickstart.sr.html: weechat_quickstart.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_quickstart.sr.html $(abs_top_srcdir)/doc/sr/weechat_quickstart.sr.adoc
# tester's guide
weechat_tester.sr.html: weechat_tester.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_tester.sr.html $(abs_top_srcdir)/doc/sr/weechat_tester.sr.adoc
# relay protocol
weechat_relay_protocol.sr.html: weechat_relay_protocol.sr.adoc $(abs_top_srcdir)/doc/docinfo.html
$(ASCIIDOCTOR) $(ASCIIDOCTOR_ARGS) -a revnumber="$(VERSION)" -o weechat_relay_protocol.sr.html $(abs_top_srcdir)/doc/sr/weechat_relay_protocol.sr.adoc
@@ -8,7 +8,7 @@
|===
| Додатак | Име | Опис | Хеш табела (улаз) | Хеш табела (излаз)
| irc | irc_message_parse | парсирање IRC поруке | „message”: IRC порука, „server”: име сервера (није обавезно) | „tags”: ознаке, „tag_xxx”: неозначена вредност ознаке „xxx” (један кључ по ознаци), „message_without_tags”: поруке без ознака, „nick”: надимак, „user”: корисник, „host”: хост, „command”: команда, „channel”: канал, „arguments”: аргументи (укључујући channel), „text”: текст (на пример, корисничка порука), „pos_command”: индекс „command” поруке („-1” ако „command” није пронађена), „pos_arguments”: индекс „arguments” поруке („-1” ако „arguments” није пронађена), „pos_channel”: индекс „channel” поруке („-1” ако „channel” није пронађена), „pos_text”: индекс „text” поруке („-1” ако „text” није пронађена)
| irc | irc_message_parse | парсирање IRC поруке | „message”: IRC порука, „server”: име сервера (није обавезно) | „tags”: ознаке, „tag_xxx”: неозначена вредност ознаке „xxx” (један кључ по ознаци), „message_without_tags”: поруке без ознака, „nick”: надимак, „user”: корисник, „host”: хост, „command”: команда, „channel”: канал, „arguments”: аргументи (укључујући channel), „text”: текст (на пример, корисничка порука), „param1” ... „paramN”: парсирани параметри команде, „num_params”: број парсираних параметара команде, „pos_command”: индекс „command” поруке („-1” ако „command” није пронађена), „pos_arguments”: индекс „arguments” поруке („-1” ако „arguments” није пронађена), „pos_channel”: индекс „channel” поруке („-1” ако „channel” није пронађена), „pos_text”: индекс „text” поруке („-1” ако „text” није пронађена)
| irc | irc_message_split | подела IRC поруке (подразумевано тако да стане у 512 бајтова) | „message”: IRC порука, „server”: име сервера (није обавезно) | „msg1” ... „msgN”: поруке које се шаљу (без „\r\n” на крају), „args1” ... „argsN”: аргументи порука, „count”: број порука
+106 -106
View File
@@ -1337,81 +1337,81 @@ infolists: исписује инфо о инфолистама
/eval [-n|-s] [-d] <израз>
[-n] [-d [-d]] -c <израз1> <оператор> <израз2>
-n: display result without sending it to buffer (debug mode)
-s: split expression before evaluating it (many commands can be separated by semicolons)
-d: display debug output after evaluation (with two -d: more verbose debug)
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: a logical or comparison operator:
- logical operators:
&& boolean "and"
|| boolean "or"
- comparison operators:
== equal
!= not equal
<= less or equal
< less
>= greater or equal
> greater
=~ is matching POSIX extended regex
!~ is NOT matching POSIX extended regex
==* is matching mask, case sensitive (wildcard "*" is allowed)
!!* is NOT matching mask, case sensitive (wildcard "*" is allowed)
=* is matching mask, case insensitive (wildcard "*" is allowed)
!* is NOT matching mask, case insensitive (wildcard "*" is allowed)
==- is included, case sensitive
!!- is NOT included, case sensitive
=- is included, case insensitive
!- is NOT included, case insensitive
-n: приказује резултат и не шаље га у бафер (дибаг режим)
-s: дели израз пре израчунавања (многе команде могу да се раздвоје са тачка зарезима)
-d: приказује дибаг излаз након израчунавања (са два -d: детаљнији дибаг)
-c: израчунава као услов: користе се оператори и заграде, враћа логичку вредност („0” или „1”)
израз: израз који се израчунава, променљиве у формату ${променљива} се замењују (погледајте испод); више команди може да се раздвоји са тачка зарезима
оператор: логички или оператор поређења:
- логички оператори:
&& логичко „и”
|| логичко „или”
- оператори поређења:
== једнако
!= није једнако
<= мање или једнако
< мање
>= веће или једнако
> веће
=~ подудара се са POSIX проширеним регуларним изразом
!~ НЕ подудара се са POSIX проширеним регуларним изразом
==* је маска подударања, разликује величину слова (дозвољен је џокер „*”)
!!* НИЈЕ маска подударања, разликује величину слова (дозвољен је џокер „*”)
=* је маска подударања, не разликује величину слова (дозвољен је џокер „*”)
!* НИЈЕ маска подударања, не разликује величину слова (дозвољен је џокер „*”)
==- је укључено, разликује величину слова
!!- НИЈЕ укључено, разликује величину слова
=- је укључено, не разликује величину слова
!- НИЈЕ укључено, не разликује величину слова
An expression is considered as "true" if it is not NULL, not empty, and different from "0".
The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats:
- integer (examples: 5, -7)
- floating point number (examples: 5.2, -7.5, 2.83e-2)
- hexadecimal number (examples: 0xA3, -0xA3)
To force a string comparison, you can add double quotes around each expression, for example:
Сматра се да је израз „true” ако није NULL, није празан и различит је од „0”.
Поређење се врши употребом бројева у покретном зарезу ако су два израза важећи бројеви, у једном од следећих формата:
- целобројни (примери: 5, -7)
- број у покретном зарезу (примери: 5.2, -7.5, 2.83e-2)
- хексадецимални број (примери: 0xA3, -0xA3)
Ако желите да форсирате поређење стрингова, можете да додате знаке навода око сваког израза, на пример:
50 > 100 ==> 0
"50" > "100" ==> 1
Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
1. the string itself without evaluation (format: "raw:xxx")
2. a user-defined variable (format: "name")
3. an evaluated sub-string (format: "eval:xxx")
4. an evaluated condition (format: "eval_cond:xxx")
5. a string with escaped chars (format: "esc:xxx" or "\xxx")
6. a string with chars to hide (format: "hide:char,string")
7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
8. a reversed string (format: "rev:xxx" or "revscr:xxx")
9. a repeated string (format: "repeat:count,string")
10. length of a string (format: "length:xxx" or "lengthscr:xxx")
11. split of a string (format: "split:number,separators,flags,xxx")
12. split of shell argmuents (format: "split_shell:number,xxx")
13. a color (format: "color:xxx", see "Plugin API reference", function "color")
14. a modifier (format: "modifier:name,data,string")
15. an info (format: "info:name,arguments", arguments are optional)
16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
17. current date/time (format: "date" or "date:format")
18. an environment variable (format: "env:XXX")
19. a ternary operator (format: "if:condition?value_if_true:value_if_false")
20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
21. a random integer number (format: "random:min,max")
22. a translated string (format: "translate:xxx")
23. define a user variable (format: "define:name,value")
24. an option (format: "file.section.option")
25. a local variable in buffer
26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
Format for hdata can be one of following:
hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
hdata[list].var1.var2...: start with a hdata using a list/pointer/pointer name, for example:
${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
hdata[pointer].var1.var2...: start with a hdata using a pointer, for example:
${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers)
${buffer[my_pointer].full_name}: full name of the buffer with this pointer name (can be used in triggers)
For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
У изразима се замењују неке променљиве, користећи формат ${променљива}, променљива може да буде, према редоследу приоритета:
1. сам стринг без израчунавања (формат: raw:xxx)
2. кориснички дефинисана променљива (формат: „име”)
3. израчунати под-стринг (формат: eval:xxx)
4. израчунати услов (формат: eval_cond:xxx)
5. стринг са означеним карактерима (формат: esc:xxx” или „\xxx)
6. стринг са карактерима за сакривање (формат: hide:кар,стринг”)
7. стринг са највише карактера (формат: cut:макс,суфикс,стринг” или „cut:+макс,суфикс,стринг")
или макс број карактера који се приказује на екрану (формат: cutscr:макс,суфикс,стринг” или „cutscr:+макс,суфикс,стринг”)
8. обрнути стринг (формат: rev:xxx” или „revscr:xxx)
9. поновљени стринг (формат: repeat:број,стринг”)
10. дужина стринга (формат: length:xxx” или „lengthscr:xxx)
11. подела стринга (формат: split:број,сепаратори,заставице,xxx)
12. подела аргумената љуске (формат: split_shell:број,xxx)
13. боја (формат: color:xxx, погледајте „Референтни приручник API додатака”, функција „color)
14. модификатор (формат: modifier:име,подаци,стринг”)
15. инфо (формат: info:име,аргументи”, аргументи нису обавезни)
16. base 16/32/64 шифриран/дешифрован стринг (формат: base_encode:основа,xxx” или „base_decode:основа,xxx)
17. текући датум/време (формат: date” или „date:формат”)
18. променљива окружења (формат: env:XXX)
19. тернарни оператор (формат: if:услов?вредност_ако_је_тачно:вредност_ако_је_нетачно”)
20. резултат израза са заградама и операторима + - * / // % ** (формат: calc:xxx)
21. случајни целобројни број (формат: random:мин,макс”)
22. преведени стринг (формат: translate:xxx)
23. дефиниција корисничке промонљиве (формат: define:име,вредност”)
24. опција (формат: „фајл.секција.опција”)
25. локална променљива у баферу
26. hdata име/променљива (вредност се аутоматски конвертује у стринг), „window” и „buffer” подразумевано показују на текући прозор/бафер.
Формат за hdata може да буде једно од следећег:
hdata.пром1.пром2...: почиње са hdata (показивач мора да буде познат), и пита променљиве једну за другом (могу да следе и остала hdata)
hdata[листа].пром1.пром2...: почиње са hdata користећи листу/показивач/име показивача, на пример:
${buffer[gui_buffers].full_name}: пуно име првог бафера у увезаној листи бафера
${plugin[weechat_plugins].name}: име првог бафера у увезаној листи додатака
hdata[показивач].пром1.пром2...: почиње са hdata користећи показивач, на пример:
${buffer[0x1234abcd].full_name}: пуно име бафера са овим показивачем (може да се користи у окидачима)
${buffer[my_pointer].full_name}: пуно име бафера са овим именом показивача (може да се користи у окидачима)
У вези имена hdata и променљивих, молим вас да погледате „Референтни приручник API додатака”, функцију „weechat_hdata_get.
Examples (simple strings):
Примери (једноставни стрингови):
/eval -n ${raw:${info:version}} ==> ${info:version}
/eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3
@@ -1446,7 +1446,7 @@ Examples (simple strings):
/eval -n ${translate:Plugin} ==> Extension
/eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8
Examples (conditions):
Примери (услови):
/eval -n -c ${window.buffer.number} > 2 ==> 0
/eval -n -c ${window.win_width} > 100 ==> 1
/eval -n -c (8 > 12) || (5 > 2) ==> 1
@@ -1746,28 +1746,28 @@ disable: искључује миша
* `+plugin+`: приказ/учитавање/уклањање додатака
----
/plugin list [-o|-ol|-i|-il|<name>]
listfull [<name>]
load <filename> [<arguments>]
autoload [<arguments>]
reload [<name>|* [<arguments>]]
unload [<name>]
/plugin list| [-o|-ol|-i|-il|<име>]
listfull [<име>]
load <имефајла> [<аргументи>]
autoload [<аргументи>]
reload [<име>|* [<аргументи>]]
unload [<име>]
list: list loaded plugins
-o: send list of loaded plugins to buffer (string in English)
-ol: send list of loaded plugins to buffer (translated string)
-i: copy list of loaded plugins in command line (for sending to buffer) (string in English)
-il: copy list of loaded plugins in command line (for sending to buffer) (translated string)
name: a plugin name
listfull: list loaded plugins (verbose)
load: load a plugin
filename: plugin (file) to load
arguments: arguments given to plugin on load
autoload: autoload plugins in system or user directory
reload: reload a plugin (if no name given, unload all plugins, then autoload plugins)
unload: unload a plugin (if no name given, unload all plugins)
list: испис учитаних додатака
-o: слање листе учитаних додатака у бафер (стринг на енглеском)
-ol: слање листе учитаних додатака у бафер (преведени стринг)
-i: копирање листе учитаних додатака у командну линију (за слање у бафер) (стринг на енглеском)
-il: копирање листе учитаних додатака у командну линију (за слање у бафер) (преведени стринг)
име: име додатка
listfull: испис учитаних додатака (детаљно)
load: учитавање додатка
имефајла: додатак (фајл) који треба да се учита
аргументи: аргументи који се прослеђују додатку приликом учитавања
autoload: аутоматско учитавање додатака у системском или корисничком директоријуму
reload: поновно учитавање додатка (ако се не наведе име, уклањају се сви додаци, па се затим аутоматски учитавају)
unload: уклањање додатка (ако се не наведе име, уклањају се сви додаци)
Without argument, this command lists loaded plugins.
Без аргумента, ова команда исписује учитане додатке.
----
[[command_weechat_print]]
@@ -1994,28 +1994,28 @@ passphrase: измена тајне реченице (без passphrase, под
----
[[command_weechat_toggle]]
* `+toggle+`: toggle value of a config option
* `+toggle+`: пребацује вредност опције конфигурације
----
/toggle <option> [<value> [<value>...]]
/toggle <опција> [<вредност> [<вредност>...]]
option: name of an option
value: possible values for the option (values are split like the shell command arguments: quotes can be used to preserve spaces at the beginning/end of values)
опција: име опције
вредност: могуће вредности опције (вредности се деле као аргументи команде у љусци: на почетку/крају вредности могу да се користе знаци навода којима се очувавају размаци)
Behavior:
- only an option of type boolean or string can be toggled without a value:
- boolean: toggle between on/off according to current value
- string: toggle between empty string and default value (works only if empty string is allowed for the option)
- with a single value given, toggle between this value and the default value of option
- with multiple values given, toggle between these values: the value used is the one following the current value of option; if the current value of option is not in list, the first value in the list is used
- the special value "null" can be given, but only as first value in the list and without quotes around.
Понашање:
- без вредности је могуће пребацивање само опције типа логичка или стринг:
- логичка: пребацује између укључено/искључено зависно од тренутне вредности
- стринг: пребацује између празног стринга и подразумеване вредности (ради само ако је за вредност опције дозвољен празан стринг)
- са датом једном вредности, пребацује између те вредности и подразумеване вредности опције
- са више датих вредности, пребацује између тих вредности: вредност која се користи је она која следи након текуће вредности опције; ако се текућа вредност опције не налази у листи, користи се прва вредност у листи
- може да се наведе специјална вредност „null”, али само као прва вредност у листи и око ње нема знакова навода.
Examples:
toggle display of time in chat area (without displaying the new value used):
Примери:
пребацивање приказа времена у простору за чет (без бриказа нове вредности која се користи):
/mute /toggle weechat.look.buffer_time_format
switch format of time in chat area (with seconds, without seconds, disabled):
промена формата времена у простору за чет (са секундама, без секунди, искључено):
/toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
toggle autojoin of #weechat channel on libera server:
пребацивање аутоматског приступа каналу #weechat на libera серверу:
/toggle irc.server.libera.autojoin null #weechat
----
+103 -101
View File
@@ -389,60 +389,61 @@ WeeChat „језгро” се налази у следећим директо
[width="100%", cols="2m,3", options="header"]
|===
| Путања/фајл | Опис
| tests/ | Корен тестова.
|    tests.cpp | Програм који се користи за извршавање свих тестова.
|    scripts/ | Корен тестова за API скриптовања.
|       test-scripts.cpp | Програм који се користи за извршавање тестова API скриптовања.
|       python/ | Python скрипте које генеришу и покрећу тестове API скриптовања.
|          testapigen.py | Python скрипта која генерише скрипте на свим језицима за тестирање API скриптовања.
|          testapi.py | Python скрипта са тестовима API скриптовања, користи је скрипта testapigen.py.
|          unparse.py | Конверзија Python кода у остале језике, користи је скрипта testapigen.py.
|    unit/ | Корен unit тестова.
|       test-plugins.cpp | Тестови: plugins.
|       core/ | Корен unit тестова језгра.
|          test-core-arraylist.cpp | Тестови: arraylists.
|          test-core-calc.cpp | Тестови: калкулација израза.
// TRANSLATION MISSING
|          test-core-config-file.cpp | Tests: configuration files.
|          test-core-crypto.cpp | Тестови: криптографске функције.
|          test-core-dir.cpp | Тестови: функције директоријума/фајла.
|          test-core-eval.cpp | Тестови: израчунавање израза.
|          test-core-hashtble.cpp | Тестови: hashtables.
|          test-core-hdata.cpp | Тестови: hdata.
|          test-core-hook.cpp | Тестови: куке.
|          test-core-infolist.cpp | Тестови: infolists.
|          test-core-list.cpp | Тестови: листе.
|          test-core-network.cpp | Тестови: мрежне функције.
|          test-core-secure.cpp | Тестови: обезбеђени подаци.
|          test-core-signal.cpp | Тестови: сигнали.
|          test-core-string.cpp | Тестови: стрингови.
|          test-core-url.cpp | Тестови: URL адресе.
|          test-core-utf8.cpp | Тестови: UTF-8.
|          test-core-util.cpp | Тестови: помоћне функције.
|       gui/ | Корен unit тестова интерфејса.
|          test-gui-color.cpp | Тестови: боје.
|          test-gui-line.cpp | Тестови: линије.
|          test-gui-nick.cpp | Тестови: надимци.
|       plugins/ | Корен unit тестова додатака.
|          irc/ | Корен unit тестова IRC додатка.
|             test-irc-channel.cpp | Тестови: IRC канали.
|             test-irc-color.cpp | Тестови: IRC боје.
|             test-irc-config.cpp | Тестови: IRC конфигурација.
|             test-irc-ignore.cpp | Тестови: IRC игнорисања.
|             test-irc-message.cpp | Тестови: IRC поруке.
|             test-irc-mode.cpp | Тестови: IRC режими.
|             test-irc-nick.cpp | Тестови: IRC надимци.
|             test-irc-protocol.cpp | Тестови: IRC протокол.
|             test-irc-server.cpp | Тестови: IRC сервер.
|          trigger/ | Корен unit тестова за окидач додатак.
|             test-trigger.cpp | Тестови: окидачи.
|          typing/ | Корен unit тестова за typing додатак.
|             test-typing.cpp | Тестови: typing.
|             test-typing-status.cpp | Тестови: typing статус.
|          relay/ | Корен unit тестова за Релеј додатак.
|             test-relay-auth.cpp | Тестови: аутентификација клијената.
| Путања/фајл | Опис
| tests/ | Корен тестова.
|    tests.cpp | Програм који се користи за извршавање свих тестова.
|    scripts/ | Корен тестова за API скриптовања.
|       test-scripts.cpp | Програм који се користи за извршавање тестова API скриптовања.
|       python/ | Python скрипте које генеришу и покрећу тестове API скриптовања.
|          testapigen.py | Python скрипта која генерише скрипте на свим језицима за тестирање API скриптовања.
|          testapi.py | Python скрипта са тестовима API скриптовања, користи је скрипта testapigen.py.
|          unparse.py | Конверзија Python кода у остале језике, користи је скрипта testapigen.py.
|    unit/ | Корен unit тестова.
|       test-plugins.cpp | Тестови: plugins.
|       core/ | Корен unit тестова језгра.
|          test-core-arraylist.cpp | Тестови: arraylists.
|          test-core-calc.cpp | Тестови: калкулација израза.
|          test-core-config-file.cpp | Тестови: конфигурациони фајлови.
|          test-core-crypto.cpp | Тестови: криптографске функције.
|          test-core-dir.cpp | Тестови: функције директоријума/фајла.
|          test-core-eval.cpp | Тестови: израчунавање израза.
|          test-core-hashtble.cpp | Тестови: hashtables.
|          test-core-hdata.cpp | Тестови: hdata.
|          test-core-hook.cpp | Тестови: куке.
|          test-core-infolist.cpp | Тестови: infolists.
|          test-core-list.cpp | Тестови: листе.
|          test-core-network.cpp | Тестови: мрежне функције.
|          test-core-secure.cpp | Тестови: обезбеђени подаци.
|          test-core-signal.cpp | Тестови: сигнали.
|          test-core-string.cpp | Тестови: стрингови.
|          test-core-url.cpp | Тестови: URL адресе.
|          test-core-utf8.cpp | Тестови: UTF-8.
|          test-core-util.cpp | Тестови: помоћне функције.
|       gui/ | Корен unit тестова интерфејса.
|          test-gui-color.cpp | Тестови: боје.
|          test-gui-line.cpp | Тестови: линије.
|          test-gui-nick.cpp | Тестови: надимци.
|       plugins/ | Корен unit тестова додатака.
|          irc/ | Корен unit тестова IRC додатка.
|             test-irc-buffer.cpp | Тестови: IRC бафери.
|             test-irc-channel.cpp | Тестови: IRC канали.
|             test-irc-color.cpp | Тестови: IRC боје.
|             test-irc-config.cpp | Тестови: IRC конфигурација.
|             test-irc-ignore.cpp | Тестови: IRC игнорисања.
|             test-irc-message.cpp | Тестови: IRC поруке.
|             test-irc-mode.cpp | Тестови: IRC режими.
|             test-irc-nick.cpp | Тестови: IRC надимци.
|             test-irc-protocol.cpp | Тестови: IRC протокол.
|             test-irc-sasl.cpp | Тестови: SASL аутентификација са IRC протоколом.
|             test-irc-server.cpp | Тестови: IRC сервер.
|          trigger/ | Корен unit тестова за окидач додатак.
|             test-trigger.cpp | Тестови: окидачи.
|             test-trigger-config.cpp | Тестови: конфигурација окидача.
|          typing/ | Корен unit тестова за typing додатак.
|             test-typing.cpp | Тестови: typing.
|             test-typing-status.cpp | Тестови: typing статус.
|          relay/ | Корен unit тестова за Релеј додатак.
|             test-relay-auth.cpp | Тестови: аутентификација клијената.
|===
[[documentation_translations]]
@@ -464,7 +465,6 @@ WeeChat „језгро” се налази у следећим директо
|       weechat_quickstart.XX.adoc | link:weechat_quickstart.sr.html[Водич за брзи почетак].
|       weechat_relay_protocol.XX.adoc | link:weechat_relay_protocol.sr.html[Релеј протокол] (за удаљене интерфејсе).
|       weechat_scripting.XX.adoc | link:weechat_scripting.sr.html[Водич за скриптовање].
|       weechat_tester.XX.adoc | link:weechat_tester.sr.html[Водич за тестере].
|       weechat_user.XX.adoc | link:weechat_user.sr.html[Корисничко упутство].
|       includes/ | Фајлови укључени у документацију.
|          autogen_api_completions.XX.adoc | Ауто-генерисани фајл за Референцу API додатака: довршавања (*НИКАДА* не ажурирајте ручно!).
@@ -869,18 +869,10 @@ struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
Испред свих атрибута/боја се налази карактер у стрингу који може бити:
* _0x19_: кôд боје (иза кога следи кôд (или више њих) боје))
* _0x1A_: постави атрибут (иза кога следи атрибут као један карактер)
* _0x1B_: уклони атрибут (иза кога следи атрибут као један карактер)
* _0x1A_: постављање атрибута (након којег следи један карактер сировог атрибута)
* _0x1B_: уклањање атрибута (након којег следи један карактер сировог атрибута)
* _0x1C_: ресет (нема ништа иза)
Дозвољени су атрибути (један или више карактера):
* `+*+`: подебљано
* `+!+`: обрнуто
* `+/+`: курзив
* `+_+`: подвучено
* `+|+`: задржавају се постојећи атрибути
Могуће су следеће боје:
* стандардна боја: необавезни атрибути + двоцифрени број
@@ -889,45 +881,55 @@ struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
У следећој табели се подразумева следеће:
* `СТД`: стандардна боја (2 цифре)
* `(А)СТД`: стандардна боја са необавезним атрибутима (атрибути + 2 цифре)
* `(ATTR)СТД`: стандардна боја са необавезним атрибутима (атрибути + 2 цифре)
* `ПРО`: проширена боја (`+@+` + 5 цифара)
* `(A)ПРО`: проширена боја са необавезним атрибутима (`+@+` + атрибути + 5 цифара)
* `АТР`: један карактер атрибута (`+*+`, `+!+`, `+/+`, `+_+` или `+|+`)
* `(ATTR)ПРО`: проширена боја са необавезним атрибутима (`+@+` + атрибути + 5 цифара)
* `(ATTR)`: један или више карактера атрибута:
** `+*+`: подебљано
** `+!+`: обрнуто
** `+/+`: курзив
** `+_+`: подвучено
** `+|+`: задржавају се постојећи атрибути
* `(a)`: један сирови карактер атрибута:
** _0x01_: подебљано
** _0x02_: обрнуто
** _0x03_: курзив
** _0x04_: подвучено
У следећој табели су сажете све комбинације:
[width="100%", cols="4,2,2,8", options="header"]
[width="100%", cols="4,3,2,8", options="header"]
|===
| Кôд | Пример | Површине | Опис
| [hex]#19# + СТД | [hex]#19# `+01+` | чет + траке | Постављање атрибута и боје опцијама, погледајте табелу испод.
| [hex]#19# + ПРО | [hex]#19# `+@00001+` | chat | Постављање боје са ncurses паром (користи се само у `/color` баферу).
| [hex]#19# + "F" + (A)СТД | [hex]#19# `+F*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + "F" + (A)ПРО | [hex]#19# `+F@00214+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + "B" + СТД | [hex]#19# `+B05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + "B" + ПРО | [hex]#19# `+B@00124+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + "*" + (A)СТД | [hex]#19# `+*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + "*" + (A)ПРО | [hex]#19# `+*@00214+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + "*" + (A)СТД + "," + СТД ^(1)^ | [hex]#19# `+*08,05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
| [hex]#19# + "*" + (A)СТД + "," + ПРО ^(1)^ | [hex]#19# `+*01,@00214+` | чет + траке | Постављање предњег плана (WeeChat боје) у позадине (проширена боја).
| [hex]#19# + "*" + (A)ПРО + "," + СТД ^(1)^ | [hex]#19# `+*@00214,05+` | чет + траке | Постављање предњег плана (extended color) и позадине (WeeChat color).
| [hex]#19# + "*" + (A)ПРО + "," + ПРО ^(1)^ | [hex]#19# `+*@00214,@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
| [hex]#19# + "*" + (A)СТД + "~" + СТД | [hex]#19# `+*08~05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
| [hex]#19# + "*" + (A)СТД + "~" + ПРО | [hex]#19# `+*01~@00214+` | чет + траке | Постављање предњег плана (WeeChat color) и позадине (проширена боја).
| [hex]#19# + "*" + (A)ПРО + "~" + СТД | [hex]#19# `+*@00214~05+` | чет + траке | Постављање предњег плана (проширена боја) и позадине (WeeChat color).
| [hex]#19# + "*" + (A)ПРО + "~" + ПРО | [hex]#19# `+*@00214~@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
| [hex]#19# + "b" + "F" | [hex]#19# `+bF+` | траке | Постављање боје предњег плана траке.
| [hex]#19# + "b" + "D" | [hex]#19# `+bD+` | траке | Постављање боје граничника траке.
| [hex]#19# + "b" + "B" | [hex]#19# `+bB+` | траке | Постављање боје позадине траке.
| [hex]#19# + „b” + „_” | [hex]#19# `+b_+` | трака уноса | Почетак уноса карактера (користи се само у ставки „input_text”).
| [hex]#19# + „b” + „-” | [hex]#19# `+b-+` | трака уноса | Почетак уноса скривеног карактера (користи се само у ставки „input_text”).
| [hex]#19# + „b” + „#” | [hex]#19# `+b#+` | трака уноса | Померање курсор карактера (користи се само у ставки „input_text”).
| [hex]#19# + „b” + „i” | [hex]#19# `+bi+` | траке | Почетак ставке.
| [hex]#19# + „b” + „l” (мало L) | [hex]#19# `+bl+` | траке | Почетак линије ставке.
| [hex]#19# + „E” | [hex]#19# `+E+` | чет + траке | Наглашавање текста _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | чет + траке | Ресет боје (уз задржавање атрибута).
| [hex]#1A# + АТР | [hex]#1A# `+*+` | чет + траке | Постављање атрибута.
| [hex]#1B# + АТР | [hex]#1B# `+*+` | чет + траке | Уклањање атрибута.
| [hex]#1C# | [hex]#1C# | чет + траке | Ресет атрибута и боје.
| Кôд | Пример | Површине | Опис
| [hex]#19# + `СТД` | [hex]#19# `+01+` | чет + траке | Постављање атрибута и боје опцијама, погледајте табелу испод.
| [hex]#19# + `ПРО` | [hex]#19# `+@00001+` | chat | Постављање боје са ncurses паром (користи се само у `/color` баферу).
| [hex]#19# + `F` + `(ATTR)СТД` | [hex]#19# `+F*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + `F` + `(ATTR)ПРО` | [hex]#19# `+F@00214+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + `B` + `СТД` | [hex]#19# `+B05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + `B` + `ПРО` | [hex]#19# `+B@00124+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + `*` + `(ATTR)СТД` | [hex]#19# `+*05+` | чет + траке | Постављање предњег плана (WeeChat боја).
| [hex]#19# + `*` + `(ATTR)ПРО` | [hex]#19# `+*@00214+` | чет + траке | Постављање предњег плана (проширена боја).
| [hex]#19# + `*` + `(ATTR)СТД` + `,` + `СТД` ^(1)^ | [hex]#19# `+*08,05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
| [hex]#19# + `*` + `(ATTR)СТД` + `,` + `ПРО` ^(1)^ | [hex]#19# `+*01,@00214+` | чет + траке | Постављање предњег плана (WeeChat боје) у позадине (проширена боја).
| [hex]#19# + `*` + `(ATTR)ПРО` + `,` + `СТД` ^(1)^ | [hex]#19# `+*@00214,05+` | чет + траке | Постављање предњег плана (extended color) и позадине (WeeChat color).
| [hex]#19# + `*` + `(ATTR)ПРО` + `,` + `ПРО` ^(1)^ | [hex]#19# `+*@00214,@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
| [hex]#19# + `*` + `(ATTR)СТД` + `~` + `СТД` | [hex]#19# `+*08~05+` | чет + траке | Постављање предњег плана/позадине (WeeChat боје).
| [hex]#19# + `*` + `(ATTR)СТД` + `~` + `ПРО` | [hex]#19# `+*01~@00214+` | чет + траке | Постављање предњег плана (WeeChat color) и позадине (проширена боја).
| [hex]#19# + `*` + `(ATTR)ПРО` + `~` + `СТД` | [hex]#19# `+*@00214~05+` | чет + траке | Постављање предњег плана (проширена боја) и позадине (WeeChat color).
| [hex]#19# + `*` + `(ATTR)ПРО` + `~` + `ПРО` | [hex]#19# `+*@00214~@00017+` | чет + траке | Постављање предњег плана/позадине (проширене боје).
| [hex]#19# + `b` + `F` | [hex]#19# `+bF+` | траке | Постављање боје предњег плана траке.
| [hex]#19# + `b` + `D` | [hex]#19# `+bD+` | траке | Постављање боје граничника траке.
| [hex]#19# + `b` + `B` | [hex]#19# `+bB+` | траке | Постављање боје позадине траке.
| [hex]#19# + `b` + `_` | [hex]#19# `+b_+` | трака уноса | Почетак уноса карактера (користи се само у ставки „input_text”).
| [hex]#19# + `b` + `-` | [hex]#19# `+b-+` | трака уноса | Почетак уноса скривеног карактера (користи се само у ставки „input_text”).
| [hex]#19# + `b` + `#` | [hex]#19# `+b#+` | трака уноса | Померање курсор карактера (користи се само у ставки „input_text”).
| [hex]#19# + `b` + `i` | [hex]#19# `+bi+` | траке | Почетак ставке.
| [hex]#19# + `b` + `l` (мало L) | [hex]#19# `+bl+` | траке | Почетак линије ставке.
| [hex]#19# + `E` | [hex]#19# `+E+` | чет + траке | Наглашавање текста _(WeeChat ≥ 0.4.2)_.
| [hex]#19# + [hex]#1C# | [hex]#19# [hex]#1C# | чет + траке | Ресет боје (уз задржавање атрибута).
| [hex]#1A# + `(a)` | [hex]#1A# [hex]#01# | чет + траке | Постављање атрибута.
| [hex]#1B# + `(a)` | [hex]#1B# [hex]#01# | чет + траке | Уклањање атрибута.
| [hex]#1C# | [hex]#1C# | чет + траке | Ресет атрибута и боје.
|===
[NOTE]
@@ -1159,7 +1161,7 @@ Asciidoc фајлови се налазе у директоријуму _doc/XX/
Преводи који недостају у фајловима су назначени следећим стрингом:
----
// TRANSLATION MISSING
// TRANSLATION MISSING
----
Морате да преведете комплетан фајл осим линкова и специјалних кључних речи за напомене, упозорења, ... Ове речи морате оставити непреведене:
@@ -1175,7 +1177,7 @@ Asciidoc фајлови се налазе у директоријуму _doc/XX/
[CAUTION]
----
Када након `<<име_линка>>` постоји име, онда морате да га преведете:
Када након `+<<име_линка>>+` постоји име, онда морате да га преведете:
----
<<име_линка,овај текст мора да се преведе>>
+9
View File
@@ -943,6 +943,15 @@ $ cd ~/.cache/weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz
----
// TRANSLATION MISSING
If you're running macOS and the downloaded file has a size of 0 bytes,
try to set this variable in your shell initialization file or on command line,
before starting WeeChat:
----
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
----
[[spell_dictionaries]]
=== Инсталирао сам aspell речнике у свој систем, како могу да их користим без потребе да поново покрећем програм WeeChat?
+107 -55
View File
@@ -556,7 +556,7 @@ _WeeChat ≥ 3.3._
Прототип:
[source,C]
[source,c]
----
char *weechat_string_cut (const char *string, int length, int count_suffix, int screen, const char *cut_suffix);
----
@@ -575,7 +575,7 @@ char *weechat_string_cut (const char *string, int length, int count_suffix, int
C пример:
[source,C]
[source,c]
----
char *str = weechat_string_cut ("this is a test", 5, 1, 1, "…"); /* result: "this…" */
/* ... */
@@ -2457,12 +2457,11 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio
`+${raw:${info:version}}+` |
`+${info:version}+`
// TRANSLATION MISSING
| `+${name}+` +
| `+${име}+` +
_(WeeChat ≥ 3.4)_ |
User variable (defined with `+${define:name,value}+`). |
`+${name}+` |
`+value+`
Корисничка променљива (дефинисана са `+${define:име,вредност}+`). |
`+${име}+` |
`+вредност+`
| `+${име}+` |
Променљива `name` из хеш табеле _extra_vars_. |
@@ -2572,22 +2571,21 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio
`+4+` +
`+14+`
// TRANSLATION MISSING
| `+${split:number,seps,flags,xxx}+` +
_(WeeChat ≥ 3.3)_ |
Split string, and return, according to `number`: +
- `count`: the number of items after split +
- `random`: a random item +
- integer ≥ 1: the item by index (1 = first item) +
- integer ≤ -1: the item by index from the end (-1 = last item, -2 = penultimate item, etc.), +
`seps` is a list of chars that are used as separators (if empty, a comma is used), +
`flags` is a list of flags separated by `+`: +
- `strip_left`: strip separators on the left (beginning of string) +
- `strip_right`: strip separators on the right (end of string) +
- `collapse_seps`: collapse multiple consecutive separators into a single one +
- `keep_eol`: keep end of line for each value +
- `strip_items=xyz`: strip chars `x`, `y` and `z` from beginning/end of items +
- `max_items=N`: return max N items |
Дели стринг и враћа сагласно са `number`: +
- `count`: број ставки након поделе +
- `random`: произвољну ставку +
- цео број ≥ 1: ставку са индексом (1 = прва ставка) +
- цео број ≤ -1: ставку са индеком од краја (-1 = последња ставка, -2 = претпоследња ставка, итд.), +
`seps` је листа карактера који се користе као граничници (ако је празно, користи се запета), +
`flags` је листа заставица раздвојена са `+`: +
- `strip_left`: уклања граничнике са леве стране (почетка стринга) +
- `strip_right`: уклања граничнике са десне стране (краја стринга) +
- `collapse_seps`: стапа више узастопних граничника у један +
- `keep_eol`: задржава прелом линије за сваку вредност +
- `strip_items=xyz`: уклања карактере `x`, `y` и `z` са почетка/краја ставки +
- `max_items=N`: враћа максимално N ставки |
`+${split:1,,,abc,def,ghi}+` +
`+${split:-1,,,abc,def,ghi}+` +
`+${split:count,,,abc,def,ghi}+` +
@@ -2607,14 +2605,13 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio
`+is+` +
`+is a test+`
// TRANSLATION MISSING
| `+${split_shell:number,xxx}+` +
_(WeeChat ≥ 3.3)_ |
Split shell arguments, and return, according to `number`: +
- `count`: the number of arguments after split +
- `random`: a random argument +
- integer ≥ 1: the argument by index (1 = first argument) +
- integer ≤ -1: the argument by index from the end (-1 = last argument, -2 = penultimate argument, etc.) |
Дели аргументе љуске и враћа сагласно са `number`: +
- `count`: број аргумената након поделе +
- `random`: произвољни аргумент +
- цео број ≥ 1: аргумент по индексу (1 = први аргумент) +
- цео број ≤ -1: аргумент по индексу од краја (-1 = последњи аргумент, -2 = претпоследњи аргумент, итд.) |
`+${split_shell:1,"first arg" arg2}+` +
`+${split_shell:-1,"first arg" arg2}+` +
`+${split_shell:count,"first arg" arg2}+` +
@@ -2755,11 +2752,10 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio
`+${translate:Plugin}+` |
`+Extension+` (пример из француског)
// TRANSLATION MISSING
| `+${define:name,value}+` +
_(WeeChat ≥ 3.4)_ |
Define a variable `name` set to `value`, which can then be used in the same
evaluated expression with `+${name}+`. |
Дефинисање променљиве `име` постављене на `вредност`, која онда може да се користи у истом
израчунатом изразу са `+${име}+`. |
`+${define:len,${calc:5+3}}${len}x${len}+` |
`+8x8+`
@@ -3869,7 +3865,7 @@ _WeeChat ≥ 3.3._
Прототип:
[source,C]
[source,c]
----
int weechat_file_copy (const char *from, const char *to);
----
@@ -3885,7 +3881,7 @@ int weechat_file_copy (const char *from, const char *to);
C пример:
[source,C]
[source,c]
----
if (weechat_file_copy ("/tmp/test.txt", "/path/to/test2.txt"))
{
@@ -14960,7 +14956,7 @@ if (hashtable_in)
weechat_hashtable_set (
hashtable_in,
"message",
"@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :hello!");
"@time=2015-06-27T16:40:35.000Z;tag2=value\\sspace :nick!user@host PRIVMSG #weechat :Hello world!");
hashtable_out = weechat_info_get_hashtable ("irc_message_parse",
hashtable_in);
/*
@@ -14968,14 +14964,17 @@ if (hashtable_in)
* "tags" : "time=2015-06-27T16:40:35.000Z;tag2=value\\sspace"
* "tag_time" : "2015-06-27T16:40:35.000Z"
* "tag_tag2" : "value space"
* "message_without_tags": ":nick!user@host PRIVMSG #weechat :hello!"
* "message_without_tags": ":nick!user@host PRIVMSG #weechat :Hello world!"
* "nick" : "nick"
* "user" : "user"
* "host" : "nick!user@host"
* "command" : "PRIVMSG"
* "channel" : "#weechat"
* "arguments" : "#weechat :hello!"
* "text" : "hello!"
* "arguments" : "#weechat :Hello world!"
* "text" : "Hello world!"
* "param1" : "#weechat"
* "param2" : "Hello world!"
* "num_params" : "2"
* "pos_command" : "65"
* "pos_arguments" : "73"
* "pos_channel" : "73"
@@ -15856,7 +15855,7 @@ struct t_hdata *hdata = weechat_hdata_new ("myplugin_list", "prev", "next", 0, 0
==== hdata_new_var
_WeeChat ≥ 0.3.6, ажурирано у верзији 0.3.9._
_WeeChat ≥ 0.3.6, ажурирано у верзијама 0.3.7, 0.3.9, 0.4.3 и 3.4._
Креира нову променљиву у hdata.
@@ -15874,15 +15873,15 @@ void weechat_hdata_new_var (struct t_hdata *hdata, const char *name, int offset,
* _name_: име променљиве
* _offset_: померај променљиве од почетка структуре
* _type_: тип променљиве, једно од:
** WEECHAT_HDATA_CHAR
** WEECHAT_HDATA_INTEGER
** WEECHAT_HDATA_LONG
** WEECHAT_HDATA_STRING
** WEECHAT_HDATA_SHARED_STRING
** WEECHAT_HDATA_POINTER
** WEECHAT_HDATA_TIME
** WEECHAT_HDATA_HASHTABLE
** WEECHAT_HDATA_OTHER
** _WEECHAT_HDATA_CHAR_
** _WEECHAT_HDATA_INTEGER_
** _WEECHAT_HDATA_LONG_
** _WEECHAT_HDATA_STRING_
** _WEECHAT_HDATA_SHARED_STRING_ (_WeeChat ≥ 0.4.3_)
** _WEECHAT_HDATA_POINTER_
** _WEECHAT_HDATA_TIME_
** _WEECHAT_HDATA_HASHTABLE_ (_WeeChat ≥ 0.3.7_)
** _WEECHAT_HDATA_OTHER_
* _update_allowed_: 1 ако се дозвољава ажурирање променљиве, у супротном 0 _(WeeChat ≥ 0.3.9)_
* _array_size_: није NULL само ако је променљива низ, и може бити: _(WeeChat ≥ 0.3.9)_
** име променљиве у hdata: ова променљива ће се користити као величина низа (динамичка величина низа)
@@ -15890,6 +15889,35 @@ void weechat_hdata_new_var (struct t_hdata *hdata, const char *name, int offset,
** _*_: аутоматска величина: величина низа се израчунава гледањем у вредности, када се наиђе на прво NULL (само за тип стринг, показивач или хеш табелу)
* _hdata_name_: име hdata (ако је то показивач на структуру са hdata)
Од WeeChat ≥ 3.4, испред _array_size_ параметра може да се постави `*,` што
представља показивач на динамички алоциран низ (без овог префикса, низ се
сматра статички).
Примери променљивих и одговарајуће величине низа (_WeeChat ≥ 3.4_):
[width="100%",cols="3,3m,2,7",options="header"]
|===
| Декларација променљиве у C | Hdata тип | Величина низа | Опис
| `+int *numbers;+` | WEECHAT_HDATA_INTEGER | `+*,2+` |
Алоцирани низ од 2 цела броја.
| `+int *numbers;+` | WEECHAT_HDATA_INTEGER | `+*,array_size+` |
Алоцирани низ целих бројева, величина се чува у другој променљивој под називом
"array_size".
| `+int numbers[3];+` | WEECHAT_HDATA_INTEGER | `+3+` |
Статички низ од 3 цела броја.
| `+char **words;+` | WEECHAT_HDATA_STRING | `+*,*+` |
Алоцирани низ стрингова, динамичке величине (иза последње речи мора да дође
NULL показивач).
| `+char **words;+` | WEECHAT_HDATA_STRING | `+*,count_words+` |
Алоцирани низ стрингова, величина се чува у другој променљивој под називом
"count_words".
|===
C пример:
[source, C]
@@ -15898,6 +15926,7 @@ struct t_myplugin_list
{
char *name;
struct t_gui_buffer *buffer;
int numbers[3];
int tags_count;
char **tags_array;
char **string_split;
@@ -15910,9 +15939,10 @@ struct t_myplugin_list
struct t_hdata *hdata = weechat_hdata_new ("myplugin_list", "prev", "next");
weechat_hdata_new_var (hdata, "name", offsetof (struct t_myplugin_list, name), WEECHAT_HDATA_STRING, 0, NULL, NULL);
weechat_hdata_new_var (hdata, "buffer", offsetof (struct t_myplugin_list, buffer), WEECHAT_HDATA_POINTER, 0, NULL, NULL);
weechat_hdata_new_var (hdata, "numbers", offsetof (struct t_myplugin_list, numbers), WEECHAT_HDATA_INTEGER, 0, "3", NULL);
weechat_hdata_new_var (hdata, "tags_count", offsetof (struct t_myplugin_list, tags_count), WEECHAT_HDATA_INTEGER, 0, NULL, NULL);
weechat_hdata_new_var (hdata, "tags_array", offsetof (struct t_myplugin_list, tags_array), WEECHAT_HDATA_STRING, 0, "tags_count", NULL);
weechat_hdata_new_var (hdata, "string_split", offsetof (struct t_myplugin_list, string_split), WEECHAT_HDATA_STRING, 0, "*", NULL);
weechat_hdata_new_var (hdata, "tags_array", offsetof (struct t_myplugin_list, tags_array), WEECHAT_HDATA_STRING, 0, "*,tags_count", NULL);
weechat_hdata_new_var (hdata, "string_split", offsetof (struct t_myplugin_list, string_split), WEECHAT_HDATA_STRING, 0, "*,*", NULL);
weechat_hdata_new_var (hdata, "prev", offsetof (struct t_myplugin_list, prev), WEECHAT_HDATA_POINTER, 0, NULL, "myplugin_list");
weechat_hdata_new_var (hdata, "next", offsetof (struct t_myplugin_list, next), WEECHAT_HDATA_POINTER, 0, NULL, "myplugin_list");
----
@@ -15923,9 +15953,10 @@ weechat_hdata_new_var (hdata, "next", offsetof (struct t_myplugin_list, next), W
----
WEECHAT_HDATA_VAR(struct t_myplugin_list, name, STRING, 0, NULL, NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, buffer, POINTER, 0, NULL, NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, numbers, INTEGER, 0, "3", NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, tags_count, INTEGER, 0, NULL, NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, tags_array, STRING, 0, "tags_count", NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, string_split, STRING, 0, "*", NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, tags_array, STRING, 0, "*,tags_count", NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, string_split, STRING, 0, "*,*", NULL);
WEECHAT_HDATA_VAR(struct t_myplugin_list, prev, POINTER, 0, NULL, "myplugin_list");
WEECHAT_HDATA_VAR(struct t_myplugin_list, next, POINTER, 0, NULL, "myplugin_list");
----
@@ -16539,7 +16570,7 @@ if buffer:
==== hdata_search
_WeeChat ≥ 0.4.1._
_WeeChat ≥ 0.4.1, ажурирано у верзији 3.4._
Тражи елемент у листи: израз _search_ се тражи за сваки елемент у листи, све док се елемент не пронађе (или наиђе на крај листе).
@@ -16547,7 +16578,9 @@ _WeeChat ≥ 0.4.1._
[source, C]
----
void *weechat_hdata_search (struct t_hdata *hdata, void *pointer, const char *search, int move);
void *weechat_hdata_search (struct t_hdata *hdata, void *pointer, const char *search,
struct t_hashtable *pointers, struct t_hashtable *extra_vars,
struct t_hashtable *options, int move);
----
Аргументи:
@@ -16555,8 +16588,16 @@ void *weechat_hdata_search (struct t_hdata *hdata, void *pointer, const char *se
* _hdata_: показивач на hdata
* _pointer_: показивач на објекат програма WeeChat/додатка
* _search_: израз који се израчунава, подразумевани показивач у изразу је име hdata (и овај показивач се мења за сваки елемент у листи); за помоћ у вези израза, погледајте link:weechat_user.sr.html#command_weechat_eval[WeeChat корисничко упутство / Команда /eval]
* _pointers_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>
* _extra_vars_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>
* _options_: хеш табела за позив функције <<_string_eval_expression,string_eval_expression>>
* _move_: број скок(а/ова) који треба да се изврши након неуспешне претраге (негативни или позитивни цео број, различит од 0)
[IMPORTANT]
Морате обезбедити да је _search_ израз сигуран и да не садржи корисничке
податке. Такви небезбедни подаци морају да се наведу у хеш табели _extra_vars_
и да се на њих у _search_ изразу укаже са `${xxx}` (погледајте пример испод).
Повратна вредност:
* показивач на пронађени елемент, NULL у случају да се не пронађе
@@ -16567,13 +16608,21 @@ C пример:
----
struct t_hdata *hdata = weechat_hdata_get ("irc_server");
void *servers = weechat_hdata_get_list (hdata, "irc_servers");
struct t_hashtable *extra_vars = weechat_hashtable_new (8,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
/* тражи irc сервер под именом „libera” */
void *server = weechat_hdata_search (hdata, servers, "${irc_server.name} == libera", 1);
weechat_hashtable_set (extra_vars, "server_name", "libera");
void *server = weechat_hdata_search (hdata, servers, "${irc_server.name} == ${server_name}",
NULL, extra_vars, NULL, 1);
if (server)
{
/* ... */
}
weechat_hashtable_free (extra_vars);
----
Скрипта (Python):
@@ -16581,14 +16630,17 @@ if (server)
[source, python]
----
# прототип
def hdata_search(hdata: str, pointer: str, search: str, count: int) -> str: ...
def hdata_search(hdata: str, pointer: str, search: str,
pointers: Dict[str, str], extra_vars: Dict[str, str], options: Dict[str, str],
count: int) -> str: ...
# пример
hdata = weechat.hdata_get("irc_server")
servers = weechat.hdata_get_list(hdata, "irc_servers")
# тражи irc сервер под именом „libera”
server = weechat.hdata_search(hdata, servers, "${irc_server.name} == libera", 1)
server = weechat.hdata_search(hdata, servers, "${irc_server.name} == ${server_name}",
{}, {"server_name": "libera"}, {}, 1)
if server:
# ...
----
-120
View File
@@ -1,120 +0,0 @@
= Водич за тестирање програма WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: sr
:toc: left
:toc-title: Садржај
:sectnums:
:docinfo1:
Превод:
* Иван Пешић (<ivan.pesic@gmail.com>), 2021.
[[purpose]]
== Намена
Многи захвални корисници су нас питали како могу да помогну развој програма WeeChat. Најлакши (у исто време и најкомпликованији) начин помоћи у развоју програма WeeChat је тестирање!
Тестирање је веома важан део развоја софтвера и не би требало да се занемари. Када се имплементирају неке могућности, требало би и да се тестирају, али за неке могућности постоји превише случајева коришћења или су ти случајеви компликовани, па програмери не могу да испробају баш сваки случај.
На пример: озлоглашени charset додатак је уведен у WeeChat верзије 0.2.2: нико од нас (програмери, људи који су дали допринос програму, и тестери) није користио канале са националним карактерима у својим именима, па када је објављена верзија 0.2.2, руски коринисници су нас засули примедбама. Да имамо више тестера, овако нешто се не би опет поновило у будућности.
Тестирање стабилне верзије програма WeeChat нема смисла јер су програмери стално заузети имплементирањем нових ствари (и исправљањем старих багова).
[[prepare_system]]
== Припремите свој систем
Пуно би нам помогло ако укључите Линукс _core_ фајлове: ако се програм WeeChat сруши, Линукс ће креирати фајл под именом _core_. Овај фајл садржи врло корисне дибаг информације, тако да прецизно можемо знати где је у програму WeeChat настао проблем.
Ако користите _bash_ командно окружење, додајте следећу линију у свој _~/.bashrc_:
----
ulimit -c unlimited
----
[[download]]
== Преузмите развојну верзију
Свеж кôд (са најновијим баговима и могућностима) је чува у GIT репозиторијуму.
Можете одлучити да га сами изградите (препоручени начин):
* GIT верзија може да се изгради и инсталира паралелно са стабилном верзијом.
* Није вам потребан root приступ, и не морате да жртвујете стабилну верзију програма WeeChat.
[[get_sources]]
=== Набавите и изградите изворне фајлове
Најпре креирајте директоријум, на пример _weechat-git_:
----
$ mkdir ~/weechat-git
$ cd ~/weechat-git
----
Ако имате инсталиран програм git, можете једноставно да клонирате git репозиторијум (препоручени начин):
----
$ git clone https://github.com/weechat/weechat.git
$ cd weechat
----
[NOTE]
Касније можете да извршите `git pull` у овом директоријуму, чиме преузимате делте са најновијим ажурирањима.
У супротном можете да преузмете и распакујете _devel_ пакет:
----
$ wget https://weechat.org/files/src/weechat-devel.tar.bz2
$ tar xvjf weechat-devel.tar.bz2
$ cd weechat-devel
----
CMake се препоручује за изградњу изворних фајлова:
----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/weechat-git -DWEECHAT_HOME=~/.weechat-dev -DCMAKE_BUILD_TYPE=Debug
$ make
$ make install
----
Ако немате CMake, ипак је могуће да употребите autotools:
----
$ ./autogen.sh
$ ./configure --prefix=$HOME/weechat-git WEECHAT_HOME=~/.weechat-dev
$ make
$ make install
----
[[install_binary_package]]
=== Инсталација бинарног пакета
У зависности од ваше Линукс дистрибуције:
* Debian: https://weechat.org/download/debian
* Gentoo: https://weechat.org/download
* ArchLinux: PKGBUILD са https://aur.archlinux.org/
* остале: не знамо! Хехе.
[[run]]
== Покретање програма WeeChat
Команда је:
----
$ ~/weechat-git/bin/weechat
----
Ако сте још увек будни, требало би да угледате познати интерфејс и да се хвалите тиме што поседујете најновију могућу верзију програма WeeChat. ;)
Ако сада искусите чудно понашање (можда постоје проблеми или крах или може да прокључа ваше пиво) не оклевајте да се придружите каналу _#weechat_ на _irc.libera.chat_ и да нам испричате о проблему.
Ако се програм не руши - реците нам и то, потребно нам је ваше извештавање!
+1814 -1685
View File
File diff suppressed because it is too large Load Diff
+23 -43
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: cs\n"
@@ -165,7 +165,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -9058,11 +9058,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
#, fuzzy
@@ -9626,24 +9628,28 @@ msgstr "%s%s%s %s(%s%s%s)%s se zpet na serveru"
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%sMód %s%s %s[%s%s%s]"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: příkaz \"%s\" nenalezen:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
#, fuzzy, c-format
#| msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr "%s%s: selhalo parsování příkazu \"%s\" (prosím oznamte to vývojárům):"
#, c-format
#, fuzzy, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: přijato příliš málo argumentů od IRC serveru pro příkaz \"%s"
"\" (obdrženo: %d argumentů, očekáváno: alespoň %d)"
#, c-format
msgid "%s%s: \"%s\" command received without host"
#, fuzzy, c-format
#| msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: \"%s\" příkaz obdržen bez hosta"
#, fuzzy, c-format
@@ -13362,29 +13368,3 @@ msgstr "%s%s: vypršel časový limit \"%s\" pro %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: nemohu se připojit\" neočekávaná chyba (%d)"
#, fuzzy
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: vypíše načtené pluginy\n"
#~ "listfull: vypíše načtené pluginy (detailní)\n"
#~ " load: načte plugin\n"
#~ "autolaod: automaticky načte pluginy v systémovém nebo uživatelském "
#~ "adresáři\n"
#~ " reload: znovu načte plugin (pokud není zadané žádné jméno odebere "
#~ "všechny pluginy pak automaticky načte pluginy)\n"
#~ " unload: odebere jeden nebo všechny pluginy\n"
#~ "\n"
#~ "Zavolání příkazu bez parametrů vypíše načtené pluginy."
+41 -68
View File
@@ -24,8 +24,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-10-02 19:48+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-10 09:48+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
"Language: de\n"
@@ -33,7 +33,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.0\n"
"X-Poedit-Bookmarks: -1,-1,180,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SourceCharset: utf-8\n"
@@ -169,7 +169,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -192,10 +192,10 @@ msgstr ""
" -c, --colors zeigt die Standardfarben des Terminals an\n"
" -d, --dir <Pfad> legt einen Konfigurationsordner für WeeChat fest\n"
" oder vier verschiedene Verzeichnisse, die durch "
"Doppelpunkte getrennt sind (in dieser Reihenfolge: Konfiguration, Daten, "
"Cache, Laufzeit)\n"
"Doppelpunkte getrennt werden (in folgender Reihenfolge: Konfiguration, "
"Daten, Cache, Laufzeit)\n"
" (Umgebungsvariable WEECHAT_HOME wird genutzt, "
"falls diese Option nicht übergeben wird)\n"
"falls diese Option nicht verwendet wird)\n"
" -t, --temp-dir erstellt ein temporäres WeeChat "
"Heimatverzeichnis, welches beim Beenden gelöscht wird\n"
" (nicht nutzbar mit Option \"-d\")\n"
@@ -209,11 +209,11 @@ msgstr ""
" -r, --run-command <cmd> führt einen oder mehrere Befehle nach dem Start "
"aus\n"
" mehrere Befehle können durch ein Semikolon "
"getrennt werden,\n"
"getrennt werden und sind evaluiert,\n"
" diese Option kann mehrfach genutzt werden\n"
" -s, --no-script Skripten werden beim Programmstart nicht geladen\n"
" --upgrade führt ein WeeChat-Upgrade mittels Sitzungsdateien "
"die mit dem Befehl `/upgrade -quit` erstellt wurden durch\n"
" -s, --no-script Skripts werden beim Programmstart nicht geladen\n"
" --upgrade führt ein WeeChat-Upgrade, mittels "
"Sitzungsdateien die mit dem Befehl `/upgrade -quit` erstellt wurden, durch\n"
" -v, --version zeigt die Version von WeeChat an\n"
" plugin:option Einstellungen für Erweiterungen (siehe man "
"weechat)\n"
@@ -3163,7 +3163,6 @@ msgstr ""
msgid "toggle value of a config option"
msgstr "den Wert einer Konfigurationsoption umschalten"
#| msgid "[<file> [<file>...]]"
msgid "<option> [<value> [<value>...]]"
msgstr "<option> [<value> [<value>...]]"
@@ -11233,22 +11232,26 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\": Tags, \"tag_xxx\": Wert des Tags \"xxx\" ohne Escapezeichen (ein "
"Schlüssel pro Tag), \"message_without_tags\": Nachrichten ohne Tags, \"nick"
"\": Nick, \"user\": Benutzer, \"host\": Host, \"command\": Befehl, \"channel"
"\": Kanal, \"arguments\": Argumente (schließt Kanal ein), \"text\": Text "
"(zum Beispiel eine Nachricht von einem User), \"pos_command\": Index der "
"\"command\" Nachricht (\"-1\" falls \"command\" nicht gefunden wird), "
"\"pos_arguments\": Index der \"arguments\" Nachricht (\"-1\" falls "
"\"arguments\" nicht gefunden wird), \"pos_channel\": Index der \"channel\" "
"Nachricht (\"-1\" falls \"channel\" nicht gefunden wird),\"pos_text\": Index "
"für \"text\" Nachricht (\"-1\" falls \"text\" nicht gefunden wird)"
"(zum Beispiel eine Nachricht von einem User), \"param1\" ... \"paramN\": "
"geparste Befehlsparameter, \"num_params\": Anzahl geparste Befehlsparameter, "
"\"pos_command\": Index der \"command\" Nachricht (\"-1\" falls \"command\" "
"nicht gefunden wird), \"pos_arguments\": Index der \"arguments\" Nachricht "
"(\"-1\" falls \"arguments\" nicht gefunden wird), \"pos_channel\": Index der "
"\"channel\" Nachricht (\"-1\" falls \"channel\" nicht gefunden wird),"
"\"pos_text\": Index für \"text\" Nachricht (\"-1\" falls \"text\" nicht "
"gefunden wird)"
msgid "split an IRC message (to fit in 512 bytes by default)"
msgstr ""
@@ -11808,26 +11811,27 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s wurde das Wort entzogen"
#, c-format
msgid "%s%s: command \"%s\" not found:"
msgstr "%s%s: Befehl \"%s\" nicht gefunden:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr ""
"%s%s: Befehl \"%s\" kann nicht nicht geparsed werden (bitte melden Sie das "
"den Entwicklern):"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: Befehl \"%s\" nicht gefunden: \"%s\""
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: zu wenige Argumente für den Befehl \"%s\" vom IRC-Server erhalten "
"(Empfangen: %d Argumente, Erwartet: mindestens %d)"
"%s%s: Fehler beim Parsen des Befehls\"%s\" (bitte wenden Sie sich an die "
"Entwickler): \"%s\""
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgstr "%s%s: \"%s\"-Befehl empfangen ohne Host"
msgid ""
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: zu wenige Parameter im Befehl empfangen \"%s\" (Empfangen: %d, "
"Erwartet: mindestens %d)"
#, c-format
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: Befehl \"%s\" ohne Nick empfangen"
#, c-format
msgid "IRC raw messages | Filter: %s"
@@ -16021,34 +16025,3 @@ msgstr "%s%s: Zeitüberschreitung für \"%s\" mit %s"
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr ""
"%s%s: Verbindung konnte nicht hergestellt werden: unerwarteter Fehler (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: installierte Erweiterungen werden aufgelistet\n"
#~ " listfull: detaillierte Auflistung aller installierten Erweiterungen\n"
#~ " load: installiert eine Erweiterung\n"
#~ " autoload: installiert automatisch alle Erweiterungen aus dem System- "
#~ "oder Benutzerverzeichnis\n"
#~ " reload: startet eine Erweiterung erneut (falls kein Name angegeben "
#~ "wird, werden alle Erweiterungen beendet und neu gestartet)\n"
#~ " unload: beendet eine oder alle Erweiterungen (wird kein Name angegeben "
#~ "dann werden alle Erweiterung beendet)\n"
#~ " filename: Erweiterung (Datei) welche installiert werden soll\n"
#~ " name: Name einer Erweiterung\n"
#~ "arguments: Argumente die der Erweiterung beim installieren übergeben "
#~ "werden sollen\n"
#~ "\n"
#~ "Ohne Angabe eines Arguments werden alle installierten Erweiterungen "
#~ "angezeigt."
+544 -359
View File
File diff suppressed because it is too large Load Diff
+33 -58
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-10-01 22:53+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -163,7 +163,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -2389,7 +2389,7 @@ msgstr ""
"associée à la touche\n"
" bindctxt : associer une commande à une touche ou affiche la commande "
"associée à la touche pour le contexte donné\n"
" commande : commande (plusieurs commandes peuvent êtres séparées par des "
" commande : commande (plusieurs commandes peuvent être séparées par des "
"points-virgules)\n"
" unbind : supprimer l'association à une touche\n"
" unbindctxt : supprimer l'association à une touche pour le contexte donné\n"
@@ -10994,23 +10994,26 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\" : étiquettes, \"tag_xxx\" : valeur de l'étiquette \"xxx\" sans "
"échappements (une clé par étiquette), \"message_without_tags\" : message "
"sans les étiquettes, \"nick\" : pseudo, \"user\" : nom d'utilisateur, \"host"
"\" : nom d'hôte, \"command\" : commande, \"channel\" : canal, \"arguments"
"\" : paramètres (inclut le canal), \"text\" : texte (par exemple message "
"utilisateur), \"pos_command\" : index de \"command\" dans le message (\"-1\" "
"si \"command\" n'a pas été trouvé), \"pos_arguments\" : index de \"arguments"
"\" dans le message (\"-1\" si \"arguments\" n'a pas été trouvé), "
"\"pos_channel\" : index de \"channel\" dans le message (\"-1\" si \"channel"
"\" n'a pas été trouvé), \"pos_text\" : index de \"text\" dans le message "
"(\"-1\" si \"text\" n'a pas été trouvé)"
"utilisateur), \"param1\" ... \"paramN\" : paramètres de la commande, "
"\"num_params\" : nombre de paramètres dans la commande, \"pos_command\" : "
"index de \"command\" dans le message (\"-1\" si \"command\" n'a pas été "
"trouvé), \"pos_arguments\" : index de \"arguments\" dans le message (\"-1\" "
"si \"arguments\" n'a pas été trouvé), \"pos_channel\" : index de \"channel\" "
"dans le message (\"-1\" si \"channel\" n'a pas été trouvé), \"pos_text\" : "
"index de \"text\" dans le message (\"-1\" si \"text\" n'a pas été trouvé)"
msgid "split an IRC message (to fit in 512 bytes by default)"
msgstr "découper un message IRC (pour tenir dans les 512 octets par défaut)"
@@ -11563,26 +11566,27 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s rendu silencieux"
#, c-format
msgid "%s%s: command \"%s\" not found:"
msgstr "%s%s : commande \"%s\" non trouvée :"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr ""
"%s%s : échec d'analyse de la commande \"%s\" (merci de reporter ce problème "
"aux développeurs) :"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s : commande \"%s\" non trouvée : \"%s\""
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s : trop peu de paramètres reçus du serveur IRC pour la commande \"%s"
"\" (reçu : %d paramètres, attendu : au moins %d)"
"%s%s : échec d'analyse de la commande \"%s\" (merci de reporter ce problème "
"aux développeurs) : \"%s\""
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgstr "%s%s : commande \"%s\" reçue sans hôte"
msgid ""
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s : trop peu de paramètres reçus dans la commande \"%s\" (reçu : %d, "
"attendu : au moins %d)"
#, c-format
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s : commande \"%s\" reçue sans pseudo"
#, c-format
msgid "IRC raw messages | Filter: %s"
@@ -15718,32 +15722,3 @@ msgstr "%s%s : délai d'attente dépassé pour \"%s\" avec %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s : impossible de se connecter : erreur inattendue (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list : lister les extensions chargées\n"
#~ " listfull : lister les extensions chargées (verbeux)\n"
#~ " load : charger une extension\n"
#~ " autoload : charger automatiquement les extensions dans un répertoire "
#~ "système ou utilisateur\n"
#~ " reload : recharger une extension (si pas de nom donné, décharger "
#~ "toutes les extensions, puis recharger automatiquement les extensions)\n"
#~ " unload : décharger une extension (si pas de nom donné, décharger "
#~ "toutes les extensions)\n"
#~ " fichier : extension (fichier) à charger\n"
#~ " nom : nom d'extension\n"
#~ "paramètres : paramètres donnés à l'extension lors de son chargement\n"
#~ "\n"
#~ "Sans paramètre, cette commande liste les extensions chargées."
+18 -41
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: hu\n"
@@ -171,7 +171,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -8610,11 +8610,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
msgid "split an IRC message (to fit in 512 bytes by default)"
@@ -9180,21 +9182,22 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s[%s%s%s] %s%s%s-t kitiltotta "
#, fuzzy, c-format
msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s a \"%s\" modul nem található\n"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr ""
#, fuzzy, c-format
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s \"%s\" parancs érkezett hoszt megadása nélkül\n"
#, fuzzy, c-format
@@ -12785,29 +12788,3 @@ msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n"
#, fuzzy, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s DCC: nem sikerült kapcsolódni a küldőhöz\n"
#, fuzzy
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ "list: betöltött modulok listája\n"
#~ "listfull: betöltött modulok listája részletes információkkal együtt\n"
#~ "load: modul betöltése\n"
#~ "autoload: modulok automatikus betöltése a felhasználó vagy "
#~ "rendszerkönyvtárból\n"
#~ "reload: modul újratöltése (ha nincs név megadva, minden modul "
#~ "eltávolítása, majd automatikus modulbetöltés)\n"
#~ "unload: megadott vagy összes modul eltávolítása\n"
#~ "\n"
#~ "Paraméter nélkül a /plugin parancs listázza a betöltött modulokat."
+28 -47
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: it\n"
@@ -170,7 +170,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -9513,11 +9513,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\": tag, \"message_without_tags\": messaggio senza tag, \"nick\": "
"nick, \"host\": nome host, \"command\": comando, \"channel\": canale, "
@@ -10082,26 +10084,33 @@ msgstr "%s%s[%s%s%s] %s%s%s messo a tacere da %s%s %s(%s%s%s)"
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s invitato"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: comando \"%s\" non trovato:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
#, fuzzy, c-format
#| msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: impossibile verificare il comando \"%s\" (per favore segnalare agli "
"sviluppatori):"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%s%s: too few arguments received from client %s%s%s for command \"%s"
#| "\" (received: %d arguments, expected: at least %d)"
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: pochi argomenti ricevuti dal server IRC per il comando \"%s"
"\" (ricevuti: %d argomenti, attesi: %d come minimo)"
"%s%s: argomenti non sufficienti ricevuti dal client %s%s%s per il comando "
"\"%s\" (ricevuti: %d argomenti, attesi: %d almeno)"
#, c-format
msgid "%s%s: \"%s\" command received without host"
#, fuzzy, c-format
#| msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: comando \"%s\" ricevuto senza il nome host"
#, fuzzy, c-format
@@ -13805,31 +13814,3 @@ msgstr "%s%s: timeout per \"%s\" con %s"
#, fuzzy, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: impossibile connettersi al mittente"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: elenca i plugin caricati\n"
#~ " listfull: elenca i plugin caricati (dettagliato)\n"
#~ " load: carica un plugin\n"
#~ " autoload: carica automaticamente un plugin nella directory di sistema o "
#~ "utente\n"
#~ " reload: ricarica un plugin (se non specificato, scarica e poi ricarica "
#~ "tutti i plugin)\n"
#~ " unload: scarica un plugin (se non specificato, scarica tutti i plugin\n"
#~ " nomefile: plugin (file) da caricare\n"
#~ " nome: nome di un plugin\n"
#~ "argomenti: argomenti passati al plugin durante il caricamento\n"
#~ "\n"
#~ "Senza argomento, questo comando elenca i plugin caricati."
+28 -48
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
"translation/ja_JP>\n"
@@ -164,7 +164,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -10491,11 +10491,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\": タグ、\"message_without_tags\": タグを含まないメッセージ、\"nick"
"\": ニックネーム、\"host\": ホスト名、\"command\": コマンド、\"channel\": "
@@ -11063,24 +11065,31 @@ msgstr "%1$s%2$s[%3$s%4$s%5$s] %10$s が %6$s%7$s%8$s%9$s の発言を禁止し
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s の発言を禁止しました"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: コマンド \"%s\" が見つかりません:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
#, fuzzy, c-format
#| msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr "%s%s: コマンド \"%s\" の解析に失敗 (開発者に報告してください):"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%s%s: too few arguments received from client %s%s%s for command \"%s"
#| "\" (received: %d arguments, expected: at least %d)"
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: IRC サーバから受け取ったコマンド \"%s\" に引数が足りません (受け取った"
"引数の数: %d 個、期待される数: 最低 %d 個)"
"%s%s: クライアント %s%s%s から受け付けたコマンド \"%s\" に対する引数が足りま"
"せん (受信: %d 個の引数、必要数: 少なくとも %d 個)"
#, c-format
msgid "%s%s: \"%s\" command received without host"
#, fuzzy, c-format
#| msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: ホスト名を含めずに \"%s\" コマンドを受信"
#, fuzzy, c-format
@@ -14996,32 +15005,3 @@ msgstr "%s%s: \"%s\" のタイムアウト %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: 接続できません: 未定義のエラー (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: ロードされたプラグインをリストアップ\n"
#~ " listfull: ロードされたプラグインをリストアップ (詳細)\n"
#~ " load: プラグインをロード\n"
#~ " autoload: システムかユーザディレクトリ指定の自動ロードプラグインをロー"
#~ "ド\n"
#~ " reload: プラグインを再ロード (名前が指定されない場合は、全てのプラグイ"
#~ "ンをアンロードし、プラグインを自動ロード)\n"
#~ " unload: プラグインのアンロード (名前が指定されない場合は、全てのプラグ"
#~ "インをアンロード)\n"
#~ " filename: ロードするプラグイン (ファイル)\n"
#~ " name: プラグイン名\n"
#~ "arguments: ロードするプラグインに与える引数\n"
#~ "\n"
#~ "引数無しでは、ロードされたプラグインをリストアップ。"
+163 -332
View File
@@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-12 00:43+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
"Language: pl\n"
@@ -32,7 +32,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 2.4.2\n"
msgid "any string"
msgstr "dowolny ciąg"
@@ -165,7 +165,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -200,7 +200,8 @@ msgstr ""
" -P, --plugins <wtyczki> załaduj tylko te wtyczki przy starcie\n"
" (zobacz /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> wykonaj komendę(y) po uruchomieniu;\n"
" wiele komend może być oddzielone średnikami\n"
" wiele komend może być oddzielone średnikami i są "
"one przetwarzane,\n"
" ta opcja może zostać podana wiele razy\n"
" -s, --no-script nie ładuj skryptów przy starcie\n"
" --upgrade uaktualnia WeeChat używając plików sesji (zobacz /"
@@ -819,10 +820,8 @@ msgstr "Nie znaleziono wtyczki"
msgid " (no plugin)"
msgstr " (brak wtyczki)"
#, fuzzy
#| msgid "Plugins loaded:"
msgid "No plugins loaded"
msgstr "Załadowane wtyczki:"
msgstr "Brak załadowanych wtyczek"
msgid "List of proxies:"
msgstr "Lista proxy:"
@@ -1658,141 +1657,6 @@ msgstr ""
"[-n|-s] [-d] <wyrażenie> || [-n] [-d [-d]] -c <wyrażenie1> <operator> "
"<wyrażenie2>"
#, fuzzy
#| msgid ""
#| " -n: display result without sending it to buffer (debug mode)\n"
#| " -s: split expression before evaluating it (many commands can be "
#| "separated by semicolons)\n"
#| " -d: display debug output after evaluation (with two -d: more "
#| "verbose debug)\n"
#| " -c: evaluate as condition: use operators and parentheses, return "
#| "a boolean value (\"0\" or \"1\")\n"
#| "expression: expression to evaluate, variables with format ${variable} are "
#| "replaced (see below); many commands can be separated by semicolons\n"
#| " operator: a logical or comparison operator:\n"
#| " - logical operators:\n"
#| " && boolean \"and\"\n"
#| " || boolean \"or\"\n"
#| " - comparison operators:\n"
#| " == equal\n"
#| " != not equal\n"
#| " <= less or equal\n"
#| " < less\n"
#| " >= greater or equal\n"
#| " > greater\n"
#| " =~ is matching POSIX extended regex\n"
#| " !~ is NOT matching POSIX extended regex\n"
#| " ==* is matching mask, case sensitive (wildcard \"*\" is "
#| "allowed)\n"
#| " !!* is NOT matching mask, case sensitive (wildcard \"*\" "
#| "is allowed)\n"
#| " =* is matching mask, case insensitive (wildcard \"*\" "
#| "is allowed)\n"
#| " !* is NOT matching mask, case insensitive (wildcard \"*"
#| "\" is allowed)\n"
#| " ==- is included, case sensitive\n"
#| " !!- is NOT included, case sensitive\n"
#| " =- is included, case insensitive\n"
#| " !- is NOT included, case insensitive\n"
#| "\n"
#| "An expression is considered as \"true\" if it is not NULL, not empty, and "
#| "different from \"0\".\n"
#| "The comparison is made using floating point numbers if the two "
#| "expressions are valid numbers, with one of the following formats:\n"
#| " - integer (examples: 5, -7)\n"
#| " - floating point number (examples: 5.2, -7.5, 2.83e-2)\n"
#| " - hexadecimal number (examples: 0xA3, -0xA3)\n"
#| "To force a string comparison, you can add double quotes around each "
#| "expression, for example:\n"
#| " 50 > 100 ==> 0\n"
#| " \"50\" > \"100\" ==> 1\n"
#| "\n"
#| "Some variables are replaced in expression, using the format ${variable}, "
#| "variable can be, by order of priority:\n"
#| " 1. the string itself without evaluation (format: \"raw:xxx\")\n"
#| " 2. an evaluated sub-string (format: \"eval:xxx\")\n"
#| " 3. an evaluated condition (format: \"eval_cond:xxx\")\n"
#| " 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n"
#| " 5. a string with chars to hide (format: \"hide:char,string\")\n"
#| " 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:"
#| "+max,suffix,string\")\n"
#| " or max chars displayed on screen (format: \"cutscr:max,suffix,string"
#| "\" or \"cutscr:+max,suffix,string\")\n"
#| " 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n"
#| " 8. a repeated string (format: \"repeat:count,string\")\n"
#| " 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n"
#| " 10. a color (format: \"color:xxx\", see \"Plugin API reference\", "
#| "function \"color\")\n"
#| " 11. a modifier (format: \"modifier:name,data,string\")\n"
#| " 12. an info (format: \"info:name,arguments\", arguments are optional)\n"
#| " 13. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,"
#| "xxx\" or \"base_decode:base,xxx\")\n"
#| " 14. current date/time (format: \"date\" or \"date:format\")\n"
#| " 15. an environment variable (format: \"env:XXX\")\n"
#| " 16. a ternary operator (format: \"if:condition?value_if_true:"
#| "value_if_false\")\n"
#| " 17. result of an expression with parentheses and operators + - * / // % "
#| "** (format: \"calc:xxx\")\n"
#| " 18. a translated string (format: \"translate:xxx\")\n"
#| " 19. an option (format: \"file.section.option\")\n"
#| " 20. a local variable in buffer\n"
#| " 21. a hdata name/variable (the value is automatically converted to "
#| "string), by default \"window\" and \"buffer\" point to current window/"
#| "buffer.\n"
#| "Format for hdata can be one of following:\n"
#| " hdata.var1.var2...: start with a hdata (pointer must be known), and ask "
#| "variables one after one (other hdata can be followed)\n"
#| " hdata[list].var1.var2...: start with a hdata using a list/pointer/"
#| "pointer name, for example:\n"
#| " ${buffer[gui_buffers].full_name}: full name of first buffer in linked "
#| "list of buffers\n"
#| " ${plugin[weechat_plugins].name}: name of first plugin in linked list "
#| "of plugins\n"
#| " hdata[pointer].var1.var2...: start with a hdata using a pointer, for "
#| "example:\n"
#| " ${buffer[0x1234abcd].full_name}: full name of the buffer with this "
#| "pointer (can be used in triggers)\n"
#| " ${buffer[my_pointer].full_name}: full name of the buffer with this "
#| "pointer name (can be used in triggers)\n"
#| "For name of hdata and variables, please look at \"Plugin API reference\", "
#| "function \"weechat_hdata_get\".\n"
#| "\n"
#| "Examples (simple strings):\n"
#| " /eval -n ${raw:${info:version}} ==> ${info:version}\n"
#| " /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n"
#| " /eval -n ${info:version} ==> 0.4.3\n"
#| " /eval -n ${env:HOME} ==> /home/user\n"
#| " /eval -n ${weechat.look.scroll_amount} ==> 3\n"
#| " /eval -n ${sec.data.password} ==> secret\n"
#| " /eval -n ${window} ==> 0x2549aa0\n"
#| " /eval -n ${window.buffer} ==> 0x2549320\n"
#| " /eval -n ${window.buffer.full_name} ==> core.weechat\n"
#| " /eval -n ${window.buffer.number} ==> 1\n"
#| " /eval -n ${\\t} ==> <tab>\n"
#| " /eval -n ${hide:-,${relay.network.password}} ==> --------\n"
#| " /eval -n ${cut:3,+,test} ==> tes+\n"
#| " /eval -n ${cut:+3,+,test} ==> te+\n"
#| " /eval -n ${date:%H:%M:%S} ==> 07:46:40\n"
#| " /eval -n ${if:${info:term_width}>80?big:small} ==> big\n"
#| " /eval -n ${rev:Hello} ==> olleH\n"
#| " /eval -n ${repeat:5,-} ==> -----\n"
#| " /eval -n ${length:test} ==> 4\n"
#| " /eval -n ${calc:(5+2)*3} ==> 21\n"
#| " /eval -n ${base_encode:64,test} ==> dGVzdA==\n"
#| " /eval -n ${base_decode:64,dGVzdA==} ==> test\n"
#| " /eval -n ${translate:Plugin} ==> Extension\n"
#| "\n"
#| "Examples (conditions):\n"
#| " /eval -n -c ${window.buffer.number} > 2 ==> 0\n"
#| " /eval -n -c ${window.win_width} > 100 ==> 1\n"
#| " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n"
#| " /eval -n -c (8 > 12) && (5 > 2) ==> 0\n"
#| " /eval -n -c abcd =~ ^ABC ==> 1\n"
#| " /eval -n -c abcd =~ (?-i)^ABC ==> 0\n"
#| " /eval -n -c abcd =~ (?-i)^abc ==> 1\n"
#| " /eval -n -c abcd !~ abc ==> 0\n"
#| " /eval -n -c abcd =* a*d ==> 1\n"
#| " /eval -n -c abcd =- bc ==> 1"
msgid ""
" -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be "
@@ -1993,34 +1857,39 @@ msgstr ""
"Niektóre zmienne w wyrażeniach są zamieniane, poprzez zastosowanie formatu "
"${zmienna}, według priorytetu zmienną może być:\n"
" 1. nieprzetworzony ciąg (format: \"raw:xxx\")\n"
" 2. przetworzony ciąg (format: \"eval:xxx\")\n"
" 3. przetworzony warunek (format: \"eval_cond:xxx\")\n"
" 4. ciąg z wyescapowanymi znakami (format: \"esc:xxx\" lub \"\\xxx\")\n"
" 5. ciąg ze znakami do ukrycia (format: \"hide:char,string\")\n"
" 6. ciąg o maksymalnej długości (format: \"cut:max,suffix,string\" lub "
" 2. zmienna zdefiniowana przez użytkownika (format: \"name\")\n"
" 3. przetworzony ciąg (format: \"eval:xxx\")\n"
" 4. przetworzony warunek (format: \"eval_cond:xxx\")\n"
" 5. ciąg z wyescapowanymi znakami (format: \"esc:xxx\" lub \"\\xxx\")\n"
" 6. ciąg ze znakami do ukrycia (format: \"hide:char,string\")\n"
" 7. ciąg o maksymalnej długości (format: \"cut:max,suffix,string\" lub "
"\"cut:+max,suffix,string\")\n"
" lub maksymalna ilość znaków wyświetlanych na ekranie (format: \"cutscr:"
"max,suffix,string\" lub \"cutscr:+max,suffix,string\")\n"
" 7. odwrócony ciąg (format: \"rev:xxx\")\n"
" 8. powtórzony ciąg (format: \"repeat:ilość,ciąg\")\n"
" 9. długość ciągu (format: \"length:xxx\" or \"lengthscr:xxx\")\n"
" 10. kolor (format \"color:xxx\", zobacz „Opis API wtyczek”, funkcja \"color"
" 8. odwrócony ciąg (format: \"rev:xxx\")\n"
" 9. powtórzony ciąg (format: \"repeat:ilość,ciąg\")\n"
" 10. długość ciągu (format: \"length:xxx\" or \"lengthscr:xxx\")\n"
" 11. podział ciągu (format: \"split:number,separators,flags,xxx\")\n"
" 12. podział argumentów powłoki (format: \"split_shell:number,xxx\")\n"
" 13. kolor (format \"color:xxx\", zobacz „Opis API wtyczek”, funkcja \"color"
"\")\n"
" 11. modyfikator (format: \"modifier:name,data,string\")\n"
" 12. informacja (format: \"info:nazwa,argumenty\", argumenty są "
" 14. modyfikator (format: \"modifier:name,data,string\")\n"
" 15. informacja (format: \"info:nazwa,argumenty\", argumenty są "
"opcjonalne)\n"
" 13. ciąg zakodowany/zdekodowany z base 16/32/64 (format: \"base_encode:"
" 16. ciąg zakodowany/zdekodowany z base 16/32/64 (format: \"base_encode:"
"base,xxx\" lub \"base_decode:base,xxx\")\n"
" 14. obecna data/czas (format: \"date\" lub \"date:format\")\n"
" 15. zmienna środowiskowa (format: \"env:XXX\")\n"
" 16. wyrażenie warunkowe (format: \"if:condition?value_if_true:"
"value_if_false\")\n"
" 17. wynik wyrażenia z nawiasami i operatorami + - * / // % ** (format: "
" 17. obecna data/czas (format: \"date\" lub \"date:format\")\n"
" 18. zmienna środowiskowa (format: \"env:XXX\")\n"
" 19. wyrażenie warunkowe (format: \"if:warunek?wartość_jeśli_prawda:"
"wartość_jeśli_fałsz\")\n"
" 20. wynik wyrażenia z nawiasami i operatorami + - * / // % ** (format: "
"\"calc:xxx\")\n"
" 18. przetłumaczony ciąg (format: \"translate:xxx\")\n"
" 19. opcja (format: plik.sekcja.opcja)\n"
" 20. zmienna lokalna w buforze\n"
" 21. nazwa hdatay/zmiennej (wartość jest automatycznie konwertowana na ciąg "
" 21. losowa liczba całkowita (format: \"random:min,max\")\n"
" 22. przetłumaczony ciąg (format: \"translate:xxx\")\n"
" 23. definiowanie zmiennej użytkownika (format: \"define:nazwa,wartość\")\n"
" 24. opcja (format: plik.sekcja.opcja)\n"
" 25. zmienna lokalna w buforze\n"
" 26. nazwa hdatay/zmiennej (wartość jest automatycznie konwertowana na ciąg "
"znaków), domyślnie „window” i „buffer” wskazują na aktualne okno/bufor.\n"
"Format dla hdata może być jednym z poniższych:\n"
" hdata.zmienna1.zmienna2...: inicjuje hdata (wskaźnik musi być znany), "
@@ -2060,10 +1929,20 @@ msgstr ""
" /eval -n ${rev:Hello} ==> olleH\n"
" /eval -n ${repeat:5,-} ==> -----\n"
" /eval -n ${length:test} ==> 4\n"
" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n"
" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n"
" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n"
" /eval -n ${split:random,,,abc,def,ghi} ==> def\n"
" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n"
" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n"
" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n"
" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n"
" /eval -n ${calc:(5+2)*3} ==> 21\n"
" /eval -n ${random:0,10} ==> 3\n"
" /eval -n ${base_encode:64,test} ==> dGVzdA==\n"
" /eval -n ${base_decode:64,dGVzdA==} ==> test\n"
" /eval -n ${translate:Plugin} ==> Wtyczka\n"
" /eval -n ${random:0,10} ==> 3\n"
"\n"
"Przykłady (warunki):\n"
" /eval -n -c ${window.buffer.number} > 2 ==> 0\n"
@@ -2271,69 +2150,6 @@ msgstr "funkcje linii komend"
msgid "<action> [<arguments>]"
msgstr "<akcja> [<argumenty>]"
#, fuzzy
#| msgid ""
#| "list of actions:\n"
#| " return: simulate key \"enter\"\n"
#| " complete_next: complete word with next completion\n"
#| " complete_previous: complete word with previous completion\n"
#| " search_text_here: search text in buffer at current position\n"
#| " search_text: search text in buffer\n"
#| " search_switch_case: switch exact case for search\n"
#| " search_switch_regex: switch search type: string/regular expression\n"
#| " search_switch_where: switch search in messages/prefixes\n"
#| " search_previous: search previous line\n"
#| " search_next: search next line\n"
#| " search_stop_here: stop search at current position\n"
#| " search_stop: stop search\n"
#| " delete_previous_char: delete previous char\n"
#| " delete_next_char: delete next char\n"
#| " delete_previous_word: delete previous word\n"
#| " delete_next_word: delete next word\n"
#| " delete_beginning_of_line: delete from beginning of line until cursor\n"
#| " delete_end_of_line: delete from cursor until end of line\n"
#| " delete_line: delete entire line\n"
#| " clipboard_paste: paste from the internal clipboard\n"
#| " transpose_chars: transpose two chars\n"
#| " undo: undo last command line action\n"
#| " redo: redo last command line action\n"
#| " move_beginning_of_line: move cursor to beginning of line\n"
#| " move_end_of_line: move cursor to end of line\n"
#| " move_previous_char: move cursor to previous char\n"
#| " move_next_char: move cursor to next char\n"
#| " move_previous_word: move cursor to previous word\n"
#| " move_next_word: move cursor to next word\n"
#| " history_previous: recall previous command in current buffer history\n"
#| " history_next: recall next command in current buffer history\n"
#| " history_global_previous: recall previous command in global history\n"
#| " history_global_next: recall next command in global history\n"
#| " jump_smart: jump to next buffer with activity\n"
#| " jump_last_buffer_displayed: jump to last buffer displayed (before last "
#| "jump to a buffer)\n"
#| " jump_previously_visited_buffer: jump to previously visited buffer\n"
#| " jump_next_visited_buffer: jump to next visited buffer\n"
#| " hotlist_clear: clear hotlist (optional argument: \"lowest\" to clear "
#| "only lowest level in hotlist, \"highest\" to clear only highest level in "
#| "hotlist, or level mask: integer which is a combination of 1=join/part, "
#| "2=message, 4=private, 8=highlight)\n"
#| " grab_key: grab a key (optional argument: delay for end of grab, default "
#| "is 500 milliseconds)\n"
#| " grab_key_command: grab a key with its associated command (optional "
#| "argument: delay for end of grab, default is 500 milliseconds)\n"
#| " grab_mouse: grab mouse event code\n"
#| " grab_mouse_area: grab mouse event code with area\n"
#| " set_unread: set unread marker for all buffers\n"
#| " set_unread_current_buffer: set unread marker for current buffer\n"
#| " switch_active_buffer: switch to next merged buffer\n"
#| " switch_active_buffer_previous: switch to previous merged buffer\n"
#| " zoom_merged_buffer: zoom on merged buffer\n"
#| " insert: insert text in command line (escaped chars are allowed, see /"
#| "help print)\n"
#| " send: send text to the buffer\n"
#| " paste_start: start paste (bracketed paste mode)\n"
#| " paste_stop: stop paste (bracketed paste mode)\n"
#| "\n"
#| "This command is used by key bindings or plugins."
msgid ""
"list of actions:\n"
" return: simulate key \"enter\"\n"
@@ -2447,6 +2263,11 @@ msgstr ""
"najniższy poziom na hotliście, \"highest\" czyści najwyższy poziom na "
"hotliście, albo maska poziomu: liczba będąca kombinacją 1=join/part, "
"2=wiadomość, 4=prywatny, 8=podświetlenie)\n"
" hotlist_remove_buffer: usuwa obecny bufor z hotlisty\n"
" hotlist_restore_buffer: przywraca ostatnią usuniętą hotlistę w obecnym "
"buforze\n"
" hotlist_restore_all: przywraca ostatnią usuniętą hotlistę we wszystkich "
"buforach\n"
" grab_key: przechwytuje klawisz (opcjonalny argument: opóźnienie końca "
"przechwycenia, domyślnie jest to 500 milisekund)\n"
" grab_key_command: przechwytuje klawisz z przypisaną komendą (opcjonalny "
@@ -2730,17 +2551,14 @@ msgstr ""
msgid "list/load/unload plugins"
msgstr "lista/załaduj/wyładuj wtyczkę"
#, fuzzy
#| msgid ""
#| "list|listfull [<name>] || load <filename> [<arguments>] || autoload "
#| "[<arguments>] || reload [<name>|* [<arguments>]] || unload [<name>]"
msgid ""
"list [-o|-ol|-i|-il|<name>] || listfull [<name>] || load <filename> "
"[<arguments>] || autoload [<arguments>] || reload [<name>|* [<arguments>]] "
"|| unload [<name>]"
msgstr ""
"list|listfull [<nazwa>] || load <nazwapliku> [<argumenty>] || autoload "
"[<argumenty>] || reload [<nazwa>|* [<argumenty>]] || unload [<nazwa>]"
"list [-o|-ol|-i|-il|<nazwa>] || listfull [<nazwa>] || load <nazwapliku> "
"[<argumenty>] || autoload [<argumenty>] || reload [<nazwa>|* [<argumenty>]] "
"|| unload [<nazwa>]"
msgid ""
" list: list loaded plugins\n"
@@ -2762,6 +2580,26 @@ msgid ""
"\n"
"Without argument, this command lists loaded plugins."
msgstr ""
" list: lista załadowanych wtyczek\n"
" -o: wyślij listę załadowanych wtyczek do bufora (ciąg po angielsku)\n"
" -ol: wyślij listę załadowanych wtyczek do bufora (przetłumaczony "
"ciąg)\n"
" -i: skopiuj listę załadowanych wtyczek do linii poleceń (do wysłania "
"do bufora) (ciąg po angielsku)\n"
" -il: skopiuj listę załadowanych wtyczek do linii poleceń (do wysłania "
"do bufora) (przetłumaczony ciąg)\n"
" nazwa: nazwa wtyczki\n"
" listfull: lista załadowanych wtyczek (ze szczegółami)\n"
" load: załaduj wtyczkę\n"
" nazwa_pliku: wtyczka (plik) do załadowania\n"
"argumenty: argumenty przekazywane do wtyczki przy ładowaniu\n"
" autoload: automatycznie ładuj wtyczki z katalogu systemowego lub "
"użytkownika\n"
" reload: przeładuj wtyczkę (bez podania nazwy wyładuje wszystkie wtyczki, "
"następnie załaduje te ładowane automatycznie)\n"
" unload: wyłącza wtyczkę (bez podania nazwy wyłącza wszystkie wtyczki)\n"
"\n"
"Bez argumentów polecenie pokaże listę załadowanych wtyczek."
msgid "display text on a buffer"
msgstr "wyświetl tekst w buforze"
@@ -3218,15 +3056,11 @@ msgstr ""
" kasuje zmienną środowiskową ABC:\n"
" /set env ABC \"\""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
msgstr "wartości opcji konfiguracyjnych"
msgstr "przełącza wartość opcji konfiguracyjnej"
#, fuzzy
#| msgid "[<file> [<file>...]]"
msgid "<option> [<value> [<value>...]]"
msgstr "[<plik> [<plik>...]]"
msgstr "<opcja> [<wartość> [<wartość>...]]"
msgid ""
"option: name of an option\n"
@@ -3258,6 +3092,35 @@ msgid ""
" toggle autojoin of #weechat channel on libera server:\n"
" /toggle irc.server.libera.autojoin null #weechat"
msgstr ""
"opcja: nazwa opcji\n"
" vartość: możliwe wartości dla opcji (wartości są dzielone jak argumenty "
"komendy powłoki: można użyć cudzysłowów żeby zachować spacje na początku/"
"końcu wartości)\n"
"\n"
"Zachowanie:\n"
" - tylko opcje typu boolowskiego lub ciągi mogą być przełączane bez "
"wartości:\n"
" - boolowskie: przełączanie pomiędzy włączony/wyłączony zgodnie z "
"obecną wartością\n"
" - ciąg: przełącza między pustym ciągiem a domyślną wartością (działa "
"tylko jeśli pusty ciąg może być użyty jako wartość opcji)\n"
" - jeśli podano pojedynczą wartość, przełącza między nią a wartością "
"domyślną dla danej opcji\n"
" - jeśli podano wiele wartości, przełącza pomiędzy nimi; użyta wartość jest "
"jedną z obecnych wartości dla opcji; jeśli obecna wartość nie znajduje się "
"na liście, użyta zostanie pierwsza wartość z listy\n"
" - specjalna wartość \"null\" może zostać podana, ale tylko jako pierwsza "
"wartość na liście, bez cudzysłowów.\n"
"\n"
"Przykłady:\n"
" przełącza wyświetlanie czasu w obszarze czatu (bez wyświetlania nowej, "
"użytej wartości):\n"
" /mute /toggle weechat.look.buffer_time_format\n"
" przełącza format czasu w obszarze czatu (z sekundami, bez sekund, "
"wyłączone):\n"
" /toggle weechat.look.buffer_time_format \"%H:%M:%S\" \"%H:%M\" \"\"\n"
" przełącza automatyczne dołączenie do kanału #weechat na serwerze libera:\n"
" /toggle irc.server.libera.autojoin null #weechat"
msgid "unset/reset config options"
msgstr "skasuj/zresetuj zmienną konfiguracyjną"
@@ -8119,43 +7982,13 @@ msgstr "cel: nazwa serwera"
msgid "execute a command on all channels of all connected servers"
msgstr "wykonuje komendę na wszystkich kanałach na połączonych serwerach"
#, fuzzy
#| msgid ""
#| "[-current] [-exclude=<channel>[,<channel>...]] <command> || [-current] -"
#| "include=<channel>[,<channel>...] <command>"
msgid ""
"[-current] [-parted] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted] -include=<channel>[,<channel>...] <command>"
msgstr ""
"[-current] [-exclude=<kanał>[,<kanał>...]] <komenda> || [-current] -"
"include=<kanał>[,<kanał>...] <komenda>"
"[-current] [-parted] [-exclude=<kanał>[,<kanał>...]] <komenda> || [-current] "
"[-parted] -include=<kanał>[,<kanał>...] <komenda>"
#, fuzzy
#| msgid ""
#| " -current: execute command for channels of current server only\n"
#| " -exclude: exclude some channels (wildcard \"*\" is allowed)\n"
#| " -include: include only some channels (wildcard \"*\" is allowed)\n"
#| " command: command to execute (or text to send to buffer if command does "
#| "not start with '/')\n"
#| "\n"
#| "Command and arguments are evaluated (see /help eval), the following "
#| "variables are replaced:\n"
#| " $server server name\n"
#| " $channel channel name\n"
#| " $nick nick on server\n"
#| " ${irc_server.xxx} variable xxx in server\n"
#| " ${irc_channel.xxx} variable xxx in channel\n"
#| "\n"
#| "Examples:\n"
#| " execute '/me is testing' on all channels:\n"
#| " /allchan /me is testing\n"
#| " say 'hello' everywhere but not on #weechat:\n"
#| " /allchan -exclude=#weechat hello\n"
#| " say 'hello' everywhere but not on #weechat and channels beginning with "
#| "#linux:\n"
#| " /allchan -exclude=#weechat,#linux* hello\n"
#| " say 'hello' on all channels beginning with #linux:\n"
#| " /allchan -include=#linux* hello"
msgid ""
" -current: execute command for channels of current server only\n"
" -parted: execute on parted channels only\n"
@@ -8186,6 +8019,7 @@ msgid ""
" /allchan -parted /close"
msgstr ""
" -current: wykonuje komendę tylko na kanałach obecnego serwera\n"
" -parted: wykonaj tylko na opuszczonych kanałach\n"
" -exclude: wyklucza niektóre kanały (wildcard \"*\" jest dozwolony)\n"
" -include: uwzględnia tylko niektóre znaki (wildcard \"*\" est dozwolony)\n"
" komenda: komenda do wykonania (albo tekst do wysłania do bufora jeśli "
@@ -8208,7 +8042,9 @@ msgstr ""
"#linux:\n"
" /allchan -exclude=#weechat,#linux* witam\n"
" wysyła 'witam' na wszytkich kanałach zaczynających się od #linux:\n"
" /allchan -include=#linux* witam"
" /allchan -include=#linux* witam\n"
" zamyka wszystkie bufory opuszczonych kanałów:\n"
" /allchan -parted /close"
msgid "execute a command on all private buffers of all connected servers"
msgstr ""
@@ -10500,12 +10336,18 @@ msgid ""
"look.enabled_nicks must be enabled and capability \"message-tags\" must be "
"enabled on the server)"
msgstr ""
"wyświetlaj nicki osób, które coś piszą w elemencie paska \"typing\" (opcja "
"typing.look.enabled_nicks musi zostać włączona i opcja \"message-tags\" musi "
"być wspierana przez serwer)"
msgid ""
"send self typing status to channels so that other users see when you are "
"typing a message (option typing.look.enabled_self must be enabled and "
"capability \"message-tags\" must be enabled on the server)"
msgstr ""
"wyślij status pisania do kanałów tak, że inni użytkownicy będą mogli "
"zobaczyć, kiedy piszesz wiadomość (opcja typing.look.enabled_self musi "
"zostać włączona i opcja \"message-tags\" musi być wspierana przez serwer)"
msgid ""
"merge server buffers; this option has no effect if a layout is saved and is "
@@ -10897,22 +10739,26 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\": tagi, \"tag_xxx\": niewyescapowana wartość tagu \"xxx\" (jeden "
"klucz per tag), \"message_without_tags\": wiadomość bez tagów, \"nick\": "
"nick, \"user\": użytkownik, \"host\": host, \"command\": komenda, \"channel"
"\": kanał, \"arguments\": argumenty (razem z kanałem), \"text\": tekst (na "
"przykład wiadomość użytkownika), \"pos_command\": indeks wiadomości \"command"
"\" (\"-1\" jeśli \"command\" nie zostało znalezione), \"pos_arguments\": "
"indeks wiadomości \"arguments\" (\"-1\" jeśli \"arguments\" nie zostało "
"znalezione), \"pos_channel\": indeks wiadomości \"channel\" (\"-1\" jeśli "
"\"channel\" nie zostało znalezione), \"pos_text\": indeks słowa \"text"
"\" (\"-1\" jeśli \"text\" nie zostało znalezione)"
"przykład wiadomość użytkownika), \"param1\" ... \"paramN\": sparsaowane "
"parametry komendy, \"num_params\": ilość sparsowanych parametrów komendy, "
"\"pos_command\": indeks wiadomości \"command\" (\"-1\" jeśli \"command\" nie "
"zostało znalezione), \"pos_arguments\": indeks wiadomości \"arguments"
"\" (\"-1\" jeśli \"arguments\" nie zostało znalezione), \"pos_channel\": "
"indeks wiadomości \"channel\" (\"-1\" jeśli \"channel\" nie zostało "
"znalezione), \"pos_text\": indeks słowa \"text\" (\"-1\" jeśli \"text\" nie "
"zostało znalezione)"
msgid "split an IRC message (to fit in 512 bytes by default)"
msgstr "dziel wiadomość IRC (aby zmieściła się domyślnie w 512 bajtach)"
@@ -11211,15 +11057,13 @@ msgstr "%s%s%s%s%s%s%s%s%s%s wyszedł z IRC %s(%s%s%s)"
msgid "%s%s%s%s%s%s%s%s%s%s has quit"
msgstr "%s%s%s%s%s%s%s%s%s%s wyszedł z IRC"
#, fuzzy, c-format
#| msgid "%sReal name set to: %s"
#, c-format
msgid "%sYour real name has been set to \"%s\""
msgstr "%sUstawiono real name na: %s"
msgstr "%sUstawiono twój real name na \"%s\""
#, fuzzy, c-format
#| msgid "%sReal name set to: %s"
#, c-format
msgid "%sReal name of %s%s%s has been set to \"%s\""
msgstr "%sUstawiono real name na: %s"
msgstr "%sReal name dla %s%s%s zostało zmienione na \"%s\""
#, c-format
msgid "%s%s: \"%s\" command received without channel"
@@ -11468,24 +11312,26 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s uciszony"
#, c-format
msgid "%s%s: command \"%s\" not found:"
msgstr "%s%s: nie znaleziono komendy \"%s\":"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr "%s%s: nie udało się wykonać komendy \"%s\" (zgłoś problem autorom):"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: komenda \"%s\" nie została znaleziona: \"%s\""
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: pozyskano za mało argumentów od serwera IRC dla komendy \"%s"
"\" (otrzymano: %d argumentów, spodziewano się przynajmniej %d)"
"%s%s: nie udało się sparsować komendy \"%s\" (zgłoś problem twórcą): \"%s\""
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgstr "%s%s: \"%s\" komenda otrzymana bez hosta"
msgid ""
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: otrzymano za mało argumentów dla komendy \"%s\" (otrzymano: %d, "
"spodziewano się: przynajmniej %d)"
#, c-format
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: komenda \"%s\" otrzymana bez nicka"
#, c-format
msgid "IRC raw messages | Filter: %s"
@@ -15017,42 +14863,56 @@ msgid "text color for disabled trigger name"
msgstr "kolor tekstu dla nazwy wyłączonego triggera"
msgid "Typing status of users"
msgstr ""
msgstr "Status pisania użytkowników"
#. TRANSLATORS: this text is displayed before the list of nicks typing in the bar item "typing", it must be as short as possible
msgid "Typing:"
msgstr ""
msgstr "Typing:"
msgid ""
"number of seconds after paused status has been set: if reached, the typing "
"status is removed"
msgstr ""
"ilość sekund po ustawieniu statusu pauzy: jeśli osiągnięty, status pisania "
"zostaje usunięty"
msgid ""
"number of seconds after typing status has been set: if reached, the typing "
"status is removed"
msgstr ""
"ilość sekund po ustawieniu statusu o pisaniu: jeśli osiągnięte, status "
"pisania zostaje usunięty"
msgid ""
"number of seconds after typing last char: if reached, the typing status "
"becomes \"paused\" and no more typing signals are sent"
msgstr ""
"ilość sekund po napisaniu ostatniego znaku: jeśli osiągnięte, status pisania "
"zmieni się na \"paused\" i kolejne sygnały nie będą wysyłane"
msgid ""
"typing enabled for other nicks (display typing info for nicks typing in the "
"current buffer)"
msgstr ""
"powiadomienia o pisaniu przez innych włączone (wyświetlaj informacje o tym "
"że inne osoby piszą coś w obecnym buforze)"
msgid "typing enabled for self messages (send typing info to other users)"
msgstr ""
"wysylanie informacji o pisaniu włączone (wysyłaj tą informację do innych "
"użytkowników)"
msgid "min number of chars in message to trigger send of typing signals"
msgstr ""
"minimalna ilość znaków w wiadomości po której zostaną wysłane sygnały o "
"pisaniu wiadomości"
msgid ""
"max number of chars displayed in the bar item \"typing\" (0 = do not "
"truncate content)"
msgstr ""
"maksymalna ilość znaków wyświetlana w elemencie paska \"typing\" (0 = nie "
"ograniczaj zawartości)"
msgid " [A] Accept"
msgstr " [A] Akceptuj"
@@ -15505,32 +15365,3 @@ msgstr "%s%s: przekroczono czas na \"%s\" z %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: nie można połączyć: niespodziewany błąd (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: lista załadowanych wtyczek\n"
#~ "listfull: lista załadowanych wtyczek (szczegółowa)\n"
#~ " load: ładuje wtyczkę\n"
#~ "autoload: automatycznie ładuje wtyczki w katalogu systemowym lub "
#~ "użytkownika\n"
#~ " reload: przeładuje pojedynczą wtyczkę (jeśli nie podano nazwy, "
#~ "przeładuje wszystkie wtyczki)\n"
#~ " unload: wyładowuje wtyczkę (jeśli nie podano nazwy, wyładuje wszystkie "
#~ "wtyczkę\n"
#~ "nazwapliku: wtyczka (plik) do załadowania\n"
#~ " nazwa: nazwa wtyczki\n"
#~ "argumenty: argumenty przekazywane do wtyczki podczas ładowania\n"
#~ "\n"
#~ "Bez argumentów ta komenda wyświetli wszystkie załadowane wtyczki."
+27 -47
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese <>\n"
"Language: pt\n"
@@ -165,7 +165,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -10304,11 +10304,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"tags\": tags, \"message_without_tags\": mensagem sem as tags, \"nick\": "
"nick, \"host\": anfitrião, \"command\": comando, \"channel\": canal, "
@@ -10874,26 +10876,33 @@ msgstr "%s%s[%s%s%s] %s%s%s silenciado por %s"
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s silenciado"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: comando \"%s\" não encontrado:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
#, fuzzy, c-format
#| msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: falha ao analisar o comando \"%s\" (por favor reporte aos "
"desenvolvedores):"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%s%s: too few arguments received from client %s%s%s for command \"%s"
#| "\" (received: %d arguments, expected: at least %d)"
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: argumentos insuficientes recebidos do servidor IRC pelo comando \"%s"
"%s%s: argumentos insuficientes recebidos do cliente %s%s%s pelo comando \"%s"
"\" (recebido: %d argumentos, esperado: pelo menos %d)"
#, c-format
msgid "%s%s: \"%s\" command received without host"
#, fuzzy, c-format
#| msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: comando \"%s\" recebido sem host"
#, fuzzy, c-format
@@ -14844,32 +14853,3 @@ msgstr "%s%s: tempo limite de \"%s\" com %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: não foi possível conectar: erro inesperado (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: listar os plugins carregados\n"
#~ " listfull: listar os plugins carregados (verboso)\n"
#~ " load: carregar um plugin\n"
#~ " autoload: carregar plugins do sistema ou do diretório do utilizador "
#~ "automaticamente\n"
#~ " reload: recarregar um plugin (se não indicar nenhum nome, descarregar "
#~ "todos os plugins, e carregá-los automaticamente)\n"
#~ " unload: descarregar um plugin (se não indicar nenhum nome, "
#~ "descarregar todos os plugins)\n"
#~ " ficheiro: o plugin (ficheiro) a carregar\n"
#~ " nome: um nome de um plugin\n"
#~ "argumentos: argumentos passados ao plugin ao carregá-lo\n"
#~ "\n"
#~ "Sem argumentos, este comando lista os plugins carregados."
+24 -46
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: pt_BR\n"
@@ -191,7 +191,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -9055,11 +9055,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"\"nick\": apelido, \"host\": host, \"command\": comando, \"channel\": canal, "
"\"arguments\": argumentos (inclui canal)"
@@ -9616,26 +9618,30 @@ msgstr "%s%s[%s%s%s] %s%s%s convidado por %s%s %s(%s%s%s)"
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s convidado por %s%s %s(%s%s%s)"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: comando \"%s\" não encontrando:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
#, fuzzy, c-format
#| msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: falha ao interpretar comando \"%s\" (por favor, reporte aos "
"desenvolvedores):"
#, c-format
#, fuzzy, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: argumentos insuficientes recebidos do servidor IRC para o comando \"%s"
"%s%s: argumentos insuficientes recebidos do cliente %d para o comando \"%s"
"\" (recebidos: %d argumentos, esperados: ao menos %d)"
#, c-format
msgid "%s%s: \"%s\" command received without host"
#, fuzzy, c-format
#| msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: \"%s\" comando recebido sem host"
#, c-format
@@ -13271,31 +13277,3 @@ msgstr "%s%s: tempo esgotado para \"%s\" com %s"
#, fuzzy, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: não foi possível conectar ao remetente"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: lista plugins carregados\n"
#~ " listfull: lista plugins carregados (detalhadamente)\n"
#~ " load: carrega um plugin\n"
#~ " autoload: carrega automaticamente os plugins nos diretórios do sistema "
#~ "ou do usuário\n"
#~ " reload: recarrega um plugin (se nenhum nome for fornecido, descarrega "
#~ "todos os plugins, então realiza autoload nos plugins)\n"
#~ " unload: descarrega um ou todos os plugins\n"
#~ " filename: plugin (arquivo) a ser carregado\n"
#~ " name: o nome de um plugin\n"
#~ "arguments: argumentos passados ao plugin no carregamento\n"
#~ "\n"
#~ "Sem argumentos, este comando lista plugins carregados."
+18 -41
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-03 12:02+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: ru\n"
@@ -179,7 +179,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -8648,11 +8648,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
msgid "split an IRC message (to fit in 512 bytes by default)"
@@ -9223,21 +9225,22 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s[%s%s%s] %s%s%s забанен пользователем "
#, fuzzy, c-format
msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s plugin \"%s\" не найден\n"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr ""
#, fuzzy, c-format
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
#, fuzzy, c-format
msgid "%s%s: \"%s\" command received without host"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s \"%s\" команда получена без хоста\n"
#, fuzzy, c-format
@@ -12820,29 +12823,3 @@ msgstr "%s нет аргумента для параметра \"%s\"\n"
#, fuzzy, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s DCC: не могу соединиться с отправителем\n"
#, fuzzy
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: перечислить загруженные pluginы\n"
#~ "listfull: перечислить загруженные pluginы с дополнительной информацией\n"
#~ " load: загрузить plugin\n"
#~ "autoload: автоматическая загрузка pluginов из системной или "
#~ "пользовательской директории\n"
#~ " reload: перезагрузить plugin (если имя не задано выгружает все pluginы "
#~ "и загружает автоматически загружаемые)\n"
#~ " unload: выгружает один или все pluginы\n"
#~ "\n"
#~ "Команда /plugin без аргументов перечисляет загруженные pluginы."
+145 -253
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"PO-Revision-Date: 2021-09-01 02:38+0400\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-12-13 13:14+0400\n"
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: sr\n"
@@ -162,7 +162,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -814,10 +814,8 @@ msgstr "Није пронађен ниједан додатак"
msgid " (no plugin)"
msgstr " (нема додатка)"
#, fuzzy
#| msgid "Plugins loaded:"
msgid "No plugins loaded"
msgstr "Учитани додаци:"
msgstr "Није учитан ниједан додатак"
msgid "List of proxies:"
msgstr "Листа проксија:"
@@ -1643,143 +1641,6 @@ msgid ""
"<expression2>"
msgstr "[-n|-s] [-d] <израз> || [-n] [-d [-d]] -c <израз1> <оператор> <израз2>"
#, fuzzy
#| msgid ""
#| " -n: display result without sending it to buffer (debug mode)\n"
#| " -s: split expression before evaluating it (many commands can be "
#| "separated by semicolons)\n"
#| " -d: display debug output after evaluation (with two -d: more "
#| "verbose debug)\n"
#| " -c: evaluate as condition: use operators and parentheses, return "
#| "a boolean value (\"0\" or \"1\")\n"
#| "expression: expression to evaluate, variables with format ${variable} are "
#| "replaced (see below); many commands can be separated by semicolons\n"
#| " operator: a logical or comparison operator:\n"
#| " - logical operators:\n"
#| " && boolean \"and\"\n"
#| " || boolean \"or\"\n"
#| " - comparison operators:\n"
#| " == equal\n"
#| " != not equal\n"
#| " <= less or equal\n"
#| " < less\n"
#| " >= greater or equal\n"
#| " > greater\n"
#| " =~ is matching POSIX extended regex\n"
#| " !~ is NOT matching POSIX extended regex\n"
#| " ==* is matching mask, case sensitive (wildcard \"*\" is "
#| "allowed)\n"
#| " !!* is NOT matching mask, case sensitive (wildcard \"*\" "
#| "is allowed)\n"
#| " =* is matching mask, case insensitive (wildcard \"*\" "
#| "is allowed)\n"
#| " !* is NOT matching mask, case insensitive (wildcard \"*"
#| "\" is allowed)\n"
#| " ==- is included, case sensitive\n"
#| " !!- is NOT included, case sensitive\n"
#| " =- is included, case insensitive\n"
#| " !- is NOT included, case insensitive\n"
#| "\n"
#| "An expression is considered as \"true\" if it is not NULL, not empty, and "
#| "different from \"0\".\n"
#| "The comparison is made using floating point numbers if the two "
#| "expressions are valid numbers, with one of the following formats:\n"
#| " - integer (examples: 5, -7)\n"
#| " - floating point number (examples: 5.2, -7.5, 2.83e-2)\n"
#| " - hexadecimal number (examples: 0xA3, -0xA3)\n"
#| "To force a string comparison, you can add double quotes around each "
#| "expression, for example:\n"
#| " 50 > 100 ==> 0\n"
#| " \"50\" > \"100\" ==> 1\n"
#| "\n"
#| "Some variables are replaced in expression, using the format ${variable}, "
#| "variable can be, by order of priority:\n"
#| " 1. the string itself without evaluation (format: \"raw:xxx\")\n"
#| " 2. an evaluated sub-string (format: \"eval:xxx\")\n"
#| " 3. an evaluated condition (format: \"eval_cond:xxx\")\n"
#| " 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n"
#| " 5. a string with chars to hide (format: \"hide:char,string\")\n"
#| " 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:"
#| "+max,suffix,string\")\n"
#| " or max chars displayed on screen (format: \"cutscr:max,suffix,string"
#| "\" or \"cutscr:+max,suffix,string\")\n"
#| " 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n"
#| " 8. a repeated string (format: \"repeat:count,string\")\n"
#| " 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n"
#| " 10. a color (format: \"color:xxx\", see \"Plugin API reference\", "
#| "function \"color\")\n"
#| " 11. a modifier (format: \"modifier:name,data,string\")\n"
#| " 12. an info (format: \"info:name,arguments\", arguments are optional)\n"
#| " 13. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,"
#| "xxx\" or \"base_decode:base,xxx\")\n"
#| " 14. current date/time (format: \"date\" or \"date:format\")\n"
#| " 15. an environment variable (format: \"env:XXX\")\n"
#| " 16. a ternary operator (format: \"if:condition?value_if_true:"
#| "value_if_false\")\n"
#| " 17. result of an expression with parentheses and operators + - * / // % "
#| "** (format: \"calc:xxx\")\n"
#| " 18. a random integer number (format: \"random:min,max\")\n"
#| " 19. a translated string (format: \"translate:xxx\")\n"
#| " 20. an option (format: \"file.section.option\")\n"
#| " 21. a local variable in buffer\n"
#| " 22. a hdata name/variable (the value is automatically converted to "
#| "string), by default \"window\" and \"buffer\" point to current window/"
#| "buffer.\n"
#| "Format for hdata can be one of following:\n"
#| " hdata.var1.var2...: start with a hdata (pointer must be known), and ask "
#| "variables one after one (other hdata can be followed)\n"
#| " hdata[list].var1.var2...: start with a hdata using a list/pointer/"
#| "pointer name, for example:\n"
#| " ${buffer[gui_buffers].full_name}: full name of first buffer in linked "
#| "list of buffers\n"
#| " ${plugin[weechat_plugins].name}: name of first plugin in linked list "
#| "of plugins\n"
#| " hdata[pointer].var1.var2...: start with a hdata using a pointer, for "
#| "example:\n"
#| " ${buffer[0x1234abcd].full_name}: full name of the buffer with this "
#| "pointer (can be used in triggers)\n"
#| " ${buffer[my_pointer].full_name}: full name of the buffer with this "
#| "pointer name (can be used in triggers)\n"
#| "For name of hdata and variables, please look at \"Plugin API reference\", "
#| "function \"weechat_hdata_get\".\n"
#| "\n"
#| "Examples (simple strings):\n"
#| " /eval -n ${raw:${info:version}} ==> ${info:version}\n"
#| " /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n"
#| " /eval -n ${info:version} ==> 0.4.3\n"
#| " /eval -n ${env:HOME} ==> /home/user\n"
#| " /eval -n ${weechat.look.scroll_amount} ==> 3\n"
#| " /eval -n ${sec.data.password} ==> secret\n"
#| " /eval -n ${window} ==> 0x2549aa0\n"
#| " /eval -n ${window.buffer} ==> 0x2549320\n"
#| " /eval -n ${window.buffer.full_name} ==> core.weechat\n"
#| " /eval -n ${window.buffer.number} ==> 1\n"
#| " /eval -n ${\\t} ==> <tab>\n"
#| " /eval -n ${hide:-,${relay.network.password}} ==> --------\n"
#| " /eval -n ${cut:3,+,test} ==> tes+\n"
#| " /eval -n ${cut:+3,+,test} ==> te+\n"
#| " /eval -n ${date:%H:%M:%S} ==> 07:46:40\n"
#| " /eval -n ${if:${info:term_width}>80?big:small} ==> big\n"
#| " /eval -n ${rev:Hello} ==> olleH\n"
#| " /eval -n ${repeat:5,-} ==> -----\n"
#| " /eval -n ${length:test} ==> 4\n"
#| " /eval -n ${calc:(5+2)*3} ==> 21\n"
#| " /eval -n ${random:0,10} ==> 3\n"
#| " /eval -n ${base_encode:64,test} ==> dGVzdA==\n"
#| " /eval -n ${base_decode:64,dGVzdA==} ==> test\n"
#| " /eval -n ${translate:Plugin} ==> Extension\n"
#| "\n"
#| "Examples (conditions):\n"
#| " /eval -n -c ${window.buffer.number} > 2 ==> 0\n"
#| " /eval -n -c ${window.win_width} > 100 ==> 1\n"
#| " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n"
#| " /eval -n -c (8 > 12) && (5 > 2) ==> 0\n"
#| " /eval -n -c abcd =~ ^ABC ==> 1\n"
#| " /eval -n -c abcd =~ (?-i)^ABC ==> 0\n"
#| " /eval -n -c abcd =~ (?-i)^abc ==> 1\n"
#| " /eval -n -c abcd !~ abc ==> 0\n"
#| " /eval -n -c abcd =* a*d ==> 1\n"
#| " /eval -n -c abcd =- bc ==> 1"
msgid ""
" -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be "
@@ -1981,39 +1842,44 @@ msgstr ""
"У изразима се замењују неке променљиве, користећи формат ${променљива}, "
"променљива може да буде, према редоследу приоритета:\n"
" 1. сам стринг без израчунавања (формат: „raw:xxx”)\n"
" 2. израчунати под-стринг (формат: „eval:xxx”)\n"
" 3. израчунати услов (формат: „eval_cond:xxx”)\n"
" 4. стринг са означеним карактерима (формат: „esc:xxx” или „\\xxx”)\n"
" 5. стринг са карактерима за сакривање (формат: „hide:кар,стринг”)\n"
" 6. стринг са највише карактера (формат: „cut:макс,суфикс,стринг” или „cut:"
" 2. кориснички дефинисана променљива (формат: „име”)\n"
" 3. израчунати под-стринг (формат: „eval:xxx”)\n"
" 4. израчунати услов (формат: „eval_cond:xxx”)\n"
" 5. стринг са означеним карактерима (формат: „esc:xxx” или „\\xxx”)\n"
" 6. стринг са карактерима за сакривање (формат: „hide:кар,стринг”)\n"
" 7. стринг са највише карактера (формат: „cut:макс,суфикс,стринг” или „cut:"
"+макс,суфикс,стринг\")\n"
" или макс број карактера који се приказује на екрану (формат: „cutscr:"
"макс,суфикс,стринг” или „cutscr:+макс,суфикс,стринг”)\n"
" 7. обрнути стринг (формат: „rev:xxx” или „revscr:xxx”)\n"
" 8. поновљени стринг (формат: „repeat:број,стринг”)\n"
" 9. дужина стринга (формат: „length:xxx” или „lengthscr:xxx”)\n"
" 10. боја (формат: „color:xxx”, погледајте „Референтни приручник API "
" 8. обрнути стринг (формат: „rev:xxx” или „revscr:xxx”)\n"
" 9. поновљени стринг (формат: „repeat:број,стринг”)\n"
" 10. дужина стринга (формат: „length:xxx” или „lengthscr:xxx”)\n"
" 11. подела стринга (формат: „split:број,сепаратори,заставице,xxx”)\n"
" 12. подела аргумената љуске (формат: „split_shell:број,xxx”)\n"
" 13. боја (формат: „color:xxx”, погледајте „Референтни приручник API "
"додатака”, функција „color”)\n"
" 11. модификатор (формат: „modifier:име,подаци,стринг”)\n"
" 12. инфо (формат: „info:име,аргументи”, аргументи нису обавезни)\n"
" 13. base 16/32/64 шифриран/дешифрован стринг (формат: „base_encode:основа,"
" 14. модификатор (формат: „modifier:име,подаци,стринг”)\n"
" 15. инфо (формат: „info:име,аргументи”, аргументи нису обавезни)\n"
" 16. base 16/32/64 шифриран/дешифрован стринг (формат: „base_encode:основа,"
"xxx” или „base_decode:основа,xxx”)\n"
" 14. текући датум/време (формат: „date” или „date:формат”)\n"
" 15. променљива окружења (формат: „env:XXX”)\n"
" 16. тернарни оператор (формат: „if:услов?вредност_ако_је_тачно:"
" 17. текући датум/време (формат: „date” или „date:формат”)\n"
" 18. променљива окружења (формат: „env:XXX”)\n"
" 19. тернарни оператор (формат: „if:услов?вредност_ако_је_тачно:"
"вредност_ако_је_нетачно”)\n"
" 17. резултат израза са заградама и операторима + - * / // % ** (формат: "
" 20. резултат израза са заградама и операторима + - * / // % ** (формат: "
"„calc:xxx”)\n"
" 18. случајни целобројни број (формат: „random:мин,макс”)\n"
" 19. преведени стринг (формат: „translate:xxx”)\n"
" 20. опција (формат: „фајл.секција.опција”)\n"
" 21. локална променљива у баферу\n"
" 22. hdata име/променљива (вредност се аутоматски конвертује у стринг), "
" 21. случајни целобројни број (формат: „random:мин,макс”)\n"
" 22. преведени стринг (формат: „translate:xxx”)\n"
" 23. дефиниција корисничке промонљиве (формат: „define:име,вредност”)\n"
" 24. опција (формат: „фајл.секција.опција”)\n"
" 25. локална променљива у баферу\n"
" 26. hdata име/променљива (вредност се аутоматски конвертује у стринг), "
"„window” и „buffer” подразумевано показују на текући прозор/бафер.\n"
"Формат за hdata може да буде једно од следећег:\n"
" hdata.пром1.пром2...: почиње са hdata (показивач мора да буде познат), и "
"пита променљиве једну за другом (могу да следе и остала hdata)\n"
" hdata[листа].пром1.пром2...: почиње са hdata користећи листу, на пример:\n"
" hdata[листа].пром1.пром2...: почиње са hdata користећи листу/показивач/име "
"показивача, на пример:\n"
" ${buffer[gui_buffers].full_name}: пуно име првог бафера у увезаној листи "
"бафера\n"
" ${plugin[weechat_plugins].name}: име првог бафера у увезаној листи "
@@ -2028,30 +1894,39 @@ msgstr ""
"приручник API додатака”, функцију „weechat_hdata_get”.\n"
"\n"
"Примери (једноставни стрингови):\n"
" /eval -n ${raw:${info:version}} ==> ${info:version}\n"
" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n"
" /eval -n ${info:version} ==> 0.4.3\n"
" /eval -n ${env:HOME} ==> /home/user\n"
" /eval -n ${weechat.look.scroll_amount} ==> 3\n"
" /eval -n ${sec.data.freenode_password} ==> secret\n"
" /eval -n ${window} ==> 0x2549aa0\n"
" /eval -n ${window.buffer} ==> 0x2549320\n"
" /eval -n ${window.buffer.full_name} ==> core.weechat\n"
" /eval -n ${window.buffer.number} ==> 1\n"
" /eval -n ${\\t} ==> <tab>\n"
" /eval -n ${hide:-,${relay.network.password}} ==> --------\n"
" /eval -n ${cut:3,+,test} ==> tes+\n"
" /eval -n ${cut:+3,+,test} ==> te+\n"
" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n"
" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n"
" /eval -n ${rev:Hello} ==> olleH\n"
" /eval -n ${repeat:5,-} ==> -----\n"
" /eval -n ${length:test} ==> 4\n"
" /eval -n ${calc:(5+2)*3} ==> 21\n"
" /eval -n ${random:0,10} ==> 3\n"
" /eval -n ${base_encode:64,test} ==> dGVzdA==\n"
" /eval -n ${base_decode:64,dGVzdA==} ==> test\n"
" /eval -n ${translate:Plugin} ==> Extension\n"
" /eval -n ${raw:${info:version}} ==> ${info:version}\n"
" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n"
" /eval -n ${info:version} ==> 0.4.3\n"
" /eval -n ${env:HOME} ==> /home/user\n"
" /eval -n ${weechat.look.scroll_amount} ==> 3\n"
" /eval -n ${sec.data.password} ==> secret\n"
" /eval -n ${window} ==> 0x2549aa0\n"
" /eval -n ${window.buffer} ==> 0x2549320\n"
" /eval -n ${window.buffer.full_name} ==> core.weechat\n"
" /eval -n ${window.buffer.number} ==> 1\n"
" /eval -n ${\\t} ==> <tab>\n"
" /eval -n ${hide:-,${relay.network.password}} ==> --------\n"
" /eval -n ${cut:3,+,test} ==> tes+\n"
" /eval -n ${cut:+3,+,test} ==> te+\n"
" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n"
" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n"
" /eval -n ${rev:Hello} ==> olleH\n"
" /eval -n ${repeat:5,-} ==> -----\n"
" /eval -n ${length:test} ==> 4\n"
" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n"
" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n"
" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n"
" /eval -n ${split:random,,,abc,def,ghi} ==> def\n"
" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n"
" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n"
" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n"
" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n"
" /eval -n ${calc:(5+2)*3} ==> 21\n"
" /eval -n ${random:0,10} ==> 3\n"
" /eval -n ${base_encode:64,test} ==> dGVzdA==\n"
" /eval -n ${base_decode:64,dGVzdA==} ==> test\n"
" /eval -n ${translate:Plugin} ==> Extension\n"
" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n"
"\n"
"Примери (услови):\n"
" /eval -n -c ${window.buffer.number} > 2 ==> 0\n"
@@ -2658,17 +2533,14 @@ msgstr ""
msgid "list/load/unload plugins"
msgstr "приказ/учитавање/уклањање додатака"
#, fuzzy
#| msgid ""
#| "list|listfull [<name>] || load <filename> [<arguments>] || autoload "
#| "[<arguments>] || reload [<name>|* [<arguments>]] || unload [<name>]"
msgid ""
"list [-o|-ol|-i|-il|<name>] || listfull [<name>] || load <filename> "
"[<arguments>] || autoload [<arguments>] || reload [<name>|* [<arguments>]] "
"|| unload [<name>]"
msgstr ""
"list|listfull [<име>] || load <имефајла> [<аргументи>] || autoload "
"[<аргументи>] || reload [<име>|* [<аргументи>]] || unload [<име>]"
"list| [-o|-ol|-i|-il|<име>] || listfull [<име>] || load <имефајла> "
"[<аргументи>] || autoload [<аргументи>] || reload [<име>|* [<аргументи>]] || "
"unload [<име>]"
msgid ""
" list: list loaded plugins\n"
@@ -2690,6 +2562,25 @@ msgid ""
"\n"
"Without argument, this command lists loaded plugins."
msgstr ""
" list: испис учитаних додатака\n"
" -o: слање листе учитаних додатака у бафер (стринг на енглеском)\n"
" -ol: слање листе учитаних додатака у бафер (преведени стринг)\n"
" -i: копирање листе учитаних додатака у командну линију (за слање у "
"бафер) (стринг на енглеском)\n"
" -il: копирање листе учитаних додатака у командну линију (за слање у "
"бафер) (преведени стринг)\n"
" име: име додатка\n"
" listfull: испис учитаних додатака (детаљно)\n"
" load: учитавање додатка\n"
" имефајла: додатак (фајл) који треба да се учита\n"
"аргументи: аргументи који се прослеђују додатку приликом учитавања\n"
" autoload: аутоматско учитавање додатака у системском или корисничком "
"директоријуму\n"
" reload: поновно учитавање додатка (ако се не наведе име, уклањају се сви "
"додаци, па се затим аутоматски учитавају)\n"
" unload: уклањање додатка (ако се не наведе име, уклањају се сви додаци)\n"
"\n"
"Без аргумента, ова команда исписује учитане додатке."
msgid "display text on a buffer"
msgstr "исписује текст у бафер"
@@ -3146,15 +3037,11 @@ msgstr ""
" уклања променљиву окружења ABC:\n"
" /set env ABC \"\""
#, fuzzy
#| msgid "values for a configuration option"
msgid "toggle value of a config option"
msgstr "вредности за опцију конфигурације"
msgstr "пребацује вредност опције конфигурације"
#, fuzzy
#| msgid "[<file> [<file>...]]"
msgid "<option> [<value> [<value>...]]"
msgstr "[<фајл> [<фајл>...]]"
msgstr "<опција> [<вредност> [<вредност>...]]"
msgid ""
"option: name of an option\n"
@@ -3186,6 +3073,35 @@ msgid ""
" toggle autojoin of #weechat channel on libera server:\n"
" /toggle irc.server.libera.autojoin null #weechat"
msgstr ""
" опција: име опције\n"
"вредност: могуће вредности опције (вредности се деле као аргументи команде у "
"љусци: на почетку/крају вредности могу да се користе знаци навода којима се "
"очувавају размаци)\n"
"\n"
"Понашање:\n"
" - без вредности је могуће пребацивање само опције типа логичка или "
"стринг:\n"
" - логичка: пребацује између укључено/искључено зависно од тренутне "
"вредности\n"
" - стринг: пребацује између празног стринга и подразумеване вредности "
"(ради само ако је за вредност опције дозвољен празан стринг)\n"
" - са датом једном вредности, пребацује између те вредности и подразумеване "
"вредности опције\n"
" - са више датих вредности, пребацује између тих вредности: вредност која "
"се користи је она која следи након текуће вредности опције; ако се текућа "
"вредност опције не налази у листи, користи се прва вредност у листи\n"
" - може да се наведе специјална вредност „null”, али само као прва вредност "
"у листи и око ње нема знакова навода.\n"
"\n"
"Примери:\n"
" пребацивање приказа времена у простору за чет (без бриказа нове вредности "
"која се користи):\n"
" /mute /toggle weechat.look.buffer_time_format\n"
" промена формата времена у простору за чет (са секундама, без секунди, "
"искључено):\n"
" /toggle weechat.look.buffer_time_format \"%H:%M:%S\" \"%H:%M\" \"\"\n"
" пребацивање аутоматског приступа каналу #weechat на libera серверу:\n"
" /toggle irc.server.libera.autojoin null #weechat"
msgid "unset/reset config options"
msgstr "уклањање/ресетовање конфиг опција"
@@ -10793,21 +10709,24 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
"„tags”: ознаке, „tag_xxx”: неозначена вредност ознаке „xxx” (један кључ по "
"ознаци), „message_without_tags”: поруке без ознака, „nick”: надимак, „user”: "
"корисник, „host”: хост, „command”: команда, „channel”: канал, „arguments”: "
"аргументи (укључујући channel), „text”: текст (на пример, корисничка "
"порука), „pos_command”: индекс „command” поруке („-1” ако „command” није "
"пронађена), „pos_arguments”: индекс „arguments” поруке („-1” ако „arguments” "
"није пронађена), „pos_channel”: индекс „channel” поруке („-1” ако „channel” "
"није пронађена), „pos_text”: индекс „text” поруке („-1” ако „text” није "
"пронађена)"
"порука), „param1” ... „paramN”: парсирани параметри команде, „num_params”: "
"број парсираних параметара команде, „pos_command”: индекс „command” поруке "
"(„-1” ако „command” није пронађена), „pos_arguments”: индекс „arguments” "
"поруке („-1” ако „arguments” није пронађена), „pos_channel”: индекс "
"„channel” поруке („-1” ако „channel” није пронађена), „pos_text”: индекс "
"„text” поруке („-1” ако „text” није пронађена)"
msgid "split an IRC message (to fit in 512 bytes by default)"
msgstr "подела IRC поруке (подразумевано тако да стане у 512 бајтова)"
@@ -11360,25 +11279,27 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s је ућуткан"
#, c-format
msgid "%s%s: command \"%s\" not found:"
msgstr "%s%s: није пронађена команда „%s”:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgstr ""
"%s%s: парсирање команде „%s” није успело (молимо вас пријавите програмерима):"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: команда „%s” није пронађена: „%s”"
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
"%s%s: од IRC сервера није примљен довољан број аргумената за команду "
"„%s” (примљено је: %d аргумената, очекује се: барем %d)"
"%s%s: парсирање команде „%s” није успело (молимо вас пријавите "
"програмерима): „%s”"
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgstr "%s%s: команда „%s” је примљена без хоста"
msgid ""
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
"%s%s: у команди „%s” је примљено премало параметара (примљено: %d, очекује "
"се: барем %d)"
#, c-format
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: команда „%s” је примљена без надимка"
#, c-format
msgid "IRC raw messages | Filter: %s"
@@ -15402,32 +15323,3 @@ msgstr "%s%s: тајмаут за „%s” са %s"
#, c-format
msgid "%s%s: unable to connect: unexpected error (%d)"
msgstr "%s%s: повезивање није успело: неочекивана грешка (%d)"
#~ msgid ""
#~ " list: list loaded plugins\n"
#~ " listfull: list loaded plugins (verbose)\n"
#~ " load: load a plugin\n"
#~ " autoload: autoload plugins in system or user directory\n"
#~ " reload: reload a plugin (if no name given, unload all plugins, then "
#~ "autoload plugins)\n"
#~ " unload: unload a plugin (if no name given, unload all plugins)\n"
#~ " filename: plugin (file) to load\n"
#~ " name: a plugin name\n"
#~ "arguments: arguments given to plugin on load\n"
#~ "\n"
#~ "Without argument, this command lists loaded plugins."
#~ msgstr ""
#~ " list: исписује учитане додатке\n"
#~ " listfull: исписује учитане додатке (детаљно)\n"
#~ " load: учитава додатак\n"
#~ " autoload: аутоматски учитава додатке из системског или корисничког "
#~ "директоријума\n"
#~ " reload: поново учитава додатак (ако се не зада име, уклања из меморије "
#~ "све додатке, па их затим аутоматски учитава)\n"
#~ " unload: уклања додатак из меморије (ако се не зада име, уклања све "
#~ "додатке из меморије)\n"
#~ " имефајла: додатак (фајл) који треба да се учита\n"
#~ " име: име додатка\n"
#~ "аргументи: аргументи који се прослеђују додатку приликом учитавања\n"
#~ "\n"
#~ "Без аргумента, ова команда исписује учитане додатке."
+20 -15
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2021-07-10 16:01+0200\n"
"Last-Translator: Emir SARI <bitigchi@me.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -162,7 +162,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -8245,11 +8245,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
msgid "split an IRC message (to fit in 512 bytes by default)"
@@ -8781,23 +8783,26 @@ msgstr "%s%s[%s%s%s] %s%s%s%s, %s tarafından sessize alındı"
msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr "%s%s[%s%s%s] %s%s%s%s sessize alındı"
#, c-format
msgid "%s%s: command \"%s\" not found:"
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr "%s%s: \"%s\" komutu bulunamadı:"
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid ""
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: command \"%s\" not found:"
msgid "%s%s: command \"%s\" received without nick"
msgstr "%s%s: \"%s\" komutu bulunamadı:"
#, c-format
msgid "IRC raw messages | Filter: %s"
+18 -15
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2021-10-01 22:52+0200\n"
"POT-Creation-Date: 2021-12-03 12:01+0100\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -152,7 +152,7 @@ msgid ""
"(in this order: config, data, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -t, --temp-dir create a temporary WeeChat homedirectory and "
" -t, --temp-dir create a temporary WeeChat home directory and "
"delete it on exit\n"
" (incompatible with option \"-d\")\n"
" -h, --help display this help\n"
@@ -7696,11 +7696,13 @@ msgid ""
"tag), \"message_without_tags\": message without the tags, \"nick\": nick, "
"\"user\": user, \"host\": host, \"command\": command, \"channel\": channel, "
"\"arguments\": arguments (includes channel), \"text\": text (for example "
"user message), \"pos_command\": index of \"command\" message (\"-1\" if "
"\"command\" was not found), \"pos_arguments\": index of \"arguments\" "
"message (\"-1\" if \"arguments\" was not found), \"pos_channel\": index of "
"\"channel\" message (\"-1\" if \"channel\" was not found), \"pos_text\": "
"index of \"text\" message (\"-1\" if \"text\" was not found)"
"user message), \"param1\" ... \"paramN\": parsed command parameters, "
"\"num_params\": number of parsed command parameters, \"pos_command\": index "
"of \"command\" message (\"-1\" if \"command\" was not found), \"pos_arguments"
"\": index of \"arguments\" message (\"-1\" if \"arguments\" was not found), "
"\"pos_channel\": index of \"channel\" message (\"-1\" if \"channel\" was not "
"found), \"pos_text\": index of \"text\" message (\"-1\" if \"text\" was not "
"found)"
msgstr ""
msgid "split an IRC message (to fit in 512 bytes by default)"
@@ -8239,21 +8241,22 @@ msgid "%s%s[%s%s%s] %s%s%s%s quieted"
msgstr ""
#, c-format
msgid "%s%s: command \"%s\" not found:"
msgstr ""
#, c-format
msgid "%s%s: failed to parse command \"%s\" (please report to developers):"
msgid "%s%s: command \"%s\" not found: \"%s\""
msgstr ""
#, c-format
msgid ""
"%s%s: too few arguments received from IRC server for command \"%s"
"\" (received: %d arguments, expected: at least %d)"
"%s%s: failed to parse command \"%s\" (please report to developers): \"%s\""
msgstr ""
#, c-format
msgid "%s%s: \"%s\" command received without host"
msgid ""
"%s%s: too few parameters received in command \"%s\" (received: %d, expected: "
"at least %d)"
msgstr ""
#, c-format
msgid "%s%s: command \"%s\" received without nick"
msgstr ""
#, c-format
+1 -1
View File
@@ -3310,7 +3310,7 @@ config_file_hdata_config_option_cb (const void *pointer, void *data,
HDATA_VAR(struct t_config_option, parent_name, STRING, 0, NULL, NULL);
HDATA_VAR(struct t_config_option, type, INTEGER, 0, NULL, NULL);
HDATA_VAR(struct t_config_option, description, STRING, 0, NULL, NULL);
HDATA_VAR(struct t_config_option, string_values, STRING, 0, "*", NULL);
HDATA_VAR(struct t_config_option, string_values, STRING, 0, "*,*", NULL);
HDATA_VAR(struct t_config_option, min, INTEGER, 0, NULL, NULL);
HDATA_VAR(struct t_config_option, max, INTEGER, 0, NULL, NULL);
HDATA_VAR(struct t_config_option, default_value, POINTER, 0, NULL, NULL);
+25
View File
@@ -750,6 +750,11 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
char *ptr_home, path[PATH_MAX];
char *xdg_config_home, *xdg_data_home, *xdg_cache_home, *xdg_runtime_dir;
*config_dir = NULL;
*data_dir = NULL;
*cache_dir = NULL;
*runtime_dir = NULL;
ptr_home = getenv ("HOME");
xdg_config_home = getenv ("XDG_CONFIG_HOME");
xdg_data_home = getenv ("XDG_DATA_HOME");
@@ -826,6 +831,26 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
return 1;
error:
if (*config_dir)
{
free (*config_dir);
*config_dir = NULL;
}
if (*data_dir)
{
free (*data_dir);
*data_dir = NULL;
}
if (*cache_dir)
{
free (*cache_dir);
*cache_dir = NULL;
}
if (*runtime_dir)
{
free (*runtime_dir);
*runtime_dir = NULL;
}
string_fprintf (stderr, _("Error: not enough memory\n"));
return 0;
}
+21 -12
View File
@@ -181,7 +181,7 @@ eval_strstr_level (const char *string, const char *search,
{
const char *ptr_string;
int level, length_search, debug_id;
int length_prefix, length_prefix2, length_suffix, length_suffix2;
int length_prefix2, length_suffix2;
ptr_string = NULL;
@@ -196,9 +196,6 @@ eval_strstr_level (const char *string, const char *search,
length_search = strlen (search);
length_prefix = strlen (eval_context->prefix);
length_suffix = strlen (eval_context->suffix);
length_prefix2 = (extra_prefix) ? strlen (extra_prefix) : 0;
length_suffix2 = (extra_suffix) ? strlen (extra_suffix) : 0;
@@ -213,10 +210,10 @@ eval_strstr_level (const char *string, const char *search,
{
ptr_string++;
}
else if (strncmp (ptr_string, eval_context->prefix, length_prefix) == 0)
else if (strncmp (ptr_string, eval_context->prefix, eval_context->length_prefix) == 0)
{
level++;
ptr_string += length_prefix;
ptr_string += eval_context->length_prefix;
}
else if ((length_prefix2 > 0)
&& (strncmp (ptr_string, extra_prefix, length_prefix2) == 0))
@@ -224,11 +221,11 @@ eval_strstr_level (const char *string, const char *search,
level++;
ptr_string += length_prefix2;
}
else if (strncmp (ptr_string, eval_context->suffix, length_suffix) == 0)
else if (strncmp (ptr_string, eval_context->suffix, eval_context->length_suffix) == 0)
{
if (level > 0)
level--;
ptr_string += length_suffix;
ptr_string += eval_context->length_suffix;
}
else if ((length_suffix2 > 0)
&& (strncmp (ptr_string, extra_suffix, length_suffix2) == 0))
@@ -508,7 +505,11 @@ eval_string_split (const char *text)
else if (strcmp (list_flags[i], "keep_eol") == 0)
flags |= WEECHAT_STRING_SPLIT_KEEP_EOL;
else if (strncmp (list_flags[i], "strip_items=", 12) == 0)
{
if (strip_items)
free (strip_items);
strip_items = strdup (list_flags[i] + 12);
}
else if (strncmp (list_flags[i], "max_items=", 10) == 0)
{
max_items = strtol (list_flags[i] + 10, &error, 10);
@@ -1008,7 +1009,7 @@ char *
eval_string_random (const char *text)
{
char *pos, *error, *tmp, result[128];
long min_number, max_number;
long long min_number, max_number;
if (!text || !text[0])
goto error;
@@ -1020,7 +1021,7 @@ eval_string_random (const char *text)
tmp = strndup (text, pos - text);
if (!tmp)
goto error;
min_number = strtol (tmp, &error, 10);
min_number = strtoll (tmp, &error, 10);
if (!error || error[0])
{
free (tmp);
@@ -1028,7 +1029,7 @@ eval_string_random (const char *text)
}
free (tmp);
max_number = strtol (pos + 1, &error, 10);
max_number = strtoll (pos + 1, &error, 10);
if (!error || error[0])
goto error;
@@ -1042,7 +1043,7 @@ eval_string_random (const char *text)
* but this is enough for our usage here
*/
snprintf (result, sizeof (result),
"%ld", min_number + (random () % (max_number - min_number + 1)));
"%lld", min_number + (random () % (max_number - min_number + 1)));
return strdup (result);
error:
@@ -2422,7 +2423,9 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
eval_context->user_vars = user_vars;
eval_context->extra_vars_eval = 0;
eval_context->prefix = default_prefix;
eval_context->length_prefix = strlen (eval_context->prefix);
eval_context->suffix = default_suffix;
eval_context->length_suffix = strlen (eval_context->suffix);
eval_context->regex = NULL;
eval_context->regex_replacement_index = 1;
eval_context->recursion_count = 0;
@@ -2469,12 +2472,18 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
/* check for custom prefix */
ptr_value = hashtable_get (options, "prefix");
if (ptr_value && ptr_value[0])
{
eval_context->prefix = ptr_value;
eval_context->length_prefix = strlen (eval_context->prefix);
}
/* check for custom suffix */
ptr_value = hashtable_get (options, "suffix");
if (ptr_value && ptr_value[0])
{
eval_context->suffix = ptr_value;
eval_context->length_suffix = strlen (eval_context->suffix);
}
/* check for regex */
ptr_value = hashtable_get (options, "regex");
+2
View File
@@ -76,7 +76,9 @@ struct t_eval_context
struct t_hashtable *user_vars; /* user-defined variables */
int extra_vars_eval; /* 1 if extra vars must be evaluated */
const char *prefix; /* prefix (default is "${") */
int length_prefix; /* length of prefix */
const char *suffix; /* suffix (default is "}") */
int length_suffix; /* length of suffix */
struct t_eval_regex *regex; /* in case of replace with regex */
int regex_replacement_index; /* replacement index (≥ 1) */
int recursion_count; /* to prevent infinite recursion */
+152 -101
View File
@@ -37,11 +37,6 @@
struct t_hashtable *weechat_hdata = NULL;
/* hashtables used in hdata_search() for evaluating expression */
struct t_hashtable *hdata_search_pointers = NULL;
struct t_hashtable *hdata_search_extra_vars = NULL;
struct t_hashtable *hdata_search_options = NULL;
char *hdata_type_string[9] =
{ "other", "char", "integer", "long", "string", "pointer", "time",
"hashtable", "shared_string" };
@@ -52,8 +47,7 @@ char *hdata_type_string[9] =
*/
void
hdata_free_var (struct t_hashtable *hashtable,
const void *key, void *value)
hdata_free_var_cb (struct t_hashtable *hashtable, const void *key, void *value)
{
struct t_hdata_var *var;
@@ -77,8 +71,7 @@ hdata_free_var (struct t_hashtable *hashtable,
*/
void
hdata_free_list (struct t_hashtable *hashtable,
const void *key, void *value)
hdata_free_list_cb (struct t_hashtable *hashtable, const void *key, void *value)
{
/* make C compiler happy */
(void) hashtable;
@@ -120,13 +113,13 @@ hdata_new (struct t_weechat_plugin *plugin, const char *hdata_name,
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
new_hdata->hash_var->callback_free_value = &hdata_free_var;
new_hdata->hash_var->callback_free_value = &hdata_free_var_cb;
new_hdata->hash_list = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
new_hdata->hash_list->callback_free_value = &hdata_free_list;
new_hdata->hash_list->callback_free_value = &hdata_free_list_cb;
hashtable_set (weechat_hdata, hdata_name, new_hdata);
new_hdata->create_allowed = create_allowed;
new_hdata->delete_allowed = delete_allowed;
@@ -148,6 +141,7 @@ hdata_new_var (struct t_hdata *hdata, const char *name, int offset, int type,
const char *hdata_name)
{
struct t_hdata_var *var;
const char *ptr_array_size;
if (!hdata || !name)
return;
@@ -158,8 +152,20 @@ hdata_new_var (struct t_hdata *hdata, const char *name, int offset, int type,
var->offset = offset;
var->type = type;
var->update_allowed = update_allowed;
var->array_size = (array_size && array_size[0]) ? strdup (array_size) : NULL;
var->hdata_name = (hdata_name && hdata_name[0]) ? strdup (hdata_name) : NULL;
ptr_array_size = array_size;
if (ptr_array_size && (strncmp (ptr_array_size, "*,", 2) == 0))
{
var->array_pointer = 1;
ptr_array_size += 2;
}
else
{
var->array_pointer = 0;
}
var->array_size = (ptr_array_size && ptr_array_size[0]) ?
strdup (ptr_array_size) : NULL;
var->hdata_name = (hdata_name && hdata_name[0]) ?
strdup (hdata_name) : NULL;
hashtable_set (hdata->hash_var, name, var);
}
}
@@ -394,7 +400,7 @@ hdata_get_var (struct t_hdata *hdata, void *pointer, const char *name)
{
int offset;
if (!hdata || !pointer)
if (!hdata || !pointer || !name)
return NULL;
offset = hdata_get_var_offset (hdata, name);
@@ -576,72 +582,78 @@ hdata_move (struct t_hdata *hdata, void *pointer, int count)
*/
void *
hdata_search (struct t_hdata *hdata, void *pointer, const char *search, int move)
hdata_search (struct t_hdata *hdata,
void *pointer,
const char *search,
struct t_hashtable *pointers,
struct t_hashtable *extra_vars,
struct t_hashtable *options,
int move)
{
struct t_hashtable *pointers2, *options2;
char *result;
void *ret_pointer;
int rc;
if (!hdata || !pointer || !search || !search[0] || (move == 0))
return NULL;
/* clear or create hashtable with pointer for search */
if (hdata_search_pointers)
ret_pointer = NULL;
/* duplicate or create hashtable with pointers */
if (pointers)
{
hashtable_remove_all (hdata_search_pointers);
pointers2 = hashtable_dup (pointers);
}
else
{
hdata_search_pointers = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
pointers2 = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
}
/*
* create hashtable with extra vars (empty hashtable)
* (hashtable would be created in eval_expression(), but it's created here
* so it will not be created for each call to eval_expression())
*/
if (!hdata_search_extra_vars)
/* duplicate or create hashtable with options */
if (options)
{
hdata_search_extra_vars = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
options2 = hashtable_dup (options);
}
if (!hdata_search_options)
else
{
hdata_search_options = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_STRING,
NULL,
NULL);
if (hdata_search_options)
hashtable_set (hdata_search_options, "type", "condition");
options2 = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
}
if (options2)
hashtable_set (options2, "type", "condition");
while (pointer)
{
/* set pointer in hashtable (used for evaluating expression) */
hashtable_set (hdata_search_pointers, hdata->name, pointer);
if (pointers2)
hashtable_set (pointers2, hdata->name, pointer);
/* evaluate expression */
result = eval_expression (search, hdata_search_pointers,
hdata_search_extra_vars,
hdata_search_options);
result = eval_expression (search, pointers2, extra_vars, options2);
rc = eval_is_true (result);
if (result)
free (result);
if (rc)
return pointer;
{
ret_pointer = pointer;
goto end;
}
pointer = hdata_move (hdata, pointer, move);
}
return NULL;
end:
hashtable_free (pointers2);
hashtable_free (options2);
return ret_pointer;
}
/*
@@ -706,9 +718,16 @@ hdata_char (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return (*((char **)(pointer + var->offset)))[index];
{
if (var->array_pointer)
return (*((char **)(pointer + var->offset)))[index];
else
return ((char *)(pointer + var->offset))[index];
}
else
{
return *((char *)(pointer + var->offset));
}
}
return '\0';
@@ -733,9 +752,16 @@ hdata_integer (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return ((int *)(pointer + var->offset))[index];
{
if (var->array_pointer)
return (*((int **)(pointer + var->offset)))[index];
else
return ((int *)(pointer + var->offset))[index];
}
else
{
return *((int *)(pointer + var->offset));
}
}
return 0;
@@ -760,9 +786,16 @@ hdata_long (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return ((long *)(pointer + var->offset))[index];
{
if (var->array_pointer)
return (*((long **)(pointer + var->offset)))[index];
else
return ((long *)(pointer + var->offset))[index];
}
else
{
return *((long *)(pointer + var->offset));
}
}
return 0;
@@ -787,9 +820,19 @@ hdata_string (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return (*((char ***)(pointer + var->offset)))[index];
{
if (var->array_pointer)
return (*((char ***)(pointer + var->offset)))[index];
else
{
/* we can not index a static array of strings */
return NULL;
}
}
else
{
return *((char **)(pointer + var->offset));
}
}
return NULL;
@@ -814,9 +857,16 @@ hdata_pointer (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return (*((void ***)(pointer + var->offset)))[index];
{
if (var->array_pointer)
return (*((void ***)(pointer + var->offset)))[index];
else
return ((void **)(pointer + var->offset))[index];
}
else
{
return *((void **)(pointer + var->offset));
}
}
return NULL;
@@ -841,9 +891,16 @@ hdata_time (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return ((time_t *)(pointer + var->offset))[index];
{
if (var->array_pointer)
return (*((time_t **)(pointer + var->offset)))[index];
else
return ((time_t *)(pointer + var->offset))[index];
}
else
{
return *((time_t *)(pointer + var->offset));
}
}
return 0;
@@ -868,9 +925,16 @@ hdata_hashtable (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
return (*((struct t_hashtable ***)(pointer + var->offset)))[index];
{
if (var->array_pointer)
return (*((struct t_hashtable ***)(pointer + var->offset)))[index];
else
return ((struct t_hashtable **)(pointer + var->offset))[index];
}
else
{
return *((struct t_hashtable **)(pointer + var->offset));
}
}
return NULL;
@@ -898,6 +962,9 @@ hdata_compare (struct t_hdata *hdata, void *pointer1, void *pointer2,
void *ptr_value1, *ptr_value2;
time_t time_value1, time_value2;
if (!hdata || !name)
return 0;
if (!pointer1 && pointer2)
return -1;
if (pointer1 && !pointer2)
@@ -1048,17 +1115,25 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
return 1;
break;
case WEECHAT_HDATA_POINTER:
rc = sscanf (value, "%lx", &ptr);
if ((rc != EOF) && (rc != 0))
if (value)
{
*((void **)(pointer + var->offset)) = (void *)ptr;
rc = sscanf (value, "%lx", &ptr);
if ((rc != EOF) && (rc != 0))
{
*((void **)(pointer + var->offset)) = (void *)ptr;
return 1;
}
}
else
{
*((void **)(pointer + var->offset)) = NULL;
return 1;
}
break;
case WEECHAT_HDATA_TIME:
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
if (error && !error[0] && (number >= 0))
{
*((time_t *)(pointer + var->offset)) = (time_t)number;
return 1;
@@ -1107,8 +1182,6 @@ hdata_update (struct t_hdata *hdata, void *pointer,
value = hashtable_get (hashtable, "__update_allowed");
if (value)
{
if (!hdata->callback_update)
return 0;
var = hashtable_get (hdata->hash_var, value);
if (!var)
return 0;
@@ -1191,10 +1264,7 @@ hdata_free_all_plugin_map_cb (void *data, struct t_hashtable *hashtable,
ptr_hdata = (struct t_hdata *)value;
if (ptr_hdata->plugin == (struct t_weechat_plugin *)data)
{
hdata_free (ptr_hdata);
hashtable_remove (hashtable, key);
}
}
/*
@@ -1207,25 +1277,6 @@ hdata_free_all_plugin (struct t_weechat_plugin *plugin)
hashtable_map (weechat_hdata, &hdata_free_all_plugin_map_cb, plugin);
}
/*
* Frees hdata (callback called for each hdata in memory).
*/
void
hdata_free_all_map_cb (void *data, struct t_hashtable *hashtable,
const void *key, const void *value)
{
struct t_hdata *ptr_hdata;
/* make C compiler happy */
(void) data;
ptr_hdata = (struct t_hdata *)value;
hdata_free (ptr_hdata);
hashtable_remove (hashtable, key);
}
/*
* Frees all hdata.
*/
@@ -1233,7 +1284,7 @@ hdata_free_all_map_cb (void *data, struct t_hashtable *hashtable,
void
hdata_free_all ()
{
hashtable_map (weechat_hdata, &hdata_free_all_map_cb, NULL);
hashtable_remove_all (weechat_hdata);
}
/*
@@ -1309,6 +1360,21 @@ hdata_print_log ()
hashtable_map (weechat_hdata, &hdata_print_log_map_cb, NULL);
}
/*
* Frees a hdata in hashtable "weechat_hdata".
*/
void
hdata_free_hdata_cb (struct t_hashtable *hashtable,
const void *key, void *value)
{
/* make C compiler happy */
(void) hashtable;
(void) key;
hdata_free (value);
}
/*
* Initializes hdata: creates a hashtable with hdata.
*/
@@ -1321,6 +1387,7 @@ hdata_init ()
WEECHAT_HASHTABLE_POINTER,
NULL,
NULL);
weechat_hdata->callback_free_value = &hdata_free_hdata_cb;
}
/*
@@ -1333,20 +1400,4 @@ hdata_end ()
hdata_free_all ();
hashtable_free (weechat_hdata);
weechat_hdata = NULL;
if (hdata_search_pointers)
{
hashtable_free (hdata_search_pointers);
hdata_search_pointers = NULL;
}
if (hdata_search_extra_vars)
{
hashtable_free (hdata_search_extra_vars);
hdata_search_extra_vars = NULL;
}
if (hdata_search_options)
{
hashtable_free (hdata_search_options);
hdata_search_options = NULL;
}
}
+5 -1
View File
@@ -36,6 +36,8 @@ struct t_hdata_var
char type; /* type */
char update_allowed; /* update allowed? */
char *array_size; /* array size */
char array_pointer; /* pointer to dynamically allocated */
/* array? */
char *hdata_name; /* hdata name */
};
@@ -109,7 +111,9 @@ extern int hdata_check_pointer (struct t_hdata *hdata, void *list,
void *pointer);
extern void *hdata_move (struct t_hdata *hdata, void *pointer, int count);
extern void *hdata_search (struct t_hdata *hdata, void *pointer,
const char *search, int move);
const char *search, struct t_hashtable *pointers,
struct t_hashtable *extra_vars,
struct t_hashtable *options, int move);
extern void hdata_get_index_and_name (const char *name, int *index,
const char **ptr_name);
extern char hdata_char (struct t_hdata *hdata, void *pointer,
+23 -15
View File
@@ -91,6 +91,27 @@ network_init_gcrypt ()
gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
}
/*
* Allocates credentials structure.
*/
void
network_allocate_credentials ()
{
gnutls_certificate_allocate_credentials (&gnutls_xcred);
#if LIBGNUTLS_VERSION_NUMBER >= 0x02090a /* 2.9.10 */
gnutls_certificate_set_verify_function (gnutls_xcred,
&hook_connect_gnutls_verify_certificates);
#endif /* LIBGNUTLS_VERSION_NUMBER >= 0x02090a */
#if LIBGNUTLS_VERSION_NUMBER >= 0x020b00 /* 2.11.0 */
gnutls_certificate_set_retrieve_function (gnutls_xcred,
&hook_connect_gnutls_set_certificates);
#else
gnutls_certificate_client_set_retrieve_function (gnutls_xcred,
&hook_connect_gnutls_set_certificates);
#endif /* LIBGNUTLS_VERSION_NUMBER >= 0x020b00 */
}
/*
* Loads system's default trusted certificate authorities.
*
@@ -259,9 +280,7 @@ network_reload_ca_files (int force_display)
network_num_certs),
network_num_certs);
}
gnutls_certificate_allocate_credentials (&gnutls_xcred);
network_allocate_credentials ();
network_load_ca_files (force_display);
}
@@ -275,19 +294,8 @@ network_init_gnutls ()
if (!weechat_no_gnutls)
{
gnutls_global_init ();
gnutls_certificate_allocate_credentials (&gnutls_xcred);
network_allocate_credentials ();
network_load_ca_files (0);
#if LIBGNUTLS_VERSION_NUMBER >= 0x02090a /* 2.9.10 */
gnutls_certificate_set_verify_function (gnutls_xcred,
&hook_connect_gnutls_verify_certificates);
#endif /* LIBGNUTLS_VERSION_NUMBER >= 0x02090a */
#if LIBGNUTLS_VERSION_NUMBER >= 0x020b00 /* 2.11.0 */
gnutls_certificate_set_retrieve_function (gnutls_xcred,
&hook_connect_gnutls_set_certificates);
#else
gnutls_certificate_client_set_retrieve_function (gnutls_xcred,
&hook_connect_gnutls_set_certificates);
#endif /* LIBGNUTLS_VERSION_NUMBER >= 0x020b00 */
}
network_init_gnutls_ok = 1;

Some files were not shown because too many files have changed in this diff Show More