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

Compare commits

..

240 Commits

Author SHA1 Message Date
Sébastien Helleu 3200a05c00 relay/api: fix memory leak in resources "handshake", "input" and "completion" 2026-06-17 21:54:15 +02:00
Sébastien Helleu 861f589fc2 core: update ChangeLog (#2326) 2026-06-17 21:31:03 +02:00
aizu-m c40261aed1 xfer: fix out-of-bounds write in xfer_dcc_resume_hash (#2326) 2026-06-17 21:29:45 +02:00
Sébastien Helleu 770e733303 ci: switch from Ubuntu 24.04 to 26.04 2026-06-15 21:55:54 +02:00
Sébastien Helleu 9bd2aaa25d core: mute compiler warning on calls to dup() function 2026-06-15 08:22:03 +02:00
Sébastien Helleu 4e206ee3ae trigger: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:55:20 +02:00
Sébastien Helleu 7ff71d2b0e spell: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:55:10 +02:00
Sébastien Helleu 203fdca3e8 script: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:54:40 +02:00
Sébastien Helleu e3ba25df19 relay: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:54:10 +02:00
Sébastien Helleu 64566629c5 irc: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:52:12 +02:00
Sébastien Helleu 7e3afaf46d core, api: use "const char *" variables for result of string functions with const parameter 2026-06-15 07:52:10 +02:00
Sébastien Helleu cf702d541f api: change type of parameter "pos_option_name" to "const char **" in function config_search_with_string 2026-06-15 07:29:33 +02:00
Sébastien Helleu a8067751eb doc/plugin: fix parameters of mkdir functions
The directory parameter is always `const char *` and not `char *`.
2026-06-15 07:29:28 +02:00
Sébastien Helleu a696a100d8 core: update ChangeLog (#2325) 2026-06-12 13:02:05 +02:00
aizu-m e60786d059 core: fix buffer overflow in function network_pass_socks5proxy (#2325)
bound the configured proxy username and password before they are copied into the fixed stack buffer in network_pass_socks5proxy, otherwise a login longer than the buffer (a long password or token) overruns it while building the SOCKS5 auth request.
2026-06-12 13:00:17 +02:00
Sébastien Helleu d78105ddf5 core: add CVE IDs in ChangeLog 2026-06-09 22:10:17 +02:00
weechatter 2a8c86242b core: update German translations 2026-06-09 10:42:23 +02:00
Sébastien Helleu dd9ef2f4d9 tests: add missing include of string.h 2026-06-08 23:17:19 +02:00
Sébastien Helleu 4c6c55befe core: update translations 2026-06-08 23:15:00 +02:00
Sébastien Helleu de878b2303 relay/api: remove error 400 which is never returned in response to GET /api/scripts 2026-06-08 23:11:27 +02:00
Sébastien Helleu 80a47b6731 relay/api: add missing fields in script object in OpenAPI document 2026-06-08 23:11:06 +02:00
Sébastien Helleu 551c12e049 relay/api: add resource GET /api/scripts 2026-06-08 23:04:40 +02:00
Sébastien Helleu 12016c4c05 script: add info "script_languages" 2026-06-08 18:54:06 +02:00
Sébastien Helleu 3aeaa70e64 ci: bump poexam to version 0.0.11 2026-06-07 21:56:22 +02:00
Sébastien Helleu 66e633e27e core: add version 4.9.2 2026-06-07 11:51:55 +02:00
Sébastien Helleu 436bbeceff tests: increase buffer size for injection of fake IRC message 2026-06-07 08:47:36 +02:00
Sébastien Helleu c307087e2d core: update ChangeLog (#2324) 2026-06-06 11:19:14 +02:00
aizu-m 51a1149852 relay: fix out-of-bounds read in relay_http_print_log_request (#2324) 2026-06-06 11:18:06 +02:00
Sébastien Helleu d74993a42c relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
A relay client could send data with no end-of-line (an unterminated method
or header line) and dribble its payload, making WeeChat accumulate it in the
partial message buffer that grew without limit, until all memory was
exhausted. This path is reachable before authentication during websocket
initialization with the "weechat" and "irc" protocols.

The accumulated partial message is now bounded by
RELAY_HTTP_PARTIAL_MESSAGE_MAX_LENGTH: once the limit is reached, the extra
data is ignored.
2026-06-06 09:36:22 +02:00
Sébastien Helleu 51464e400f core: add links to issues in ChangeLog (#2321, #2322) 2026-06-06 07:20:41 +02:00
Sébastien Helleu 1c5e6c3fc2 core: update ChangeLog (#2323) 2026-06-06 07:20:38 +02:00
Sébastien Helleu e563dfc903 doc: add build of Serbian API Relay doc 2026-06-06 07:09:04 +02:00
Sébastien Helleu befbcceb7f relay/api: add field "last_read_line_id" in GET /api/buffers 2026-06-06 07:04:46 +02:00
aizu-m 56f9ad68fb xfer: fix out-of-bounds read in xfer_chat_recv_cb on empty line (#2323) 2026-06-06 07:01:18 +02:00
aizu-m 328f86affc irc: fix out-of-bounds read in DCC command with quoted filename 2026-06-04 23:17:58 +02:00
Sébastien Helleu f4dc30ec58 tests: add tests on function xfer_file_find_filename 2026-06-04 23:17:58 +02:00
aizu-m 23291acb7b xfer: replace directory separator in remote nick by underscore in download filename 2026-06-04 22:38:08 +02:00
Sébastien Helleu b802681230 api: fix infinite loop in function string_replace when the search string is empty 2026-06-03 21:15:16 +02:00
Sébastien Helleu 3687ce0f0f relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
A relay client could announce a huge websocket frame (or HTTP body via
"Content-Length") and dribble its payload, making WeeChat accumulate it
in a buffer that grew without limit, until all memory was exhausted. The
websocket frame path is reachable before authentication with the
"weechat" and "irc" protocols.

The announced websocket frame length and HTTP "Content-Length" are now
bounded by WEBSOCKET_FRAME_MAX_LENGTH and RELAY_HTTP_BODY_MAX_LENGTH: an
oversized websocket frame closes the connection, and an oversized body is
rejected.
2026-06-01 21:56:34 +02:00
Sébastien Helleu 1211510ded irc: limit size of data received from the server to prevent memory exhaustion
A malicious or compromised IRC server could send data with no end-of-line
(or a flood of "005" messages), making WeeChat accumulate it in a buffer
that grew without limit, until all memory was exhausted.

The unterminated received message and the accumulated "005" (ISUPPORT)
data are now bounded by IRC_SERVER_RECV_MSG_MAX_LENGTH and
IRC_SERVER_ISUPPORT_MAX_LENGTH: extra data is ignored once the limit is
reached.
2026-06-01 21:53:03 +02:00
aizu-m 07871f123f core: fix possible integer truncation in function eval_string_split (#2320) 2026-06-01 10:25:35 +02:00
Sébastien Helleu a0cf82d4a6 core: replace Bash/Ubuntu with WSL in README 2026-05-31 17:24:41 +02:00
Sébastien Helleu 13291b6b9a core: add missing trailing slash to Ruby scripts URL in README 2026-05-31 17:24:24 +02:00
Sébastien Helleu 76d652a513 core: fix multi-protocol feature wording in README 2026-05-31 17:24:13 +02:00
Sébastien Helleu ff9b698665 core: improve wording of semantic versioning section in README 2026-05-31 17:24:01 +02:00
Sébastien Helleu d5c985eb11 core: add security policy in SECURITY.md 2026-05-31 16:04:33 +02:00
Sébastien Helleu b29f464322 ci: enable ruby 3.3 module on Rocky Linux 9 2026-05-31 15:13:43 +02:00
Sébastien Helleu 171a9a9fc4 ci: install dnf-plugins-core on Rocky Linux 9 for dnf config-manager 2026-05-31 15:13:43 +02:00
Sébastien Helleu d7bc041098 core: add version 4.9.1 2026-05-31 15:09:01 +02:00
Sébastien Helleu 43a118ac47 core: fix timing attack on TOTP validation (GHSA-vhv8-g2r9-cwcc)
weecrypto_totp_validate compared the generated and client-supplied OTPs
with strcmp and broke out of the time-window loop on the first match.
Both choices leaked information via response timing: strcmp leaked the
expected OTP digit-by-digit (shrinking the brute-force search from
~10^digits to a handful of guesses within the 30-second window), and
the early break leaked which window offset matched.

Compare in constant time with string_memcmp_constant_time and always
iterate the full window, OR-ing the result into otp_ok without an
early exit.

This affects both relay protocols (which call totp_validate via the
public info hook) and any other caller of the info hook.
2026-05-31 09:16:46 +02:00
Sébastien Helleu e540d7a2cf relay/irc: fix timing attack on PASS command (GHSA-vhv8-g2r9-cwcc)
The IRC relay protocol's PASS handler compared the server password with
the client-supplied value using strcmp, leaking the password byte-by-byte
via response timing. This is the same class of bug fixed for the api and
weechat protocols, on a separate code path that did not go through
relay_auth_check_password_plain.

Extract the HMAC-then-constant-time-compare logic from
relay_auth_check_password_plain into relay_auth_password_equals, then
use it in both the plain-auth wrapper and the IRC PASS handler.
2026-05-31 09:16:36 +02:00
Sébastien Helleu 6948aea626 relay: fix timing attack on password authentication (GHSA-vhv8-g2r9-cwcc)
The relay authentication used non-constant-time comparisons (strcasecmp,
strcmp) to verify password hashes and plaintext passwords, allowing an
attacker to derive the expected hash byte-by-byte from response timing
and then authenticate without knowing the password.

- SHA/PBKDF2 hex hash comparisons: normalize the client-supplied hash to
  uppercase and compare in constant time over the fixed expected length.
- Plaintext password comparison: HMAC-SHA256 both passwords with a fresh
  per-call random key and compare the fixed-size MACs in constant time,
  hiding both per-byte timing and the password length.

Add string_memcmp_constant_time helper in core, exposed via the plugin
API. Bump WEECHAT_PLUGIN_API_VERSION accordingly.
2026-05-31 09:16:15 +02:00
Sébastien Helleu 5dbb96b66a relay: limit size of decompressed websocket frame to prevent memory exhaustion (GHSA-v2v4-45wm-5cr3)
An authenticated relay client using the permessage-deflate websocket
extension could send a small compressed frame that decompresses to an
unbounded amount of data, exhausting all memory and crashing WeeChat.

The output buffer in relay_websocket_inflate is now capped to
WEBSOCKET_INFLATE_MAX_SIZE: frames decompressing beyond this limit are
rejected and the connection is closed.
2026-05-31 09:16:06 +02:00
Sébastien Helleu 4fdcbf8f93 irc: fix description of info "irc_nick_from_host"
This fixes the following warning from xgettext:

src/plugins/irc/irc-info.c:1361: warning: Message contains an embedded email address.  Better move it out of the translatable string, see https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html
2026-05-30 15:36:26 +02:00
Sébastien Helleu e4b70ad252 core: update translations 2026-05-30 14:00:43 +02:00
Sébastien Helleu d7fd2b7b0b core: define author name/email as constants
This fixes the following compiler warning:

src/core/core-args.c:180: warning: Message contains an embedded email address.  Better move it out of the translatable string, see https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html
2026-05-30 13:39:45 +02:00
Sébastien Helleu 73cf57742e doc: make pygmentize optional at build time
If pygmentize is not found, the build now emits a CMake warning and
proceeds with an empty dark theme stylesheet rather than aborting.
A non-zero exit from pygmentize is also downgraded from SEND_ERROR to
WARNING for the same reason. This restores the pre-existing behavior
where the documentation could be built without any pygments tooling
installed (Asciidoctor then renders code blocks as plain text).
2026-05-24 18:03:12 +02:00
Sébastien Helleu bf7b8484cd doc: switch syntax highlighting to automatic light/dark theme with bevel on code blocks
Syntax highlighting now follows the user's `prefers-color-scheme`:

- Light theme uses the pygments `default` style, embedded by Asciidoctor as before.
- Dark theme uses the pygments `monokai` style, generated at CMake
  configure time via `pygmentize` and injected into the docinfo through a
  `@PYGMENTS_DARK_CSS@` placeholder, scoped under
  `@media (prefers-color-scheme: dark)`.

To support template substitution, `doc/docinfo.html` is renamed to
`docinfo.html.in` and produced into the build directory via
`configure_file`; all HTML targets now depend on the generated docinfo
and the `docinfodir` attribute points to the binary dir.

Code blocks also gain a subtle 3D bevel:

- `pre` borders use theme-specific bevel colors (`--pre-bevel-light` on
  top/left, `--pre-bevel-dark` on bottom/right) for a raised look in both
  themes.
- A shared `--pre-bevel-bg` surface color is applied to literalblock,
  listingblock and `pre.pygments`, so all code blocks sit on the same
  background regardless of the pygments style.
- `pre { line-height: 1.25 }` is forced to keep line spacing consistent
  between light (Asciidoctor base `1.45`) and dark (pygments `125%`).

`python3-pygments` is added to the documented build dependencies (the
`pygmentize` binary it provides is required at configure time).
2026-05-24 16:46:36 +02:00
weechatter 86f51b66b3 core: update German translations 2026-05-23 21:42:48 +02:00
Sébastien Helleu 1400b6c197 core: add fix of IRC tag in ChangeLog 2026-05-23 13:23:26 +02:00
Sébastien Helleu c71978c0b3 core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals (closes #1742) 2026-05-23 12:15:04 +02:00
Sébastien Helleu 4c38ce050b irc, script: display all input actions and in the same way in /list and /script buffers title 2026-05-22 07:56:31 +02:00
Sébastien Helleu 5520ed1950 fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed 2026-05-21 13:55:15 +02:00
Sébastien Helleu ad35aef1f4 core: fix French translations 2026-05-20 21:56:45 +02:00
Sébastien Helleu 88f0070674 irc: fix tag in message with list of tags when joining a channel
The message with list of nicks on the channel has now tag irc_353 instead of
irc_366.
2026-05-20 20:24:06 +02:00
Sébastien Helleu 7683287f71 relay: add "api" protocol in help on options relay.network.password_hash_algo and relay.network.password_hash_iterations 2026-05-20 20:19:30 +02:00
Sébastien Helleu 33adaef85c core: add missing word in French translation of the welcome message 2026-05-20 20:13:26 +02:00
Sébastien Helleu 6f3c804379 core: add missing word in French translation of /help upgrade 2026-05-20 20:12:37 +02:00
Sébastien Helleu 617b4e4dee core: fix option name in French translation of /help buffer 2026-05-20 08:31:55 +02:00
Sébastien Helleu ea1eb76b2d core: fix trailing punctuation in German translation of /help script.look.use_keys 2026-05-17 20:59:07 +02:00
weechatter ad12925d6c core: update German translations 2026-05-13 21:04:45 +02:00
Sébastien Helleu a5fcf898b9 ci: bump poexam to version 0.0.10 2026-05-13 07:43:47 +02:00
Ivan Pešić 14d544be39 core: update Serbian translation (#2318) 2026-05-12 22:40:12 +02:00
Sébastien Helleu 3e994996c6 core: set max curl version to 8.21.0 for symbol CURLAUTH_DIGEST_IE 2026-05-12 13:12:12 +02:00
Sébastien Helleu 3341b9a2d2 core: remove zero width spaces (U+200B) in German translation of /help pipe 2026-05-10 19:28:25 +02:00
Sébastien Helleu 815640b840 relay: add option relay.network.unix_socket_permissions (closes #2317) 2026-05-10 19:22:57 +02:00
Sébastien Helleu acd3d91318 core: fix "Language" field in German translations
Country code is unnecessary: language "de" is equivalent to "de_DE".
2026-05-10 10:04:21 +02:00
Sébastien Helleu ef5f4d8ee6 core: fix "Language-Team" field in gettext file headers 2026-05-10 10:04:19 +02:00
weechatter d40217d1e6 core: update German translations 2026-05-06 15:59:20 +02:00
Sébastien Helleu 17b593325a core: complete /help away by mentioning the option irc.look.display_away 2026-05-04 18:47:04 +02:00
weechatter 3456e848da core: update German translations 2026-04-30 14:33:33 +02:00
Sébastien Helleu 723232ac35 ci: bump Lua from 5.3 to 5.4 2026-04-30 00:17:54 +02:00
Sébastien Helleu 5f5f9f35e7 debian: bump Lua from 5.3 to 5.4 2026-04-30 00:17:23 +02:00
Sébastien Helleu 86a6c4f5ff debian: remove patch for build of Debian packages on Ubuntu Focal 2026-04-29 23:58:22 +02:00
Sébastien Helleu 3082c2e4e5 core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions 2026-04-28 21:30:51 +02:00
Sébastien Helleu 062109e33d relay: add protocol "api" in description of info "relay_client_count" 2026-04-28 21:22:38 +02:00
Sébastien Helleu fd88c9a45b relay: remove protocols from the plugin description 2026-04-28 21:19:10 +02:00
Sébastien Helleu a8c4d5604e ci: bump poexam to version 0.0.9 2026-04-16 20:32:06 +02:00
Emir SARI ef4c657157 core: update Turkish translations
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2026-04-15 13:20:06 +02:00
Sébastien Helleu 0c29e5a630 core: fix possible integer truncation in functions eval_string_cut and eval_string_repeat 2026-04-10 21:48:56 +02:00
Sébastien Helleu 77a0dbfd44 core: remove dead code 2026-04-10 21:48:37 +02:00
weechatter afa42ec851 core: update German translations 2026-04-06 11:29:02 +02:00
Sébastien Helleu 8da86431da logger: fix file size example in /help logger.file.rotation_size_max 2026-04-05 21:50:41 +02:00
Sébastien Helleu 3d7f988973 core: use util functions to parse integers in bar functions 2026-04-05 16:53:05 +02:00
Sébastien Helleu 5ed21d7dad core: use util functions to parse integers in gui curses functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 54eff44d74 core: check error ERANGE after call to strtoul in function util_version_number 2026-04-05 15:33:33 +02:00
Sébastien Helleu 83d760deae core: check error ERANGE after call to strtoull in function util_parse_delay 2026-04-05 15:33:33 +02:00
Sébastien Helleu 5147b19e51 core: use function util_parse_longlong in function util_parse_time 2026-04-05 15:33:33 +02:00
Sébastien Helleu 50959eeb01 core: use function util_parse_longlong in upgrade functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu ac2ed69c0b core: use function util_parse_longlong in function sys_setrlimit 2026-04-05 15:33:33 +02:00
Sébastien Helleu 2f7f707df0 core: use function util_parse_longlong in function string_parse_size 2026-04-05 15:33:33 +02:00
Sébastien Helleu 94e5de4836 core: use function util_parse_int in function string_get_priority_and_name 2026-04-05 15:33:33 +02:00
Sébastien Helleu 38f9a5587f core: use util functions to parse integers in function network_connect_child_read_cb 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6432711798 core: use util functions to parse integers in hook functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 81c23a5134 core: use util functions to parse integers in hdata functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6336c22293 core: use util functions to parse integers in eval functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 6658122b03 core: use util functions to parse integers in config functions 2026-04-05 15:33:33 +02:00
Sébastien Helleu 7e8f8b5178 core: use util functions to parse integers in core commands 2026-04-05 15:33:33 +02:00
Sébastien Helleu d00e334738 core: add missing non-breaking spaces in French translations 2026-04-05 09:58:44 +02:00
Sébastien Helleu f48b0bae2e core: fix URL in /help relay.network.websocket_allowed_origins (Polish) 2026-04-02 19:59:25 +02:00
Sébastien Helleu d3d18cd4c2 core: add missing double quotes in /help relay.network.websocket_allowed_origins (German) 2026-04-02 19:30:28 +02:00
Sébastien Helleu cead39b52f core: add /mute in default command for key alt+"=" (toggle filters)
Since v4.8.0 and commit d0298b4738, toggling
filters with `/filter toggle` displays a message on core buffer.

This is OK when running the command manually, but not when pressing the key
alt+"=".
2026-03-31 19:12:46 +02:00
Emil Velikov 7d88e53182 Bump required zstd to v1.4.0
Bump the requirement to v1.4.0, which means we can remove all the ifdef
guards.

It was released over 6 years ago, with latest release being 1.5.7.

The oldest distributions we target Ubuntu 20.04 and Debian Bullseye,
have 1.4.4 and 1.4.8 respectively.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-03-29 18:39:02 +02:00
Luc Schrijvers 8fe741e057 Build fix for Haiku 2026-03-29 18:31:27 +02:00
LuK1337 b6ef936cca cmake: enable position independent code (PIE)
Fixes the following build error when compiling Fedora 45 RPM:

/usr/bin/ld.bfd: tests/unit/CMakeFiles/tests.dir/tests.cpp.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

See: https://cmake.org/cmake/help/latest/prop_tgt/POSITION_INDEPENDENT_CODE.html
     https://cmake.org/cmake/help/latest/policy/CMP0083.html
2026-03-29 18:28:48 +02:00
Sébastien Helleu 7c2bae9faf ci: add tests with Fedora 43 2026-03-29 12:36:30 +02:00
Sébastien Helleu 2b48eba784 Version 4.10.0-dev 2026-03-29 10:24:55 +02:00
Sébastien Helleu 5969f9faf6 Version 4.9.0 2026-03-29 10:20:23 +02:00
Sébastien Helleu b70b484f5f debian: update changelog 2026-03-28 22:31:27 +01:00
Sébastien Helleu b250d71608 debian: remove redundant priority optional field from control 2026-03-28 22:29:00 +01:00
Sébastien Helleu 94457f8313 debian: bump Standards-Version to 4.7.3 2026-03-28 22:27:09 +01:00
Sébastien Helleu 0cd0e7be6a core: remove link to Diaspora* from README 2026-03-27 19:22:37 +01:00
Sébastien Helleu 2ececc1184 core: remove link to Slant from README 2026-03-27 19:21:55 +01:00
Sébastien Helleu b8bef1c3e1 irc: fix display of CTCP query sent multiple times to the same user when capability echo-message is enabled (closes #2309) 2026-03-27 18:32:31 +01:00
Sébastien Helleu d9e56c3df8 ci: add check of gettext files with poexam 2026-03-25 21:49:02 +01:00
Emir SARI dc28050b8b core: update Turkish translations 2026-03-25 08:46:52 +01:00
Sébastien Helleu f53e7fb9ef core, plugins: fix typos in comments on functions, use imperative 2026-03-23 20:45:36 +01:00
Sébastien Helleu d34eb40187 core: set max curl version to 8.20.0 for RTMP symbols
rtmp support has been dropped in curl, see:
https://github.com/curl/curl/commit/ceae02db040de3cf7ae4c3f8ec99e8286b568c2e
2026-03-21 17:59:48 +01:00
Sébastien Helleu 2cbbb677f3 core: replace "motdepasse" by "mot_de_passe" in French translations and docs 2026-03-21 17:30:12 +01:00
Sébastien Helleu f7267bc992 core: replace "mypassword" by "my_password" in /help secure 2026-03-21 17:27:02 +01:00
Sébastien Helleu 147d5b3f88 core: replace "mynick" by "andrew" in /help secure 2026-03-21 17:22:20 +01:00
Sébastien Helleu da4881959e core: replace "proxyname" by "proxy_name" in /help proxy 2026-03-21 13:28:38 +01:00
Sébastien Helleu 5e963c7546 core: replace "barname" by "bar_name" in /help bar 2026-03-21 13:23:55 +01:00
Sébastien Helleu 41d8e06394 ci: fix branch for Homebrew/actions/setup-homebrew 2026-03-21 12:01:08 +01:00
Sébastien Helleu 52d1245bad ci: bump actions/checkout to v6 2026-03-21 11:46:30 +01:00
Sébastien Helleu 961dc515a0 ci: add new job "checks" to check gettext files, shell and Python scripts, Python stub file and Curl symbols 2026-03-21 11:44:24 +01:00
Sébastien Helleu 73ec7c0641 ci: reorder and rename jobs 2026-03-21 11:28:11 +01:00
Sébastien Helleu c60a5fde14 ci: remove temporary fix for brew install 2026-03-21 10:15:14 +01:00
Eli Schwartz 0bbae498c9 python: fix archaic and soft-deprecated use of raw cmake vars
In commit 9a9a262ea1 we moved from
pkg-config to find_package() to work around a deficiency in the pkgsrc
package manager, which does not ship pkg-config files as intended by
CPython.

Modern CMake discourages use of "FOO_LIBRARIES" in all cases, when
imported "interface" libraries can and should be used instead. The meson
equivalent is `dependency()` versus `cc.find_library()`, so this is
certainly a general trend among modern build systems.

An imported interface target, such as the previous PkgConfig::PYTHON,
carries with it the various internal properties such as DEFINITIONS,
INCLUDE_DIRS, or LIBRARIES, and batch applies them. It also avoids
leaking across cmake 2.x style whole-directory scopes.

Use the documented cmake imported interface target for embedding Python
and avoid `add_definitions(${Python_DEFINITIONS})` and similar. As a
bonus, it's also shorter and more concise.

Fixes: 9a9a262ea1
Fixes: https://github.com/weechat/weechat/pull/2251
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
2026-03-21 08:53:48 +01:00
Eli Schwartz 4c79e870af python: fix broken usage of FindPython.cmake breaking python selection
In commit 9a9a262ea1 we moved from
pkg-config to find_package() to work around a deficiency in the pkgsrc
package manager, which does not ship pkg-config files as intended by
CPython. In the process, Gentoo and other platforms that, unlike pkgsrc,
publicly support multiple versions of python installed in parallel, had
python version selection broken. Consequently, weechat linked to the
wrong python, which happened to be installed in build chroots but was
not the versioned python package that the weechat package listed as a
dependency. Attempting to install weechat then broke on some systems
(which installed one version of python as a dependency but actually
linked to a totally different one).

This happens due to a design bug in upstream CMake. It is never
conceptually reasonable to use

```
find_package(Python COMPONENTS ...)
```

and omit the "Interpreter" component; if you do, CMake will ignore its
own documentation on how to control the build to use a specific python,
and choose one randomly (== "latest version available"). If, and only
if, the Interpreter component is checked, the development headers /
libraries for python will be guaranteed consistent with the documented
lookup variables from FindPython.cmake's documentation.

Bug: https://bugs.gentoo.org/968814
Fixes: 9a9a262ea1
Fixes: https://github.com/weechat/weechat/pull/2251
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
2026-03-21 08:29:54 +01:00
weechatter dc4df8b9aa core: update German translations 2026-03-19 11:10:26 +01:00
Sébastien Helleu 6bc11571b5 xfer: evaluate option xfer.network.own_ip 2026-03-18 18:26:06 +01:00
Sébastien Helleu d1b71a8562 core: fix typo in German translation 2026-03-17 23:26:27 +01:00
weechatter 19a6591410 core: update German translations 2026-03-17 16:28:04 +01:00
Sébastien Helleu 25e0809c55 doc/user: fix French translation of title 2026-03-16 21:20:51 +01:00
Sébastien Helleu e8d0399623 irc: fix translations of /help irc.look.list_buffer_sort 2026-03-16 13:23:52 +01:00
Sébastien Helleu c41d73e417 irc: fix typo on field name in /help irc.look.list_buffer_sort 2026-03-16 13:16:44 +01:00
Sébastien Helleu 1532efea6d core: fix style in ChangeLog 2026-03-14 00:12:17 +01:00
Sébastien Helleu 9bf2d51493 core: add option -e to evaluate all commands before executing them in command /eval 2026-03-14 00:03:27 +01:00
Sébastien Helleu 27ae6ca789 core: fix crash with /eval when the current buffer is closed in a command 2026-03-13 23:11:00 +01:00
Sébastien Helleu 916c59d8f0 doc/faq: fix key to search text in current buffer
Since WeeChat 4.2.0, Ctrl+r has been replaced by Ctrl+s.
2026-03-13 21:57:12 +01:00
Sébastien Helleu 37bdf6586b core: remove extra pipe in German translation 2026-03-12 20:38:54 +01:00
Sébastien Helleu 13e9381e19 core: fix typo in French translation: "repertoire" -> "répertoire" 2026-03-12 20:31:40 +01:00
Sébastien Helleu b94e4af67e core: fix typo in French translation: "attentus" -> "attendus" 2026-03-12 20:29:51 +01:00
Sébastien Helleu 431d9ad64a irc: fix typo: "acknowledgement" -> "acknowledgment" 2026-03-12 20:26:22 +01:00
Sébastien Helleu f5bbe35cfb irc, relay: replace "cancelled" by "canceled" in auto-reconnection message 2026-03-12 20:24:53 +01:00
Sébastien Helleu b82ce33c6c core: fix quotes in upgrade error message 2026-03-12 20:16:49 +01:00
Sébastien Helleu 87a683ebdb typing: add option typing.look.item_text (closes #2305) 2026-03-09 23:58:11 +01:00
Sébastien Helleu f048ea9eac relay: add missing info in French translation of /help relay 2026-03-09 23:31:19 +01:00
Sébastien Helleu fc0fb05ec0 irc: add missing angle brackets in French translation of /help cycle and /help part 2026-03-09 23:28:26 +01:00
Sébastien Helleu 835e0b9549 irc: replace simple by double quotes in French translation of /help server 2026-03-09 23:25:56 +01:00
Sébastien Helleu 507f172dae fset: fix French help on parameter "-format" in /help fset 2026-03-09 23:24:39 +01:00
Sébastien Helleu fc595afd08 irc: add missing double quotes in French error message 2026-03-09 23:21:54 +01:00
Sébastien Helleu 2f5305dc82 core: fix French translation of /help upgrade 2026-03-09 23:17:21 +01:00
Sébastien Helleu 9f2b9c4ea9 core: fix double quote in French output of /sys get rlimit 2026-03-09 23:15:11 +01:00
Sébastien Helleu aea8421e49 core: add missing "(by default)" in French translation of /help weechat.look.buffer_position 2026-03-09 23:11:09 +01:00
Sébastien Helleu 81834c45ae core: add missing "raw" parameter in French translation of /help window 2026-03-09 23:07:03 +01:00
Sébastien Helleu 01d2887b13 core: replace ellipsis by "etc." in /help secure 2026-03-09 23:01:29 +01:00
Sébastien Helleu 8b30d9a7d7 core: add missing double quotes in French translation of /help secure 2026-03-09 22:59:02 +01:00
Sébastien Helleu 92327871d2 core: add missing info in French translation of /help secure 2026-03-09 22:57:17 +01:00
Sébastien Helleu b2556f99f4 core: add missing key context "default" in French translations 2026-03-09 22:54:48 +01:00
Sébastien Helleu ec6372f4df core: add missing double quote in /help hotlist 2026-03-09 22:51:20 +01:00
Sébastien Helleu abb74ac178 core: add missing double quote in French translation of /help buffer 2026-03-09 22:47:46 +01:00
Sébastien Helleu 71329fd595 core: remove double quotes around buffer number in error message 2026-03-09 22:45:30 +01:00
Sébastien Helleu 106fe6ca7c core: update copyright dates 2026-03-08 10:37:15 +01:00
Sébastien Helleu 630f2e2e7c core: translate command line options separately in output of weechat --help 2026-03-08 09:10:29 +01:00
Sébastien Helleu eb0b01f62a core: move functions on command-line arguments to a separate source 2026-03-07 12:47:11 +01:00
Sébastien Helleu fb00b7055c core: add "noqa" on Japanese translation reusing multiple times the same format string 2026-03-07 09:09:11 +01:00
Sébastien Helleu 58b1f5c62b core: add "noqa" on Polish translations where extra backslashes are used 2026-03-07 09:08:37 +01:00
Sébastien Helleu d663070b02 core: fix punctuation errors in translations 2026-03-07 08:56:19 +01:00
Sébastien Helleu 8ff7d63744 core: fix "noqa" markers in Turkish translations 2026-03-07 08:55:27 +01:00
Sébastien Helleu 5eb3bca47b core: add version 4.8.2 2026-03-07 08:19:52 +01:00
Sébastien Helleu d0478bdc04 core: update copyright date 2026-03-07 00:02:34 +01:00
Krzysztof Korościk d7fc65e282 doc: updated Polish translation 2026-03-06 21:56:05 +01:00
Krzysztof Korościk 0d737349be core: updated Polish translation 2026-03-04 23:50:47 +01:00
Sébastien Helleu dc94251b33 core: disable "fuzzing" phase in schemathesis config 2026-02-21 21:40:58 +01:00
Sébastien Helleu 306155aa48 relay/api: fix memory leak in receive of message from remote WeeChat 2026-02-16 18:57:14 +01:00
Sébastien Helleu 238f8cbc7e relay/api: fix memory leaks in resources "ping" and "sync" 2026-02-16 18:33:03 +01:00
Sébastien Helleu fa043644cb core: add missing pipes in translations 2026-02-09 21:37:22 +01:00
Sébastien Helleu e06b3c1d7e core: add missing closing parenthesis in /help buflist 2026-02-07 22:09:16 +01:00
Sébastien Helleu 5b052532ec core: remove double spaces in translations 2026-02-07 21:55:49 +01:00
Sébastien Helleu 18bce9e8c4 core: remove trailing backslash in German translation of /help buflist.look.add_newline 2026-02-04 23:06:22 +01:00
Sébastien Helleu 886042a875 core: replace real tab by \t in German translation of /help filter
This was causing a display issue because the tab char is used to separate
prefix from message.
2026-02-04 23:05:00 +01:00
Sébastien Helleu fca4ee28e0 core: update German translations 2026-02-04 23:00:48 +01:00
Emil Velikov 7c37eced93 cmake: plugins: remove no longer used include()s
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov a413d16038 cmake: plugins: simplify dependency handling
Move the requirement checks within the respective plugin cmakefile.
Use REQUIRED instead of the manual FOUND check and error handling.

Note: the tcl check was only moved, since using REQUIRED  explodes in
CI.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 440907e1cd cmake: simplify tests handling
Move the requirement checking and the dummy test where they are used.
Use REQUIRED instead of the manual FOUND check and error handling.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov cb08473bdc cmake: remove explicit fPIC handling
With CMP0083 introduced with cmake 3.14, as we set the variable
CMAKE_POSITION_INDEPENDENT_CODE we can rely on the build system to do
the correct thing, across all the targets.

Since we require 3.18 (or 3.16 in the patched Debian/Ubuntu version),
which sets the policy to NEW we're all set.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 71ef7e286c cmake: remove implicitly enabled cmake policy handling
Whenever cmake_minimum_required() is used, all the policies available in
the specified version are toggled to NEW. Thus we no longer need to
manually change them.

The highest policy - CMP0017 - has been around circa cmake 2.8.4, while
we require 3.x.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 2a234b3bfe cmake: reuse CMAKE_DL_LIBS
The token has been available since cmake 3.0 (at least), so might as
well use it instead of our ad-hoc check.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 6442b938eb cmake: move zstd/cjson include handling
Move the respective include_directories() stansas to the top-level
cmakefile. While this technically adds them to targets where they are
not needed, there is no harm is having them.

This maskes the find_dependency/use_includes/use_libs more consistent
across the board and helps it stand out where it's forgotten. Fixes for
which will be coming at a later date.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov c8d2b4448a cmake: inline a few variables as needed
Avoid creating/appending variables and effectively deviating from the
style used across the project.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 3918efd8e9 cmake: remove CMAKE_REQUIRED_* instances
The tcl ones has not been required for over a decade since commit
ffdba5b24 ("Remove check of Tcl_CreateNamespace in cmake build (not used
any more) (bug #27119)").

While the top-level one, with the EXTRA_LIBS reshuffle/consolidation a
few commits ago.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 4decd2c386 cmake: remove Darwin/resolv quirks
Since commit e98a32373 ("core: check if res_init requires linking with
libresolv") we detect if/when we should be linking against libresolv.

The detection seems a bit clunky (to me), although it's better to keep
things consolidated/consistent across tree. Swap the Darwin checks with
the new token LIBRESOLV_HAS_RES_INIT.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov 323ab8810e cmake: consolidate non-linux library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Note that final handling varies a bit, namely:
 - OpenBSD/intl should be handled via the existing cmake/FindGettext.cmake
 - Darwin/resolv should not be needed since commit e98a32373 ("core: check
   if res_init requires linking with libresolv")
 - the backtrace/execinfo handling has been consolidated and moved

In the unlikely case of unwanted over-linking, the platforms can add
`-Wl,--as-needed` to their linker flags. Something which is strongly
encouraged and has been the default across multiple (linux) distros for
years.

Alternatively, if move quirks are needed they should be handled in a
single place.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov fc6003c74e cmake: consolidate libm library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

This change technically adds an extra link for the unit tests, which
seemingly was omitted by mistake. Alternatively, the extra over-linking
won't be an issue in practise.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:26 +01:00
Emil Velikov ae54c3ef65 cmake: consolidate iconv/gettext library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Emil Velikov b38c00bb0d cmake: consolidate zlib/zstd library handling
Move the handling to the top-level, adding it _once_ to EXTRA_LIBS.
Thus avoiding some duplication across the board.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Emil Velikov 20a7affb70 cmake: remove unnecessary add_dependencies()
In a handful of places we explicitly use add_dependencies() where the
exact same libraries are also (implicitly) added as dependencies via
target_link_libraries().

Remove the folder, which helps us remove some duplication with follow-up
patches.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2026-02-04 22:21:25 +01:00
Ivan Pešić 150e6ecd82 core: update Serbian translation 2026-02-03 13:46:22 +01:00
weechatter 87ef578ad2 core: update German translations 2026-02-03 10:59:40 +01:00
Sébastien Helleu ef5f197a4a irc: fix unit of server option anti_flood from seconds to milliseconds in output of /server listfull 2026-01-30 13:49:23 +01:00
Sébastien Helleu 250db946b0 core: fix typos in French translation of /help weechat.look.hotlist_add_conditions 2026-01-21 21:23:02 +01:00
Sébastien Helleu f0160bf5ab core: add missing context in English message when a key is added with /key missing 2026-01-21 20:53:25 +01:00
Sébastien Helleu 7d51a1331b core: fix typos in /help allchan, /help allpv and /help allserv 2026-01-21 20:38:37 +01:00
Sébastien Helleu 22b335ce86 core: fix typo in /help help 2026-01-21 20:28:07 +01:00
Sébastien Helleu f26f73f283 core: fix line wrapping in German translations 2026-01-21 20:24:55 +01:00
Sébastien Helleu 323c9e2bfe core: remove obsolete comments in Polish translations 2026-01-21 20:24:42 +01:00
Sébastien Helleu 894df0e9e6 core: fix typo in French translation of /help remote 2026-01-19 23:56:32 +01:00
Sébastien Helleu ead76532de core: fix typo in French and Polish translations of /help exec 2026-01-19 23:54:10 +01:00
Sébastien Helleu da2f506f2e core: fix typo in French and Serbian translations of /help plugin 2026-01-19 23:46:46 +01:00
Sébastien Helleu e42e811c95 core: fix typo in French translation of /help filter 2026-01-19 23:39:16 +01:00
Sébastien Helleu 889450fb31 core: fix typos in translations of /help buffer 2026-01-16 13:41:30 +01:00
Ivan Pešić 3c11e09c30 core/doc: update Serbian translation 2026-01-16 13:39:36 +01:00
Sébastien Helleu 616daecdd0 core: fix typos in French translations 2025-12-21 12:07:50 +01:00
Sébastien Helleu 9b4fd66de7 irc: ignore self join if the channel is already joined (closes #2291)
There is an issue with some IRC servers that may send a JOIN with self nick
once already on the channel, this results in a clear of the nicklist on the
second JOIN received.

This fix silently ignores the second self JOIN if the channel is already
joined (with at least one nick).
2025-12-14 14:29:47 +01:00
Sébastien Helleu b42f7a400e ci: remove useless install of msgcheck in CodeQL analysis 2025-12-07 16:24:14 +01:00
Sébastien Helleu 9e814860ae ci: switch from bandit/flake8/pylint to ruff in CI for Python scripts 2025-12-07 16:24:14 +01:00
Sébastien Helleu a2a71b4d33 tests: improve concatenation of Python lists 2025-12-07 09:37:40 +01:00
weechatter 7d6b8f6943 core: update German translations 2025-12-06 00:33:30 +01:00
Krzysztof Korościk 3b4a5bbb09 core: updated Polish translation 2025-12-02 21:49:13 +01:00
Krzysztof Korościk 58b7ec59e9 core: updated Polish translation 2025-12-02 00:59:57 +01:00
Sébastien Helleu 518b9ab381 core: add version 4.8.1 2025-12-01 20:17:07 +01:00
Sébastien Helleu a9e48d33c6 core: add IRC SASL EXTERNAL in upgrade guidelines for version 4.8.0 2025-12-01 18:01:33 +01:00
Sébastien Helleu 1ff001994c irc: fix creation of irc.msgbuffer option without a server name
The regression was introduced by commit
1b669cd13c, which allowed a server name with
upper case but rejected a name or alias with upper case.

This commit fixed the creation of the option when the server name is not given,
so this command works again:

  /set irc.msgbuffer.whois current
2025-12-01 07:48:58 +01:00
Sébastien Helleu 234a37df6f ci: add build with type "Release" and gcc hardened options in matrix 2025-11-30 13:53:44 +01:00
Sébastien Helleu 6bcc6ef65f core: update ChangeLog (issue #2289) 2025-11-30 13:34:05 +01:00
Sébastien Helleu d5e6c94246 core: fix compiler warning on possible buffer overflow in function util_parse_time (closes #2289) 2025-11-30 11:21:42 +01:00
Sébastien Helleu 63b6dee311 core: fix order of sections in ChangeLog 2025-11-30 09:16:42 +01:00
Sébastien Helleu 34697cf5ce Version 4.9.0-dev 2025-11-30 09:11:53 +01:00
445 changed files with 16865 additions and 13708 deletions
+258 -192
View File
@@ -11,6 +11,14 @@ on:
- cron: '22 9 * * 2'
env:
CHECK_DEPS_UBUNTU: >-
curl
gettext
hunspell
hunspell-en-us
hunspell-fr
pipx
shellcheck
WEECHAT_DEPS_UBUNTU: >-
asciidoctor
build-essential
@@ -18,7 +26,6 @@ env:
curl
devscripts
equivs
flake8
gem2deb
guile-3.0-dev
lcov
@@ -29,7 +36,7 @@ env:
libcurl4-gnutls-dev
libgcrypt20-dev
libgnutls28-dev
liblua5.3-dev
liblua5.4-dev
libncurses-dev
libperl-dev
libphp-embed
@@ -40,14 +47,11 @@ env:
php-dev
pipx
pkgconf
pylint
python3-bandit
python3-dev
ruby-pygments.rb
shellcheck
tcl8.6-dev
zlib1g-dev
WEECHAT_DEPS_ROCKYLINUX: >-
WEECHAT_DEPS_REDHAT: >-
asciidoctor
aspell-devel
cjson-devel
@@ -98,15 +102,58 @@ env:
sudo
tcl86
zstd
WEECHAT_DEPS_MACOS: >-
asciidoctor
aspell
cjson
guile
lua
pkg-config
ruby
jobs:
tests_ubuntu:
checks:
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-26.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
pipx install msgcheck ruff
cargo install --version 0.0.11 poexam
- name: Check gettext files (msgcheck)
run: msgcheck po/*.po
- name: Check gettext files (poexam)
run: poexam check --file-stats --rule-stats
- name: Check shell and Python scripts
run: ./tools/check_scripts.sh
- name: Check Python stub file
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
- name: Check Curl symbols
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
install:
strategy:
matrix:
os:
- ubuntu-26.04
config:
- name: "gcc"
cc: "gcc"
@@ -145,32 +192,21 @@ jobs:
cxx: "clang++"
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "${{ matrix.os }} (${{ matrix.config.name }})"
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
env:
PHP_INI_SCAN_DIR: /tmp/php-noscan # embed PHP loads no add-on extensions (see #2009)
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
pipx install msgcheck schemathesis
- name: Check gettext files
run: msgcheck po/*.po
- name: Check shell and Python scripts
run: ./tools/check_scripts.sh
- name: Check Python stub file
run: ./tools/generate_python_stub.py | diff src/plugins/python/weechat.pyi -
- name: Check Curl symbols
run: curl --silent --show-error --fail --retry 10 https://raw.githubusercontent.com/curl/curl/master/docs/libcurl/symbols-in-versions | ./tools/check_curl_symbols.py
mkdir -p /tmp/php-noscan
pipx install schemathesis
- name: Build and run tests
env:
@@ -218,19 +254,210 @@ jobs:
lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
install_fedora:
strategy:
matrix:
os:
- ubuntu-26.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (fedora:43, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
container:
image: fedora:43
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_rockylinux:
strategy:
matrix:
os:
- ubuntu-26.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (rockylinux:9, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
container:
image: rockylinux:9
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
dnf install -y epel-release dnf-plugins-core
dnf config-manager --set-enabled crb
# pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8)
dnf module enable -y ruby:3.3
dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }}
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_freebsd:
strategy:
matrix:
os:
- ubuntu-26.04
config:
# - name: "gcc"
# cc: "gcc"
# cxx: "g++"
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "install (freebsd, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Install dependencies, build and run tests, run WeeChat
uses: vmactions/freebsd-vm@v1
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
TERM: xterm-256color
with:
envs: "CC CXX TERM"
usesh: true
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
run: |
./tools/build_test.sh ${{ matrix.config.buildargs }}
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
install_macos:
strategy:
matrix:
os:
- macos-14
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- name: Setup Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@main
- name: Install dependencies
run: |
brew update
brew install ${{ env.WEECHAT_DEPS_MACOS }}
- uses: actions/checkout@v6
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
RUN_TESTS: "0"
JOBS: "2"
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
build_debian:
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-26.04
name: "${{ matrix.os }} (build Debian)"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
@@ -256,14 +483,13 @@ jobs:
weechat --build-info
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
codeql-analysis:
codeql_analysis:
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-26.04
name: "${{ matrix.os }} (CodeQL)"
runs-on: ${{ matrix.os }}
permissions:
@@ -274,15 +500,12 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
# uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
pipx install msgcheck
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
@@ -296,160 +519,3 @@ jobs:
uses: github/codeql-action/analyze@v3
with:
category: "/language:cpp"
tests_rockylinux:
strategy:
matrix:
os:
- ubuntu-24.04
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "rockylinux-9 (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
container:
image: rockylinux:9
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf install -y epel-release
dnf config-manager --set-enabled crb
dnf install -y ${{ env.WEECHAT_DEPS_ROCKYLINUX }}
- name: Build and run tests
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
tests_freebsd:
strategy:
matrix:
os:
- ubuntu-24.04
config:
# - name: "gcc"
# cc: "gcc"
# cxx: "g++"
# buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "freebsd-14 (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies, build and run tests, run WeeChat
uses: vmactions/freebsd-vm@v1
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
TERM: xterm-256color
with:
envs: "CC CXX TERM"
usesh: true
prepare: pkg install -y ${{ env.WEECHAT_DEPS_FREEBSD }}
run: |
./tools/build_test.sh ${{ matrix.config.buildargs }}
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
tests_macos:
strategy:
matrix:
os:
- macos-14
config:
- name: "gcc"
cc: "gcc"
cxx: "g++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_DOC_INCOMPLETE=ON -DENABLE_PHP=OFF -DENABLE_TESTS=OFF"
name: "${{ matrix.os }} (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- name: Setup Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Install dependencies
run: |
brew update
# temporary fix, see: https://github.com/actions/setup-python/issues/577
rm -f \
/usr/local/bin/2to3 \
/usr/local/bin/idle3 \
/usr/local/bin/pydoc3 \
/usr/local/bin/python3 \
/usr/local/bin/python3-config \
/usr/local/bin/2to3-3.11 \
/usr/local/bin/idle3.11 \
/usr/local/bin/pydoc3.11 \
/usr/local/bin/python3.11 \
/usr/local/bin/python3.11-config \
;
brew install asciidoctor aspell cjson guile lua pkg-config ruby
- uses: actions/checkout@v4
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
RUN_TESTS: "0"
JOBS: "2"
run: ./tools/build_test.sh ${{ matrix.config.buildargs }}
- name: Run WeeChat
env:
TERM: xterm-256color
run: |
weechat --help
weechat-curses --help
weechat --version
weechat --build-info
weechat --colors
weechat --license
weechat --run-command "/debug dirs;/debug libs" --run-command "/quit"
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v4
+281
View File
@@ -0,0 +1,281 @@
Atheme
Autojoin
Charset
Diffie-Hellman
Esc
FlashCode
GnuTLS
Hashtable
Helleu
IPs
Sébastien
WeeChat
Xfer
abc
ack
acks
addcompletion
addinput
addoff
addraw
addreplace
addreplacecompletion
addword
algo
allchan
allpv
alnum
andrew
ansi
api
args
argsN
aspell
autoconnect
autojoin
autoload
autoloaded
autoreconnect
autorejoin
bg
bindctxt
bitlbee
bkl
blocksize
bool
buflist
cJSON
calc
ccc
charset
charsets
chghost
chmod
cleartext
clientinfo
cmd
codepoint
concat
cond
config
crypted
ctcp
ctrl
ctrl-
ctrl-c
ctrl-h
ctrl-n
ctrl-x
ctrl-y
cutscr
cxx
darkgray
deinit
deldict
deloutq
delvar
dhkey
dirs
dlclose
eg
enum
enums
env
esc
eval
fd
ffff
fg
fifo
flashcode
flashtux
freebsd
fset
fsync
gcrypt
getrlimit
getrusage
gnutls
grayscale
gui
gzip
halfop
halfops
hashtable
hdata
hh
horiz
hostname
hostnames
hotlist
hsignal
http
https
hup
ident
ie
il
inclose
infolist
infolists
infos
installremove
irc
ison
javascript
json
kf
kickban
killall
lengthscr
libera
libgcrypt
libs
lightblue
lightcyan
lightgreen
lightmagenta
lightred
linux
listdefault
listdict
listdiff
listfull
listitems
listrelay
listvar
lua
mallinfo
malloc
mirc
modelist
msg
msgN
msgbuffer
multiline
ncurses
newbuffer
nf
nickbot
nicklist
nickserv
nl
noautoload
nobg
nocl
noflush
nohelp
nojoin
noln
nonblock
nooption
norc
nostdin
nosw
noswitch
notls
num
oc
oerr
oftc
ok
ol
osinfo
outqueue
ovh
paramN
params
perl
permessage-deflate
pgdn
pgup
pid
prev
privmsg
ptr
pv
py
quickstart
rc
realname
recv
reinitializing
reop
resetall
resetctxt
revindex
revscr
rgb
rlimit
rusage
rw-rw-r--
sasl
setauto
setdict
setname
setnew
setrlimit
setvar
signon
skipempty
sockaddr
splith
splitv
stderr
stdin
stdout
strcasecmp
strftime
strftimeval
strlen
sublist
subplugin
sw
sys
tThe
tcl
tg
tls
tlscertkey
toggleautoload
togglecmd
toto
totp
truncature
un
unalias
unban
unbindctxt
undef
unescaped
unhide
unhold
unicode
unix
unmark
unmerge
unzoom
uptime
url
urlserver
usec
userhost-in-names
usr
util
valgrind
versiongit
waitpid
wcswidth
wctype
wcwidth
websocket
websockets
weechat
whois
www
xdigit
xfer
xyz
yy
zlib
zstd
+612
View File
@@ -0,0 +1,612 @@
Atheme
Autojoin
Curl
Curses
Debug
Dec
Diffie-Hellman
Filter
FlashCode
GnuTLS
Guile
Helleu
IPs
Lag
Ping
Protocol
Relay
Remote
Reop
Tab
Trigger
Triggers
Typing
URLs
Wallops
WeeChat
Xfer
account
account-
account-notify
account-tag
ack
acks
add
addcompletion
addinput
addoff
addraw
addreplace
addreplacecompletion
addresse
addword
align
all
allchan
allow
allowed
allpv
alnum
alt
alt-c
alt-k
alt-s
alt-v
alt-z
andrew
ansi
apply
area
args
argsN
aspell
attributes
auth
autoconnect
autojoin
autoload
autorejoin
away
away-notify
backspace
bare
bash
beep
before
beginning
beyond
bg
bin
bind
bindctxt
bitlbee
bkl
blue
bold
bool
boolean
both
bottom
bracketed
brown
buflist
cJSON
calc
callbacks
cap-notify
capabilities
capability
ccc
cert
certs
changed
channel
charset
charsets
check
chghost
chmod
cipher
clear
clientinfo
clipboard
cmd
color
colors
command
commands
complete
completion
concat
cond
confirm
connect
connected
connecting
control
copy
core
count
crypt
ctcp
ctrl
ctrl-
ctrl-c
ctrl-h
ctrl-n
ctrl-x
ctrl-y
curl
current
cursor
cut
cutscr
cxx
d'ignore
d'infolist
daemon
darkgray
days
debug
decode
decrypt
default
define
deinit
del
deldict
delete
deloutq
delvar
desc
describe
dhkey
dict
diff
dim
dir
dirs
disable
discard
disconnect
disconnected
display
displayed
dlclose
doc-gen
down
download
draft
dummy
dump
eat
echo-message
edge
emphasized
empty
enable
enabled
end
enum
error
esc
eval
example
exclude
exec
extended-join
external
exts
fail
failed
fast
fd
ffff
fifo
filter
fingerprint
first
flashcode
flashtux
foo
formatted
free
freebsd
fset
fsync
gcrypt
get
getrlimit
getrusage
ghost
giga-octets
git
glitch
gnutls
grab
group
gzip
halfop
halfops
handshake
hash
hashtable
hdata
he
headless
help
here
hexa
hh
hidden
hide
highest
highlight
highlights
history
hold
hook
hooks
horiz
host
hotlist
hsignal
hup
ident
identify
ids
ignored
inclose
include
indent
infolist
infolistes
infolists
init
install
installremove
int
integer
interval
invite-notify
irc
ison
iterations
javascript
join
json
jump
keep
key
keys
kf
kickban
kill
killall
l'autojoin
l'id
lag
last
layout
leave
left
legacy
length
lengthscr
level
lib
libera
libgcrypt
libs
lightblue
lightcyan
lightgreen
lightmagenta
lightred
limit
line
lines
linux
list
listdefault
listdict
listdiff
listen
listfull
listitems
listrelay
listvar
load
logger
loggers
lower
lowest
ls
lua
mallinfo
malloc
marked
mask
memory
merge
merged
meta
meta-
method
mirc
missing
modified
mouse
move
msg
msgN
msgbuffer
multi-prefix
multiline
my
n-
name
names
ncurses
near
network
newbuffer
newline
next
nf
nick
nickbot
nicklist
nicks
nickserv
no-connect
noautoload
nobg
nocl
noflush
nohelp
nojoin
noln
nonblock
nooption
norc
nosh
nostdin
nosw
noswitch
notify
notls
null
num
number
numeric
object
oerr
of
offline
oftc
ok
ol
ops
osinfo
ovh
paramN
params
parted
pass
passphrase
password
password-store
paste
path
paused
pct
pending
perl
permessage-deflate
pgdn
pgup
pid
ping
pong
pos
prefix
prev
previous
print
priority
private
privmsg
property
ptr
py
quit
quoted
rafraichie
rafraichir
rafraichissement
random
raw
rc
realname
reconnect
recreate
recv
red
redirected
redo
refresh
regex
register
relay
reload
remote
remove
rename
renumber
reorder
rep
repeat
reply
req
reset
resetall
resetctxt
resize
restart
restore
return
rev
revindex
revscr
rgb
right
rlimit
root
ruby
run
run-command
runtime
rusage
rw-rw-r--
réinit
safe
sasl
save
scheme
screen
scroll
search
secure
selected
send
server
server-time
setauto
setdict
setname
setnew
setrlimit
setvar
sh
share
shift
shift-
shift-Tab
size
skipempty
sockaddr
sorted
space
speaking
spell
split
splith
splitv
ss
start
status
stderr
stdin
stdout
str
strcasecmp
strftime
strftimeval
strip
strlen
sucks
suffix
suggest
sum
sw
switch
sys
tLe
tab
target
tcl
term
text
tg
time
timeout
timer
tiny
title
tls
tlscertkey
to
toggle
toggleautoload
togglecmd
topic
totp
trigger
triggers
trim
typing
téra-octets
unalias
unavailable
unban
unbind
unbindctxt
undef
undo
unhide
unicode
unix
unload
unmerge
unread
unset
up
update
upper
url
urlserver
usec
userhost-in-names
username
users
usr
util
valer
valgrind
verbose
verify
versiongit
visited
voice
wait
waiting
waitpid
wallops
wcswidth
wctype
wcwidth
websocket
websockets
weechat
where
white
whitespace
whois
width
window
windows
without
word
words
xdigit
xfer
xxx
xyz
yellow
yes
yy
zero
zlib
zstd
Échap
+24
View File
@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
[check]
select = [
"checks",
]
ignore = [
"acronyms",
"brackets",
"double-quotes",
"double-words",
"functions",
"html-tags",
"paths",
"unchanged",
"urls",
]
path_words = "."
langs = [
"en_US",
"fr",
]
+75 -1
View File
@@ -6,11 +6,85 @@ SPDX-License-Identifier: GPL-3.0-or-later
# WeeChat ChangeLog
## Version 4.8.3 (under dev)
## Version 4.10.0 (under dev)
### Changed
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
- core: add `/mute` in default command for key `Alt`+`=` (toggle filters)
- api: change type of parameter "pos_option_name" to "const char **" in function config_search_with_string
- relay/api: add field "last_read_line_id" in GET /api/buffers
### Added
- relay/api: add resource `GET /api/scripts`
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
- script: add info "script_languages"
### Fixed
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
- core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325))
- api: fix infinite loop in function string_replace when the search string is empty
- irc: fix tag in message with list of names when joining a channel
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
- irc: limit size of data received from the server to prevent memory exhaustion
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
- relay/api: fix memory leak in resources "handshake", "input" and "completion"
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
- xfer: fix out-of-bounds write in xfer file transfer resume ([#2326](https://github.com/weechat/weechat/issues/2326))
## Version 4.9.2 (2026-06-07)
### Fixed
- api: fix infinite loop in function string_replace when the search string is empty
- irc: limit size of data received from the server to prevent memory exhaustion
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message ([#2322](https://github.com/weechat/weechat/issues/2322))
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
## Version 4.9.1 (2026-05-31)
### Fixed
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
- irc: fix tag in message with list of names when joining a channel
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
## Version 4.9.0 (2026-03-29)
### Changed
- core: add option `-e` to evaluate all commands before executing them in command `/eval`
- xfer: evaluate option xfer.network.own_ip
### Added
- typing: add option typing.look.item_text ([#2305](https://github.com/weechat/weechat/issues/2305))
### Fixed
- core: fix crash with `/eval` when the current buffer is closed in a command
- core: fix buffer size in function util_parse_time, causing buffer overflow error in unit tests
- irc: fix display of CTCP query sent multiple times to the same user when capability echo-message is enabled ([#2309](https://github.com/weechat/weechat/issues/2309))
- irc: fix unit of server option `anti_flood` from seconds to milliseconds in output of `/server listfull`
- irc: fix creation of irc.msgbuffer option without a server name
- irc: ignore self join if the channel is already joined ([#2291](https://github.com/weechat/weechat/issues/2291))
- relay/api: fix memory leaks in resources "ping" and "sync"
- relay/api: fix memory leak in receive of message from remote WeeChat
## Version 4.8.2 (2026-03-06)
+35 -37
View File
@@ -28,6 +28,7 @@ project(weechat C)
# CMake options
set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_SKIP_RPATH ON)
# compiler options
@@ -52,16 +53,8 @@ else()
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
endif()
# license
set(LICENSE "GPL3")
# add definitions for version and license
if(COMMAND cmake_policy)
cmake_policy(SET CMP0005 NEW)
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="${LICENSE}")
else()
add_definitions(-DWEECHAT_VERSION='"${VERSION}"' -DWEECHAT_LICENSE='"${LICENSE}"')
endif()
add_definitions(-DWEECHAT_VERSION="${VERSION}" -DWEECHAT_LICENSE="GPL3")
# package string
set(PKG_STRING "${PROJECT_NAME} ${VERSION}")
@@ -192,15 +185,6 @@ set(WEECHAT_HOME "${WEECHAT_HOME}" CACHE
FORCE)
mark_as_advanced(CLEAR WEECHAT_HOME)
if(COMMAND cmake_policy)
if(POLICY CMP0003)
cmake_policy(SET CMP0003 NEW)
endif()
if(POLICY CMP0017)
cmake_policy(SET CMP0017 NEW)
endif()
endif()
add_definitions(-DHAVE_CONFIG_H)
include(FindPkgConfig)
@@ -258,22 +242,29 @@ list(APPEND EXTRA_LIBS ${GNUTLS_LDFLAGS})
# Check for zlib
find_package(ZLIB REQUIRED)
list(APPEND EXTRA_LIBS ${ZLIB_LIBRARY})
# Check for zstd
if(ENABLE_ZSTD)
pkg_check_modules(LIBZSTD REQUIRED libzstd)
pkg_check_modules(LIBZSTD REQUIRED libzstd>=1.4.0)
include_directories(${LIBZSTD_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS})
add_definitions(-DHAVE_ZSTD)
endif()
# Check for cJSON
if(ENABLE_CJSON)
pkg_check_modules(LIBCJSON REQUIRED libcjson)
include_directories(${LIBCJSON_INCLUDE_DIRS})
add_definitions(-DHAVE_CJSON)
endif()
# Check for iconv
find_package(Iconv)
if(ICONV_FOUND)
if(ICONV_LIBRARY)
list(APPEND EXTRA_LIBS ${ICONV_LIBRARY})
endif()
add_definitions(-DHAVE_ICONV)
endif()
@@ -283,18 +274,15 @@ pkg_check_modules(LIBCURL REQUIRED libcurl>=7.68.0)
include_directories(${LIBCURL_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBCURL_LDFLAGS})
find_library(DL_LIBRARY
NAMES dl
PATHS /lib /usr/lib /usr/libexec /usr/local/lib /usr/local/libexec
)
if(DL_LIBRARY)
list(APPEND EXTRA_LIBS ${DL_LIBRARY})
endif()
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
add_subdirectory(icons)
if(ENABLE_NLS)
find_package(Gettext REQUIRED)
if(LIBINTL_LIBRARY)
list(APPEND EXTRA_LIBS ${LIBINTL_LIBRARY})
endif()
find_package(Intl REQUIRED)
include_directories(${Intl_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS "${Intl_LIBRARIES}")
@@ -303,20 +291,30 @@ else()
add_custom_target(translations COMMAND true)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
find_library(EXECINFO_LIB_PATH execinfo /usr/local/lib)
check_function_exists(backtrace HAVE_BACKTRACE)
list(APPEND EXTRA_LIBS "execinfo")
else()
check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
list(APPEND EXTRA_LIBS "network")
else()
list(APPEND EXTRA_LIBS "pthread")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
list(APPEND EXTRA_LIBS "socket" "nsl")
endif()
list(APPEND EXTRA_LIBS "m")
add_subdirectory(src)
add_subdirectory(doc)
if(ENABLE_TESTS)
find_package(CppUTest)
if(CPPUTEST_FOUND)
enable_testing()
else()
message(SEND_ERROR "CppUTest not found")
endif()
else()
enable_testing()
add_test(NAME notests COMMAND true)
endif()
enable_testing()
add_subdirectory(tests)
configure_file(config.h.cmake config.h @ONLY)
+1 -2
View File
@@ -19,8 +19,7 @@ First, some basic things:
### Security reports
Please **DO NOT** file a GitHub issue for security related problems, but send an
email to [security@weechat.org](mailto:security@weechat.org) instead.
Please **DO NOT** file a GitHub issue for security related problems; see [SECURITY.md](SECURITY.md) instead.
### Required info
+4 -6
View File
@@ -11,10 +11,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
</p>
[![Mastodon](https://img.shields.io/badge/mastodon-follow-blue.svg)](https://hostux.social/@weechat)
[![Diaspora*](https://img.shields.io/badge/diaspora*-follow-blue.svg)](https://diasp.eu/u/weechat)
[![X](https://img.shields.io/badge/x-follow-blue.svg)](https://x.com/WeeChatClient)
[![Devel blog](https://img.shields.io/badge/devel%20blog-follow-blue.svg)](https://blog.weechat.org/)
[![Slant](https://img.shields.io/badge/slant-recommend-28acad.svg)](https://www.slant.co/topics/1323/~best-irc-clients-for-linux)
[![Donate](https://img.shields.io/badge/help-donate%20%E2%9D%A4-ff69b4.svg)](https://weechat.org/donate/)
[![CI](https://github.com/weechat/weechat/workflows/CI/badge.svg)](https://github.com/weechat/weechat/actions)
@@ -29,11 +27,11 @@ Homepage: [https://weechat.org/](https://weechat.org/)
## Features
- **Modular chat client**: WeeChat has a lightweight core and optional [plugins](https://weechat.org/doc/weechat/user/#plugins). All plugins (including [IRC](https://weechat.org/doc/weechat/user/#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.
- **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (WSL and Cygwin).
- **Multi-protocol**: WeeChat is designed to support multiple protocols via plugins, like IRC.
- **Standards-compliant**: the IRC plugin is compliant with RFCs [1459](https://datatracker.ietf.org/doc/html/rfc1459), [2810](https://datatracker.ietf.org/doc/html/rfc2810), [2811](https://datatracker.ietf.org/doc/html/rfc2811), [2812](https://datatracker.ietf.org/doc/html/rfc2812), [2813](https://datatracker.ietf.org/doc/html/rfc2813) and [7194](https://datatracker.ietf.org/doc/html/rfc7194).
- **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 [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
- **Customizable and extensible**: there are a lot of options to customize WeeChat, and it is extensible with C plugins and [scripts](https://weechat.org/scripts/) ([Perl](https://weechat.org/scripts/language/perl/), [Python](https://weechat.org/scripts/language/python/), [Ruby](https://weechat.org/scripts/language/ruby/), [Lua](https://weechat.org/scripts/language/lua/), [Tcl](https://weechat.org/scripts/language/tcl/), [Scheme](https://weechat.org/scripts/language/guile/), [JavaScript](https://weechat.org/scripts/language/javascript/) and [PHP](https://weechat.org/scripts/language/php/)).
- **Fully documented**: there is comprehensive [documentation](https://weechat.org/doc/weechat/), which is [translated](https://weechat.org/doc/weechat/dev/#translations) 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 [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
@@ -51,7 +49,7 @@ For detailed instructions, please check the [WeeChat user's guide](https://weech
## Semantic versioning
WeeChat is following a "practical" semantic versioning, see file [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
WeeChat follows "practical" semantic versioning; see [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
## Copyright
+8
View File
@@ -19,3 +19,11 @@ path = [
precedence = "override"
SPDX-FileCopyrightText = "2003-2026 Sébastien Helleu <flashcode@flashtux.org>"
SPDX-License-Identifier = "GPL-3.0-or-later"
[[annotations]]
path = [
".poexam/*.dic",
]
precedence = "override"
SPDX-FileCopyrightText = "2026 Sébastien Helleu <flashcode@flashtux.org>"
SPDX-License-Identifier = "GPL-3.0-or-later"
+26
View File
@@ -0,0 +1,26 @@
<!--
SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
SPDX-License-Identifier: GPL-3.0-or-later
-->
# Security Policy
## Supported versions
Only the latest stable version of WeeChat is supported.
| Version | Supported | Notes |
| -------------- | ------------------ | --------------------------------------------------- |
| Latest stable | :white_check_mark: | Fully supported. |
| Older releases | :x: | Not supported. Contact us in case of specific need. |
However, we may help to backport fixes on older versions, especially when they are used in released distributions with no way to upgrade to the latest stable release (please contact us).
## Reporting a vulnerability
Please report security issues using <https://github.com/weechat/weechat/security/advisories/new>.
Alternatively, if you are not able to use this form, you can send an email to [security@weechat.org](mailto:security@weechat.org) instead.
We will investigate all legitimate reports and do our best to quickly fix the problem.
+13
View File
@@ -13,6 +13,19 @@ When upgrading from version X to Y, please read and apply all instructions from
For a list of all changes in each version, please see [CHANGELOG.md](CHANGELOG.md).
## Version 4.10.0
### Command on mouse click in fset buffer
The command executed when clicking in the fset buffer has been updated to prevent
errors on the core buffer when the click is done below the last option.
To reset the key and use the new default command:
```text
/reset weechat.key_mouse.@chat(fset.fset):button1
```
## Version 4.8.0
### IRC temporary servers
+2 -3
View File
@@ -1,6 +1,5 @@
Source: weechat-devel
Section: net
Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
@@ -13,7 +12,7 @@ Build-Depends:
libperl-dev,
python3-dev,
libaspell-dev,
liblua5.3-dev,
liblua5.4-dev,
tcl8.6-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
@@ -24,7 +23,7 @@ Build-Depends:
libzstd-dev,
zlib1g-dev,
libcjson-dev
Standards-Version: 4.7.2
Standards-Version: 4.7.3
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
+15
View File
@@ -1,3 +1,12 @@
weechat (4.8.1-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.7.3
* Update debian/copyright file (new year)
* Remove redundant priority optional field from debian/control
-- Emmanuel Bouthenot <kolter@debian.org> Fri, 23 Jan 2026 22:02:31 +0000
weechat (4.7.2-1) unstable; urgency=medium
* New upstream release (Closes: #1119787)
@@ -40,6 +49,12 @@ weechat (4.4.2-1) unstable; urgency=medium
* New upstream release
- fix crash where exiting (Closes: #1076532)
- fix a minor security issue (Closes: #1081942)
* Fix possible privacy breach with html documentation which includes
stylesheets and fonts (font-awesome) hosted on remote CDN (Cloudflare)
by replacing them during build process by the ones provided in
fonts-font-awesome package (also added as dependency on weechat-doc).
* Refresh weechat-doc with minor changes and add some documentation in
Serbian and Czech.
* Bump Standards-Version to 4.7.0
-- Emmanuel Bouthenot <kolter@debian.org> Sun, 22 Sep 2024 13:08:28 +0000
+2 -3
View File
@@ -1,6 +1,5 @@
Source: weechat
Section: net
Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
@@ -13,7 +12,7 @@ Build-Depends:
libperl-dev,
python3-dev,
libaspell-dev,
liblua5.3-dev,
liblua5.4-dev,
tcl8.6-dev,
guile-3.0-dev,
php-dev, libphp-embed, libargon2-dev, libsodium-dev,
@@ -24,7 +23,7 @@ Build-Depends:
libzstd-dev,
zlib1g-dev,
libcjson-dev
Standards-Version: 4.7.2
Standards-Version: 4.7.3
Homepage: https://weechat.org/
Vcs-Git: https://salsa.debian.org/kolter/weechat.git
Vcs-Browser: https://salsa.debian.org/kolter/weechat
+36 -11
View File
@@ -30,12 +30,37 @@ if(ENABLE_MAN OR ENABLE_DOC)
set(SCRIPTING_LANG de en fr it ja pl sr)
set(FAQ_LANG de en es fr it ja pl sr)
set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
set(RELAY_API_LANG en fr)
set(RELAY_API_LANG en fr sr)
set(RELAY_WEECHAT_LANG en fr ja sr)
set(DEV_LANG en fr ja sr)
find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND)
# Asciidoctor embeds the light style automatically; the dark stylesheet
# is generated below and scoped via @media in docinfo.html.in.
set(PYGMENTS_LIGHT_STYLE "default")
set(PYGMENTS_DARK_STYLE "monokai")
find_program(PYGMENTIZE_EXECUTABLE pygmentize)
set(PYGMENTS_DARK_CSS "")
if(PYGMENTIZE_EXECUTABLE)
execute_process(
COMMAND "${PYGMENTIZE_EXECUTABLE}" -O "classprefix=tok-" -f html -a "pre.pygments" -S "${PYGMENTS_DARK_STYLE}"
OUTPUT_VARIABLE PYGMENTS_DARK_CSS
RESULT_VARIABLE _pygmentize_result
)
if(NOT _pygmentize_result EQUAL 0)
message(WARNING "Failed to generate pygments CSS for dark theme (style: ${PYGMENTS_DARK_STYLE}); doc will be built without dark theme syntax highlighting")
set(PYGMENTS_DARK_CSS "")
endif()
else()
message(WARNING "pygmentize not found (install python3-pygments); doc will be built without syntax highlighting colors")
endif()
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html.in"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
@ONLY
)
# common asciidoctor arguments
set(ASCIIDOCTOR_ARGS
-v
@@ -46,8 +71,8 @@ if(ENABLE_MAN OR ENABLE_DOC)
-a revnumber="${VERSION}"
-a sectanchors
-a source-highlighter=pygments
-a pygments-style=native
-a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}"
-a pygments-style=${PYGMENTS_LIGHT_STYLE}
-a docinfodir="${CMAKE_CURRENT_BINARY_DIR}"
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
)
@@ -205,7 +230,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
@@ -226,7 +251,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
doc-autogen
@@ -250,7 +275,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
doc-autogen
@@ -268,7 +293,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
@@ -283,7 +308,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
@@ -298,7 +323,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_API_ARGS} -o "weechat_relay_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
@@ -314,7 +339,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_WEECHAT_ARGS} -o "weechat_relay_weechat.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
@@ -330,7 +355,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+1 -1
View File
@@ -458,7 +458,7 @@ für weitere Informationen die das Farbmanagement betreffen.
[[search_text]]
=== Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?
Die Standardtastenbelegung lautet kbd:[Ctrl+r]
Die Standardtastenbelegung lautet kbd:[Ctrl+s]
(der dazugehörige Befehl: `+/input search_text_here+`).
Um zu Highlight-Nachrichten zu springen:
kbd:[Alt+p] für vorherige, kbd:[Alt+n] für die nächste Nachricht.
+1 -1
View File
@@ -212,7 +212,7 @@ WeeChat optional sind:
| asciidoctor | ≥ 1.5.4
| zum Erstellen der man page und der Dokumentation.
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Build Dokumentation.
| libcpputest-dev | ≥ 3.4
+13 -26
View File
@@ -26,9 +26,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
--header-details-color: #aaa;
--border: 1px solid #444;
--code-bg-color: #252525;
--pre-color: #ddd;
--pre-bg-color: #202020;
--pre-code-bg-color: #202020;
--keyseq-color: #777;
--kbd-bg-color: #252525;
--kbd-border: 1px solid #333;
@@ -39,7 +36,11 @@ SPDX-License-Identifier: GPL-3.0-or-later
--icon-caution-color: #bf3400;
--icon-important-color: #f44336;
--mark-bg-color: #007;
--pre-bevel-light: #3e3e3e;
--pre-bevel-dark: #2a2a2a;
--pre-bevel-bg: #1f1f1f;
}
@PYGMENTS_DARK_CSS@
}
@media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
@@ -59,9 +60,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
--border: 1px solid #dddddf;
--code-bg-color: #f7f7f8;
--keyseq-color: #333c;
--pre-color: #353535;
--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;
@@ -71,6 +69,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
--icon-caution-color: #ff0000;
--icon-important-color: #bf0000;
--mark-bg-color: #9df;
--pre-bevel-light: #e5e5e7;
--pre-bevel-dark: #b4b4b8;
--pre-bevel-bg: #f6f6f7;
}
}
@@ -145,6 +146,10 @@ code, .prettyprint {
pre {
color: var(--pre-color) !important;
border: 1px solid;
border-color: var(--pre-bevel-light) var(--pre-bevel-dark) var(--pre-bevel-dark) var(--pre-bevel-light);
border-radius: 3px;
line-height: 1.25;
}
pre > code {
@@ -162,8 +167,8 @@ kbd {
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);
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "], pre.pygments {
background-color: var(--pre-bg-color, var(--pre-bevel-bg));
color: var(--body-color);
}
@@ -200,24 +205,6 @@ mark {
color: var(--body-color);
}
/* syntax highlighting tuning */
pre.pygments {
color: #ddd !important;
}
pre.pygments .tok-cp {
color: #44cfaf;
}
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 {
+5 -4
View File
@@ -128,6 +128,7 @@ WeeChat "core" is located in following directories:
|===
| Path/file | Description
| core/ | Core functions: entry point, internal structures.
|    core-args.c | Command-line arguments.
|    core-arraylist.c | Array lists.
|    core-backtrace.c | Display a backtrace after a crash.
|    core-calc.c | Calculate result of expressions.
@@ -655,9 +656,9 @@ Example:
[source,c]
----
/*
* Checks if a string with boolean value is valid.
* Check if a string with boolean value is valid.
*
* Returns:
* Return:
* 1: boolean value is valid
* 0: boolean value is NOT valid
*/
@@ -932,9 +933,9 @@ Example: creation of a new window (from _src/gui/gui-window.c_):
[source,c]
----
/*
* Creates a new window.
* Create a new window.
*
* Returns pointer to new window, NULL if error.
* Return pointer to new window, NULL if error.
*/
struct t_gui_window *
+1 -1
View File
@@ -441,7 +441,7 @@ for more information about colors management.
[[search_text]]
=== How can I search text in buffer (like /lastlog in irssi)?
The default key is kbd:[Ctrl+r] (command is: `+/input search_text_here+`).
The default key is kbd:[Ctrl+s] (command is: `+/input search_text_here+`).
And jump to highlights: kbd:[Alt+p] / kbd:[Alt+n].
See link:weechat_user.en.html#key_bindings[User's guide / Key bindings ^↗^^]
+5 -5
View File
@@ -4348,7 +4348,7 @@ Prototype:
[source,c]
----
int weechat_mkdir_home (char *directory, int mode);
int weechat_mkdir_home (const char *directory, int mode);
----
Arguments:
@@ -4395,7 +4395,7 @@ Prototype:
[source,c]
----
int weechat_mkdir (char *directory, int mode);
int weechat_mkdir (const char *directory, int mode);
----
Arguments:
@@ -4436,7 +4436,7 @@ Prototype:
[source,c]
----
int weechat_mkdir_parents (char *directory, int mode);
int weechat_mkdir_parents (const char *directory, int mode);
----
Arguments:
@@ -7709,7 +7709,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
----
Arguments:
@@ -7731,7 +7731,7 @@ C example:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
char *option_name;
const char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+57 -5
View File
@@ -541,7 +541,8 @@ HTTP/1.1 200 OK
"plugin": "core",
"name": "weechat"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823423765,
@@ -571,7 +572,8 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823649069,
@@ -599,7 +601,8 @@ HTTP/1.1 200 OK
"nick": "alice",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
}
]
----
@@ -655,7 +658,8 @@ HTTP/1.1 200 OK
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
"tags": []
}
]
],
"last_read_line_id": -1
}
----
@@ -702,6 +706,7 @@ HTTP/1.1 200 OK
"host": "~alice@example.com"
},
"keys": [],
"last_read_line_id": -1,
"nicklist_root": {
"id": 0,
"parent_group_id": -1,
@@ -900,7 +905,8 @@ HTTP/1.1 200 OK
"key": "up",
"command": "/fset -up"
}
]
],
"last_read_line_id": -1
}
----
@@ -1173,6 +1179,51 @@ HTTP/1.1 200 OK
]
----
[[resource_scripts]]
=== Scripts
Return loaded scripts (all languages).
Endpoint:
----
GET /api/scripts
----
Request example:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Response:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Input
@@ -1504,6 +1555,7 @@ Body types that can be returned:
* `nick_group` (object)
* `nick` (object)
* `hotlist` (object)
* `scripts` (array)
* `ping` (object)
[TIP]
+1 -1
View File
@@ -210,7 +210,7 @@ WeeChat:
| asciidoctor | ≥ 1.5.4
| Build man page and documentation.
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Build documentation.
| libcpputest-dev | ≥ 3.4
+1 -1
View File
@@ -454,7 +454,7 @@ información sobre la gestión de los colores.
[[search_text]]
=== ¿Cómo busco texto en un buffer (como /lastlog en irssi)?
La tecla predeterminada es kbd:[Ctrl+r] (el comando es: `+/input texto_a_buscar_aquí+`).
La tecla predeterminada es kbd:[Ctrl+s] (el comando es: `+/input texto_a_buscar_aquí+`).
Y para saltar a los textos resaltados: kbd:[Alt+p] / kbd:[Alt+n].
Vea la link:weechat_user.en.html#key_bindings[Guía del usuario / Atajos de teclado ^↗^^]
+1 -1
View File
@@ -9,7 +9,7 @@ https://weechat.org/doc/[guide utilisateur de WeeChat].
Avec l'extension irc, vous pouvez vous connecter à un serveur avec une URL, comme ceci :
irc[6][s]://[[pseudo][:motdepasse]@]serveur[:port][/#canal1[,#canal2...]]
irc[6][s]://[[pseudo][:mot_de_passe]@]serveur[:port][/#canal1[,#canal2...]]
Pour rejoindre le canal IRC de support WeeChat avec le pseudo "monpseudo" :
+5 -4
View File
@@ -129,6 +129,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|===
| Chemin/fichier | Description
| core/ | Fonctions du cœur : point d'entrée, structures internes.
|    core-args.c | Paramètres de ligne de commande.
|    core-arraylist.c | Listes avec tableau (« arraylists »).
|    core-backtrace.c | Afficher une trace après un plantage.
|    core-calc.c | Calcul du résultat d'expressions.
@@ -659,9 +660,9 @@ Exemple :
[source,c]
----
/*
* Checks if a string with boolean value is valid.
* Check if a string with boolean value is valid.
*
* Returns:
* Return:
* 1: boolean value is valid
* 0: boolean value is NOT valid
*/
@@ -942,9 +943,9 @@ Exemple : création d'une nouvelle fenêtre (de _src/gui/gui-window.c_) :
[source,c]
----
/*
* Creates a new window.
* Create a new window.
*
* Returns pointer to new window, NULL if error.
* Return pointer to new window, NULL if error.
*/
struct t_gui_window *
+1 -1
View File
@@ -457,7 +457,7 @@ pour plus d'information sur la gestion des couleurs.
[[search_text]]
=== Comment puis-je chercher du texte dans le tampon (comme /lastlog dans irssi) ?
La touche par défaut est kbd:[Ctrl+r] (la commande est : `+/input search_text_here+`).
La touche par défaut est kbd:[Ctrl+s] (la commande est : `+/input search_text_here+`).
Et sauter aux highlights : kbd:[Alt+p] / kbd:[Alt+n].
Voir le link:weechat_user.fr.html#key_bindings[Guide utilisateur / Raccourcis clavier par défaut ^↗^^]
+5 -5
View File
@@ -4424,7 +4424,7 @@ Prototype :
[source,c]
----
int weechat_mkdir_home (char *directory, int mode);
int weechat_mkdir_home (const char *directory, int mode);
----
Paramètres :
@@ -4471,7 +4471,7 @@ Prototype :
[source,c]
----
int weechat_mkdir (char *directory, int mode);
int weechat_mkdir (const char *directory, int mode);
----
Paramètres :
@@ -4512,7 +4512,7 @@ Prototype :
[source,c]
----
int weechat_mkdir_parents (char *directory, int mode);
int weechat_mkdir_parents (const char *directory, int mode);
----
Paramètres :
@@ -7838,7 +7838,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
----
Paramètres :
@@ -7861,7 +7861,7 @@ Exemple en C :
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
char *option_name;
const char *option_name;
weechat_config_search_with_string ("fichier.section.option",
&ptr_config_file,
+57 -5
View File
@@ -551,7 +551,8 @@ HTTP/1.1 200 OK
"plugin": "core",
"name": "weechat"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823423765,
@@ -580,7 +581,8 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823649069,
@@ -607,7 +609,8 @@ HTTP/1.1 200 OK
"nick": "alice",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
}
]
----
@@ -663,7 +666,8 @@ HTTP/1.1 200 OK
"message": "Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
"tags": []
}
]
],
"last_read_line_id": -1
}
----
@@ -709,6 +713,7 @@ HTTP/1.1 200 OK
"host": "~alice@example.com"
},
"keys": [],
"last_read_line_id": -1,
"nicklist_root": {
"id": 0,
"parent_group_id": -1,
@@ -906,7 +911,8 @@ HTTP/1.1 200 OK
"key": "up",
"command": "/fset -up"
}
]
],
"last_read_line_id": -1
}
----
@@ -1185,6 +1191,51 @@ HTTP/1.1 200 OK
]
----
[[resource_scripts]]
=== Scripts
Retourner la liste des scripts chargés (tous les langages).
Point de terminaison:
----
GET /api/scripts
----
Exemple de requête:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Réponse:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Entrée
@@ -1524,6 +1575,7 @@ Les types de corps qui peuvent être retournés :
* `nick_group` (objet)
* `nick` (objet)
* `hotlist` (objet)
* `scripts` (tableau)
* `ping` (objet)
[TIP]
+9 -9
View File
@@ -208,7 +208,7 @@ Le tableau suivant liste les paquets optionnels pour compiler WeeChat :
| asciidoctor | ≥ 1.5.4
| Construction de la page man et de la documentation.
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Construction de la documentation.
| libcpputest-dev | ≥ 3.4
@@ -3351,7 +3351,7 @@ Pour ajouter une donnée sécurisée, utilisez la commande `/secure set`, par
exemple un mot de passe pour le serveur IRC _libera_ :
----
/secure set libera motdepasse
/secure set libera mot_de_passe
----
Pour plus de confort, les données sécurisées peuvent être affichées dans un
@@ -4712,7 +4712,7 @@ Il est fortement recommandé de définir un mot de passe pour le relai, avec ces
commandes :
----
/secure set relay motdepasse
/secure set relay mot_de_passe
/set relay.network.password "${sec.data.relay}"
----
@@ -4793,7 +4793,7 @@ le nom interne du serveur dans la commande IRC "PASS", avec le format
(voir l'exemple ci-dessous) :
----
PASS serveur:motdepasse
PASS serveur:mot_de_passe
----
Exemple : proxy IRC avec TLS pour tout serveur (le client choisira) :
@@ -4809,7 +4809,7 @@ Exemple : proxy IRC sans TLS seulement pour le serveur "libera" :
----
Maintenant vous pouvez vous connecter sur le port 8000 avec n'importe quel
client IRC en utilisant le mot de passe "motdepasse" (ou "libera:motdepasse"
client IRC en utilisant le mot de passe "mot_de_passe" (ou "libera:mot_de_passe"
si aucun serveur n'a été spécifié dans le relai).
Par exemple si vous utilisez WeeChat comme client IRC du relai, avec un serveur
@@ -4822,7 +4822,7 @@ avec ces commandes :
----
[[relay_api_protocol]]
=== API protocol
=== Protocole API
L'extension Relay peut envoyer les données à un autre WeeChat ou une interface
distante avec un protocol HTTP de type API REST.
@@ -4840,12 +4840,12 @@ Par exemple :
----
Maintenant vous pouvez vous connecter sur le port 9000 avec une interface
distante en utilisant le mot de passe "motdepasse".
distante en utilisant le mot de passe "mot_de_passe".
Pour vous connecter à un relai _api_ avec WeeChat :
----
/remote add weechat http://localhost:9000 -password=motdepasse
/remote add weechat http://localhost:9000 -password=mot_de_passe
/remote connect weechat
----
@@ -4882,7 +4882,7 @@ Par exemple :
----
Maintenant vous pouvez vous connecter sur le port 9500 avec une interface
distante en utilisant le mot de passe "motdepasse".
distante en utilisant le mot de passe "mot_de_passe".
[[relay_websocket]]
=== WebSocket
+1 -1
View File
@@ -490,7 +490,7 @@ for more information about colors management.
[[search_text]]
=== Come posso cercare testo nel buffer (come /lastlog con irssi)?
Il tasto predefinito è kbd:[Ctrl+r] (il comando è: `+/input search_text_here+`).
Il tasto predefinito è kbd:[Ctrl+s] (il comando è: `+/input search_text_here+`).
E per passare alle notifiche: kbd:[Alt+p] / kbd:[Alt+n].
// TRANSLATION MISSING
+5 -5
View File
@@ -4549,7 +4549,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir_home (char *directory, int mode);
int weechat_mkdir_home (const char *directory, int mode);
----
Argomenti:
@@ -4597,7 +4597,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir (char *directory, int mode);
int weechat_mkdir (const char *directory, int mode);
----
Argomenti:
@@ -4638,7 +4638,7 @@ Prototipo:
[source,c]
----
int weechat_mkdir_parents (char *directory, int mode);
int weechat_mkdir_parents (const char *directory, int mode);
----
Argomenti:
@@ -8011,7 +8011,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
----
Argomenti:
@@ -8034,7 +8034,7 @@ Esempio in C:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
char *option_name;
const char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+1 -1
View File
@@ -245,7 +245,7 @@ WeeChat:
| Build man page and documentation.
// TRANSLATION MISSING
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Build documentation.
// TRANSLATION MISSING
+6 -4
View File
@@ -140,6 +140,8 @@ WeeChat "core" は以下のディレクトリに配置されています:
|===
| パス/ファイル名 | 説明
| core/ | コア関数: エントリポイント、内部構造体
// TRANSLATION MISSING
|    core-args.c | Command-line arguments.
|    core-arraylist.c | 配列リスト
|    core-backtrace.c | クラッシュした際にバックトレースを表示
// TRANSLATION MISSING
@@ -808,9 +810,9 @@ C 言語のコードを書く際には以下の基本的なルールを *必ず*
[source,c]
----
/*
* Checks if a string with boolean value is valid.
* Check if a string with boolean value is valid.
*
* Returns:
* Return:
* 1: boolean value is valid
* 0: boolean value is NOT valid
*/
@@ -1083,9 +1085,9 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
[source,c]
----
/*
* Creates a new window.
* Create a new window.
*
* Returns pointer to new window, NULL if error.
* Return pointer to new window, NULL if error.
*/
struct t_gui_window *
+1 -1
View File
@@ -451,7 +451,7 @@ with command `/color`).
[[search_text]]
=== どうすればバッファ内の文字列を検索できますか (irssi の /lastlog の様に)。
デフォルトのキーは kbd:[Ctrl+r] です (コマンドは: `+/input search_text_here+`)。
デフォルトのキーは kbd:[Ctrl+s] です (コマンドは: `+/input search_text_here+`)。
ハイライト部分へのジャンプは: kbd:[Alt+p] / kbd:[Alt+n]
この機能に関するより詳しい情報はlink:weechat_user.ja.html#key_bindings[ユーザーズガイド / デフォルトのキー割り当て ^↗^^]を参照してください
+5 -5
View File
@@ -4477,7 +4477,7 @@ WeeChat ホームディレクトリの下にディレクトリを作成。
[source,c]
----
int weechat_mkdir_home (char *directory, int mode);
int weechat_mkdir_home (const char *directory, int mode);
----
引数:
@@ -4525,7 +4525,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c]
----
int weechat_mkdir (char *directory, int mode);
int weechat_mkdir (const char *directory, int mode);
----
引数:
@@ -4566,7 +4566,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c]
----
int weechat_mkdir_parents (char *directory, int mode);
int weechat_mkdir_parents (const char *directory, int mode);
----
引数:
@@ -7816,7 +7816,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
----
引数:
@@ -7838,7 +7838,7 @@ C 言語での使用例:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
char *option_name;
const char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+1 -1
View File
@@ -229,7 +229,7 @@ WeeChat:
| man ページと文書のビルド
// TRANSLATION MISSING
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Build documentation.
| libcpputest-dev | 3.4 以上
+1 -2
View File
@@ -7,8 +7,7 @@
Kompletna dokumentacja na temat opcji wtyczek dostępna jest
w https://weechat.org/doc/[WeeChat user's guide].
// TRANSLATION MISSING
With irc plugin, you can connect to a server with an URL like:
Używając wtyczki irc możesz połączyć się z serwerem używając URLa w poniższm formacie:
irc[6][s]://[[nick][:hasło]@]serwer[:port][/#kanał1[,#kanał2...]]
+1 -1
View File
@@ -436,7 +436,7 @@ link:weechat_user.pl.html#colors[Poradniku użytkownika / Kolory ^↗^^].
[[search_text]]
=== Jak mogę wyszukać tekst w buforze (jak za pomocą /lastlog w irssi)?
Domyślny skrót klawiszowy to kbd:[Ctrl+r] (komenda: `+/input search_text_here+`).
Domyślny skrót klawiszowy to kbd:[Ctrl+s] (komenda: `+/input search_text_here+`).
Poruszanie się między podświetleniami: kbd:[Alt+p] / kbd:[Alt+n].
+1 -1
View File
@@ -210,7 +210,7 @@ WeeChat:
| asciidoctor | ≥ 1.5.4
| Tworzenie strony man i dokumentacji.
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Dokumentacja budowania.
| libcpputest-dev | ≥ 3.4
+1 -2
View File
@@ -6,8 +6,7 @@
// tag::plugin_options[]
За комплетну документацију у вези опција додатака, молимо вас да погледате документацију за додатке у https://weechat.org/doc/[WeeChat корисничком упутству].
// TRANSLATION MISSING
With irc plugin, you can connect to a server with an URL like:
Помоћу irc додатка, са сервером се повезујете URL адресом као што је:
irc[6][s]://[[надимак][:лозинка]@]сервер[:порт][/#канал1[,#канал2...]]
+5 -4
View File
@@ -128,6 +128,7 @@ WeeChat „језгро” се налази у следећим директо
|===
| Путања/фајл | Опис
| core/ | Функције језгра: тачка улаза, интерне структуре.
|    core-args.c | Аргументи командне-линије.
|    core-arraylist.c | Листе низова.
|    core-backtrace.c | Испис трага након краха.
|    core-calc.c | Израчунавање резултата израза.
@@ -651,9 +652,9 @@ WeeChat „језгро” се налази у следећим директо
[source,c]
----
/*
* Checks if a string with boolean value is valid.
* Check if a string with boolean value is valid.
*
* Returns:
* Return:
* 1: boolean value is valid
* 0: boolean value is NOT valid
*/
@@ -914,9 +915,9 @@ struct t_gui_window *gui_current_window = NULL; /* current window */
[source,c]
----
/*
* Creates a new window.
* Create a new window.
*
* Returns pointer to new window, NULL if error.
* Return pointer to new window, NULL if error.
*/
struct t_gui_window *
+1 -1
View File
@@ -380,7 +380,7 @@ term screen-256color
[[search_text]]
=== Како могу да претражујем текст у баферу (као /lastlog у програму irssi)?
Подразумевани тастер је kbd:[Ctrl+r] (команда је: `+/input овде_текст_претраге+`). И скок на истицања: kbd:[Alt+p] / kbd:[Alt+n].
Подразумевани тастер је kbd:[Ctrl+s] (команда је: `+/input овде_текст_претраге+`). И скок на истицања: kbd:[Alt+p] / kbd:[Alt+n].
За више о овој могућности, погледајте link:weechat_user.sr.html#key_bindings[Корисничко упутство / Тастерске пречице ^↗^^].
+5 -5
View File
@@ -4209,7 +4209,7 @@ _Ажурирано у верзији 3.2._
[source,c]
----
int weechat_mkdir_home (char *directory, int mode);
int weechat_mkdir_home (const char *directory, int mode);
----
Аргументи:
@@ -4255,7 +4255,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c]
----
int weechat_mkdir (char *directory, int mode);
int weechat_mkdir (const char *directory, int mode);
----
Аргументи:
@@ -4296,7 +4296,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c]
----
int weechat_mkdir_parents (char *directory, int mode);
int weechat_mkdir_parents (const char *directory, int mode);
----
Аргументи:
@@ -7492,7 +7492,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
----
Аргументи:
@@ -7510,7 +7510,7 @@ C пример:
struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section;
struct t_config_option *ptr_option;
char *option_name;
const char *option_name;
weechat_config_search_with_string ("file.section.option",
&ptr_config_file,
+59 -5
View File
@@ -543,7 +543,8 @@ HTTP/1.1 200 OK
"plugin": "core",
"name": "weechat"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823423765,
@@ -573,7 +574,8 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
},
{
"id": 1709932823649069,
@@ -601,7 +603,8 @@ HTTP/1.1 200 OK
"nick": "alice",
"host": "~alice@example.com"
},
"keys": []
"keys": [],
"last_read_line_id": -1
}
]
----
@@ -657,7 +660,8 @@ HTTP/1.1 200 OK
"message": "Учитани додаци: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
"tags": []
}
]
],
"last_read_line_id": -1
}
----
@@ -704,6 +708,7 @@ HTTP/1.1 200 OK
"host": "~alice@example.com"
},
"keys": [],
"last_read_line_id": -1,
"nicklist_root": {
"id": 0,
"parent_group_id": -1,
@@ -902,7 +907,8 @@ HTTP/1.1 200 OK
"key": "up",
"command": "/fset -up"
}
]
],
"last_read_line_id": -1
}
----
@@ -1175,6 +1181,53 @@ HTTP/1.1 200 OK
]
----
// TRANSLATION MISSING
[[resource_scripts]]
=== Scripts
// TRANSLATION MISSING
Return loaded scripts (all languages).
Крајња тачка:
----
GET /api/scripts
----
Пример захтева:
[source,shell]
----
curl -L -u 'plain:secret_password' 'https://localhost:9000/api/scripts'
----
Одговор:
[source,http]
----
HTTP/1.1 200 OK
----
[source,json]
----
[
{
"name": "highmon.pl",
"version": "2.7",
"description": "Highlight Monitor",
"author": "KenjiE20",
"license": "GPL3"
},
{
"name": "go.py",
"version": "3.1.1",
"description": "Quick jump to buffers",
"author": "Sébastien Helleu <flashcode@flashtux.org>",
"license": "GPL3"
}
]
----
[[resource_input]]
=== Input
@@ -1504,6 +1557,7 @@ GUID `258EAFA5-E914-47DA-95CA-C5AB0DC85B11` (SHA-1 се кодира у base64).
* `nick_group` (објекат)
* `nick` (објекат)
* `hotlist` (објекат)
* `scripts` (низ)
* `ping` (објекат)
[TIP]
+1 -1
View File
@@ -203,7 +203,7 @@ WeeChat мора да се изгради са CMake.
| asciidoctor | ≥ 1.5.4
| Изградња man странице и документације.
| ruby-pygments.rb |
| python3-pygments, ruby-pygments.rb |
| Документација изградње.
| libcpputest-dev | ≥ 3.4
+263 -160
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:26+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Czech <weechat-dev@nongnu.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -34,6 +34,159 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Poedit 2.0.1\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: nemohu se připojit k odesílateli"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "použít stejnou barvu přezdívky pro kanál a soukromý rozhovor"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "zobrazí WeeChat logo při spuštění"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "zobrazí WeeChat logo při spuštění"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr "příkaz spuštěný při startu WeeChat, po načtení pluginů"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sChyba: nemohu uložit sezení do souboru"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "zobrazí verzi WeeChat při spuštění"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "ukazatel pluginu (volitelný)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s Copyright %s, zkompilováno %s %s\n"
"Vyvinutý %s <%s> - %s"
msgid "Usage:"
msgstr ""
#, fuzzy
#| msgid "Usage: %s [option...] [plugin:option...]\n"
msgid "[option...] [plugin:option...]"
msgstr "Použití: %s [volba...] [plugin:volba...]\n"
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Chyba: chybí argument pro volbu \"%s\"\n"
msgid "List of bars:"
msgstr "Seznam polí:"
@@ -142,7 +295,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sChyba: nemohu posunout pole \"%s\""
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr "%sChyba: bufer číslo %d je mimo rozsah (musí být mezi 1 a %d)"
msgid "Buffers list:"
@@ -507,9 +660,9 @@ msgstr ""
"opatření)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "přidána %d nová klávesa"
msgstr[0] "přidána %d nová klávesa (kontext: \"%s\")"
msgstr[1] "přidány %d nové klávesy (kontext: \"%s\")"
msgstr[2] "přidáno %d nových kláves (kontext: \"%s\")"
@@ -555,7 +708,7 @@ msgstr "%sChyba: rozložení \"%s\" pro příkaz \"%s\" už existuje"
#, c-format
msgid "Layout \"%s\" has been renamed to \"%s\""
msgstr "Rozložení \"%s\" přejmenováno na %s"
msgstr "Rozložení \"%s\" přejmenováno na %s"
msgid "Mouse enabled"
msgstr "Myš povolena"
@@ -1025,6 +1178,16 @@ msgstr ""
"zpráva: zpráva pro nepřítomnost (pokud není zadána je status nepřítomnosti "
"odebrán)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "řídit pole"
@@ -1123,7 +1286,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1608,7 +1771,7 @@ msgstr "vyhodnotit výraz"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr "[-n|-s] <výraz> || [-n] -c <výraz1> <operátor> <výraz2>"
@@ -1620,6 +1783,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2158,7 +2324,7 @@ msgstr "zobrazí nápovědu k příkazům a volbám"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid ""
@@ -2221,9 +2387,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3110,7 +3276,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3387,20 +3553,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3659,7 +3825,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -4194,7 +4360,7 @@ msgid ""
"Warning: you should now issue /save to write option "
"weechat.look.save_config_on_exit in configuration file"
msgstr ""
"Upozornění: měl by jste nyní provést /save pro zapsání volby "
"Upozornění: měl by jste nyní provést /save pro zapsání volby "
"weechat.look.save_config_on_exit do konfiguračního souboru"
msgid ""
@@ -5992,7 +6158,7 @@ msgstr "%sNekorektní číslo barvy \"%s\" (musí být mezi %d a %d)"
#, c-format
msgid "Limit for resource \"%s\" has been set to %s"
msgstr "Limit pro zdroj \"%s\" byl nastaven na %s"
msgstr "Limit pro zdroj \"%s\" byl nastaven na %s"
#, fuzzy, c-format
msgid "%sUnable to set resource limit \"%s\" to %s: error %d %s"
@@ -6059,8 +6225,8 @@ msgstr "zápis - proměnná"
msgid "read - object type"
msgstr "čtení - typ objektu"
msgid "read - bad object type ('object start' expected)"
msgstr "čtení - chybný typ objektu (očekáván 'object start')"
msgid "read - bad object type (\"object start\" expected)"
msgstr "čtení - chybný typ objektu (očekáván \"object start\")"
msgid "read - object id"
msgstr "čtení - id objektu"
@@ -6180,102 +6346,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr "Konec příkazu '%s', vypršel časový limit (%.1fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s Copyright %s, zkompilováno %s %s\n"
"Vyvinutý Sébastienem Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Použití: %s [volba...] [plugin:volba...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect\t\t\tvypne automatické připojení k serverům při startu\n"
" -c, --colors\t\t\t\tzobrazí výchozí barvy v terminálu\n"
" -d, --dir <cesta>\t \t\tnastaví domovský adresář WeeChat (výchozí: "
"~/.weechat)\n"
"\t\t\t\t\t\t\t(pokud není použita, weechat zkusí načíst promněnou prostředí "
"WEECHAT_HOME)\n"
" -h, --help\t\t\t\t\ttato nápověda\n"
" -l, --license\t\t\t\t\tlicence WeeChatu\n"
" -p, --no-plugin\t\t\t\tnenačítej při startu pluginy\n"
" -r, --run-command <cmd>\tspusť příkaz po startu\n"
"\t\t\t\t\t\t\t(více příkazů jde oddělit středníkem)\n"
" -s, --no-script\t\t\t\tnenačítej skripty při startu\n"
" --upgrade\t\t\t\tupgraduj WeeChat za pomocí uloženní stavu (viz /help "
"upgrade v WeeChatu)\n"
" -v, --version\t\t\t\tzobraz verzi WeeChatu\n"
" plugin:option\t\t\t\tvolba pro plugin (viz: man weechat)\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Chyba: chybí argument pro volbu \"%s\"\n"
#, fuzzy
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 pokud se WeeChat aktualizuje (příkaz `/upgrade`)"
@@ -7016,7 +7086,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8564,7 +8634,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: nepřipojen k serveru \"%s\"!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: automatické znovupřipojené je zrušeno"
#, c-format
@@ -8733,6 +8803,15 @@ msgstr[0] "sekunda"
msgstr[1] "sekundy"
msgstr[2] "sekund"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "sekunda"
msgstr[1] "sekundy"
msgstr[2] "sekund"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuta"
@@ -8898,7 +8977,7 @@ msgstr "vykonat příkaz na všech kanálech všech připojených serverů"
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[-current] [-exclude=<kanál>[,<kanál>...]] <příkaz> [<argumenty>]"
#, fuzzy
@@ -9000,8 +9079,8 @@ msgstr "vykonat příkaz na všech kanálech všech připojených serverů"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[-current] [-exclude=<kanál>[,<kanál>...]] <příkaz> [<argumenty>]"
#, fuzzy
@@ -9054,8 +9133,8 @@ msgstr "vykonat příkaz na všech připojených serverech"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr "[-exclude=<server>[,<server>...]] <příkaz> [<argumenty>]"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -9219,7 +9298,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -11241,8 +11320,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -11736,8 +11816,8 @@ msgstr "jméno serveru"
msgid "get nick from IRC host"
msgstr "získat přezdívku od IRC hosta"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC host (jako `:nick!name@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "IRC host (jako `:nick!name@server`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -11967,8 +12047,8 @@ msgstr "%s%s: tenhle buffer není kanál!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12711,7 +12791,7 @@ msgstr ""
#, c-format
msgid "%s%s: timeout"
msgstr "%s%s: časový limit"
msgstr "%s%s: časový limit"
#, c-format
msgid "%s%s: unable to create socket"
@@ -13165,7 +13245,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -14551,10 +14631,9 @@ msgstr "%s%s: server \"%s\" pro příkaz \"%s\" nenalezen"
msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: nepřipojen k serveru \"%s\"!"
#, fuzzy, c-format
#| msgid "%s: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is cancelled"
msgstr "%s: automatické znovupřipojené je zrušeno"
#, c-format
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: server \"%s\" already exists for \"%s\" command"
@@ -15017,11 +15096,11 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"čárkou rozdělený seznam pluginů pro automatické načtení při spuštění \"*\" "
"znamená všechny nalezené pluginy, jméno začínající \"!\" je negativní "
@@ -15029,10 +15108,10 @@ msgstr ""
"pro vybrání několika pluginů (příklady: \"*\" nebo \"*,!lua,!tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -15063,6 +15142,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -15172,7 +15256,7 @@ msgstr "Klienti pro přenos:"
#, fuzzy
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
"jména stavů (volitelné): connecting, waiting_auth, connected, auth_failed, "
@@ -15311,6 +15395,10 @@ msgstr "%s%s: nemohu se \"navázat\" na port %d (%s): chyba %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: nemohu se \"navázat\" na port %d (%s): chyba %d %s"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: nemohu \"naslouchat\" na portu %d (%s): chyba %d %s"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: nemohu \"naslouchat\" na portu %d (%s): chyba %d %s"
@@ -15355,8 +15443,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: nedostatek paměti pro poslouchání na portu"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Předání dat WeeChatu do vzdálené aplikace (irc/weechat protokoly)"
msgid "Relay WeeChat data to remote applications"
msgstr "Předání dat WeeChatu do vzdálené aplikace"
msgid "connecting"
msgstr "připojuji"
@@ -15501,7 +15589,7 @@ msgid "%s: script \"%s\" is not held anymore"
msgstr "%s: server %s%s%s již není dočasným"
msgid "Error: file not found"
msgstr "Chyba: soubor nenalezen"
msgstr "Chyba: soubor nenalezen"
msgid "Source code:"
msgstr "Zdrojový kód:"
@@ -15591,11 +15679,16 @@ msgstr "(nic)"
msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+klávesa/vstup: v=zpět na seznam d=skoč na rozdíl"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, "
#| "r=remove, l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view "
#| "script | Input: q=close, $=refresh, s:x,y=sort, words=filter, *=reset "
#| "filter | Mouse: left=select, right=install/remove"
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
"%d/%d scripty (filtr: %s) | Seřaď: %s | Alt+klavesa/vstup: i=instalace, "
@@ -15975,6 +16068,10 @@ msgstr "načteny %s skripty:"
msgid "script name with extension"
msgstr "seznam skriptů"
#, fuzzy
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "čárkami oddělený seznam slovníků, které použít pro tento buffer"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "jméno serveru (zástupný znak \"*\" je povolen) (volitelné)"
@@ -16095,7 +16192,7 @@ msgid "Spell checking is enabled"
msgstr "Kontrola pravopisu je zapnuta"
msgid "Spell checking is disabled"
msgstr "Kontrola pravopisu je vypnuta"
msgstr "Kontrola pravopisu je vypnuta"
#, c-format
msgid "Default dictionary: %s"
@@ -16912,7 +17009,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: \"%s\" není validní regulární výraz (%s)"
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -16946,6 +17043,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -17097,8 +17199,9 @@ msgstr "nečekat na ACK při odesílání souboru"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"IP nebo DNS adresa použitá pro posílání souborů/rozhovorů (pokud je prázdné "
"použije se lokální IP)"
@@ -17247,7 +17350,7 @@ msgstr "%s%s: nemohu odeslat ACK k odesílateli"
#, c-format
msgid "%s%s: wrong CRC32 for file %s"
msgstr "%s%s: špatný kontrolní součet CRC32 souboru %s"
msgstr "%s%s: špatný kontrolní součet CRC32 souboru %s"
#, fuzzy, c-format
msgid "%s%s: CRC32 error while resuming"
+359 -271
View File
File diff suppressed because it is too large Load Diff
+282 -208
View File
@@ -24,16 +24,191 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:26+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n"
"Last-Translator: Santiago Forero <santiago@forero.xyz>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Spanish - Spain <weechat-dev@nongnu.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: no es posible conectarse al transmisor"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "usar el mismo color de apodo en el canal y conversaciones privadas"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "mostrar el logo de WeeChat en el arranque"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "mostrar el logo de WeeChat en el arranque"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
#| msgid ""
#| "command executed when WeeChat starts, after loading plugins; multiple "
#| "commands can be separated by semicolons (note: commands are evaluated, "
#| "see /help eval)"
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"comando ejecutado cuando WeeChat inicia, después de cargar los plugins, "
"multiples comandos pueden ser separados por puntos y comas (nota: los "
"comandos se evaluan, ver /help eval)"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
#| msgid "%sUnable to save session in file"
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sError: no se pudo guardar la sesión"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "mostrar la versión de WeeChat en el arranque"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "puntero del plugin (opcional)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
#, fuzzy
#| msgid ""
#| " (by default in headless mode WeeChat is "
#| "blocking and does not run in background)\n"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
" (por defecto en el modo de segundo plano WeeChat "
"está bloqueado y no se ejecuta)\n"
#. TRANSLATORS: command line option "--stdout"
#, fuzzy
#| msgid ""
#| " --stdout display log messages on standard output "
#| "instead of writing them in log file\n"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
" --stdout imprime los registros (logs) en salida estandar "
"en lugar de escribirlos en un archivo\n"
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado en %s %s\n"
"Desarrollado por %s <%s> - %s"
msgid "Usage:"
msgstr ""
#, fuzzy
#| msgid "Usage: %s [option...] [plugin:option...]\n"
msgid "[option...] [plugin:option...]"
msgstr "Uso: %s [opción...] [plugin:opción...]\n"
#, fuzzy
#| msgid "Extra options in headless mode:\n"
msgid "Extra options in headless mode:"
msgstr "Opciones extra en el modo de segundo plano:\n"
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Error: falta un argumento para la opción \"%s\"\n"
msgid "List of bars:"
msgstr "Lista de barras:"
@@ -143,15 +318,15 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sError: no se puede desplazar la barra \"%s\""
#, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgstr "%sNúmero de buffer \"%d\" inválido (debe ser entre 1 y %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr "%sNúmero de buffer %d inválido (debe ser entre 1 y %d)"
msgid "Buffers list:"
msgstr "Lista de buffers:"
#, c-format
msgid " %s[%s%d%s]%s %s%s.%s%s%s (notify: %s%s%s)%s%s"
msgstr " %s[%s%d%s]%s %s%s.%s%s%s (aviso: %s%s%s)%s%s)"
msgstr " %s[%s%d%s]%s %s%s.%s%s%s (aviso: %s%s%s)%s%s)"
#, c-format
msgid "%sBuffer name \"%s\" is reserved for WeeChat"
@@ -179,7 +354,7 @@ msgstr "%sError: el buffer principal de WeeChat no puede ser cerrado"
#, c-format
msgid "Notify for \"%s%s%s\": \"%s%s%s\""
msgstr "Notificar \"%s%s%s\": \"%s%s%s\""
msgstr "Notificar \"%s%s%s\": \"%s%s%s\""
#, c-format
msgid "%sUnable to set notify level \"%s\""
@@ -511,9 +686,9 @@ msgstr ""
"atajos"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "%d nuevo atajo agregado"
msgstr[0] "%d nuevo atajo agregado (contexto: \"%s\")"
msgstr[1] "%d nuevos atajos agregados (contexto: \"%s\")"
msgid "Stored layouts:"
@@ -1047,6 +1222,16 @@ msgstr ""
"mensaje: mensaje de ausencia (si no se especifica ningún mensaje, se remueve "
"el estado ausente)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "gestionar las barras"
@@ -1151,7 +1336,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1648,8 +1833,12 @@ msgid "evaluate expression"
msgstr "evaluar expresión"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid ""
#| "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
#| "<expression2>"
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr ""
"[-n|-s] [-d] <expresión> || [-n] [-d [-d]] -c <expresión1> <operador> "
@@ -1663,6 +1852,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2210,7 +2402,7 @@ msgstr "mostrar ayuda sobre los comandos y opciones"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <comando> || <opción>"
msgid ""
@@ -2273,9 +2465,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3173,7 +3365,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3447,20 +3639,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3727,7 +3919,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -6190,8 +6382,8 @@ msgstr "escritura - variable"
msgid "read - object type"
msgstr "lectura - tipo objeto"
msgid "read - bad object type ('object start' expected)"
msgstr "lectura - tipo de objeto incorrecto (se esperaba 'object start')"
msgid "read - bad object type (\"object start\" expected)"
msgstr "lectura - tipo de objeto incorrecto (se esperaba \"object start\")"
msgid "read - object id"
msgstr "lectura - id objeto"
@@ -6312,152 +6504,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr "Fin del comando '%s', tiempo de espera alcanzado (%.1fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado en %s %s\n"
"Desarrollado por Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Uso: %s [opción...] [plugin:opción...]\n"
#
#, fuzzy
#| msgid ""
#| " -a, --no-connect disable auto-connect to servers at startup\n"
#| " -c, --colors display default colors in terminal\n"
#| " -d, --dir <path> force a single WeeChat home directory\n"
#| " or 4 different directories separated by colons "
#| "(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 "
#| "delete it on exit\n"
#| " (incompatible with option \"-d\")\n"
#| " -h, --help display this help\n"
#| " -l, --license display WeeChat license\n"
#| " -p, --no-plugin don't load any plugin at startup\n"
#| " -P, --plugins <plugins> load only these plugins at startup\n"
#| " (see /help weechat.plugin.autoload)\n"
#| " -r, --run-command <cmd> run command(s) after startup;\n"
#| " many commands can be separated by semicolons "
#| "and are evaluated,\n"
#| " this option can be given multiple times\n"
#| " -s, --no-script don't load any script at startup\n"
#| " --upgrade upgrade WeeChat using session files (see /help "
#| "upgrade in WeeChat)\n"
#| " -v, --version display WeeChat version\n"
#| " plugin:option option for plugin (see man weechat)\n"
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect desactivar la autoconexión de los servidores al "
"inicio\n"
" -c, --colors mostrar los colores predeterminados en la "
"terminal\n"
" -d, --dir <path> establecer el directorio raíz de WeeChat\n"
" o 4 directorios diferentes separados por dos "
"puntos (en este orden: configuración, datos, cache, ejecución)\n"
" (la variable WEECHAT_HOME es usada si esta opción "
"no es dada)\n"
" -t, --temp-dir crear un directorio raíz temporal para weechat y "
"borrarlo al salir\n"
" (incompatible con la opción \"-d\")\n"
" -h, --help mostrar esta ayuda\n"
" -l, --license mostrar la licencia de Weechat\n"
" -p, --no-plugin no cargar ningún plugin al inicio\n"
" -P, --plugins <plugins> cargar solo estos plugins al inicio\n"
" (ver /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> ejecutar un comando luego del inicio;\n"
" varios cmoandos pueden ser separados por dos "
"puntos y son evaluados\n"
" esta opción se puede usar varias veces\n"
" -s, --no-script no cargar ningún script al inicio\n"
" --upgrade actualizar WeeChat usando archivos de sesión "
"(ver /help upgrade in WeeChat)\n"
" -v, --version mostrar la versión de WeeChat\n"
" plugin:option opción para plugin (ver man weechat)\n"
msgid "Extra options in headless mode:\n"
msgstr "Opciones extra en el modo de segundo plano:\n"
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
" --daemon ejecuta WeeChat como un daemon (fork, nuevo grupo "
"de procesos, file descriptores cerrados);\n"
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
" (por defecto en el modo de segundo plano WeeChat "
"está bloqueado y no se ejecuta)\n"
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
" --stdout imprime los registros (logs) en salida estandar "
"en lugar de escribirlos en un archivo\n"
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
" (opción ignorada si la opción \"--daemon\" es "
"indicada)\n"
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
"Opciones de depuración (para herramientas como valgrind, NO USAR EN "
"PRODUCCIÓN):\n"
" --no-dlclose no llamar a la función dlclose luego de que los "
"plugins estén descargados\n"
" --no-gnutls desactivar init/deinit de gnutls\n"
" --no-gcrypt desactivar init/deinit de gcrypt\n"
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Error: falta un argumento para la opción \"%s\"\n"
#, fuzzy
#| msgid "WeeChat is running in headless mode (Ctrl-C to quit)."
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
@@ -6506,7 +6552,7 @@ msgstr ""
#, c-format
msgid "%sYou should add this line in the file %s: %s"
msgstr "%sDeberías añadir esta línea al archivo %s: %s"
msgstr "%sDeberías añadir esta línea al archivo %s: %s"
#, c-format
msgid ""
@@ -6781,7 +6827,7 @@ msgstr ""
#, c-format
msgid "New key binding (context \"%s\"): %s%s => %s%s"
msgstr "Nuevo atajo (contexto \"%s\"): %s%s => %s%s"
msgstr "Nuevo atajo (contexto \"%s\"): %s%s => %s%s"
#, fuzzy, c-format
#| msgid "%sUnable to bind key \"%s\""
@@ -7197,7 +7243,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8761,7 +8807,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: ¡no conectado al servidor \"%s\"!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: autoreconexión cancelada"
#, c-format
@@ -8929,6 +8975,14 @@ msgid_plural "seconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
@@ -9092,7 +9146,7 @@ msgstr ""
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[-current] [-exclude=<canal>[,<canal>...]] <comando> [<argumentos>]"
#, fuzzy
@@ -9197,8 +9251,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[-current] [-exclude=<canal>[,<canal>...]] <comando> [<argumentos>]"
#, fuzzy
@@ -9253,8 +9307,8 @@ msgstr "ejecuta un comando en todos los servidores conectados"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr "[-exclude=<servidor>[,<servidor>...]] <comando> [<argumentos>]"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -9419,7 +9473,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -11510,8 +11564,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -11555,7 +11610,7 @@ msgid ""
"channel/pv of server)"
msgstr ""
"fuerza la posición de nuevos privados en la lista de buffers (none = "
"posición predeterminada (último buffer), next = buffer actual + 1, "
"posición predeterminada (último buffer), next = buffer actual + 1, "
"near_server = después del último canal/privado del server)"
msgid ""
@@ -12036,8 +12091,8 @@ msgstr "nombre del servidor"
msgid "get nick from IRC host"
msgstr "devuelve apodo de un host IRC"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC host (como `:apodo!nombre@servidor.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "IRC host (como `:apodo!nombre@servidor`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12279,8 +12334,8 @@ msgstr "%s%s: ¡este buffer no es un canal!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12799,7 +12854,7 @@ msgstr "%s%s: no conectado al servidor \"%s\" para la redirección"
#, c-format
msgid "%s%s: missing argument \"%s\" for redirect"
msgstr "%s%s: falta el argumento \"%s\" para la redirección"
msgstr "%s%s: falta el argumento \"%s\" para la redirección"
#, c-format
msgid "%s%s: redirect pattern \"%s\" not found"
@@ -13481,7 +13536,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -14886,10 +14941,9 @@ msgstr "%s%s: no se encontró el servidor \"%s\" para el comando \"%s\""
msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: ¡no conectado al servidor \"%s\"!"
#, fuzzy, c-format
#| msgid "%s: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is cancelled"
msgstr "%s: autoreconexión cancelada"
#, c-format
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: server \"%s\" already exists for \"%s\" command"
@@ -15346,11 +15400,11 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista de plugins separados por comas para cargar automáticamente al iniciar, "
"\"*\" significa todos los plugins encontrados, un nombre empezando con \"!\" "
@@ -15358,10 +15412,10 @@ msgstr ""
"\"*\" para indicar varios plugins (ejemplo: \"*\" o \"*,!lua,!tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -15394,6 +15448,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
# why is case insensitive important? ips use numbers and urls are case insensible.
#, fuzzy
msgid ""
@@ -15508,7 +15567,7 @@ msgstr "Lista de clientes a retransmitir"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -15631,6 +15690,10 @@ msgstr "%s%s: error con \"bind\" en el puerto %d (%s)"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: error con \"bind\" en el puerto %d (%s)"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: no se puede aceptar el cliente en el puerto %d (%s)"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: no se puede aceptar el cliente en el puerto %d (%s)"
@@ -15667,7 +15730,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: no hay memoria suficiente para escuchar en un nuevo puerto"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgid "Relay WeeChat data to remote applications"
msgstr ""
msgid "connecting"
@@ -15916,9 +15979,9 @@ msgstr ""
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -16283,6 +16346,11 @@ msgstr "scripts en %s cargados:"
msgid "script name with extension"
msgstr "lista de scripts"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista separada por comas de extensiones de archivo para plugins"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -17233,7 +17301,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: error al compilar la expresión regular \"%s\""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -17267,6 +17335,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -17419,8 +17492,9 @@ msgstr "no esperar por el ACK al enviar un archivo"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"dirección IP o DNS usado para enviar archivos/charlas (si está vacío, se "
"utiliza la IP de interfaz local)"
+378 -281
View File
File diff suppressed because it is too large Load Diff
+240 -145
View File
@@ -22,16 +22,164 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:27+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Hungarian <weechat-dev@nongnu.org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
msgid "disable auto-connect to servers at startup"
msgstr "%s DCC: nem sikerült kapcsolódni a küldőhöz\n"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
msgid "display this help and exit"
msgstr "másik fél nevének színe privát beszélgetésben"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "WeeChat logo mutatása induláskor"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "WeeChat logo mutatása induláskor"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr "felhasználónév az IRC szerveren"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%s nem sikerült a folyamatot menteni\n"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "WeeChat verziójának mutatása induláskor"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
msgid "plugin:option"
msgstr " (nem található bővítőmodul)\n"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, fuzzy, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"%s Copyright (C) 2003-2010, fordítva: %s %s\n"
"Fejlesztő: Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:"
msgstr ""
msgid "[option...] [plugin:option...]"
msgstr ""
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, fuzzy, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n"
#, fuzzy
msgid "List of bars:"
msgstr "Aliaszok listája:\n"
@@ -142,7 +290,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%s nem sikerült a modul opciókat elmenteni\n"
#, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr ""
msgid "Buffers list:"
@@ -493,11 +641,11 @@ msgstr ""
"%s \"-yes\" paraméter megadása kötelező a billentyűparancsok "
"visszaállításához (biztonsági okokból)\n"
#, fuzzy, c-format
msgid "%d new key added"
#, c-format
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "Nincs mellőzés megadva.\n"
msgstr[1] "Nincs mellőzés megadva.\n"
msgstr[0] ""
msgstr[1] ""
#, fuzzy
msgid "Stored layouts:"
@@ -1010,6 +1158,16 @@ msgstr ""
" üzenet: távolléti üzenet (ha nincs üzenet megadva, a távolléti státusz "
"eltávolítása)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
#, fuzzy
msgid "manage bars"
msgstr "pufferek kezelése"
@@ -1101,7 +1259,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1554,7 +1712,7 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr ""
@@ -1566,6 +1724,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2085,7 +2246,7 @@ msgid "display help about commands and options"
msgstr "segítség megjelenítése a parancsokhoz"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr ""
msgid ""
@@ -2145,9 +2306,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3012,7 +3173,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3249,20 +3410,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3502,7 +3663,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -5746,7 +5907,7 @@ msgstr " . típus szöveg (értékek: "
msgid "read - object type"
msgstr ""
msgid "read - bad object type ('object start' expected)"
msgid "read - bad object type (\"object start\" expected)"
msgstr ""
msgid "read - object id"
@@ -5861,98 +6022,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, fuzzy, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"%s Copyright (C) 2003-2010, fordítva: %s %s\n"
"Fejlesztő: Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr ""
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect automatikus csatlakozás a szerverekhez tiltása\n"
" -c, --config beállítófájl opcióinak mutatása\n"
" -d, --dir <path> a WeeChat saját könyvtára (alapértelmezett: "
"~/.weechat)\n"
" -f, --key-functions WeeChat billentyűparancsok mutatása\n"
" -h, --help ez a segítség\n"
" -i, --irc-commands IRC parancsok mutatása\n"
" -k, --keys alapértelmezett WeeChat billentyűk\n"
" -l, --license WeeChat licenc\n"
" -p, --no-plugin nem tölt be modulokat induláskor\n"
" -v, --version WeeChat verziójának mutatása\n"
" -w, --weechat-commands WeeChat parancsok mutatása\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, fuzzy, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
@@ -6656,7 +6725,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8183,7 +8252,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s nincs csatlakozva a \"%s\" szerverhez!\n"
#, fuzzy, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "automata újracsatlakozás megszakítva\n"
#, fuzzy, c-format
@@ -8344,6 +8413,12 @@ msgid_plural "seconds"
msgstr[0] "másodperc"
msgstr[1] "másodperc"
#, fuzzy
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "másodperc"
msgstr[1] "másodperc"
#, fuzzy
msgid "minute"
msgid_plural "minutes"
@@ -8499,7 +8574,7 @@ msgstr "CTCP üzenet küldése az összes csatlakoztatott szerver összes szobá
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[alias_név [parancs [paraméterek]]]"
#, fuzzy
@@ -8589,8 +8664,8 @@ msgstr "CTCP üzenet küldése az összes csatlakoztatott szerver összes szobá
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[alias_név [parancs [paraméterek]]]"
#, fuzzy
@@ -8639,10 +8714,11 @@ msgid "execute a command on all connected servers"
msgstr "üzenet küldése az összes csatlakoztatott szerver összes szobájába"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
msgstr ""
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr "[alias_név [parancs [paraméterek]]]"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
msgstr ""
@@ -8791,7 +8867,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -10763,8 +10839,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -11214,7 +11291,7 @@ msgstr "cél: szerver neve"
msgid "get nick from IRC host"
msgstr "név vagy gép letiltása"
msgid "IRC host (like `:nick!name@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr ""
msgid ""
@@ -11448,8 +11525,8 @@ msgstr "Ez az ablak nem egy szoba!\n"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12567,7 +12644,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -13898,7 +13975,7 @@ msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s nincs csatlakozva a \"%s\" szerverhez!\n"
#, fuzzy, c-format
msgid "remote[%s]: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is canceled"
msgstr "automata újracsatlakozás megszakítva\n"
#, fuzzy, c-format
@@ -14324,21 +14401,21 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"automatikusan betöltendő modulok vesszővel elválasztott listája, \"*\" "
"esetén az összes fellelt modul (az elnevezés lehet részleges, például a "
"\"perl\" elegendő \"libperl.so\" helyett)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -14371,6 +14448,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -14472,7 +14554,7 @@ msgstr "Nincs szerver.\n"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -14593,6 +14675,10 @@ msgstr "%s nem sikerült a csatornát létrehozni\n"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s nem sikerült a csatornát létrehozni\n"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s nem sikerült a csatornát létrehozni\n"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s nem sikerült a csatornát létrehozni\n"
@@ -14629,7 +14715,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s nincs elegendő memória új DCC számára\n"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgid "Relay WeeChat data to remote applications"
msgstr ""
#, fuzzy
@@ -14872,9 +14958,9 @@ msgstr ""
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -15228,6 +15314,9 @@ msgstr "FIFO cső bezárva\n"
msgid "script name with extension"
msgstr "Aliaszok listája:\n"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16133,7 +16222,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s nincs elég memória az információs pult üzenethez\n"
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -16167,6 +16256,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -16313,8 +16407,9 @@ msgstr "nem vár ACK válaszra fájl küldésekor"
#, fuzzy
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr "kimenő dcc forgalom IP/DNS-címe (ha üres, a helyi interfész IP-címe)"
#, fuzzy
+260 -161
View File
@@ -22,16 +22,171 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:27+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Italian <weechat-dev@nongnu.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: impossibile connettersi al mittente"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "usa lo stesso colore del nick per canale e privato"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "mostra il logo di WeeChat all'avvio"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "mostra il logo di WeeChat all'avvio"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"comando eseguito all'avvio di WeeChat, dopo il caricamento dei plugin (nota: "
"il contenuto viene valutato, consultare /help eval)"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sErrore: impossibile salvare la sessione su file"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "mostra la versione di WeeChat all'avvio"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "puntatore al plugin (opzionale)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilato il %s %s\n"
"Sviluppato da %s <%s> - %s"
msgid "Usage:"
msgstr ""
#, fuzzy
#| msgid "Usage: %s [option...] [plugin:option...]\n"
msgid "[option...] [plugin:option...]"
msgstr "Uso: %s [opzione...] [plugin:opzione...]\n"
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Errore: argomento mancante per l'opzione \"%s\"\n"
msgid "List of bars:"
msgstr "Elenco delle barre:"
@@ -138,9 +293,9 @@ msgstr "%sErrore: finestra non trovata per il comando \"%s\""
msgid "%sUnable to scroll bar \"%s\""
msgstr "%sErrore: impossibile scorrere la barra \"%s\""
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgstr "%sNumero colore \"%s\" non valido (deve essere compresto tra %d e %d)"
#, c-format
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr ""
msgid "Buffers list:"
msgstr "Elenco buffer:"
@@ -496,7 +651,7 @@ msgstr ""
"sicurezza)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "%d nuovo tasto aggiunto (contesto: \"%s\")"
msgstr[1] "%d nuovi tasti aggiunti (contesto: \"%s\")"
@@ -1019,6 +1174,16 @@ msgstr ""
"messaggio: messaggio di assenza (se non specificato, lo stato di assenza "
"viene rimosso)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "gestione delle barre"
@@ -1119,7 +1284,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1607,7 +1772,7 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr ""
"[-n] <espressione> || [-n] -c <espressione1> <operatore> <espressione2>"
@@ -1620,6 +1785,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2165,7 +2333,7 @@ msgstr "visualizza l'aiuto su comandi e opzioni"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <comando> || <opzione>"
msgid ""
@@ -2228,9 +2396,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3126,7 +3294,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3404,20 +3572,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3680,7 +3848,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -4808,7 +4976,7 @@ msgid ""
"string used to show that some lines are filtered in current buffer (bar item "
"\"buffer_filter\")"
msgstr ""
"stringa usata per mostrare che alcune righe sono state filtrate nel buffer "
"stringa usata per mostrare che alcune righe sono state filtrate nel buffer "
"corrente (elemento barra \"buffer_filter\")"
#, fuzzy
@@ -6182,7 +6350,7 @@ msgstr "%s sorgente: %s, riga: %d"
#, c-format
msgid "%s *** Please report above info to developers ***"
msgstr ""
"%s *** Per favore inviare le precedenti informazioni agli sviluppatori ***"
"%s *** Per favore inviare le precedenti informazioni agli sviluppatori ***"
msgid "write - object type"
msgstr "scrittura - tipo oggetto"
@@ -6202,8 +6370,8 @@ msgstr "scrittura - variabile"
msgid "read - object type"
msgstr "lettura - tipo oggetto"
msgid "read - bad object type ('object start' expected)"
msgstr "lettura - tipo oggetto errato ('object start' previsto)"
msgid "read - bad object type (\"object start\" expected)"
msgstr "lettura - tipo oggetto errato (\"object start\" previsto)"
msgid "read - object id"
msgstr "lettura - id oggetto"
@@ -6323,100 +6491,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr "Fine comando '%s', timeout raggiunto (%.1fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilato il %s %s\n"
"Sviluppato da Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Uso: %s [opzione...] [plugin:opzione...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect\t disabilita la connessione automatica all'avvio\n"
" -c, --colors mostra i colori predefiniti nel terminale\n"
" -d, --dir <path> imposta la directory principale di WeeChat "
"(predefinita: ~/.weechat)\n"
" -h, --help mostra questo aiuto\n"
" -l, --license mostra la licenza di WeeChat\n"
" -p, --no-plugin non carica i plugin all'avvio\n"
" -s, --no-script non carica gli script all'avvio\n"
" -r, --run-command esegue uno o più comandi all'avvio\n"
"(più comandi vanno separati da punto e virgola)\n"
" --upgrade aggiorna WeeChat usando i file di sessione "
"(consultare /help upgrade in WeeChat)\n"
" -v. --version mostra la versione di WeeChat\n"
" plugin:opzione opzione per il plugin (consultare man weechat)\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Errore: argomento mancante per l'opzione \"%s\"\n"
#, fuzzy
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se si sta aggiornando WeeChat (comando `/upgrade`)"
@@ -7142,7 +7216,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8743,7 +8817,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: non connesso al server \"%s\"!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: la riconnessione automatica è annullata"
#, c-format
@@ -8913,6 +8987,14 @@ msgid_plural "seconds"
msgstr[0] "secondo"
msgstr[1] "secondi"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "secondo"
msgstr[1] "secondi"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
@@ -9075,7 +9157,7 @@ msgstr "esegue un comando su tutti i canali di tutti i server connessi"
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[-current] [-exclude=<canale>[,<canale>...]] <comando> [<argomenti>]"
#, fuzzy
@@ -9177,8 +9259,8 @@ msgstr "esegue un comando su tutti i canali di tutti i server connessi"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[-current] [-exclude=<canale>[,<canale>...]] <comando> [<argomenti>]"
#, fuzzy
@@ -9233,8 +9315,8 @@ msgstr "esegue un comando su tutti i server connessi"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr "[-exclude=<server>[,<server>...]] <comando> [<argomenti>]"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -9399,7 +9481,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -11508,8 +11590,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -12047,8 +12130,8 @@ msgstr "nome server"
msgid "get nick from IRC host"
msgstr "ottiene nick dall'host IRC"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host IRC (come `:nick!nome@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "host IRC (come `:nick!nome@server`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12288,8 +12371,8 @@ msgstr "%s%s: questo buffer non è un canale!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12595,7 +12678,7 @@ msgstr "%sL'argomento per %s%s%s è \"%s%s\""
#. TRANSLATORS: "%s" after "on" is a date
#, c-format
msgid "%sTopic set by %s%s%s%s%s%s%s%s%s on %s"
msgstr "%sArgomento impostato da %s%s%s%s%s%s%s%s%s il %s"
msgstr "%sArgomento impostato da %s%s%s%s%s%s%s%s%s il %s"
#. TRANSLATORS: "%s" after "on" is a date
#, c-format
@@ -12807,7 +12890,7 @@ msgstr "%s%s: nessuna connessione al server \"%s\" per la redirezione"
#, c-format
msgid "%s%s: missing argument \"%s\" for redirect"
msgstr "%s%s: argomento \"%s\" mancante per la redirezione"
msgstr "%s%s: argomento \"%s\" mancante per la redirezione"
#, c-format
msgid "%s%s: redirect pattern \"%s\" not found"
@@ -13479,7 +13562,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -14890,10 +14973,9 @@ msgstr "%s%s: server \"%s\" non trovato per il comando \"%s\""
msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: non connesso al server \"%s\"!"
#, fuzzy, c-format
#| msgid "%s: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is cancelled"
msgstr "%s: la riconnessione automatica è annullata"
#, c-format
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: server \"%s\" already exists for \"%s\" command"
@@ -15371,11 +15453,11 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"elenco separato da virgole di plugin da caricare automaticamente all'avvio, "
"\"*\" equivale a tutti i plugin trovati. un nome che comincia con \"!\" è un "
@@ -15384,10 +15466,10 @@ msgstr ""
"oppure \"*,!lua,!tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -15420,6 +15502,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
#, fuzzy
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
@@ -15542,7 +15629,7 @@ msgstr "Elenco dei client per il relay"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -15683,6 +15770,10 @@ msgstr "%s%s: \"bind\" impossibile sulla porta %d (%s): errore %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: \"bind\" impossibile sulla porta %d (%s): errore %d %s"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: \"listen\" impossibile sulla porta %d (%s): errore %d %s"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: \"listen\" impossibile sulla porta %d (%s): errore %d %s"
@@ -15719,10 +15810,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memoria non sufficiente per l'ascolto su una nuova porta"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr ""
"Esegui il relay dei dati di WeeChat ad un'applicazione remota (protocolli "
"irc/weechat)"
msgid "Relay WeeChat data to remote applications"
msgstr "Esegui il relay dei dati di WeeChat ad un'applicazione remota"
msgid "connecting"
msgstr "connessione"
@@ -15971,9 +16060,9 @@ msgstr ""
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -16343,6 +16432,11 @@ msgstr "script %s caricati:"
msgid "script name with extension"
msgstr "elenco degli script"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "elenco separato da virgole di estensioni dei nomi file per i plugin"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -17296,7 +17390,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: errore nella compilazione dell'espressione regolare \"%s\""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -17330,6 +17424,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -17479,8 +17578,9 @@ msgstr "non attendere ACK all'invio del file"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"Indirizzo IP o DNS per l'invio di file/chat (se vuoto, verrà usata "
"l'interfaccia IP locale)"
@@ -17773,7 +17873,7 @@ msgstr "%s%s: tipo xfer \"%s\" sconosciuto"
#, c-format
msgid "%s%s: unknown xfer protocol \"%s\""
msgstr "%s%s: protocollo xfer \"%s\" sconosciuto"
msgstr "%s%s: protocollo xfer \"%s\" sconosciuto"
#, c-format
msgid "%s%s: cannot access file \"%s\""
@@ -17808,6 +17908,5 @@ msgid ""
"%s%s: unable to accept resume file \"%s\" (port: %d, start position: %llu): "
"xfer not found or not ready for transfer"
msgstr ""
"%s%s: impossibile accettare di riprendere il file \"%s\" (porta: %d, "
"posizione di avvio: %llu): xfer non trovato o non pronto per il "
"trasferimento"
"%s%s: impossibile accettare di riprendere il file \"%s\" (porta: %d, "
"posizione di avvio: %llu): xfer non trovato o non pronto per il trasferimento"
+266 -178
View File
@@ -22,17 +22,174 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2026-03-16 13:19+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
"translation/ja_JP>\n"
"Language-Team: Japanese <weechat-dev@nongnu.org>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: 送信者に接続できません"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "チャンネルとプライベートバッファで同じニックネーム色を利用"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "WeeChat ロゴを開始時に表示"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "WeeChat ロゴを開始時に表示"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"WeeChat が実行され、プラグインのロード後に実行されるコマンド (注意: 値は評価"
"されます、/help eval を参照してください)"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sエラー: ファイルにセッションを保存できません"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "WeeChat バージョンを開始時に表示"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "プラグインポインタ (任意)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
"WeeChat をデーモンとして実行 (フォーク、新しいプロセスグループ、ファイルディ"
"スクリプタを閉じる); ヘッドレスモードのデフォルトでは WeeChat はプロセスをブ"
"ロックし、バックグラウンド動作しません"
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr "プラグインがアンロードされた後に、dlclose 関数を呼び出さない"
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr "gnutls の init/deinit を無効化"
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr "gcrypt の init/deinit を無効化"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s 著作権 %s、%s %s にコンパイル\n"
"開発者 %s <%s> - %s"
msgid "Usage:"
msgstr "使い方:"
msgid "[option...] [plugin:option...]"
msgstr "[オプション...] [プラグイン:オプション...]"
msgid "Extra options in headless mode:"
msgstr "ヘッドレスモード用の追加オプション:"
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
"デバッグオプション (valgrind などのツールと組み合わせて使用してください、通常"
"利用中には使用しないでください):"
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "エラー: \"%s\" オプションの引数がありません\n"
msgid "List of bars:"
msgstr "バーのリスト:"
@@ -140,7 +297,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sエラー: バー \"%s\" をスクロールできません"
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr ""
"%sエラー: %d は範囲外のバッファ番号です (1 から %d の間で指定してください)"
@@ -507,9 +664,9 @@ msgstr ""
"由で)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "%d 個の新しいキーを追加しました (コンテキスト: \"%s\")"
msgstr[0] ""
msgid "Stored layouts:"
msgstr "保存されたレイアウト:"
@@ -1026,6 +1183,16 @@ msgstr ""
" -all: 全ての接続済みサーバに対して離席状態を切り替え\n"
"message: 離席メッセージ (メッセージが無い場合は、離席状態を解除)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "バーの管理"
@@ -1129,7 +1296,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1645,7 +1812,7 @@ msgstr "式を評価"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>"
@@ -1663,6 +1830,9 @@ msgstr ""
"正規表現置換が行われた後に条件が満足された場合に実行するコマンド (多くのコマ"
"ンドを実行するにはセミコロンで区切ってください)"
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2204,7 +2374,7 @@ msgstr "コマンドとオプションに関するヘルプを表示"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid ""
@@ -2267,9 +2437,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3178,7 +3348,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3481,20 +3651,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3764,7 +3934,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -6375,8 +6545,8 @@ msgstr "書き込み - 変数"
msgid "read - object type"
msgstr "読み込み - オブジェクト型"
msgid "read - bad object type ('object start' expected)"
msgstr "書き込み - 不正なオブジェクト型 ('object start' が必要)"
msgid "read - bad object type (\"object start\" expected)"
msgstr "書き込み - 不正なオブジェクト型 (\"object start\" が必要)"
msgid "read - object id"
msgstr "読み込み - オブジェクト id"
@@ -6500,121 +6670,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr "コマンド '%s' の終了、タイムアウトになりました (%.1fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s 著作権 %s、%s %s にコンパイル\n"
"開発者 Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "使い方: %s [オプション...] [プラグイン:オプション...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect 起動時にサーバに自動接続しない\n"
" -c, --colors 端末にデフォルトの色を表示\n"
" -d, --dir <path> WeeChat ホームディレクトリを設定 (デフォルト: "
"~/.weechat)\n"
" (このオプションが設定されていない場合、"
"WEECHAT_HOME 環境変数を読みます)\n"
" -t, --temp-dir 一時的に WeeChat ホームディレクトリを作成し、終了"
"時にこれを削除\n"
" (オプション \"-d\" と同時利用不可)\n"
" -h, --help このヘルプを表示\n"
" -l, --license WeeChat ライセンスを表示\n"
" -p, --no-plugin 起動時にプラグインをロードしない\n"
" -P, --plugins <plugins> 指定したプラグインのみを起動時にロードする\n"
" (/help weechat.plugin.autoload を参照してくださ"
"い)\n"
" -r, --run-command <cmd> 起動後にコマンドを実行;\n"
" 複数のコマンドを実行するには各コマンドをセミコロン"
"で区切って下さい\n"
" このオプションは複数回使用できます\n"
" -s, --no-script 起動時にスクリプトをロードしない\n"
" --upgrade セッションファイルを使って WeeChat をアップグレー"
"ド (WeeChat で /help upgrade を確認してください)\n"
" -v, --version WeeChat のバージョンを表示\n"
" plugin:option プラグイン用オプション (man weechat を参照してくだ"
"さい)\n"
msgid "Extra options in headless mode:\n"
msgstr "ヘッドレスモード用の追加オプション:\n"
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
" --daemon WeeChat をデーモンとして実行 (フォーク、新しいプロ"
"セスグループ、ファイルディスクリプタを閉じる);\n"
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
" (ヘッドレスモードのデフォルトでは WeeChat はプロセ"
"スをブロックし、バックグラウンド動作しません)\n"
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
"デバッグオプション (valgrind などのツールと組み合わせて使用してください、通常"
"利用中には使用しないでください):\n"
" --no-dlclose プラグインがアンロードされた後に、dlclose 関数を呼"
"び出さない\n"
" --no-gnutls gnutls の init/deinit を無効化\n"
" --no-gcrypt gcrypt の init/deinit を無効化\n"
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "エラー: \"%s\" オプションの引数がありません\n"
#, fuzzy
#| msgid "WeeChat is running in headless mode (Ctrl-C to quit)."
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
@@ -7365,7 +7420,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -7644,7 +7699,7 @@ msgid ""
msgstr ""
"%s%s: 警告: buffers.pl スクリプトが読み込まれました。buffers.pl スクリプトは "
"buflist プラグインと類似するバーリストが含まれるバーを提供しています; 必要な"
"らば、buffers.pl スクリプトを削除 (/script remove buffers.pl) するか、"
"らば、buffers.pl スクリプトを削除 (/script remove buffers.pl) するか、"
"buflist プラグインを無効化/アンロードしてください; 詳しい情報は WeeChat リ"
"リースノートを参照してください"
@@ -9060,7 +9115,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: サーバ \"%s\" に接続されていません!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: 自動再接続がキャンセルされました"
#, c-format
@@ -9228,6 +9283,13 @@ msgid "second"
msgid_plural "seconds"
msgstr[0] "秒"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "秒"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "分"
@@ -9389,7 +9451,7 @@ msgstr "全てのサーバ、全てのチャンネルに対してコマンドを
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr ""
"[-current] [-exclude=<channel>[,<channel>...]] <command> [<arguments>] || [-"
"current] -include=<channel>[,<channel>...] <command> [<arguments>]"
@@ -9492,8 +9554,8 @@ msgstr "全ての接続済みサーバの全てのプライベートバッファ
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> [<arguments>] || [-"
"current] -include=<nick>[,<nick>...] <command> [<arguments>]"
@@ -9550,8 +9612,8 @@ msgstr "全ての接続済みサーバでコマンドを実行"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr ""
"[-exclude=<server>[,<server>...]] <command> [<arguments>] || "
"-include=<server>[,<server>...] <command> [<arguments>]"
@@ -9732,7 +9794,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -11954,8 +12016,9 @@ msgstr "fset バッファの左右スクロール量 (横幅の割合)"
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -12521,8 +12584,8 @@ msgstr "サーバ名"
msgid "get nick from IRC host"
msgstr "IRC ホストからニックネームを取得"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC ホスト (例: `:nick!name@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "IRC ホスト (例: `:nick!name@server`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12753,12 +12816,12 @@ msgstr "%s%s: サーバに接続していません"
#, c-format
msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: このバッファはチャンネルではありません"
msgstr "%s%s: このバッファはチャンネルではありません!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12926,6 +12989,7 @@ msgstr "%s%s%s%s%s に kill されました"
msgid "%sMode %s%s %s[%s%s%s%s%s]%s by %s%s"
msgstr "%1$s%11$s%12$s がモードを変更 %2$s%3$s %4$s[%5$s%6$s%7$s%8$s%9$s]%10$s"
# noqa
#, c-format
msgid "%sUser mode %s[%s%s%s]%s by %s%s"
msgstr "%1$s%7$s%8$s%6$s がユーザモードを変更 %2$s[%3$s%4$s%5$s]%6$s"
@@ -13973,7 +14037,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -15390,10 +15454,9 @@ msgstr "%1$s%2$s: \"%4$s\" コマンドのサーバ \"%3$s\" は見つかりま
msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: サーバ \"%s\" に接続されていません!"
#, fuzzy, c-format
#| msgid "%s: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is cancelled"
msgstr "%s: 自動再接続がキャンセルされました"
#, c-format
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: server \"%s\" already exists for \"%s\" command"
@@ -15897,21 +15960,21 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"スタートアップ時にロードするプラグインのコンマ区切りリスト、\"*\" は見つかっ"
"た全てのプラグイン、\"!\" から始まる名前はロードしないプラグイン、名前にワイ"
"ルドカード \"*\" を使うことができます (例: \"*\" または \"*,!lua,!tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -15959,6 +16022,11 @@ msgstr ""
"のパスワードを考慮、...; この値を大きくするとセキュリティレベルが低下します "
"(0 または 1 を推奨します)"
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
#, fuzzy
#| msgid ""
#| "POSIX extended regular expression with origins allowed in websockets "
@@ -16095,12 +16163,12 @@ msgstr "中継するクライアントのリスト"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
"protocol,status (どちらも任意、引数の \"*\" はすべてを意味します; プロトコ"
"ル: irc、weechat。状態: connecting、waiting_auth、connected、auth_failed、"
"disconnected)"
"ル: api、irc、weechat。状態: connecting、waiting_auth、connected、"
"auth_failed、disconnected)"
msgid "list of relay clients"
msgstr "リレークライアントのリスト"
@@ -16242,6 +16310,11 @@ msgstr "%s%s: パス %s (%s) に \"bind\" できません: エラー %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: ポート %d (%s) に \"bind\" できません: エラー %d %s"
#, fuzzy, c-format
#| msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: パス %s (%s) ではリッスンできません: エラー %d %s"
#, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: パス %s (%s) ではリッスンできません: エラー %d %s"
@@ -16278,9 +16351,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: 新しいポートをリッスンするためのメモリ不足"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr ""
"WeeChat データをリモートアプリケーションにリレー (irc/weechat プロトコル)"
msgid "Relay WeeChat data to remote applications"
msgstr "WeeChat データをリモートアプリケーションにリレー"
msgid "connecting"
msgstr "接続中"
@@ -16524,11 +16596,16 @@ msgstr "(なし)"
msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+key/input: v=リストに戻る d=比較する"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, "
#| "r=remove, l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view "
#| "script | Input: q=close, $=refresh, s:x,y=sort, words=filter, *=reset "
#| "filter | Mouse: left=select, right=install/remove"
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
"%d/%d 個のスクリプト (フィルタ: %s) | ソート: %s | Alt+key/input: i=インス"
@@ -16919,6 +16996,11 @@ msgstr "ロードされた %s スクリプト:"
msgid "script name with extension"
msgstr "スクリプトの拡張子のリスト"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "プラグインのファイル拡張子のコンマ区切りリスト"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)"
@@ -17901,7 +17983,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: トリガの正規表現が間違っています: \"%s\""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -17935,6 +18017,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -18084,8 +18171,9 @@ msgstr "ファイル送信時に肯定応答を待たない"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"ファイル/チャットの送信に使う IP か DNS アドレス (空の場合、ローカルインター"
"フェース IP を使う)"
+609 -880
View File
File diff suppressed because it is too large Load Diff
+258 -159
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:27+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese <>\n"
"Language-Team: Portuguese - Portugal <weechat-dev@nongnu.org>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,6 +33,159 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: não foi possível conectar para enviar"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "usar a mesma cor para o nick no canal e em privado"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "mostrar o logo do WeeChat ao iniciar"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "mostrar o logo do WeeChat ao iniciar"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"comando executado ao iniciar o WeeChat, depois de recarregar os plugins "
"(nota: o conteúdo é avaliado, ver /help eval)"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sErro: não foi possível guardar a sessão no ficheiro"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "mostrar a versão do WeeChat ao iniciar"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "ponteiro para plugin (opcional)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado a %s %s\n"
"Desenvolvido por %s <%s> - %s"
msgid "Usage:"
msgstr "Utilização:"
msgid "[option...] [plugin:option...]"
msgstr "[opção...] [plugin:opção...]"
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Erro: falta o argumento da opção \"%s\"\n"
msgid "List of bars:"
msgstr "Lista de barras:"
@@ -141,7 +294,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sErro: não foi possível deslocar a barra \"%s\""
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr ""
"%sErro: o buffer número %d está fora do intervalo (deve estar entre 1 e %d)"
@@ -509,9 +662,9 @@ msgstr ""
"de segurança)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "%d nova tecla adicionada"
msgstr[0] "%d nova tecla adicionada (contexto: \"%s\")"
msgstr[1] "%d novas teclas adicionadas (contexto: \"%s\")"
msgid "Stored layouts:"
@@ -1037,6 +1190,16 @@ msgstr ""
"mensagem: mensagem de ausência (se não for indicada uma mensagem, o estado "
"ausente é removido)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "gerir barras"
@@ -1140,7 +1303,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1658,7 +1821,7 @@ msgstr "avaliar uma expressão"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr "[-n|-s] <expressão> || [-n] -c <expressão1> <operador> <expressão2>"
@@ -1676,6 +1839,9 @@ msgstr ""
"comandos a executar se as condições estiverem bem, depois de substituir as "
"expressões regulares (pode separar vários comandos por ponto e vírgula)"
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2220,7 +2386,7 @@ msgstr "mostrar ajuda sobre comandos e opções"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <comando> || <opção>"
msgid ""
@@ -2283,9 +2449,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3189,7 +3355,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3495,20 +3661,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3780,7 +3946,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -6435,8 +6601,8 @@ msgstr "escrita - variável"
msgid "read - object type"
msgstr "leitura - tipo de objeto"
msgid "read - bad object type ('object start' expected)"
msgstr "leitura - tipo de objeto incorreto (esperava-se 'object start')"
msgid "read - bad object type (\"object start\" expected)"
msgstr "leitura - tipo de objeto incorreto (esperava-se \"object start\")"
msgid "read - object id"
msgstr "leitura - id objeto"
@@ -6557,104 +6723,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr "Fim do comando '%s', tempo limite atingido (%.1fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado a %s %s\n"
"Desenvolvido por Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Utilização: %s [opção...] [plugin:opção...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect desativar conexão automática aos servidores ao "
"iniciar\n"
" -c, --colors mostrar cores predefinidas no terminal\n"
" -d, --dir <path> definir o diretório do WeeChat (predefinição: "
"~/.weechat)\n"
" (a variável de ambiente WEECHAT_HOME é lida se "
"esta opção não for fornecida)\n"
" -h, --help mostrar esta ajuda\n"
" -l, --license mostrar a licença do WeeChat\n"
" -p, --no-plugin não carregar nenhum plugin ao iniciar\n"
" -r, --run-command <cmd> executar os comandos ao iniciar\n"
" (pode-se separar vários comandos por ponto e "
"vírgula)\n"
" -s, --no-script não carregar nenhum comando ao iniciar\n"
" --upgrade atualizar o WeeChat usando ficheiros de sessão "
"(ver /help upgrade no WeeChat)\n"
" -v, --version mostrar a versão do WeeChat\n"
" plugin:opção opção de um plugin (ver man weechat)\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Erro: falta o argumento da opção \"%s\"\n"
#, fuzzy
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se o WeeChat está a atualizar (comando `/upgrade`)"
@@ -7410,7 +7478,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -9019,7 +9087,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: não está conectado ao servidor \"%s\"!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: a reconexão automática foi cancelada"
#, c-format
@@ -9191,6 +9259,14 @@ msgid_plural "seconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
@@ -9355,7 +9431,7 @@ msgstr ""
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[-current] [-exclude=<canal>[,<canal>...]] <comando> [<argumentos>]"
#, fuzzy
@@ -9459,8 +9535,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[-current] [-exclude=<nick>[,<nick>...]] <comando> [<argumentos>]"
#, fuzzy
@@ -9516,8 +9592,8 @@ msgstr "executar um comando em todos os servidores conectados"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr "[-exclude=<servidor>[,<servidor>...]] <comando> [<argumentos>]"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -9688,7 +9764,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -11135,7 +11211,7 @@ msgstr ""
msgid ""
"%s%s: invalid priorities string, error at this position in string: \"%s\""
msgstr ""
"%s%s: cadeia de prioridades inválida, erro nesta posição na cadeia: \"%s\""
"%s%s: cadeia de prioridades inválida, erro nesta posição na cadeia: \"%s\""
#, fuzzy, c-format
msgid "%s%s: warning: invalid autojoin value \"%s\", see /help %s.%s.%s"
@@ -11874,8 +11950,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -12428,8 +12505,8 @@ msgstr "nome do servidor"
msgid "get nick from IRC host"
msgstr "obter nick do host de IRC"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host de IRC (tal como `:nick!nome@servidor.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "host de IRC (tal como `:nick!nome@servidor`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12672,8 +12749,8 @@ msgstr "%s%s: este buffer não é um canal!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13877,7 +13954,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -15280,10 +15357,9 @@ msgstr "%s%s: o servidor \"%s\" do comando \"%s\" não foi encontrado"
msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: não está conectado ao servidor \"%s\"!"
#, fuzzy, c-format
#| msgid "%s: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is cancelled"
msgstr "%s: a reconexão automática foi cancelada"
#, c-format
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, fuzzy, c-format
#| msgid "%s%s: server \"%s\" already exists for \"%s\" command"
@@ -15768,11 +15844,11 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista de plugins separados por vírgula para carregar automaticamente ao "
"iniciar, \"*\" significa todos os plugins encontrados, um nome começado com "
@@ -15781,10 +15857,10 @@ msgstr ""
"tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -15817,6 +15893,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
#, fuzzy
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
@@ -15940,7 +16021,7 @@ msgstr "número de cliente para reencaminhar"
#, fuzzy
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
"nome de estado (opcional): connecting, waiting_auth, connected, auth_failed, "
@@ -16089,6 +16170,10 @@ msgstr "%s%s: não é possível efetuar \"bind\" da porta %d (%s): erro %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: não é possível efetuar \"bind\" da porta %d (%s): erro %d %s"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: não foi possível efetuar \"listen\" da porta %d (%s): erro %d %s"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: não foi possível efetuar \"listen\" da porta %d (%s): erro %d %s"
@@ -16129,10 +16214,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memória insuficiente para escutar nova porta"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr ""
"Reencaminhar dados do WeeChat para aplicações remotas (protocolos irc/"
"weechat)"
msgid "Relay WeeChat data to remote applications"
msgstr "Reencaminhar dados do WeeChat para aplicações remotas"
msgid "connecting"
msgstr "a conectar"
@@ -16189,7 +16272,7 @@ msgid ""
"%s%s: too few arguments received from client %s%s%s for command \"%s\" "
"(received: %d arguments, expected: at least %d)"
msgstr ""
"%s%s: argumentos insuficientes recebidos do cliente %s%s%s pelo comando "
"%s%s: argumentos insuficientes recebidos do cliente %s%s%s pelo comando "
"\"%s\" (recebido: %d argumentos, esperado: pelo menos %d)"
msgid "Support of ruby scripts"
@@ -16376,11 +16459,16 @@ msgstr "(nada)"
msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+tecla/entrada: v=voltar à lista d=saltar para o diff"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, "
#| "r=remove, l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view "
#| "script | Input: q=close, $=refresh, s:x,y=sort, words=filter, *=reset "
#| "filter | Mouse: left=select, right=install/remove"
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
"%d/%d scripts (filtro: %s) | Ordenar: %s | Alt+tecla/entrada: i=instalar, "
@@ -16781,6 +16869,11 @@ msgstr "scripts %s carregados:"
msgid "script name with extension"
msgstr "lista de extensões de script"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista de extensões de ficheiros separadas por vírgula para os plugins"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
"nome do script com extensão (o caráter universal \"*\" é permitido) "
@@ -17785,7 +17878,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: expressão regular inválida no acionador: \"%s\""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -17819,6 +17912,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -17969,8 +18067,9 @@ msgstr "não aguardar por ACK ao enviar ficheiros"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"IP ou endereço DNS usado para enviar ficheiros/chats (se vazio, é usado o IP "
"da interface local)"
+268 -178
View File
@@ -19,14 +19,37 @@
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
# Common conventions used here:
# hotlist -> lista de atividade
# input -> entrada
# scroll -> rolar
# set -> definido
# buffer -> buffer (don't translate it)
# hostname -> hostname
# nick -> apelido
# op/voice -> don't translate irc specific terms (besides nick)
# feature -> característica
# don't translate weechat specific terms, like "left" when used as a option value
# merge -> mesclar
# layout -> disposição
# background -> fundo (quando se referir à cores, janelas)
# comma separated list of X -> lista de X separadas por vírgulas
# status -> status
# away -> ausent (when refers to a nick status)
# cursor -> cursor (don't translate it)
# dump -> dump (don't translate it)
# key bindings -> atalhos de teclado
# bind -> vincular
# handshake -> handshake (don't translate it when related to cryptography)
#
msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:27+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Portuguese - Brazil <weechat-dev@nongnu.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -34,6 +57,159 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 1.1\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
#| msgid "%s%s: unable to connect to sender"
msgid "disable auto-connect to servers at startup"
msgstr "%s%s: não foi possível conectar ao remetente"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
#| msgid "use same nick color for channel and private"
msgid "display this help and exit"
msgstr "utilizar a mesma cor de apelido para canal e privado"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "mosta o logo do WeeChat na inicialização"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "mosta o logo do WeeChat na inicialização"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"comando executado quando o WeeChat inicia, após o carregamento dos plugins "
"(nota: o conteúdo é avaliado, veja /help eval)"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%sErro: incapaz de salvar a sessão em arquivo"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "mosta a versão do WeeChat na inicialização"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
#| msgid "plugin pointer (optional)"
msgid "plugin:option"
msgstr "pointeiro do plugin (opcional)"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado em %s %s\n"
"Desenvolvido por %s <%s> - %s"
msgid "Usage:"
msgstr "Uso:"
msgid "[option...] [plugin:option...]"
msgstr "[opção...] [plugin:opção...]"
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Erro: faltando argumento para opção \"%s\"\n"
msgid "List of bars:"
msgstr "Lista de barras:"
@@ -141,7 +317,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sErro: não foi possível rolar a barra \"%s\""
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr "%sNúmero de cor inválido \"%s\" (precisa ser entre %d e %d)"
msgid "Buffers list:"
@@ -504,9 +680,9 @@ msgstr ""
"de segurança)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "%d nova tecla adicionada"
msgstr[0] "%d nova tecla adicionada (context: \"%s\")"
msgstr[1] "%d novas teclas adicionadas (context: \"%s\")"
#, fuzzy
@@ -1025,6 +1201,16 @@ msgstr ""
"message: mensagem para ausência (se nenhuma mensagem for fornecida, o status "
"de ausência é removido)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr "gerenciar barras"
@@ -1126,7 +1312,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1619,7 +1805,7 @@ msgstr "avaliar expressão"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>"
@@ -1631,6 +1817,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2174,7 +2363,7 @@ msgstr "mostra a ajuda sobre comandos e opções"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
#| msgid "-list|-listfull [<plugin> [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<plugin> [<plugin>...]] || <comando> || <opção>"
msgid ""
@@ -2237,9 +2426,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3130,7 +3319,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3401,20 +3590,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3677,7 +3866,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -6082,7 +6271,7 @@ msgstr ""
msgid "read - object type"
msgstr ""
msgid "read - bad object type ('object start' expected)"
msgid "read - bad object type (\"object start\" expected)"
msgstr ""
msgid "read - object id"
@@ -6197,133 +6386,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr ""
# Common conventions used here:
# hotlist -> lista de atividade
# input -> entrada
# scroll -> rolar
# set -> definido
# buffer -> buffer (don't translate it)
# hostname -> hostname
# nick -> apelido
# op/voice -> don't translate irc specific terms (besides nick)
# feature -> característica
# don't translate weechat specific terms, like "left" when used as a option value
# merge -> mesclar
# layout -> disposição
# background -> fundo (quando se referir à cores, janelas)
# comma separated list of X -> lista de X separadas por vírgulas
# status -> status
# away -> ausent (when refers to a nick status)
# cursor -> cursor (don't translate it)
# dump -> dump (don't translate it)
# key bindings -> atalhos de teclado
# bind -> vincular
# handshake -> handshake (don't translate it when related to cryptography)
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s Copyright %s, compilado em %s %s\n"
"Desenvolvido por Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Uso: %s [opção...] [plugin:opção...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect desabilita a auto-conexão a servidores durante a "
"inicialização\n"
" -c, --colors exibe as cores padrões no terminal\n"
" -d, --dir <path> configura diretório do WeeChat (padrão: "
"~/.weechat)\n"
" (a variável de ambiente WEECHAT_HOME é lida "
"seessa opção não for dada)\n"
" -t, --temp-dir cria um diretório temporário para o WeeChat e "
"odeleta na saída\n"
" -h, --help mostra esta ajuda\n"
" -l, --license mostra a licença do WeeChat\n"
" -p, --no-plugin não carrega nenhum plugin durante a "
"inicialização\n"
" -P, --plugins <plugins> carregue apenas esses plugins na inicialização\n"
" (veja /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> executa comandos após a inicialização;\n"
" vários comandos podem ser separados por ponto-e-"
"vírgula,\n"
" essa opção pode ser utilizada mais de uma vez\n"
" -s, --no-script não carrega nenhum script durante a "
"inicialização\n"
" --upgrade atualiza o WeeChat através dos arquivos de sessão "
"(veja /help upgrade no WeeChat)\n"
" -v, --version mostra a versão do WeeChat\n"
" plugin:option opção para o plugin (veja o manual do WeeChat)\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Erro: faltando argumento para opção \"%s\"\n"
#, fuzzy
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "1 se o WeeChat está sendo atualizado (comando `/upgrade`)"
@@ -7040,7 +7102,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8616,7 +8678,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr ""
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr ""
#, c-format
@@ -8778,6 +8840,14 @@ msgid_plural "seconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
#, fuzzy
#| msgid "second"
#| msgid_plural "seconds"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
@@ -8922,7 +8992,7 @@ msgstr ""
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "<apelido>[,<apelido>...] [<contador> [<target>]]"
#, fuzzy
@@ -9011,8 +9081,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "<apelido>[,<apelido>...] [<contador> [<target>]]"
msgid ""
@@ -9064,8 +9134,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr ""
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -9213,7 +9283,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
msgid "raw[end]: end the capability negotiation"
@@ -11126,8 +11196,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -11583,8 +11654,8 @@ msgstr "nome do servidor"
msgid "get nick from IRC host"
msgstr "obter apelido de host IRC"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host IRC (exemplo: `:apelido!nome@servidor.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "host IRC (exemplo: `:apelido!nome@servidor`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -11820,8 +11891,8 @@ msgstr "%s%s: este buffer não é um canal!"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12985,7 +13056,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -14363,7 +14434,7 @@ msgstr "%s%s: sem conexão com o servidor \"%s\" para redirecionamento"
#, fuzzy, c-format
#| msgid "%s%s: connection refused"
msgid "remote[%s]: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is canceled"
msgstr "%s%s: conexão recusada"
#, fuzzy, c-format
@@ -14817,11 +14888,11 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista separada por vírgulas dos plugins para carregar automaticamente "
"nainicialização, \"*\" significa todos os plugins encontrados, um nome "
@@ -14830,10 +14901,10 @@ msgstr ""
"plugins (exemplos: \"*\" ou \"*,!lua,!tcl\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -14866,6 +14937,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
#, fuzzy
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
@@ -14984,7 +15060,7 @@ msgstr "numero de clientes para o relay"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -15104,6 +15180,10 @@ msgstr "%s%s: erro ao associar (\"bind\") na porta %d (%s.%s)"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: erro ao associar (\"bind\") na porta %d (%s.%s)"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s%s: não foi possível aceitar o cliente na porta %d (%s.%s)"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: não foi possível aceitar o cliente na porta %d (%s.%s)"
@@ -15140,7 +15220,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memória insuficiente para escutar na nova porta"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgid "Relay WeeChat data to remote applications"
msgstr ""
msgid "connecting"
@@ -15384,9 +15464,9 @@ msgstr "Alt+key/input: v=volta para lista d=pular para o diff"
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -15758,6 +15838,10 @@ msgstr "scripts %s carregados:"
msgid "script name with extension"
msgstr "list de scripts"
#, fuzzy
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "lista de dicionários (separados por vírgula) para uso neste buffer"
#, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16695,7 +16779,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: erro ao compilar expressão regular \"%s\""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -16729,6 +16813,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -16879,8 +16968,9 @@ msgstr "não esperar por ACK quando enviar arquivo"
#| "IP or DNS address used for sending files/chats (if empty, local interface "
#| "IP is used)"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"Endereço IP ou DNS usado para enviar arquivos/chats (se vazio, interface "
"local IP é usada)"
+241 -147
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2025-10-27 08:27+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Russian <weechat-dev@nongnu.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -35,6 +35,154 @@ msgstr ""
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Poedit-Bookmarks: -1,-1,608,-1,-1,-1,-1,-1,-1,-1\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
#, fuzzy
msgid "disable auto-connect to servers at startup"
msgstr "%s DCC: не могу соединиться с отправителем\n"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
#, fuzzy
msgid "display this help and exit"
msgstr "цвет ника собеседника в окне привата"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "display WeeChat license and exit"
msgstr "отображать логотип WeeChat при запуске"
#. TRANSLATORS: command line option "-p", "--no-plugin"
#, fuzzy
#| msgid "display WeeChat logo at startup"
msgid "don't load any plugin at startup"
msgstr "отображать логотип WeeChat при запуске"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
#, fuzzy
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr "ник, используемый на IRC сервере"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
#, fuzzy
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr "%s не могу сохранить сессию в файл\n"
#. TRANSLATORS: command line option "-v", "--version"
#, fuzzy
#| msgid "display WeeChat version at startup"
msgid "display WeeChat version and exit"
msgstr "отображать версию WeeChat при запуске"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
#, fuzzy
msgid "plugin:option"
msgstr " (нет pluginа)\n"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, fuzzy, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"%s Copyright (C) 2003-2010, собран %s %s\n"
"Разработчик - Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:"
msgstr "Использование:"
msgid "[option...] [plugin:option...]"
msgstr "[опция...] [расширение:опция...]"
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, fuzzy, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "%s нет аргумента для параметра \"%s\"\n"
#, fuzzy
msgid "List of bars:"
msgstr "Список сокращений:\n"
@@ -145,7 +293,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%s не могу сохранить конфигурационный файл pluginов\n"
#, fuzzy, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr "%sОшибочный код цвета \"%s\" (должен быть в диапазоне от %d до %d)"
msgid "Buffers list:"
@@ -504,12 +652,12 @@ msgid "%sArgument \"-yes\" is required for keys reset (security reason)"
msgstr ""
"%s аргумент \"-yes\" необходим для сброса ключей (в целях безопасности)\n"
#, fuzzy, c-format
msgid "%d new key added"
#, c-format
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "Игнорирования не заданы.\n"
msgstr[1] "Игнорирования не заданы.\n"
msgstr[2] "Игнорирования не заданы.\n"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#, fuzzy
msgid "Stored layouts:"
@@ -1031,6 +1179,16 @@ msgstr ""
" -all: включить режим \"отсутствую\" на всех подключенных серверах\n"
"сообщение: причина отсутствия (если сообщения нет - статус снимается)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
#, fuzzy
msgid "manage bars"
msgstr "управление буферами"
@@ -1123,7 +1281,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
#, fuzzy
@@ -1576,7 +1734,7 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr ""
@@ -1588,6 +1746,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2109,7 +2270,7 @@ msgid "display help about commands and options"
msgstr "отобразить помощь по командам"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr ""
msgid ""
@@ -2169,9 +2330,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -3036,7 +3197,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3273,20 +3434,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3526,7 +3687,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
#, fuzzy
@@ -4330,7 +4491,7 @@ msgstr ""
"(см. /help quit)"
msgid "display special message when day changes"
msgstr "отображать специальное сообщение при смене дня"
msgstr "отображать специальное сообщение при смене дня"
#. TRANSLATORS: string "${color:xxx}" must NOT be translated
#, fuzzy
@@ -5783,7 +5944,7 @@ msgstr " . строковой тип (значения: "
msgid "read - object type"
msgstr ""
msgid "read - bad object type ('object start' expected)"
msgid "read - bad object type (\"object start\" expected)"
msgstr ""
msgid "read - object id"
@@ -5898,99 +6059,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, fuzzy, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"%s Copyright (C) 2003-2010, собран %s %s\n"
"Разработчик - Sébastien Helleu <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Использование: %s [опция...] [расширение:опция...]\n"
#, fuzzy
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect не подключаться автоматически при запуске\n"
" -c, --config отобразить параметры конфигурации\n"
" -d, --dir <path> установить домашний каталог WeeChat (по умолчанию: "
"~/.weechat)\n"
" -f, --key-functions отобразить внутренние функции WeeChat для горячих "
"клавиш\n"
" -h, --help эта сравка\n"
" -i, --irc-commands отобразить команды IRC\n"
" -k, --keys отобразить клавиши по умолчанию\n"
" -l, --license отобразить лицензию WeeChat\n"
" -p, --no-plugin не загружать pluginы при запуске\n"
" -v, --version отобразить версию WeeChat\n"
" -w, --weechat-commands отобразить команды WeeChat\n"
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, fuzzy, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "%s нет аргумента для параметра \"%s\"\n"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
@@ -6697,7 +6765,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
#, fuzzy
@@ -8225,7 +8293,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s не подключен к серверу \"%s\"!\n"
#, fuzzy, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "Авто-переподключение отменено\n"
#, fuzzy, c-format
@@ -8387,6 +8455,13 @@ msgstr[0] "секунда"
msgstr[1] "секунда"
msgstr[2] "секунда"
#, fuzzy
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "секунда"
msgstr[1] "секунда"
msgstr[2] "секунда"
#, fuzzy
msgid "minute"
msgid_plural "minutes"
@@ -8545,7 +8620,7 @@ msgstr "отправить действие на все каналы всех п
#, fuzzy
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr "[сокращение [команда [аргументы]]]"
#, fuzzy
@@ -8635,8 +8710,8 @@ msgstr "отправить действие на все каналы всех п
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
#, fuzzy
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr "[сокращение [команда [аргументы]]]"
#, fuzzy
@@ -8686,8 +8761,8 @@ msgstr "отправить сообщение на все каналы всех
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr ""
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -8837,7 +8912,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
#, fuzzy
@@ -10805,8 +10880,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
#, fuzzy
@@ -11261,7 +11337,7 @@ msgstr "цель: название сервера"
msgid "get nick from IRC host"
msgstr "банит ник или хост"
msgid "IRC host (like `:nick!name@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr ""
msgid ""
@@ -11495,8 +11571,8 @@ msgstr "Это окно не является каналом!\n"
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12620,7 +12696,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -13951,7 +14027,7 @@ msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s не подключен к серверу \"%s\"!\n"
#, fuzzy, c-format
msgid "remote[%s]: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is canceled"
msgstr "Авто-переподключение отменено\n"
#, fuzzy, c-format
@@ -14376,21 +14452,21 @@ msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"разделённый запятыми список автоматически загружаемых при запуске plug-"
"in'ов , \"*\" означает все найденные plug-in'ы (имена могут быть не полными, "
"например \"perl\" успешно загрузит \"libperl.so\")"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -14423,6 +14499,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -14522,7 +14603,7 @@ msgstr "Нет сервера.\n"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -14644,6 +14725,10 @@ msgstr "%s невозможно создать сокет\n"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s невозможно создать сокет\n"
#, fuzzy, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr "%s невозможно создать сокет\n"
#, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s невозможно создать сокет\n"
@@ -14682,7 +14767,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s недостаточно памяти для нового DCC\n"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgid "Relay WeeChat data to remote applications"
msgstr ""
#, fuzzy
@@ -14926,9 +15011,9 @@ msgstr ""
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -15282,6 +15367,9 @@ msgstr "FIFO pipe закрыт\n"
msgid "script name with extension"
msgstr "Список сокращений:\n"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -16186,7 +16274,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s недостаточно памяти для сообщения в строке информации\n"
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -16220,6 +16308,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -16366,8 +16459,9 @@ msgstr "не ожидать ACK при отправке файла"
#, fuzzy
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"IP адрес или домен, используемый для исходящих DCC соединений (пустое "
"значение означает текущий IP адрес)"
+327 -222
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"PO-Revision-Date: 2026-03-16 13:20+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n"
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language-Team: Serbian <weechat-dev@nongnu.org>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -33,6 +33,161 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
msgid "disable auto-connect to servers at startup"
msgstr "спречава аутоматско повезивање са серверима приликом покретања"
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr "приказује подразумеване боје у терминалу и прекида извршавање"
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr "-d, --dir <путања>"
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
"поставља WeeChat почетни директоријум или 5 различита директоријума "
"раздвојена тачка зарезима (у следећем редоследу: конфиг, подаци, стање, кеш, "
"дир за време извршавања) (ако се ова опција не зада, чита се WEECHAT_HOME "
"променљива окружења)"
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
"креира привремени WeeChat почетни директоријум и брише га приликом напуштања "
"програма (није компатибилно са опцијом „-d”)"
#. TRANSLATORS: command line option "-h", "--help"
msgid "display this help and exit"
msgstr "приказује ову помоћ и прекида извршавање"
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr "приказује информације о изградњи и прекида извршавање"
#. TRANSLATORS: command line option "-l", "--license"
msgid "display WeeChat license and exit"
msgstr "приказује WeeChat лиценцу и прекида извршавање"
#. TRANSLATORS: command line option "-p", "--no-plugin"
msgid "don't load any plugin at startup"
msgstr "приликом покретања се не учитавају додаци"
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr "-P, --plugins <додаци>"
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
"приликом покретања се учитавају само ови додаци (погледајте /help "
"weechat.plugin.autoload)"
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr "-r, --run-command <ком>"
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
"покреће команд(у/е) након покретања; можете да раздвојите више команди са "
"тачка запета и оне се израчунавају, ова опција може да се зада више пута"
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr "приликом учитавања се не учитавају никакве скрипте"
#. TRANSLATORS: command line option "--upgrade"
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr ""
"ажурира WeeChat користећи фајлове сесије (погледајте /help upgrade у "
"програму WeeChat)"
#. TRANSLATORS: command line option "-v", "--version"
msgid "display WeeChat version and exit"
msgstr "приказује верзију програма WeeChat и прекида извршавање"
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
msgid "plugin:option"
msgstr "додатак:опција"
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr "опција за додатак (погледајте man weechat)"
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr "--doc-gen <путања>"
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr "генерише фајлове за изградњу документације и прекида извршавање"
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
"покреће WeeChat као даемон (рачва, нова група процеса, затворени дескриптори "
"фајла); у режиму без интерфејса, WeeChat је подразумевано блокирајући и не "
"извршава се у позадини"
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
"уместо да се лог поруке уписују у лог фајл, исписују се на стандардни излаз "
"(игнорише се ако се зада опција „--daemon”)"
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr "након што се додаци уклоне из меморије, не позива се функција dlclose"
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr "искључује иниц/деиниц gnutls"
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr "искључује иниц/деиниц gcrypt"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
"WeeChat %s ауторска права %s, компајлиран %s %s\n"
"Написао %s <%s> - %s"
msgid "Usage:"
msgstr "Употреба:"
msgid "[option...] [plugin:option...]"
msgstr "[опција...] [додатак:опција...]"
msgid "Extra options in headless mode:"
msgstr "Додатне опције у режиму без интерфејса:"
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
"Дибаг опције (за алате као што је valgrind, НЕ КОРИСТИТЕ У ПРОДУКЦИЈИ):"
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Грешка: недостаје аргумент за опцију „%s”\n"
msgid "List of bars:"
msgstr "Листа трака:"
@@ -138,7 +293,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr "%sТрака „%s” не може да се скролује"
#, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr "%sБрој бафера „%d” је ван опсега (мода бити између 1 и %d)"
msgid "Buffers list:"
@@ -477,7 +632,7 @@ msgstr ""
"%sЗа ресетовање тастера је неопходан аргумент „-yes” (из разлога безбедности)"
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] "додат је %d нови тастер (контекст: „%s”)"
msgstr[1] "додато је %d нова тастера (контекст: „%s”)"
@@ -983,6 +1138,20 @@ msgid ""
msgstr ""
"порука: порука одсутности (ако се не наведе, статус одсутности се уклања)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
"irc додатак подразумевао приказује статус одсутности се само локално "
"(погледајте /help irc.look.display_away)."
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
"Ову команду могу да ухвате остали додаци и скрипте (погледајте "
"„Референтноупутство за API додатака”, функцију „hook_command_run”)."
msgid "manage bars"
msgstr "управљање тракама"
@@ -1087,10 +1256,10 @@ msgstr "raw[set]: поставља вредност особине траке"
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
"опција: опција која се мења (за листу опција, погледајте /set weechat.bar."
"<иметраке>.*)"
"<име_траке>.*)"
msgid "value: new value for option"
msgstr "вредност: нова вредност опције"
@@ -1150,8 +1319,8 @@ msgid ""
"get <property> || jump smart|last_displayed|prev_visited|next_visited || "
"<id>|<number>|-|+|<name>"
msgstr ""
"list || add [-free] [-switch] <име> || clear [<број>|<име>|-merged|-all "
"[<ид><број>|<име>...]] || move <број>|-|+ || swap <ид1>|<број1>|<име1> "
"list || add [-free] [-switch] <име> || clear [<ид>|<број>|<име>|-merged|-all "
"[<ид>|<број>|<име>...]] || move <број>|-|+ || swap <ид1>|<број1>|<име1> "
"[<ид2>|<број2>|<име2>] || cycle <ид>|<број>|<име>... || merge <ид>|<број>|"
"<име> || unmerge [<број>|-all] || hide [<ид>|<број>|<име>|-all [<ид>|<број>|"
"<име>...]] || unhide [<ид>|<број>|<име>|-all [<ид>|<број>|<име>...]] || "
@@ -1477,9 +1646,9 @@ msgid ""
"|| hdata [free] || time <command> || unicode <string> || whitespace"
msgstr ""
"list || set <додатак> <ниво> || dump [<додатак>] || hooks [<маска_додатака> "
"[<тип_куке>...]] || buffer|certs|color|dirs|infolists|libs|memory|tags|term|"
"url|windows || callbacks <трајање>[<јединица>] || mouse|cursor [verbose] || "
"hdata [free] || time <команда> || unicode <стринг> || whitespace"
"[<тип_куке>...]] || buffer|certs|color|dirs|infolists|key|libs|memory|tags|"
"term|url|windows || callbacks <трајање>[<јединица>] || mouse|cursor "
"[verbose] || hdata [free] || time <команда> || unicode <стринг> || whitespace"
msgid "raw[list]: list plugins with debug levels"
msgstr "raw[list]: исписује додатке са дибаг нивоима"
@@ -1621,9 +1790,10 @@ msgstr "израчунавање израза"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr "[-n|-s] [-d] <израз> || [-n] [-d [-d]] -c <израз1> <оператор> <израз2>"
msgstr ""
"[-n|-s] [-e] [-d] <израз> || [-n] [-d [-d]] -c <израз1> <оператор> <израз2>"
msgid "raw[-n]: display result without sending it to buffer (debug mode)"
msgstr "raw[-n]: приказује резултат и не шаље га у бафер (дибаг режим)"
@@ -1635,6 +1805,9 @@ msgstr ""
"raw[-s]: дели израз пре израчунавања (многе команде могу да се раздвоје са "
"тачка запетама)"
msgid "raw[-e]: evaluate all commands before executing them"
msgstr "raw[-e]: израчунај све команде пре него што се изврше"
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -2246,7 +2419,7 @@ msgid "display help about commands and options"
msgstr "приказивање помоћи за команде и опције"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr "-list|-listfull [<додатак>...] || <команда> || <опција>"
msgid ""
@@ -2304,9 +2477,9 @@ msgid "raw[clear]: clear hotlist"
msgstr "raw[clear]: брише врућу листу"
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
"ниво: „lowest” да се обрише само најнижи ниво у врућој листи, „highest” да "
"се обрише само највиши ниво у врућој листи, или маска нивоа: цео број који "
@@ -3045,7 +3218,7 @@ msgid ""
"[<arguments>] || autoload [<arguments>] || reload [<name>|* [<arguments>]] "
"|| unload [<name>]"
msgstr ""
"list| [-o|-ol|-i|-il|<име>] || listfull [<име>] || load <имефајла> "
"list [-o|-ol|-i|-il|<име>] || listfull [<име>] || load <имефајла> "
"[<аргументи>] || autoload [<аргументи>] || reload [<име>|* [<аргументи>]] || "
"unload [<име>]"
@@ -3293,10 +3466,10 @@ msgstr "raw[set]: поставља вредност особине прокси
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
"опција: опција која треба да се промени (за листу опција, погледајте /set "
"weechat.proxy.<имепроксија>.*)"
"weechat.proxy.<име_проксија>.*)"
msgid " add a http proxy, running on local host, port 8888:"
msgstr " додаје http прокси који се извршава на локалном хосту, порт 8888:"
@@ -3521,7 +3694,7 @@ msgid ""
msgstr ""
"Можете да поставите променљиву окружења „WEECHAT_PASSPHRASE” која спречава "
"овај одзив (то је иста променљива коју програм WeeChat користи приликом /"
"upgrade), или да поставите опцију sec.crypt.passphrase_command тако да се "
"upgrade), или да поставите опцију sec.crypt.passphrase_command тако да се "
"тајна реченица чита из излаза спољне команде као што је управљач лозинкама "
"(погледајте /help sec.crypt.passphrase_command)."
@@ -3558,23 +3731,23 @@ msgstr " користи програм „pass” за читање тајне
msgid " encrypt libera SASL password:"
msgstr " шифровање libera SASL лозинке:"
msgid " /secure set libera mypassword"
msgstr " /secure set libera мојалозинка"
msgid " /secure set libera my_password"
msgstr " /secure set libera моја_лозинка"
msgid " encrypt oftc password for nickserv:"
msgstr " шифровање oftc лозинке за nickserv:"
msgid " /secure set oftc mypassword"
msgstr " /secure set oftc мојалозинка"
msgid " /secure set oftc my_password"
msgstr " /secure set oftc моја_лозинка"
msgid " alias to ghost the nick \"mynick\":"
msgstr " алијас за ghost надимка „mynick”:"
msgid " alias to ghost the nick \"andrew\":"
msgstr " алијас за ghost надимка „andrew”:"
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgid "set config options and environment variables"
@@ -3878,8 +4051,8 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr "Процес са опцијом „-quit” је следећи:"
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgstr " 1. затварање *СВИХ* конекција (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr " 1. затварање *СВИХ* конекција (irc, xfer, relay, итд.)"
msgid " 2. save session into files (*.upgrade)"
msgstr " 2. чување сесије у фајлове (*.upgrade)"
@@ -5486,7 +5659,7 @@ msgid ""
msgstr ""
"листа карактера раздвојених зарезима (или опсега карактера) који се сматрају "
"за део речи које се истичу; свака ставка може бити један карактер, опсег "
"карактера (формат је: a-z), класа широких карактера (на пример „alnum”, "
"карактера (формат је: a-z), класа широких карактера (на пример „alnum”, "
"погледајте man wctype); „!” испред ставке је чини негативном (тј. карактер "
"се НЕ сматра као део речи); вредност „*” се подудара са било којим "
"карактером; дозвољени су уникод карактери у формату \\u1234, на пример "
@@ -6526,8 +6699,8 @@ msgstr "упис -променљива"
msgid "read - object type"
msgstr "читање - тип објекта"
msgid "read - bad object type ('object start' expected)"
msgstr "читање - лош тип објекта (очекује се 'object start')"
msgid "read - bad object type (\"object start\" expected)"
msgstr "читање - лош тип објекта (очекује се \"object start\")"
msgid "read - object id"
msgstr "читање - ид објекта"
@@ -6586,15 +6759,13 @@ msgstr "грешка преноса"
msgid "curl error %d (%s) (URL: \"%s\")\n"
msgstr "curl грешка %d (%s) (URL: „%s”)\n"
#, fuzzy, c-format
#| msgid "%sURL transfer error: %s (URL: \"%s\")"
#, c-format
msgid "transfer stopped (URL: \"%s\")\n"
msgstr "%sГрешка URL трансфера: %s (URL: „%s”)"
msgstr "трансфер је заустављен (URL: „%s”)\n"
#, fuzzy, c-format
#| msgid "End of URL transfer '%s', timeout reached (%.3fs)"
#, c-format
msgid "transfer timeout reached (%.3fs) (URL: \"%s\")\n"
msgstr "Крај URL трансфера ’%s’, достигнут је тајмаут (%.3fs)"
msgstr "достигнут је тајмаут трансфера (%.3fs) (URL: „%s”)\n"
#, c-format
msgid "%sAnother command \"%s\" already exists for plugin \"%s\""
@@ -6642,134 +6813,9 @@ msgstr "Крај URL трансфера ’%s’, достигнут је тај
msgid "%sError running thread in hook_url: %s (URL: \"%s\")"
msgstr "%sГрешка покретања нити у hook_url: %s (URL: „%s”)"
#, fuzzy, c-format
#| msgid "End of URL transfer '%s', timeout reached (%.3fs)"
#, c-format
msgid "End of URL transfer '%s', transfer stopped"
msgstr "Крај URL трансфера ’%s’, достигнут је тајмаут (%.3fs)"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
"WeeChat %s ауторска права %s, компајлиран %s %s\n"
"Написао Себастијен Елеу <flashcode@flashtux.org> - %s"
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr "Употреба: %s [опција...] [додатак:опција...]\n"
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
" -a, --no-connect спречава аутоматско повезивање са серверима "
"приликом покретања\n"
" -c, --colors приказује подразумеване боје у терминалу и "
"прекида извршавање\n"
" -d, --dir <путања> поставља WeeChat почетни директоријум\n"
" или 5 различита директоријума раздвојена тачка "
"зарезима (у следећем редоследу: конфиг, подаци, стање, кеш, дир за време "
"извршавања)\n"
" (ако се ова опција не зада, чита се WEECHAT_HOME "
"променљива окружења)\n"
" -t, --temp-dir креира привремени WeeChat почетни директоријум и "
"брише га приликом напуштања програма\n"
" (није компатибилно са опцијом „-d”)\n"
" -h, --help приказује ову помоћ и прекида извршавање\n"
" -i, --build-info приказује информације о изградњи и прекида "
"извршавање\n"
" -l, --license приказује WeeChat лиценцу и прекида извршавање\n"
" -p, --no-plugin приликом покретања се не учитавају додаци\n"
" -P, --plugins <додаци> приликом покретања се учитавају само ови додаци\n"
" (погледајте /help weechat.plugin.autoload)\n"
" -r, --run-command <ком> покреће команд(у/е) након покретања;\n"
" можете да раздвојите више команди са тачка запета "
"и оне се израчунавају,\n"
" ова опција може да се зада више пута\n"
" -s, --no-script приликом учитавања се не учитавају никакве "
"скрипте\n"
" --upgrade ажурира WeeChat користећи фајлове сесије "
"(погледајте /help upgrade у програму WeeChat)\n"
" -v, --version приказује верзију програма WeeChat и прекида "
"извршавање\n"
" додатак:опција опција за додатак (погледајте man weechat)\n"
msgid "Extra options in headless mode:\n"
msgstr "Додатне опције у режиму без интерфејса:\n"
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
" --doc-gen <путања> генерише фајлове за изградњу документације и "
"прекида извршавање\n"
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
" --daemon покреће WeeChat као даемон (рачва, нова група "
"процеса, затворени дескриптори фајла);\n"
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
" (у режиму без интерфејса, WeeChat је "
"подразумевано блокирајући и не извршава се у позадини)\n"
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
" --stdout уместо да се лог поруке уписују у лог фајл, "
"исписују се на стандардни излаз\n"
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
" (игнорише се ако се зада опција „--daemon”)\n"
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
"Дибаг опције (за алате као што је valgrind, НЕ КОРИСТИТЕ У ПРОДУКЦИЈИ):\n"
" --no-dlclose након што се додаци уклоне из меморије, не позива "
"се функција dlclose\n"
" --no-gnutls искључује иниц/деиниц gnutls\n"
" --no-gcrypt искључује иниц/деиниц gcrypt\n"
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr "Грешка: недостаје аргумент за опцију „%s”\n"
msgstr "Крај URL трансфера ’%s’, трансфер је заустављен"
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat се извршава у режиму без интерфејса (ctrl-c за излаз)."
@@ -7389,9 +7435,9 @@ msgid ""
" - window data, where the bar item is displayed (there's no window in root "
"bars, see hdata \"window\" in API doc for a complete list), for example:"
msgstr ""
" - подаци о прозору, у коме се трака приказује (не постоји прозор у кореним "
"тракама, погледајте hdata „window” у документацији API за комплетну листу), "
"на пример:"
" - подаци о прозору у коме се приказује ставка траке (не постоји прозор у "
"кореним тракама, погледајте hdata „window” у документацији API за комплетну "
"листу), на пример:"
msgid ""
" - buffer data (see hdata \"buffer\" in API doc for a complete list), for "
@@ -7565,8 +7611,11 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
" - ${index_displayed}: индекс линије која се приказује у ставци траке "
"(почиње од 0, овај индекс увећавају само приказани бафери, погледајте опцију "
"buflist.look.display_conditions)"
msgid "buflist bar items"
msgstr "ставке buflist траке"
@@ -9313,7 +9362,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr "%s%s: не постоји веза са сервером „%s”!"
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr "%s: отказано је аутоматско поновно успостављање везе"
#, c-format
@@ -9474,6 +9523,12 @@ msgstr[0] "секунда"
msgstr[1] "секунде"
msgstr[2] "секунди"
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] "милисекунда"
msgstr[1] "милисекунде"
msgstr[2] "милисекунди"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "минут"
@@ -9613,10 +9668,10 @@ msgstr "извршавање команде на свим каналима св
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr ""
"[-current] [-parted|-all] [-exclude=<канал>[,<канал>...]] <команда> || [-"
"current] [-parted|-all] -include=<канал>[,<канал>...] <команда>"
"current] [-parted|-all] [-include=<канал>[,<канал>...]] <команда>"
msgid "raw[-current]: execute command for channels of current server only"
msgstr "raw[-current]: команда се извршава само за канале текућег сервера"
@@ -9696,11 +9751,11 @@ msgstr "извршавање команде у свим приватним ба
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr ""
"[-current] [-exclude=<надимак>[,<надимак>...]] <команда> || [-current] "
"-include=<надимак>[,<надимак>...] <команда>"
"[-current] [-exclude=<надимак>[,<надимак>...]] <команда> || [-current] [-"
"include=<надимак>[,<надимак>...]] <команда>"
msgid ""
"raw[-current]: execute command for private buffers of current server only"
@@ -9748,11 +9803,11 @@ msgstr "извршавање команде на свим повезаним с
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr ""
"[-exclude=<сервер>[,<сервер>...]] <команда> || -include=<сервер>[,"
"<сервер>...] <команда>"
"[-exclude=<сервер>[,<сервер>...]] <команда> || [-include=<сервер>[,"
"<сервер>...]] <команда>"
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
msgstr ""
@@ -9899,7 +9954,7 @@ msgstr ""
"пример: „-multi-prefix”)"
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
"raw[ack]: прихвата могућности које захтевају потврду са клијентске стране"
@@ -10266,7 +10321,7 @@ msgid ""
"[<percent>] || -go <line>|end || -join || -export <filename>"
msgstr ""
"[-server <сервер>] [<канал>[,<канал>...]] [<циљ>] || [-server <сервер>] [-"
"raw *|<рег_изр>] -up|-down [<број>] || -left|-right [<проценат>] || -go "
"raw *|<рег_изр>] || -up|-down [<број>] || -left|-right [<проценат>] || -go "
"<линија>|end || -join || -export <имефајла>"
msgid ""
@@ -10806,7 +10861,7 @@ msgstr ""
"„xxx”, користећи следеће променљиве: излаз функције irc_message_parse (као "
"nick, command, channel, text, итд., погледајте функцију info_get_hashtable у "
"референтном приручнику API додатака да видите комплетну листу променљивих), "
"date (формат: \"%FT%T.%f\", погледајте функцију util_strftimeval у "
"date (формат: \"%FT%T.%f\", погледајте функцију util_strftimeval у "
"референтном приручнику API додатака), server, recv, sent, modified, "
"redirected"
@@ -11855,14 +11910,15 @@ msgstr "скроловање у лево/десно у /list баферу (пр
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
"листа поља за сортирање канала раздвојених запетама (погледајте /help list "
"за листу поља); карактер „-” може да се користи испред поља чиме се обрће "
"редослед, карактер „~” може да се употреби за поређење које не прави разлику "
"у величини слова; пример: „-users,~name” за поређење које не прави разлику у "
"величини слова и обрнуто сортирање по имену опције"
"у величини слова; пример: „-users,~name2најпре за највеће канале, па онда "
"сортирање које не прави разлику у величини слова по имену канала без префикса"
msgid "strip channel topic colors in /list buffer"
msgstr "уклањање боја теме канала у /list баферу"
@@ -12390,8 +12446,8 @@ msgstr "име сервера"
msgid "get nick from IRC host"
msgstr "враћа надимак из IRC хоста"
msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC хост (као `:надимак!име@сервер.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr "IRC хост (као `:надимак!име@сервер`)"
msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12608,10 +12664,13 @@ msgstr "%s%s: нисте повезани са сервером"
msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: овај бафер није канал!"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
#| "channel, ($)=refresh, (q)=close buffer"
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастер(унос): ctrl+j= "
"приступ каналу, ($)=освежавање, (q)=затварање бафера"
@@ -13811,7 +13870,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -13821,9 +13880,9 @@ msgstr ""
"текућем фајлу се поставља екстензија .1; дозвољава се цели број са суфиксом: "
"b = бајтова (подразумевано ако се не наведе јединица), k = килобајта, m = "
"мегабајта, g = гигабајта, t = терабајта; пример: „2g” значи да се ротација "
"врши ако је величина фајла > 2,000,000,000 бајтова; ако се постави на „0”, "
"ротација се не врши (нема ограничења лог фајла); УПОЗОРЕЊЕ: пре него што "
"промените ову опцију, требало би најпре да поставите тип компресије опцијом "
"врши ако је величина фајла > 2 GB; ако се постави на „0”, ротација се не "
"врши (нема ограничења лог фајла); УПОЗОРЕЊЕ: пре него што промените ову "
"опцију, требало би најпре да поставите тип компресије опцијом "
"logger.file.rotation_compression_type"
msgid ""
@@ -15142,7 +15201,7 @@ msgid "%s%s: no connection to remote relay \"%s\""
msgstr "%s%s: не постоји веза са релејем удаљених „%s”"
#, c-format
msgid "remote[%s]: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is canceled"
msgstr "удаљени[%s]: отказано је аутоматско поновно успостављање везе"
#, c-format
@@ -15620,13 +15679,21 @@ msgstr ""
"relay.network.allow_empty_password) (напомена: садржај се израчунава, "
"погледајте /help eval)"
#, fuzzy
#| msgid ""
#| "comma separated list of hash algorithms used for password authentication "
#| "in weechat protocol, among these values: \"plain\" (password in plain "
#| "text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
#| "\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!"
#| "\" is a negative value to prevent an algorithm from being used, wildcard "
#| "\"*\" is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"листа хеш алгоритама раздвојених запетама који се користе за аутентификацију "
"лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не "
@@ -15635,11 +15702,17 @@ msgstr ""
"спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” "
"(примери: „*”, „pbkdf2*”, „*,!plain”)"
#, fuzzy
#| msgid ""
#| "number of iterations asked to the client in weechat protocol when a "
#| "hashed password with algorithm PBKDF2 is used for authentication; more "
#| "iterations is better in term of security but is slower to compute; this "
#| "number should not be too high if your CPU is slow"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
"број итерација који се захтева од клијента у weechat протоколу када се за "
"аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација "
@@ -15688,6 +15761,13 @@ msgstr ""
"након, ...; велики број умањује ниво безбедности (препоручене вредности су 0 "
"или 1)"
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
"дозволе за Unix сокет, као октална вредност (погледајте man chmod); мора да "
"буде број од 3 цифре, свака између 0 и 7"
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -15813,11 +15893,11 @@ msgstr "број клијената за релеј"
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
"протокол,статус (оба нису обавезна, за сваки аргумент „*” значи све; "
"протоколи: irc, weechat; статуси: connecting, waiting_auth, connected, "
"протоколи: api, irc, weechat; статуси: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgid "list of relay clients"
@@ -15950,6 +16030,11 @@ msgstr "%s%s: „bind” не може да се изврши на путању
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: „bind” не може да се изврши на порт %d (%s): грешка %d %s"
#, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr ""
"%s%s: упозорење: не могу да се поставе дозволе на путањи %s (%s): грешка%d %s"
#, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: „listen” не може да се покрене на путањи %s (%s): грешка%d %s"
@@ -15989,8 +16074,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: нема довољно слободне меморије за слушање на новом порту"
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Релеј WeeChat података удаљеној апликацији (irc/weechat протоколи)"
msgid "Relay WeeChat data to remote applications"
msgstr "Релеј WeeChat података удаљеној апликацији"
msgid "connecting"
msgstr "повезивање"
@@ -16218,11 +16303,16 @@ msgstr "(ништа)"
msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+тастер/унос: v=назад на листу d=скок на diff"
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, "
#| "r=remove, l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view "
#| "script | Input: q=close, $=refresh, s:x,y=sort, words=filter, *=reset "
#| "filter | Mouse: left=select, right=install/remove"
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
"%d/%d скрипти (филтер: %s) | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
@@ -16605,6 +16695,11 @@ msgstr "1 ако је скрипта учитана"
msgid "script name with extension"
msgstr "име скрипте са екстензијом"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "листа екстензија имена фајлова за додатке раздвојених запетама"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)"
@@ -16748,7 +16843,7 @@ msgid ""
"enable|disable|toggle || listdict || setdict -|<dict>[,<dict>...] || deldict "
"|| addword [<dict>] <word>"
msgstr ""
"enable|disable|toggle || listdict || setdict <речн>[,<речн>...] || deldict "
"enable|disable|toggle || listdict || setdict -|<речн>[,<речн>...] || deldict "
"|| addword [<речн>] <реч>"
msgid "raw[enable]: enable spell checker"
@@ -17595,8 +17690,8 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr "%s%s: неважећи регуларни израз у окидачу: „%s”"
#. 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 "Куцање:"
msgid "Typing: "
msgstr "Куцање: "
msgid ""
"number of seconds after paused status has been set: if reached, the typing "
@@ -17641,6 +17736,14 @@ msgstr ""
"макс број карактера који се приказује у ставци траке \"typing\" (0 = садржај "
"се не одсеца)"
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
"текст који се приказује испред надимака у ставци траке „typing”; ако је "
"постављен, употребиће се уместо преведеног стринга „Typing: ”, који се "
"подразумевано користи"
msgid "Typing status of users"
msgstr "Статус куцања корисника"
@@ -17774,11 +17877,13 @@ msgid "does not wait for ACK when sending file"
msgstr "не чека се на ACK када се шаље фајл"
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
"IP или DNS адреса која се користи за слање и пасивно примање фајлова/"
"разговора (ако је празно, користи се IP локалног интерфејса)"
"разговора; ако је празно, користи се IP локалног интерфејса (напомена: "
"садржај сер израчунава, погледајте /help eval)"
msgid ""
"restricts outgoing files/chats and incoming/passive files to use only ports "
+480 -429
View File
File diff suppressed because it is too large Load Diff
+219 -124
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-03-16 13:17+0100\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\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"
@@ -32,6 +32,141 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANSLATORS: command line option "-a", "--no-connect"
msgid "disable auto-connect to servers at startup"
msgstr ""
#. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>"
msgstr ""
#. TRANSLATORS: command line option "-d", "--dir <path>"
msgid ""
"force a single WeeChat home directory or 5 different directories separated "
"by colons (in this order: config, data, state, cache, runtime) (environment "
"variable WEECHAT_HOME is read if this option is not given)"
msgstr ""
#. TRANSLATORS: command line option "-t", "--temp-dir"
msgid ""
"create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"
msgstr ""
#. TRANSLATORS: command line option "-h", "--help"
msgid "display this help and exit"
msgstr ""
#. TRANSLATORS: command line option "-i", "--build-info"
msgid "display build information and exit"
msgstr ""
#. TRANSLATORS: command line option "-l", "--license"
msgid "display WeeChat license and exit"
msgstr ""
#. TRANSLATORS: command line option "-p", "--no-plugin"
msgid "don't load any plugin at startup"
msgstr ""
#. TRANSLATORS: only "<plugins>" may be translated
msgid "-P, --plugins <plugins>"
msgstr ""
#. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr ""
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>"
msgstr ""
#. TRANSLATORS: command line option "-r", "--run-command <cmd>"
msgid ""
"run command(s) after startup; many commands can be separated by semicolons "
"and are evaluated, this option can be given multiple times"
msgstr ""
#. TRANSLATORS: command line option "-s", "--no-script"
msgid "don't load any script at startup"
msgstr ""
#. TRANSLATORS: command line option "--upgrade"
msgid "upgrade WeeChat using session files (see /help upgrade in WeeChat)"
msgstr ""
#. TRANSLATORS: command line option "-v", "--version"
msgid "display WeeChat version and exit"
msgstr ""
#. TRANSLATORS: command line option: "plugin" and "option" may be translated
msgid "plugin:option"
msgstr ""
#. TRANSLATORS: command line option "plugin:option"
msgid "option for plugin (see man weechat)"
msgstr ""
#. TRANSLATORS: only "<path>" may be translated
msgid "--doc-gen <path>"
msgstr ""
#. TRANSLATORS: command line option "--doc-gen <path>"
msgid "generate files to build documentation and exit"
msgstr ""
#. TRANSLATORS: command line option "--daemon"
msgid ""
"run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in "
"background"
msgstr ""
#. TRANSLATORS: command line option "--stdout"
msgid ""
"display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"
msgstr ""
#. TRANSLATORS: command line option "--no-dlclose"
msgid "do not call function dlclose after plugins are unloaded"
msgstr ""
#. TRANSLATORS: command line option "--no-gnutls"
msgid "disable init/deinit of gnutls"
msgstr ""
#. TRANSLATORS: command line option "--no-gcrypt"
msgid "disable init/deinit of gcrypt"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s"
msgstr ""
msgid "Usage:"
msgstr ""
msgid "[option...] [plugin:option...]"
msgstr ""
msgid "Extra options in headless mode:"
msgstr ""
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr ""
msgid "List of bars:"
msgstr ""
@@ -136,7 +271,7 @@ msgid "%sUnable to scroll bar \"%s\""
msgstr ""
#, c-format
msgid "%sBuffer number \"%d\" is out of range (it must be between 1 and %d)"
msgid "%sBuffer number %d is out of range (it must be between 1 and %d)"
msgstr ""
msgid "Buffers list:"
@@ -465,7 +600,7 @@ msgid "%sArgument \"-yes\" is required for keys reset (security reason)"
msgstr ""
#, c-format
msgid "%d new key added"
msgid "%d new key added (context: \"%s\")"
msgid_plural "%d new keys added (context: \"%s\")"
msgstr[0] ""
msgstr[1] ""
@@ -937,6 +1072,16 @@ msgid ""
"message: message for away (if no message is given, away status is removed)"
msgstr ""
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
msgid "manage bars"
msgstr ""
@@ -1026,7 +1171,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.bar."
"<barname>.*)"
"<bar_name>.*)"
msgstr ""
msgid "value: new value for option"
@@ -1464,7 +1609,7 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>"
msgstr ""
@@ -1476,6 +1621,9 @@ msgid ""
"separated by semicolons)"
msgstr ""
msgid "raw[-e]: evaluate all commands before executing them"
msgstr ""
msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose "
"debug)"
@@ -1968,7 +2116,7 @@ msgid "display help about commands and options"
msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid "-list|-listfull [<plugin>...]] || <command> || <option>"
msgid "-list|-listfull [<plugin>...] || <command> || <option>"
msgstr ""
msgid ""
@@ -2019,9 +2167,9 @@ msgid "raw[clear]: clear hotlist"
msgstr ""
msgid ""
"level: \"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"
"level: \"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"
msgstr ""
msgid "raw[remove]: remove current buffer from hotlist"
@@ -2833,7 +2981,7 @@ msgstr ""
msgid ""
"option: option to change (for options list, look at /set weechat.proxy."
"<proxyname>.*)"
"<proxy_name>.*)"
msgstr ""
msgid " add a http proxy, running on local host, port 8888:"
@@ -3059,20 +3207,20 @@ msgstr ""
msgid " encrypt libera SASL password:"
msgstr ""
msgid " /secure set libera mypassword"
msgid " /secure set libera my_password"
msgstr ""
msgid " encrypt oftc password for nickserv:"
msgstr ""
msgid " /secure set oftc mypassword"
msgid " /secure set oftc my_password"
msgstr ""
msgid " alias to ghost the nick \"mynick\":"
msgid " alias to ghost the nick \"andrew\":"
msgstr ""
msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost mynick $"
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
"{sec.data.libera}"
msgstr ""
@@ -3303,7 +3451,7 @@ msgstr ""
msgid "With option \"-quit\", the process is:"
msgstr ""
msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr ""
msgid " 2. save session into files (*.upgrade)"
@@ -5357,7 +5505,7 @@ msgstr ""
msgid "read - object type"
msgstr ""
msgid "read - bad object type ('object start' expected)"
msgid "read - bad object type (\"object start\" expected)"
msgstr ""
msgid "read - object id"
@@ -5468,83 +5616,6 @@ msgstr ""
msgid "End of URL transfer '%s', transfer stopped"
msgstr ""
#. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format
msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr ""
#, c-format
msgid "Usage: %s [option...] [plugin:option...]\n"
msgstr ""
msgid ""
" -a, --no-connect disable auto-connect to servers at startup\n"
" -c, --colors display default colors in terminal and exit\n"
" -d, --dir <path> force a single WeeChat home directory\n"
" or 5 different directories separated by colons "
"(in this order: config, data, state, cache, runtime)\n"
" (environment variable WEECHAT_HOME is read if "
"this option is not given)\n"
" -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 and exit\n"
" -i, --build-info display build information and exit\n"
" -l, --license display WeeChat license and exit\n"
" -p, --no-plugin don't load any plugin at startup\n"
" -P, --plugins <plugins> load only these plugins at startup\n"
" (see /help weechat.plugin.autoload)\n"
" -r, --run-command <cmd> run command(s) after startup;\n"
" many commands can be separated by semicolons and "
"are evaluated,\n"
" this option can be given multiple times\n"
" -s, --no-script don't load any script at startup\n"
" --upgrade upgrade WeeChat using session files (see /help "
"upgrade in WeeChat)\n"
" -v, --version display WeeChat version and exit\n"
" plugin:option option for plugin (see man weechat)\n"
msgstr ""
msgid "Extra options in headless mode:\n"
msgstr ""
msgid ""
" --doc-gen <path> generate files to build documentation and exit\n"
msgstr ""
msgid ""
" --daemon run WeeChat as a daemon (fork, new process group, "
"file descriptors closed);\n"
msgstr ""
msgid ""
" (by default in headless mode WeeChat is blocking "
"and does not run in background)\n"
msgstr ""
msgid ""
" --stdout display log messages on standard output instead "
"of writing them in log file\n"
msgstr ""
msgid ""
" (option ignored if option \"--daemon\" is given)\n"
msgstr ""
msgid ""
"Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):\n"
" --no-dlclose do not call function dlclose after plugins are "
"unloaded\n"
" --no-gnutls disable init/deinit of gnutls\n"
" --no-gcrypt disable init/deinit of gcrypt\n"
msgstr ""
#, c-format
msgid "Error: missing argument for \"%s\" option\n"
msgstr ""
msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr ""
@@ -6212,7 +6283,7 @@ msgstr ""
msgid ""
" - ${index_displayed}: index of line displayed in the bar item (starts at "
"0, only buffers displayed increment this index, see option "
"buflist.look.display_conditions"
"buflist.look.display_conditions)"
msgstr ""
msgid "buflist bar items"
@@ -7642,7 +7713,7 @@ msgid "%s%s: not connected to server \"%s\"!"
msgstr ""
#, c-format
msgid "%s: auto-reconnection is cancelled"
msgid "%s: auto-reconnection is canceled"
msgstr ""
#, c-format
@@ -7801,6 +7872,11 @@ msgid_plural "seconds"
msgstr[0] ""
msgstr[1] ""
msgid "millisecond"
msgid_plural "milliseconds"
msgstr[0] ""
msgstr[1] ""
msgid "minute"
msgid_plural "minutes"
msgstr[0] ""
@@ -7933,7 +8009,7 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-current] [-parted|-all] [-exclude=<channel>[,<channel>...]] <command> || [-"
"current] [-parted|-all] -include=<channel>[,<channel>...] <command>"
"current] [-parted|-all] [-include=<channel>[,<channel>...]] <command>"
msgstr ""
msgid "raw[-current]: execute command for channels of current server only"
@@ -8007,8 +8083,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] "
"-include=<nick>[,<nick>...] <command>"
"[-current] [-exclude=<nick>[,<nick>...]] <command> || [-current] [-"
"include=<nick>[,<nick>...]] <command>"
msgstr ""
msgid ""
@@ -8054,8 +8130,8 @@ msgstr ""
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid ""
"[-exclude=<server>[,<server>...]] <command> || -include=<server>[,"
"<server>...] <command>"
"[-exclude=<server>[,<server>...]] <command> || [-include=<server>[,"
"<server>...]] <command>"
msgstr ""
msgid "raw[-exclude]: exclude some servers (wildcard \"*\" is allowed)"
@@ -8179,7 +8255,7 @@ msgid ""
msgstr ""
msgid ""
"raw[ack]: acknowledge capabilities which require client-side acknowledgement"
"raw[ack]: acknowledge capabilities which require client-side acknowledgment"
msgstr ""
msgid "raw[end]: end the capability negotiation"
@@ -9793,8 +9869,9 @@ msgstr ""
msgid ""
"comma-separated list of fields to sort channels (see /help list for a list "
"of fields); char \"-\" can be used before field to reverse order, char \"~\" "
"can be used to do a case-insensitive comparison; example: \"-users,~name\" "
"for biggest channels first then case-insensitive sort on name"
"can be used to do a case-insensitive comparison; example: \"-users,~name2\" "
"for biggest channels first then case-insensitive sort on channel name "
"without prefix"
msgstr ""
msgid "strip channel topic colors in /list buffer"
@@ -10200,7 +10277,7 @@ msgstr ""
msgid "get nick from IRC host"
msgstr ""
msgid "IRC host (like `:nick!name@server.com`)"
msgid "IRC host (like `:nick!name@server`)"
msgstr ""
msgid ""
@@ -10404,8 +10481,8 @@ msgstr ""
#, c-format
msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"channel, ($)=refresh, (q)=close buffer"
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer"
msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list"
@@ -11495,7 +11572,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a "
"suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option "
"logger.file.rotation_compression_type"
@@ -12716,7 +12793,7 @@ msgid "%s%s: no connection to remote relay \"%s\""
msgstr ""
#, c-format
msgid "remote[%s]: auto-reconnection is cancelled"
msgid "remote[%s]: auto-reconnection is canceled"
msgstr ""
#, c-format
@@ -13100,18 +13177,18 @@ msgstr ""
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
"number of iterations asked to the client in \"api\" and \"weechat\" "
"protocols when a hashed password with algorithm PBKDF2 is used for "
"authentication; more iterations is better in term of security but is slower "
"to compute; this number should not be too high if your CPU is slow"
msgstr ""
msgid ""
@@ -13141,6 +13218,11 @@ msgid ""
"1 are recommended values)"
msgstr ""
msgid ""
"permissions for the Unix socket, as octal value (see man chmod); it must be "
"a number with 3 digits, each between 0 and 7"
msgstr ""
msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -13232,7 +13314,7 @@ msgstr ""
#. TRANSLATORS: please do not translate the status names, they must be used in English
msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)"
msgstr ""
@@ -13351,6 +13433,10 @@ msgstr ""
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr ""
#, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr ""
#, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr ""
@@ -13387,7 +13473,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port"
msgstr ""
msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgid "Relay WeeChat data to remote applications"
msgstr ""
msgid "connecting"
@@ -13612,9 +13698,9 @@ msgstr ""
#, c-format
msgid ""
"%d/%d scripts (filter: %s) | Sort: %s | Alt+key/input: i=install, r=remove, "
"%d/%d scripts | Filter: %s | Sort: %s | Alt+key/input: i=install, r=remove, "
"l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: "
"left=select, right=install/remove"
msgstr ""
@@ -13932,6 +14018,9 @@ msgstr ""
msgid "script name with extension"
msgstr ""
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr ""
@@ -14781,7 +14870,7 @@ msgid "%s%s: invalid regular expression in trigger: \"%s\""
msgstr ""
#. 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:"
msgid "Typing: "
msgstr ""
msgid ""
@@ -14815,6 +14904,11 @@ msgid ""
"truncate content)"
msgstr ""
msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is "
"used instead of the translated string \"Typing: \" which is used by default"
msgstr ""
msgid "Typing status of users"
msgstr ""
@@ -14942,8 +15036,9 @@ msgid "does not wait for ACK when sending file"
msgstr ""
msgid ""
"IP or DNS address used for sending and passively receiving files/chats (if "
"empty, local interface IP is used)"
"IP or DNS address used for sending and passively receiving files/chats; if "
"empty, local interface IP is used (note: content is evaluated, see /help "
"eval)"
msgstr ""
msgid ""
+15
View File
@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: 2025-2026 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
line-length = 120
[lint]
select = ["ALL"]
ignore = [
"D203", # incorrect-blank-line-before-class
"D213", # multi-line-summary-second-line
]
[lint.pylint]
max-args = 10
+1 -16
View File
@@ -23,6 +23,7 @@
set(LIB_CORE_SRC
weechat.c weechat.h
core-args.c core-args.h
core-arraylist.c core-arraylist.h
core-backtrace.c core-backtrace.h
core-calc.c core-calc.h
@@ -81,22 +82,6 @@ set(LIB_CORE_SRC
include(CheckSymbolExists)
check_symbol_exists(flock "sys/file.h" HAVE_FLOCK)
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
find_library(EXECINFO_LIB_PATH execinfo /usr/local/lib)
set(CMAKE_REQUIRED_LIBRARIES "${EXECINFO_LIB_PATH}")
check_function_exists(backtrace HAVE_BACKTRACE)
else()
check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE)
endif()
if(ENABLE_ZSTD)
include_directories(${LIBZSTD_INCLUDE_DIRS})
endif()
if(ENABLE_CJSON)
include_directories(${LIBCJSON_INCLUDE_DIRS})
endif()
include_directories("${CMAKE_BINARY_DIR}")
add_library(weechat_core OBJECT ${LIB_CORE_SRC})
target_link_libraries(weechat_core coverage_config)
+416
View File
@@ -0,0 +1,416 @@
/*
* SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is part of WeeChat, the extensible chat client.
*
* WeeChat is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* WeeChat is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
*/
/* Function for command-line arguments */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include "weechat.h"
#include "core-debug.h"
#include "core-list.h"
#include "core-string.h"
#include "core-utf8.h"
#include "core-version.h"
#include "../gui/gui-color.h"
#include "../plugins/plugin.h"
/* some command line options */
#define OPTION_DOCGEN 1000
#define OPTION_NO_DLCLOSE 1001
#define OPTION_NO_GNUTLS 1002
#define OPTION_NO_GCRYPT 1003
char *weechat_args_common[][2] = {
{
"-a, --no-connect",
/* TRANSLATORS: command line option "-a", "--no-connect" */
N_("disable auto-connect to servers at startup"),
},
{
"-c, --colors",
/* TRANSLATORS: command line option "-c", "--colors" */
N_("display default colors in terminal and exit"),
},
{
/* TRANSLATORS: only "<path>" may be translated */
N_("-d, --dir <path>"),
/* TRANSLATORS: command line option "-d", "--dir <path>" */
N_("force a single WeeChat home directory or 5 different directories "
"separated by colons (in this order: config, data, state, cache, runtime) "
"(environment variable WEECHAT_HOME is read if this option is not given)"),
},
{
"-t, --temp-dir",
/* TRANSLATORS: command line option "-t", "--temp-dir" */
N_("create a temporary WeeChat home directory and delete it on exit "
"(incompatible with option \"-d\")"),
},
{
"-h, --help",
/* TRANSLATORS: command line option "-h", "--help" */
N_("display this help and exit"),
},
{
"-i, --build-info",
/* TRANSLATORS: command line option "-i", "--build-info" */
N_("display build information and exit"),
},
{
"-l, --license",
/* TRANSLATORS: command line option "-l", "--license" */
N_("display WeeChat license and exit"),
},
{
"-p, --no-plugin",
/* TRANSLATORS: command line option "-p", "--no-plugin" */
N_("don't load any plugin at startup"),
},
{
/* TRANSLATORS: only "<plugins>" may be translated */
N_("-P, --plugins <plugins>"),
/* TRANSLATORS: command line option "-P", "--plugins <plugins>" */
N_("load only these plugins at startup (see /help weechat.plugin.autoload)"),
},
{
/* TRANSLATORS: only "<cmd>" may be translated (please keep it short) */
N_("-r, --run-command <cmd>"),
/* TRANSLATORS: command line option "-r", "--run-command <cmd>" */
N_("run command(s) after startup; many commands can be separated "
"by semicolons and are evaluated, this option can be given multiple times"),
},
{
"-s, --no-script",
/* TRANSLATORS: command line option "-s", "--no-script" */
N_("don't load any script at startup"),
},
{
"--upgrade",
/* TRANSLATORS: command line option "--upgrade" */
N_("upgrade WeeChat using session files (see /help upgrade in WeeChat)"),
},
{
"-v, --version",
/* TRANSLATORS: command line option "-v", "--version" */
N_("display WeeChat version and exit"),
},
{
/* TRANSLATORS: command line option: "plugin" and "option" may be translated */
N_("plugin:option"),
/* TRANSLATORS: command line option "plugin:option" */
N_("option for plugin (see man weechat)"),
},
{ NULL, NULL },
};
char *weechat_args_headless[][2] = {
{
/* TRANSLATORS: only "<path>" may be translated */
N_("--doc-gen <path>"),
/* TRANSLATORS: command line option "--doc-gen <path>" */
N_("generate files to build documentation and exit"),
},
{
"--daemon",
/* TRANSLATORS: command line option "--daemon" */
N_("run WeeChat as a daemon (fork, new process group, file descriptors closed); "
"by default in headless mode WeeChat is blocking and does not run in background"),
},
{
"--stdout",
/* TRANSLATORS: command line option "--stdout" */
N_("display log messages on standard output instead of writing them in log file "
"(option ignored if option \"--daemon\" is given)"),
},
{ NULL, NULL },
};
char *weechat_args_debug[][2] = {
{
"--no-dlclose",
/* TRANSLATORS: command line option "--no-dlclose" */
N_("do not call function dlclose after plugins are unloaded"),
},
{
"--no-gnutls",
/* TRANSLATORS: command line option "--no-gnutls" */
N_("disable init/deinit of gnutls"),
},
{
"--no-gcrypt",
/* TRANSLATORS: command line option "--no-gcrypt" */
N_("disable init/deinit of gcrypt"),
},
{ NULL, NULL },
};
/*
* Display WeeChat copyright on standard output.
*/
void
args_display_copyright (void)
{
string_fprintf (stdout, "\n");
string_fprintf (
stdout,
/* TRANSLATORS: "%s %s" after "compiled on" is date and time */
_("WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> "
"- %s"),
version_get_version_with_git (),
WEECHAT_COPYRIGHT_DATE,
version_get_compilation_date (),
version_get_compilation_time (),
WEECHAT_AUTHOR_NAME,
WEECHAT_AUTHOR_EMAIL,
WEECHAT_WEBSITE);
string_fprintf (stdout, "\n");
}
void
args_display_list_args (char *args[][2])
{
int i, j, length, length_fill, max_length_screen;
const char *ptr_text;
max_length_screen = 0;
for (i = 0; args[i][0]; i++)
{
length = utf8_strlen_screen (_(args[i][0]));
if (length > max_length_screen)
max_length_screen = length;
}
for (i = 0; args[i][0]; i++)
{
ptr_text = _(args[i][0]);
length = utf8_strlen_screen (ptr_text);
length_fill = max_length_screen - length;
string_fprintf (stdout, " %s", ptr_text);
for (j = 0; j < length_fill; j++)
{
string_fprintf (stdout, " ");
}
string_fprintf (stdout, " %s\n", _(args[i][1]));
}
}
/*
* Display WeeChat help on standard output.
*/
void
args_display_help (void)
{
args_display_copyright ();
string_fprintf (stdout, "\n");
string_fprintf (stdout,
"%s %s %s\n\n",
_("Usage:"),
weechat_argv0,
_("[option...] [plugin:option...]"));
args_display_list_args (weechat_args_common);
string_fprintf (stdout, "\n");
/* extra options in headless mode */
if (weechat_headless)
{
string_fprintf (stdout, "%s\n",
_("Extra options in headless mode:"));
args_display_list_args (weechat_args_headless);
string_fprintf (stdout, "\n");
}
/* debug options */
string_fprintf (stdout, "%s\n",
_("Debug options (for tools like valgrind, "
"DO NOT USE IN PRODUCTION):"));
args_display_list_args (weechat_args_debug);
string_fprintf (stdout, "\n");
}
/*
* Parse command line arguments.
*
* Arguments argc and argv come from main() function.
*/
void
args_parse (int argc, char *argv[])
{
int opt;
struct option long_options[] = {
/* standard options */
{ "no-connect", no_argument, NULL, 'a' },
{ "colors", no_argument, NULL, 'c' },
{ "dir", required_argument, NULL, 'd' },
{ "temp-dir", no_argument, NULL, 't' },
{ "help", no_argument, NULL, 'h' },
{ "build-info", no_argument, NULL, 'i' },
{ "license", no_argument, NULL, 'l' },
{ "no-plugin", no_argument, NULL, 'p' },
{ "plugins", required_argument, NULL, 'P' },
{ "run-command", required_argument, NULL, 'r' },
{ "no-script", no_argument, NULL, 's' },
{ "upgrade", no_argument, NULL, 'u' },
{ "doc-gen", required_argument, NULL, OPTION_DOCGEN },
{ "version", no_argument, NULL, 'v' },
/* debug options */
{ "no-dlclose", no_argument, NULL, OPTION_NO_DLCLOSE },
{ "no-gnutls", no_argument, NULL, OPTION_NO_GNUTLS },
{ "no-gcrypt", no_argument, NULL, OPTION_NO_GCRYPT },
{ NULL, 0, NULL, 0 },
};
weechat_argv0 = (argv[0]) ? strdup (argv[0]) : NULL;
weechat_upgrading = 0;
weechat_home_force = NULL;
weechat_home_temp = 0;
weechat_home_delete_on_exit = 0;
weechat_server_cmd_line = 0;
weechat_force_plugin_autoload = NULL;
weechat_doc_gen = 0;
weechat_plugin_no_dlclose = 0;
optind = 0;
opterr = 0;
while ((opt = getopt_long (argc, argv,
":acd:thilpP:r:sv",
long_options, NULL)) != -1)
{
switch (opt)
{
case 'a': /* -a / --no-connect */
/* option ignored, it will be used by plugins/scripts */
break;
case 'c': /* -c / --colors */
gui_color_display_terminal_colors ();
weechat_shutdown (EXIT_SUCCESS, 0);
break;
case 'd': /* -d / --dir */
weechat_home_temp = 0;
free (weechat_home_force);
weechat_home_force = strdup (optarg);
break;
case 't': /* -t / --temp-dir */
weechat_home_temp = 1;
if (weechat_home_force)
{
free (weechat_home_force);
weechat_home_force = NULL;
}
break;
case 'h': /* -h / --help */
args_display_help ();
weechat_shutdown (EXIT_SUCCESS, 0);
break;
case 'i': /* -i / --build-info */
debug_build_info ();
weechat_shutdown (EXIT_SUCCESS, 0);
break;
case 'l': /* -l / --license */
args_display_copyright ();
string_fprintf (stdout, "\n");
string_fprintf (stdout, "%s%s", WEECHAT_LICENSE_TEXT);
weechat_shutdown (EXIT_SUCCESS, 0);
break;
case 'p': /* -p / --no-plugin */
free (weechat_force_plugin_autoload);
weechat_force_plugin_autoload = strdup ("!*");
break;
case 'P': /* -P / --plugins */
free (weechat_force_plugin_autoload);
weechat_force_plugin_autoload = strdup (optarg);
break;
case 'r': /* -r / --run-command */
if (!weechat_startup_commands)
weechat_startup_commands = weelist_new ();
weelist_add (weechat_startup_commands, optarg,
WEECHAT_LIST_POS_END, NULL);
break;
case 's': /* -s / --no-script */
/* option ignored, it will be used by the scripting plugins */
break;
case 'u': /* --upgrade */
weechat_upgrading = 1;
break;
case OPTION_DOCGEN: /* --doc-gen */
if (weechat_headless)
{
weechat_doc_gen = 1;
weechat_doc_gen_path = strdup (optarg);
}
break;
case 'v': /* -v / --version */
string_fprintf (stdout, version_get_version ());
fprintf (stdout, "\n");
weechat_shutdown (EXIT_SUCCESS, 0);
break;
case OPTION_NO_DLCLOSE: /* --no-dlclose */
/*
* Valgrind works better when dlclose() is not done after
* plugins are unloaded, it can display stack for plugins,*
* otherwise you'll see "???" in stack for functions of
* unloaded plugins.
* This option disables the call to dlclose(),
* it must NOT be used for other purposes!
*/
weechat_plugin_no_dlclose = 1;
break;
case OPTION_NO_GNUTLS: /* --no-gnutls */
/*
* Electric-fence is not working fine when gnutls loads
* certificates and Valgrind reports many memory errors with
* gnutls.
* This option disables the init/deinit of gnutls,
* it must NOT be used for other purposes!
*/
weechat_no_gnutls = 1;
break;
case OPTION_NO_GCRYPT: /* --no-gcrypt */
/*
* Valgrind reports many memory errors with gcrypt.
* This option disables the init/deinit of gcrypt,
* it must NOT be used for other purposes!
*/
weechat_no_gcrypt = 1;
break;
case ':':
string_fprintf (stderr,
_("Error: missing argument for \"%s\" option\n"),
argv[optind - 1]);
weechat_shutdown (EXIT_FAILURE, 0);
break;
case '?':
/* ignore any unknown option; plugins can use them */
break;
default:
/* ignore any other error */
break;
}
}
}
+28
View File
@@ -0,0 +1,28 @@
/*
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is part of WeeChat, the extensible chat client.
*
* WeeChat is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* WeeChat is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef WEECHAT_ARGS_H
#define WEECHAT_ARGS_H
extern void args_display_help (void);
extern void args_parse (int argc, char *argv[]);
#endif /* WEECHAT_ARGS_H */
+26 -27
View File
@@ -35,10 +35,9 @@
/*
* Compares two arraylist entries (default comparator).
* It just compares pointers.
* Compare two arraylist entries (default comparator: compare pointers only).
*
* Returns:
* Return:
* -1: pointer1 < pointer2
* 0: pointer1 == pointer2
* 1: pointer1 > pointer2
@@ -60,9 +59,9 @@ arraylist_cmp_default_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Creates a new arraylist.
* Create a new arraylist.
*
* Returns pointer to arraylist, NULL if error.
* Return pointer to arraylist, NULL if error.
*/
struct t_arraylist *
@@ -114,7 +113,7 @@ arraylist_new (int initial_size,
}
/*
* Returns the size of an arraylist (number of elements).
* Return the size of an arraylist (number of elements).
*/
int
@@ -127,7 +126,7 @@ arraylist_size (struct t_arraylist *arraylist)
}
/*
* Returns the pointer to an arraylist element, by index.
* Return the pointer to an arraylist element, by index.
*/
void *
@@ -140,11 +139,11 @@ arraylist_get (struct t_arraylist *arraylist, int index)
}
/*
* Adjusts the allocated size of arraylist to add one element (if needed),
* Adjust the allocated size of arraylist to add one element (if needed),
* so that the list has enough allocated data to store (current_size + 1)
* elements.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -180,11 +179,11 @@ arraylist_grow (struct t_arraylist *arraylist)
}
/*
* Adjusts the allocated size of arraylist to remove one element (if needed),
* Adjust the allocated size of arraylist to remove one element (if needed),
* so that the list has enough allocated data to store (current size - 1)
* elements.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -230,7 +229,7 @@ arraylist_shrink (struct t_arraylist *arraylist)
}
/*
* Performs a binary search in the arraylist to find an element
* Perform a binary search in the arraylist to find an element
* (this function must be called only if the arraylist is sorted).
*
* If "index" is not NULL, it is set with the index of element found (or -1 if
@@ -239,7 +238,7 @@ arraylist_shrink (struct t_arraylist *arraylist)
* If "index_insert" is not NULL, it is set with the index that must be used to
* insert the element in the arraylist (to keep arraylist sorted).
*
* Returns pointer to element found, NULL if not found.
* Return pointer to element found, NULL if not found.
*/
void *
@@ -398,7 +397,7 @@ end:
}
/*
* Performs a standard search in the arraylist to find an element
* Perform a standard search in the arraylist to find an element
* (this function must be called only if the arraylist is NOT sorted).
*
* If "index" is not NULL, it is set with the index of element found (or -1 if
@@ -407,7 +406,7 @@ end:
* If "index_insert" is not NULL, it is set to -1 (elements are always added
* at the end of list when it is not sorted).
*
* Returns pointer to element found, NULL if not found.
* Return pointer to element found, NULL if not found.
*/
void *
@@ -442,7 +441,7 @@ end:
}
/*
* Searches an element in the arraylist.
* Search an element in the arraylist.
*
* If "index" is not NULL, it is set with the index of element found (or -1 if
* element was not found).
@@ -450,7 +449,7 @@ end:
* If "index_insert" is not NULL, it is set with the index that must be used to
* insert the element in the arraylist (to keep arraylist sorted).
*
* Returns pointer to element found, NULL if not found.
* Return pointer to element found, NULL if not found.
*/
void *
@@ -478,7 +477,7 @@ arraylist_search (struct t_arraylist *arraylist, void *pointer,
}
/*
* Inserts an element at a given index (and shifts next elements by one
* Insert an element at a given index (and shifts next elements by one
* position), or at automatic index if the arraylist is sorted.
*
* If the index is negative and that the arraylist is not sorted, the element
@@ -487,7 +486,7 @@ arraylist_search (struct t_arraylist *arraylist, void *pointer,
* If the arraylist is sorted, the argument "index" is ignored (the element
* will be inserted at appropriate position, to keep arraylist sorted).
*
* Returns the index of the new element (>= 0) or -1 if error.
* Return the index of the new element (>= 0) or -1 if error.
*/
int
@@ -559,10 +558,10 @@ arraylist_insert (struct t_arraylist *arraylist, int index, void *pointer)
}
/*
* Adds an element at the end of arraylist (or in the middle if the arraylist
* Add an element at the end of arraylist (or in the middle if the arraylist
* is sorted).
*
* Returns the index of the new element (>= 0) or -1 if error.
* Return the index of the new element (>= 0) or -1 if error.
*/
int
@@ -575,9 +574,9 @@ arraylist_add (struct t_arraylist *arraylist, void *pointer)
}
/*
* Removes one element from the arraylist.
* Remove one element from the arraylist.
*
* Returns the index removed or -1 if error.
* Return the index removed or -1 if error.
*/
int
@@ -614,9 +613,9 @@ arraylist_remove (struct t_arraylist *arraylist, int index)
}
/*
* Removes all elements in the arraylist.
* Remove all elements in the arraylist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -669,7 +668,7 @@ arraylist_clear (struct t_arraylist *arraylist)
}
/*
* Frees an arraylist.
* Free an arraylist.
*/
void
@@ -694,7 +693,7 @@ arraylist_free (struct t_arraylist *arraylist)
}
/*
* Prints an arraylist in WeeChat log file (usually for crash dump).
* Print an arraylist in WeeChat log file (usually for crash dump).
*/
void
+3 -3
View File
@@ -49,7 +49,7 @@
/*
* Displays a backtrace line on standard error output and in WeeChat log.
* Display a backtrace line on standard error output and in WeeChat log.
*/
void
@@ -65,7 +65,7 @@ weechat_backtrace_printf (const char *message, ...)
}
/*
* Displays function name and line with a backtrace address.
* Display function name and line with a backtrace address.
*/
void
@@ -147,7 +147,7 @@ weechat_backtrace_addr2line (int number, void *address, const char *symbol)
}
/*
* Displays backtrace (function called when a SIGSEGV is received).
* Display backtrace (function called when a SIGSEGV is received).
*/
void
+8 -8
View File
@@ -60,7 +60,7 @@ calc_list_free_cb (void *data, struct t_arraylist *arraylist, void *pointer)
}
/*
* Returns the precedence of an operator:
* Return the precedence of an operator:
* - '*' and '/': 2
* - '+' and '-': 1
* - any other: 0
@@ -91,7 +91,7 @@ calc_operator_precedence (const char *oper)
}
/*
* Pops an integer value from the stack of values.
* Pop an integer value from the stack of values.
*/
double
@@ -117,7 +117,7 @@ calc_pop_value (struct t_arraylist *list_values)
}
/*
* Calculates result of an operation using an operator and two values.
* Calculate result of an operation using an operator and two values.
*/
double
@@ -151,7 +151,7 @@ calc_operation (const char *oper, double value1, double value2)
}
/*
* Calculates result of an operation using the operator on the operators stack
* Calculate result of an operation using the operator on the operators stack
* and the two values on the values stack.
*
* The result is pushed on values stack.
@@ -187,7 +187,7 @@ calc_operation_stacks (struct t_arraylist *list_values,
}
/*
* Sanitizes a decimal number: removes any thousands separator and replaces
* Sanitize a decimal number: remove any thousands separator and replace
* the decimal separator by a dot.
*
* The string is updated in-place, the result has always a length shorter or
@@ -203,7 +203,7 @@ calc_operation_stacks (struct t_arraylist *list_values,
* 1,234,567.89 --> 1234567.89
* -2.345,67 --> -2345.67
*
* Returns:
* Return:
* 1: the number has decimal part
* 0: the number has no decimal part
*/
@@ -279,7 +279,7 @@ calc_sanitize_decimal_number (char *string)
}
/*
* Formats the result as a decimal number (locale independent): remove any
* Format the result as a decimal number (locale independent): remove any
* extra "0" at the and the decimal point if needed.
*/
@@ -314,7 +314,7 @@ calc_format_result (double value, char *result, int max_size)
}
/*
* Calculates an expression, which can contain:
* Calculate an expression, which can contain:
* - integer and decimal numbers (ie 2 or 2.5)
* - operators:
* +: addition
+362 -369
View File
File diff suppressed because it is too large Load Diff
+53 -53
View File
@@ -65,7 +65,7 @@ extern char **environ;
/*
* Adds a word with quotes around to completion list.
* Add a word with quotes around to completion list.
*/
void
@@ -82,7 +82,7 @@ completion_list_add_quoted_word (struct t_gui_completion *completion,
}
/*
* Adds bar names to completion list.
* Add bar names to completion list.
*/
int
@@ -109,7 +109,7 @@ completion_list_add_bars_names_cb (const void *pointer, void *data,
}
/*
* Adds bar items to completion list.
* Add bar items to completion list.
*/
int
@@ -137,7 +137,7 @@ completion_list_add_bars_items_cb (const void *pointer, void *data,
}
/*
* Adds custom bar items names to completion list.
* Add custom bar items names to completion list.
*/
int
@@ -165,7 +165,7 @@ completion_list_add_custom_bar_items_names_cb (const void *pointer, void *data,
}
/*
* Adds custom bar item conditions to completion list.
* Add custom bar item conditions to completion list.
*/
int
@@ -190,7 +190,7 @@ completion_list_add_custom_bar_item_conditions_cb (const void *pointer, void *da
}
/*
* Adds custom bar item contents to completion list.
* Add custom bar item contents to completion list.
*/
int
@@ -215,7 +215,7 @@ completion_list_add_custom_bar_item_contents_cb (const void *pointer, void *data
}
/*
* Adds arguments for commands that add a custom bar item.
* Add arguments for commands that add a custom bar item.
*/
int
@@ -283,7 +283,7 @@ completion_list_add_custom_bar_item_add_arguments_cb (const void *pointer, void
}
/*
* Adds bar options to completion list.
* Add bar options to completion list.
*/
int
@@ -310,7 +310,7 @@ completion_list_add_bars_options_cb (const void *pointer, void *data,
}
/*
* Adds buffer names to completion list.
* Add buffer names to completion list.
*/
int
@@ -338,7 +338,7 @@ completion_list_add_buffers_names_cb (const void *pointer, void *data,
}
/*
* Adds buffer numbers to completion list.
* Add buffer numbers to completion list.
*/
int
@@ -368,7 +368,7 @@ completion_list_add_buffers_numbers_cb (const void *pointer, void *data,
}
/*
* Adds plugin+buffer names to completion list.
* Add plugin+buffer names to completion list.
*/
int
@@ -396,7 +396,7 @@ completion_list_add_buffers_plugins_names_cb (const void *pointer, void *data,
}
/*
* Adds a buffer local variable to completions list.
* Add a buffer local variable to completions list.
*/
void
@@ -414,7 +414,7 @@ completion_list_map_buffer_local_variable_cb (void *data,
}
/*
* Adds buffer local variables to completion list.
* Add buffer local variables to completion list.
*/
int
@@ -437,7 +437,7 @@ completion_list_add_buffer_local_variables_cb (const void *pointer, void *data,
}
/*
* Adds buffer local variable value to completion list.
* Add buffer local variable value to completion list.
*/
int
@@ -487,7 +487,7 @@ completion_list_add_buffer_local_variable_value_cb (const void *pointer, void *d
}
/*
* Adds buffer properties (that can be set) to completion list.
* Add buffer properties (that can be set) to completion list.
*/
int
@@ -515,7 +515,7 @@ completion_list_add_buffer_properties_set_cb (const void *pointer, void *data,
}
/*
* Adds a buffer local variable to completions list (for `/buffer setauto`).
* Add a buffer local variable to completions list (for `/buffer setauto`).
*/
void
@@ -538,7 +538,7 @@ completion_list_map_buffer_local_variable_setauto_cb (void *data,
}
/*
* Adds buffer properties (that can be set), local variables and key bindings
* Add buffer properties (that can be set), local variables and key bindings
* to completion list.
*/
@@ -585,7 +585,7 @@ completion_list_add_buffer_properties_setauto_cb (const void *pointer, void *dat
}
/*
* Adds buffer properties (that can be read) to completion list.
* Add buffer properties (that can be read) to completion list.
*/
int
@@ -625,7 +625,7 @@ completion_list_add_buffer_properties_get_cb (const void *pointer, void *data,
}
/*
* Adds window numbers to completion list.
* Add window numbers to completion list.
*/
int
@@ -654,7 +654,7 @@ completion_list_add_windows_numbers_cb (const void *pointer, void *data,
}
/*
* Adds colors to completion list.
* Add colors to completion list.
*/
int
@@ -711,7 +711,7 @@ completion_list_add_colors_cb (const void *pointer, void *data,
}
/*
* Adds a palette color to completion list.
* Add a palette color to completion list.
*/
void
@@ -729,7 +729,7 @@ completion_list_map_add_palette_color_cb (void *data,
}
/*
* Adds palette colors to completion list.
* Add palette colors to completion list.
*/
int
@@ -752,7 +752,7 @@ completion_list_add_palette_colors_cb (const void *pointer, void *data,
}
/*
* Adds configuration files to completion list.
* Add configuration files to completion list.
*/
int
@@ -780,7 +780,7 @@ completion_list_add_config_files_cb (const void *pointer, void *data,
}
/*
* Adds path/filename to completion list.
* Add path/filename to completion list.
*/
int
@@ -923,7 +923,7 @@ end:
}
/*
* Adds filter names to completion list.
* Add filter names to completion list.
*/
int
@@ -951,7 +951,7 @@ completion_list_add_filters_cb (const void *pointer, void *data,
}
/*
* Adds disabled filter names to completion list.
* Add disabled filter names to completion list.
*/
int
@@ -982,7 +982,7 @@ completion_list_add_filters_disabled_cb (const void *pointer, void *data,
}
/*
* Adds enabled filter names to completion list.
* Add enabled filter names to completion list.
*/
int
@@ -1013,7 +1013,7 @@ completion_list_add_filters_enabled_cb (const void *pointer, void *data,
}
/*
* Adds command hook types to completion list.
* Add command hook types to completion list.
*/
int
@@ -1040,7 +1040,7 @@ completion_list_add_hook_types_cb (const void *pointer, void *data,
}
/*
* Adds command hooks to completion list.
* Add command hooks to completion list.
*/
int
@@ -1091,7 +1091,7 @@ completion_list_add_commands_cb (const void *pointer, void *data,
}
/*
* Adds info hooks to completion list.
* Add info hooks to completion list.
*/
int
@@ -1123,7 +1123,7 @@ completion_list_add_infos_cb (const void *pointer, void *data,
}
/*
* Adds infolist hooks to completion list.
* Add infolist hooks to completion list.
*/
int
@@ -1155,7 +1155,7 @@ completion_list_add_infolists_cb (const void *pointer, void *data,
}
/*
* Adds nicks to completion list.
* Add nicks to completion list.
*/
int
@@ -1206,7 +1206,7 @@ completion_list_add_nicks_cb (const void *pointer, void *data,
}
/*
* Adds configuration options to completion list.
* Add configuration options to completion list.
*/
int
@@ -1254,7 +1254,7 @@ completion_list_add_config_options_cb (const void *pointer, void *data,
}
/*
* Adds plugin names to completion list.
* Add plugin names to completion list.
*/
int
@@ -1282,7 +1282,7 @@ completion_list_add_plugins_cb (const void *pointer, void *data,
}
/*
* Adds a plugin installed to completion list.
* Add a plugin installed to completion list.
*/
void
@@ -1317,7 +1317,7 @@ completion_list_add_plugins_installed_exec_cb (void *data,
}
/*
* Adds plugins installed to completion list.
* Add plugins installed to completion list.
*/
int
@@ -1384,7 +1384,7 @@ completion_list_add_plugins_installed_cb (const void *pointer, void *data,
}
/*
* Adds plugin commands to completion list.
* Add plugin commands to completion list.
*
* The plugin name is read in previous argument.
*/
@@ -1472,7 +1472,7 @@ completion_list_add_plugins_commands_cb (const void *pointer, void *data,
}
/*
* Adds value of option to completion list.
* Add value of option to completion list.
*
* The option name is read in previous argument.
*/
@@ -1688,7 +1688,7 @@ completion_list_add_config_option_values_cb (const void *pointer, void *data,
}
/*
* Adds WeeChat commands to completion list.
* Add WeeChat commands to completion list.
*/
int
@@ -1740,7 +1740,7 @@ completion_list_add_weechat_commands_cb (const void *pointer, void *data,
}
/*
* Adds proxy names to completion list.
* Add proxy names to completion list.
*/
int
@@ -1768,7 +1768,7 @@ completion_list_add_proxies_names_cb (const void *pointer, void *data,
}
/*
* Adds proxy options to completion list.
* Add proxy options to completion list.
*/
int
@@ -1795,7 +1795,7 @@ completion_list_add_proxies_options_cb (const void *pointer, void *data,
}
/*
* Adds key contexts to completion list.
* Add key contexts to completion list.
*/
int
@@ -1822,7 +1822,7 @@ completion_list_add_keys_contexts_cb (const void *pointer, void *data,
}
/*
* Adds keys to completion list.
* Add keys to completion list.
*/
int
@@ -1853,7 +1853,7 @@ completion_list_add_keys_codes_cb (const void *pointer, void *data,
}
/*
* Adds keys that can be reset (keys added, redefined or removed) to completion
* Add keys that can be reset (keys added, redefined or removed) to completion
* list.
*/
@@ -1905,7 +1905,7 @@ completion_list_add_keys_codes_for_reset_cb (const void *pointer, void *data,
}
/*
* Adds areas for free cursor movement ("chat" and bar names) to completion
* Add areas for free cursor movement ("chat" and bar names) to completion
* list.
*/
@@ -1947,7 +1947,7 @@ completion_list_add_cursor_areas_cb (const void *pointer, void *data,
}
/*
* Adds layout names to completion list.
* Add layout names to completion list.
*/
int
@@ -1975,7 +1975,7 @@ completion_list_add_layouts_names_cb (const void *pointer, void *data,
}
/*
* Adds a secured data to completion list.
* Add a secured data to completion list.
*/
void
@@ -1993,7 +1993,7 @@ completion_list_map_add_secured_data_cb (void *data,
}
/*
* Adds secured data to completion list.
* Add secured data to completion list.
*/
int
@@ -2016,7 +2016,7 @@ completion_list_add_secured_data_cb (const void *pointer, void *data,
}
/*
* Adds environment variables to completion list.
* Add environment variables to completion list.
*/
int
@@ -2052,7 +2052,7 @@ completion_list_add_env_vars_cb (const void *pointer, void *data,
}
/*
* Adds value of an environment variable to completion list.
* Add value of an environment variable to completion list.
*/
int
@@ -2099,7 +2099,7 @@ completion_list_add_env_value_cb (const void *pointer, void *data,
}
/*
* Adds a buffer local variable for /eval to completions list.
* Add a buffer local variable for /eval to completions list.
*/
void
@@ -2122,7 +2122,7 @@ completion_list_map_eval_buffer_local_variable_cb (void *data,
}
/*
* Adds /eval variables to completion list.
* Add /eval variables to completion list.
*/
int
@@ -2225,7 +2225,7 @@ completion_list_add_eval_variables_cb (const void *pointer, void *data,
}
/*
* Adds hooks for completions done by WeeChat core.
* Add hooks for completions done by WeeChat core.
*/
void
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -286,7 +286,7 @@ extern void config_file_search_with_string (const char *option_name,
struct t_config_file **config_file,
struct t_config_section **section,
struct t_config_option **option,
char **pos_option_name);
const char **pos_option_name);
extern int config_file_string_to_boolean (const char *text);
extern int config_file_option_reset (struct t_config_option *option,
int run_callback);
+68 -85
View File
@@ -50,6 +50,7 @@
#include "core-proxy.h"
#include "core-string.h"
#include "core-sys.h"
#include "core-util.h"
#include "core-version.h"
#include "../gui/gui-bar.h"
#include "../gui/gui-bar-item.h"
@@ -404,7 +405,7 @@ config_change_sys_rlimit (const void *pointer, void *data,
}
/*
* Checks option "weechat.look.config_permissions".
* Check option "weechat.look.config_permissions".
*/
int
@@ -507,7 +508,7 @@ config_change_window_title (const void *pointer, void *data,
}
/*
* Sets word chars array with a word chars option.
* Set word chars array with a word chars option.
*/
void
@@ -762,7 +763,7 @@ config_change_buffer_time_same (const void *pointer, void *data,
}
/*
* Computes the "prefix_max_length" on all buffers.
* Compute the "prefix_max_length" on all buffers.
*/
void
@@ -781,7 +782,7 @@ config_compute_prefix_max_length_all_buffers (void)
}
/*
* Sets nick colors using option "weechat.color.chat_nick_colors".
* Set nick colors using option "weechat.color.chat_nick_colors".
*/
void
@@ -859,8 +860,7 @@ config_change_look_nick_color_force (const void *pointer, void *data,
}
/*
* Sets eval syntax highlighting colors using option
* "weechat.color.eval_syntax_colors".
* Set eval syntax highlighting colors using option "weechat.color.eval_syntax_colors".
*/
void
@@ -1176,7 +1176,7 @@ config_change_item_time_format (const void *pointer, void *data,
}
/*
* Gets the current time formatted for the bar item status.
* Get the current time formatted for the bar item status.
*/
void
@@ -1265,7 +1265,7 @@ config_change_prefix_align_min (const void *pointer, void *data,
}
/*
* Checks option "weechat.look.prefix_align_more".
* Check option "weechat.look.prefix_align_more".
*/
int
@@ -1282,7 +1282,7 @@ config_check_prefix_align_more (const void *pointer, void *data,
}
/*
* Checks option "weechat.look.prefix_buffer_align_more".
* Check option "weechat.look.prefix_buffer_align_more".
*/
int
@@ -1299,7 +1299,7 @@ config_check_prefix_buffer_align_more (const void *pointer, void *data,
}
/*
* Checks options "weechat.look.separator_{horizontal|vertical}".
* Check options "weechat.look.separator_{horizontal|vertical}".
*/
int
@@ -1316,7 +1316,7 @@ config_check_separator (const void *pointer, void *data,
}
/*
* Checks options "weechat.look.whitespace_char" and
* Check options "weechat.look.whitespace_char" and
* "weechat.look.tab_whitespace_char".
*/
@@ -1473,8 +1473,7 @@ config_change_completion_nick_ignore_words (const void *pointer,
}
/*
* Callback for changes on option
* "weechat.completion.partial_completion_templates".
* Callback for changes on option "weechat.completion.partial_completion_templates".
*/
void
@@ -1542,7 +1541,7 @@ config_change_network_gnutls_ca (const void *pointer, void *data,
}
/*
* Checks option "weechat.network.proxy_curl".
* Check option "weechat.network.proxy_curl".
*/
int
@@ -1602,9 +1601,9 @@ config_change_plugin_extension (const void *pointer, void *data,
}
/*
* Timer called each minute: checks if the day has changed, and if yes:
* - refreshes screen (if needed)
* - sends signal "day_changed"
* Timer called each minute: check if the day has changed, and if yes:
* - refresh screen (if needed)
* - send signal "day_changed"
*/
int
@@ -1652,7 +1651,7 @@ config_day_change_timer_cb (const void *pointer, void *data,
}
/*
* Initializes some things after reading/reloading WeeChat configuration file.
* Initialize some things after reading/reloading WeeChat configuration file.
*/
void
@@ -1701,7 +1700,7 @@ config_weechat_init_after_read (void)
}
/*
* Updates options in configuration file while reading the file.
* Update options in configuration file while reading the file.
*/
struct t_hashtable *
@@ -1710,7 +1709,7 @@ config_weechat_update_cb (const void *pointer, void *data,
int version_read,
struct t_hashtable *data_read)
{
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value;
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value, *pos_option;
char *new_commands[][2] = {
/* old command, new command */
{ "/input jump_smart", "/buffer jump smart" },
@@ -1740,7 +1739,7 @@ config_weechat_update_cb (const void *pointer, void *data,
{ "number_desc" "-buffer.number" },
{ NULL, NULL },
};
char *new_option, *new_value, *pos_option;
char *new_option, *new_value;
int changes, i;
/* make C compiler happy */
@@ -1939,9 +1938,9 @@ config_weechat_update_cb (const void *pointer, void *data,
}
/*
* Reloads WeeChat configuration file.
* Reload WeeChat configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_READ_OK: OK
* WEECHAT_CONFIG_READ_MEMORY_ERROR: not enough memory
* WEECHAT_CONFIG_READ_FILE_NOT_FOUND: file not found
@@ -1994,7 +1993,7 @@ config_weechat_reload_cb (const void *pointer, void *data,
}
/*
* Gets debug level for a plugin (or "core").
* Get debug level for a plugin (or "core").
*/
struct t_config_option *
@@ -2006,8 +2005,7 @@ config_weechat_debug_get (const char *plugin_name)
}
/*
* Sets debug level for "core" and all plugins, using values from section
* "debug".
* Set debug level for "core" and all plugins, using values from section "debug".
*/
void
@@ -2129,7 +2127,7 @@ config_weechat_debug_delete_option_cb (const void *pointer, void *data,
}
/*
* Sets debug level for a plugin (or "core").
* Set debug level for a plugin (or "core").
*/
int
@@ -2150,19 +2148,14 @@ void
config_weechat_palette_change_cb (const void *pointer, void *data,
struct t_config_option *option)
{
char *error;
int number;
/* make C compiler happy */
(void) pointer;
(void) data;
error = NULL;
number = (int)strtol (option->name, &error, 10);
if (error && !error[0])
{
if (util_parse_int (option->name, 10, &number))
gui_color_palette_add (number, CONFIG_STRING(option));
}
}
/*
@@ -2177,7 +2170,6 @@ config_weechat_palette_create_option_cb (const void *pointer, void *data,
const char *value)
{
struct t_config_option *ptr_option;
char *error;
int rc, number;
/* make C compiler happy */
@@ -2186,9 +2178,7 @@ config_weechat_palette_create_option_cb (const void *pointer, void *data,
rc = WEECHAT_CONFIG_OPTION_SET_ERROR;
error = NULL;
number = (int)strtol (option_name, &error, 10);
if (error && !error[0])
if (util_parse_int (option_name, 10, &number))
{
if (option_name)
{
@@ -2246,7 +2236,6 @@ config_weechat_palette_delete_option_cb (const void *pointer, void *data,
struct t_config_section *section,
struct t_config_option *option)
{
char *error;
int number;
/* make C compiler happy */
@@ -2255,9 +2244,7 @@ config_weechat_palette_delete_option_cb (const void *pointer, void *data,
(void) config_file;
(void) section;
error = NULL;
number = (int)strtol (option->name, &error, 10);
if (error && !error[0])
if (util_parse_int (option->name, 10, &number))
gui_color_palette_remove (number);
config_file_option_free (option, 1);
@@ -2266,7 +2253,7 @@ config_weechat_palette_delete_option_cb (const void *pointer, void *data,
}
/*
* Reads a proxy option in WeeChat configuration file.
* Read a proxy option in WeeChat configuration file.
*/
int
@@ -2275,7 +2262,8 @@ config_weechat_proxy_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
char *pos_option, *proxy_name;
const char *pos_option;
char *proxy_name;
struct t_proxy *ptr_temp_proxy;
int index_option;
@@ -2345,7 +2333,7 @@ config_weechat_proxy_read_cb (const void *pointer, void *data,
}
/*
* Reads a bar option in WeeChat configuration file.
* Read a bar option in WeeChat configuration file.
*/
int
@@ -2354,7 +2342,8 @@ config_weechat_bar_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
char *pos_option, *bar_name;
const char *pos_option;
char *bar_name;
struct t_gui_bar *ptr_temp_bar;
int index_option;
@@ -2425,7 +2414,7 @@ config_weechat_bar_read_cb (const void *pointer, void *data,
}
/*
* Reads a custom bar item option in WeeChat configuration file.
* Read a custom bar item option in WeeChat configuration file.
*/
int
@@ -2434,7 +2423,8 @@ config_weechat_custom_bar_item_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
char *pos_option, *item_name;
const char *pos_option;
char *item_name;
struct t_gui_bar_item_custom *ptr_temp_item;
int index_option;
@@ -2515,7 +2505,7 @@ config_weechat_custom_bar_item_read_cb (const void *pointer, void *data,
}
/*
* Reads a layout option in WeeChat configuration file.
* Read a layout option in WeeChat configuration file.
*/
int
@@ -2524,10 +2514,10 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
struct t_config_section *section,
const char *option_name, const char *value)
{
int argc, force_current_layout;
char **argv, *pos, *layout_name, *error1, *error2, *error3, *error4;
int argc, force_current_layout, number1, number2, number3, number4;
const char *pos;
char **argv, *layout_name;
const char *ptr_option_name;
long number1, number2, number3, number4;
struct t_gui_layout *ptr_layout;
struct t_gui_layout_window *parent;
@@ -2585,9 +2575,7 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
{
if (argc >= 3)
{
error1 = NULL;
number1 = strtol (argv[2], &error1, 10);
if (error1 && !error1[0])
if (util_parse_int (argv[2], 10, &number1))
gui_layout_buffer_add (ptr_layout, argv[0], argv[1], number1);
}
string_free_split (argv);
@@ -2604,16 +2592,10 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
{
if (argc >= 6)
{
error1 = NULL;
number1 = strtol (argv[0], &error1, 10);
error2 = NULL;
number2 = strtol (argv[1], &error2, 10);
error3 = NULL;
number3 = strtol (argv[2], &error3, 10);
error4 = NULL;
number4 = strtol (argv[3], &error4, 10);
if (error1 && !error1[0] && error2 && !error2[0]
&& error3 && !error3[0] && error4 && !error4[0])
if (util_parse_int (argv[0], 10, &number1)
&& util_parse_int (argv[1], 10, &number2)
&& util_parse_int (argv[2], 10, &number3)
&& util_parse_int (argv[3], 10, &number4))
{
parent = gui_layout_window_search_by_id (ptr_layout->layout_windows,
number2);
@@ -2646,9 +2628,9 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
}
/*
* Writes layout of windows in WeeChat configuration file.
* Write layout of windows in WeeChat configuration file.
*
* Returns:
* Return:
* 1: OK
* 0: write error
*/
@@ -2689,7 +2671,7 @@ config_weechat_layout_write_tree (struct t_config_file *config_file,
}
/*
* Writes section "layout" in WeeChat configuration file.
* Write section "layout" in WeeChat configuration file.
*/
int
@@ -2749,7 +2731,7 @@ config_weechat_layout_write_cb (const void *pointer, void *data,
}
/*
* Applies a buffer option to all matching buffers.
* Apply a buffer option to all matching buffers.
*/
void
@@ -2871,9 +2853,9 @@ config_weechat_buffer_create_option_cb (const void *pointer, void *data,
}
/*
* Sets a buffer property.
* Set a buffer property.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -3024,12 +3006,12 @@ config_weechat_notify_delete_option_cb (const void *pointer, void *data,
}
/*
* Sets a notify level for a buffer.
* Set a notify level for a buffer.
*
* A negative value resets notify for buffer to its default value (and
* removes buffer from config file).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -3054,7 +3036,7 @@ config_weechat_notify_set (struct t_gui_buffer *buffer, const char *notify)
}
/*
* Reads a filter option in WeeChat configuration file.
* Read a filter option in WeeChat configuration file.
*/
int
@@ -3098,7 +3080,7 @@ config_weechat_filter_read_cb (const void *pointer, void *data,
}
/*
* Writes section "filter" in WeeChat configuration file.
* Write section "filter" in WeeChat configuration file.
*/
int
@@ -3132,9 +3114,9 @@ config_weechat_filter_write_cb (const void *pointer, void *data,
}
/*
* Searches key context with the section pointer.
* Search key context with the section pointer.
*
* Returns key context, -1 if not found.
* Return key context, -1 if not found.
*/
int
@@ -3223,9 +3205,9 @@ config_weechat_key_delete_option_cb (const void *pointer, void *data,
}
/*
* Creates options in WeeChat configuration.
* Create options in WeeChat configuration.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -3784,6 +3766,7 @@ config_weechat_init_options (void)
NULL, 0, 0,
"${away} "
"|| ${buffer.num_displayed} == 0 "
"|| ${info:relay_client_count,api,connected} > 0 "
"|| ${info:relay_client_count,weechat,connected} > 0",
NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
@@ -5599,9 +5582,9 @@ config_weechat_init_options (void)
}
/*
* Initializes WeeChat configuration.
* Initialize WeeChat configuration.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -5661,9 +5644,9 @@ config_weechat_init (void)
}
/*
* Reads WeeChat configuration file.
* Read WeeChat configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_READ_OK: OK
* WEECHAT_CONFIG_READ_MEMORY_ERROR: not enough memory
* WEECHAT_CONFIG_READ_FILE_NOT_FOUND: file not found
@@ -5684,9 +5667,9 @@ config_weechat_read (void)
}
/*
* Writes WeeChat configuration file.
* Write WeeChat configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_WRITE_OK: OK
* WEECHAT_CONFIG_WRITE_ERROR: error
* WEECHAT_CONFIG_WRITE_MEMORY_ERROR: not enough memory
@@ -5699,7 +5682,7 @@ config_weechat_write (void)
}
/*
* Frees WeeChat configuration file and variables.
* Free WeeChat configuration file and variables.
*/
void
+26 -20
View File
@@ -46,6 +46,9 @@
#include <netinet/in.h>
#include <inttypes.h>
#define BE_INT64 htonll
#elif defined(__HAIKU__)
#include <ByteOrder.h>
#define BE_INT64 B_HOST_TO_BENDIAN_INT64
#else
#define BE_INT64 htobe64
#endif
@@ -123,7 +126,7 @@ int weecrypto_cipher[] = {
/*
* Returns the hash algorithm with the name, or GCRY_MD_NONE if not found.
* Return the hash algorithm with the name, or GCRY_MD_NONE if not found.
*/
int
@@ -144,7 +147,7 @@ weecrypto_get_hash_algo (const char *hash_algo)
}
/*
* Returns the cipher with the name, or GCRY_CIPHER_NONE if not found.
* Return the cipher with the name, or GCRY_CIPHER_NONE if not found.
*/
int
@@ -165,7 +168,7 @@ weecrypto_get_cipher (const char *cipher)
}
/*
* Computes hash of data using the given hash algorithm.
* Compute hash of data using the given hash algorithm.
*
* The hash size depends on the algorithm, common ones are:
*
@@ -196,7 +199,7 @@ weecrypto_get_cipher (const char *cipher)
* If hash_size is not NULL, the length of hash is stored in *hash_size
* (in bytes).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -255,7 +258,7 @@ hash_end:
}
/*
* Computes hash of file using the given hash algorithm.
* Compute hash of file using the given hash algorithm.
*
* The hash size depends on the algorithm, common ones are:
*
@@ -286,7 +289,7 @@ hash_end:
* If hash_size is not NULL, the length of hash is stored in *hash_size
* (in bytes).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -361,7 +364,7 @@ hash_end:
}
/*
* Computes PKCS#5 Passphrase Based Key Derivation Function number 2 (PBKDF2)
* Compute PKCS#5 Passphrase Based Key Derivation Function number 2 (PBKDF2)
* hash of data.
*
* The hash size depends on the algorithm, common ones are:
@@ -375,7 +378,7 @@ hash_end:
* If hash_size is not NULL, the length of hash is stored in *hash_size
* (in bytes).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -419,7 +422,7 @@ hash_pbkdf2_end:
}
/*
* Computes keyed-hash message authentication code (HMAC).
* Compute keyed-hash message authentication code (HMAC).
*
* The hash size depends on the algorithm, common ones are:
*
@@ -450,7 +453,7 @@ hash_pbkdf2_end:
* If hash_size is not NULL, the length of hash is stored in *hash_size
* (in bytes).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -514,10 +517,10 @@ hmac_end:
}
/*
* Generates a Time-based One-Time Password (TOTP), as described
* Generate a Time-based One-Time Password (TOTP), as described
* in the RFC 6238.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -556,10 +559,10 @@ weecrypto_totp_generate_internal (const char *secret, int length_secret,
}
/*
* Generates a Time-based One-Time Password (TOTP), as described
* Generate a Time-based One-Time Password (TOTP), as described
* in the RFC 6238.
*
* Returns the password as string, NULL if error.
* Return the password as string, NULL if error.
*
* Note: result must be freed after use.
*/
@@ -615,9 +618,9 @@ error:
}
/*
* Validates a Time-based One-Time Password (TOTP).
* Validate a Time-based One-Time Password (TOTP).
*
* Returns:
* Return:
* 1: OTP is OK
* 0: OTP is invalid
*/
@@ -657,15 +660,18 @@ weecrypto_totp_validate (const char *secret_base32, time_t totp_time,
otp_ok = 0;
/*
* Compare in constant time and never break early: a non-constant
* compare and an early exit on match would let an observer measure
* how many digits of the expected OTP they got right and which
* time-window offset matched.
*/
for (i = moving_factor - window; i <= moving_factor + window; i++)
{
rc = weecrypto_totp_generate_internal (secret, length_secret,
i, digits, str_otp);
if (rc && (strcmp (str_otp, otp) == 0))
{
if (rc && (string_memcmp_constant_time (str_otp, otp, digits) == 0))
otp_ok = 1;
break;
}
}
free (secret);
+15 -16
View File
@@ -91,7 +91,7 @@ long long debug_long_callbacks = 0; /* callbacks taking more than */
/*
* Displays build information on stdout.
* Display build information on stdout.
*/
void
@@ -149,7 +149,7 @@ debug_build_info (void)
}
/*
* Writes dump of data to WeeChat log file.
* Write dump of data to WeeChat log file.
*/
void
@@ -226,7 +226,7 @@ debug_dump_cb (const void *pointer, void *data,
/*
* Callback for system signal SIGSEGV handler.
*
* Writes dump of data and backtrace to WeeChat log file, then exit.
* Write dump of data and backtrace to WeeChat log file, then exit.
*/
void
@@ -271,7 +271,7 @@ debug_sigsegv_cb (int signo)
}
/*
* Displays tree of windows (this function must not be called directly).
* Display tree of windows (this function must not be called directly).
*/
void
@@ -341,7 +341,7 @@ debug_windows_tree_display (struct t_gui_window_tree *tree, int indent)
}
/*
* Displays tree of windows.
* Display tree of windows.
*/
void
@@ -353,7 +353,7 @@ debug_windows_tree (void)
}
/*
* Displays information about dynamic memory allocation.
* Display information about dynamic memory allocation.
*/
void
@@ -499,7 +499,7 @@ debug_hdata_map_cb (void *data,
}
/*
* Displays a list of hdata in memory.
* Display a list of hdata in memory.
*/
void
@@ -517,7 +517,7 @@ debug_hdata (void)
}
/*
* Displays info about hooks.
* Display info about hooks.
*/
void
@@ -538,7 +538,7 @@ debug_hooks (void)
}
/*
* Displays info about hooks for one or multiple plugins matching a mask.
* Display info about hooks for one or multiple plugins matching a mask.
*/
void
@@ -657,7 +657,7 @@ debug_hooks_plugin_types (const char *plugin_mask, const char **hook_types)
}
/*
* Displays a list of infolists in memory.
* Display a list of infolists in memory.
*/
void
@@ -748,7 +748,7 @@ debug_infolists (void)
}
/*
* Callback for signal "debug_libs": displays infos about external libraries
* Callback for signal "debug_libs": display infos about external libraries
* used (called when command "/debug libs" is issued).
*
* Note: this function displays libraries for WeeChat core only: plugins can
@@ -821,7 +821,7 @@ debug_libs_cb (const void *pointer, void *data,
}
/*
* Displays WeeChat directories.
* Display WeeChat directories.
*/
void
@@ -859,8 +859,7 @@ debug_directories (void)
/*
* Display time elapsed between two times.
*
* If display is 1, the message is displayed in core buffer, otherwise it's
* written in log file.
* If display is 1, display message in core buffer, otherwise write in log file.
*/
void
@@ -1032,7 +1031,7 @@ debug_unicode (const char *string)
}
/*
* Initializes debug.
* Initialize debug.
*/
void
@@ -1048,7 +1047,7 @@ debug_init (void)
}
/*
* Ends debug.
* End debug.
*/
void
+41 -103
View File
@@ -57,7 +57,7 @@
/*
* Returns the path to a temporary directory, the first valid directory in
* Return the path to a temporary directory, the first valid directory in
* this list:
* - content of environment variable "TMPDIR"
* - P_tmpdir (from stdio.h)
@@ -100,9 +100,9 @@ dir_get_temp_dir (void)
}
/*
* Creates a directory in WeeChat home.
* Create a directory in WeeChat home.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -175,9 +175,9 @@ end:
}
/*
* Creates a directory.
* Create a directory.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -198,9 +198,9 @@ dir_mkdir (const char *directory, int mode)
}
/*
* Creates a directory and makes parent directories as needed.
* Create a directory and make parent directories as needed.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -257,9 +257,9 @@ dir_mkdir_parents (const char *directory, int mode)
}
/*
* Unlinks a file or directory; callback called by function dir_rmtree().
* Unlink a file or directory; callback called by function dir_rmtree().
*
* Returns the return code of remove():
* Return the return code of remove():
* 0: OK
* -1: error
*/
@@ -277,9 +277,9 @@ dir_unlink_cb (const char *fpath, const struct stat *sb, int typeflag,
}
/*
* Removes a directory and all files inside recursively.
* Remove a directory and all files inside recursively.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -298,12 +298,12 @@ dir_rmtree (const char *directory)
}
/*
* Uses one or four different paths for WeeChat home directories.
* Use one or four different paths for WeeChat home directories.
*
* If 4 paths are given, they must be separated by colons and given in this
* order: config, data, cache, runtime.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -374,9 +374,9 @@ end:
}
/*
* Creates WeeChat temporary home directory (deleted on exit).
* Create WeeChat temporary home directory (deleted on exit).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -435,9 +435,9 @@ end:
}
/*
* Finds XDG directories.
* Find XDG directories.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -592,10 +592,10 @@ error:
}
/*
* Finds WeeChat home directories: it can be either XDG directories or the
* Find WeeChat home directories: it can be either XDG directories or the
* same directory for all files (like the legacy directory ~/.weechat).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -673,7 +673,7 @@ use_xdg:
}
/*
* Removes trailing separators in path, which is modified in place
* Remove trailing separators in path, which is modified in place
* (each trailing separator is replaced by NUL char).
*
* Example on Linux: "/home/xxx/" => "/home/xxx".
@@ -696,9 +696,9 @@ dir_remove_trailing_separators (char *path)
}
/*
* Creates a home directory.
* Create a home directory.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -733,7 +733,7 @@ dir_create_home_dir (char *path)
}
/*
* Creates WeeChat home directories.
* Create WeeChat home directories.
*
* Any error in this function (or a sub function called) is fatal: WeeChat
* cannot run at all without the home directories.
@@ -770,7 +770,7 @@ error:
}
/*
* Removes WeeChat home directories (called when -t / --temp-dir is given).
* Remove WeeChat home directories (called when -t / --temp-dir is given).
*/
void
@@ -788,7 +788,7 @@ dir_remove_home_dirs (void)
}
/*
* Returns a string with home directories separated by colons, in this order:
* Return a string with home directories separated by colons, in this order:
* config_dir, data_dir, state_dir, cache_dir, runtime_dir.
*
* Example of value returned:
@@ -815,7 +815,7 @@ dir_get_string_home_dirs (void)
}
/*
* Finds files in a directory and executes a function on each file.
* Find files in a directory and execute a function on each file.
*/
void
@@ -863,10 +863,10 @@ dir_exec_on_files (const char *directory, int recurse_subdirs,
}
/*
* Searches for the full name of a WeeChat library with name and extension
* Search for the full name of a WeeChat library with name and extension
* (searches first in WeeChat user's dir, then WeeChat global lib directory).
*
* Returns name of library found, NULL if not found.
* Return name of library found, NULL if not found.
*
* Note: result must be freed after use (if not NULL).
*/
@@ -933,7 +933,7 @@ dir_search_full_lib_name_ext (const char *filename, const char *extension,
}
/*
* Searches for the full name of a WeeChat library with name.
* Search for the full name of a WeeChat library with name.
*
* All extensions listed in option "weechat.plugin.extension" are tested.
*
@@ -986,9 +986,9 @@ dir_search_full_lib_name (const char *filename, const char *plugins_dir)
}
/*
* Reads content of a file.
* Read content of a file.
*
* Returns an allocated buffer with the content of file, NULL if error.
* Return an allocated buffer with the content of file, NULL if error.
*
* Note: result must be freed after use.
*/
@@ -1042,9 +1042,9 @@ error:
}
/*
* Copies a file to another location.
* Copy a file to another location.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1097,13 +1097,13 @@ end:
}
/*
* Compresses a file with gzip.
* Compress a file with gzip.
*
* Notes:
* - the output file must not exist
* - compression_level is an integer between 1 and 9
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1203,13 +1203,13 @@ end:
}
/*
* Compresses a file with zstandard.
* Compress a file with zstandard.
*
* Notes:
* - the output file must not exist
* - compression_level is an integer between 1 and 19
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1223,14 +1223,9 @@ dir_file_compress_zstd (const char *from, const char *to,
void *buffer_in, *buffer_out;
size_t buffer_in_size, buffer_out_size, num_read, remaining;
int rc;
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
ZSTD_CCtx *cctx = NULL;
ZSTD_EndDirective mode;
int finished, last_chunk;
#else /* zstd < 1.4.0 */
ZSTD_CStream *cstream = NULL;
size_t result, to_read;
#endif
ZSTD_inBuffer input;
ZSTD_outBuffer output;
@@ -1259,7 +1254,6 @@ dir_file_compress_zstd (const char *from, const char *to,
if (!dest)
goto end;
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
cctx = ZSTD_createCCtx ();
if (!cctx)
goto error;
@@ -1296,77 +1290,21 @@ dir_file_compress_zstd (const char *from, const char *to,
if (last_chunk)
break;
}
#else /* zstd < 1.4.0 */
cstream = ZSTD_createCStream ();
if (!cstream)
goto error;
result = ZSTD_initCStream (cstream, compression_level);
if (ZSTD_isError (result))
goto error;
to_read = buffer_in_size;
while ((num_read = fread (buffer_in, 1, buffer_in_size, source)))
{
input.src = buffer_in;
input.size = num_read;
input.pos = 0;
while (input.pos < input.size)
{
output.dst = buffer_out;
output.size = buffer_out_size;
output.pos = 0;
to_read = ZSTD_compressStream (cstream, &output , &input);
if (ZSTD_isError (to_read))
goto error;
if (to_read > buffer_in_size)
to_read = buffer_in_size;
if ((fwrite (buffer_out, 1, output.pos, dest) != output.pos)
|| ferror (dest))
{
goto error;
}
}
}
output.dst = buffer_out;
output.size = buffer_out_size;
output.pos = 0;
remaining = ZSTD_endStream (cstream, &output);
if (remaining)
goto error;
if ((fwrite (buffer_out, 1, output.pos, dest) != output.pos)
|| ferror (dest))
{
goto error;
}
#endif
rc = 1;
goto end;
error:
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
if (cctx)
{
ZSTD_freeCCtx (cctx);
cctx = NULL;
}
#else /* zstd < 1.4.0 */
if (cstream)
{
ZSTD_freeCStream (cstream);
cstream = NULL;
}
#endif
unlink (to);
end:
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
if (cctx)
ZSTD_freeCCtx (cctx);
#else /* zstd < 1.4.0 */
if (cstream)
ZSTD_freeCStream (cstream);
#endif
free (buffer_in);
free (buffer_out);
@@ -1387,7 +1325,7 @@ end:
}
/*
* Compresses a file with gzip or zstandard.
* Compress a file with gzip or zstandard.
*
* The output file must not exist.
*
@@ -1398,7 +1336,7 @@ end:
* Parameter "compression_level" is the compression level as percentage:
* from 1 (fast, low compression) to 100 (slow, best compression).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1433,14 +1371,14 @@ dir_file_compress (const char *filename_input,
}
/*
* Compares the content of two files (the attributes of the files like the
* Compare the content of two files (the attributes of the files like the
* permissions or timestamp are ignored).
*
* Comparison is done like this:
* 1. if sizes are different, return 1 (different content)
* 2. if sizes are the same, read both files until a difference is found
*
* Returns:
* Return:
* 0: both files exist and their content is exactly the same
* 1: content is different
* 2: other error (file not found, read error)
+52 -52
View File
@@ -61,7 +61,7 @@ char *string_escaped[32];
/*
* Escapes a string to display in a table: replace "|" by "\|".
* Escape a string to display in a table: replace "|" by "\|".
*/
char *
@@ -74,7 +74,7 @@ doc_gen_escape_table (const char *message)
}
/*
* Escapes a string to be used as anchor link: replace ",", "@" and "*" by "-".
* Escape a string to be used as anchor link: replace ",", "@" and "*" by "-".
*/
char *
@@ -94,13 +94,13 @@ doc_gen_escape_anchor_link (const char *message)
}
/*
* Opens a file for write using:
* Open a file for write using:
* - path
* - doc: "api" or "user"
* - name
* - language (eg: "fr")
*
* Returns the file opened, NULL if error.
* Return the file opened, NULL if error.
*/
FILE *
@@ -135,13 +135,13 @@ doc_gen_open_file (const char *path, const char *doc, const char *name,
}
/*
* Closes the file and renames it without ".temp" suffix, if the target name
* Close the file and rename it without ".temp" suffix, if the target name
* does not exist or if it exists with a different (obsolete) content.
*
* If the target name exists with same content it's kept as-is (so the
* timestamp does not change) and the temporary file is just deleted.
* If the target name exists with same content, keep it as-is (so the
* timestamp does not change) and just delete the temporary file.
*
* Returns:
* Return:
* 1: target file has been updated
* 0: target file unchanged
* -1: error
@@ -183,7 +183,7 @@ doc_gen_close_file (const char *path, const char *doc, const char *name,
}
/*
* Checks if a command must be documented or not: all commands are documented
* Check if a command must be documented or not: all commands are documented
* except the default aliases (that create commands).
*/
@@ -195,7 +195,7 @@ doc_gen_check_command (const char *plugin, const char *command)
}
/*
* Compares two hooks "command" to sort by plugin / command.
* Compare two hooks "command" to sort by plugin / command.
*/
int
@@ -221,9 +221,9 @@ doc_gen_hook_command_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with commands.
* Generate files with commands.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -366,7 +366,7 @@ doc_gen_user_commands (const char *path, const char *lang)
}
/*
* Checks if an option must be documented or not.
* Check if an option must be documented or not.
*/
int
@@ -395,7 +395,7 @@ doc_gen_check_option (struct t_config_option *option)
}
/*
* Compares two options to sort by plugin / command.
* Compare two options to sort by plugin / command.
*/
int
@@ -425,9 +425,9 @@ doc_gen_option_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with commands.
* Generate files with commands.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -588,9 +588,9 @@ doc_gen_user_options (const char *path, const char *lang)
}
/*
* Generates files with default aliases.
* Generate files with default aliases.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -638,9 +638,9 @@ doc_gen_user_default_aliases (const char *path, const char *lang)
}
/*
* Generates files with IRC colors.
* Generate files with IRC colors.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -684,7 +684,7 @@ doc_gen_user_irc_colors (const char *path, const char *lang)
}
/*
* Compares two hooks "info" to sort by plugin / info.
* Compare two hooks "info" to sort by plugin / info.
*/
int
@@ -710,9 +710,9 @@ doc_gen_hook_info_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with infos.
* Generate files with infos.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -773,7 +773,7 @@ doc_gen_api_infos (const char *path, const char *lang)
}
/*
* Compares two hooks "info_hashtable" to sort by plugin / info.
* Compare two hooks "info_hashtable" to sort by plugin / info.
*/
int
@@ -799,9 +799,9 @@ doc_gen_hook_info_hashtable_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with infos_hashtable.
* Generate files with infos_hashtable.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -864,7 +864,7 @@ doc_gen_api_infos_hashtable (const char *path, const char *lang)
}
/*
* Compares two hooks "infolist" to sort by plugin / infolist.
* Compare two hooks "infolist" to sort by plugin / infolist.
*/
int
@@ -890,9 +890,9 @@ doc_gen_hook_infolist_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with infolists.
* Generate files with infolists.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -955,7 +955,7 @@ doc_gen_api_infolists (const char *path, const char *lang)
}
/*
* Compares two hooks "hdata" to sort by plugin / hdata.
* Compare two hooks "hdata" to sort by plugin / hdata.
*/
int
@@ -981,7 +981,7 @@ doc_gen_hook_hdata_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Compares two hooks lists to sort by name (and lists beginning with "last_"
* Compare two hooks lists to sort by name (and lists beginning with "last_"
* at the end).
*/
@@ -1009,7 +1009,7 @@ doc_gen_hdata_list_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Compares two hooks hdata keys to sort by offset.
* Compare two hooks hdata keys to sort by offset.
*/
int
@@ -1030,7 +1030,7 @@ doc_gen_hdata_key_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates content of a hdata.
* Generate content of a hdata.
*/
void
@@ -1172,9 +1172,9 @@ doc_gen_api_hdata_content (FILE *file, struct t_hdata *hdata)
}
/*
* Generates files with hdata.
* Generate files with hdata.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1250,7 +1250,7 @@ doc_gen_api_hdata (const char *path, const char *lang)
}
/*
* Compares two hooks "completion" to sort by plugin / completion.
* Compare two hooks "completion" to sort by plugin / completion.
*/
int
@@ -1276,9 +1276,9 @@ doc_gen_hook_completion_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with completions.
* Generate files with completions.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1337,9 +1337,9 @@ doc_gen_api_completions (const char *path, const char *lang)
}
/*
* Generates files with URL options.
* Generate files with URL options.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1397,7 +1397,7 @@ doc_gen_api_url_options (const char *path, const char *lang)
}
/*
* Compares two plugins to sort by priority (descending).
* Compare two plugins to sort by priority (descending).
*/
int
@@ -1421,9 +1421,9 @@ doc_gen_plugin_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with plugins priority.
* Generate files with plugins priority.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1483,7 +1483,7 @@ doc_gen_api_plugins_priority (const char *path, const char *lang)
}
/*
* Compares two configurations to sort by priority (descending).
* Compare two configurations to sort by priority (descending).
*/
int
@@ -1507,9 +1507,9 @@ doc_gen_config_cmp_cb (void *data, struct t_arraylist *arraylist,
}
/*
* Generates files with config priority.
* Generate files with config priority.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1569,9 +1569,9 @@ doc_gen_api_config_priority (const char *path, const char *lang)
}
/*
* Generates files with scripting API functions.
* Generate files with scripting API functions.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1602,9 +1602,9 @@ doc_gen_scripting_functions (const char *path, const char *lang)
}
/*
* Generates files with scripting API constants.
* Generate files with scripting API constants.
*
* Returns:
* Return:
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
@@ -1664,9 +1664,9 @@ doc_gen_scripting_constants (const char *path, const char *lang)
}
/*
* Generates WeeChat files used to build documentation.
* Generate WeeChat files used to build documentation.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
+93 -104
View File
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <errno.h>
#include <regex.h>
#include <time.h>
#include <sys/time.h>
@@ -96,7 +97,7 @@ char *eval_expression_condition (const char *expr,
/*
* Adds a debug message in the debug output.
* Add a debug message in the debug output.
*/
void
@@ -142,7 +143,7 @@ eval_debug_message (struct t_eval_context *eval_context, int debug_id,
/*
* Adds a debug message in the debug output, with variable arguments.
* Add a debug message in the debug output, with variable arguments.
*/
void
@@ -159,10 +160,10 @@ eval_debug_message_vargs (struct t_eval_context *eval_context, int debug_id,
}
/*
* Checks if a value is true: a value is true if string is non-NULL, non-empty
* Check if a value is true: a value is true if string is non-NULL, non-empty
* and different from "0".
*
* Returns:
* Return:
* 1: value is true
* 0: value is false
*/
@@ -174,7 +175,7 @@ eval_is_true (const char *value)
}
/*
* Searches a string in another at same level (skip sub-expressions between
* Search a string in another at same level (skip sub-expressions between
* prefix/suffix).
*
* If escape is 1, the prefix can be escaped with '\' (and then is ignored).
@@ -184,7 +185,7 @@ eval_is_true (const char *value)
* will return a pointer on "|| z" (because the first "||" is
* in a sub-expression, which is skipped).
*
* Returns pointer to string found, or NULL if not found.
* Return pointer to string found, or NULL if not found.
*/
const char *
@@ -267,7 +268,7 @@ end:
}
/*
* Evaluates a condition and returns boolean result:
* Evaluate a condition and return boolean result:
* "0" if false
* "1" if true
*
@@ -287,7 +288,7 @@ eval_string_eval_cond (const char *text, struct t_eval_context *eval_context)
}
/*
* Adds range of chars.
* Add range of chars.
*
* Note: result must be freed after use.
*/
@@ -314,8 +315,6 @@ eval_string_range_chars (const char *range)
char1 = utf8_char_int (range);
/* next char must be '-' */
if (!range[0])
goto end;
ptr_char = utf8_next_char (range);
if (!ptr_char || !ptr_char[0] || (ptr_char[0] != '-'))
goto end;
@@ -350,7 +349,7 @@ end:
}
/*
* Hides chars in a string.
* Hide chars in a string.
*
* Note: result must be freed after use.
*/
@@ -391,7 +390,7 @@ eval_string_hide (const char *text)
}
/*
* Cuts string.
* Cut string.
*
* Note: result must be freed after use.
*/
@@ -400,9 +399,8 @@ char *
eval_string_cut (const char *text, int screen)
{
const char *pos, *pos2;
char *tmp, *error, *value;
int count_suffix;
long number;
char *tmp, *value;
int count_suffix, number;
count_suffix = 0;
if (text[0] == '+')
@@ -423,9 +421,7 @@ eval_string_cut (const char *text, int screen)
if (!tmp)
return strdup ("");
error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
if (!util_parse_int (tmp, 10, &number) || (number < 0))
{
free (tmp);
return strdup ("");
@@ -444,7 +440,7 @@ eval_string_cut (const char *text, int screen)
}
/*
* Repeats string.
* Repeat string.
*
* Note: result must be freed after use.
*/
@@ -453,8 +449,8 @@ char *
eval_string_repeat (const char *text)
{
const char *pos;
char *tmp, *error;
long number;
char *tmp;
int number;
pos = strchr (text, ',');
if (!pos)
@@ -464,9 +460,7 @@ eval_string_repeat (const char *text)
if (!tmp)
return strdup ("");
error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
if (!util_parse_int (tmp, 10, &number) || (number < 0))
{
free (tmp);
return strdup ("");
@@ -477,12 +471,12 @@ eval_string_repeat (const char *text)
}
/*
* Splits string.
* Split string.
*
* Format: number,separators,flags,string
*
* If number == "count", returns the number of items after split.
* If number == "random", returns a random item.
* If number == "count", return the number of items after split.
* If number == "random", return a random item.
* If number > 0, return this index (empty string if not enough items).
* If number < 0, return this index starting from the end (-1 = last item,
* -2 = penultimate item, etc.).
@@ -514,10 +508,11 @@ eval_string_repeat (const char *text)
char *
eval_string_split (const char *text)
{
char *pos, *pos2, *pos3, *str_number, *separators, **items, *value, *error;
const char *pos, *pos2, *pos3;
char *str_number, *separators, **items, *value;
char str_value[32], *str_flags, **list_flags, *strip_items, **ptr_flag;
int num_items, count_items, random_item, flags;
long number, max_items;
int num_items, count_items, random_item, flags, max_items;
long number;
str_number = NULL;
separators = NULL;
@@ -550,9 +545,7 @@ eval_string_split (const char *text)
}
else
{
error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
if (!util_parse_long (str_number, 10, &number) || (number == 0))
goto end;
}
@@ -590,9 +583,8 @@ eval_string_split (const char *text)
}
else if (strncmp (*ptr_flag, "max_items=", 10) == 0)
{
error = NULL;
max_items = strtol (*ptr_flag + 10, &error, 10);
if (!error || error[0] || (max_items < 0))
if (!util_parse_int (*ptr_flag + 10, 10, &max_items)
|| (max_items < 0))
goto end;
}
}
@@ -642,12 +634,12 @@ end:
}
/*
* Splits shell arguments.
* Split shell arguments.
*
* Format: number,string
*
* If number == "count", returns the number of arguments.
* If number == "random", returns a random argument.
* If number == "count", return the number of arguments.
* If number == "random", return a random argument.
* If number > 0, return this index (empty string if not enough arguments).
* If number < 0, return this index starting from the end (-1 = last argument,
* -2 = penultimate argument, etc.).
@@ -664,7 +656,8 @@ end:
char *
eval_string_split_shell (const char *text)
{
char *pos, *str_number, **items, *value, *error, str_value[32];
const char *pos;
char *str_number, **items, *value, str_value[32];
int num_items, count_items, random_item;
long number;
@@ -693,9 +686,7 @@ eval_string_split_shell (const char *text)
}
else
{
error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
if (!util_parse_long (str_number, 10, &number) || (number == 0))
goto end;
}
@@ -738,7 +729,7 @@ end:
}
/*
* Returns a regex group captured.
* Return a regex group captured.
*
* Note: result must be freed after use.
*/
@@ -746,11 +737,11 @@ end:
char *
eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
{
char str_value[64], *error;
char str_value[64];
long number;
if (!eval_context->regex || !eval_context->regex->result)
return strdup ("");
goto end;
if (strcmp (text, "#") == 0)
{
@@ -772,10 +763,8 @@ eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
}
else
{
error = NULL;
number = strtol (text, &error, 10);
if (!error || error[0])
number = -1;
if (!util_parse_long (text, 10, &number))
goto end;
}
if ((number >= 0) && (number <= eval_context->regex->last_match))
{
@@ -786,11 +775,12 @@ eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
eval_context->regex->match[number].rm_so);
}
end:
return strdup ("");
}
/*
* Returns a string with color code.
* Return a string with color code.
*
* Note: result must be freed after use.
*/
@@ -809,7 +799,7 @@ eval_string_color (const char *text)
}
/*
* Returns a string modified by a modifier.
* Return a string modified by a modifier.
*
* Note: result must be freed after use.
*/
@@ -844,7 +834,7 @@ eval_string_modifier (const char *text)
}
/*
* Returns an info.
* Return an info.
*
* Note: result must be freed after use.
*/
@@ -878,7 +868,7 @@ eval_string_info (const char *text)
}
/*
* Encodes a string in base 16, 32, or 64.
* Encode a string in base 16, 32, or 64.
*
* Note: result must be freed after use.
*/
@@ -921,7 +911,7 @@ end:
}
/*
* Decodes a string encoded in base 16, 32, or 64.
* Decode a string encoded in base 16, 32, or 64.
*
* Note: result must be freed after use.
*/
@@ -962,7 +952,7 @@ end:
}
/*
* Returns a date.
* Return a date.
*
* Note: result must be freed after use.
*/
@@ -982,7 +972,7 @@ eval_string_date (const char *text)
}
/*
* Evaluates a condition and returns evaluated if/else clause.
* Evaluate a condition and return evaluated if/else clause.
*
* Note: result must be freed after use.
*/
@@ -1050,7 +1040,7 @@ eval_string_if (const char *text, struct t_eval_context *eval_context)
}
/*
* Returns a random integer number.
* Return a random integer number.
*
* Note: result must be freed after use.
*/
@@ -1058,7 +1048,8 @@ eval_string_if (const char *text, struct t_eval_context *eval_context)
char *
eval_string_random (const char *text)
{
char *pos, *error, *tmp, result[128];
const char *pos;
char *tmp, result[128];
long long min_number, max_number;
if (!text || !text[0])
@@ -1071,18 +1062,14 @@ eval_string_random (const char *text)
tmp = string_strndup (text, pos - text);
if (!tmp)
goto error;
error = NULL;
min_number = strtoll (tmp, &error, 10);
if (!error || error[0])
if (!util_parse_longlong (tmp, 10, &min_number))
{
free (tmp);
goto error;
}
free (tmp);
error = NULL;
max_number = strtoll (pos + 1, &error, 10);
if (!error || error[0])
if (!util_parse_longlong (pos + 1, 10, &max_number))
goto error;
if (min_number > max_number)
@@ -1103,7 +1090,7 @@ error:
}
/*
* Translates text.
* Translate text.
*
* Note: result must be freed after use.
*/
@@ -1122,13 +1109,14 @@ eval_string_translate (const char *text)
}
/*
* Defines a variable.
* Define a variable.
*/
void
eval_string_define (const char *text, struct t_eval_context *eval_context)
{
char *pos, *name;
const char *pos;
char *name;
pos = strchr (text, ',');
if (!pos)
@@ -1144,7 +1132,7 @@ eval_string_define (const char *text, struct t_eval_context *eval_context)
}
/*
* Returns count of items in a hdata, as a string.
* Return count of items in a hdata, as a string.
*
* Note: result must be freed after use.
*/
@@ -1155,7 +1143,8 @@ eval_hdata_count (const char *text, struct t_eval_context *eval_context)
struct t_hdata *hdata;
unsigned long ptr_value;
void *pointer;
char *pos1, *pos2, *value, *hdata_name, *pointer_name, str_count[64];
const char *pos1, *pos2;
char *value, *hdata_name, *pointer_name, str_count[64];
int rc, count;
value = NULL;
@@ -1218,7 +1207,7 @@ end:
}
/*
* Gets value of hdata using "path" to a variable.
* Get value of hdata using "path" to a variable.
*
* Note: result must be freed after use.
*/
@@ -1227,8 +1216,8 @@ char *
eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
struct t_eval_context *eval_context)
{
char *value, *var_name, str_value[128], *pos, *property;
const char *ptr_value, *hdata_name, *ptr_var_name, *pos_open_paren;
char *value, *var_name, str_value[128], *property;
const char *ptr_value, *hdata_name, *ptr_var_name, *pos, *pos_open_paren;
int type, debug_id;
struct t_hashtable *hashtable;
@@ -1411,7 +1400,7 @@ end:
}
/*
* Returns a string using hdata.
* Return a string using hdata.
*
* Note: result must be freed after use.
*/
@@ -1519,7 +1508,7 @@ end:
}
/*
* Returns text with syntax highlighting (using markers, to be replaced by
* Return text with syntax highlighting (using markers, to be replaced by
* colors later).
*
* Note: result must be freed after use.
@@ -1546,7 +1535,7 @@ eval_syntax_highlight_add_markers (const char *prefix, const char *text,
}
/*
* Replaces raw highlight markers with color codes defined in option
* Replace raw highlight markers with color codes defined in option
* weechat.color.eval_syntax_colors.
*
* Note: result must be freed after use.
@@ -1555,8 +1544,8 @@ eval_syntax_highlight_add_markers (const char *prefix, const char *text,
char *
eval_syntax_highlight_colorize (const char *value)
{
const char *ptr_value;
char **result, *pos;
const char *ptr_value, *pos;
char **result;
int color;
if (!value)
@@ -1603,7 +1592,7 @@ eval_syntax_highlight_colorize (const char *value)
}
/*
* Adds syntax highlighting in text.
* Add syntax highlighting in text.
*
* Note: result must be freed after use.
*/
@@ -1625,7 +1614,7 @@ eval_syntax_highlight (const char *text, struct t_eval_context *eval_context)
}
/*
* Replaces variables, which can be, by order of priority:
* Replace variables, which can be, by order of priority:
* - ${raw_hl:string}: the string itself without evaluation but with syntax highlighting
* - ${raw:string}: the string itself without evaluation
* - ${hl:string}: the string with syntax highlighting
@@ -2088,7 +2077,7 @@ end:
}
/*
* Replaces variables in a string.
* Replace variables in a string.
*
* Note: result must be freed after use.
*/
@@ -2131,15 +2120,15 @@ eval_replace_vars (const char *expr, struct t_eval_context *eval_context)
}
/*
* Compares two expressions.
* Compare two expressions.
*
* Returns:
* Return:
* "1": comparison is true
* "0": comparison is false
*
* Examples:
* "15 > 2": returns "1"
* "abc == def": returns "0"
* "15 > 2": return "1"
* "abc == def": return "0"
*
* Note: result must be freed after use.
*/
@@ -2224,17 +2213,20 @@ eval_compare (const char *expr1, int comparison, const char *expr2,
if (!string_compare)
{
errno = 0;
error = NULL;
value1 = strtod (expr1, &error);
if (!error || error[0])
{
if (!error || error[0] || (errno == ERANGE))
string_compare = 1;
}
if (!string_compare)
{
errno = 0;
error = NULL;
value2 = strtod (expr2, &error);
if (!error || error[0] || (errno == ERANGE))
string_compare = 1;
}
else
{
value2 = strtod (expr2, &error);
if (!error || error[0])
string_compare = 1;
}
}
if (string_compare)
@@ -2275,7 +2267,7 @@ end:
}
/*
* Evaluates a condition (this function must not be called directly).
* Evaluate a condition (this function must not be called directly).
*
* For return value, see function eval_expression().
*
@@ -2498,7 +2490,7 @@ end:
}
/*
* Replaces text in a string using a regular expression and replacement text.
* Replace text in a string using a regular expression and replacement text.
*
* The argument "regex" is a pointer to a regex compiled with WeeChat function
* string_regcomp (or function regcomp).
@@ -2637,7 +2629,7 @@ end:
}
/*
* Evaluates an expression.
* Evaluate an expression.
*
* The hashtable "pointers" must have string for keys, pointer for values.
* The hashtable "extra_vars" must have string for keys and values.
@@ -2683,10 +2675,9 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
{
struct t_eval_context context, *eval_context;
struct t_hashtable *user_vars;
int condition, rc, pointers_allocated, regex_allocated, debug_id;
int condition, rc, pointers_allocated, regex_allocated, debug_id, debug_level;
int ptr_window_added, ptr_buffer_added;
long number;
char *value, *error;
char *value;
const char *default_prefix = EVAL_DEFAULT_PREFIX;
const char *default_suffix = EVAL_DEFAULT_SUFFIX;
const char *ptr_value, *regex_replace;
@@ -2826,11 +2817,9 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
ptr_value = hashtable_get (options, "debug");
if (ptr_value && ptr_value[0])
{
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0] && (number >= 1))
if (util_parse_int (ptr_value, 10, &debug_level) && (debug_level >= 1))
{
eval_context->debug_level = (int)number;
eval_context->debug_level = debug_level;
eval_context->debug_output = string_dyn_alloc (256);
}
}
+53 -53
View File
@@ -50,9 +50,9 @@ char *hashtable_type_string[HASHTABLE_NUM_TYPES] =
/*
* Searches for a hashtable type.
* Search for a hashtable type.
*
* Returns index of type in enum t_hashtable_type, -1 if type is not found.
* Return index of type in enum t_hashtable_type, -1 if type is not found.
*/
int
@@ -74,9 +74,9 @@ hashtable_get_type (const char *type)
}
/*
* Hashes a string using a variant of djb2 hash.
* Hash a string using a variant of djb2 hash.
*
* Returns the hash of the string.
* Return the hash of the string.
*/
unsigned long long
@@ -98,9 +98,9 @@ hashtable_hash_key_djb2 (const char *string)
}
/*
* Hashes a key (default callback).
* Hash a key (default callback).
*
* Returns the hash of the key, depending on the type.
* Return the hash of the key, depending on the type.
*/
unsigned long long
@@ -135,9 +135,9 @@ hashtable_hash_key_default_cb (struct t_hashtable *hashtable, const void *key)
}
/*
* Compares two keys (default callback).
* Compare two keys (default callback).
*
* Returns:
* Return:
* < 0: key1 < key2
* 0: key1 == key2
* > 0: key1 > key2
@@ -200,14 +200,14 @@ hashtable_keycmp_default_cb (struct t_hashtable *hashtable,
}
/*
* Creates a new hashtable.
* Create a new hashtable.
*
* The size is NOT a limit for number of items in hashtable. It is the size of
* internal array to store hashed keys: a high value uses more memory, but has
* better performance because this reduces the collisions of hashed keys and
* then reduces length of linked lists.
* then reduce length of linked lists.
*
* Returns pointer to new hashtable, NULL if error.
* Return pointer to new hashtable, NULL if error.
*/
struct t_hashtable *
@@ -266,7 +266,7 @@ hashtable_new (int size,
}
/*
* Allocates space for a key or value.
* Allocate space for a key or value.
*/
void
@@ -334,7 +334,7 @@ hashtable_alloc_type (enum t_hashtable_type type,
}
/*
* Frees space used by a key.
* Free space used by a key.
*/
void
@@ -366,7 +366,7 @@ hashtable_free_key (struct t_hashtable *hashtable,
}
/*
* Frees space used by a value.
* Free space used by a value.
*/
void
@@ -399,11 +399,11 @@ hashtable_free_value (struct t_hashtable *hashtable,
}
/*
* Sets value for a key in hashtable.
* Set value for a key in hashtable.
*
* The size arguments are used only for type "buffer".
*
* Returns pointer to item created/updated, NULL if error.
* Return pointer to item created/updated, NULL if error.
*/
struct t_hashtable_item *
@@ -490,12 +490,12 @@ hashtable_set_with_size (struct t_hashtable *hashtable,
}
/*
* Sets value for a key in hashtable.
* Set value for a key in hashtable.
*
* Note: this function can be called *only* if key AND value are *not* of type
* "buffer".
*
* Returns pointer to item created/updated, NULL if error.
* Return pointer to item created/updated, NULL if error.
*/
struct t_hashtable_item *
@@ -506,9 +506,9 @@ hashtable_set (struct t_hashtable *hashtable,
}
/*
* Searches for an item in hashtable.
* Search for an item in hashtable.
*
* If hash is non NULL, then it is set with hash value of key (even if key is
* If hash is non NULL, then set it with hash value of key (even if key is
* not found).
*/
@@ -541,9 +541,9 @@ hashtable_get_item (struct t_hashtable *hashtable, const void *key,
}
/*
* Gets value for a key in hashtable.
* Get value for a key in hashtable.
*
* Returns pointer to value for key, NULL if key is not found.
* Return pointer to value for key, NULL if key is not found.
*/
void *
@@ -557,9 +557,9 @@ hashtable_get (struct t_hashtable *hashtable, const void *key)
}
/*
* Checks if a key exists in the hashtable.
* Check if a key exists in the hashtable.
*
* Returns:
* Return:
* 1: key exists
* 0: key does not exist
*/
@@ -571,9 +571,9 @@ hashtable_has_key (struct t_hashtable *hashtable, const void *key)
}
/*
* Converts a value (from any type) to a string.
* Convert a value (from any type) to a string.
*
* Returns pointer to a static buffer (for type string, returns pointer to
* Return pointer to a static buffer (for type string, return pointer to
* string itself), which must be used immediately, it is overwritten by
* subsequent calls to this function.
*/
@@ -611,7 +611,7 @@ hashtable_to_string (enum t_hashtable_type type, const void *value)
}
/*
* Calls a function on all hashtable entries.
* Call a function on all hashtable entries.
*/
void
@@ -639,7 +639,7 @@ hashtable_map (struct t_hashtable *hashtable,
}
/*
* Calls a function on all hashtable entries (sends keys and values as strings).
* Call a function on all hashtable entries (sends keys and values as strings).
*/
void
@@ -680,7 +680,7 @@ hashtable_map_string (struct t_hashtable *hashtable,
}
/*
* Duplicates key/value in another hashtable (callback called for each variable
* Duplicate key/value in another hashtable (callback called for each variable
* in hashtable).
*/
@@ -700,9 +700,9 @@ hashtable_duplicate_map_cb (void *data,
}
/*
* Duplicates a hashtable.
* Duplicate a hashtable.
*
* Returns pointer to new hashtable, NULL if error.
* Return pointer to new hashtable, NULL if error.
*/
struct t_hashtable *
@@ -731,7 +731,7 @@ hashtable_dup (struct t_hashtable *hashtable)
}
/*
* Builds sorted list of keys (callback called for each variable in hashtable).
* Build sorted list of keys (callback called for each variable in hashtable).
*/
void
@@ -752,7 +752,7 @@ hashtable_get_list_keys_map_cb (void *data,
}
/*
* Gets list with sorted keys of hashtable.
* Get list with sorted keys of hashtable.
*
* Note: list must be freed after use.
*/
@@ -772,7 +772,7 @@ hashtable_get_list_keys (struct t_hashtable *hashtable)
}
/*
* Gets a hashtable property as integer.
* Get a hashtable property as integer.
*/
int
@@ -790,7 +790,7 @@ hashtable_get_integer (struct t_hashtable *hashtable, const char *property)
}
/*
* Computes length of all keys (callback called for each variable in hashtable).
* Compute length of all keys (callback called for each variable in hashtable).
*/
void
@@ -812,7 +812,7 @@ hashtable_compute_length_keys_cb (void *data,
}
/*
* Computes length of all values (callback called for each variable in
* Compute length of all values (callback called for each variable in
* hashtable).
*/
@@ -842,7 +842,7 @@ hashtable_compute_length_values_cb (void *data,
}
/*
* Computes length of all keys + values (callback called for each variable in
* Compute length of all keys + values (callback called for each variable in
* hashtable).
*/
@@ -856,7 +856,7 @@ hashtable_compute_length_keys_values_cb (void *data,
}
/*
* Builds a string with all keys (callback called for each variable in
* Build a string with all keys (callback called for each variable in
* hashtable).
*/
@@ -882,7 +882,7 @@ hashtable_build_string_keys_cb (void *data,
}
/*
* Builds a string with all values (callback called for each variable in
* Build a string with all values (callback called for each variable in
* hashtable).
*/
@@ -915,7 +915,7 @@ hashtable_build_string_values_cb (void *data,
}
/*
* Builds a string with all keys + values (callback called for each variable in
* Build a string with all keys + values (callback called for each variable in
* hashtable).
*/
@@ -951,9 +951,9 @@ hashtable_build_string_keys_values_cb (void *data,
}
/*
* Gets keys and/or values of hashtable as string.
* Get keys and/or values of hashtable as string.
*
* Returns a string with one of these formats:
* Return a string with one of these formats:
* if keys == 1 and values == 0: "key1,key2,key3"
* if keys == 0 and values == 1: "value1,value2,value3"
* if keys == 1 and values == 1: "key1:value1,key2:value2,key3:value3"
@@ -1028,7 +1028,7 @@ hashtable_get_keys_values (struct t_hashtable *hashtable,
}
/*
* Gets a hashtable property as string.
* Get a hashtable property as string.
*/
const char *
@@ -1056,7 +1056,7 @@ hashtable_get_string (struct t_hashtable *hashtable, const char *property)
}
/*
* Sets a hashtable property (pointer).
* Set a hashtable property (pointer).
*/
void
@@ -1073,9 +1073,9 @@ hashtable_set_pointer (struct t_hashtable *hashtable, const char *property,
}
/*
* Adds hashtable keys and values in an infolist.
* Add hashtable keys and values in an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1148,9 +1148,9 @@ hashtable_add_to_infolist (struct t_hashtable *hashtable,
}
/*
* Adds hashtable keys and values from an infolist.
* Add hashtable keys and values from an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1238,7 +1238,7 @@ hashtable_add_from_infolist (struct t_hashtable *hashtable,
}
/*
* Removes an item from hashtable.
* Remove an item from hashtable.
*/
void
@@ -1277,7 +1277,7 @@ hashtable_remove_item (struct t_hashtable *hashtable,
}
/*
* Removes an item from hashtable (searches it with key).
* Remove an item from hashtable (searches it with key).
*/
void
@@ -1295,7 +1295,7 @@ hashtable_remove (struct t_hashtable *hashtable, const void *key)
}
/*
* Removes all items from hashtable.
* Remove all items from hashtable.
*/
void
@@ -1316,7 +1316,7 @@ hashtable_remove_all (struct t_hashtable *hashtable)
}
/*
* Frees a hashtable: removes all items and frees hashtable.
* Free a hashtable: removes all items and frees hashtable.
*/
void
@@ -1332,7 +1332,7 @@ hashtable_free (struct t_hashtable *hashtable)
}
/*
* Prints hashtable in WeeChat log file (usually for crash dump).
* Print hashtable in WeeChat log file (usually for crash dump).
*/
void
+74 -86
View File
@@ -35,6 +35,7 @@
#include "core-hashtable.h"
#include "core-log.h"
#include "core-string.h"
#include "core-util.h"
#include "../plugins/plugin.h"
@@ -46,7 +47,7 @@ char *hdata_type_string[WEECHAT_NUM_HDATA_TYPES] =
/*
* Frees a hdata variable.
* Free a hdata variable.
*/
void
@@ -68,7 +69,7 @@ hdata_free_var_cb (struct t_hashtable *hashtable, const void *key, void *value)
}
/*
* Frees a hdata list.
* Free a hdata list.
*/
void
@@ -82,9 +83,9 @@ hdata_free_list_cb (struct t_hashtable *hashtable, const void *key, void *value)
}
/*
* Creates a new hdata.
* Create a new hdata.
*
* Returns pointer to new hdata, NULL if error.
* Return pointer to new hdata, NULL if error.
*/
struct t_hdata *
@@ -133,7 +134,7 @@ hdata_new (struct t_weechat_plugin *plugin, const char *hdata_name,
}
/*
* Adds a new variable in a hdata.
* Add a new variable in a hdata.
*/
void
@@ -172,7 +173,7 @@ hdata_new_var (struct t_hdata *hdata, const char *name, int offset, int type,
}
/*
* Adds a new list pointer in a hdata.
* Add a new list pointer in a hdata.
*/
void
@@ -194,7 +195,7 @@ hdata_new_list (struct t_hdata *hdata, const char *name, void *pointer,
}
/*
* Gets offset of variable in hdata.
* Get offset of variable in hdata.
*/
int
@@ -213,7 +214,7 @@ hdata_get_var_offset (struct t_hdata *hdata, const char *name)
}
/*
* Gets type of variable in hdata (as integer).
* Get type of variable in hdata (as integer).
*/
int
@@ -232,7 +233,7 @@ hdata_get_var_type (struct t_hdata *hdata, const char *name)
}
/*
* Gets type of variable in hdata (as string).
* Get type of variable in hdata (as string).
*/
const char *
@@ -251,9 +252,9 @@ hdata_get_var_type_string (struct t_hdata *hdata, const char *name)
}
/*
* Gets size of array for a variable (if variable is an array).
* Get size of array for a variable (if variable is an array).
*
* Returns size of array, -1 if variable is not an array (or if error).
* Return size of array, -1 if variable is not an array (or if error).
*/
int
@@ -262,9 +263,7 @@ hdata_get_var_array_size (struct t_hdata *hdata, void *pointer,
{
struct t_hdata_var *var;
const char *ptr_size;
char *error;
long value;
int i, offset;
int i, offset, value;
void *ptr_value;
if (!hdata || !name)
@@ -340,10 +339,8 @@ hdata_get_var_array_size (struct t_hdata *hdata, void *pointer,
else
{
/* check if the size is a valid integer */
error = NULL;
value = strtol (ptr_size, &error, 10);
if (error && !error[0])
return (int)value;
if (util_parse_int (ptr_size, 10, &value))
return value;
}
}
@@ -351,7 +348,7 @@ hdata_get_var_array_size (struct t_hdata *hdata, void *pointer,
}
/*
* Gets size of array for variable as string.
* Get size of array for variable as string.
*/
const char *
@@ -374,9 +371,9 @@ hdata_get_var_array_size_string (struct t_hdata *hdata, void *pointer,
}
/*
* Gets hdata name for a variable.
* Get hdata name for a variable.
*
* Returns hdata name, NULL if variable has no hdata.
* Return hdata name, NULL if variable has no hdata.
*/
const char *
@@ -395,7 +392,7 @@ hdata_get_var_hdata (struct t_hdata *hdata, const char *name)
}
/*
* Gets pointer to content of variable using hdata variable name.
* Get pointer to content of variable using hdata variable name.
*/
void *
@@ -414,7 +411,7 @@ hdata_get_var (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets pointer to content of variable using hdata variable offset.
* Get pointer to content of variable using hdata variable offset.
*/
void *
@@ -427,7 +424,7 @@ hdata_get_var_at_offset (struct t_hdata *hdata, void *pointer, int offset)
}
/*
* Gets a list pointer in hdata.
* Get a list pointer in hdata.
*/
void *
@@ -446,9 +443,9 @@ hdata_get_list (struct t_hdata *hdata, const char *name)
}
/*
* Checks if a pointer is in the list.
* Check if a pointer is in the list.
*
* Returns:
* Return:
* 1: pointer exists in list
* 0: pointer does not exist
*/
@@ -476,7 +473,7 @@ hdata_check_pointer_in_list (struct t_hdata *hdata, void *list, void *pointer)
}
/*
* Checks if a pointer is in a list with flag "check_pointers".
* Check if a pointer is in a list with flag "check_pointers".
*/
void
@@ -513,14 +510,14 @@ hdata_check_pointer_map_cb (void *data, struct t_hashtable *hashtable,
}
/*
* Checks if a pointer is valid for a given hdata/list.
* Check if a pointer is valid for a given hdata/list.
*
* If argument "list" is NULL, the check is made with all lists in hdata
* that have flag "check_pointers". If no list is defined with this flag,
* the pointer is considered valid (so this function returns 1); if the
* pointer is not found in any list, this function returns 0.
* the pointer is considered valid (so this function return 1); if the
* pointer is not found in any list, this function return 0.
*
* Returns:
* Return:
* 1: pointer exists in the given list (or a list with check_pointers flag)
* 0: pointer does not exist
*/
@@ -553,7 +550,7 @@ hdata_check_pointer (struct t_hdata *hdata, void *list, void *pointer)
}
/*
* Moves pointer to another element in list.
* Move pointer to another element in list.
*/
void *
@@ -579,9 +576,9 @@ hdata_move (struct t_hdata *hdata, void *pointer, int count)
}
/*
* Searches for an element in list using expression.
* Search for an element in list using expression.
*
* Returns pointer to element found, NULL if not found.
* Return pointer to element found, NULL if not found.
*/
void *
@@ -659,7 +656,7 @@ end:
}
/*
* Returns number of item in this hdata, starting at "pointer".
* Return number of item in this hdata, starting at "pointer".
*/
int
@@ -680,7 +677,7 @@ hdata_count (struct t_hdata *hdata, void *pointer)
}
/*
* Extracts index from name of a variable.
* Extract index from name of a variable.
*
* A name can contain index with this format: "NNN|name" (where NNN is an
* integer >= 0).
@@ -691,8 +688,9 @@ hdata_count (struct t_hdata *hdata, void *pointer)
void
hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
{
char *pos, *str_index, *error;
long number;
const char *pos;
char *str_index;
int number;
if (index)
*index = -1;
@@ -708,9 +706,7 @@ hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
str_index = string_strndup (name, pos - name);
if (str_index)
{
error = NULL;
number = strtol (str_index, &error, 10);
if (error && !error[0])
if (util_parse_int (str_index, 10, &number))
{
if (index)
*index = number;
@@ -723,7 +719,7 @@ hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
}
/*
* Gets char value of a variable in hdata.
* Get char value of a variable in hdata.
*/
char
@@ -757,7 +753,7 @@ hdata_char (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets integer value of a variable in hdata.
* Get integer value of a variable in hdata.
*/
int
@@ -791,7 +787,7 @@ hdata_integer (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets long value of a variable in hdata.
* Get long value of a variable in hdata.
*/
long
@@ -825,7 +821,7 @@ hdata_long (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets "long long" value of a variable in hdata.
* Get "long long" value of a variable in hdata.
*/
long long
@@ -859,7 +855,7 @@ hdata_longlong (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets string value of a variable in hdata.
* Get string value of a variable in hdata.
*/
const char *
@@ -896,7 +892,7 @@ hdata_string (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets pointer value of a variable in hdata.
* Get pointer value of a variable in hdata.
*/
void *
@@ -930,7 +926,7 @@ hdata_pointer (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets time value of a variable in hdata.
* Get time value of a variable in hdata.
*/
time_t
@@ -964,7 +960,7 @@ hdata_time (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Gets hashtable value of a variable in hdata.
* Get hashtable value of a variable in hdata.
*/
struct t_hashtable *
@@ -998,11 +994,11 @@ hdata_hashtable (struct t_hdata *hdata, void *pointer, const char *name)
}
/*
* Compares a hdata variable of two objects.
* Compare a hdata variable of two objects.
*
* If case_sensitive == 1, the comparison of strings is case-sensitive.
*
* Returns:
* Return:
* -1: variable1 < variable2
* 0: variable1 == variable2
* 1: variable1 > variable2
@@ -1230,13 +1226,13 @@ end:
}
/*
* Sets value for a variable in hdata.
* Set value for a variable in hdata.
*
* WARNING: this is dangerous, and only some variables can be set by this
* function (this depends on hdata, see API doc for more info) and this
* function can be called *ONLY* in an "update" callback (in hdata).
*
* Returns:
* Return:
* 1: OK (value set)
* 0: error (or not allowed)
*/
@@ -1246,11 +1242,11 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
const char *value)
{
struct t_hdata_var *var;
char **ptr_string, *error;
long number;
long long number_longlong;
char **ptr_string;
unsigned long ptr;
int rc;
int rc, number_int;
long number_long;
long long number_longlong;
if (!hdata->update_pending)
return 0;
@@ -1270,27 +1266,21 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
*((char *)(pointer + var->offset)) = (value) ? value[0] : '\0';
return 1;
case WEECHAT_HDATA_INTEGER:
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
if (util_parse_int (value, 10, &number_int))
{
*((int *)(pointer + var->offset)) = (int)number;
*((int *)(pointer + var->offset)) = number_int;
return 1;
}
break;
case WEECHAT_HDATA_LONG:
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
if (util_parse_long (value, 10, &number_long))
{
*((long *)(pointer + var->offset)) = number;
*((long *)(pointer + var->offset)) = number_long;
return 1;
}
break;
case WEECHAT_HDATA_LONGLONG:
error = NULL;
number_longlong = strtoll (value, &error, 10);
if (error && !error[0])
if (util_parse_longlong (value, 10, &number_longlong))
{
*((long long *)(pointer + var->offset)) = number_longlong;
return 1;
@@ -1323,11 +1313,9 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
}
break;
case WEECHAT_HDATA_TIME:
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0] && (number >= 0))
if (util_parse_long (value, 10, &number_long) && (number_long >= 0))
{
*((time_t *)(pointer + var->offset)) = (time_t)number;
*((time_t *)(pointer + var->offset)) = (time_t)number_long;
return 1;
}
break;
@@ -1338,7 +1326,7 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
}
/*
* Updates some data in hdata.
* Update some data in hdata.
*
* The hashtable contains keys with new values.
* A special key "__delete" can be used to delete the whole structure at
@@ -1347,8 +1335,8 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
* WARNING: this is dangerous, and only some data can be updated by this
* function (this depends on hdata, see API doc for more info).
*
* Returns number of variables updated, 0 if nothing has been updated.
* In case of deletion, returns 1 if OK, 0 if error.
* Return number of variables updated, 0 if nothing has been updated.
* In case of deletion, return 1 if OK, 0 if error.
*/
int
@@ -1390,7 +1378,7 @@ hdata_update (struct t_hdata *hdata, void *pointer,
}
/*
* Gets a hdata property as string.
* Get a hdata property as string.
*/
const char *
@@ -1420,7 +1408,7 @@ hdata_get_string (struct t_hdata *hdata, const char *property)
}
/*
* Frees a hdata.
* Free a hdata.
*/
void
@@ -1439,7 +1427,7 @@ hdata_free (struct t_hdata *hdata)
}
/*
* Frees hdata for a plugin (callback called for each hdata in memory).
* Free hdata for a plugin (callback called for each hdata in memory).
*/
void
@@ -1455,7 +1443,7 @@ hdata_free_all_plugin_map_cb (void *data, struct t_hashtable *hashtable,
}
/*
* Frees all hdata created by a plugin.
* Free all hdata created by a plugin.
*/
void
@@ -1465,7 +1453,7 @@ hdata_free_all_plugin (struct t_weechat_plugin *plugin)
}
/*
* Frees all hdata.
* Free all hdata.
*/
void
@@ -1475,7 +1463,7 @@ hdata_free_all (void)
}
/*
* Prints variable of a hdata in WeeChat log file (callback called for each
* Print variable of a hdata in WeeChat log file (callback called for each
* variable in hdata).
*/
@@ -1501,7 +1489,7 @@ hdata_print_log_var_map_cb (void *data, struct t_hashtable *hashtable,
}
/*
* Prints hdata in WeeChat log file (callback called for each hdata in memory).
* Print hdata in WeeChat log file (callback called for each hdata in memory).
*/
void
@@ -1538,7 +1526,7 @@ hdata_print_log_map_cb (void *data, struct t_hashtable *hashtable,
}
/*
* Prints hdata in WeeChat log file (usually for crash dump).
* Print hdata in WeeChat log file (usually for crash dump).
*/
void
@@ -1548,7 +1536,7 @@ hdata_print_log (void)
}
/*
* Frees a hdata in hashtable "weechat_hdata".
* Free a hdata in hashtable "weechat_hdata".
*/
void
@@ -1563,7 +1551,7 @@ hdata_free_hdata_cb (struct t_hashtable *hashtable,
}
/*
* Initializes hdata: creates a hashtable with hdata.
* Initialize hdata: creates a hashtable with hdata.
*/
void
@@ -1578,7 +1566,7 @@ hdata_init (void)
}
/*
* Frees all hdata and hashtable with hdata.
* Free all hdata and hashtable with hdata.
*/
void
+32 -38
View File
@@ -158,7 +158,7 @@ t_callback_hook *hook_callback_print_log[HOOK_NUM_TYPES] =
/*
* Initializes hooks.
* Initialize hooks.
*/
void
@@ -214,9 +214,9 @@ hook_init (void)
}
/*
* Searches for a hook type.
* Search for a hook type.
*
* Returns index of type in enum t_hook_type, -1 if type is not found.
* Return index of type in enum t_hook_type, -1 if type is not found.
*/
int
@@ -238,7 +238,7 @@ hook_search_type (const char *type)
}
/*
* Searches for position of hook in list (to keep hooks sorted).
* Search for position of hook in list (to keep hooks sorted).
*
* Hooks are sorted by priority, except commands which are sorted by command
* name, and then priority.
@@ -283,7 +283,7 @@ hook_find_pos (struct t_hook *hook)
}
/*
* Adds a hook to list.
* Add a hook to list.
*/
void
@@ -330,7 +330,7 @@ hook_add_to_list (struct t_hook *new_hook)
}
/*
* Removes a hook from list.
* Remove a hook from list.
*/
void
@@ -366,7 +366,7 @@ hook_remove_from_list (struct t_hook *hook)
}
/*
* Removes hooks marked as "deleted" from list.
* Remove hooks marked as "deleted" from list.
*/
void
@@ -395,7 +395,7 @@ hook_remove_deleted (void)
}
/*
* Initializes a new hook with default values.
* Initialize a new hook with default values.
*/
void
@@ -426,9 +426,9 @@ hook_init_data (struct t_hook *hook, struct t_weechat_plugin *plugin,
}
/*
* Checks if a hook pointer is valid.
* Check if a hook pointer is valid.
*
* Returns:
* Return:
* 1: hook exists
* 0: hook does not exist
*/
@@ -457,7 +457,7 @@ hook_valid (struct t_hook *hook)
}
/*
* Starts a hook exec.
* Start a hook exec.
*/
void
@@ -467,7 +467,7 @@ hook_exec_start (void)
}
/*
* Ends a hook_exec.
* End a hook_exec.
*/
void
@@ -481,7 +481,7 @@ hook_exec_end (void)
}
/*
* Starts execution of a hook callback.
* Start execution of a hook callback.
*/
void
@@ -504,7 +504,7 @@ hook_callback_start (struct t_hook *hook, struct t_hook_exec_cb *hook_exec_cb)
}
/*
* Ends execution of a hook callback.
* End execution of a hook callback.
*/
void
@@ -541,7 +541,7 @@ hook_callback_end (struct t_hook *hook, struct t_hook_exec_cb *hook_exec_cb)
}
/*
* Returns description of hook.
* Return description of hook.
*
* Note: result must be freed after use.
*/
@@ -553,16 +553,14 @@ hook_get_description (struct t_hook *hook)
}
/*
* Sets a hook property (string).
* Set a hook property (string).
*/
void
hook_set (struct t_hook *hook, const char *property, const char *value)
{
ssize_t num_written;
char *error;
long number;
int rc;
int rc, number;
/* invalid hook? */
if (!hook_valid (hook))
@@ -605,22 +603,20 @@ hook_set (struct t_hook *hook, const char *property, const char *value)
&& (hook->type == HOOK_TYPE_PROCESS)
&& (HOOK_PROCESS(hook, child_pid) > 0))
{
error = NULL;
number = strtol (value, &error, 10);
if (!error || error[0])
if (!util_parse_int (value, 10, &number))
{
/* not a number? look for signal by name */
number = signal_search_name (value);
}
if (number >= 0)
{
rc = kill (HOOK_PROCESS(hook, child_pid), (int)number);
rc = kill (HOOK_PROCESS(hook, child_pid), number);
if (rc < 0)
{
gui_chat_printf (NULL,
_("%sError sending signal %d to pid %d: %s"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
(int)number,
number,
HOOK_PROCESS(hook, child_pid),
strerror (errno));
}
@@ -633,9 +629,7 @@ hook_set (struct t_hook *hook, const char *property, const char *value)
&& ((hook->type == HOOK_TYPE_COMMAND)
|| (hook->type == HOOK_TYPE_COMMAND_RUN)))
{
error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
if (util_parse_int (value, 10, &number))
{
switch (hook->type)
{
@@ -691,7 +685,7 @@ hook_schedule_clean_process (pid_t pid)
}
/*
* Unhooks something.
* Unhook something.
*/
void
@@ -743,7 +737,7 @@ unhook (struct t_hook *hook)
}
/*
* Unhooks everything for a plugin/subplugin.
* Unhook everything for a plugin/subplugin.
*/
void
@@ -773,7 +767,7 @@ unhook_all_plugin (struct t_weechat_plugin *plugin, const char *subplugin)
}
/*
* Unhooks everything.
* Unhook everything.
*/
void
@@ -795,7 +789,7 @@ unhook_all (void)
}
/*
* Returns hdata for hook.
* Return hdata for hook.
*/
struct t_hdata *
@@ -839,9 +833,9 @@ hook_hdata_hook_cb (const void *pointer, void *data, const char *hdata_name)
}
/*
* Adds a hook in an infolist.
* Add a hook in an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -890,9 +884,9 @@ hook_add_to_infolist_pointer (struct t_infolist *infolist, struct t_hook *hook)
}
/*
* Adds hooks of a type in an infolist.
* Add hooks of a type in an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -930,11 +924,11 @@ hook_add_to_infolist_type (struct t_infolist *infolist, int type,
}
/*
* Adds hooks in an infolist.
* Add hooks in an infolist.
*
* Argument "arguments" can be a hook type with optional comma + name after.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -982,7 +976,7 @@ hook_add_to_infolist (struct t_infolist *infolist, struct t_hook *pointer,
}
/*
* Prints hooks in WeeChat log file (usually for crash dump).
* Print hooks in WeeChat log file (usually for crash dump).
*/
void
+33 -33
View File
@@ -43,9 +43,9 @@ char *infolist_type_char_string[INFOLIST_NUM_TYPES] = {
/*
* Creates a new infolist.
* Create a new infolist.
*
* Returns pointer to infolist, NULL if error.
* Return pointer to infolist, NULL if error.
*/
struct t_infolist *
@@ -74,9 +74,9 @@ infolist_new (struct t_weechat_plugin *plugin)
}
/*
* Checks if an infolist pointer is valid.
* Check if an infolist pointer is valid.
*
* Returns:
* Return:
* 1: infolist exists
* 0: infolist is not found
*/
@@ -101,9 +101,9 @@ infolist_valid (struct t_infolist *infolist)
}
/*
* Creates a new item in an infolist.
* Create a new item in an infolist.
*
* Returns pointer to new item, NULL if error.
* Return pointer to new item, NULL if error.
*/
struct t_infolist_item *
@@ -131,9 +131,9 @@ infolist_new_item (struct t_infolist *infolist)
}
/*
* Creates a new integer variable in an item.
* Create a new integer variable in an item.
*
* Returns pointer to new variable, NULL if error.
* Return pointer to new variable, NULL if error.
*/
struct t_infolist_var *
@@ -168,9 +168,9 @@ infolist_new_var_integer (struct t_infolist_item *item,
}
/*
* Creates a new string variable in an item.
* Create a new string variable in an item.
*
* Returns pointer to new variable, NULL if error.
* Return pointer to new variable, NULL if error.
*/
struct t_infolist_var *
@@ -203,9 +203,9 @@ infolist_new_var_string (struct t_infolist_item *item,
}
/*
* Creates a new pointer variable in an item.
* Create a new pointer variable in an item.
*
* Returns pointer to new variable, NULL if error.
* Return pointer to new variable, NULL if error.
*/
struct t_infolist_var *
@@ -238,9 +238,9 @@ infolist_new_var_pointer (struct t_infolist_item *item,
}
/*
* Creates a new buffer variable in an item.
* Create a new buffer variable in an item.
*
* Returns pointer to new variable, NULL if error.
* Return pointer to new variable, NULL if error.
*/
struct t_infolist_var *
@@ -285,9 +285,9 @@ infolist_new_var_buffer (struct t_infolist_item *item,
}
/*
* Creates a new time variable in an item.
* Create a new time variable in an item.
*
* Returns pointer to new variable, NULL if error.
* Return pointer to new variable, NULL if error.
*/
struct t_infolist_var *
@@ -322,9 +322,9 @@ infolist_new_var_time (struct t_infolist_item *item,
}
/*
* Gets next item for an infolist.
* Get next item for an infolist.
*
* If pointer is NULL, returns first item of infolist.
* If pointer is NULL, return first item of infolist.
*/
struct t_infolist_item *
@@ -343,9 +343,9 @@ infolist_next (struct t_infolist *infolist)
}
/*
* Gets previous item for an infolist.
* Get previous item for an infolist.
*
* If pointer is NULL, returns last item of infolist.
* If pointer is NULL, return last item of infolist.
*/
struct t_infolist_item *
@@ -364,7 +364,7 @@ infolist_prev (struct t_infolist *infolist)
}
/*
* Resets pointer to current item in infolist.
* Reset pointer to current item in infolist.
*/
void
@@ -377,7 +377,7 @@ infolist_reset_item_cursor (struct t_infolist *infolist)
}
/*
* Searches for a variable in current infolist item.
* Search for a variable in current infolist item.
*/
struct t_infolist_var *
@@ -400,7 +400,7 @@ infolist_search_var (struct t_infolist *infolist, const char *name)
}
/*
* Gets list of fields for current infolist item.
* Get list of fields for current infolist item.
*/
const char *
@@ -434,7 +434,7 @@ infolist_fields (struct t_infolist *infolist)
}
/*
* Gets integer value for a variable in current infolist item.
* Get integer value for a variable in current infolist item.
*/
int
@@ -462,7 +462,7 @@ infolist_integer (struct t_infolist *infolist, const char *var)
}
/*
* Gets string value for a variable in current infolist item.
* Get string value for a variable in current infolist item.
*/
const char *
@@ -490,7 +490,7 @@ infolist_string (struct t_infolist *infolist, const char *var)
}
/*
* Gets pointer value for a variable in current infolist item.
* Get pointer value for a variable in current infolist item.
*/
void *
@@ -518,7 +518,7 @@ infolist_pointer (struct t_infolist *infolist, const char *var)
}
/*
* Gets buffer value for a variable in current infolist item.
* Get buffer value for a variable in current infolist item.
*
* Argument "size" is set with the size of buffer.
*/
@@ -552,7 +552,7 @@ infolist_buffer (struct t_infolist *infolist, const char *var,
}
/*
* Gets time value for a variable in current infolist item.
* Get time value for a variable in current infolist item.
*/
time_t
@@ -580,7 +580,7 @@ infolist_time (struct t_infolist *infolist, const char *var)
}
/*
* Frees a variable in item.
* Free a variable in item.
*/
void
@@ -623,7 +623,7 @@ infolist_var_free (struct t_infolist_item *item,
}
/*
* Frees an item in infolist.
* Free an item in infolist.
*/
void
@@ -662,7 +662,7 @@ infolist_item_free (struct t_infolist *infolist,
}
/*
* Frees an infolist.
* Free an infolist.
*/
void
@@ -699,7 +699,7 @@ infolist_free (struct t_infolist *infolist)
}
/*
* Frees all infolists created by a plugin.
* Free all infolists created by a plugin.
*/
void
@@ -718,7 +718,7 @@ infolist_free_all_plugin (struct t_weechat_plugin *plugin)
}
/*
* Prints infolists in WeeChat log file (usually for crash dump).
* Print infolists in WeeChat log file (usually for crash dump).
*/
void
+16 -11
View File
@@ -45,9 +45,9 @@ char **input_commands_allowed = NULL;
/*
* Sends data to buffer input callback.
* Send data to buffer input callback.
*
* Returns the return code of buffer callback, or WEECHAT_RC_ERROR if the
* Return the return code of buffer callback, or WEECHAT_RC_ERROR if the
* buffer has no input callback.
*/
@@ -72,9 +72,9 @@ input_exec_data (struct t_gui_buffer *buffer, const char *data)
}
/*
* Executes a command.
* Execute a command.
*
* Returns:
* Return:
* WEECHAT_RC_OK: command executed
* WEECHAT_RC_ERROR: error, command not executed
*/
@@ -228,12 +228,12 @@ end:
}
/*
* Sends data to a buffer's callback.
* Send data to a buffer's callback.
*
* If split_newline = 1 and if buffer input_multiline = 0, the string
* is split on "\n" and multiple commands can then be executed.
*
* Returns:
* Return:
* WEECHAT_RC_OK: data properly sent (or command executed successfully)
* WEECHAT_RC_ERROR: error
*/
@@ -242,8 +242,8 @@ int
input_data (struct t_gui_buffer *buffer, const char *data,
const char *commands_allowed, int split_newline, int user_data)
{
char *pos, str_buffer[128], *new_data, *buffer_full_name;
const char *ptr_data, *ptr_data_for_buffer;
const char *ptr_data_for_buffer;
char *pos, str_buffer[128], *new_data, *buffer_full_name, *ptr_data;
int first_command, rc;
if (!buffer || !gui_buffer_valid (buffer) || !data)
@@ -272,8 +272,13 @@ input_data (struct t_gui_buffer *buffer, const char *data,
if (data[0] && new_data && !new_data[0])
goto end;
if (!new_data)
new_data = strdup (data);
if (!new_data)
goto end;
first_command = 1;
ptr_data = (new_data) ? new_data : data;
ptr_data = new_data;
while (ptr_data)
{
/*
@@ -399,12 +404,12 @@ input_data_timer_cb (const void *pointer, void *data, int remaining_calls)
}
/*
* Sends data to a buffer's callback with an optional delay (in milliseconds).
* Send data to a buffer's callback with an optional delay (in milliseconds).
*
* If delay < 1, the command is executed immediately.
* If delay >= 1, the command is scheduled for execution in this number of ms.
*
* Returns:
* Return:
* WEECHAT_RC_OK: data properly sent or scheduled for execution
* WEECHAT_RC_ERROR: error
*/
+27 -27
View File
@@ -36,9 +36,9 @@
/*
* Creates a new list.
* Create a new list.
*
* Returns pointer to new list, NULL if error.
* Return pointer to new list, NULL if error.
*/
struct t_weelist *
@@ -57,7 +57,7 @@ weelist_new (void)
}
/*
* Searches for position of data (to keep list sorted).
* Search for position of data (to keep list sorted).
*/
struct t_weelist_item *
@@ -79,7 +79,7 @@ weelist_find_pos (struct t_weelist *weelist, const char *data)
}
/*
* Inserts an element in the list (keeping list sorted).
* Insert an element in the list (keeping list sorted).
*/
void
@@ -140,9 +140,9 @@ weelist_insert (struct t_weelist *weelist, struct t_weelist_item *item,
}
/*
* Creates new data and add it to the list.
* Create new data and add it to the list.
*
* Returns pointer to new item, NULL if error.
* Return pointer to new item, NULL if error.
*/
struct t_weelist_item *
@@ -166,9 +166,9 @@ weelist_add (struct t_weelist *weelist, const char *data, const char *where,
}
/*
* Searches for data in a list (case-sensitive).
* Search for data in a list (case-sensitive).
*
* Returns pointer to item found, NULL if not found.
* Return pointer to item found, NULL if not found.
*/
struct t_weelist_item *
@@ -190,9 +190,9 @@ weelist_search (struct t_weelist *weelist, const char *data)
}
/*
* Searches for data in a list (case-sensitive).
* Search for data in a list (case-sensitive).
*
* Returns position of item found (>= 0), -1 if not found.
* Return position of item found (>= 0), -1 if not found.
*/
int
@@ -217,9 +217,9 @@ weelist_search_pos (struct t_weelist *weelist, const char *data)
}
/*
* Searches for data in a list (case-insensitive).
* Search for data in a list (case-insensitive).
*
* Returns pointer to item found, NULL if not found.
* Return pointer to item found, NULL if not found.
*/
struct t_weelist_item *
@@ -241,9 +241,9 @@ weelist_casesearch (struct t_weelist *weelist, const char *data)
}
/*
* Searches for data in a list (case-insensitive).
* Search for data in a list (case-insensitive).
*
* Returns position of item found (>= 0), -1 if not found.
* Return position of item found (>= 0), -1 if not found.
*/
int
@@ -268,7 +268,7 @@ weelist_casesearch_pos (struct t_weelist *weelist, const char *data)
}
/*
* Gets an item in a list by position (0 is first element).
* Get an item in a list by position (0 is first element).
*/
struct t_weelist_item *
@@ -294,7 +294,7 @@ weelist_get (struct t_weelist *weelist, int position)
}
/*
* Sets a new value for an item.
* Set a new value for an item.
*/
void
@@ -308,9 +308,9 @@ weelist_set (struct t_weelist_item *item, const char *value)
}
/*
* Gets next item.
* Get next item.
*
* Returns NULL if end of list has been reached.
* Return NULL if end of list has been reached.
*/
struct t_weelist_item *
@@ -323,9 +323,9 @@ weelist_next (struct t_weelist_item *item)
}
/*
* Gets previous item.
* Get previous item.
*
* Returns NULL if beginning of list has been reached.
* Return NULL if beginning of list has been reached.
*/
struct t_weelist_item *
@@ -338,7 +338,7 @@ weelist_prev (struct t_weelist_item *item)
}
/*
* Gets string pointer to item data.
* Get string pointer to item data.
*/
const char *
@@ -351,7 +351,7 @@ weelist_string (struct t_weelist_item *item)
}
/*
* Gets user data pointer to item data.
* Get user data pointer to item data.
*/
void *
@@ -364,7 +364,7 @@ weelist_user_data (struct t_weelist_item *item)
}
/*
* Gets size of list.
* Get size of list.
*/
int
@@ -377,7 +377,7 @@ weelist_size (struct t_weelist *weelist)
}
/*
* Removes an item from a list.
* Remove an item from a list.
*/
void
@@ -411,7 +411,7 @@ weelist_remove (struct t_weelist *weelist, struct t_weelist_item *item)
}
/*
* Removes all items from a list.
* Remove all items from a list.
*/
void
@@ -427,7 +427,7 @@ weelist_remove_all (struct t_weelist *weelist)
}
/*
* Frees a list.
* Free a list.
*/
void
@@ -441,7 +441,7 @@ weelist_free (struct t_weelist *weelist)
}
/*
* Prints list in WeeChat log file (usually for crash dump).
* Print list in WeeChat log file (usually for crash dump).
*/
void
+7 -7
View File
@@ -54,9 +54,9 @@ int weechat_log_use_time = 1; /* 0 to temporary disable time in log, */
/*
* Opens the WeeChat log file.
* Open the WeeChat log file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -116,7 +116,7 @@ log_open (const char *filename, const char *mode)
}
/*
* Initializes the WeeChat log file.
* Initialize the WeeChat log file.
*/
void
@@ -140,7 +140,7 @@ log_init (void)
}
/*
* Writes a message in WeeChat log file.
* Write a message in WeeChat log file.
*/
void
@@ -193,7 +193,7 @@ log_printf (const char *message, ...)
}
/*
* Dumps a string as hexa data in WeeChat log file.
* Dump a string as hexa data in WeeChat log file.
*/
void
@@ -227,7 +227,7 @@ log_printf_hexa (const char *spaces, const char *string)
}
/*
* Closes the WeeChat log file.
* Close the WeeChat log file.
*/
void
@@ -252,7 +252,7 @@ log_close (void)
}
/*
* Renames the WeeChat log file (when crashing).
* Rename the WeeChat log file (when crashing).
*
* The file "weechat.log" is renamed to "weechat_crash_YYYYMMDD_NNNN.log",
* where YYYYMMDD is the current date and NNNN the PID of WeeChat process.
+56 -43
View File
@@ -58,6 +58,7 @@
#include "core-config.h"
#include "core-proxy.h"
#include "core-string.h"
#include "core-util.h"
#include "../gui/gui-chat.h"
#include "../plugins/plugin.h"
@@ -72,7 +73,7 @@ gnutls_certificate_credentials_t gnutls_xcred; /* GnuTLS client credentials */
/*
* Initializes gcrypt.
* Initialize gcrypt.
*/
void
@@ -87,7 +88,7 @@ network_init_gcrypt (void)
}
/*
* Allocates credentials structure.
* Allocate credentials structure.
*/
void
@@ -101,9 +102,9 @@ network_allocate_credentials (void)
}
/*
* Loads system's default trusted certificate authorities.
* Load system's default trusted certificate authorities.
*
* Returns the number of certificates loaded.
* Return the number of certificates loaded.
*/
int
@@ -143,7 +144,7 @@ network_load_system_ca_file (int force_display)
}
/*
* Loads user's trusted certificate authorities.
* Load user's trusted certificate authorities.
*/
int
@@ -229,7 +230,7 @@ end:
}
/*
* Loads system's default and user's trusted certificate authorities.
* Load system's default and user's trusted certificate authorities.
*/
void
@@ -247,7 +248,7 @@ network_load_ca_files (int force_display)
}
/*
* Reloads system's default and user's trusted certificate authorities.
* Reload system's default and user's trusted certificate authorities.
*/
void
@@ -271,7 +272,7 @@ network_reload_ca_files (int force_display)
}
/*
* Initializes GnuTLS.
* Initialize GnuTLS.
*/
void
@@ -288,7 +289,7 @@ network_init_gnutls (void)
}
/*
* Ends network.
* End network.
*/
void
@@ -306,9 +307,9 @@ network_end (void)
}
/*
* Checks if a string contains a valid IP address (IPv4 or IPv6).
* Check if a string contains a valid IP address (IPv4 or IPv6).
*
* Returns:
* Return:
* 1: string is a valid IPv4 or IPv6
* 0: string is not a valid IP address
*/
@@ -335,12 +336,12 @@ network_is_ip_address (const char *address)
}
/*
* Sends data on a socket with retry.
* Send data on a socket with retry.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns number of bytes sent, -1 if error.
* Return number of bytes sent, -1 if error.
*/
int
@@ -367,12 +368,12 @@ network_send_with_retry (int sock, const void *buffer, int length, int flags)
}
/*
* Receives data on a socket with retry.
* Receive data on a socket with retry.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns number of bytes received, -1 if error.
* Return number of bytes received, -1 if error.
*/
int
@@ -399,12 +400,12 @@ network_recv_with_retry (int sock, void *buffer, int length, int flags)
}
/*
* Establishes a connection and authenticates with a HTTP proxy.
* Establish a connection and authenticates with a HTTP proxy.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -463,9 +464,9 @@ network_pass_httpproxy (struct t_proxy *proxy, int sock, const char *address,
}
/*
* Resolves a hostname to its IP address (works with IPv4 and IPv6).
* Resolve a hostname to its IP address (works with IPv4 and IPv6).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -510,14 +511,14 @@ network_resolve (const char *hostname, char *ip, int *version)
}
/*
* Establishes a connection and authenticates with a socks4 proxy.
* Establish a connection and authenticates with a socks4 proxy.
*
* The socks4 protocol is explained here: https://en.wikipedia.org/wiki/SOCKS
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -563,7 +564,7 @@ network_pass_socks4proxy (struct t_proxy *proxy, int sock, const char *address,
}
/*
* Establishes a connection and authenticates with a socks5 proxy.
* Establish a connection and authenticates with a socks5 proxy.
*
* The socks5 protocol is explained in RFC 1928.
* The socks5 authentication with username/pass is explained in RFC 1929.
@@ -571,7 +572,7 @@ network_pass_socks4proxy (struct t_proxy *proxy, int sock, const char *address,
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -581,7 +582,13 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
int port)
{
struct t_network_socks5 socks5;
unsigned char buffer[288];
/*
* buffer must be large enough for the username/password authentication
* request, which is the longest message sent/received here; according to
* RFC 1929 it is: version (1) + username length (1) + username (max 255)
* + password length (1) + password (max 255)
*/
unsigned char buffer[2 + 255 + 1 + 255];
int username_len, password_len, addr_len, addr_buffer_len;
unsigned char *addr_buffer;
char *username, *password;
@@ -630,6 +637,18 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
username_len = strlen (username);
password_len = strlen (password);
/*
* username and password length are each stored on a single byte
* (RFC 1929), so they cannot exceed 255 bytes: reject longer values,
* otherwise the memcpy calls below would overflow the buffer
*/
if ((username_len > 255) || (password_len > 255))
{
free (username);
free (password);
return 0;
}
/* make username/password buffer */
buffer[0] = 1;
buffer[1] = (unsigned char) username_len;
@@ -734,12 +753,12 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
}
/*
* Establishes a connection and authenticates with a proxy.
* Establish a connection and authenticates with a proxy.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -772,12 +791,12 @@ network_pass_proxy (const char *proxy, int sock, const char *address, int port)
}
/*
* Connects to a remote host and wait for connection if socket is non blocking.
* Connect to a remote host and wait for connection if socket is non blocking.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -822,12 +841,12 @@ network_connect (int sock, const struct sockaddr *addr, socklen_t addrlen)
}
/*
* Connects to a remote host.
* Connect to a remote host.
*
* WARNING: this function is blocking, it must be called only in a forked
* process.
*
* Returns:
* Return:
* >= 0: connected socket fd
* -1: error
*/
@@ -913,7 +932,7 @@ error:
}
/*
* Connects to peer in a child process.
* Connect to peer in a child process.
*/
void
@@ -1563,18 +1582,16 @@ network_connect_gnutls_handshake_timer_cb (const void *pointer,
}
/*
* Reads connection progress from child process.
* Read connection progress from child process.
*/
int
network_connect_child_read_cb (const void *pointer, void *data, int fd)
{
struct t_hook *hook_connect;
char buffer[1], buf_size[6], *cb_error, *cb_ip_address, *error;
int num_read;
char buffer[1], buf_size[6], *cb_error, *cb_ip_address;
long size_msg;
int rc, direction;
int sock, i;
int rc, num_read, direction, sock, i;
struct msghdr msg;
struct cmsghdr *cmsg;
char msg_buf[CMSG_SPACE(sizeof (sock))];
@@ -1603,9 +1620,7 @@ network_connect_child_read_cb (const void *pointer, void *data, int fd)
buf_size, 5);
if (num_read == 5)
{
error = NULL;
size_msg = strtol (buf_size, &error, 10);
if (error && !error[0] && (size_msg > 0))
if (util_parse_long (buf_size, 10, &size_msg) && (size_msg > 0))
{
cb_ip_address = malloc (size_msg + 1);
if (cb_ip_address)
@@ -1740,9 +1755,7 @@ network_connect_child_read_cb (const void *pointer, void *data, int fd)
buf_size, 5);
if (num_read == 5)
{
error = NULL;
size_msg = strtol (buf_size, &error, 10);
if (error && !error[0] && (size_msg > 0))
if (util_parse_long (buf_size, 10, &size_msg) && (size_msg > 0))
{
cb_error = malloc (size_msg + 1);
if (cb_error)
@@ -1784,7 +1797,7 @@ network_connect_child_read_cb (const void *pointer, void *data, int fd)
}
/*
* Connects with fork (called by hook_connect() only!).
* Connect with fork (called by hook_connect() only!).
*/
void
+27 -27
View File
@@ -56,9 +56,9 @@ struct t_proxy *last_weechat_temp_proxy = NULL; /* reading configuration */
/*
* Searches for a proxy option.
* Search for a proxy option.
*
* Returns index of option in enum t_proxy_option, -1 if option is not found.
* Return index of option in enum t_proxy_option, -1 if option is not found.
*/
int
@@ -80,9 +80,9 @@ proxy_search_option (const char *option_name)
}
/*
* Searches for a proxy type.
* Search for a proxy type.
*
* Returns index of option in enum t_proxy_type, -1 if type is not found.
* Return index of option in enum t_proxy_type, -1 if type is not found.
*/
int
@@ -104,9 +104,9 @@ proxy_search_type (const char *type)
}
/*
* Checks if a proxy pointer is valid.
* Check if a proxy pointer is valid.
*
* Returns:
* Return:
* 1: proxy exists
* 0: proxy does not exist
*/
@@ -131,9 +131,9 @@ proxy_valid (struct t_proxy *proxy)
}
/*
* Searches for a proxy by name.
* Search for a proxy by name.
*
* Returns pointer to proxy found, NULL if not found.
* Return pointer to proxy found, NULL if not found.
*/
struct t_proxy *
@@ -156,7 +156,7 @@ proxy_search (const char *name)
}
/*
* Sets name for a proxy.
* Set name for a proxy.
*/
void
@@ -193,9 +193,9 @@ proxy_set_name (struct t_proxy *proxy, const char *name)
}
/*
* Sets a property for a proxy.
* Set a property for a proxy.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -246,9 +246,9 @@ proxy_set (struct t_proxy *proxy, const char *property, const char *value)
}
/*
* Creates an option for a proxy.
* Create an option for a proxy.
*
* Returns pointer to new option, NULL if error.
* Return pointer to new option, NULL if error.
*/
struct t_config_option *
@@ -330,7 +330,7 @@ proxy_create_option (const char *proxy_name, int index_option,
}
/*
* Creates an option for a temporary proxy (when reading configuration file).
* Create an option for a temporary proxy (when reading configuration file).
*/
void
@@ -347,9 +347,9 @@ proxy_create_option_temp (struct t_proxy *temp_proxy, int index_option,
}
/*
* Allocates and initializes a new proxy structure.
* Allocate and initialize a new proxy structure.
*
* Returns pointer to new proxy, NULL if error.
* Return pointer to new proxy, NULL if error.
*/
struct t_proxy *
@@ -374,9 +374,9 @@ proxy_alloc (const char *name)
}
/*
* Adds a new proxy with options.
* Add a new proxy with options.
*
* Returns pointer to new proxy, NULL if error.
* Return pointer to new proxy, NULL if error.
*/
struct t_proxy *
@@ -415,9 +415,9 @@ proxy_new_with_options (const char *name,
}
/*
* Adds a new proxy.
* Add a new proxy.
*
* Returns pointer to new proxy, NULL if error.
* Return pointer to new proxy, NULL if error.
*/
struct t_proxy *
@@ -470,7 +470,7 @@ proxy_new (const char *name, const char *type, const char *ipv6,
}
/*
* Uses temporary proxies (added by reading configuration file).
* Use temporary proxies (added by reading configuration file).
*/
void
@@ -532,7 +532,7 @@ proxy_use_temp_proxies (void)
}
/*
* Frees a proxy.
* Free a proxy.
*/
void
@@ -564,7 +564,7 @@ proxy_free (struct t_proxy *proxy)
}
/*
* Frees all proxies.
* Free all proxies.
*/
void
@@ -577,7 +577,7 @@ proxy_free_all (void)
}
/*
* Returns hdata for proxy.
* Return hdata for proxy.
*/
struct t_hdata *
@@ -605,9 +605,9 @@ proxy_hdata_proxy_cb (const void *pointer, void *data,
}
/*
* Adds a proxy in an infolist.
* Add a proxy in an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -645,7 +645,7 @@ proxy_add_to_infolist (struct t_infolist *infolist, struct t_proxy *proxy)
}
/*
* Prints proxies in WeeChat log file (usually for crash dump).
* Print proxies in WeeChat log file (usually for crash dump).
*/
void
+4 -4
View File
@@ -49,7 +49,7 @@ int secure_buffer_display_values = 0;
/*
* Displays a secured data.
* Display a secured data.
*/
void
@@ -83,7 +83,7 @@ secure_buffer_display_data (void *data,
}
/*
* Displays content of secured data buffer.
* Display content of secured data buffer.
*/
void
@@ -195,7 +195,7 @@ secure_buffer_close_cb (const void *pointer, void *data,
}
/*
* Assigns secured data buffer to pointer if it is not yet set.
* Assign secured data buffer to pointer if it is not yet set.
*/
void
@@ -213,7 +213,7 @@ secure_buffer_assign (void)
}
/*
* Opens a buffer to display secured data.
* Open a buffer to display secured data.
*/
void
+18 -18
View File
@@ -56,7 +56,7 @@ int secure_config_loading = 0;
/*
* Gets passphrase from user and puts it in variable "secure_passphrase".
* Get passphrase from user and put it in variable "secure_passphrase".
*/
void
@@ -103,9 +103,9 @@ secure_config_get_passphrase_from_user (const char *error)
}
/*
* Gets passphrase from a command.
* Get passphrase from a command.
*
* Returns passphrase from command output (only the first line with max length
* Return passphrase from command output (only the first line with max length
* of SECURE_PASSPHRASE_MAX_LENGTH chars), or NULL if error.
*
* Note: result must be freed after use.
@@ -144,9 +144,9 @@ secure_config_get_passphrase_from_command (const char *command)
}
/*
* Reloads secured data configuration file.
* Reload secured data configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_READ_OK: OK
* WEECHAT_CONFIG_READ_MEMORY_ERROR: not enough memory
* WEECHAT_CONFIG_READ_FILE_NOT_FOUND: file not found
@@ -212,7 +212,7 @@ secure_config_check_crypt_option_cb (const void *pointer, void *data,
}
/*
* Reads a data option in secured data configuration file.
* Read a data option in secured data configuration file.
*/
int
@@ -371,7 +371,7 @@ secure_config_data_read_cb (const void *pointer, void *data,
}
/*
* Encrypts data and writes it in secured data configuration file.
* Encrypt data and write it in secured data configuration file.
*/
void
@@ -464,7 +464,7 @@ secure_config_data_write_map_cb (void *data,
}
/*
* Writes already encrypted data in secured data configuration file.
* Write already encrypted data in secured data configuration file.
*/
void
@@ -484,7 +484,7 @@ secure_config_data_write_map_encrypted_cb (void *data,
}
/*
* Writes section "data" in secured data configuration file.
* Write section "data" in secured data configuration file.
*/
int
@@ -536,9 +536,9 @@ secure_config_data_write_cb (const void *pointer, void *data,
}
/*
* Creates options in secured data configuration.
* Create options in secured data configuration.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -631,9 +631,9 @@ secure_config_init_options (void)
}
/*
* Reads secured data configuration file.
* Read secured data configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_READ_OK: OK
* WEECHAT_CONFIG_READ_MEMORY_ERROR: not enough memory
* WEECHAT_CONFIG_READ_FILE_NOT_FOUND: file not found
@@ -654,9 +654,9 @@ secure_config_read (void)
}
/*
* Writes secured data configuration file.
* Write secured data configuration file.
*
* Returns:
* Return:
* WEECHAT_CONFIG_WRITE_OK: OK
* WEECHAT_CONFIG_WRITE_ERROR: error
* WEECHAT_CONFIG_WRITE_MEMORY_ERROR: not enough memory
@@ -669,9 +669,9 @@ secure_config_write (void)
}
/*
* Initializes secured data configuration.
* Initialize secured data configuration.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -693,7 +693,7 @@ secure_config_init (void)
}
/*
* Frees secured data file and variables.
* Free secured data file and variables.
*/
void
+13 -13
View File
@@ -56,9 +56,9 @@ int secure_data_encrypted = 0;
/*
* Derives a key from salt + passphrase (using a hash).
* Derive a key from salt + passphrase (using a hash).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -101,9 +101,9 @@ secure_derive_key (const char *salt, const char *passphrase,
}
/*
* Encrypts data using a hash algorithm + cipher + passphrase.
* Encrypt data using a hash algorithm + cipher + passphrase.
*
* Following actions are performed:
* The following actions are performed:
* 1. derive a key from the passphrase (with optional salt)
* 2. compute hash of data
* 3. store hash + data in a buffer
@@ -124,7 +124,7 @@ secure_derive_key (const char *salt, const char *passphrase,
* \_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _/
* encrypted data
*
* Returns:
* Return:
* 0: OK
* -1: not enough memory
* -2: key derive error
@@ -260,13 +260,13 @@ encrypt_end:
}
/*
* Decrypts data using a hash algorithm + cipher + passphrase.
* Decrypt data using a hash algorithm + cipher + passphrase.
*
* The buffer must contain:
* - salt (8 bytes, used to derive a key from the passphrase)
* - encrypted hash(data) + data
*
* Following actions are performed:
* The following actions are performed:
* 1. check length of buffer (it must have at least salt + hash + some data)
* 2. derive a key from the passphrase using salt (at beginning of buffer)
* 3. decrypt hash + data in a buffer
@@ -274,7 +274,7 @@ encrypt_end:
* 5. check that decrypted hash is equal to hash of data
* 6. return decrypted data
*
* Returns:
* Return:
* 0: OK
* -1: not enough memory
* -2: buffer is not long enough
@@ -410,10 +410,10 @@ decrypt_end:
}
/*
* Decrypts data still encrypted (data that could not be decrypted when reading
* Decrypt data still encrypted (data that could not be decrypted when reading
* secured data configuration file (because no passphrase was given).
*
* Returns:
* Return:
* >= 0: number of decrypted data
* -1: error decrypting data (bad passphrase)
* -2: unsupported hash algorithm
@@ -494,9 +494,9 @@ secure_decrypt_data_not_decrypted (const char *passphrase)
}
/*
* Initializes secured data.
* Initialize secured data.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -539,7 +539,7 @@ secure_init (void)
}
/*
* Frees all allocated data.
* Free all allocated data.
*/
void
+12 -12
View File
@@ -128,10 +128,10 @@ signal_sigusr2_cb (int signo)
}
/*
* Gets a signal index with a signal number; only some commonly used signal
* Get a signal index with a signal number; only some commonly used signal
* names are supported here (see declaration of signal_list[]).
*
* Returns the index of signal in structure string_signal, -1 if not found.
* Return the index of signal in structure string_signal, -1 if not found.
*/
int
@@ -150,10 +150,10 @@ signal_search_number (int signal_number)
}
/*
* Gets a signal number with a name; only some commonly used signal names are
* Get a signal number with a name; only some commonly used signal names are
* supported here (see declaration of signal_list[]).
*
* Returns the signal number, -1 if not found.
* Return the signal number, -1 if not found.
*/
int
@@ -175,7 +175,7 @@ signal_search_name (const char *name)
}
/*
* Catches a system signal.
* Catch a system signal.
*/
void
@@ -190,9 +190,9 @@ signal_catch (int signum, void (*handler)(int))
}
/*
* Sends a WeeChat signal on a system signal received.
* Send a WeeChat signal on a system signal received.
*
* Returns:
* Return:
* WEECHAT_RC_OK: the WeeChat handler must be executed
* WEECHAT_RC_OK_EAT: signal eaten, the WeeChat handler must NOT be executed
*/
@@ -215,7 +215,7 @@ signal_send_to_weechat (int signal_index)
}
/*
* Evaluates and executes the command bound to a signal.
* Evaluate and execute the command bound to a signal.
*/
void
@@ -253,7 +253,7 @@ signal_exec_command (int signal_index, const char *command)
}
/*
* Handles a specific signal received:
* Handle a specific signal received.
*/
void
@@ -278,7 +278,7 @@ signal_handle_number (int signal_number, int count, const char *command)
}
/*
* Handles signals received: sends WeeChat signal and executes the configured
* Handle signals received: sends WeeChat signal and execute the configured
* command (is signal not eaten).
*/
@@ -312,7 +312,7 @@ signal_handle (void)
}
/*
* Suspends WeeChat process.
* Suspend WeeChat process.
*/
void
@@ -323,7 +323,7 @@ signal_suspend (void)
}
/*
* Initializes signal.
* Initialize signal.
*/
void
+179 -144
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -69,6 +69,8 @@ extern int string_strcmp_ignore_chars (const char *string1,
const char *string2,
const char *chars_ignored,
int case_sensitive);
extern int string_memcmp_constant_time (const void *area1, const void *area2,
size_t size);
extern const char *string_strcasestr (const char *string, const char *search);
extern int string_match (const char *string, const char *mask,
int case_sensitive);
+7 -9
View File
@@ -104,7 +104,7 @@ struct t_rlimit_resource rlimit_resource[] =
/*
* Sets resource limit.
* Set resource limit.
*/
#ifdef HAVE_SYS_RESOURCE_H
@@ -174,14 +174,14 @@ sys_setrlimit_resource (const char *resource_name, long long limit)
#endif /* HAVE_SYS_RESOURCE_H */
/*
* Sets resource limits using value of option "weechat.startup.sys_rlimit".
* Set resource limits using value of option "weechat.startup.sys_rlimit".
*/
void
sys_setrlimit (void)
{
#ifdef HAVE_SYS_RESOURCE_H
char **items, *pos, *error;
char **items, *pos;
int num_items, i;
long long number;
@@ -198,9 +198,7 @@ sys_setrlimit (void)
if (pos)
{
pos[0] = '\0';
error = NULL;
number = strtoll (pos + 1, &error, 10);
if (error && !error[0])
if (util_parse_longlong (pos + 1, 10, &number) && (number >= -1))
{
sys_setrlimit_resource (items[i], number);
}
@@ -220,7 +218,7 @@ sys_setrlimit (void)
}
/*
* Displays resource limits.
* Display resource limits.
*/
void
@@ -278,7 +276,7 @@ sys_display_rlimit (void)
}
/*
* Displays resource usage.
* Display resource usage.
*/
void
@@ -346,7 +344,7 @@ sys_display_rusage (void)
}
/*
* Calls waitpid() to acknowledge the end of forked processes, thus preventing
* Call waitpid() to acknowledge the end of forked processes, thus preventing
* them to become zombies.
*/
+27 -27
View File
@@ -48,7 +48,7 @@ struct t_upgrade_file *last_upgrade_file = NULL;
/*
* Displays an error with upgrade.
* Display an error with upgrade.
*/
void
@@ -85,9 +85,9 @@ upgrade_file_error (struct t_upgrade_file *upgrade_file, char *message1,
}
/*
* Writes an integer value in upgrade file.
* Write an integer value in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -102,9 +102,9 @@ upgrade_file_write_integer (struct t_upgrade_file *upgrade_file, int value)
}
/*
* Writes a time value in upgrade file.
* Write a time value in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -119,9 +119,9 @@ upgrade_file_write_time (struct t_upgrade_file *upgrade_file, time_t date)
}
/*
* Writes a string in upgrade file.
* Write a string in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -150,9 +150,9 @@ upgrade_file_write_string (struct t_upgrade_file *upgrade_file,
}
/*
* Writes a buffer in upgrade file.
* Write a buffer in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -178,11 +178,11 @@ upgrade_file_write_buffer (struct t_upgrade_file *upgrade_file, void *pointer,
}
/*
* Creates an upgrade file.
* Create an upgrade file.
*
* If write == 1, then opens in write mode, otherwise in read mode.
*
* Returns pointer to new upgrade file, NULL if error.
* Return pointer to new upgrade file, NULL if error.
*/
struct t_upgrade_file *
@@ -255,9 +255,9 @@ upgrade_file_new (const char *filename,
}
/*
* Writes an object in upgrade file.
* Write an object in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -414,9 +414,9 @@ upgrade_file_write_object (struct t_upgrade_file *upgrade_file, int object_id,
}
/*
* Reads an integer in upgrade file.
* Read an integer in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -441,9 +441,9 @@ upgrade_file_read_integer (struct t_upgrade_file *upgrade_file, int *value)
}
/*
* Reads a string in upgrade file.
* Read a string in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -491,9 +491,9 @@ upgrade_file_read_string (struct t_upgrade_file *upgrade_file, char **string)
}
/*
* Reads a buffer in upgrade file.
* Read a buffer in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -537,9 +537,9 @@ upgrade_file_read_buffer (struct t_upgrade_file *upgrade_file,
}
/*
* Reads time in upgrade file.
* Read time in upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -565,9 +565,9 @@ upgrade_file_read_time (struct t_upgrade_file *upgrade_file, time_t *time)
}
/*
* Reads an object in upgrade file and calls read callback.
* Read an object in upgrade file and calls read callback.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -600,7 +600,7 @@ upgrade_file_read_object (struct t_upgrade_file *upgrade_file)
if (type != UPGRADE_TYPE_OBJECT_START)
{
UPGRADE_ERROR(_("read - bad object type ('object start' expected)"), "");
UPGRADE_ERROR(_("read - bad object type (\"object start\" expected)"), "");
goto end;
}
@@ -716,9 +716,9 @@ end:
}
/*
* Reads an upgrade file.
* Read an upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -758,7 +758,7 @@ upgrade_file_read (struct t_upgrade_file *upgrade_file)
}
/*
* Closes and frees an upgrade file.
* Close and frees an upgrade file.
*/
void
+26 -31
View File
@@ -59,10 +59,10 @@ struct t_gui_layout *upgrade_layout = NULL;
/*
* Saves history in WeeChat upgrade file (from last to first, to restore it in
* Save history in WeeChat upgrade file (from last to first, to restore it in
* good order).
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -113,9 +113,9 @@ upgrade_weechat_save_history (struct t_upgrade_file *upgrade_file,
}
/*
* Saves buffers in WeeChat upgrade file.
* Save buffers in WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -202,9 +202,9 @@ upgrade_weechat_save_buffers (struct t_upgrade_file *upgrade_file)
}
/*
* Saves miscellaneous info in WeeChat upgrade file.
* Save miscellaneous info in WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -251,9 +251,9 @@ upgrade_weechat_save_misc (struct t_upgrade_file *upgrade_file)
}
/*
* Saves hotlist in WeeChat upgrade file.
* Save hotlist in WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -288,9 +288,9 @@ upgrade_weechat_save_hotlist (struct t_upgrade_file *upgrade_file)
}
/*
* Saves tree with layout for windows in WeeChat upgrade file.
* Save tree with layout for windows in WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -338,9 +338,9 @@ upgrade_weechat_save_layout_window_tree (struct t_upgrade_file *upgrade_file,
}
/*
* Saves layout for windows in WeeChat upgrade file.
* Save layout for windows in WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -370,9 +370,9 @@ upgrade_weechat_save_layout_window (struct t_upgrade_file *upgrade_file)
}
/*
* Saves WeeChat upgrade file.
* Save WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -401,7 +401,7 @@ upgrade_weechat_save (void)
}
/*
* Reads a buffer from infolist.
* Read a buffer from infolist.
*/
void
@@ -410,7 +410,7 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
struct t_gui_buffer *ptr_buffer;
const char *key, *var_name, *name, *plugin_name, *ptr_id;
const char *str;
char option_name[64], *option_key, *option_var, *error;
char option_name[64], *option_key, *option_var;
int index, main_buffer;
long long id;
@@ -421,9 +421,7 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
ptr_id = infolist_string (infolist, "id");
if (ptr_id)
{
error = NULL;
id = strtoll (ptr_id, &error, 10);
if (!error || error[0])
if (!util_parse_longlong (ptr_id, 10, &id))
id = -1;
}
}
@@ -647,7 +645,7 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
}
/*
* Reads a buffer line from infolist.
* Read a buffer line from infolist.
*/
void
@@ -704,7 +702,7 @@ upgrade_weechat_read_buffer_line (struct t_infolist *infolist)
}
/*
* Reads a nicklist from infolist.
* Read a nicklist from infolist.
*/
void
@@ -712,7 +710,6 @@ upgrade_weechat_read_nicklist (struct t_infolist *infolist)
{
struct t_gui_nick_group *ptr_group;
const char *type, *name, *group_name, *ptr_id;
char *error;
long long id;
if (!upgrade_current_buffer)
@@ -731,9 +728,7 @@ upgrade_weechat_read_nicklist (struct t_infolist *infolist)
ptr_id = infolist_string (infolist, "id");
if (ptr_id)
{
error = NULL;
id = strtoll (ptr_id, &error, 10);
if (!error || error[0])
if (!util_parse_longlong (ptr_id, 10, &id))
id = -1;
}
}
@@ -781,7 +776,7 @@ upgrade_weechat_read_nicklist (struct t_infolist *infolist)
}
/*
* Reads hotlist from infolist.
* Read hotlist from infolist.
*/
void
@@ -832,7 +827,7 @@ upgrade_weechat_read_hotlist (struct t_infolist *infolist)
}
/*
* Reads WeeChat upgrade file.
* Read WeeChat upgrade file.
*/
int
@@ -898,9 +893,9 @@ upgrade_weechat_read_cb (const void *pointer, void *data,
}
/*
* Loads WeeChat upgrade file.
* Load WeeChat upgrade file.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -956,7 +951,7 @@ upgrade_weechat_load (void)
}
/*
* Removes a .upgrade file (callback called for each .upgrade file in WeeChat
* Remove a .upgrade file (callback called for each .upgrade file in WeeChat
* home directory).
*/
@@ -975,7 +970,7 @@ upgrade_weechat_remove_file_cb (void *data, const char *filename)
}
/*
* Removes *.upgrade files after upgrade and send signal "weechat_upgrade_done".
* Remove *.upgrade files after upgrade and send signal "weechat_upgrade_done".
*/
void
+21 -17
View File
@@ -89,12 +89,14 @@ struct t_url_constant url_protocols[] =
URL_DEF_CONST(PROTO, SMTP),
URL_DEF_CONST(PROTO, SMTPS),
URL_DEF_CONST(PROTO, RTSP),
#if LIBCURL_VERSION_NUM < 0x081400 /* < 8.20.0 */
URL_DEF_CONST(PROTO, RTMP),
URL_DEF_CONST(PROTO, RTMPT),
URL_DEF_CONST(PROTO, RTMPE),
URL_DEF_CONST(PROTO, RTMPTE),
URL_DEF_CONST(PROTO, RTMPS),
URL_DEF_CONST(PROTO, RTMPTS),
#endif
URL_DEF_CONST(PROTO, GOPHER),
URL_DEF_CONST(PROTO, SMB),
URL_DEF_CONST(PROTO, SMBS),
@@ -123,7 +125,9 @@ struct t_url_constant url_auth[] =
URL_DEF_CONST(AUTH, NTLM),
URL_DEF_CONST(AUTH, ANY),
URL_DEF_CONST(AUTH, ANYSAFE),
#if LIBCURL_VERSION_NUM < 0x081500 /* < 8.21.0 */
URL_DEF_CONST(AUTH, DIGEST_IE),
#endif
URL_DEF_CONST(AUTH, ONLY),
#if LIBCURL_VERSION_NUM < 0x080800 /* < 8.8.0 */
URL_DEF_CONST(AUTH, NTLM_WB),
@@ -681,9 +685,9 @@ struct t_url_option url_options[] =
/*
* Searches for a constant in array of constants.
* Search for a constant in array of constants.
*
* Returns index of constant, -1 if not found.
* Return index of constant, -1 if not found.
*/
int
@@ -707,7 +711,7 @@ weeurl_search_constant (struct t_url_constant *constants, const char *name)
}
/*
* Gets value of mask using constants.
* Get value of mask using constants.
*
* Argument "string_mask" has format: "const1+const2+const3".
*/
@@ -750,9 +754,9 @@ weeurl_get_mask_value (struct t_url_constant *constants,
}
/*
* Searches for an URL option in table of options.
* Search for an URL option in table of options.
*
* Returns index of option, -1 if not found.
* Return index of option, -1 if not found.
*/
int
@@ -776,7 +780,7 @@ weeurl_search_option (const char *name)
}
/*
* Reads data from a file (callback called to read a file).
* Read data from a file (callback called to read a file).
*/
size_t
@@ -786,7 +790,7 @@ weeurl_read_stream (void *buffer, size_t size, size_t nmemb, void *stream)
}
/*
* Writes data in a file (callback called to write a file).
* Write data in a file (callback called to write a file).
*/
size_t
@@ -796,7 +800,7 @@ weeurl_write_stream (void *buffer, size_t size, size_t nmemb, void *stream)
}
/*
* Adds data to a dynamic string (callback called to catch stdout).
* Add data to a dynamic string (callback called to catch stdout).
*/
size_t
@@ -811,7 +815,7 @@ weeurl_write_string (void *buffer, size_t size, size_t nmemb, void *string)
}
/*
* Sets option in CURL easy handle (callback called for each option in hashtable
* Set option in CURL easy handle (callback called for each option in hashtable
* "options").
*/
@@ -918,7 +922,7 @@ weeurl_option_map_cb (void *data,
}
/*
* Sets proxy in CURL easy handle.
* Set proxy in CURL easy handle.
*/
void
@@ -966,7 +970,7 @@ weeurl_set_proxy (CURL *curl, struct t_proxy *proxy)
}
/*
* Downloads URL using options.
* Download URL using options.
*
* If output is not NULL, it must be a hashtable with keys and values of type
* "string". The following keys may be added in the hashtable,
@@ -980,7 +984,7 @@ weeurl_set_proxy (CURL *curl, struct t_proxy *proxy)
* error | error message (set only in case of error)
*
* If timeout is 0, the function blocks until the end of the transfer.
* If timeout (in milliseconds) is > 0, the function returns an error in the
* If timeout (in milliseconds) is > 0, the function return an error in the
* output hashtable if the timeout is reached while the transfer is still
* active.
*
@@ -988,7 +992,7 @@ weeurl_set_proxy (CURL *curl, struct t_proxy *proxy)
* pointed integer becomes different from 0 (set by the caller of this function),
* the download is immediately stopped with an error.
*
* Returns:
* Return:
* 0: OK
* 1: invalid URL
* 2: error downloading URL
@@ -1259,9 +1263,9 @@ end:
}
/*
* Adds an URL option in an infolist.
* Add an URL option in an infolist.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -1317,7 +1321,7 @@ weeurl_option_add_to_infolist (struct t_infolist *infolist,
}
/*
* Initializes URL.
* Initialize URL.
*/
void
@@ -1327,7 +1331,7 @@ weeurl_init (void)
}
/*
* Ends URL.
* End URL.
*/
void
+38 -38
View File
@@ -44,7 +44,7 @@ int local_utf8 = 0;
/*
* Initializes UTF-8 in WeeChat.
* Initialize UTF-8 in WeeChat.
*/
void
@@ -54,9 +54,9 @@ utf8_init (void)
}
/*
* Checks if a string has some 8-bit chars.
* Check if a string has some 8-bit chars.
*
* Returns:
* Return:
* 1: string has 8-bit chars
* 0: string has only 7-bit chars
*/
@@ -74,12 +74,12 @@ utf8_has_8bits (const char *string)
}
/*
* Checks if a string is UTF-8 valid.
* Check if a string is UTF-8 valid.
*
* If length is <= 0, checks whole string.
* If length is > 0, checks only this number of chars (not bytes).
*
* Returns:
* Return:
* 1: string is UTF-8 valid
* 0: string it not UTF-8 valid, and then if error is not NULL, it is set
* with first non valid UTF-8 char in string
@@ -167,7 +167,7 @@ invalid:
}
/*
* Normalizes an string: removes non UTF-8 chars and replaces them by a
* Normalize an string: removes non UTF-8 chars and replaces them by a
* "replacement" char.
*/
@@ -186,9 +186,9 @@ utf8_normalize (char *string, char replacement)
}
/*
* Gets pointer to previous UTF-8 char in a string.
* Get pointer to previous UTF-8 char in a string.
*
* Returns pointer to previous UTF-8 char, NULL if not found (for example
* Return pointer to previous UTF-8 char, NULL if not found (for example
* "string_start" was reached).
*/
@@ -234,9 +234,9 @@ utf8_prev_char (const char *string_start, const char *string)
}
/*
* Gets pointer to next UTF-8 char in a string.
* Get pointer to next UTF-8 char in a string.
*
* Returns pointer to next UTF-8 char, NULL if string was NULL.
* Return pointer to next UTF-8 char, NULL if string was NULL.
*/
const char *
@@ -277,9 +277,9 @@ utf8_next_char (const char *string)
}
/*
* Gets pointer to the beginning of the UTF-8 line in a string.
* Get pointer to the beginning of the UTF-8 line in a string.
*
* Returns pointer to the beginning of the UTF-8 line, NULL if string was NULL.
* Return pointer to the beginning of the UTF-8 line, NULL if string was NULL.
*/
const char *
@@ -300,9 +300,9 @@ utf8_beginning_of_line (const char *string_start, const char *string)
}
/*
* Gets pointer to the end of the UTF-8 line in a string.
* Get pointer to the end of the UTF-8 line in a string.
*
* Returns pointer to the end of the UTF-8 line, NULL if string was NULL.
* Return pointer to the end of the UTF-8 line, NULL if string was NULL.
*/
const char *
@@ -320,9 +320,9 @@ utf8_end_of_line (const char *string)
}
/*
* Gets UTF-8 char as an integer.
* Get UTF-8 char as an integer.
*
* Returns the UTF-8 char as integer number.
* Return the UTF-8 char as integer number.
*/
int
@@ -377,7 +377,7 @@ utf8_char_int (const char *string)
}
/*
* Converts a unicode char (as unsigned integer) to a string.
* Convert a unicode char (as unsigned integer) to a string.
*
* The string must have a size >= 5
* (4 bytes for the UTF-8 char + the final '\0').
@@ -385,7 +385,7 @@ utf8_char_int (const char *string)
* In case of error (if unicode value is > 0x1FFFFF), the string is set to an
* empty string (string[0] == '\0').
*
* Returns the number of bytes in the UTF-8 char (not counting the final '\0').
* Return the number of bytes in the UTF-8 char (not counting the final '\0').
*/
int
@@ -443,9 +443,9 @@ utf8_int_string (unsigned int unicode_value, char *string)
}
/*
* Gets size of UTF-8 char (in bytes).
* Get size of UTF-8 char (in bytes).
*
* Returns an integer between 0 and 4.
* Return an integer between 0 and 4.
*/
int
@@ -464,10 +464,10 @@ utf8_char_size (const char *string)
}
/*
* Gets length of an UTF-8 string in number of chars (not bytes).
* Get length of an UTF-8 string in number of chars (not bytes).
* Result is <= strlen (string).
*
* Returns length of string (>= 0).
* Return length of string (>= 0).
*/
int
@@ -488,9 +488,9 @@ utf8_strlen (const char *string)
}
/*
* Gets length of an UTF-8 string for N bytes max in string.
* Get length of an UTF-8 string for N bytes max in string.
*
* Returns length of string (>= 0).
* Return length of string (>= 0).
*/
int
@@ -513,9 +513,9 @@ utf8_strnlen (const char *string, int bytes)
}
/*
* Gets number of chars needed on screen to display the UTF-8 char.
* Get number of chars needed on screen to display the UTF-8 char.
*
* Returns the number of chars (>= 0).
* Return the number of chars (>= 0).
*/
int
@@ -552,9 +552,9 @@ utf8_char_size_screen (const char *string)
}
/*
* Gets number of chars needed on screen to display the UTF-8 string.
* Get number of chars needed on screen to display the UTF-8 string.
*
* Returns the number of chars (>= 0).
* Return the number of chars (>= 0).
*/
int
@@ -584,9 +584,9 @@ utf8_strlen_screen (const char *string)
}
/*
* Moves forward N chars in an UTF-8 string.
* Move forward N chars in an UTF-8 string.
*
* Returns pointer to the new position in string.
* Return pointer to the new position in string.
*/
const char *
@@ -604,13 +604,13 @@ utf8_add_offset (const char *string, int offset)
}
/*
* Gets real position in UTF-8 string, in bytes.
* Get real position in UTF-8 string, in bytes.
*
* Argument "pos" is a number of chars (not bytes).
*
* Example: ("déca", 2) returns 3.
* Example: ("déca", 2) return 3.
*
* Returns the real position (>= 0).
* Return the real position (>= 0).
*/
int
@@ -635,13 +635,13 @@ utf8_real_pos (const char *string, int pos)
}
/*
* Gets position in UTF-8 string, in chars.
* Get position in UTF-8 string, in chars.
*
* Argument "real_pos" is a number of bytes (not chars).
*
* Example: ("déca", 3) returns 2.
* Example: ("déca", 3) return 2.
*
* Returns the position in string.
* Return the position in string.
*/
int
@@ -664,7 +664,7 @@ utf8_pos (const char *string, int real_pos)
}
/*
* Duplicates an UTF-8 string, with max N chars.
* Duplicate an UTF-8 string, with max N chars.
*
* Note: result must be freed after use.
*/
@@ -688,7 +688,7 @@ utf8_strndup (const char *string, int length)
}
/*
* Copies max N chars from a string to another and adds null byte at the end.
* Copy max N chars from a string to another and adds null byte at the end.
*
* Note: the target string "dest" must be long enough.
*/
+29 -31
View File
@@ -50,12 +50,12 @@
/*
* Parses an integer.
* Parse an integer.
*
* If result is not NULL, *result is set with the parsed integer in case
* there is no error.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -88,12 +88,12 @@ util_parse_int (const char *string, int base, int *result)
}
/*
* Parses a long integer.
* Parse a long integer.
*
* If result is not NULL, *result is set with the parsed long integer in case
* there is no error.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -125,12 +125,12 @@ util_parse_long (const char *string, int base, long *result)
}
/*
* Parses a long long integer.
* Parse a long long integer.
*
* If result is not NULL, *result is set with the parsed long integer in case
* there is no error.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -162,9 +162,9 @@ util_parse_longlong (const char *string, int base, long long *result)
}
/*
* Compares two timeval structures.
* Compare two timeval structures.
*
* Returns:
* Return:
* -1: tv1 < tv2
* 0: tv1 == tv2
* 1: tv1 > tv2
@@ -188,9 +188,9 @@ util_timeval_cmp (struct timeval *tv1, struct timeval *tv2)
}
/*
* Calculates difference between two timeval structures.
* Calculate difference between two timeval structures.
*
* Returns difference in microseconds.
* Return difference in microseconds.
*/
long long
@@ -208,7 +208,7 @@ util_timeval_diff (struct timeval *tv1, struct timeval *tv2)
}
/*
* Adds interval (in microseconds) to a timeval structure.
* Add interval (in microseconds) to a timeval structure.
*/
void
@@ -231,7 +231,7 @@ util_timeval_add (struct timeval *tv, long long interval)
}
/*
* Converts microseconds to a string, using format: "H:MM:SS.mmmmmm"
* Convert microseconds to a string, using format: "H:MM:SS.mmmmmm"
* where: H=hours, MM=minutes, SS=seconds, mmmmmm=microseconds
*
* Note: result must be freed after use.
@@ -256,7 +256,7 @@ util_get_microseconds_string (unsigned long long microseconds)
}
/*
* Converts date to a string, using format of option "weechat.look.time_format"
* Convert date to a string, using format of option "weechat.look.time_format"
* (can be localized).
*/
@@ -279,7 +279,7 @@ util_get_time_string (const time_t *date)
}
/*
* Formats date and time like strftime (but with timeval structure as input)
* Format date and time like strftime (but with timeval structure as input)
* and adds extra specifiers:
* - "%@": return the date expressed in Coordinated Universal Time (UTC)
* instead of date relative to the user's specified timezone
@@ -383,7 +383,7 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
}
/*
* Parses a date/time string, which can be one of these formats:
* Parse a date/time string, which can be one of these formats:
*
* Format | Example
* -------------------------------------+----------------------------------
@@ -399,7 +399,7 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
* UTC time | 19:04:55.123456Z
* Timestamp date | 1756580695.123456
*
* Notes :
* Notes:
*
* - For ISO 8601, characters `T' and `Z` can be used in lower case: `t` and `z`.
* - The timezone offset format is `[+/-]hh:mm`, `[+/-]hhmm` or `[+/-]hh`.
@@ -408,7 +408,7 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
* A dot (`.`) or comma (`,`) can be used to separate seconds from the other
* digits.
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -416,8 +416,8 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
int
util_parse_time (const char *datetime, struct timeval *tv)
{
char *string, *pos, *pos2, *pos_colon, *pos_hyphen, *pos_dot;
char str_usec[16], *error, str_date[128];
const char *pos_colon, *pos_hyphen, *pos_dot;
char *pos, *pos2, *string, str_usec[16], str_date[128];
struct tm tm_date, tm_date_gm, tm_date_local, *local_time;
time_t time_now, time_gm, time_local;
long long value;
@@ -488,9 +488,7 @@ util_parse_time (const char *datetime, struct timeval *tv)
{
strcat (str_usec, "0");
}
error = NULL;
value = strtoll (str_usec, &error, 10);
if (error && !error[0])
if (util_parse_longlong (str_usec, 10, &value))
{
/*
* just in case: this should not happen as minus is not
@@ -655,9 +653,7 @@ util_parse_time (const char *datetime, struct timeval *tv)
else
{
/* timestamp format: "1704402062" */
error = NULL;
value = strtoll (string, &error, 10);
if (error && !error[0] && (value >= 0))
if (util_parse_longlong (string, 10, &value) && (value >= 0))
{
tv->tv_sec = (time_t)value;
rc = 1;
@@ -676,7 +672,7 @@ util_parse_time (const char *datetime, struct timeval *tv)
}
/*
* Returns difference between two times.
* Return difference between two times.
*
* The following variables are set, if pointer is not NULL:
* - number of total seconds between the two times (basic subtraction)
@@ -705,7 +701,7 @@ util_get_time_diff (time_t time1, time_t time2,
}
/*
* Parses a string with a delay and optional unit, returns the delay in
* Parse a string with a delay and optional unit, return the delay in
* microseconds.
*
* The delay is a number followed by a unit which can be:
@@ -722,7 +718,7 @@ util_get_time_diff (time_t time1, time_t time2,
* - 60000000: minutes
* - 3600000000: hours
*
* Returns:
* Return:
* 1: OK
* 0: error
*/
@@ -777,9 +773,10 @@ util_parse_delay (const char *string_delay, unsigned long long default_factor,
if (!str_number)
return 0;
errno = 0;
error = NULL;
*delay = strtoull (str_number, &error, 10);
if (!error || error[0])
if ((errno == ERANGE) || !error || error[0])
{
free (str_number);
*delay = 0;
@@ -794,7 +791,7 @@ util_parse_delay (const char *string_delay, unsigned long long default_factor,
}
/*
* Gets version number (integer) with a version as string.
* Get version number (integer) with a version as string.
*
* Non-digit chars like "-dev" are ignored.
*
@@ -846,9 +843,10 @@ util_version_number (const char *version)
buf[index_buf] = '\0';
if (buf[0])
{
errno = 0;
error = NULL;
number = strtoul (buf, &error, 10);
if (error && !error[0])
if ((errno != ERANGE) && error && !error[0])
{
if (number > 0xFF)
number = 0xFF;
+8 -8
View File
@@ -30,7 +30,7 @@
/*
* Returns package name ("weechat").
* Return package name ("weechat").
*/
const char *
@@ -40,7 +40,7 @@ version_get_name (void)
}
/*
* Returns the WeeChat version.
* Return the WeeChat version.
*
* Examples:
* 0.3.9-dev
@@ -55,7 +55,7 @@ version_get_version (void)
}
/*
* Returns the package name ("weechat") + WeeChat version.
* Return the package name ("weechat") + WeeChat version.
*
* Examples:
* weechat 0.3.9-dev
@@ -70,7 +70,7 @@ version_get_name_version (void)
}
/*
* Returns the output of "git describe" (non-empty only for a devel version,
* Return the output of "git describe" (non-empty only for a devel version,
* if compilation was made using the git repository, if git command was found).
*
* Example:
@@ -84,7 +84,7 @@ version_get_git (void)
}
/*
* Returns the WeeChat version + the git version (between brackets, and only if
* Return the WeeChat version + the git version (between brackets, and only if
* it is not empty).
*
* Examples:
@@ -112,7 +112,7 @@ version_get_version_with_git (void)
}
/*
* Returns date of WeeChat compilation.
* Return date of WeeChat compilation.
*
* Example:
* Dec 16 2012
@@ -125,7 +125,7 @@ version_get_compilation_date (void)
}
/*
* Returns time of WeeChat compilation.
* Return time of WeeChat compilation.
*
* Example:
* 18:10:22
@@ -138,7 +138,7 @@ version_get_compilation_time (void)
}
/*
* Returns date/time of WeeChat compilation.
* Return date/time of WeeChat compilation.
*
* Example:
* Dec 16 2012 18:10:22

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