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

Compare commits

..

34 Commits

Author SHA1 Message Date
Sébastien Helleu 0cd736af22 relay/api: fix memory leak in resources "handshake", "input" and "completion" 2026-06-17 21:55:06 +02:00
aizu-m 703120bbfb xfer: fix out-of-bounds write in xfer_dcc_resume_hash (#2326) 2026-06-17 21:31:53 +02:00
aizu-m 12c4170fbf 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:03:20 +02:00
Sébastien Helleu e9138c5d55 core: add CVE IDs in ChangeLog 2026-06-09 22:12:25 +02:00
Sébastien Helleu eb8c8641ea Version 4.9.3-dev 2026-06-07 09:28:03 +02:00
Sébastien Helleu bd6455d07f Version 4.9.2 2026-06-07 09:25:09 +02:00
Sébastien Helleu 8d3180fa78 tests: increase buffer size for injection of fake IRC message 2026-06-07 08:48:47 +02:00
aizu-m 519ab4e7bb relay: fix out-of-bounds read in relay_http_print_log_request (#2324) 2026-06-06 11:20:05 +02:00
Sébastien Helleu 3c36fd7412 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:38:55 +02:00
Sébastien Helleu b62c97dbe3 core: add links to issues in ChangeLog (#2321, #2322) 2026-06-06 07:25:19 +02:00
aizu-m f91f92b48f xfer: fix out-of-bounds read in xfer_chat_recv_cb on empty line (#2323) 2026-06-06 07:21:55 +02:00
aizu-m 30529057c8 irc: fix out-of-bounds read in DCC command with quoted filename 2026-06-04 23:20:59 +02:00
Sébastien Helleu a69f356182 tests: add tests on function xfer_file_find_filename 2026-06-04 23:20:26 +02:00
aizu-m 1438255a87 xfer: replace directory separator in remote nick by underscore in download filename 2026-06-04 23:20:08 +02:00
Sébastien Helleu d15ce789a0 api: fix infinite loop in function string_replace when the search string is empty 2026-06-03 21:17:32 +02:00
Sébastien Helleu 377b6da43d 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 22:09:27 +02:00
Sébastien Helleu 8b1b06a407 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 22:08:39 +02:00
Sébastien Helleu c09c1bf2fc ci: enable ruby 3.3 module on Rocky Linux 9 2026-05-31 15:19:37 +02:00
Sébastien Helleu c83afb9a06 ci: install dnf-plugins-core on Rocky Linux 9 for dnf config-manager 2026-05-31 15:18:42 +02:00
Sébastien Helleu ed9535a43f Version 4.9.2-dev 2026-05-31 13:50:17 +02:00
Sébastien Helleu 2148829ebe Version 4.9.1 2026-05-31 13:46:04 +02:00
Sébastien Helleu 1ca2a00255 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:14:24 +02:00
Sébastien Helleu c737373d17 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:12:09 +02:00
Sébastien Helleu 30230498b2 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:11:53 +02:00
Sébastien Helleu 35699ea802 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:07:23 +02:00
Sébastien Helleu 5e4c165dad ci: bump poexam to version 0.0.10 2026-05-31 08:32:59 +02:00
Sébastien Helleu 23fb6bfe88 core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals (issue #1742) 2026-05-23 13:41:40 +02:00
Sébastien Helleu ec03437f9e irc: fix tag in message with list of names when joining a channel
The message with list of nicks on the channel has now tag irc_353 instead of
irc_366.
2026-05-23 13:22:33 +02:00
Sébastien Helleu 564ad2d5cd core: set max curl version to 8.21.0 for symbol CURLAUTH_DIGEST_IE 2026-05-23 13:20:58 +02:00
Sébastien Helleu f935aa3f9f ci: bump Lua from 5.3 to 5.4 2026-05-23 13:20:44 +02:00
Sébastien Helleu 76a7d5d3bd debian: bump Lua from 5.3 to 5.4 2026-05-23 13:20:43 +02:00
Luc Schrijvers f0f77e1bd9 Build fix for Haiku 2026-05-23 13:19:08 +02:00
LuK1337 8c0a3b4d81 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-05-23 12:40:20 +02:00
Sébastien Helleu a4a06f255a Version 4.9.1-dev 2026-05-23 12:40:02 +02:00
147 changed files with 2389 additions and 2917 deletions
+13 -58
View File
@@ -51,7 +51,7 @@ env:
ruby-pygments.rb ruby-pygments.rb
tcl8.6-dev tcl8.6-dev
zlib1g-dev zlib1g-dev
WEECHAT_DEPS_REDHAT: >- WEECHAT_DEPS_ROCKYLINUX: >-
asciidoctor asciidoctor
aspell-devel aspell-devel
cjson-devel cjson-devel
@@ -118,7 +118,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -131,7 +131,7 @@ jobs:
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }} sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }}
pipx install msgcheck ruff pipx install msgcheck ruff
cargo install --version 0.0.11 poexam cargo install --version 0.0.10 poexam
- name: Check gettext files (msgcheck) - name: Check gettext files (msgcheck)
run: msgcheck po/*.po run: msgcheck po/*.po
@@ -153,7 +153,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
config: config:
- name: "gcc" - name: "gcc"
cc: "gcc" cc: "gcc"
@@ -194,8 +194,6 @@ jobs:
name: "install (${{ matrix.os }}, ${{ matrix.config.name }})" name: "install (${{ matrix.os }}, ${{ matrix.config.name }})"
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env:
PHP_INI_SCAN_DIR: /tmp/php-noscan # embed PHP loads no add-on extensions (see #2009)
steps: steps:
@@ -205,7 +203,8 @@ jobs:
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }} sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }}
mkdir -p /tmp/php-noscan # uninstall php imagick as is causes a crash when loading php plugin (see #2009)
sudo apt-get --yes purge php8.3-imagick
pipx install schemathesis pipx install schemathesis
- name: Build and run tests - name: Build and run tests
@@ -254,58 +253,12 @@ jobs:
lcov --list coverage.info lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error' 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: install_rockylinux:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
config: config:
- name: "gcc" - name: "gcc"
cc: "gcc" cc: "gcc"
@@ -331,7 +284,7 @@ jobs:
dnf config-manager --set-enabled crb dnf config-manager --set-enabled crb
# pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8) # pin a working ruby stream (ruby:4.0 has broken module metadata on Rocky 9.8)
dnf module enable -y ruby:3.3 dnf module enable -y ruby:3.3
dnf install -y ${{ env.WEECHAT_DEPS_REDHAT }} dnf install -y ${{ env.WEECHAT_DEPS_ROCKYLINUX }}
- name: Build and run tests - name: Build and run tests
env: env:
@@ -356,7 +309,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
config: config:
# - name: "gcc" # - name: "gcc"
# cc: "gcc" # cc: "gcc"
@@ -451,7 +404,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -488,7 +441,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- ubuntu-26.04 - ubuntu-24.04
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -506,6 +459,8 @@ jobs:
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_DEPS_UBUNTU }} 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
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v3 uses: github/codeql-action/init@v3
-1
View File
@@ -573,7 +573,6 @@ users
usr usr
util util
valer valer
valgrind
verbose verbose
verify verify
versiongit versiongit
+3 -2
View File
@@ -7,14 +7,15 @@ select = [
"checks", "checks",
] ]
ignore = [ ignore = [
"acronyms",
"brackets", "brackets",
"double-quotes", "double-quotes",
"double-words", "double-words",
"functions", "header",
"html-tags", "html-tags",
"paths", "paths",
"punc-space-str",
"unchanged", "unchanged",
"unicode-ctrl",
"urls", "urls",
] ]
path_words = "." path_words = "."
+1 -28
View File
@@ -6,39 +6,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
# WeeChat ChangeLog # WeeChat ChangeLog
## Version 4.10.0 (under dev) ## Version 4.9.3 (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 ### 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)) - 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" - 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)) - 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) ## Version 4.9.2 (2026-06-07)
+1 -1
View File
@@ -246,7 +246,7 @@ list(APPEND EXTRA_LIBS ${ZLIB_LIBRARY})
# Check for zstd # Check for zstd
if(ENABLE_ZSTD) if(ENABLE_ZSTD)
pkg_check_modules(LIBZSTD REQUIRED libzstd>=1.4.0) pkg_check_modules(LIBZSTD REQUIRED libzstd)
include_directories(${LIBZSTD_INCLUDE_DIRS}) include_directories(${LIBZSTD_INCLUDE_DIRS})
list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS}) list(APPEND EXTRA_LIBS ${LIBZSTD_LDFLAGS})
add_definitions(-DHAVE_ZSTD) add_definitions(-DHAVE_ZSTD)
+2 -1
View File
@@ -19,7 +19,8 @@ First, some basic things:
### Security reports ### Security reports
Please **DO NOT** file a GitHub issue for security related problems; see [SECURITY.md](SECURITY.md) instead. Please **DO NOT** file a GitHub issue for security related problems, but send an
email to [security@weechat.org](mailto:security@weechat.org) instead.
### Required info ### Required info
+4 -4
View File
@@ -27,11 +27,11 @@ Homepage: [https://weechat.org/](https://weechat.org/)
## Features ## 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. - **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 (WSL and Cygwin). - **Multi-platform**: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Haiku, macOS and Windows (Bash/Ubuntu and Cygwin).
- **Multi-protocol**: WeeChat is designed to support multiple protocols via plugins, like IRC. - **Multi-protocols**: WeeChat is designed to support multiple protocols by 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). - **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. - **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. - **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. - **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). - **Free software**: WeeChat is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html).
@@ -49,7 +49,7 @@ For detailed instructions, please check the [WeeChat user's guide](https://weech
## Semantic versioning ## Semantic versioning
WeeChat follows "practical" semantic versioning; see [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning). WeeChat is following a "practical" semantic versioning, see file [CONTRIBUTING.md](CONTRIBUTING.md#semantic-versioning).
## Copyright ## Copyright
-26
View File
@@ -1,26 +0,0 @@
<!--
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,19 +13,6 @@ 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). 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 ## Version 4.8.0
### IRC temporary servers ### IRC temporary servers
+11 -36
View File
@@ -30,37 +30,12 @@ if(ENABLE_MAN OR ENABLE_DOC)
set(SCRIPTING_LANG de en fr it ja pl sr) set(SCRIPTING_LANG de en fr it ja pl sr)
set(FAQ_LANG de en es 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(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
set(RELAY_API_LANG en fr sr) set(RELAY_API_LANG en fr)
set(RELAY_WEECHAT_LANG en fr ja sr) set(RELAY_WEECHAT_LANG en fr ja sr)
set(DEV_LANG en fr ja sr) set(DEV_LANG en fr ja sr)
find_package(Asciidoctor) find_package(Asciidoctor)
if(ASCIIDOCTOR_FOUND) 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 # common asciidoctor arguments
set(ASCIIDOCTOR_ARGS set(ASCIIDOCTOR_ARGS
-v -v
@@ -71,8 +46,8 @@ if(ENABLE_MAN OR ENABLE_DOC)
-a revnumber="${VERSION}" -a revnumber="${VERSION}"
-a sectanchors -a sectanchors
-a source-highlighter=pygments -a source-highlighter=pygments
-a pygments-style=${PYGMENTS_LIGHT_STYLE} -a pygments-style=native
-a docinfodir="${CMAKE_CURRENT_BINARY_DIR}" -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}"
-a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen" -a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
) )
@@ -230,7 +205,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html" 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" COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
DEPENDS DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
@@ -251,7 +226,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html" 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" 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 DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
doc-autogen doc-autogen
@@ -275,7 +250,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html" 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" COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
DEPENDS DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
doc-autogen doc-autogen
@@ -293,7 +268,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html" 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" COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
DEPENDS DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
@@ -308,7 +283,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html" 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" COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
DEPENDS DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
@@ -323,7 +298,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html" 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" 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 DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc" "${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/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
@@ -339,7 +314,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html" 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" 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 DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc" "${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/attributes-${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
@@ -355,7 +330,7 @@ if(ENABLE_MAN OR ENABLE_DOC)
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html" 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" COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
DEPENDS DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/docinfo.html" "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+1 -1
View File
@@ -212,7 +212,7 @@ WeeChat optional sind:
| asciidoctor | ≥ 1.5.4 | asciidoctor | ≥ 1.5.4
| zum Erstellen der man page und der Dokumentation. | zum Erstellen der man page und der Dokumentation.
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Build Dokumentation. | Build Dokumentation.
| libcpputest-dev | ≥ 3.4 | libcpputest-dev | ≥ 3.4
+26 -13
View File
@@ -26,6 +26,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
--header-details-color: #aaa; --header-details-color: #aaa;
--border: 1px solid #444; --border: 1px solid #444;
--code-bg-color: #252525; --code-bg-color: #252525;
--pre-color: #ddd;
--pre-bg-color: #202020;
--pre-code-bg-color: #202020;
--keyseq-color: #777; --keyseq-color: #777;
--kbd-bg-color: #252525; --kbd-bg-color: #252525;
--kbd-border: 1px solid #333; --kbd-border: 1px solid #333;
@@ -36,11 +39,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
--icon-caution-color: #bf3400; --icon-caution-color: #bf3400;
--icon-important-color: #f44336; --icon-important-color: #f44336;
--mark-bg-color: #007; --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) { @media (not (prefers-color-scheme: dark)), (prefers-color-scheme: light) {
@@ -60,6 +59,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
--border: 1px solid #dddddf; --border: 1px solid #dddddf;
--code-bg-color: #f7f7f8; --code-bg-color: #f7f7f8;
--keyseq-color: #333c; --keyseq-color: #333c;
--pre-color: #353535;
--pre-bg-color: #f7f7f8;
--pre-code-bg-color: #202020;
--kbd-bg-color: #f7f7f7; --kbd-bg-color: #f7f7f7;
--kbd-border: 1px solid #ccc; --kbd-border: 1px solid #ccc;
--kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff; --kbd-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;
@@ -69,9 +71,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
--icon-caution-color: #ff0000; --icon-caution-color: #ff0000;
--icon-important-color: #bf0000; --icon-important-color: #bf0000;
--mark-bg-color: #9df; --mark-bg-color: #9df;
--pre-bevel-light: #e5e5e7;
--pre-bevel-dark: #b4b4b8;
--pre-bevel-bg: #f6f6f7;
} }
} }
@@ -146,10 +145,6 @@ code, .prettyprint {
pre { pre {
color: var(--pre-color) !important; 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 { pre > code {
@@ -167,8 +162,8 @@ kbd {
color: var(--body-color); color: var(--body-color);
} }
.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "], pre.pygments { .literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] {
background-color: var(--pre-bg-color, var(--pre-bevel-bg)); background-color: var(--pre-bg-color);
color: var(--body-color); color: var(--body-color);
} }
@@ -205,6 +200,24 @@ mark {
color: var(--body-color); 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 */ /* asciidoctor styles tuning */
#header, #content, #footnotes, #footer { #header, #content, #footnotes, #footer {
+5 -5
View File
@@ -4348,7 +4348,7 @@ Prototype:
[source,c] [source,c]
---- ----
int weechat_mkdir_home (const char *directory, int mode); int weechat_mkdir_home (char *directory, int mode);
---- ----
Arguments: Arguments:
@@ -4395,7 +4395,7 @@ Prototype:
[source,c] [source,c]
---- ----
int weechat_mkdir (const char *directory, int mode); int weechat_mkdir (char *directory, int mode);
---- ----
Arguments: Arguments:
@@ -4436,7 +4436,7 @@ Prototype:
[source,c] [source,c]
---- ----
int weechat_mkdir_parents (const char *directory, int mode); int weechat_mkdir_parents (char *directory, int mode);
---- ----
Arguments: Arguments:
@@ -7709,7 +7709,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file, struct t_config_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
---- ----
Arguments: Arguments:
@@ -7731,7 +7731,7 @@ C example:
struct t_config_file *ptr_config_file; struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *option_name; char *option_name;
weechat_config_search_with_string ("file.section.option", weechat_config_search_with_string ("file.section.option",
&ptr_config_file, &ptr_config_file,
+5 -57
View File
@@ -541,8 +541,7 @@ HTTP/1.1 200 OK
"plugin": "core", "plugin": "core",
"name": "weechat" "name": "weechat"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823423765, "id": 1709932823423765,
@@ -572,8 +571,7 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3", "tls_version": "TLS1.3",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823649069, "id": 1709932823649069,
@@ -601,8 +599,7 @@ HTTP/1.1 200 OK
"nick": "alice", "nick": "alice",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
} }
] ]
---- ----
@@ -658,8 +655,7 @@ 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", "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": [] "tags": []
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -706,7 +702,6 @@ HTTP/1.1 200 OK
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": [],
"last_read_line_id": -1,
"nicklist_root": { "nicklist_root": {
"id": 0, "id": 0,
"parent_group_id": -1, "parent_group_id": -1,
@@ -905,8 +900,7 @@ HTTP/1.1 200 OK
"key": "up", "key": "up",
"command": "/fset -up" "command": "/fset -up"
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -1179,51 +1173,6 @@ 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]] [[resource_input]]
=== Input === Input
@@ -1555,7 +1504,6 @@ Body types that can be returned:
* `nick_group` (object) * `nick_group` (object)
* `nick` (object) * `nick` (object)
* `hotlist` (object) * `hotlist` (object)
* `scripts` (array)
* `ping` (object) * `ping` (object)
[TIP] [TIP]
+1 -1
View File
@@ -210,7 +210,7 @@ WeeChat:
| asciidoctor | ≥ 1.5.4 | asciidoctor | ≥ 1.5.4
| Build man page and documentation. | Build man page and documentation.
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Build documentation. | Build documentation.
| libcpputest-dev | ≥ 3.4 | libcpputest-dev | ≥ 3.4
+5 -5
View File
@@ -4424,7 +4424,7 @@ Prototype :
[source,c] [source,c]
---- ----
int weechat_mkdir_home (const char *directory, int mode); int weechat_mkdir_home (char *directory, int mode);
---- ----
Paramètres : Paramètres :
@@ -4471,7 +4471,7 @@ Prototype :
[source,c] [source,c]
---- ----
int weechat_mkdir (const char *directory, int mode); int weechat_mkdir (char *directory, int mode);
---- ----
Paramètres : Paramètres :
@@ -4512,7 +4512,7 @@ Prototype :
[source,c] [source,c]
---- ----
int weechat_mkdir_parents (const char *directory, int mode); int weechat_mkdir_parents (char *directory, int mode);
---- ----
Paramètres : 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_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
---- ----
Paramètres : Paramètres :
@@ -7861,7 +7861,7 @@ Exemple en C :
struct t_config_file *ptr_config_file; struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *option_name; char *option_name;
weechat_config_search_with_string ("fichier.section.option", weechat_config_search_with_string ("fichier.section.option",
&ptr_config_file, &ptr_config_file,
+5 -57
View File
@@ -551,8 +551,7 @@ HTTP/1.1 200 OK
"plugin": "core", "plugin": "core",
"name": "weechat" "name": "weechat"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823423765, "id": 1709932823423765,
@@ -581,8 +580,7 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3", "tls_version": "TLS1.3",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823649069, "id": 1709932823649069,
@@ -609,8 +607,7 @@ HTTP/1.1 200 OK
"nick": "alice", "nick": "alice",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
} }
] ]
---- ----
@@ -666,8 +663,7 @@ 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", "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": [] "tags": []
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -713,7 +709,6 @@ HTTP/1.1 200 OK
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": [],
"last_read_line_id": -1,
"nicklist_root": { "nicklist_root": {
"id": 0, "id": 0,
"parent_group_id": -1, "parent_group_id": -1,
@@ -911,8 +906,7 @@ HTTP/1.1 200 OK
"key": "up", "key": "up",
"command": "/fset -up" "command": "/fset -up"
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -1191,51 +1185,6 @@ 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]] [[resource_input]]
=== Entrée === Entrée
@@ -1575,7 +1524,6 @@ Les types de corps qui peuvent être retournés :
* `nick_group` (objet) * `nick_group` (objet)
* `nick` (objet) * `nick` (objet)
* `hotlist` (objet) * `hotlist` (objet)
* `scripts` (tableau)
* `ping` (objet) * `ping` (objet)
[TIP] [TIP]
+1 -1
View File
@@ -208,7 +208,7 @@ Le tableau suivant liste les paquets optionnels pour compiler WeeChat :
| asciidoctor | ≥ 1.5.4 | asciidoctor | ≥ 1.5.4
| Construction de la page man et de la documentation. | Construction de la page man et de la documentation.
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Construction de la documentation. | Construction de la documentation.
| libcpputest-dev | ≥ 3.4 | libcpputest-dev | ≥ 3.4
+5 -5
View File
@@ -4549,7 +4549,7 @@ Prototipo:
[source,c] [source,c]
---- ----
int weechat_mkdir_home (const char *directory, int mode); int weechat_mkdir_home (char *directory, int mode);
---- ----
Argomenti: Argomenti:
@@ -4597,7 +4597,7 @@ Prototipo:
[source,c] [source,c]
---- ----
int weechat_mkdir (const char *directory, int mode); int weechat_mkdir (char *directory, int mode);
---- ----
Argomenti: Argomenti:
@@ -4638,7 +4638,7 @@ Prototipo:
[source,c] [source,c]
---- ----
int weechat_mkdir_parents (const char *directory, int mode); int weechat_mkdir_parents (char *directory, int mode);
---- ----
Argomenti: Argomenti:
@@ -8011,7 +8011,7 @@ void weechat_config_search_with_string (const char *option_name,
struct t_config_file **config_file, struct t_config_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
---- ----
Argomenti: Argomenti:
@@ -8034,7 +8034,7 @@ Esempio in C:
struct t_config_file *ptr_config_file; struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *option_name; char *option_name;
weechat_config_search_with_string ("file.section.option", weechat_config_search_with_string ("file.section.option",
&ptr_config_file, &ptr_config_file,
+1 -1
View File
@@ -245,7 +245,7 @@ WeeChat:
| Build man page and documentation. | Build man page and documentation.
// TRANSLATION MISSING // TRANSLATION MISSING
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Build documentation. | Build documentation.
// TRANSLATION MISSING // TRANSLATION MISSING
+5 -5
View File
@@ -4477,7 +4477,7 @@ WeeChat ホームディレクトリの下にディレクトリを作成。
[source,c] [source,c]
---- ----
int weechat_mkdir_home (const char *directory, int mode); int weechat_mkdir_home (char *directory, int mode);
---- ----
引数: 引数:
@@ -4525,7 +4525,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c] [source,c]
---- ----
int weechat_mkdir (const char *directory, int mode); int weechat_mkdir (char *directory, int mode);
---- ----
引数: 引数:
@@ -4566,7 +4566,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c] [source,c]
---- ----
int weechat_mkdir_parents (const char *directory, int mode); int weechat_mkdir_parents (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_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
---- ----
引数: 引数:
@@ -7838,7 +7838,7 @@ C 言語での使用例:
struct t_config_file *ptr_config_file; struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *option_name; char *option_name;
weechat_config_search_with_string ("file.section.option", weechat_config_search_with_string ("file.section.option",
&ptr_config_file, &ptr_config_file,
+1 -1
View File
@@ -229,7 +229,7 @@ WeeChat:
| man ページと文書のビルド | man ページと文書のビルド
// TRANSLATION MISSING // TRANSLATION MISSING
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Build documentation. | Build documentation.
| libcpputest-dev | 3.4 以上 | libcpputest-dev | 3.4 以上
+1 -1
View File
@@ -210,7 +210,7 @@ WeeChat:
| asciidoctor | ≥ 1.5.4 | asciidoctor | ≥ 1.5.4
| Tworzenie strony man i dokumentacji. | Tworzenie strony man i dokumentacji.
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Dokumentacja budowania. | Dokumentacja budowania.
| libcpputest-dev | ≥ 3.4 | libcpputest-dev | ≥ 3.4
+2 -1
View File
@@ -128,7 +128,8 @@ WeeChat „језгро” се налази у следећим директо
|=== |===
| Путања/фајл | Опис | Путања/фајл | Опис
| core/ | Функције језгра: тачка улаза, интерне структуре. | core/ | Функције језгра: тачка улаза, интерне структуре.
|    core-args.c | Аргументи командне-линије. // TRANSLATION MISSING
|    core-args.c | Command-line arguments.
|    core-arraylist.c | Листе низова. |    core-arraylist.c | Листе низова.
|    core-backtrace.c | Испис трага након краха. |    core-backtrace.c | Испис трага након краха.
|    core-calc.c | Израчунавање резултата израза. |    core-calc.c | Израчунавање резултата израза.
+5 -5
View File
@@ -4209,7 +4209,7 @@ _Ажурирано у верзији 3.2._
[source,c] [source,c]
---- ----
int weechat_mkdir_home (const char *directory, int mode); int weechat_mkdir_home (char *directory, int mode);
---- ----
Аргументи: Аргументи:
@@ -4255,7 +4255,7 @@ weechat.mkdir_home("${weechat_cache_dir}/temp", 0755)
[source,c] [source,c]
---- ----
int weechat_mkdir (const char *directory, int mode); int weechat_mkdir (char *directory, int mode);
---- ----
Аргументи: Аргументи:
@@ -4296,7 +4296,7 @@ weechat.mkdir("/tmp/mydir", 0755)
[source,c] [source,c]
---- ----
int weechat_mkdir_parents (const char *directory, int mode); int weechat_mkdir_parents (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_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
---- ----
Аргументи: Аргументи:
@@ -7510,7 +7510,7 @@ C пример:
struct t_config_file *ptr_config_file; struct t_config_file *ptr_config_file;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *option_name; char *option_name;
weechat_config_search_with_string ("file.section.option", weechat_config_search_with_string ("file.section.option",
&ptr_config_file, &ptr_config_file,
+5 -59
View File
@@ -543,8 +543,7 @@ HTTP/1.1 200 OK
"plugin": "core", "plugin": "core",
"name": "weechat" "name": "weechat"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823423765, "id": 1709932823423765,
@@ -574,8 +573,7 @@ HTTP/1.1 200 OK
"tls_version": "TLS1.3", "tls_version": "TLS1.3",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
}, },
{ {
"id": 1709932823649069, "id": 1709932823649069,
@@ -603,8 +601,7 @@ HTTP/1.1 200 OK
"nick": "alice", "nick": "alice",
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": []
"last_read_line_id": -1
} }
] ]
---- ----
@@ -660,8 +657,7 @@ 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", "message": "Учитани додаци: alias, buflist, charset, exec, fifo, fset, guile, irc, javascript, logger, lua, perl, php, python, relay, ruby, script, spell, tcl, trigger, typing, xfer",
"tags": [] "tags": []
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -708,7 +704,6 @@ HTTP/1.1 200 OK
"host": "~alice@example.com" "host": "~alice@example.com"
}, },
"keys": [], "keys": [],
"last_read_line_id": -1,
"nicklist_root": { "nicklist_root": {
"id": 0, "id": 0,
"parent_group_id": -1, "parent_group_id": -1,
@@ -907,8 +902,7 @@ HTTP/1.1 200 OK
"key": "up", "key": "up",
"command": "/fset -up" "command": "/fset -up"
} }
], ]
"last_read_line_id": -1
} }
---- ----
@@ -1181,53 +1175,6 @@ 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]] [[resource_input]]
=== Input === Input
@@ -1557,7 +1504,6 @@ GUID `258EAFA5-E914-47DA-95CA-C5AB0DC85B11` (SHA-1 се кодира у base64).
* `nick_group` (објекат) * `nick_group` (објекат)
* `nick` (објекат) * `nick` (објекат)
* `hotlist` (објекат) * `hotlist` (објекат)
* `scripts` (низ)
* `ping` (објекат) * `ping` (објекат)
[TIP] [TIP]
+1 -1
View File
@@ -203,7 +203,7 @@ WeeChat мора да се изгради са CMake.
| asciidoctor | ≥ 1.5.4 | asciidoctor | ≥ 1.5.4
| Изградња man странице и документације. | Изградња man странице и документације.
| python3-pygments, ruby-pygments.rb | | ruby-pygments.rb |
| Документација изградње. | Документација изградње.
| libcpputest-dev | ≥ 3.4 | libcpputest-dev | ≥ 3.4
+25 -53
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n" "PO-Revision-Date: 2026-03-12 20:24+0100\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n" "Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: Czech <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: cs\n" "Language: cs\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -164,10 +164,10 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, zkompilováno %s %s\n" "WeeChat %s Copyright %s, zkompilováno %s %s\n"
"Vyvinutý %s <%s> - %s" "Vyvinutý Sébastienem Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "" msgstr ""
@@ -1178,16 +1178,6 @@ msgstr ""
"zpráva: zpráva pro nepřítomnost (pokud není zadána je status nepřítomnosti " "zpráva: zpráva pro nepřítomnost (pokud není zadána je status nepřítomnosti "
"odebrán)" "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" msgid "manage bars"
msgstr "řídit pole" msgstr "řídit pole"
@@ -11816,8 +11806,8 @@ msgstr "jméno serveru"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "získat přezdívku od IRC hosta" msgstr "získat přezdívku od IRC hosta"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC host (jako `:nick!name@server`)" msgstr "IRC host (jako `:nick!name@server.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12047,8 +12037,8 @@ msgstr "%s%s: tenhle buffer není kanál!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13245,7 +13235,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15096,11 +15086,11 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"čárkou rozdělený seznam pluginů pro automatické načtení při spuštění \"*\" " "čá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í " "znamená všechny nalezené pluginy, jméno začínající \"!\" je negativní "
@@ -15108,10 +15098,10 @@ msgstr ""
"pro vybrání několika pluginů (příklady: \"*\" nebo \"*,!lua,!tcl\")" "pro vybrání několika pluginů (příklady: \"*\" nebo \"*,!lua,!tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -15142,11 +15132,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -15256,7 +15241,7 @@ msgstr "Klienti pro přenos:"
#, fuzzy #, fuzzy
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"jména stavů (volitelné): connecting, waiting_auth, connected, auth_failed, " "jména stavů (volitelné): connecting, waiting_auth, connected, auth_failed, "
@@ -15395,10 +15380,6 @@ 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" 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" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: nemohu \"naslouchat\" na portu %d (%s): chyba %d %s" msgstr "%s%s: nemohu \"naslouchat\" na portu %d (%s): chyba %d %s"
@@ -15443,8 +15424,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: nedostatek paměti pro poslouchání na portu" msgstr "%s%s: nedostatek paměti pro poslouchání na portu"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Předání dat WeeChatu do vzdálené aplikace" msgstr "Předání dat WeeChatu do vzdálené aplikace (irc/weechat protokoly)"
msgid "connecting" msgid "connecting"
msgstr "připojuji" msgstr "připojuji"
@@ -15679,16 +15660,11 @@ msgstr "(nic)"
msgid "Alt+key/input: v=back to list d=jump to diff" 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" msgstr "Alt+klávesa/vstup: v=zpět na seznam d=skoč na rozdíl"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d scripty (filtr: %s) | Seřaď: %s | Alt+klavesa/vstup: i=instalace, " "%d/%d scripty (filtr: %s) | Seřaď: %s | Alt+klavesa/vstup: i=instalace, "
@@ -16068,10 +16044,6 @@ msgstr "načteny %s skripty:"
msgid "script name with extension" msgid "script name with extension"
msgstr "seznam skriptů" 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 #, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "jméno serveru (zástupný znak \"*\" je povolen) (volitelné)" msgstr "jméno serveru (zástupný znak \"*\" je povolen) (volitelné)"
+72 -98
View File
@@ -23,22 +23,21 @@
# #
# #
# w8rabbit <w8rabbit@mail.i2p>, 2018. # w8rabbit <w8rabbit@mail.i2p>, 2018.
# Nils Görs <>, 2022-2026. # Nils Görs <weechatter@arcor.de>, 2022-2023.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-06-09 10:41+0200\n" "PO-Revision-Date: 2026-03-21 17:24+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German - Germany <weechat-dev@nongnu.org>\n" "Language-Team: German <kde-i18n-de@kde.org>\n"
"Language: de\n" "Language: de_DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.9\n" "X-Generator: Poedit 3.4.2\n"
"X-Poedit-Bookmarks: -1,-1,180,-1,-1,-1,-1,-1,-1,-1\n" "X-Poedit-Bookmarks: -1,-1,180,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
@@ -182,10 +181,10 @@ msgstr "deaktiviere init/deinit von gcrypt"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, kompiliert am %s %s\n" "WeeChat %s Copyright %s, kompiliert am %s %s\n"
"Entwickelt von %s <%s> - %s" "Entwickelt von Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Aufruf:" msgstr "Aufruf:"
@@ -1171,20 +1170,6 @@ msgstr ""
"Nachricht: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der " "Nachricht: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der "
"Abwesenheitszustand entfernt)" "Abwesenheitszustand entfernt)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
"Standardmäßig wird der Abwesenheitsstatus durch die IRC-Erweiterung nur "
"lokal angezeigt (siehe /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 ""
"Dieser Befehl kann von anderen Erweiterungen und Skripten abgefangen werden. "
"(siehe \"Anleitung für API Erweiterung\", Funktion \"hook_command_run\")."
msgid "manage bars" msgid "manage bars"
msgstr "Infobars verwalten" msgstr "Infobars verwalten"
@@ -1290,12 +1275,16 @@ msgstr "Maske: Name, wobei der Platzhalter \"*\" zulässig ist"
msgid "raw[set]: set a value for a bar property" msgid "raw[set]: set a value for a bar property"
msgstr "raw[set]: legt einen Wert für eine Bar-Eigenschaft fest" msgstr "raw[set]: legt einen Wert für eine Bar-Eigenschaft fest"
#, fuzzy
#| msgid ""
#| "option: option to change (for options list, look at /set weechat.bar."
#| "<barname>.*)"
msgid "" msgid ""
"option: option to change (for options list, look at /set weechat.bar." "option: option to change (for options list, look at /set weechat.bar."
"<bar_name>.*)" "<bar_name>.*)"
msgstr "" msgstr ""
"option: Option die geändert werden soll (eine Liste der möglichen Optionen " "option: Option die geändert werden soll (eine Liste der möglichen Optionen "
"findet man unter /set weechat.bar.<bar_name>.*)" "findet man unter /set weechat.bar.<barname>.*)"
msgid "value: new value for option" msgid "value: new value for option"
msgstr "Wert: neuer Wert für die Option" msgstr "Wert: neuer Wert für die Option"
@@ -3325,7 +3314,7 @@ msgstr ""
"werden" "werden"
msgid "raw[-c]: alias for \"-concat \\x20 -strip \\x20 -skipempty\"" msgid "raw[-c]: alias for \"-concat \\x20 -strip \\x20 -skipempty\""
msgstr "raw[-c]: Alias für \"-concat \\x20 -strip \\x20 -skipempty\"" msgstr "raw[-c]: Alias für \"-concat \\x20 -strip \\x20 -skipempty\""
msgid "" msgid ""
"raw[-nl]: display messages in English during the command execution (do not " "raw[-nl]: display messages in English during the command execution (do not "
@@ -3640,12 +3629,16 @@ msgstr "raw[del]: entfernt einen oder mehrere Proxy"
msgid "raw[set]: set a value for a proxy property" msgid "raw[set]: set a value for a proxy property"
msgstr "raw[set]: setzt einen Wert für Proxy-Eigenschaft" msgstr "raw[set]: setzt einen Wert für Proxy-Eigenschaft"
#, fuzzy
#| msgid ""
#| "option: option to change (for options list, look at /set weechat.proxy."
#| "<proxyname>.*)"
msgid "" msgid ""
"option: option to change (for options list, look at /set weechat.proxy." "option: option to change (for options list, look at /set weechat.proxy."
"<proxy_name>.*)" "<proxy_name>.*)"
msgstr "" msgstr ""
"Option: Option, die geändert werden soll (für eine Liste der möglichen " "Option: Option, die geändert werden soll (für eine Liste der möglichen "
"Optionen, bitte folgenden Befehl nutzen: /set weechat.proxy.<proxy_name>.*)" "Optionen, bitte folgenden Befehl nutzen: /set weechat.proxy.<proxyname>.*)"
msgid " add a http proxy, running on local host, port 8888:" msgid " add a http proxy, running on local host, port 8888:"
msgstr "" msgstr ""
@@ -3939,7 +3932,7 @@ msgid " /secure set oftc my_password"
msgstr " /secure set oftc Mein_Passwort" msgstr " /secure set oftc Mein_Passwort"
msgid " alias to ghost the nick \"andrew\":" msgid " alias to ghost the nick \"andrew\":"
msgstr " Alias zum ghosten des Nicks \"andrew\":" msgstr ""
msgid "" msgid ""
" /alias add ghost /eval /msg -server libera nickserv ghost andrew $" " /alias add ghost /eval /msg -server libera nickserv ghost andrew $"
@@ -11188,7 +11181,9 @@ msgid "[-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]"
msgstr "[-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]" msgstr "[-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]"
msgid "quiet nicks or hosts" msgid "quiet nicks or hosts"
msgstr "Nicks oder Hosts das Wort entziehen" msgstr ""
"Nicks oder Hosts das Wort entziehen (User können im Kanal erst schreiben, "
"wenn sie \"+v\" oder höher besitzen)"
msgid "" msgid ""
"Without argument, this command displays the quiet list for current channel." "Without argument, this command displays the quiet list for current channel."
@@ -11693,7 +11688,7 @@ msgid "privates on all IRC servers"
msgstr "Private auf allen IRC Servern" msgstr "Private auf allen IRC Servern"
msgid "default kick message" msgid "default kick message"
msgstr "Standardmitteilung wenn man jemanden aus einem Kanal wirft" msgstr "Standardmitteilung wenn man jemanden aus einem Kanal wirftchannel"
msgid "default part message for IRC channel" msgid "default part message for IRC channel"
msgstr "Standardmitteilung beim Verlassen (/part) eines IRC-Kanals" msgstr "Standardmitteilung beim Verlassen (/part) eines IRC-Kanals"
@@ -13126,8 +13121,8 @@ msgstr "Servername"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "Nicknamen des IRC-Hosts erhalten" msgstr "Nicknamen des IRC-Hosts erhalten"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC host (in der Form `:nick!name@server`)" msgstr "IRC host (in der Form `:nick!name@server.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -13353,12 +13348,11 @@ msgstr "%s%s: Dieser Buffer ist kein Kanal!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
"%d Kanäle (Total: %d) | Filter: %s | Sortierung: %s | Tastenbefehl: " "%d Kanäle (Total: %d) | Filter: %s | Sortierung: %s | Taste(Eingabe): "
"ctrl+j=Kanal betreten | Eingabezeile: $=Aktualisierung, s:x,y=Sortierung, " "ctrl+j=Kanal betreten, ($)=Aktualisierung, (q)=Buffer schließen"
"Text=Filter, *= Filter zurücksetzen, q=Buffer schließen"
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
msgstr "Liste der Kanäle leeren, nutze \"$\" um die Liste zu aktualisieren" msgstr "Liste der Kanäle leeren, nutze \"$\" um die Liste zu aktualisieren"
@@ -14588,21 +14582,21 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
msgstr "" msgstr ""
"Wenn diese Größe erreicht ist, wird eine Rotation der Protokolldateien " "Wenn diese Größe erreicht ist, wird eine Rotation der Protokolldateien "
"durchgeführt: die vorhandenen rotierten Protokolldateien werden umbenannt " "durchgeführt: dievorhandene rotierte Protokolldateien werden umbenannt (.1 "
"(.1 wird zu .2, .2 wird zu .3 usw.).Die aktuelle Datei wird umbenannt und " "wird zu .2, .2 wird zu .3 usw.).Die aktuelle Datei erhält wird umbenannt und "
"erhält .1 als Dateierweiterung; eine ganze Zahl mit Suffix ist erlaubt: b = " "erhält .1 als Erweiterung; eine ganze Zahl mitSuffix ist erlaubt: b = Bytes "
"Bytes (Standard, wenn keine Einheit angegeben ist), k = Kilobytes, m = " "(Standard, wenn keine Einheit angegeben ist), k = Kilobytes, m =Megabyte, g "
"Megabyte, g = Gigabyte, t = Terabyte; Beispiel: \"2g\" startet eine Rotation " "= Gigabyte, t = Terabyte; Beispiel: \"2g\" bewirkt eine Rotationsobald die "
"sobald die Dateigröße > 2GB ist; wenn auf „0“ gesetzt, erfolgt keine " "Dateigröße > 2.000.000.000 Byte ist; wenn auf „0“ gesetzt, erfolgt keine "
"Rotation der Dateien (unbegrenzte Protokollgröße); WARNUNG: Bevor Sie diese " "Rotation der Dateien (unbegrenzte Protokollgröße); WARNUNG: Bevor Sie diese "
"Option ändern,sollte sie zuerst den Komprimierungstyp über die Option " "Option ändern,sollte sie zuerst den Komprimierungstyp über die Option "
"logger.file.rotation_compression_type festlegen" "logger.file festlegen.rotation_compression_type"
msgid "" msgid ""
"timestamp used in log files (see man strftime for date/time specifiers, " "timestamp used in log files (see man strftime for date/time specifiers, "
@@ -16452,33 +16446,31 @@ msgstr ""
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"durch Kommata getrennte Liste der Hash-Algorithmen, die für die " "durch Kommata getrennte Liste der Hash-Algorithmen, die für die "
"Kennwortauthentifizierung für die \"api\" und \"weechat\" Protokolle " "Kennwortauthentifizierung im Weechat-Protokoll verwendet werden, unter "
"verwendet werden. Mögliche Werte sind: \"plain\" (Kennwort im Klartext, " "diesen Werten: \"plain\" (Kennwort im Klartext, nicht gehasht), \"sha256\", "
"nicht gehasht), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "\"sha512\", \"pbkdf2 + sha256\", \"pbkdf2 + sha512\" ), \"*\" bedeutet alle "
"\"pbkdf2+sha512\" ), \"*\" bedeutet alle Algorithmen, ein Name, der mit \"!" "Algorithmen, ein Name, der mit \"!\" beginnt ist ein negativer Wert, um die "
"\" beginnt ist ein negativer Wert, um die Verwendung eines Algorithmus zu " "Verwendung eines Algorithmus zu vermeiden. Ein Platzhalter \"*\" im Namen "
"unterbinden. Ein Platzhalter \"*\" im Namen ist zulässig (Beispiele: \"*\", " "ist zulässig (Beispiele: \"*\", \"pbkdf2 *\", \"*,! plain\")"
"\"pbkdf2 *\", \"*,! plain\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
"Anzahl der Iterationen, die bei den Protokollen \"api\" und \"weechat\" vom " "Anzahl der Iterationen, die im Weechat-Protokoll an den Client gesendet "
"Client angefordert wird, wenn zur Authentifizierung ein gehashtes Passwort " "werden, wenn ein Hash-Passwort mit dem Algorithmus PBKDF2 zur "
"mit dem Algorithmus PBKDF2 zur Authentifizierung verwendet wird. Eine höhere " "Authentifizierung verwendet wird; Mehr Iterationen sind aus "
"Anzahl an Iterationen bietet zwar mehr Sicherheit, erfordert jedoch eine " "Sicherheitsgründen besser, aber langsamer zu berechnen. Diese Zahl sollte "
"verlängerte Rechenzeit; dieser Wert sollte deshalb nicht zu hoch gewählt " "nicht zu hoch sein, wenn Ihre CPU langsam ist"
"werden, falls Ihre CPU leistungsschwach ist"
msgid "" msgid ""
"number of seconds to allow before and after the current time for the hash of " "number of seconds to allow before and after the current time for the hash of "
@@ -16524,13 +16516,6 @@ msgstr ""
"danach, ...; umso höher die genutzte Zahl umso unsicherer das Verfahren (0 " "danach, ...; umso höher die genutzte Zahl umso unsicherer das Verfahren (0 "
"oder 1 sind empfohlene Werte)" "oder 1 sind empfohlene Werte)"
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 ""
"Berechtigungen für den Unix-Socket als Oktalwert (siehe man chmod); es muss "
"eine dreistellige Zahl sein, wobei jede Ziffer zwischen 0 und 7 liegen muss"
msgid "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -16538,7 +16523,7 @@ msgid ""
msgstr "" msgstr ""
"Erweiterter regulärer POSIX Ausdruck für Origins in WebSockets (Groß- und " "Erweiterter regulärer POSIX Ausdruck für Origins in WebSockets (Groß- und "
"Kleinschreibung wird ignoriert. Um Groß- und Kleinschreibung zu " "Kleinschreibung wird ignoriert. Um Groß- und Kleinschreibung zu "
"unterscheiden kann \"(?-i)\" vorangestellt werden), Beispiel: \"^https?://" "unterscheiden kann \"(?-i)\" vorangestellt werden), Beispiel: ^https?://"
"(www\\.)?example\\.(com|org)\"" "(www\\.)?example\\.(com|org)\""
msgid "" msgid ""
@@ -16664,12 +16649,12 @@ msgstr "Anzahl an Clients für Relay"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"Protokoll,Status (beide sind Optional, bei beiden Argumenten bedeutet \"*\", " "Protokoll,Status (beide sind Optional, bei beiden Argumenten bedeutet \"*\", "
"alle; Protokolle: api, irc, weechat; Status: connecting, waiting_auth, " "alle; Protokolle: irc, weechat; Status: connecting, waiting_auth, connected, "
"connected, auth_failed, disconnected)" "auth_failed, disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
msgstr "Liste der Relay-Clients" msgstr "Liste der Relay-Clients"
@@ -16798,12 +16783,6 @@ msgstr "%s%s: \"bind\" an Pfad %s (%s) nicht möglich: Fehler %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: \"bind\" an Port %d (%s) nicht möglich: Fehler %d %s" msgstr "%s%s: \"bind\" an Port %d (%s) nicht möglich: Fehler %d %s"
#, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr ""
"%s%s: Warnung: Fehler beim Setzen der Berechtigungen für den Pfad %s (%s): "
"Fehler %d %s"
#, c-format #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: kann nicht an Pfad %s (%s) lauschen: Fehler %d %s" msgstr "%s%s: kann nicht an Pfad %s (%s) lauschen: Fehler %d %s"
@@ -16842,8 +16821,9 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: Nicht genug Speicher um an einem neuen Port zu lauschen" msgstr "%s%s: Nicht genug Speicher um an einem neuen Port zu lauschen"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Übertragung von WeeChat Daten an andere Anwendungen" msgstr ""
"Übertragung von WeeChat Daten an andere Anwendungen (irc/weechat Protokoll)"
msgid "connecting" msgid "connecting"
msgstr "verbinden" msgstr "verbinden"
@@ -17082,17 +17062,16 @@ msgstr "Alt+Taste/Eingabezeile: v=zurück zur Auswahl d=zeigt Unterschiede an"
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d Skripts | Filter: %s) | Sortierung: %s | Alt+Taste/Eingabe: " "%d/%d Skripten (Filter: %s) | Sortierung: %s | Alt+Taste/Eingabe: "
"i=installieren, r=entfernen, l=starten, L=erneut starten, u=beenden, " "i=installieren, r=entfernen, l=starten, L=erneut starten, u=beenden, "
"A=Autoload, h=halten/freigeben, v=Skript anzeigen | Eingabe: " "A=autoload, h=halten/freigeben, v=Skript anzeigen | Eingabe: q=beenden, "
"$=aktualisieren, s:x,y=Art der Sortierung, Text=Filterung, *=Filter " "$=aktualisieren, s:x,y=Art der Sortierung, Text=Filterung, *=Filter "
"zurücksetzen, q=Buffer schließen | Maus: links=Skript anwählen, " "zurücksetzen | Maus: links=Skript anwählen, rechts=installieren/entfernen"
"rechts=installieren/entfernen"
msgid "Scripts" msgid "Scripts"
msgstr "Skripten" msgstr "Skripten"
@@ -17351,7 +17330,7 @@ msgstr ""
"Um Tastenkurzbefehle im Skript-Buffer direkt nutzen zu können (zum Beispiel: " "Um Tastenkurzbefehle im Skript-Buffer direkt nutzen zu können (zum Beispiel: "
"alt+i = installieren, alt+r = entfernen, ...), muss diese Einstellung " "alt+i = installieren, alt+r = entfernen, ...), muss diese Einstellung "
"aktiviert werden. Andernfalls können Aktionen nur über die Eingabezeile " "aktiviert werden. Andernfalls können Aktionen nur über die Eingabezeile "
"durchgeführt werden: i, r, ..." "durchgeführt werden: i,r..."
msgid "color for status \"autoloaded\" (\"a\")" msgid "color for status \"autoloaded\" (\"a\")"
msgstr "Farbe in der der Status \"autoloaded\" (\"a\") dargestellt werden soll" msgstr "Farbe in der der Status \"autoloaded\" (\"a\") dargestellt werden soll"
@@ -17382,7 +17361,7 @@ msgid "background color in script buffer"
msgstr "Hintergrundfarbe im Skript-Buffer" msgstr "Hintergrundfarbe im Skript-Buffer"
msgid "background color for selected line in script buffer" msgid "background color for selected line in script buffer"
msgstr "Hintergrundfarbe für die ausgewählte Zeile im Skriptbuffer" msgstr "Hintergrundfarbe"
msgid "text color of dates in script buffer" msgid "text color of dates in script buffer"
msgstr "Textfarbe für das Datum im Skript-Buffer" msgstr "Textfarbe für das Datum im Skript-Buffer"
@@ -17510,11 +17489,6 @@ msgstr "1 falls Skript geladen wurde"
msgid "script name with extension" msgid "script name with extension"
msgstr "Skriptname mit Erweiterung" msgstr "Skriptname mit Erweiterung"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
"durch Kommata getrennte Liste von Erweiterungen: Endung mit unterstützen "
"Sprachen"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
"Name des Skriptes, mit Dateierweiterung (Platzhalter \"*\" kann verwendet " "Name des Skriptes, mit Dateierweiterung (Platzhalter \"*\" kann verwendet "
+23 -47
View File
@@ -24,10 +24,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n" "PO-Revision-Date: 2026-03-12 20:24+0100\n"
"Last-Translator: Santiago Forero <santiago@forero.xyz>\n" "Last-Translator: Santiago Forero <santiago@forero.xyz>\n"
"Language-Team: Spanish - Spain <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -184,10 +184,10 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, compilado en %s %s\n" "WeeChat %s Copyright %s, compilado en %s %s\n"
"Desarrollado por %s <%s> - %s" "Desarrollado por Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "" msgstr ""
@@ -1222,16 +1222,6 @@ msgstr ""
"mensaje: mensaje de ausencia (si no se especifica ningún mensaje, se remueve " "mensaje: mensaje de ausencia (si no se especifica ningún mensaje, se remueve "
"el estado ausente)" "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" msgid "manage bars"
msgstr "gestionar las barras" msgstr "gestionar las barras"
@@ -12091,8 +12081,8 @@ msgstr "nombre del servidor"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "devuelve apodo de un host IRC" msgstr "devuelve apodo de un host IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC host (como `:apodo!nombre@servidor`)" msgstr "IRC host (como `:apodo!nombre@servidor.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12334,8 +12324,8 @@ msgstr "%s%s: ¡este buffer no es un canal!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13536,7 +13526,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15400,11 +15390,11 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"lista de plugins separados por comas para cargar automáticamente al iniciar, " "lista de plugins separados por comas para cargar automáticamente al iniciar, "
"\"*\" significa todos los plugins encontrados, un nombre empezando con \"!\" " "\"*\" significa todos los plugins encontrados, un nombre empezando con \"!\" "
@@ -15412,10 +15402,10 @@ msgstr ""
"\"*\" para indicar varios plugins (ejemplo: \"*\" o \"*,!lua,!tcl\")" "\"*\" para indicar varios plugins (ejemplo: \"*\" o \"*,!lua,!tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -15448,11 +15438,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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. # why is case insensitive important? ips use numbers and urls are case insensible.
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -15567,7 +15552,7 @@ msgstr "Lista de clientes a retransmitir"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -15690,10 +15675,6 @@ msgstr "%s%s: error con \"bind\" en el puerto %d (%s)"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %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)" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" 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)" msgstr "%s%s: no se puede aceptar el cliente en el puerto %d (%s)"
@@ -15730,7 +15711,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: no hay memoria suficiente para escuchar en un nuevo puerto" msgstr "%s%s: no hay memoria suficiente para escuchar en un nuevo puerto"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "" msgstr ""
msgid "connecting" msgid "connecting"
@@ -15979,9 +15960,9 @@ msgstr ""
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -16346,11 +16327,6 @@ msgstr "scripts en %s cargados:"
msgid "script name with extension" msgid "script name with extension"
msgstr "lista de scripts" 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 #, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+59 -91
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-06-08 23:14+0200\n" "PO-Revision-Date: 2026-03-21 17:29+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: French - France <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -139,7 +139,7 @@ msgid ""
"by default in headless mode WeeChat is blocking and does not run in " "by default in headless mode WeeChat is blocking and does not run in "
"background" "background"
msgstr "" msgstr ""
"lancer WeeChat comme un « daemon » (fork, nouveau groupe pour le processus, " "lancer WeeChat comme un « daemon » (fork, nouveau groupe pour le processus, "
"fermeture des descripteurs de fichiers); par défaut en mode sans interface " "fermeture des descripteurs de fichiers); par défaut en mode sans interface "
"WeeChat est bloquant et ne tourne pas en tâche de fond" "WeeChat est bloquant et ne tourne pas en tâche de fond"
@@ -168,10 +168,10 @@ msgstr "désactiver init/deinit de gcrypt"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, compilé le %s %s\n" "WeeChat %s Copyright %s, compilé le %s %s\n"
"Développé par %s <%s> - %s" "Développé par Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Utilisation:" msgstr "Utilisation:"
@@ -180,11 +180,11 @@ msgid "[option...] [plugin:option...]"
msgstr "[option...] [extension:option...]" msgstr "[option...] [extension:option...]"
msgid "Extra options in headless mode:" msgid "Extra options in headless mode:"
msgstr "Options supplémentaires en mode sans interface (« headless »):" msgstr "Options supplémentaires en mode sans interface (« headless »):"
msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):" msgid "Debug options (for tools like valgrind, DO NOT USE IN PRODUCTION):"
msgstr "" msgstr ""
"Options de debug (pour des outils comme valgrind, NE PAS UTILISER EN " "Options de debug (pour des outils comme Valgrind, NE PAS UTILISER EN "
"PRODUCTION) :" "PRODUCTION) :"
#, c-format #, c-format
@@ -1155,20 +1155,6 @@ msgstr ""
"message : message pour l'absence (si pas de message donné, le statut " "message : message pour l'absence (si pas de message donné, le statut "
"d'absence est supprimé)" "d'absence est supprimé)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
"Par défaut le statut d'absence est affiché en local seulement par "
"l'extension irc (voir /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 ""
"Cette commande peut être attrapée par d'autres extensions ou scripts (voir "
"la \"Référence API extension\", fonction \"hook_command_run\")."
msgid "manage bars" msgid "manage bars"
msgstr "gestion des barres" msgstr "gestion des barres"
@@ -1513,7 +1499,7 @@ msgid ""
"\"weechat.look.jump_current_to_previous_buffer\"" "\"weechat.look.jump_current_to_previous_buffer\""
msgstr "" msgstr ""
"> \"*\" : saut au numéro en utilisant l'option " "> \"*\" : saut au numéro en utilisant l'option "
"\"weechat.look.jump_current_to_previous_buffer\"" "\"jump_current_to_previous_buffer\""
msgid "raw[-]: jump to first buffer number" msgid "raw[-]: jump to first buffer number"
msgstr "raw[-] : sauter au premier numéro de tampon" msgstr "raw[-] : sauter au premier numéro de tampon"
@@ -1780,7 +1766,7 @@ msgid ""
"raw[key]: enable keyboard and mouse debug: display raw codes, expanded key " "raw[key]: enable keyboard and mouse debug: display raw codes, expanded key "
"name and associated command (\"q\" to quit this mode)" "name and associated command (\"q\" to quit this mode)"
msgstr "" msgstr ""
"raw[key] : activer le debug pour le clavier et la souris : afficher les " "raw[key] : activer le debug pour le clavier et la souris : afficher les "
"codes bruts, le nom étendu et la commande associée (\"q\" pour quitter ce " "codes bruts, le nom étendu et la commande associée (\"q\" pour quitter ce "
"mode)" "mode)"
@@ -3017,7 +3003,7 @@ msgid ""
"Key names allowed: f0 to f20, home, insert, delete, end, backspace, pgup, " "Key names allowed: f0 to f20, home, insert, delete, end, backspace, pgup, "
"pgdn, up, down, right, left, tab, return, comma, space." "pgdn, up, down, right, left, tab, return, comma, space."
msgstr "" msgstr ""
"Noms de touches autorisés: f0 à f20, home, insert, delete, end, backspace, " "Noms de touches autorisés : f0 à f20, home, insert, delete, end, backspace, "
"pgup, pgdn, up, down, right, left, tab, return, comma, space." "pgup, pgdn, up, down, right, left, tab, return, comma, space."
msgid "Combo of keys must be separated by a comma." msgid "Combo of keys must be separated by a comma."
@@ -3066,7 +3052,7 @@ msgid ""
"as argument." "as argument."
msgstr "" msgstr ""
"Une valeur spéciale pour la commande avec le format \"hsignal:nom\" peut " "Une valeur spéciale pour la commande avec le format \"hsignal:nom\" peut "
"être utilisée dans le contexte \"mouse\", cela enverra le hsignal \"nom\" " "être utilisée dans le contexte \"mouse\", cela enverra le signal \"nom\" "
"avec la table de hachage du focus comme paramètre." "avec la table de hachage du focus comme paramètre."
msgid "" msgid ""
@@ -3515,7 +3501,7 @@ msgid " display a reminder on core buffer with a highlight:"
msgstr " afficher un pense-bête sur le tampon core avec un highlight :" msgstr " afficher un pense-bête sur le tampon core avec un highlight :"
msgid " /print -core -tags notify_highlight Reminder: buy milk" msgid " /print -core -tags notify_highlight Reminder: buy milk"
msgstr " /print -core -tags notify_highlight Pense-bête: acheter du lait" msgstr " /print -core -tags notify_highlight Pense-bête : acheter du lait"
msgid " display an error on core buffer:" msgid " display an error on core buffer:"
msgstr " afficher une erreur sur le tampon core :" msgstr " afficher une erreur sur le tampon core :"
@@ -4114,8 +4100,7 @@ msgid ""
"makes possible a delayed restoration (see below)" "makes possible a delayed restoration (see below)"
msgstr "" msgstr ""
"raw[-quit] : fermer *TOUTES* les connexions, sauvegarder la session et " "raw[-quit] : fermer *TOUTES* les connexions, sauvegarder la session et "
"quitter WeeChat, ce qui rend possible une restauration différée (voir ci-" "quitter, ce qui rend possible une restauration différée (voir ci-dessous)"
"dessous)"
msgid "" msgid ""
"raw[-o]: send number of upgrades and date of first/last start to current " "raw[-o]: send number of upgrades and date of first/last start to current "
@@ -7074,8 +7059,7 @@ msgstr ""
"Si vous découvrez WeeChat, il est recommandé de lire au moins le guide de " "Si vous découvrez WeeChat, il est recommandé de lire au moins le guide de "
"démarrage rapide, et le guide utilisateur si vous avez le temps ; ils " "démarrage rapide, et le guide utilisateur si vous avez le temps ; ils "
"expliquent les concepts principaux de WeeChat.\n" "expliquent les concepts principaux de WeeChat.\n"
"Toutes les documentations WeeChat sont disponibles ici : https://weechat.org/" "Toutes les documentations sont disponibles ici : https://weechat.org/doc/\n"
"doc/\n"
"\n" "\n"
"De plus, il y a de l'aide en ligne avec /help sur toutes les commandes et " "De plus, il y a de l'aide en ligne avec /help sur toutes les commandes et "
"options (utilisez la touche Tab pour compléter le nom).\n" "options (utilisez la touche Tab pour compléter le nom).\n"
@@ -8023,7 +8007,7 @@ msgid ""
"careful, using more than one bar item slows down the display of buffers list" "careful, using more than one bar item slows down the display of buffers list"
msgstr "" msgstr ""
"nombre d'objets de barre buflist qui peuvent être utilisés ; les objets de " "nombre d'objets de barre buflist qui peuvent être utilisés ; les objets de "
"barre sont : \"buflist\", \"buflist2\", \"buflist3\", \"buflist4\" et " "barre sont : \"buflist\", \"buflist2\", \"buflist3\", \"buflist4\" et "
"\"buflist5\" ; attention, utiliser plus d'un objet de barre ralentit " "\"buflist5\" ; attention, utiliser plus d'un objet de barre ralentit "
"l'affichage de la liste des tampons" "l'affichage de la liste des tampons"
@@ -11200,7 +11184,7 @@ msgid ""
msgstr "" msgstr ""
"filtre : définir un nouveau filtre pour voir seulement les messages " "filtre : définir un nouveau filtre pour voir seulement les messages "
"correspondants (ce filtre peut aussi être utilisé en entrée du tampon des " "correspondants (ce filtre peut aussi être utilisé en entrée du tampon des "
"données brutes IRC) ; les formats autorisés sont :" "données brutes) ; les formats autorisés sont :"
msgid "> `*`: show all messages (no filter)" msgid "> `*`: show all messages (no filter)"
msgstr "> `*` : afficher tous les messages (pas de filtre)" msgstr "> `*` : afficher tous les messages (pas de filtre)"
@@ -12873,8 +12857,8 @@ msgstr "nom de serveur"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "retourne le pseudo à partir d'un host IRC" msgstr "retourne le pseudo à partir d'un host IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host IRC (comme `:pseudo!nom@serveur`)" msgstr "host IRC (comme `:pseudo!nom@serveur.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -13098,12 +13082,11 @@ msgstr "%s%s : ce tampon n'est pas un canal !"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
"%d canaux (total : %d) | Filtre : %s | Tri : %s | Touches : ctrl+j=rejoindre " "%d canaux (total : %d) | Filtre : %s | Tri : %s | Touche(entrée) : "
"canal | Entrée: $=rafraîchir, s:x,y=trier, mots=filtrer, *=réinit filtre, " "ctrl+j=rejoindre canal, ($)=rafraîchir, (q)=fermer le tampon"
"q=fermer le tampon"
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
msgstr "La liste de canaux est vide, essayez \"$\" pour rafraîchir la liste" msgstr "La liste de canaux est vide, essayez \"$\" pour rafraîchir la liste"
@@ -14311,7 +14294,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -14322,7 +14305,7 @@ msgstr ""
"entier avec un suffixe est accepté : b = octets (par défaut si pas d'unité " "entier avec un suffixe est accepté : b = octets (par défaut si pas d'unité "
"spécifiée), k = kilo-octets, m = méga-octets, g = giga-octets, t = téra-" "spécifiée), k = kilo-octets, m = méga-octets, g = giga-octets, t = téra-"
"octets ; exemple : \"2g\" provoque une rotation si la taille du fichier est " "octets ; exemple : \"2g\" provoque une rotation si la taille du fichier est "
"supérieure à 2 Go ; si défini à \"0\", aucune rotation n'est effectuée " "> 2 000 000 000 octets ; si défini à \"0\", aucune rotation n'est effectuée "
"(taille de log illimitée) ; ATTENTION : avant de changer cette option, vous " "(taille de log illimitée) ; ATTENTION : avant de changer cette option, vous "
"devriez d'abord définir le type de compression via l'option " "devriez d'abord définir le type de compression via l'option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15347,8 +15330,7 @@ msgstr "%sremote[%s] : impossible de créer le socket"
#, c-format #, c-format
msgid "%sremote[%s]: gnutls: failed to initialize certificate structure" msgid "%sremote[%s]: gnutls: failed to initialize certificate structure"
msgstr "" msgstr "%sremote[%s] : échec d'initialisation de la structure du certificat"
"%sremote[%s] : gnutls: échec d'initialisation de la structure du certificat"
#, c-format #, c-format
msgid "remote[%s]: gnutls: receiving %d certificate" msgid "remote[%s]: gnutls: receiving %d certificate"
@@ -16151,31 +16133,31 @@ msgstr ""
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"liste des algorithmes de hachage pour l'authentification par mot de passe " "liste des algorithmes de hachage pour l'authentification par mot de passe "
"dans les protocoles \"api\" et \"weechat\", parmi ces valeurs : \"plain\" " "dans le protocole relay, parmi ces valeurs : \"plain\" (mot de passe en "
"(mot de passe en clair, non haché), \"sha256\", \"sha512\", " "clair, non haché), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha256\", \"pbkdf2+sha512\" ; \"*\" signifie tous les algorithmes, " "\"pbkdf2+sha512\" ; \"*\" signifie tous les algorithmes, un nom commençant "
"un nom commençant par \"!\" est une valeur négative pour empêcher un " "par \"!\" est une valeur négative pour empêcher un algorithme d'être "
"algorithme d'être utilisé, le caractère joker \"*\" est autorisé dans les " "utilisé, le caractère joker \"*\" est autorisé dans les noms (exemples : "
"noms (exemples : \"*\", \"pbkdf2*\", \"*,!plain\")" "\"*\", \"pbkdf2*\", \"*,!plain\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
"nombre d'itérations demandées au client dans les protocoles \"api\" et " "nombre d'itérations demandées au client dans le protocole weechat lorsqu'un "
"\"weechat\" lorsqu'un mot de passe haché avec l'algorithme PBKDF2 est " "mot de passe haché avec l'algorithme PBKDF2 est utilisé pour "
"utilisé pour l'authentification ; plus d'itérations est mieux en terme de " "l'authentification ; plus d'itérations est mieux en terme de sécurité mais "
"sécurité mais est plus lent à calculer ; ce nombre ne doit pas être trop " "est plus lent à calculer ; ce nombre ne doit pas être trop élevé si votre "
"élevé si votre micro-processeur est lent" "micro-processeur est lent"
msgid "" msgid ""
"number of seconds to allow before and after the current time for the hash of " "number of seconds to allow before and after the current time for the hash of "
@@ -16220,13 +16202,6 @@ msgstr ""
"accepter deux mots de passe avant, le courant et deux après, ... ; un nombre " "accepter deux mots de passe avant, le courant et deux après, ... ; un nombre "
"élevé réduit le niveau de sécurité (0 ou 1 sont les valeurs recommandées)" "élevé réduit le niveau de sécurité (0 ou 1 sont les valeurs recommandées)"
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 ""
"permissions pour le socket Unix, sous forme de valeur octale (voir man "
"chmod); doit être un nombre avec 3 chiffres, chacun compris entre 0 et 7"
msgid "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -16357,11 +16332,11 @@ msgstr "nombre de clients pour le relai"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"protocole,statut (les deux sont optionnels, pour chaque paramètre \"*\" " "protocole,statut (les deux sont optionnels, pour chaque paramètre \"*\" "
"signifie tous ; protocoles : api, irc, weechat ; statuts : connecting, " "signifie tous ; protocoles : irc, weechat ; statuts : connecting, "
"waiting_auth, connected, auth_failed, disconnected)" "waiting_auth, connected, auth_failed, disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
@@ -16491,12 +16466,6 @@ msgstr "%s%s : \"bind\" impossible sur le chemin %s (%s) : erreur %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s : \"bind\" impossible sur le port %d (%s) : erreur %d %s" msgstr "%s%s : \"bind\" impossible sur le port %d (%s) : erreur %d %s"
#, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr ""
"%s%s : attention: échec de changement des permissions sur le chemin %s "
"(%s) : erreur %d %s"
#, c-format #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s : \"listen\" impossible sur le chemin %s (%s) : erreur %d %s" msgstr "%s%s : \"listen\" impossible sur le chemin %s (%s) : erreur %d %s"
@@ -16535,8 +16504,10 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s : pas assez de mémoire pour écouter sur le nouveau port" msgstr "%s%s : pas assez de mémoire pour écouter sur le nouveau port"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Relai des données WeeChat à des applications distantes" msgstr ""
"Relai des données WeeChat à des applications distantes (protocoles irc/"
"weechat)"
msgid "connecting" msgid "connecting"
msgstr "connexion" msgstr "connexion"
@@ -16772,16 +16743,16 @@ msgstr "Alt+touche/entrée : v=retour à la liste d=sauter au diff"
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d scripts | Filtre: %s | Tri : %s | Alt+touche/entrée : i=installer, " "%d/%d scripts (filtre : %s) | Tri : %s | Alt+touche/entrée : i=installer, "
"r=supprimer, l=charger, L=recharger, u=décharger, A=chargement auto, " "r=supprimer, l=charger, L=recharger, u=décharger, A=chargement auto, "
"h=(dé)figer, v=voir script | Entrée : $=rafraîchir, s:x,y=trier, " "h=(dé)figer, v=voir script | Entrée : q=fermer, $=rafraîchir, s:x,y=trier, "
"mots=filtrer, *=réinit filtre, q=fermer le tampon | Souris : " "mots=filtrer, *=réinit filtre | Souris : gauche=sélectionner, "
"gauche=sélectionner, droit=installer/supprimer" "droit=installer/supprimer"
msgid "Scripts" msgid "Scripts"
msgstr "Scripts" msgstr "Scripts"
@@ -17182,9 +17153,6 @@ msgstr "1 si le script est chargé"
msgid "script name with extension" msgid "script name with extension"
msgstr "nom du script avec l'extension" msgstr "nom du script avec l'extension"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "liste de extension:extension_fichier avec les langages supportés"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
"nom du script avec extension (le caractère joker \"*\" est autorisé) " "nom du script avec extension (le caractère joker \"*\" est autorisé) "
@@ -17808,7 +17776,7 @@ msgid "> type `signal`: name(s) of signal (required)"
msgstr "> type `signal` : nom(s) de signal (obligatoire)" msgstr "> type `signal` : nom(s) de signal (obligatoire)"
msgid "> type `hsignal`: name(s) of hsignal (required)" msgid "> type `hsignal`: name(s) of hsignal (required)"
msgstr "> type `hsignal` : nom(s) de hsignal (obligatoire)" msgstr "> type `hsignal` : nom(s) de signal (obligatoire)"
msgid "> type `modifier`: name(s) of modifier (required)" msgid "> type `modifier`: name(s) of modifier (required)"
msgstr "> type `modifier` : nom(s) de modificateur (obligatoire)" msgstr "> type `modifier` : nom(s) de modificateur (obligatoire)"
+20 -42
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n" "PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: Hungarian <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: hu\n" "Language: hu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -159,7 +159,7 @@ msgstr ""
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"%s Copyright (C) 2003-2010, fordítva: %s %s\n" "%s Copyright (C) 2003-2010, fordítva: %s %s\n"
"Fejlesztő: Sébastien Helleu <flashcode@flashtux.org> - %s" "Fejlesztő: Sébastien Helleu <flashcode@flashtux.org> - %s"
@@ -1158,16 +1158,6 @@ msgstr ""
" üzenet: távolléti üzenet (ha nincs üzenet megadva, a távolléti státusz " " üzenet: távolléti üzenet (ha nincs üzenet megadva, a távolléti státusz "
"eltávolítása)" "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 #, fuzzy
msgid "manage bars" msgid "manage bars"
msgstr "pufferek kezelése" msgstr "pufferek kezelése"
@@ -11291,7 +11281,7 @@ msgstr "cél: szerver neve"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "név vagy gép letiltása" msgstr "név vagy gép letiltása"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -11525,8 +11515,8 @@ msgstr "Ez az ablak nem egy szoba!\n"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12644,7 +12634,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -14401,21 +14391,21 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"automatikusan betöltendő modulok vesszővel elválasztott listája, \"*\" " "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 " "esetén az összes fellelt modul (az elnevezés lehet részleges, például a "
"\"perl\" elegendő \"libperl.so\" helyett)" "\"perl\" elegendő \"libperl.so\" helyett)"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -14448,11 +14438,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -14554,7 +14539,7 @@ msgstr "Nincs szerver.\n"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -14675,10 +14660,6 @@ msgstr "%s nem sikerült a csatornát létrehozni\n"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s nem sikerült a csatornát létrehozni\n" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s nem sikerült a csatornát létrehozni\n" msgstr "%s nem sikerült a csatornát létrehozni\n"
@@ -14715,7 +14696,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s nincs elegendő memória új DCC számára\n" msgstr "%s nincs elegendő memória új DCC számára\n"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "" msgstr ""
#, fuzzy #, fuzzy
@@ -14958,9 +14939,9 @@ msgstr ""
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -15314,9 +15295,6 @@ msgstr "FIFO cső bezárva\n"
msgid "script name with extension" msgid "script name with extension"
msgstr "Aliaszok listája:\n" 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)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+26 -48
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-12 20:24+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n" "Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: Italian <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: it\n" "Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -164,10 +164,10 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, compilato il %s %s\n" "WeeChat %s Copyright %s, compilato il %s %s\n"
"Sviluppato da %s <%s> - %s" "Sviluppato da Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "" msgstr ""
@@ -1174,16 +1174,6 @@ msgstr ""
"messaggio: messaggio di assenza (se non specificato, lo stato di assenza " "messaggio: messaggio di assenza (se non specificato, lo stato di assenza "
"viene rimosso)" "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" msgid "manage bars"
msgstr "gestione delle barre" msgstr "gestione delle barre"
@@ -12130,8 +12120,8 @@ msgstr "nome server"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "ottiene nick dall'host IRC" msgstr "ottiene nick dall'host IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host IRC (come `:nick!nome@server`)" msgstr "host IRC (come `:nick!nome@server.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12371,8 +12361,8 @@ msgstr "%s%s: questo buffer non è un canale!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13562,7 +13552,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15453,11 +15443,11 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"elenco separato da virgole di plugin da caricare automaticamente all'avvio, " "elenco separato da virgole di plugin da caricare automaticamente all'avvio, "
"\"*\" equivale a tutti i plugin trovati. un nome che comincia con \"!\" è un " "\"*\" equivale a tutti i plugin trovati. un nome che comincia con \"!\" è un "
@@ -15466,10 +15456,10 @@ msgstr ""
"oppure \"*,!lua,!tcl\")" "oppure \"*,!lua,!tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -15502,11 +15492,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 #, fuzzy
msgid "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
@@ -15629,7 +15614,7 @@ msgstr "Elenco dei client per il relay"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -15770,10 +15755,6 @@ msgstr "%s%s: \"bind\" impossibile sulla porta %d (%s): errore %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %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" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: \"listen\" impossibile sulla porta %d (%s): errore %d %s" msgstr "%s%s: \"listen\" impossibile sulla porta %d (%s): errore %d %s"
@@ -15810,8 +15791,10 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memoria non sufficiente per l'ascolto su una nuova porta" msgstr "%s%s: memoria non sufficiente per l'ascolto su una nuova porta"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Esegui il relay dei dati di WeeChat ad un'applicazione remota" msgstr ""
"Esegui il relay dei dati di WeeChat ad un'applicazione remota (protocolli "
"irc/weechat)"
msgid "connecting" msgid "connecting"
msgstr "connessione" msgstr "connessione"
@@ -16060,9 +16043,9 @@ msgstr ""
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -16432,11 +16415,6 @@ msgstr "script %s caricati:"
msgid "script name with extension" msgid "script name with extension"
msgstr "elenco degli script" 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 #, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+29 -57
View File
@@ -22,10 +22,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-16 13:22+0100\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <weechat-dev@nongnu.org>\n" "Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
"translation/ja_JP>\n"
"Language: ja\n" "Language: ja\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -167,10 +168,10 @@ msgstr "gcrypt の init/deinit を無効化"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s 著作権 %s、%s %s にコンパイル\n" "WeeChat %s 著作権 %s、%s %s にコンパイル\n"
"開発者 %s <%s> - %s" "開発者 Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "使い方:" msgstr "使い方:"
@@ -1183,16 +1184,6 @@ msgstr ""
" -all: 全ての接続済みサーバに対して離席状態を切り替え\n" " -all: 全ての接続済みサーバに対して離席状態を切り替え\n"
"message: 離席メッセージ (メッセージが無い場合は、離席状態を解除)" "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" msgid "manage bars"
msgstr "バーの管理" msgstr "バーの管理"
@@ -12584,8 +12575,8 @@ msgstr "サーバ名"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "IRC ホストからニックネームを取得" msgstr "IRC ホストからニックネームを取得"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC ホスト (例: `:nick!name@server`)" msgstr "IRC ホスト (例: `:nick!name@server.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12820,8 +12811,8 @@ msgstr "%s%s: このバッファはチャンネルではありません!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -14037,7 +14028,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15960,21 +15951,21 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"スタートアップ時にロードするプラグインのコンマ区切りリスト、\"*\" は見つかっ" "スタートアップ時にロードするプラグインのコンマ区切りリスト、\"*\" は見つかっ"
"た全てのプラグイン、\"!\" から始まる名前はロードしないプラグイン、名前にワイ" "た全てのプラグイン、\"!\" から始まる名前はロードしないプラグイン、名前にワイ"
"ルドカード \"*\" を使うことができます (例: \"*\" または \"*,!lua,!tcl\")" "ルドカード \"*\" を使うことができます (例: \"*\" または \"*,!lua,!tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -16022,11 +16013,6 @@ msgstr ""
"のパスワードを考慮、...; この値を大きくするとセキュリティレベルが低下します " "のパスワードを考慮、...; この値を大きくするとセキュリティレベルが低下します "
"(0 または 1 を推奨します)" "(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 #, fuzzy
#| msgid "" #| msgid ""
#| "POSIX extended regular expression with origins allowed in websockets " #| "POSIX extended regular expression with origins allowed in websockets "
@@ -16163,12 +16149,12 @@ msgstr "中継するクライアントのリスト"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"protocol,status (どちらも任意、引数の \"*\" はすべてを意味します; プロトコ" "protocol,status (どちらも任意、引数の \"*\" はすべてを意味します; プロトコ"
"ル: api、irc、weechat。状態: connecting、waiting_auth、connected、" "ル: irc、weechat。状態: connecting、waiting_auth、connected、auth_failed、"
"auth_failed、disconnected)" "disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
msgstr "リレークライアントのリスト" msgstr "リレークライアントのリスト"
@@ -16310,11 +16296,6 @@ msgstr "%s%s: パス %s (%s) に \"bind\" できません: エラー %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: ポート %d (%s) に \"bind\" できません: エラー %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 #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: パス %s (%s) ではリッスンできません: エラー %d %s" msgstr "%s%s: パス %s (%s) ではリッスンできません: エラー %d %s"
@@ -16351,8 +16332,9 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: 新しいポートをリッスンするためのメモリ不足" msgstr "%s%s: 新しいポートをリッスンするためのメモリ不足"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "WeeChat データをリモートアプリケーションにリレー" msgstr ""
"WeeChat データをリモートアプリケーションにリレー (irc/weechat プロトコル)"
msgid "connecting" msgid "connecting"
msgstr "接続中" msgstr "接続中"
@@ -16596,16 +16578,11 @@ msgstr "(なし)"
msgid "Alt+key/input: v=back to list d=jump to diff" msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+key/input: v=リストに戻る d=比較する" msgstr "Alt+key/input: v=リストに戻る d=比較する"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d 個のスクリプト (フィルタ: %s) | ソート: %s | Alt+key/input: i=インス" "%d/%d 個のスクリプト (フィルタ: %s) | ソート: %s | Alt+key/input: i=インス"
@@ -16996,11 +16973,6 @@ msgstr "ロードされた %s スクリプト:"
msgid "script name with extension" msgid "script name with extension"
msgstr "スクリプトの拡張子のリスト" 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)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
"拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)" "拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)"
+29 -91
View File
@@ -24,10 +24,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-21 17:26+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n" "Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
"Language-Team: Polish <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: pl\n" "Language: pl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -166,10 +166,10 @@ msgstr "wyłącza funkcje init/deinit z gcrypt"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, skompilowano na %s %s\n" "WeeChat %s Copyright %s, skompilowano na %s %s\n"
"Rozwijane przez %s <%s> - %s" "Rozwijane przez Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Użycie:" msgstr "Użycie:"
@@ -1148,21 +1148,6 @@ msgstr ""
"wiadomość: powód nieobecności (jeśli nie podano wiadomości status " "wiadomość: powód nieobecności (jeśli nie podano wiadomości status "
"nieobecności zostaje usunięty)" "nieobecności zostaje usunięty)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
#, fuzzy
#| msgid ""
#| " - ${color:name}: the color (see \"Plugin API reference\", function "
#| "\"color\")"
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
" - ${color:nazwa}: kolor (zobacz „Opis API wtyczek”, funkcja \"color\")"
msgid "manage bars" msgid "manage bars"
msgstr "zarządzaj paskami" msgstr "zarządzaj paskami"
@@ -12481,8 +12466,8 @@ msgstr "nazwa serwera"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "pobiera nick z hosta IRC" msgstr "pobiera nick z hosta IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "Host IRC (jak `:nick!nazwa@serwer`)" msgstr "Host IRC (jak `:nick!nazwa@serwer.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12701,13 +12686,10 @@ msgstr "%s%s: nie jesteś połączony z serwerem"
msgid "%s%s: this buffer is not a channel!" msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: to nie jest bufor kanału!" msgstr "%s%s: to nie jest bufor kanału!"
#, fuzzy, c-format #, c-format
#| msgid ""
#| "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
#| "channel, ($)=refresh, (q)=close buffer"
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
"%d kanałów (łącznie: %d) | Filtr: %s | Sortowanie: %s | Key(input): " "%d kanałów (łącznie: %d) | Filtr: %s | Sortowanie: %s | Key(input): "
"ctrl+j=wejdź na kanał, ($)=odśwież, (q)=zamknij bufor" "ctrl+j=wejdź na kanał, ($)=odśwież, (q)=zamknij bufor"
@@ -13897,24 +13879,13 @@ msgstr ""
"wtyczkę logger, skompresować pliki na nowo (lub rozpakować), następnie " "wtyczkę logger, skompresować pliki na nowo (lub rozpakować), następnie "
"zmienić opcję w pliku logger.conf, następnie załadować wtyczkę logger" "zmienić opcję w pliku logger.conf, następnie załadować wtyczkę logger"
#, fuzzy
#| msgid ""
#| "when this size is reached, a rotation of log files is performed: the "
#| "existing rotated log files are renamed (.1 becomes .2, .2 becomes .3, "
#| "etc.) 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 performed (unlimited log size); WARNING: before "
#| "changing this option, you should first set the compression type via "
#| "option logger.file.rotation_compression_type"
msgid "" msgid ""
"when this size is reached, a rotation of log files is performed: the " "when this size is reached, a rotation of log files is performed: the "
"existing rotated log files are renamed (.1 becomes .2, .2 becomes .3, etc.) " "existing rotated log files are renamed (.1 becomes .2, .2 becomes .3, etc.) "
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15717,21 +15688,13 @@ msgstr ""
"oznacza brak hasła, zobacz opcję relay.network.allow_empty_password) (uwaga: " "oznacza brak hasła, zobacz opcję relay.network.allow_empty_password) (uwaga: "
"zawartość jest przetwarzana, zobacz /help eval)" "zawartość jest przetwarzana, zobacz /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 "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"oddzielona przecinkami lista algorytmów hashujących używanych dla " "oddzielona przecinkami lista algorytmów hashujących używanych dla "
"uwierzytelnienia hasłem w protokole weechat, dostępne wartości: \"plain\" " "uwierzytelnienia hasłem w protokole weechat, dostępne wartości: \"plain\" "
@@ -15741,17 +15704,11 @@ msgstr ""
"użycia algorytmu, znak \"*\" może zostać użyty w nazwie (przykłady: \"*\", " "użycia algorytmu, znak \"*\" może zostać użyty w nazwie (przykłady: \"*\", "
"\"pbkdf2*\", \"*,!plain\")" "\"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 "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
"ilość iteracji zapytań klienta protokołu weechat w przypadku hashowania " "ilość iteracji zapytań klienta protokołu weechat w przypadku hashowania "
"haseł algorytmem PBKDF2 podczas uwierzytelnienia; im więcej iteracji tym " "haseł algorytmem PBKDF2 podczas uwierzytelnienia; im więcej iteracji tym "
@@ -15800,11 +15757,6 @@ msgstr ""
"hasła, ...; wysoka liczba obniża poziom bezpieczeństwa (0 lub 1 to zalecane " "hasła, ...; wysoka liczba obniża poziom bezpieczeństwa (0 lub 1 to zalecane "
"wartości)" "wartości)"
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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -15813,7 +15765,7 @@ msgstr ""
"Rozszerzone wyrażenia regularne POSIX ze źródłami dozwolonymi dla gniazd " "Rozszerzone wyrażenia regularne POSIX ze źródłami dozwolonymi dla gniazd "
"webowych (nie wrażliwe na wielkość znaków, umieszczenie \"(?-i)\" na " "webowych (nie wrażliwe na wielkość znaków, umieszczenie \"(?-i)\" na "
"początku sprawi, że wielość znaków będzie miała znaczenie), przykład: " "początku sprawi, że wielość znaków będzie miała znaczenie), przykład: "
"\"^https?://(www\\.)?example\\.(com|org)\"" "\"^http://(www\\.)?przykład\\.(com|org)\""
msgid "" msgid ""
"enable websocket extension \"permessage-deflate\" to compress websocket " "enable websocket extension \"permessage-deflate\" to compress websocket "
@@ -15933,11 +15885,11 @@ msgstr "liczba podłączonych klientów"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"protokół, status (oba są opcjonalne, dla każdego argumentu „*” oznacza " "protokół, status (oba są opcjonalne, dla każdego argumentu „*” oznacza "
"wszystko; protokoły: api, irc, weechat; statusy: connecting, waiting_auth, " "wszystko; protokoły: irc, weechat; statusy: connecting, waiting_auth, "
"connected, auth_failed, disconnected)" "connected, auth_failed, disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
@@ -16072,11 +16024,6 @@ msgstr "%s%s: nie można wykonać \"bind\" na ścieżce %s (%s): błąd %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: nie można wykonać \"bind\" na porcie %d (%s): błąd %d %s" msgstr "%s%s: nie można wykonać \"bind\" na porcie %d (%s): błąd %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: nie można wykonać \"listen\" na ścieżce %s (%s): błąd %d %s"
#, c-format #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: nie można wykonać \"listen\" na ścieżce %s (%s): błąd %d %s" msgstr "%s%s: nie można wykonać \"listen\" na ścieżce %s (%s): błąd %d %s"
@@ -16117,8 +16064,9 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: za mało pamięci do nasłuchu na nowym porcie" msgstr "%s%s: za mało pamięci do nasłuchu na nowym porcie"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Przekazywanie danych WeeChat do zdalnych aplikacji" msgstr ""
"Przekazywanie danych WeeChat do zdalnych aplikacji (protokoły irc i weechat)"
msgid "connecting" msgid "connecting"
msgstr "łączę" msgstr "łączę"
@@ -16350,16 +16298,11 @@ msgstr "(brak)"
msgid "Alt+key/input: v=back to list d=jump to diff" msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+klawisz/wejście: v=wróć do listy d=skocz do diff" msgstr "Alt+klawisz/wejście: v=wróć do listy d=skocz do diff"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d skrypty (filtr: %s) | Sort: %s | Alt+klawisz/wejście: i=instaluj " "%d/%d skrypty (filtr: %s) | Sort: %s | Alt+klawisz/wejście: i=instaluj "
@@ -16747,11 +16690,6 @@ msgstr "1 jeśli skrypt jest załadowany"
msgid "script name with extension" msgid "script name with extension"
msgstr "nazwa skryptu z rozszerzeniem" msgstr "nazwa skryptu z rozszerzeniem"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "oddzielona przecinkami lista rozszerzeń nazw plików dla wtyczek"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
"nazwa skryptu z rozszerzeniem (wildcard \"*\" jest dozwolony) (opcjonalne)\"" "nazwa skryptu z rozszerzeniem (wildcard \"*\" jest dozwolony) (opcjonalne)\""
+27 -54
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-12 20:24+0100\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n" "Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese - Portugal <weechat-dev@nongnu.org>\n" "Language-Team: Portuguese <>\n"
"Language: pt\n" "Language: pt\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -165,10 +165,10 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, compilado a %s %s\n" "WeeChat %s Copyright %s, compilado a %s %s\n"
"Desenvolvido por %s <%s> - %s" "Desenvolvido por Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Utilização:" msgstr "Utilização:"
@@ -1190,16 +1190,6 @@ msgstr ""
"mensagem: mensagem de ausência (se não for indicada uma mensagem, o estado " "mensagem: mensagem de ausência (se não for indicada uma mensagem, o estado "
"ausente é removido)" "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" msgid "manage bars"
msgstr "gerir barras" msgstr "gerir barras"
@@ -12505,8 +12495,8 @@ msgstr "nome do servidor"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "obter nick do host de IRC" msgstr "obter nick do host de IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host de IRC (tal como `:nick!nome@servidor`)" msgstr "host de IRC (tal como `:nick!nome@servidor.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12749,8 +12739,8 @@ msgstr "%s%s: este buffer não é um canal!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13954,7 +13944,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -15844,11 +15834,11 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"lista de plugins separados por vírgula para carregar automaticamente ao " "lista de plugins separados por vírgula para carregar automaticamente ao "
"iniciar, \"*\" significa todos os plugins encontrados, um nome começado com " "iniciar, \"*\" significa todos os plugins encontrados, um nome começado com "
@@ -15857,10 +15847,10 @@ msgstr ""
"tcl\")" "tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -15893,11 +15883,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 #, fuzzy
msgid "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
@@ -16021,7 +16006,7 @@ msgstr "número de cliente para reencaminhar"
#, fuzzy #, fuzzy
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"nome de estado (opcional): connecting, waiting_auth, connected, auth_failed, " "nome de estado (opcional): connecting, waiting_auth, connected, auth_failed, "
@@ -16170,10 +16155,6 @@ 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" 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" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" 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" msgstr "%s%s: não foi possível efetuar \"listen\" da porta %d (%s): erro %d %s"
@@ -16214,8 +16195,10 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memória insuficiente para escutar nova porta" msgstr "%s%s: memória insuficiente para escutar nova porta"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Reencaminhar dados do WeeChat para aplicações remotas" msgstr ""
"Reencaminhar dados do WeeChat para aplicações remotas (protocolos irc/"
"weechat)"
msgid "connecting" msgid "connecting"
msgstr "a conectar" msgstr "a conectar"
@@ -16459,16 +16442,11 @@ msgstr "(nada)"
msgid "Alt+key/input: v=back to list d=jump to diff" msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+tecla/entrada: v=voltar à lista d=saltar para o diff" msgstr "Alt+tecla/entrada: v=voltar à lista d=saltar para o diff"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d scripts (filtro: %s) | Ordenar: %s | Alt+tecla/entrada: i=instalar, " "%d/%d scripts (filtro: %s) | Ordenar: %s | Alt+tecla/entrada: i=instalar, "
@@ -16869,11 +16847,6 @@ msgstr "scripts %s carregados:"
msgid "script name with extension" msgid "script name with extension"
msgstr "lista de extensões de script" 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)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
"nome do script com extensão (o caráter universal \"*\" é permitido) " "nome do script com extensão (o caráter universal \"*\" é permitido) "
+23 -46
View File
@@ -46,10 +46,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-12 20:19+0100\n"
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n" "Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
"Language-Team: Portuguese - Brazil <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -189,10 +189,10 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Copyright %s, compilado em %s %s\n" "WeeChat %s Copyright %s, compilado em %s %s\n"
"Desenvolvido por %s <%s> - %s" "Desenvolvido por Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Uso:" msgstr "Uso:"
@@ -1201,16 +1201,6 @@ msgstr ""
"message: mensagem para ausência (se nenhuma mensagem for fornecida, o status " "message: mensagem para ausência (se nenhuma mensagem for fornecida, o status "
"de ausência é removido)" "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" msgid "manage bars"
msgstr "gerenciar barras" msgstr "gerenciar barras"
@@ -11654,8 +11644,8 @@ msgstr "nome do servidor"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "obter apelido de host IRC" msgstr "obter apelido de host IRC"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "host IRC (exemplo: `:apelido!nome@servidor`)" msgstr "host IRC (exemplo: `:apelido!nome@servidor.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -11891,8 +11881,8 @@ msgstr "%s%s: este buffer não é um canal!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -13056,7 +13046,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -14888,11 +14878,11 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"lista separada por vírgulas dos plugins para carregar automaticamente " "lista separada por vírgulas dos plugins para carregar automaticamente "
"nainicialização, \"*\" significa todos os plugins encontrados, um nome " "nainicialização, \"*\" significa todos os plugins encontrados, um nome "
@@ -14901,10 +14891,10 @@ msgstr ""
"plugins (exemplos: \"*\" ou \"*,!lua,!tcl\")" "plugins (exemplos: \"*\" ou \"*,!lua,!tcl\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -14937,11 +14927,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 #, fuzzy
msgid "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
@@ -15060,7 +15045,7 @@ msgstr "numero de clientes para o relay"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -15180,10 +15165,6 @@ msgstr "%s%s: erro ao associar (\"bind\") na porta %d (%s.%s)"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %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)" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" 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)" msgstr "%s%s: não foi possível aceitar o cliente na porta %d (%s.%s)"
@@ -15220,7 +15201,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: memória insuficiente para escutar na nova porta" msgstr "%s%s: memória insuficiente para escutar na nova porta"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "" msgstr ""
msgid "connecting" msgid "connecting"
@@ -15464,9 +15445,9 @@ msgstr "Alt+key/input: v=volta para lista d=pular para o diff"
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -15838,10 +15819,6 @@ msgstr "scripts %s carregados:"
msgid "script name with extension" msgid "script name with extension"
msgstr "list de scripts" 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 #, fuzzy
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+20 -42
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n" "PO-Revision-Date: 2026-03-08 08:59+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: Russian <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: ru\n" "Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -162,7 +162,7 @@ msgstr ""
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"%s Copyright (C) 2003-2010, собран %s %s\n" "%s Copyright (C) 2003-2010, собран %s %s\n"
"Разработчик - Sébastien Helleu <flashcode@flashtux.org> - %s" "Разработчик - Sébastien Helleu <flashcode@flashtux.org> - %s"
@@ -1179,16 +1179,6 @@ msgstr ""
" -all: включить режим \"отсутствую\" на всех подключенных серверах\n" " -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 #, fuzzy
msgid "manage bars" msgid "manage bars"
msgstr "управление буферами" msgstr "управление буферами"
@@ -11337,7 +11327,7 @@ msgstr "цель: название сервера"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "банит ник или хост" msgstr "банит ник или хост"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -11571,8 +11561,8 @@ msgstr "Это окно не является каналом!\n"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -12696,7 +12686,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -14452,21 +14442,21 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"разделённый запятыми список автоматически загружаемых при запуске plug-" "разделённый запятыми список автоматически загружаемых при запуске plug-"
"in'ов , \"*\" означает все найденные plug-in'ы (имена могут быть не полными, " "in'ов , \"*\" означает все найденные plug-in'ы (имена могут быть не полными, "
"например \"perl\" успешно загрузит \"libperl.so\")" "например \"perl\" успешно загрузит \"libperl.so\")"
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -14499,11 +14489,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -14603,7 +14588,7 @@ msgstr "Нет сервера.\n"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -14725,10 +14710,6 @@ msgstr "%s невозможно создать сокет\n"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s невозможно создать сокет\n" 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 #, fuzzy, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s невозможно создать сокет\n" msgstr "%s невозможно создать сокет\n"
@@ -14767,7 +14748,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s недостаточно памяти для нового DCC\n" msgstr "%s недостаточно памяти для нового DCC\n"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "" msgstr ""
#, fuzzy #, fuzzy
@@ -15011,9 +14992,9 @@ msgstr ""
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -15367,9 +15348,6 @@ msgstr "FIFO pipe закрыт\n"
msgid "script name with extension" msgid "script name with extension"
msgstr "Список сокращений:\n" msgstr "Список сокращений:\n"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+57 -96
View File
@@ -22,10 +22,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-21 17:26+0100\n"
"Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n" "Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
"Language-Team: Serbian <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -166,10 +166,10 @@ msgstr "искључује иниц/деиниц gcrypt"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s ауторска права %s, компајлиран %s %s\n" "WeeChat %s ауторска права %s, компајлиран %s %s\n"
"Написао %s <%s> - %s" "Написао Себастијен Елеу <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Употреба:" msgstr "Употреба:"
@@ -1138,20 +1138,6 @@ msgid ""
msgstr "" 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" msgid "manage bars"
msgstr "управљање тракама" msgstr "управљање тракама"
@@ -1254,12 +1240,16 @@ msgstr "маска: име у којем је дозвољен џокер „*
msgid "raw[set]: set a value for a bar property" msgid "raw[set]: set a value for a bar property"
msgstr "raw[set]: поставља вредност особине траке" msgstr "raw[set]: поставља вредност особине траке"
#, fuzzy
#| msgid ""
#| "option: option to change (for options list, look at /set weechat.bar."
#| "<barname>.*)"
msgid "" msgid ""
"option: option to change (for options list, look at /set weechat.bar." "option: option to change (for options list, look at /set weechat.bar."
"<bar_name>.*)" "<bar_name>.*)"
msgstr "" msgstr ""
"опција: опција која се мења (за листу опција, погледајте /set weechat.bar." "опција: опција која се мења (за листу опција, погледајте /set weechat.bar."
"<име_траке>.*)" "<иметраке>.*)"
msgid "value: new value for option" msgid "value: new value for option"
msgstr "вредност: нова вредност опције" msgstr "вредност: нова вредност опције"
@@ -1789,11 +1779,14 @@ msgid "evaluate expression"
msgstr "израчунавање израза" msgstr "израчунавање израза"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated #. 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 "" msgid ""
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> " "[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr "[-n|-s] [-d] <израз> || [-n] [-d [-d]] -c <израз1> <оператор> <израз2>"
"[-n|-s] [-e] [-d] <израз> || [-n] [-d [-d]] -c <израз1> <оператор> <израз2>"
msgid "raw[-n]: display result without sending it to buffer (debug mode)" msgid "raw[-n]: display result without sending it to buffer (debug mode)"
msgstr "raw[-n]: приказује резултат и не шаље га у бафер (дибаг режим)" msgstr "raw[-n]: приказује резултат и не шаље га у бафер (дибаг режим)"
@@ -1806,7 +1799,7 @@ msgstr ""
"тачка запетама)" "тачка запетама)"
msgid "raw[-e]: evaluate all commands before executing them" msgid "raw[-e]: evaluate all commands before executing them"
msgstr "raw[-e]: израчунај све команде пре него што се изврше" msgstr ""
msgid "" msgid ""
"raw[-d]: display debug output after evaluation (with two -d: more verbose " "raw[-d]: display debug output after evaluation (with two -d: more verbose "
@@ -3464,12 +3457,16 @@ msgstr "raw[del]: брише проксије"
msgid "raw[set]: set a value for a proxy property" msgid "raw[set]: set a value for a proxy property"
msgstr "raw[set]: поставља вредност особине проксија" msgstr "raw[set]: поставља вредност особине проксија"
#, fuzzy
#| msgid ""
#| "option: option to change (for options list, look at /set weechat.proxy."
#| "<proxyname>.*)"
msgid "" msgid ""
"option: option to change (for options list, look at /set weechat.proxy." "option: option to change (for options list, look at /set weechat.proxy."
"<proxy_name>.*)" "<proxy_name>.*)"
msgstr "" msgstr ""
"опција: опција која треба да се промени (за листу опција, погледајте /set " "опција: опција која треба да се промени (за листу опција, погледајте /set "
"weechat.proxy.<име_проксија>.*)" "weechat.proxy.<имепроксија>.*)"
msgid " add a http proxy, running on local host, port 8888:" msgid " add a http proxy, running on local host, port 8888:"
msgstr " додаје http прокси који се извршава на локалном хосту, порт 8888:" msgstr " додаје http прокси који се извршава на локалном хосту, порт 8888:"
@@ -4051,8 +4048,10 @@ msgstr ""
msgid "With option \"-quit\", the process is:" msgid "With option \"-quit\", the process is:"
msgstr "Процес са опцијом „-quit” је следећи:" msgstr "Процес са опцијом „-quit” је следећи:"
#, fuzzy
#| msgid " 1. close *ALL* connections (irc, xfer, relay, ...)"
msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)" msgid " 1. close *ALL* connections (irc, xfer, relay, etc.)"
msgstr " 1. затварање *СВИХ* конекција (irc, xfer, relay, итд.)" msgstr " 1. затварање *СВИХ* конекција (irc, xfer, relay, ...)"
msgid " 2. save session into files (*.upgrade)" msgid " 2. save session into files (*.upgrade)"
msgstr " 2. чување сесије у фајлове (*.upgrade)" msgstr " 2. чување сесије у фајлове (*.upgrade)"
@@ -11907,6 +11906,7 @@ msgstr ""
msgid "left/right scroll in /list buffer (percent of width)" msgid "left/right scroll in /list buffer (percent of width)"
msgstr "скроловање у лево/десно у /list баферу (проценат ширине)" msgstr "скроловање у лево/десно у /list баферу (проценат ширине)"
#, fuzzy
msgid "" msgid ""
"comma-separated list of fields to sort channels (see /help list for a list " "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 \"~\" " "of fields); char \"-\" can be used before field to reverse order, char \"~\" "
@@ -11917,8 +11917,8 @@ msgstr ""
"листа поља за сортирање канала раздвојених запетама (погледајте /help list " "листа поља за сортирање канала раздвојених запетама (погледајте /help list "
"за листу поља); карактер „-” може да се користи испред поља чиме се обрће " "за листу поља); карактер „-” може да се користи испред поља чиме се обрће "
"редослед, карактер „~” може да се употреби за поређење које не прави разлику " "редослед, карактер „~” може да се употреби за поређење које не прави разлику "
"у величини слова; пример: „-users,~name2” најпре за највеће канале, па онда " "у величини слова; пример: „-users,~name2” за поређење које не прави разлику "
"сортирање које не прави разлику у величини слова по имену канала без префикса" "у величини слова и обрнуто сортирање по имену опције"
msgid "strip channel topic colors in /list buffer" msgid "strip channel topic colors in /list buffer"
msgstr "уклањање боја теме канала у /list баферу" msgstr "уклањање боја теме канала у /list баферу"
@@ -12446,8 +12446,8 @@ msgstr "име сервера"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "враћа надимак из IRC хоста" msgstr "враћа надимак из IRC хоста"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC хост (као `:надимак!име@сервер`)" msgstr "IRC хост (као `:надимак!име@сервер.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12664,13 +12664,10 @@ msgstr "%s%s: нисте повезани са сервером"
msgid "%s%s: this buffer is not a channel!" msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: овај бафер није канал!" msgstr "%s%s: овај бафер није канал!"
#, fuzzy, c-format #, c-format
#| msgid ""
#| "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
#| "channel, ($)=refresh, (q)=close buffer"
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастер(унос): ctrl+j= " "%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастер(унос): ctrl+j= "
"приступ каналу, ($)=освежавање, (q)=затварање бафера" "приступ каналу, ($)=освежавање, (q)=затварање бафера"
@@ -13870,7 +13867,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -13880,9 +13877,9 @@ msgstr ""
"текућем фајлу се поставља екстензија .1; дозвољава се цели број са суфиксом: " "текућем фајлу се поставља екстензија .1; дозвољава се цели број са суфиксом: "
"b = бајтова (подразумевано ако се не наведе јединица), k = килобајта, m = " "b = бајтова (подразумевано ако се не наведе јединица), k = килобајта, m = "
"мегабајта, g = гигабајта, t = терабајта; пример: „2g” значи да се ротација " "мегабајта, g = гигабајта, t = терабајта; пример: „2g” значи да се ротација "
"врши ако је величина фајла > 2 GB; ако се постави на „0”, ротација се не " "врши ако је величина фајла > 2,000,000,000 бајтова; ако се постави на „0”, "
"врши (нема ограничења лог фајла); УПОЗОРЕЊЕ: пре него што промените ову " "ротација се не врши (нема ограничења лог фајла); УПОЗОРЕЊЕ: пре него што "
"опцију, требало би најпре да поставите тип компресије опцијом " "промените ову опцију, требало би најпре да поставите тип компресије опцијом "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
msgid "" msgid ""
@@ -15679,21 +15676,13 @@ msgstr ""
"relay.network.allow_empty_password) (напомена: садржај се израчунава, " "relay.network.allow_empty_password) (напомена: садржај се израчунава, "
"погледајте /help eval)" "погледајте /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 "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"листа хеш алгоритама раздвојених запетама који се користе за аутентификацију " "листа хеш алгоритама раздвојених запетама који се користе за аутентификацију "
"лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не " "лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не "
@@ -15702,17 +15691,11 @@ msgstr ""
"спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” " "спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” "
"(примери: „*”, „pbkdf2*”, „*,!plain”)" "(примери: „*”, „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 "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
"број итерација који се захтева од клијента у weechat протоколу када се за " "број итерација који се захтева од клијента у weechat протоколу када се за "
"аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација " "аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација "
@@ -15761,13 +15744,6 @@ msgstr ""
"након, ...; велики број умањује ниво безбедности (препоручене вредности су 0 " "након, ...; велики број умањује ниво безбедности (препоручене вредности су 0 "
"или 1)" "или 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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -15893,11 +15869,11 @@ msgstr "број клијената за релеј"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"протокол,статус (оба нису обавезна, за сваки аргумент „*” значи све; " "протокол,статус (оба нису обавезна, за сваки аргумент „*” значи све; "
"протоколи: api, irc, weechat; статуси: connecting, waiting_auth, connected, " "протоколи: irc, weechat; статуси: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
@@ -16030,11 +16006,6 @@ msgstr "%s%s: „bind” не може да се изврши на путању
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: „bind” не може да се изврши на порт %d (%s): грешка %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 #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: „listen” не може да се покрене на путањи %s (%s): грешка%d %s" msgstr "%s%s: „listen” не може да се покрене на путањи %s (%s): грешка%d %s"
@@ -16074,8 +16045,8 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: нема довољно слободне меморије за слушање на новом порту" msgstr "%s%s: нема довољно слободне меморије за слушање на новом порту"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "Релеј WeeChat података удаљеној апликацији" msgstr "Релеј WeeChat података удаљеној апликацији (irc/weechat протоколи)"
msgid "connecting" msgid "connecting"
msgstr "повезивање" msgstr "повезивање"
@@ -16303,16 +16274,11 @@ msgstr "(ништа)"
msgid "Alt+key/input: v=back to list d=jump to diff" msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+тастер/унос: v=назад на листу d=скок на diff" msgstr "Alt+тастер/унос: v=назад на листу d=скок на diff"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d скрипти (филтер: %s) | Сортирање: %s | Alt+тастер/унос: i=инсталација, " "%d/%d скрипти (филтер: %s) | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
@@ -16695,11 +16661,6 @@ msgstr "1 ако је скрипта учитана"
msgid "script name with extension" msgid "script name with extension"
msgstr "име скрипте са екстензијом" 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)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)" msgstr "име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)"
@@ -17740,9 +17701,6 @@ msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is " "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" "used instead of the translated string \"Typing: \" which is used by default"
msgstr "" msgstr ""
"текст који се приказује испред надимака у ставци траке „typing”; ако је "
"постављен, употребиће се уместо преведеног стринга „Typing: ”, који се "
"подразумевано користи"
msgid "Typing status of users" msgid "Typing status of users"
msgstr "Статус куцања корисника" msgstr "Статус куцања корисника"
@@ -17876,14 +17834,17 @@ msgstr "величина блока за слање пакета, у бајто
msgid "does not wait for ACK when sending file" msgid "does not wait for ACK when sending file"
msgstr "не чека се на ACK када се шаље фајл" msgstr "не чека се на ACK када се шаље фајл"
#, fuzzy
#| msgid ""
#| "IP or DNS address used for sending and passively receiving files/chats "
#| "(if empty, local interface IP is used)"
msgid "" msgid ""
"IP or DNS address used for sending and passively receiving files/chats; if " "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 " "empty, local interface IP is used (note: content is evaluated, see /help "
"eval)" "eval)"
msgstr "" msgstr ""
"IP или DNS адреса која се користи за слање и пасивно примање фајлова/" "IP или DNS адреса која се користи за слање и пасивно примање фајлова/"
"разговора; ако је празно, користи се IP локалног интерфејса (напомена: " "разговора (ако је празно, користи се IP локалног интерфејса)"
"садржај сер израчунава, погледајте /help eval)"
msgid "" msgid ""
"restricts outgoing files/chats and incoming/passive files to use only ports " "restricts outgoing files/chats and incoming/passive files to use only ports "
+164 -168
View File
@@ -23,10 +23,10 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-03-24 23:00+0100\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n" "Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: tr\n" "Language: tr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -85,9 +85,8 @@ msgstr "-P, --plugins <eklenti>"
#. TRANSLATORS: command line option "-P", "--plugins <plugins>" #. TRANSLATORS: command line option "-P", "--plugins <plugins>"
msgid "load only these plugins at startup (see /help weechat.plugin.autoload)" msgid "load only these plugins at startup (see /help weechat.plugin.autoload)"
msgstr "" msgstr "başlangıçta yalnızca bu üç eklentiyi yükle "
"başlangıçta yalnızca bu üç eklentiyi yükle (bkz. /help " "(bkz. /help weechat.plugin.autoload)"
"weechat.plugin.autoload)"
#. TRANSLATORS: only "<cmd>" may be translated (please keep it short) #. TRANSLATORS: only "<cmd>" may be translated (please keep it short)
msgid "-r, --run-command <cmd>" msgid "-r, --run-command <cmd>"
@@ -163,10 +162,10 @@ msgstr "gcrypt başlat/sonlandır devre dışı bırak"
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
"WeeChat %s Telif hakkı %s, %s %s tarihinde derlendi\n" "WeeChat %s Telif hakkı %s, %s %s tarihinde derlendi\n"
"Geliştirici: %s <%s> - %s" "Geliştirici: Sébastien Helleu <flashcode@flashtux.org> - %s"
msgid "Usage:" msgid "Usage:"
msgstr "Kullanım:" msgstr "Kullanım:"
@@ -1129,21 +1128,6 @@ msgid ""
msgstr "" msgstr ""
"ileti: Uzakta durumu iletisi (eğer bir ileti verilmezse durum kaldırılır)" "ileti: Uzakta durumu iletisi (eğer bir ileti verilmezse durum kaldırılır)"
msgid ""
"By default the away status is displayed only locally by the irc plugin (see /"
"help irc.look.display_away)."
msgstr ""
#, fuzzy
#| msgid ""
#| " - ${color:name}: the color (see \"Plugin API reference\", function "
#| "\"color\")"
msgid ""
"This command can be caught by other plugins and scripts (see \"Plugin API "
"reference\", function \"hook_command_run\")."
msgstr ""
" - ${color:ad}: Renk adı (bkz. \"Eklenti API başvurusu\", \"color\" işlevi)"
msgid "manage bars" msgid "manage bars"
msgstr "çubukları yönet" msgstr "çubukları yönet"
@@ -1787,7 +1771,8 @@ msgid ""
"[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> " "[-n|-s] [-e] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
"[-n|-s] [-e] [-d] <ifade> || [-n] [-d [-d]] -c <ifade1> <işleç> <ifade2>" "[-n|-s] [-e] [-d] <ifade> || [-n] [-d [-d]] -c <ifade1> <işleç> "
"<ifade2>"
msgid "raw[-n]: display result without sending it to buffer (debug mode)" msgid "raw[-n]: display result without sending it to buffer (debug mode)"
msgstr "raw[-n]: Arabelleğe göndermeden sonucu görüntüle (hata ayıklama kipi)" msgstr "raw[-n]: Arabelleğe göndermeden sonucu görüntüle (hata ayıklama kipi)"
@@ -2411,8 +2396,7 @@ msgstr "-list|-listfull [<eklenti>...] || <komut> || <seçenek>"
msgid "" msgid ""
"raw[-list]: list commands, by plugin (without argument, this list is " "raw[-list]: list commands, by plugin (without argument, this list is "
"displayed)" "displayed)"
msgstr "" msgstr "raw[-list]: Eklentiye göre komutları listele (argümansız bu liste "
"raw[-list]: Eklentiye göre komutları listele (argümansız bu liste "
"görüntülenir)" "görüntülenir)"
msgid "raw[-listfull]: list commands with description, by plugin" msgid "raw[-listfull]: list commands with description, by plugin"
@@ -2466,8 +2450,8 @@ msgid ""
"clear only highest level in hotlist, or level mask: integer which is a " "clear only highest level in hotlist, or level mask: integer which is a "
"combination of 1=join/part, 2=message, 4=private, 8=highlight" "combination of 1=join/part, 2=message, 4=private, 8=highlight"
msgstr "" msgstr ""
"düzey: Sıcak listede yalnızca en düşük düzeyi temizlemek için \"lowest\", en " "düzey: Sıcak listede yalnızca en düşük düzeyi temizlemek için \"lowest\", "
"yüksek düzey için \"highest\" veya düzey maskesi olarak tamsayı; şunların " "en yüksek düzey için \"highest\" veya düzey maskesi olarak tamsayı; şunların "
"bir kombinasyonudur: 1=katıl/ayrıl, 2=ileti, 4=özel, 8=vurgula" "bir kombinasyonudur: 1=katıl/ayrıl, 2=ileti, 4=özel, 8=vurgula"
msgid "raw[remove]: remove current buffer from hotlist" msgid "raw[remove]: remove current buffer from hotlist"
@@ -2558,11 +2542,13 @@ msgstr "> raw[delete_next_word]: Sonraki sözcüğü sil"
msgid "" msgid ""
"> raw[delete_beginning_of_line]: delete from beginning of line until cursor" "> raw[delete_beginning_of_line]: delete from beginning of line until cursor"
msgstr "> raw[delete_beginning_of_line]: Satırın başından imlece kadar sil" msgstr ""
"> raw[delete_beginning_of_line]: Satırın başından imlece kadar sil"
msgid "" msgid ""
"> raw[delete_beginning_of_input]: delete from beginning of input until cursor" "> raw[delete_beginning_of_input]: delete from beginning of input until cursor"
msgstr "> raw[delete_beginning_of_input]: Girişin başından imlece kadar sil" msgstr ""
"> raw[delete_beginning_of_input]: Girişin başından imlece kadar sil"
msgid "> raw[delete_end_of_line]: delete from cursor until end of line" msgid "> raw[delete_end_of_line]: delete from cursor until end of line"
msgstr "> raw[delete_end_of_line]: İmleçten satırın sonuna kadar sil" msgstr "> raw[delete_end_of_line]: İmleçten satırın sonuna kadar sil"
@@ -2668,8 +2654,8 @@ msgid ""
"> raw[insert]: insert text in command line (escaped chars are allowed, see /" "> raw[insert]: insert text in command line (escaped chars are allowed, see /"
"help print)" "help print)"
msgstr "" msgstr ""
"> raw[insert]: Komut satırına metin gir (kaçırılan karakterlere izin " "> raw[insert]: Komut satırına metin gir (kaçırılan karakterlere izin verilir; "
"verilir; bkz. /help print)" "bkz. /help print)"
msgid "> raw[send]: send text to the buffer" msgid "> raw[send]: send text to the buffer"
msgstr "> raw [send]: Arabelleğe metin gönder" msgstr "> raw [send]: Arabelleğe metin gönder"
@@ -2727,8 +2713,7 @@ msgstr ""
msgid "" msgid ""
"raw[recreate]: set input with the command used to edit the custom bar item" "raw[recreate]: set input with the command used to edit the custom bar item"
msgstr "" msgstr ""
"raw[recreate]: Özel çubuk ögesini düzenlemede kullanılan komutla girişi " "raw[recreate]: Özel çubuk ögesini düzenlemede kullanılan komutla girişi ayarla"
"ayarla"
msgid "raw[del]: delete custom bar items" msgid "raw[del]: delete custom bar items"
msgstr "raw[del]: Özel çubuk ögesini sil" msgstr "raw[del]: Özel çubuk ögesini sil"
@@ -3323,12 +3308,16 @@ msgstr ""
msgid "raw[set]: set a value for a proxy property" msgid "raw[set]: set a value for a proxy property"
msgstr "" msgstr ""
#, fuzzy
#| msgid ""
#| "option: option to change (for options list, look at /set weechat.bar."
#| "<barname>.*)"
msgid "" msgid ""
"option: option to change (for options list, look at /set weechat.proxy." "option: option to change (for options list, look at /set weechat.proxy."
"<proxy_name>.*)" "<proxy_name>.*)"
msgstr "" msgstr ""
"seçenek: değiştirilecek seçenek (seçenekler listesi için /set weechat.proxy." "seçenek: değiştirilecek seçenek (seçenekler listesi için /set "
"<vekil_adı>.* bölümüne bakın)" "weechat.bar<çubukadı>.* komutunu çalıştırın)"
msgid " add a http proxy, running on local host, port 8888:" msgid " add a http proxy, running on local host, port 8888:"
msgstr "" msgstr ""
@@ -4205,14 +4194,18 @@ msgstr ""
msgid "names of filters" msgid "names of filters"
msgstr "süzgeçlerin adları" msgstr "süzgeçlerin adları"
#, fuzzy
#| msgid "names of filters"
msgid "names of disabled filters" msgid "names of disabled filters"
msgstr "devre dışı bırakılmış süzgeçlerin adları" msgstr "süzgeçlerin adları"
#, fuzzy
#| msgid "names of filters"
msgid "names of enabled filters" msgid "names of enabled filters"
msgstr "etkinleştirilmiş süzgeçlerin adları" msgstr "süzgeçlerin adları"
msgid "hook types" msgid "hook types"
msgstr "kanca türleri" msgstr ""
msgid "" msgid ""
"commands (weechat and plugins); optional argument: prefix to add before the " "commands (weechat and plugins); optional argument: prefix to add before the "
@@ -6019,10 +6012,12 @@ msgstr "ONULMAZ: Yapılandırma seçenekleri ilklendirilirken hata"
#. TRANSLATORS: "%s %s" after "compiled on" is date and time #. TRANSLATORS: "%s %s" after "compiled on" is date and time
#, c-format #, c-format
msgid "WeeChat %s, compiled on %s %s\n" msgid "WeeChat %s, compiled on %s %s\n"
msgstr "WeeChat %s, derlenme: %s %s\n" msgstr ""
#, fuzzy
#| msgid "(old options?)"
msgid "Build options:\n" msgid "Build options:\n"
msgstr "Yapı seçenekleri:\n" msgstr "(eski seçenekler?)"
msgid "Windows tree:" msgid "Windows tree:"
msgstr "Pencereler ağacı:" msgstr "Pencereler ağacı:"
@@ -6034,10 +6029,12 @@ msgid "Memory usage not available (function \"mallinfo\" not found)"
msgstr "Bellek kullanımı mevcut değil (\"mallinfo\" işlevi bulunamadı)" msgstr "Bellek kullanımı mevcut değil (\"mallinfo\" işlevi bulunamadı)"
msgid "not initialized" msgid "not initialized"
msgstr "ilklendirilmedi" msgstr ""
#, fuzzy
#| msgid "no variable"
msgid "not available" msgid "not available"
msgstr "kullanılamıyor" msgstr "değişken yok"
msgid "TEMPORARY, deleted on exit" msgid "TEMPORARY, deleted on exit"
msgstr "GEÇİCİ, çıkışta silinir" msgstr "GEÇİCİ, çıkışta silinir"
@@ -6146,13 +6143,13 @@ msgid "Constants"
msgstr "Sabitler" msgstr "Sabitler"
msgid "Rank" msgid "Rank"
msgstr "Derece" msgstr ""
msgid "Priority" msgid "Priority"
msgstr "Öncelik" msgstr ""
msgid "File" msgid "File"
msgstr "Dosya" msgstr ""
#, fuzzy #, fuzzy
#| msgid "Constants" #| msgid "Constants"
@@ -6311,8 +6308,10 @@ msgstr ""
"(parolayı atlamak için boşluk düğmesine bir kez basın; ancak bu tüm güvenli " "(parolayı atlamak için boşluk düğmesine bir kez basın; ancak bu tüm güvenli "
"veriyi DEVRE DIŞI bırakacaktır!)" "veriyi DEVRE DIŞI bırakacaktır!)"
#, fuzzy
#| msgid "(press ctrl-C to exit WeeChat now)"
msgid "(press ctrl-c to exit WeeChat now)" msgid "(press ctrl-c to exit WeeChat now)"
msgstr "(WeeChat'ten şimdi çıkmak için ctrl-c yapın)" msgstr "(WeeChat'ten şimdi çıkmak için ctrl-C düğmesine basın)"
msgid "" msgid ""
"To recover your secured data, you can use /secure decrypt (see /help secure)" "To recover your secured data, you can use /secure decrypt (see /help secure)"
@@ -6369,9 +6368,10 @@ msgid ""
"version is too old?)" "version is too old?)"
msgstr "" msgstr ""
#, c-format #, fuzzy, c-format
#| msgid "%sError encrypting data \"%s\" (%d)"
msgid "%sFailed to encrypt data \"%s\" (%d)" msgid "%sFailed to encrypt data \"%s\" (%d)"
msgstr "%s\"%s\" verisi şifrelenemedi (%d)" msgstr "%s\"%s\" verisi şifrelenirken hata (%d)"
msgid "" msgid ""
"cipher used to crypt data (the number after algorithm is the size of the key " "cipher used to crypt data (the number after algorithm is the size of the key "
@@ -6451,19 +6451,25 @@ msgid "%sUnknown resource limit \"%s\" (see /help weechat.startup.sys_rlimit)"
msgstr "" msgstr ""
"%sBilinmeyen kaynak limiti \"%s\" (bkz. /help weechat.startup.sys_rlimit)" "%sBilinmeyen kaynak limiti \"%s\" (bkz. /help weechat.startup.sys_rlimit)"
#, fuzzy
#| msgid "Memory usage (see \"man mallinfo\" for help):"
msgid "Resource limits (see \"man getrlimit\" for help):" msgid "Resource limits (see \"man getrlimit\" for help):"
msgstr "Özkaynak sınırları (yardım için bkz. \"man getrlimit\"):" msgstr "Bellek kullanımı (yardım için bkz. \"man mallinfo\"):"
#, c-format #, fuzzy, c-format
#| msgid "%sUnable to set resource limit \"%s\" to %s: error %d %s"
msgid "%sUnable to get resource limit \"%s\": error %d %s" msgid "%sUnable to get resource limit \"%s\": error %d %s"
msgstr "%sÖzkaynak sınırı \"%s\" alınamıyor: Hata %d %s" msgstr "%sKaynak limiti \"%s\", %s olarak ayarlanamadı: Hata %d %s"
#, c-format #, fuzzy, c-format
#| msgid "%s: error: dictionary \"%s\" is not available on your system"
msgid "System function \"%s\" is not available" msgid "System function \"%s\" is not available"
msgstr "Sistem işlevi \"%s\" kullanılabilir değil" msgstr "%s: Hata: \"%s\" sözlüğü sisteminizde yok"
#, fuzzy
#| msgid "Memory usage (see \"man mallinfo\" for help):"
msgid "Resource usage (see \"man getrusage\" for help):" msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Özkaynak kullanımı (yardım için bkz. \"man getrusage\"):" msgstr "Bellek kullanımı (yardım için bkz. \"man mallinfo\"):"
#, c-format #, c-format
msgid "%sError upgrading WeeChat with file \"%s\":" msgid "%sError upgrading WeeChat with file \"%s\":"
@@ -6544,84 +6550,95 @@ msgid "Upgrade done (%.02fs)"
msgstr "Yükseltme bitti (%.02fs)" msgstr "Yükseltme bitti (%.02fs)"
msgid "invalid URL" msgid "invalid URL"
msgstr "geçersiz URL" msgstr ""
msgid "not enough memory" msgid "not enough memory"
msgstr "yetersiz bellek" msgstr "yetersiz bellek"
#, c-format #, fuzzy, c-format
#| msgid "%sFilter \"%s\" not found"
msgid "file \"%s\" not found" msgid "file \"%s\" not found"
msgstr "\"%s\" dosyası bulunamadı" msgstr "%s\"%s\" süzgeci bulunamadı"
#, c-format #, fuzzy, c-format
#| msgid "%sCannot create file \"%s\""
msgid "cannot write file \"%s\"" msgid "cannot write file \"%s\""
msgstr "\"%s\" dosyası yazılamıyor" msgstr "%s\"%s\" dosyası oluşturulamıyor"
#, fuzzy
#| msgid "fork error"
msgid "transfer error" msgid "transfer error"
msgstr "aktarım hatası" msgstr "çatal hatası"
#, c-format #, c-format
msgid "curl error %d (%s) (URL: \"%s\")\n" msgid "curl error %d (%s) (URL: \"%s\")\n"
msgstr "curl hatası %d (%s) (URL: \"%s\")\n" msgstr "curl hatası %d (%s) (URL: \"%s\")\n"
#, c-format #, fuzzy, c-format
#| msgid "curl error %d (%s) (URL: \"%s\")\n"
msgid "transfer stopped (URL: \"%s\")\n" msgid "transfer stopped (URL: \"%s\")\n"
msgstr "aktarım durduruldu (URL: \"%s\")\n" msgstr "curl hatası %d (%s) (URL: \"%s\")\n"
#, c-format #, fuzzy, c-format
#| msgid "End of command '%s', timeout reached (%.1fs)"
msgid "transfer timeout reached (%.3fs) (URL: \"%s\")\n" msgid "transfer timeout reached (%.3fs) (URL: \"%s\")\n"
msgstr "aktarım zaman aşımına ulaşıldı (%.3fs) (URL: \"%s\")\n" msgstr "'%s' komutu sonu, zaman aşımına ulaşıldı (%.1fs)"
#, c-format #, c-format
msgid "%sAnother command \"%s\" already exists for plugin \"%s\"" msgid "%sAnother command \"%s\" already exists for plugin \"%s\""
msgstr "%sŞu eklenti için başka bir komut (\"%s\") halihazırda var: \"%s\"" msgstr "%sŞu eklenti için başka bir komut (\"%s\") halihazırda var: \"%s\""
#, c-format #, fuzzy, c-format
#| msgid "%sUnknown command \"%s\" (type /help for help)"
msgid "" msgid ""
"%sUnknown command \"%s\" (commands are case-sensitive, type /help for help), " "%sUnknown command \"%s\" (commands are case-sensitive, type /help for help), "
"commands with similar name: %s" "commands with similar name: %s"
msgstr "" msgstr "%s Bilinmeyen komut \"%s\" (yardım için /help yazın)"
"%sBilinmeyen komut \"%s\" (komutlar BÜYÜK/küçük harf duyarlıdır; yardım "
"için /help yazın); benzer adlı komutlar: %s"
#, c-format #, fuzzy, c-format
#| msgid "%sUnknown command \"%s\" (type /help for help)"
msgid "" msgid ""
"%sUnknown command \"%s\" (type /help for help), commands with similar name: " "%sUnknown command \"%s\" (type /help for help), commands with similar name: "
"%s" "%s"
msgstr "" msgstr "%s Bilinmeyen komut \"%s\" (yardım için /help yazın)"
"%sBilinmeyen komut \"%s\" (yardım için /help yazın); benzer adlı komutlar: %s"
#, c-format #, c-format
msgid "%sBad file descriptor (%d) used in hook_fd" msgid "%sBad file descriptor (%d) used in hook_fd"
msgstr "%sHatalı dosya açıklayıcısı (%d) hook_fd içinde kullanılmış" msgstr "%sHatalı dosya açıklayıcısı (%d) hook_fd içinde kullanılmış"
#, c-format #, fuzzy, c-format
#| msgid "End of command '%s', timeout reached (%.1fs)"
msgid "End of command '%s', timeout reached (%.3fs)" msgid "End of command '%s', timeout reached (%.3fs)"
msgstr "\"%s\" komutunun sonu; zaman aşımına ulaşıldı (%.3fs)" msgstr "'%s' komutu sonu, zaman aşımına ulaşıldı (%.1fs)"
#, c-format #, c-format
msgid "System clock skew detected (%+ld seconds), reinitializing all timers" msgid "System clock skew detected (%+ld seconds), reinitializing all timers"
msgstr "" msgstr ""
"Sistem saati hatalı (%+ld saniye), tüm zamanlayıcılar yeniden başlatılıyor" "Sistem saati hatalı (%+ld saniye), tüm zamanlayıcılar yeniden başlatılıyor"
#, c-format #, fuzzy, c-format
#| msgid "curl error %d (%s) (URL: \"%s\")\n"
msgid "%sURL transfer error: %s (URL: \"%s\")" msgid "%sURL transfer error: %s (URL: \"%s\")"
msgstr "%sURL aktarım hatası: %s (URL: \"%s\")" msgstr "curl hatası %d (%s) (URL: \"%s\")\n"
#, c-format #, fuzzy, c-format
#| msgid "End of command '%s', timeout reached (%.1fs)"
msgid "End of URL transfer '%s', timeout reached (%.3fs)" msgid "End of URL transfer '%s', timeout reached (%.3fs)"
msgstr "\"%s\" URL aktarımının sonu; zaman aşımına ulaşıldı (%.3fs)" msgstr "'%s' komutu sonu, zaman aşımına ulaşıldı (%.1fs)"
#, c-format #, c-format
msgid "%sError running thread in hook_url: %s (URL: \"%s\")" msgid "%sError running thread in hook_url: %s (URL: \"%s\")"
msgstr "%shook_url içinde iş parçacığı çalıştırılırken hata: %s (URL: \"%s\")" msgstr ""
#, c-format #, fuzzy, c-format
#| msgid "End of command '%s', timeout reached (%.1fs)"
msgid "End of URL transfer '%s', transfer stopped" msgid "End of URL transfer '%s', transfer stopped"
msgstr "\"%s\" URL aktarımının sonu; aktarım durduruldu" msgstr "'%s' komutu sonu, zaman aşımına ulaşıldı (%.1fs)"
#, fuzzy
#| msgid "WeeChat is running in headless mode (Ctrl-C to quit)."
msgid "WeeChat is running in headless mode (ctrl-c to quit)." msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat başsız kipte çalışıyor (çıkmak için ctrl-c yapın)." msgstr "WeeChat başsız kipte çalışıyor (çıkmak için Ctrl-C)."
msgid "" msgid ""
"Welcome to WeeChat!\n" "Welcome to WeeChat!\n"
@@ -6720,7 +6737,7 @@ msgid "Nick colors:"
msgstr "Takma ad renkleri:" msgstr "Takma ad renkleri:"
msgid "Syntax highlighting colors in evaluated strings:" msgid "Syntax highlighting colors in evaluated strings:"
msgstr "Değerlendirilen dizilerdeki sözdizim vurgulama renkleri:" msgstr ""
msgid "Color aliases:" msgid "Color aliases:"
msgstr "Renk armaları:" msgstr "Renk armaları:"
@@ -6764,30 +6781,35 @@ msgstr "çubuk ögesinin içeriği (değerlendirilir, bkz. /help eval)"
#, c-format #, c-format
msgid "debug: long callback: bar: %s, item: %s, plugin: %s, time elapsed: %s" msgid "debug: long callback: bar: %s, item: %s, plugin: %s, time elapsed: %s"
msgstr "" msgstr ""
"hata ayıkla: uzun geri çağrı: çubuk: %s, öge: %s, eklenti: %s, geçen süre: %s"
#, c-format #, fuzzy, c-format
#| msgid "%sPaste %d line? [ctrl-Y] Yes [ctrl-N] No"
#| msgid_plural "%sPaste %d lines? [ctrl-Y] Yes [ctrl-N] No"
msgid "%sPaste %d line? [ctrl-y] Yes [ctrl-n] No" msgid "%sPaste %d line? [ctrl-y] Yes [ctrl-n] No"
msgid_plural "%sPaste %d lines? [ctrl-y] Yes [ctrl-n] No" msgid_plural "%sPaste %d lines? [ctrl-y] Yes [ctrl-n] No"
msgstr[0] "%s%d satır yapıştırılsın mı? [ctrl-y] Evet [ctrl-n] Hayır" msgstr[0] "%s%d satır yapıştırılsın mı? [ctrl-Y] Evet [ctrl-N] Hayır"
msgstr[1] "%s%d satır yapıştırılsın mı? [ctrl-y] Evet [ctrl-n] Hayır" msgstr[1] "%s%d satır yapıştırılsın mı? [ctrl-Y] Evet [ctrl-N] Hayır"
#. TRANSLATORS: search in "local" history #. TRANSLATORS: search in "local" history
msgid "local" msgid "local"
msgstr "yerel" msgstr ""
#. TRANSLATORS: search in "global" history #. TRANSLATORS: search in "global" history
msgid "global" msgid "global"
msgstr "global" msgstr ""
#, fuzzy
#| msgid "Search"
msgid "Search lines" msgid "Search lines"
msgstr "Satırlar ara" msgstr "Arama"
#, fuzzy
#| msgid "default command:"
msgid "Search command" msgid "Search command"
msgstr "Arama komutu" msgstr "öntanımlı komut:"
msgid "keyboard and mouse debug ('q' to quit debug mode)" msgid "keyboard and mouse debug ('q' to quit debug mode)"
msgstr "klavye ve fare hata ayıklaması (bu kipten çıkmak için \"q\"ya basın)" msgstr ""
#, c-format #, c-format
msgid "%s-MORE(%d)-" msgid "%s-MORE(%d)-"
@@ -6946,9 +6968,10 @@ msgstr ""
msgid "New key binding (context \"%s\"): %s%s => %s%s" msgid "New key binding (context \"%s\"): %s%s => %s%s"
msgstr "Yeni düğme bağıntısı (bağlam: \"%s\"): %s%s => %s%s" msgstr "Yeni düğme bağıntısı (bağlam: \"%s\"): %s%s => %s%s"
#, c-format #, fuzzy, c-format
#| msgid "%sUnable to bind key \"%s\""
msgid "%sUnable to bind key \"%s\" in context \"%s\" (see /help key)" msgid "%sUnable to bind key \"%s\" in context \"%s\" (see /help key)"
msgstr "%s\"%s\" düğmesi, \"%s\" bağlamında bağıntılanamıyor (bkz. /help key)" msgstr "%s\"%s\" düğmesi bağlanamıyor"
#, c-format #, c-format
msgid "" msgid ""
@@ -6965,8 +6988,6 @@ msgid ""
"%sWarning: key \"%s\" seems either a raw code or invalid, it may not work " "%sWarning: key \"%s\" seems either a raw code or invalid, it may not work "
"(see /help key)" "(see /help key)"
msgstr "" msgstr ""
"%sUyarı: \"%s\" düğmesi ya bir ham kod ya da geçersiz, çalışmayabilir (bkz. /"
"help key)"
#, c-format #, c-format
msgid "Key \"%s\" unbound (context: \"%s\")" msgid "Key \"%s\" unbound (context: \"%s\")"
@@ -6987,14 +7008,16 @@ msgstr "hsignal gönderiliyor: \"%s\""
msgid "Executing command: \"%s\" on buffer \"%s\"" msgid "Executing command: \"%s\" on buffer \"%s\""
msgstr "Komut yürütülüyor: \"%s\", \"%s\" arabelleğinde" msgstr "Komut yürütülüyor: \"%s\", \"%s\" arabelleğinde"
#, fuzzy
#| msgid "list of key bindings"
msgid "no key binding" msgid "no key binding"
msgstr "düğme bağıntısı yok" msgstr "düğme bağıntılarının listesi"
msgid "debug:" msgid "debug:"
msgstr "hata ayıkla:" msgstr ""
msgid "mouse" msgid "mouse"
msgstr "fare" msgstr ""
#, c-format #, c-format
msgid "Debug enabled for mouse (%s)" msgid "Debug enabled for mouse (%s)"
@@ -7007,13 +7030,15 @@ msgstr "Fare için hata ayıklaması devre dışı"
msgid "%s%s: error creating alias \"%s\" => \"%s\"" msgid "%s%s: error creating alias \"%s\" => \"%s\""
msgstr "%s%s: \"%s\" => \"%s\" arması oluşturulurken hata" msgstr "%s%s: \"%s\" => \"%s\" arması oluşturulurken hata"
#, c-format #, fuzzy, c-format
#| msgid "Alias \"%s\" => \"%s\" created"
msgid "Alias updated: \"%s\" => \"%s\"" msgid "Alias updated: \"%s\" => \"%s\""
msgstr "Arma güncellendi: \"%s\" => \"%s\"" msgstr "\"%s\" => \"%s\" arması oluşturuldu"
#, c-format #, fuzzy, c-format
#| msgid "Alias \"%s\" => \"%s\" created"
msgid "Alias created: \"%s\" => \"%s\"" msgid "Alias created: \"%s\" => \"%s\""
msgstr "Arma oluşturuldu: \"%s\" => \"%s\"" msgstr "\"%s\" => \"%s\" arması oluşturuldu"
#, c-format #, c-format
msgid "Aliases with \"%s\":" msgid "Aliases with \"%s\":"
@@ -7057,9 +7082,9 @@ msgid ""
"addcompletion|addreplacecompletion <completion> <name> [<command>[;" "addcompletion|addreplacecompletion <completion> <name> [<command>[;"
"<command>...]] || del <name>|<mask>... || rename <name> <new_name> || missing" "<command>...]] || del <name>|<mask>... || rename <name> <new_name> || missing"
msgstr "" msgstr ""
"list [<ad>] || add|addreplace <ad> [<komut>[;<komut>...]] || addcompletion|" "list [<ad>] || add|addreplace <ad> [<komut>[;<komut>...]] || "
"addreplacecompletion <tamamlama> <ad> [<komut>[;<komut>...]] || del <ad>|" "addcompletion|addreplacecompletion <tamamlama> <ad> [<komut>[;"
"<maske>... || rename <ad> <yeni_ad> || missing" "<komut>...]] || del <ad>|<maske>... || rename <ad> <yeni_ad> || missing"
msgid "raw[list]: list aliases (without argument, this list is displayed)" msgid "raw[list]: list aliases (without argument, this list is displayed)"
msgstr "" msgstr ""
@@ -7280,12 +7305,16 @@ msgid ""
" - ${number_displayed}: \"1\" if the number is displayed, otherwise \"0\"" " - ${number_displayed}: \"1\" if the number is displayed, otherwise \"0\""
msgstr "" msgstr ""
#, fuzzy
#| msgid ""
#| "string displayed to indent channel and private buffers (note: content is "
#| "evaluated, see /help buflist)"
msgid "" msgid ""
" - ${indent}: indentation for name (channel, private and list buffers are " " - ${indent}: indentation for name (channel, private and list buffers are "
"indented) (evaluation of option buflist.format.indent)" "indented) (evaluation of option buflist.format.indent)"
msgstr "" msgstr ""
" - ${indent}: Ad için girintileme (kanal, özel ve liste arabellekleri " "kanal ve özel arabellekleri girintilendirmek için görüntülenen dizi (not: "
"girintilenir) (buflist.format.indent seçeneğinin değerlendirmesi)" "içerik değerlendirilir, bkz. /help buflist)"
msgid "" msgid ""
" - ${format_nick_prefix}: colored nick prefix for a channel (evaluation " " - ${format_nick_prefix}: colored nick prefix for a channel (evaluation "
@@ -12620,8 +12649,8 @@ msgstr "sunucu adı"
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "IRC makinesinden takma adı al" msgstr "IRC makinesinden takma adı al"
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "IRC makinesi (örneğin: `:nick!name@server`)" msgstr "IRC makinesi (örneğin: `:nick!name@server.com`)"
msgid "" msgid ""
"get nick color code (*deprecated* since version 1.5, replaced by " "get nick color code (*deprecated* since version 1.5, replaced by "
@@ -12857,8 +12886,8 @@ msgstr "%s%s: Bu arabellek bir kanal değil!"
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -14087,7 +14116,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -16043,21 +16072,13 @@ msgstr ""
"şifreye gerek yok anlamına gelir, relay.network.allow_empty_password " "şifreye gerek yok anlamına gelir, relay.network.allow_empty_password "
"seçeneğine bakın) (not: içerik değerlendirilir, bkz. /help eval)" "seçeneğine bakın) (not: içerik değerlendirilir, bkz. /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 "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
"weechat protokolünde parola doğrulaması yapmak için kullanılan sağlama " "weechat protokolünde parola doğrulaması yapmak için kullanılan sağlama "
"algoritmalarının virgülle ayrılmış listesi: \"plain\" (düz metin parola, " "algoritmalarının virgülle ayrılmış listesi: \"plain\" (düz metin parola, "
@@ -16067,17 +16088,11 @@ msgstr ""
"adlarda \"*\" jokerine izin verilir (örnekler: \"*\", \"pbkdf2\", \"*,!" "adlarda \"*\" jokerine izin verilir (örnekler: \"*\", \"pbkdf2\", \"*,!"
"plain\")" "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 "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
"PBKDF2 algoritmasını kullanan bir sağlaması yapılmış bir parola kimlik " "PBKDF2 algoritmasını kullanan bir sağlaması yapılmış bir parola kimlik "
"doğrulama için kullanıldığında istemciye sorulan yineleme sayısı; daha fazla " "doğrulama için kullanıldığında istemciye sorulan yineleme sayısı; daha fazla "
@@ -16136,11 +16151,6 @@ msgstr ""
"parola, geçerli parola ve sonrasında iki parola kabul et, ..., yüksek sayı " "parola, geçerli parola ve sonrasında iki parola kabul et, ..., yüksek sayı "
"güvenlik düzeyini düşürür (0 ve 1 önerilir)" "güvenlik düzeyini düşürür (0 ve 1 önerilir)"
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 #, fuzzy
#| msgid "" #| msgid ""
#| "POSIX extended regular expression with origins allowed in websockets " #| "POSIX extended regular expression with origins allowed in websockets "
@@ -16276,11 +16286,11 @@ msgstr "iletim istemci sayısı"
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
"protocol,status (ikisi de isteğe bağlıdır, her bir argüman için \"*\" tümü " "protocol,status (ikisi de isteğe bağlıdır, her bir argüman için \"*\" tümü "
"anlamına gelir; protokoller: api, irc, weechat; durumlar: connecting, " "anlamına gelir; protokoller: irc, weechat; durumlar: connecting, "
"waiting_auth, connected, auth_failed, disconnected)" "waiting_auth, connected, auth_failed, disconnected)"
msgid "list of relay clients" msgid "list of relay clients"
@@ -16423,11 +16433,6 @@ msgstr "%s%s: %s yolunda \"bağlama\" yapılamıyor (%s): hata %d %s"
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "%s%s: %d kapısında \"bağlama\" yapılamıyor (%s): hata %d %s" msgstr "%s%s: %d kapısında \"bağlama\" yapılamıyor (%s): hata %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 yolunda \"dinleme\" yapılamıyor (%s): error %d %s"
#, c-format #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "%s%s: %s yolunda \"dinleme\" yapılamıyor (%s): error %d %s" msgstr "%s%s: %s yolunda \"dinleme\" yapılamıyor (%s): error %d %s"
@@ -16464,8 +16469,9 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "%s%s: yeni kapıda dinleme için yetersiz bellek" msgstr "%s%s: yeni kapıda dinleme için yetersiz bellek"
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "WeeChat verisini uzak konum uygulamalarına ilet" msgstr ""
"WeeChat verisini uzak konum uygulamalarına ilet (irc/weechat protokolleri)"
msgid "connecting" msgid "connecting"
msgstr "bağlanıyor" msgstr "bağlanıyor"
@@ -16706,16 +16712,11 @@ msgstr "(hiçbir şey)"
msgid "Alt+key/input: v=back to list d=jump to diff" msgid "Alt+key/input: v=back to list d=jump to diff"
msgstr "Alt+düğme/girdi: v=listeye geri dön d=diff'e atla" msgstr "Alt+düğme/girdi: v=listeye geri dön d=diff'e atla"
#, fuzzy, c-format #, 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 "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
"%d/%d betik (süzgeç: %s) | Sırala: %s | Alt+düğme/girdi: i=kur, r=kaldır, " "%d/%d betik (süzgeç: %s) | Sırala: %s | Alt+düğme/girdi: i=kur, r=kaldır, "
@@ -16742,9 +16743,9 @@ msgid ""
"|| -up|-down [<number>] || -go <line>|end" "|| -up|-down [<number>] || -go <line>|end"
msgstr "" msgstr ""
"enable || list [-o|-ol|-i|-il] || search <metin> || show <betik> || load|" "enable || list [-o|-ol|-i|-il] || search <metin> || show <betik> || load|"
"unload|reload <betik>... || autoload|noautoload|toggleautoload <betik>... || " "unload|reload <betik>... || autoload|noautoload|toggleautoload <betik>... "
"install|remove|installremove|hold [-q] <betik>... || upgrade || update || " "|| install|remove|installremove|hold [-q] <betik>... || upgrade || update "
"-up|-down [<sayı>] || -go <satır>|end" "|| -up|-down [<sayı>] || -go <satır>|end"
#, fuzzy #, fuzzy
#| msgid "" #| msgid ""
@@ -17120,11 +17121,6 @@ msgstr "Hiçbir betik yüklenmedi"
msgid "script name with extension" msgid "script name with extension"
msgstr "betik uzantılarının listesi" msgstr "betik uzantılarının listesi"
#, fuzzy
#| msgid "comma separated list of file name extensions for plugins"
msgid "comma-separated list of plugin:extension with supported languages"
msgstr "eklentiler için dosya adı uzantılarının virgülle ayrılmış listesi"
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "betik adı, uzantı ile (\"*\" jokerine izin verilir) (isteğe bağlı)" msgstr "betik adı, uzantı ile (\"*\" jokerine izin verilir) (isteğe bağlı)"
@@ -18142,8 +18138,8 @@ msgid ""
"text to display before the nicks in the bar item \"typing\"; if set, it is " "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" "used instead of the translated string \"Typing: \" which is used by default"
msgstr "" msgstr ""
"\"typing\" çubuk ögesinde takma adlardan önce görüntülenecek metin; " "\"typing\" çubuk ögesinde takma adlardan önce görüntülenecek metin; ayarlıysa "
"ayarlıysa öntanımlı olarak görüntülenen \"Yazıyar: \" metni yerine kullanılır" "öntanımlı olarak görüntülenen \"Yazıyar: \" metni yerine kullanılır"
msgid "Typing status of users" msgid "Typing status of users"
msgstr "Kullanıcıların metin yazma durumu" msgstr "Kullanıcıların metin yazma durumu"
+19 -41
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-06-08 22:23+0200\n" "POT-Creation-Date: 2026-03-21 17:24+0100\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -148,7 +148,7 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"WeeChat %s Copyright %s, compiled on %s %s\n" "WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> - %s" "Developed by Sébastien Helleu <flashcode@flashtux.org> - %s"
msgstr "" msgstr ""
msgid "Usage:" msgid "Usage:"
@@ -1072,16 +1072,6 @@ msgid ""
"message: message for away (if no message is given, away status is removed)" "message: message for away (if no message is given, away status is removed)"
msgstr "" 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" msgid "manage bars"
msgstr "" msgstr ""
@@ -10277,7 +10267,7 @@ msgstr ""
msgid "get nick from IRC host" msgid "get nick from IRC host"
msgstr "" msgstr ""
msgid "IRC host (like `:nick!name@server`)" msgid "IRC host (like `:nick!name@server.com`)"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -10481,8 +10471,8 @@ msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"%d channels (total: %d) | Filter: %s | Sort: %s | Keys: ctrl+j=join channel " "%d channels (total: %d) | Filter: %s | Sort: %s | Key(input): ctrl+j=join "
"| Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer" "channel, ($)=refresh, (q)=close buffer"
msgstr "" msgstr ""
msgid "Empty list of channels, try \"$\" to refresh list" msgid "Empty list of channels, try \"$\" to refresh list"
@@ -11572,7 +11562,7 @@ msgid ""
"and the current file is renamed with extension .1; an integer number with a " "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 = " "suffix is allowed: b = bytes (default if no unit given), k = kilobytes, m = "
"megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation " "megabytes, g = gigabytes, t = terabytes; example: \"2g\" causes a rotation "
"if the file size is greater than 2 GB; if set to \"0\", no rotation is " "if the file size is > 2,000,000,000 bytes; if set to \"0\", no rotation is "
"performed (unlimited log size); WARNING: before changing this option, you " "performed (unlimited log size); WARNING: before changing this option, you "
"should first set the compression type via option " "should first set the compression type via option "
"logger.file.rotation_compression_type" "logger.file.rotation_compression_type"
@@ -13177,18 +13167,18 @@ msgstr ""
msgid "" msgid ""
"comma separated list of hash algorithms used for password authentication in " "comma separated list of hash algorithms used for password authentication in "
"\"api\" and \"weechat\" protocols, among these values: \"plain\" (password " "weechat protocol, among these values: \"plain\" (password in plain text, not "
"in plain text, not hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", " "hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), "
"\"pbkdf2+sha512\"), \"*\" means all algorithms, a name beginning with \"!\" " "\"*\" means all algorithms, a name beginning with \"!\" is a negative value "
"is a negative value to prevent an algorithm from being used, wildcard \"*\" " "to prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"is allowed in names (examples: \"*\", \"pbkdf2*\", \"*,!plain\")" "(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr "" msgstr ""
msgid "" msgid ""
"number of iterations asked to the client in \"api\" and \"weechat\" " "number of iterations asked to the client in weechat protocol when a hashed "
"protocols when a hashed password with algorithm PBKDF2 is used for " "password with algorithm PBKDF2 is used for authentication; more iterations "
"authentication; more iterations is better in term of security but is slower " "is better in term of security but is slower to compute; this number should "
"to compute; this number should not be too high if your CPU is slow" "not be too high if your CPU is slow"
msgstr "" msgstr ""
msgid "" msgid ""
@@ -13218,11 +13208,6 @@ msgid ""
"1 are recommended values)" "1 are recommended values)"
msgstr "" 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 "" msgid ""
"POSIX extended regular expression with origins allowed in websockets (case-" "POSIX extended regular expression with origins allowed in websockets (case-"
"insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: " "insensitive, use \"(?-i)\" at beginning to make it case-sensitive), example: "
@@ -13314,7 +13299,7 @@ msgstr ""
#. TRANSLATORS: please do not translate the status names, they must be used in English #. TRANSLATORS: please do not translate the status names, they must be used in English
msgid "" msgid ""
"protocol,status (both are optional, for each argument \"*\" means all; " "protocol,status (both are optional, for each argument \"*\" means all; "
"protocols: api, irc, weechat; statuses: connecting, waiting_auth, connected, " "protocols: irc, weechat; statuses: connecting, waiting_auth, connected, "
"auth_failed, disconnected)" "auth_failed, disconnected)"
msgstr "" msgstr ""
@@ -13433,10 +13418,6 @@ msgstr ""
msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s" msgid "%s%s: cannot \"bind\" on port %d (%s): error %d %s"
msgstr "" msgstr ""
#, c-format
msgid "%s%s: warning: failed to set permissions on path %s (%s): error %d %s"
msgstr ""
#, c-format #, c-format
msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s" msgid "%s%s: cannot \"listen\" on path %s (%s): error %d %s"
msgstr "" msgstr ""
@@ -13473,7 +13454,7 @@ msgstr ""
msgid "%s%s: not enough memory for listening on new port" msgid "%s%s: not enough memory for listening on new port"
msgstr "" msgstr ""
msgid "Relay WeeChat data to remote applications" msgid "Relay WeeChat data to remote application (irc/weechat protocols)"
msgstr "" msgstr ""
msgid "connecting" msgid "connecting"
@@ -13698,9 +13679,9 @@ msgstr ""
#, c-format #, c-format
msgid "" 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: " "l=load, L=reload, u=unload, A=autoload, h=(un)hold, v=view script | Input: "
"$=refresh, s:x,y=sort, words=filter, *=reset filter, q=close buffer | Mouse: " "q=close, $=refresh, s:x,y=sort, words=filter, *=reset filter | Mouse: "
"left=select, right=install/remove" "left=select, right=install/remove"
msgstr "" msgstr ""
@@ -14018,9 +13999,6 @@ msgstr ""
msgid "script name with extension" msgid "script name with extension"
msgstr "" msgstr ""
msgid "comma-separated list of plugin:extension with supported languages"
msgstr ""
msgid "script name with extension (wildcard \"*\" is allowed) (optional)" msgid "script name with extension (wildcard \"*\" is allowed) (optional)"
msgstr "" msgstr ""
+1 -3
View File
@@ -178,14 +178,12 @@ args_display_copyright (void)
stdout, stdout,
/* TRANSLATORS: "%s %s" after "compiled on" is date and time */ /* TRANSLATORS: "%s %s" after "compiled on" is date and time */
_("WeeChat %s Copyright %s, compiled on %s %s\n" _("WeeChat %s Copyright %s, compiled on %s %s\n"
"Developed by %s <%s> " "Developed by Sébastien Helleu <flashcode@flashtux.org> "
"- %s"), "- %s"),
version_get_version_with_git (), version_get_version_with_git (),
WEECHAT_COPYRIGHT_DATE, WEECHAT_COPYRIGHT_DATE,
version_get_compilation_date (), version_get_compilation_date (),
version_get_compilation_time (), version_get_compilation_time (),
WEECHAT_AUTHOR_NAME,
WEECHAT_AUTHOR_EMAIL,
WEECHAT_WEBSITE); WEECHAT_WEBSITE);
string_fprintf (stdout, "\n"); string_fprintf (stdout, "\n");
} }
+180 -121
View File
@@ -240,7 +240,8 @@ command_bar_list (int full)
COMMAND_CALLBACK(bar) COMMAND_CALLBACK(bar)
{ {
int i, type, position, number, update; int i, type, position, number, update;
char *str_type, *pos_condition, *name; long value;
char *error, *str_type, *pos_condition, *name;
struct t_gui_bar *ptr_bar, *ptr_bar2, *ptr_next_bar; struct t_gui_bar *ptr_bar, *ptr_bar2, *ptr_next_bar;
struct t_gui_bar_item *ptr_item; struct t_gui_bar_item *ptr_item;
struct t_gui_window *ptr_window; struct t_gui_window *ptr_window;
@@ -330,7 +331,10 @@ COMMAND_CALLBACK(bar)
free (str_type); free (str_type);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
if (!util_parse_int (argv[5], 10, NULL)) error = NULL;
value = strtol (argv[5], &error, 10);
(void) value;
if (!error || error[0])
{ {
gui_chat_printf (NULL, gui_chat_printf (NULL,
_("%sInvalid size \"%s\" for bar \"%s\""), _("%sInvalid size \"%s\" for bar \"%s\""),
@@ -568,7 +572,9 @@ COMMAND_CALLBACK(bar)
else else
{ {
ptr_window = NULL; ptr_window = NULL;
if (util_parse_int (argv[3], 10, &number)) error = NULL;
number = (int)strtol (argv[3], &error, 10);
if (error && !error[0])
ptr_window = gui_window_search_by_number (number); ptr_window = gui_window_search_by_number (number);
} }
if (!ptr_window) if (!ptr_window)
@@ -603,7 +609,7 @@ COMMAND_CALLBACK(bar)
*/ */
int int
command_buffer_check_number (int number) command_buffer_check_number (long number)
{ {
if ((number < 1) || (number > GUI_BUFFER_NUMBER_MAX)) if ((number < 1) || (number > GUI_BUFFER_NUMBER_MAX))
{ {
@@ -661,11 +667,11 @@ COMMAND_CALLBACK(buffer)
struct t_gui_buffer *ptr_buffer, *ptr_buffer1, *ptr_buffer2; struct t_gui_buffer *ptr_buffer, *ptr_buffer1, *ptr_buffer2;
struct t_gui_buffer *weechat_buffer; struct t_gui_buffer *weechat_buffer;
struct t_arraylist *buffers_to_close; struct t_arraylist *buffers_to_close;
char *value, *pos, *str_number1, *pos_number2; long number, number1, number2, numbers[3];
int i, count, prev_number, clear_by_number, list_size;
int buffer_found, arg_name, type_free, switch_to_buffer, rc;
int number, number1, number2, numbers[3];
long long number_id; long long number_id;
char *error, *value, *pos, *str_number1, *pos_number2;
int i, count, prev_number, clear_number, list_size;
int buffer_found, arg_name, type_free, switch_to_buffer, rc;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -746,9 +752,7 @@ COMMAND_CALLBACK(buffer)
if (argc > 2) if (argc > 2)
{ {
if (string_strcmp (argv[2], "-all") == 0) if (string_strcmp (argv[2], "-all") == 0)
{
gui_buffer_clear_all (); gui_buffer_clear_all ();
}
else else
{ {
for (i = 2; i < argc; i++) for (i = 2; i < argc; i++)
@@ -756,19 +760,18 @@ COMMAND_CALLBACK(buffer)
if (string_strcmp (argv[i], "-merged") == 0) if (string_strcmp (argv[i], "-merged") == 0)
{ {
ptr_buffer = buffer; ptr_buffer = buffer;
clear_by_number = 1; clear_number = 1;
} }
else else
{ {
ptr_buffer = gui_buffer_search_by_id_number_name (argv[i]); ptr_buffer = gui_buffer_search_by_id_number_name (argv[i]);
clear_by_number = (util_parse_int (argv[i], 10, &number) error = NULL;
&& ptr_buffer (void) strtol (argv[i], &error, 10);
&& (ptr_buffer->number == number)) ? clear_number = (error && !error[0]);
1 : 0;
} }
if (ptr_buffer) if (ptr_buffer)
{ {
if (clear_by_number) if (clear_number)
{ {
for (ptr_buffer2 = gui_buffers; ptr_buffer2; for (ptr_buffer2 = gui_buffers; ptr_buffer2;
ptr_buffer2 = ptr_buffer2->next_buffer) ptr_buffer2 = ptr_buffer2->next_buffer)
@@ -814,21 +817,20 @@ COMMAND_CALLBACK(buffer)
} }
else else
{ {
pos = ((argv[2][0] == '+') || (argv[2][0] == '-')) ? error = NULL;
argv[2] + 1 : argv[2]; number = strtol (((argv[2][0] == '+') || (argv[2][0] == '-')) ?
if (util_parse_int (pos, 10, &number) argv[2] + 1 : argv[2],
&& (number >= 1) &error, 10);
&& (number <= GUI_BUFFER_NUMBER_MAX) if (error && !error[0]
&& ((argv[2][0] != '+') || (number <= INT_MAX - buffer->number)) && (number >= INT_MIN) && (number <= INT_MAX))
&& ((argv[2][0] != '-') || (buffer->number >= INT_MIN + number)))
{ {
if (argv[2][0] == '+') if (argv[2][0] == '+')
number = buffer->number + number; number = buffer->number + number;
else if (argv[2][0] == '-') else if (argv[2][0] == '-')
number = buffer->number - number; number = buffer->number - number;
if (!command_buffer_check_number (number)) number = (int)number;
return WEECHAT_RC_ERROR; if (command_buffer_check_number (number))
gui_buffer_move_to_number (buffer, number); gui_buffer_move_to_number (buffer, number);
} }
else else
{ {
@@ -938,6 +940,7 @@ COMMAND_CALLBACK(buffer)
if (string_strcmp (argv[1], "merge") == 0) if (string_strcmp (argv[1], "merge") == 0)
{ {
COMMAND_MIN_ARGS(3, argv[1]); COMMAND_MIN_ARGS(3, argv[1]);
error = NULL;
ptr_buffer = gui_buffer_search_by_id_number_name (argv[2]); ptr_buffer = gui_buffer_search_by_id_number_name (argv[2]);
if (!ptr_buffer) if (!ptr_buffer)
{ {
@@ -964,7 +967,9 @@ COMMAND_CALLBACK(buffer)
} }
else else
{ {
if (!util_parse_int (argv[2], 10, &number)) error = NULL;
number = strtol (argv[2], &error, 10);
if (!error || error[0])
{ {
/* invalid number */ /* invalid number */
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -973,11 +978,11 @@ COMMAND_CALLBACK(buffer)
argv[2]); argv[2]);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
if (!command_buffer_check_number (number)) if (!command_buffer_check_number ((int)number))
COMMAND_ERROR; COMMAND_ERROR;
} }
} }
gui_buffer_unmerge (buffer, number); gui_buffer_unmerge (buffer, (int)number);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
} }
@@ -993,26 +998,23 @@ COMMAND_CALLBACK(buffer)
{ {
for (i = 2; i < argc; i++) for (i = 2; i < argc; i++)
{ {
ptr_buffer = NULL; ptr_buffer = gui_buffer_search_by_id_number_name (argv[i]);
if (util_parse_int (argv[i], 10, &number))
ptr_buffer = gui_buffer_search_by_number (number);
if (ptr_buffer) if (ptr_buffer)
{ {
/* hide by number */ error = NULL;
for (ptr_buffer2 = gui_buffers; ptr_buffer2; (void) strtol (argv[i], &error, 10);
ptr_buffer2 = ptr_buffer2->next_buffer) if (error && !error[0])
{ {
if (ptr_buffer2->number == ptr_buffer->number) for (ptr_buffer2 = gui_buffers; ptr_buffer2;
ptr_buffer2 = ptr_buffer2->next_buffer)
{ {
gui_buffer_hide (ptr_buffer2); if (ptr_buffer2->number == ptr_buffer->number)
{
gui_buffer_hide (ptr_buffer2);
}
} }
} }
} else
else
{
/* hide by id or name */
ptr_buffer = gui_buffer_search_by_id_name (argv[i]);
if (ptr_buffer)
gui_buffer_hide (ptr_buffer); gui_buffer_hide (ptr_buffer);
} }
} }
@@ -1035,25 +1037,23 @@ COMMAND_CALLBACK(buffer)
{ {
for (i = 2; i < argc; i++) for (i = 2; i < argc; i++)
{ {
ptr_buffer = NULL; ptr_buffer = gui_buffer_search_by_id_number_name (argv[i]);
if (util_parse_int (argv[i], 10, &number))
ptr_buffer = gui_buffer_search_by_number (number);
if (ptr_buffer) if (ptr_buffer)
{ {
/* unhide by number */ error = NULL;
for (ptr_buffer2 = gui_buffers; ptr_buffer2; (void) strtol (argv[i], &error, 10);
ptr_buffer2 = ptr_buffer2->next_buffer) if (error && !error[0])
{ {
if (ptr_buffer2->number == ptr_buffer->number) for (ptr_buffer2 = gui_buffers; ptr_buffer2;
ptr_buffer2 = ptr_buffer2->next_buffer)
{ {
gui_buffer_unhide (ptr_buffer2); if (ptr_buffer2->number == ptr_buffer->number)
{
gui_buffer_unhide (ptr_buffer2);
}
} }
} }
} else
else
{
ptr_buffer = gui_buffer_search_by_id_name (argv[i]);
if (ptr_buffer)
gui_buffer_unhide (ptr_buffer); gui_buffer_unhide (ptr_buffer);
} }
} }
@@ -1098,7 +1098,9 @@ COMMAND_CALLBACK(buffer)
{ {
if (argc >= i + 3) if (argc >= i + 3)
{ {
if (!util_parse_int (argv[i + 2], 10, &numbers[i])) error = NULL;
numbers[i] = strtol (argv[i + 2], &error, 10);
if (!error || error[0])
{ {
/* invalid number */ /* invalid number */
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -1107,7 +1109,7 @@ COMMAND_CALLBACK(buffer)
argv[i + 2]); argv[i + 2]);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
if ((i == 2) && !command_buffer_check_number (numbers[i])) if ((i == 2) && !command_buffer_check_number ((int)numbers[i]))
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
else else
@@ -1118,8 +1120,8 @@ COMMAND_CALLBACK(buffer)
* renumber the buffers; if we are renumbering all buffers (no numbers * renumber the buffers; if we are renumbering all buffers (no numbers
* given), start at number 1 * given), start at number 1
*/ */
gui_buffer_renumber (numbers[0], numbers[1], gui_buffer_renumber ((int)numbers[0], (int)numbers[1],
(argc == 2) ? 1 : numbers[2]); (argc == 2) ? 1 : (int)numbers[2]);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
} }
@@ -1157,11 +1159,15 @@ COMMAND_CALLBACK(buffer)
} }
if (str_number1) if (str_number1)
{ {
if (util_parse_int (str_number1, 10, &number1)) error = NULL;
number1 = strtol (str_number1, &error, 10);
if (error && !error[0])
{ {
if (pos_number2) if (pos_number2)
{ {
if (!util_parse_int (pos_number2, 10, &number2)) error = NULL;
number2 = strtol (pos_number2, &error, 10);
if (!error || error[0])
{ {
free (str_number1); free (str_number1);
COMMAND_ERROR; COMMAND_ERROR;
@@ -1183,7 +1189,10 @@ COMMAND_CALLBACK(buffer)
while (ptr_buffer && (ptr_buffer->number <= number2)) while (ptr_buffer && (ptr_buffer->number <= number2))
{ {
if (ptr_buffer->number >= number1) if (ptr_buffer->number >= number1)
arraylist_add (buffers_to_close, ptr_buffer); {
arraylist_add (buffers_to_close,
ptr_buffer);
}
ptr_buffer = ptr_buffer->next_buffer; ptr_buffer = ptr_buffer->next_buffer;
} }
} }
@@ -1192,7 +1201,10 @@ COMMAND_CALLBACK(buffer)
{ {
ptr_buffer = gui_buffer_search_by_full_name (argv[i]); ptr_buffer = gui_buffer_search_by_full_name (argv[i]);
if (!ptr_buffer) if (!ptr_buffer)
ptr_buffer = gui_buffer_search_by_partial_name (NULL, argv[i]); {
ptr_buffer = gui_buffer_search_by_partial_name (
NULL, argv[i]);
}
if (ptr_buffer) if (ptr_buffer)
arraylist_add (buffers_to_close, ptr_buffer); arraylist_add (buffers_to_close, ptr_buffer);
} }
@@ -1458,7 +1470,9 @@ COMMAND_CALLBACK(buffer)
} }
else else
{ {
if (util_parse_int (argv[1] + 1, 10, &number) && (number > 0)) error = NULL;
number = strtol (argv[1] + 1, &error, 10);
if (error && !error[0] && (number > 0))
{ {
count = 0; count = 0;
prev_number = gui_current_window->buffer->number; prev_number = gui_current_window->buffer->number;
@@ -1517,7 +1531,9 @@ COMMAND_CALLBACK(buffer)
} }
else else
{ {
if (util_parse_int (argv[1] + 1, 10, &number) && (number > 0)) error = NULL;
number = strtol (argv[1] + 1, &error, 10);
if (error && !error[0] && (number > 0))
{ {
count = 0; count = 0;
prev_number = gui_current_window->buffer->number; prev_number = gui_current_window->buffer->number;
@@ -1570,9 +1586,9 @@ COMMAND_CALLBACK(buffer)
/* smart jump (jump to previous buffer for current number) */ /* smart jump (jump to previous buffer for current number) */
if (argv[1][0] == '*') if (argv[1][0] == '*')
{ {
if (!argv[1][1]) error = NULL;
COMMAND_ERROR; number = strtol (argv[1] + 1, &error, 10);
if (util_parse_int (argv[1] + 1, 10, &number)) if (error && !error[0])
{ {
/* buffer is currently displayed ? then jump to previous buffer */ /* buffer is currently displayed ? then jump to previous buffer */
if ((number == buffer->number) if ((number == buffer->number)
@@ -1603,7 +1619,9 @@ COMMAND_CALLBACK(buffer)
} }
/* jump to buffer by id, number or name */ /* jump to buffer by id, number or name */
if (util_parse_longlong (argv[1], 10, &number_id)) error = NULL;
number_id = strtoll (argv[1], &error, 10);
if (error && !error[0])
{ {
ptr_buffer = gui_buffer_search_by_id (number_id); ptr_buffer = gui_buffer_search_by_id (number_id);
if (ptr_buffer) if (ptr_buffer)
@@ -1634,10 +1652,11 @@ COMMAND_CALLBACK(buffer)
COMMAND_CALLBACK(color) COMMAND_CALLBACK(color)
{ {
char *str_alias, *str_rgb, *pos; char *str_alias, *str_rgb, *pos, *error;
char str_color[1024], str_command[2048]; char str_color[1024], str_command[2048];
long number, limit;
unsigned int rgb; unsigned int rgb;
int i, number, limit; int i;
struct t_gui_color_palette *color_palette; struct t_gui_color_palette *color_palette;
/* make C compiler happy */ /* make C compiler happy */
@@ -1669,7 +1688,9 @@ COMMAND_CALLBACK(color)
COMMAND_MIN_ARGS(4, argv[1]); COMMAND_MIN_ARGS(4, argv[1]);
/* check color number */ /* check color number */
if (util_parse_int (argv[2], 10, &number)) error = NULL;
number = strtol (argv[2], &error, 10);
if (error && !error[0])
{ {
if ((number < 0) || (number > gui_color_get_term_colors ())) if ((number < 0) || (number > gui_color_get_term_colors ()))
number = -1; number = -1;
@@ -1714,7 +1735,7 @@ COMMAND_CALLBACK(color)
/* add color alias */ /* add color alias */
snprintf (str_command, sizeof (str_command), snprintf (str_command, sizeof (str_command),
"/set weechat.palette.%d \"%s\"", "/set weechat.palette.%d \"%s\"",
number, (int)number,
(str_color[0]) ? str_color + 1 : ""); (str_color[0]) ? str_color + 1 : "");
(void) input_exec_command (buffer, 1, NULL, str_command, NULL); (void) input_exec_command (buffer, 1, NULL, str_command, NULL);
@@ -1727,7 +1748,9 @@ COMMAND_CALLBACK(color)
COMMAND_MIN_ARGS(3, argv[1]); COMMAND_MIN_ARGS(3, argv[1]);
/* check color number */ /* check color number */
if (util_parse_int (argv[2], 10, &number)) error = NULL;
number = strtol (argv[2], &error, 10);
if (error && !error[0])
{ {
if ((number < 0) || (number > gui_color_get_term_colors ())) if ((number < 0) || (number > gui_color_get_term_colors ()))
number = -1; number = -1;
@@ -1747,7 +1770,7 @@ COMMAND_CALLBACK(color)
} }
/* search color */ /* search color */
color_palette = gui_color_palette_get (number); color_palette = gui_color_palette_get ((int)number);
if (!color_palette) if (!color_palette)
{ {
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -1760,7 +1783,7 @@ COMMAND_CALLBACK(color)
/* delete color alias */ /* delete color alias */
snprintf (str_command, sizeof (str_command), snprintf (str_command, sizeof (str_command),
"/unset weechat.palette.%d", "/unset weechat.palette.%d",
number); (int)number);
(void) input_exec_command (buffer, 1, NULL, str_command, NULL); (void) input_exec_command (buffer, 1, NULL, str_command, NULL);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
@@ -1784,10 +1807,12 @@ COMMAND_CALLBACK(color)
if (string_strcmp (argv[1], "term2rgb") == 0) if (string_strcmp (argv[1], "term2rgb") == 0)
{ {
COMMAND_MIN_ARGS(3, argv[1]); COMMAND_MIN_ARGS(3, argv[1]);
if (!util_parse_int (argv[2], 10, &number) || (number < 0) || (number > 255)) error = NULL;
number = strtol (argv[2], &error, 10);
if (!error || error[0] || (number < 0) || (number > 255))
COMMAND_ERROR; COMMAND_ERROR;
gui_chat_printf (NULL, gui_chat_printf (NULL,
"%d -> #%06x", "%ld -> #%06x",
number, number,
gui_color_convert_term_to_rgb (number)); gui_color_convert_term_to_rgb (number));
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
@@ -1804,7 +1829,9 @@ COMMAND_CALLBACK(color)
limit = 256; limit = 256;
if (argc > 3) if (argc > 3)
{ {
if (!util_parse_int (argv[3], 10, &limit) || (limit < 1) || (limit > 256)) error = NULL;
limit = strtol (argv[3], &error, 10);
if (!error || error[0] || (limit < 1) || (limit > 256))
COMMAND_ERROR; COMMAND_ERROR;
} }
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -1911,7 +1938,7 @@ COMMAND_CALLBACK(command)
COMMAND_CALLBACK(cursor) COMMAND_CALLBACK(cursor)
{ {
char *pos, *str_x; char *pos, *str_x, *error;
int x, y; int x, y;
/* make C compiler happy */ /* make C compiler happy */
@@ -1939,12 +1966,18 @@ COMMAND_CALLBACK(cursor)
pos++; pos++;
if (str_x) if (str_x)
{ {
if (util_parse_int (str_x, 10, &x) error = NULL;
&& util_parse_int (pos, 10, &y)) x = (int) strtol (str_x, &error, 10);
if (error && !error[0])
{ {
gui_cursor_move_xy (x, y); error = NULL;
free (str_x); y = (int) strtol (pos, &error, 10);
return WEECHAT_RC_OK; if (error && !error[0])
{
gui_cursor_move_xy (x, y);
free (str_x);
return WEECHAT_RC_OK;
}
} }
free (str_x); free (str_x);
} }
@@ -3498,6 +3531,7 @@ COMMAND_CALLBACK(history)
{ {
struct t_gui_history *ptr_history; struct t_gui_history *ptr_history;
int n, n_total, n_user, displayed; int n, n_total, n_user, displayed;
char *error;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -3515,7 +3549,9 @@ COMMAND_CALLBACK(history)
} }
else else
{ {
if (!util_parse_int (argv[1], 10, &n_user) || (n_user < 0)) error = NULL;
n_user = (int)strtol (argv[1], &error, 10);
if (!error || error[0] || (n_user < 0))
COMMAND_ERROR; COMMAND_ERROR;
} }
} }
@@ -4836,8 +4872,11 @@ void
command_mouse_timer (const char *delay) command_mouse_timer (const char *delay)
{ {
long seconds; long seconds;
char *error;
if (util_parse_long (delay, 10, &seconds) && (seconds > 0)) error = NULL;
seconds = strtol (delay, &error, 10);
if (error && !error[0] && (seconds > 0))
{ {
hook_timer (NULL, seconds * 1000, 0, 1, hook_timer (NULL, seconds * 1000, 0, 1,
&command_mouse_timer_cb, NULL, NULL); &command_mouse_timer_cb, NULL, NULL);
@@ -5534,9 +5573,9 @@ COMMAND_CALLBACK(print)
int i, y, escape, to_stdout, to_stderr, arg_new_buffer_name; int i, y, escape, to_stdout, to_stderr, arg_new_buffer_name;
int new_buffer_type_free, free_content, switch_to_buffer; int new_buffer_type_free, free_content, switch_to_buffer;
struct timeval tv_date; struct timeval tv_date;
char *tags, *pos, *text, *text2, empty_string[1] = { '\0' }; char *tags, *pos, *text, *text2, *error, empty_string[1] = { '\0' };
const char *prefix, *ptr_text; const char *prefix, *ptr_text;
long long value; long value;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -5599,8 +5638,11 @@ COMMAND_CALLBACK(print)
if (i + 1 >= argc) if (i + 1 >= argc)
COMMAND_ERROR; COMMAND_ERROR;
i++; i++;
if (!util_parse_int (argv[i], 10, &y)) error = NULL;
value = strtol (argv[i], &error, 10);
if (!error || error[0])
COMMAND_ERROR; COMMAND_ERROR;
y = (int)value;
} }
else if (string_strcmp (argv[i], "-date") == 0) else if (string_strcmp (argv[i], "-date") == 0)
{ {
@@ -5609,7 +5651,9 @@ COMMAND_CALLBACK(print)
i++; i++;
if ((argv[i][0] == '-') || (argv[i][0] == '+')) if ((argv[i][0] == '-') || (argv[i][0] == '+'))
{ {
if (!util_parse_longlong (argv[i] + 1, 10, &value)) error = NULL;
value = strtol (argv[i] + 1, &error, 10);
if (!error || error[0])
COMMAND_ERROR; COMMAND_ERROR;
gettimeofday (&tv_date, NULL); gettimeofday (&tv_date, NULL);
tv_date.tv_sec += (argv[i][0] == '+') ? value : value * -1; tv_date.tv_sec += (argv[i][0] == '+') ? value : value * -1;
@@ -5833,8 +5877,9 @@ command_proxy_list (void)
COMMAND_CALLBACK(proxy) COMMAND_CALLBACK(proxy)
{ {
struct t_proxy *ptr_proxy, *ptr_next_proxy; struct t_proxy *ptr_proxy, *ptr_next_proxy;
char *name; char *error, *name;
int type, i, update; int type, i, update;
long value;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -5880,7 +5925,10 @@ COMMAND_CALLBACK(proxy)
argv[3], argv[2]); argv[3], argv[2]);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
if (util_parse_int (argv[5], 10, NULL)) error = NULL;
value = strtol (argv[5], &error, 10);
(void) value;
if (error && !error[0])
{ {
/* add proxy */ /* add proxy */
if (proxy_new (argv[2], argv[3], "auto", argv[4], argv[5], if (proxy_new (argv[2], argv[3], "auto", argv[4], argv[5],
@@ -6208,6 +6256,7 @@ COMMAND_CALLBACK(repeat)
{ {
int arg_count, count, i; int arg_count, count, i;
unsigned long long interval; unsigned long long interval;
char *error;
struct t_command_repeat *cmd_repeat; struct t_command_repeat *cmd_repeat;
/* make C compiler happy */ /* make C compiler happy */
@@ -6227,7 +6276,9 @@ COMMAND_CALLBACK(repeat)
arg_count = 3; arg_count = 3;
} }
if (!util_parse_int (argv[arg_count], 10, &count) || (count < 1)) error = NULL;
count = (int)strtol (argv[arg_count], &error, 10);
if (!error || error[0] || (count < 1))
{ {
/* invalid count */ /* invalid count */
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -7120,8 +7171,8 @@ COMMAND_CALLBACK(set)
COMMAND_CALLBACK(sys) COMMAND_CALLBACK(sys)
{ {
long size; long value;
int num_processes; char *error;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -7151,13 +7202,15 @@ COMMAND_CALLBACK(sys)
if (string_strcmp (argv[1], "malloc_trim") == 0) if (string_strcmp (argv[1], "malloc_trim") == 0)
{ {
#ifdef HAVE_MALLOC_TRIM #ifdef HAVE_MALLOC_TRIM
size = 0; error = NULL;
value = 0;
if (argc > 2) if (argc > 2)
{ {
if (!util_parse_long (argv[2], 10, &size) || (size < 0)) value = strtol (argv[2], &error, 10);
if (!error || error[0] || (value < 0))
COMMAND_ERROR; COMMAND_ERROR;
} }
malloc_trim ((size_t)size); malloc_trim ((size_t)value);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
#else #else
gui_chat_printf (NULL, gui_chat_printf (NULL,
@@ -7172,10 +7225,13 @@ COMMAND_CALLBACK(sys)
if (string_strcmp (argv[1], "waitpid") == 0) if (string_strcmp (argv[1], "waitpid") == 0)
{ {
COMMAND_MIN_ARGS(3, argv[1]); COMMAND_MIN_ARGS(3, argv[1]);
if (!util_parse_int (argv[2], 10, &num_processes) || (num_processes < 1)) error = NULL;
value = strtol (argv[2], &error, 10);
if (!error || error[0])
COMMAND_ERROR; COMMAND_ERROR;
sys_waitpid (num_processes); sys_waitpid ((int)value);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
} }
COMMAND_ERROR; COMMAND_ERROR;
} }
@@ -7924,8 +7980,9 @@ COMMAND_CALLBACK(window)
{ {
struct t_gui_window *ptr_win; struct t_gui_window *ptr_win;
struct t_gui_window_tree *ptr_tree; struct t_gui_window_tree *ptr_tree;
char *ptr_sizearg, sign; char *error, *ptr_sizearg, sign;
int number, win_args; long number;
int win_args;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -7986,7 +8043,9 @@ COMMAND_CALLBACK(window)
win_args = 2; win_args = 2;
if ((argc > 3) && (string_strcmp (argv[2], "-window") == 0)) if ((argc > 3) && (string_strcmp (argv[2], "-window") == 0))
{ {
if (util_parse_int (argv[3], 10, &number) && (number >= 1)) error = NULL;
number = strtol (argv[3], &error, 10);
if (error && !error[0] && (number >= 1))
{ {
ptr_win = gui_window_search_by_number (number); ptr_win = gui_window_search_by_number (number);
if (!ptr_win) if (!ptr_win)
@@ -8105,7 +8164,9 @@ COMMAND_CALLBACK(window)
{ {
if (argc > win_args) if (argc > win_args)
{ {
if (util_parse_int (argv[win_args], 10, &number) error = NULL;
number = strtol (argv[win_args], &error, 10);
if (error && !error[0]
&& (number > 0) && (number < 100)) && (number > 0) && (number < 100))
{ {
gui_window_split_horizontal (ptr_win, number); gui_window_split_horizontal (ptr_win, number);
@@ -8114,9 +8175,7 @@ COMMAND_CALLBACK(window)
COMMAND_ERROR; COMMAND_ERROR;
} }
else else
{
gui_window_split_horizontal (ptr_win, 50); gui_window_split_horizontal (ptr_win, 50);
}
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
} }
@@ -8125,7 +8184,9 @@ COMMAND_CALLBACK(window)
{ {
if (argc > win_args) if (argc > win_args)
{ {
if (util_parse_int (argv[win_args], 10, &number) error = NULL;
number = strtol (argv[win_args], &error, 10);
if (error && !error[0]
&& (number > 0) && (number < 100)) && (number > 0) && (number < 100))
{ {
gui_window_split_vertical (ptr_win, number); gui_window_split_vertical (ptr_win, number);
@@ -8134,9 +8195,7 @@ COMMAND_CALLBACK(window)
COMMAND_ERROR; COMMAND_ERROR;
} }
else else
{
gui_window_split_vertical (ptr_win, 50); gui_window_split_vertical (ptr_win, 50);
}
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
} }
@@ -8161,7 +8220,9 @@ COMMAND_CALLBACK(window)
sign = ptr_sizearg[0]; sign = ptr_sizearg[0];
ptr_sizearg++; ptr_sizearg++;
} }
if (util_parse_int (ptr_sizearg, 10, &number)) error = NULL;
number = strtol (ptr_sizearg, &error, 10);
if (error && !error[0])
{ {
if (sign) if (sign)
{ {
@@ -8299,7 +8360,9 @@ COMMAND_CALLBACK(window)
/* jump to window by buffer number */ /* jump to window by buffer number */
if (string_strncmp (argv[1], "b", 1) == 0) if (string_strncmp (argv[1], "b", 1) == 0)
{ {
if (util_parse_int (argv[1] + 1, 10, &number)) error = NULL;
number = strtol (argv[1] + 1, &error, 10);
if (error && !error[0])
{ {
gui_window_switch_by_buffer (ptr_win, number); gui_window_switch_by_buffer (ptr_win, number);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
@@ -8307,7 +8370,9 @@ COMMAND_CALLBACK(window)
} }
/* jump to window by number */ /* jump to window by number */
if (util_parse_int (argv[1], 10, &number)) error = NULL;
number = strtol (argv[1], &error, 10);
if (error && !error[0])
{ {
gui_window_switch_by_number (number); gui_window_switch_by_number (number);
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
@@ -8347,13 +8412,7 @@ command_init (void)
CMD_ARGS_DESC( CMD_ARGS_DESC(
N_("raw[-all]: set or remove away status on all connected servers"), N_("raw[-all]: set or remove away status on all connected servers"),
N_("message: message for away (if no message is given, away status is " N_("message: message for away (if no message is given, away status is "
"removed)"), "removed)")),
"",
N_("By default the away status is displayed only locally by the irc plugin "
"(see /help irc.look.display_away)."),
"",
N_("This command can be caught by other plugins and scripts "
"(see \"Plugin API reference\", function \"hook_command_run\").")),
"-all", &command_away, NULL, NULL); "-all", &command_away, NULL, NULL);
hook_command ( hook_command (
NULL, "bar", NULL, "bar",
+92 -45
View File
@@ -46,7 +46,6 @@
#include "core-infolist.h" #include "core-infolist.h"
#include "core-log.h" #include "core-log.h"
#include "core-string.h" #include "core-string.h"
#include "core-util.h"
#include "core-version.h" #include "core-version.h"
#include "../gui/gui-color.h" #include "../gui/gui-color.h"
#include "../gui/gui-chat.h" #include "../gui/gui-chat.h"
@@ -704,9 +703,9 @@ config_file_new_option (struct t_config_file *config_file,
void *callback_delete_data) void *callback_delete_data)
{ {
struct t_config_option *new_option; struct t_config_option *new_option;
int var_type, int_value, argc, i, index_value, number; int var_type, int_value, argc, i, index_value;
const char *pos; long number;
char *option_name, *parent_name; char *error, *pos, *option_name, *parent_name;
new_option = NULL; new_option = NULL;
option_name = NULL; option_name = NULL;
@@ -819,7 +818,9 @@ config_file_new_option (struct t_config_file *config_file,
new_option->max = max; new_option->max = max;
if (default_value) if (default_value)
{ {
if (!util_parse_int (default_value, 10, &number)) error = NULL;
number = strtol (default_value, &error, 10);
if (!error || error[0])
number = 0; number = 0;
if (number < min) if (number < min)
number = min; number = min;
@@ -832,7 +833,9 @@ config_file_new_option (struct t_config_file *config_file,
} }
if (value) if (value)
{ {
if (!util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (!error || error[0])
number = 0; number = 0;
if (number < min) if (number < min)
number = min; number = min;
@@ -1096,13 +1099,12 @@ config_file_search_with_string (const char *option_name,
struct t_config_file **config_file, struct t_config_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name) char **pos_option_name)
{ {
struct t_config_file *ptr_config; struct t_config_file *ptr_config;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *pos_section, *pos_option; char *file_name, *pos_section, *section_name, *pos_option;
char *file_name, *section_name;
if (config_file) if (config_file)
*config_file = NULL; *config_file = NULL;
@@ -1402,7 +1404,9 @@ int
config_file_option_set (struct t_config_option *option, const char *value, config_file_option_set (struct t_config_option *option, const char *value,
int run_callback) int run_callback)
{ {
int value_int, i, rc, new_value_ok, old_value_was_null, old_value, number; int value_int, i, rc, new_value_ok, old_value_was_null, old_value;
long number;
char *error;
if (!option) if (!option)
return WEECHAT_CONFIG_OPTION_SET_ERROR; return WEECHAT_CONFIG_OPTION_SET_ERROR;
@@ -1489,8 +1493,10 @@ config_file_option_set (struct t_config_option *option, const char *value,
new_value_ok = 0; new_value_ok = 0;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number) error = NULL;
&& ((long)old_value + (long)number <= (long)(option->max))) number = strtol (value + 2, &error, 10);
if (error && !error[0]
&& (long)old_value + number <= (long)(option->max))
{ {
value_int = old_value + number; value_int = old_value + number;
new_value_ok = 1; new_value_ok = 1;
@@ -1498,8 +1504,10 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number) error = NULL;
&& ((long)old_value - (long)number >= (long)(option->min))) number = strtol (value + 2, &error, 10);
if (error && !error[0]
&& (long)old_value - number >= (long)(option->min))
{ {
value_int = old_value - number; value_int = old_value - number;
new_value_ok = 1; new_value_ok = 1;
@@ -1507,16 +1515,20 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
else else
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
value_int = number; value_int = number;
if ((value_int >= option->min) && (value_int <= option->max)) if ((value_int >= option->min)
&& (value_int <= option->max))
new_value_ok = 1; new_value_ok = 1;
} }
} }
if (new_value_ok) if (new_value_ok)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_INTEGER(option) = value_int; CONFIG_INTEGER(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -1560,7 +1572,9 @@ config_file_option_set (struct t_config_option *option, const char *value,
new_value_ok = 0; new_value_ok = 0;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if (gui_color_assign_by_diff (&value_int, if (gui_color_assign_by_diff (&value_int,
gui_color_get_name (old_value), gui_color_get_name (old_value),
@@ -1570,7 +1584,9 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if (gui_color_assign_by_diff (&value_int, if (gui_color_assign_by_diff (&value_int,
gui_color_get_name (old_value), gui_color_get_name (old_value),
@@ -1585,7 +1601,8 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
if (new_value_ok) if (new_value_ok)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_COLOR(option) = value_int; CONFIG_COLOR(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -1614,7 +1631,9 @@ config_file_option_set (struct t_config_option *option, const char *value,
value_int = -1; value_int = -1;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
number = number % (option->max + 1); number = number % (option->max + 1);
value_int = (old_value + number) % value_int = (old_value + number) %
@@ -1623,7 +1642,9 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
number = number % (option->max + 1); number = number % (option->max + 1);
value_int = (old_value + (option->max + 1) - number) % value_int = (old_value + (option->max + 1) - number) %
@@ -1643,7 +1664,8 @@ config_file_option_set (struct t_config_option *option, const char *value,
} }
if (value_int >= 0) if (value_int >= 0)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_ENUM(option) = value_int; CONFIG_ENUM(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -1866,7 +1888,9 @@ config_file_option_set_default (struct t_config_option *option,
const char *value, const char *value,
int run_callback) int run_callback)
{ {
int value_int, i, rc, new_value_ok, old_value_was_null, old_value, number; int value_int, i, rc, new_value_ok, old_value_was_null, old_value;
long number;
char *error;
if (!option) if (!option)
return WEECHAT_CONFIG_OPTION_SET_ERROR; return WEECHAT_CONFIG_OPTION_SET_ERROR;
@@ -1941,34 +1965,42 @@ config_file_option_set_default (struct t_config_option *option,
new_value_ok = 0; new_value_ok = 0;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number) error = NULL;
&& ((long)old_value + (long)number <= (long)(option->max))) number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
value_int = old_value + number; value_int = old_value + number;
new_value_ok = 1; if (value_int <= option->max)
new_value_ok = 1;
} }
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number) error = NULL;
&& ((long)old_value - (long)number >= (long)(option->min))) number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
value_int = old_value - number; value_int = old_value - number;
new_value_ok = 1; if (value_int >= option->min)
new_value_ok = 1;
} }
} }
else else
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
value_int = number; value_int = number;
if ((value_int >= option->min) && (value_int <= option->max)) if ((value_int >= option->min)
&& (value_int <= option->max))
new_value_ok = 1; new_value_ok = 1;
} }
} }
if (new_value_ok) if (new_value_ok)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_INTEGER_DEFAULT(option) = value_int; CONFIG_INTEGER_DEFAULT(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -2012,7 +2044,9 @@ config_file_option_set_default (struct t_config_option *option,
new_value_ok = 0; new_value_ok = 0;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if (gui_color_assign_by_diff (&value_int, if (gui_color_assign_by_diff (&value_int,
gui_color_get_name (old_value), gui_color_get_name (old_value),
@@ -2022,7 +2056,9 @@ config_file_option_set_default (struct t_config_option *option,
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if (gui_color_assign_by_diff (&value_int, if (gui_color_assign_by_diff (&value_int,
gui_color_get_name (old_value), gui_color_get_name (old_value),
@@ -2037,7 +2073,8 @@ config_file_option_set_default (struct t_config_option *option,
} }
if (new_value_ok) if (new_value_ok)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_COLOR_DEFAULT(option) = value_int; CONFIG_COLOR_DEFAULT(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -2066,7 +2103,9 @@ config_file_option_set_default (struct t_config_option *option,
value_int = -1; value_int = -1;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
number = number % (option->max + 1); number = number % (option->max + 1);
value_int = (old_value + number) % value_int = (old_value + number) %
@@ -2075,7 +2114,9 @@ config_file_option_set_default (struct t_config_option *option,
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
number = number % (option->max + 1); number = number % (option->max + 1);
value_int = (old_value + (option->max + 1) - number) % value_int = (old_value + (option->max + 1) - number) %
@@ -2095,7 +2136,8 @@ config_file_option_set_default (struct t_config_option *option,
} }
if (value_int >= 0) if (value_int >= 0)
{ {
if (old_value_was_null || (value_int != old_value)) if (old_value_was_null
|| (value_int != old_value))
{ {
CONFIG_ENUM_DEFAULT(option) = value_int; CONFIG_ENUM_DEFAULT(option) = value_int;
rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED; rc = WEECHAT_CONFIG_OPTION_SET_OK_CHANGED;
@@ -2555,7 +2597,7 @@ config_file_option_set_with_string (const char *option_name, const char *value)
struct t_config_file *ptr_config; struct t_config_file *ptr_config;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
const char *pos_option; char *pos_option;
rc = WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND; rc = WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND;
@@ -3114,7 +3156,7 @@ config_file_write_internal (struct t_config_file *config_file,
{ {
int rc; int rc;
long file_perms; long file_perms;
char *filename, *filename2, resolved_path[PATH_MAX]; char *filename, *filename2, resolved_path[PATH_MAX], *error;
struct t_config_section *ptr_section; struct t_config_section *ptr_section;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
@@ -3265,7 +3307,9 @@ config_file_write_internal (struct t_config_file *config_file,
config_file->file = NULL; config_file->file = NULL;
/* update file mode */ /* update file mode */
if (!util_parse_long (CONFIG_STRING(config_look_config_permissions), 8, &file_perms)) error = NULL;
file_perms = strtol (CONFIG_STRING(config_look_config_permissions), &error, 8);
if (!error || error[0])
file_perms = 0600; file_perms = 0600;
if (chmod (filename2, file_perms) < 0) if (chmod (filename2, file_perms) < 0)
{ {
@@ -3338,15 +3382,18 @@ config_file_write (struct t_config_file *config_file)
int int
config_file_parse_version (const char *version) config_file_parse_version (const char *version)
{ {
int number; long number;
char *error;
if (!version) if (!version)
return -1; return -1;
if (!util_parse_int (version, 10, &number) || (number < 1)) error = NULL;
number = strtoll (version, &error, 10);
if (!error || error[0])
return -1; return -1;
return number; return (number < 1) ? -1 : (int)number;
} }
/* /*
+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_file **config_file,
struct t_config_section **section, struct t_config_section **section,
struct t_config_option **option, struct t_config_option **option,
const char **pos_option_name); char **pos_option_name);
extern int config_file_string_to_boolean (const char *text); extern int config_file_string_to_boolean (const char *text);
extern int config_file_option_reset (struct t_config_option *option, extern int config_file_option_reset (struct t_config_option *option,
int run_callback); int run_callback);
+35 -21
View File
@@ -50,7 +50,6 @@
#include "core-proxy.h" #include "core-proxy.h"
#include "core-string.h" #include "core-string.h"
#include "core-sys.h" #include "core-sys.h"
#include "core-util.h"
#include "core-version.h" #include "core-version.h"
#include "../gui/gui-bar.h" #include "../gui/gui-bar.h"
#include "../gui/gui-bar-item.h" #include "../gui/gui-bar-item.h"
@@ -1709,7 +1708,7 @@ config_weechat_update_cb (const void *pointer, void *data,
int version_read, int version_read,
struct t_hashtable *data_read) struct t_hashtable *data_read)
{ {
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value, *pos_option; const char *ptr_config, *ptr_section, *ptr_option, *ptr_value;
char *new_commands[][2] = { char *new_commands[][2] = {
/* old command, new command */ /* old command, new command */
{ "/input jump_smart", "/buffer jump smart" }, { "/input jump_smart", "/buffer jump smart" },
@@ -1739,7 +1738,7 @@ config_weechat_update_cb (const void *pointer, void *data,
{ "number_desc" "-buffer.number" }, { "number_desc" "-buffer.number" },
{ NULL, NULL }, { NULL, NULL },
}; };
char *new_option, *new_value; char *new_option, *new_value, *pos_option;
int changes, i; int changes, i;
/* make C compiler happy */ /* make C compiler happy */
@@ -2148,14 +2147,19 @@ void
config_weechat_palette_change_cb (const void *pointer, void *data, config_weechat_palette_change_cb (const void *pointer, void *data,
struct t_config_option *option) struct t_config_option *option)
{ {
char *error;
int number; int number;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
(void) data; (void) data;
if (util_parse_int (option->name, 10, &number)) error = NULL;
number = (int)strtol (option->name, &error, 10);
if (error && !error[0])
{
gui_color_palette_add (number, CONFIG_STRING(option)); gui_color_palette_add (number, CONFIG_STRING(option));
}
} }
/* /*
@@ -2170,6 +2174,7 @@ config_weechat_palette_create_option_cb (const void *pointer, void *data,
const char *value) const char *value)
{ {
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
char *error;
int rc, number; int rc, number;
/* make C compiler happy */ /* make C compiler happy */
@@ -2178,7 +2183,9 @@ config_weechat_palette_create_option_cb (const void *pointer, void *data,
rc = WEECHAT_CONFIG_OPTION_SET_ERROR; rc = WEECHAT_CONFIG_OPTION_SET_ERROR;
if (util_parse_int (option_name, 10, &number)) error = NULL;
number = (int)strtol (option_name, &error, 10);
if (error && !error[0])
{ {
if (option_name) if (option_name)
{ {
@@ -2236,6 +2243,7 @@ config_weechat_palette_delete_option_cb (const void *pointer, void *data,
struct t_config_section *section, struct t_config_section *section,
struct t_config_option *option) struct t_config_option *option)
{ {
char *error;
int number; int number;
/* make C compiler happy */ /* make C compiler happy */
@@ -2244,7 +2252,9 @@ config_weechat_palette_delete_option_cb (const void *pointer, void *data,
(void) config_file; (void) config_file;
(void) section; (void) section;
if (util_parse_int (option->name, 10, &number)) error = NULL;
number = (int)strtol (option->name, &error, 10);
if (error && !error[0])
gui_color_palette_remove (number); gui_color_palette_remove (number);
config_file_option_free (option, 1); config_file_option_free (option, 1);
@@ -2262,8 +2272,7 @@ config_weechat_proxy_read_cb (const void *pointer, void *data,
struct t_config_section *section, struct t_config_section *section,
const char *option_name, const char *value) const char *option_name, const char *value)
{ {
const char *pos_option; char *pos_option, *proxy_name;
char *proxy_name;
struct t_proxy *ptr_temp_proxy; struct t_proxy *ptr_temp_proxy;
int index_option; int index_option;
@@ -2342,8 +2351,7 @@ config_weechat_bar_read_cb (const void *pointer, void *data,
struct t_config_section *section, struct t_config_section *section,
const char *option_name, const char *value) const char *option_name, const char *value)
{ {
const char *pos_option; char *pos_option, *bar_name;
char *bar_name;
struct t_gui_bar *ptr_temp_bar; struct t_gui_bar *ptr_temp_bar;
int index_option; int index_option;
@@ -2423,8 +2431,7 @@ config_weechat_custom_bar_item_read_cb (const void *pointer, void *data,
struct t_config_section *section, struct t_config_section *section,
const char *option_name, const char *value) const char *option_name, const char *value)
{ {
const char *pos_option; char *pos_option, *item_name;
char *item_name;
struct t_gui_bar_item_custom *ptr_temp_item; struct t_gui_bar_item_custom *ptr_temp_item;
int index_option; int index_option;
@@ -2514,10 +2521,10 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
struct t_config_section *section, struct t_config_section *section,
const char *option_name, const char *value) const char *option_name, const char *value)
{ {
int argc, force_current_layout, number1, number2, number3, number4; int argc, force_current_layout;
const char *pos; char **argv, *pos, *layout_name, *error1, *error2, *error3, *error4;
char **argv, *layout_name;
const char *ptr_option_name; const char *ptr_option_name;
long number1, number2, number3, number4;
struct t_gui_layout *ptr_layout; struct t_gui_layout *ptr_layout;
struct t_gui_layout_window *parent; struct t_gui_layout_window *parent;
@@ -2575,7 +2582,9 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
{ {
if (argc >= 3) if (argc >= 3)
{ {
if (util_parse_int (argv[2], 10, &number1)) error1 = NULL;
number1 = strtol (argv[2], &error1, 10);
if (error1 && !error1[0])
gui_layout_buffer_add (ptr_layout, argv[0], argv[1], number1); gui_layout_buffer_add (ptr_layout, argv[0], argv[1], number1);
} }
string_free_split (argv); string_free_split (argv);
@@ -2592,10 +2601,16 @@ config_weechat_layout_read_cb (const void *pointer, void *data,
{ {
if (argc >= 6) if (argc >= 6)
{ {
if (util_parse_int (argv[0], 10, &number1) error1 = NULL;
&& util_parse_int (argv[1], 10, &number2) number1 = strtol (argv[0], &error1, 10);
&& util_parse_int (argv[2], 10, &number3) error2 = NULL;
&& util_parse_int (argv[3], 10, &number4)) 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])
{ {
parent = gui_layout_window_search_by_id (ptr_layout->layout_windows, parent = gui_layout_window_search_by_id (ptr_layout->layout_windows,
number2); number2);
@@ -3766,7 +3781,6 @@ config_weechat_init_options (void)
NULL, 0, 0, NULL, 0, 0,
"${away} " "${away} "
"|| ${buffer.num_displayed} == 0 " "|| ${buffer.num_displayed} == 0 "
"|| ${info:relay_client_count,api,connected} > 0 "
"|| ${info:relay_client_count,weechat,connected} > 0", "|| ${info:relay_client_count,weechat,connected} > 0",
NULL, 0, NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+62
View File
@@ -1223,9 +1223,14 @@ dir_file_compress_zstd (const char *from, const char *to,
void *buffer_in, *buffer_out; void *buffer_in, *buffer_out;
size_t buffer_in_size, buffer_out_size, num_read, remaining; size_t buffer_in_size, buffer_out_size, num_read, remaining;
int rc; int rc;
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
ZSTD_CCtx *cctx = NULL; ZSTD_CCtx *cctx = NULL;
ZSTD_EndDirective mode; ZSTD_EndDirective mode;
int finished, last_chunk; int finished, last_chunk;
#else /* zstd < 1.4.0 */
ZSTD_CStream *cstream = NULL;
size_t result, to_read;
#endif
ZSTD_inBuffer input; ZSTD_inBuffer input;
ZSTD_outBuffer output; ZSTD_outBuffer output;
@@ -1254,6 +1259,7 @@ dir_file_compress_zstd (const char *from, const char *to,
if (!dest) if (!dest)
goto end; goto end;
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
cctx = ZSTD_createCCtx (); cctx = ZSTD_createCCtx ();
if (!cctx) if (!cctx)
goto error; goto error;
@@ -1290,21 +1296,77 @@ dir_file_compress_zstd (const char *from, const char *to,
if (last_chunk) if (last_chunk)
break; 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; rc = 1;
goto end; goto end;
error: error:
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
if (cctx) if (cctx)
{ {
ZSTD_freeCCtx (cctx); ZSTD_freeCCtx (cctx);
cctx = NULL; cctx = NULL;
} }
#else /* zstd < 1.4.0 */
if (cstream)
{
ZSTD_freeCStream (cstream);
cstream = NULL;
}
#endif
unlink (to); unlink (to);
end: end:
#if ZSTD_VERSION_NUMBER >= 10400 /* zstd ≥ 1.4.0 */
if (cctx) if (cctx)
ZSTD_freeCCtx (cctx); ZSTD_freeCCtx (cctx);
#else /* zstd < 1.4.0 */
if (cstream)
ZSTD_freeCStream (cstream);
#endif
free (buffer_in); free (buffer_in);
free (buffer_out); free (buffer_out);
+61 -50
View File
@@ -28,7 +28,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <stdarg.h> #include <stdarg.h>
#include <errno.h>
#include <regex.h> #include <regex.h>
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
@@ -315,6 +314,8 @@ eval_string_range_chars (const char *range)
char1 = utf8_char_int (range); char1 = utf8_char_int (range);
/* next char must be '-' */ /* next char must be '-' */
if (!range[0])
goto end;
ptr_char = utf8_next_char (range); ptr_char = utf8_next_char (range);
if (!ptr_char || !ptr_char[0] || (ptr_char[0] != '-')) if (!ptr_char || !ptr_char[0] || (ptr_char[0] != '-'))
goto end; goto end;
@@ -399,8 +400,9 @@ char *
eval_string_cut (const char *text, int screen) eval_string_cut (const char *text, int screen)
{ {
const char *pos, *pos2; const char *pos, *pos2;
char *tmp, *value; char *tmp, *error, *value;
int count_suffix, number; int count_suffix;
long number;
count_suffix = 0; count_suffix = 0;
if (text[0] == '+') if (text[0] == '+')
@@ -421,7 +423,9 @@ eval_string_cut (const char *text, int screen)
if (!tmp) if (!tmp)
return strdup (""); return strdup ("");
if (!util_parse_int (tmp, 10, &number) || (number < 0)) error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
{ {
free (tmp); free (tmp);
return strdup (""); return strdup ("");
@@ -449,8 +453,8 @@ char *
eval_string_repeat (const char *text) eval_string_repeat (const char *text)
{ {
const char *pos; const char *pos;
char *tmp; char *tmp, *error;
int number; long number;
pos = strchr (text, ','); pos = strchr (text, ',');
if (!pos) if (!pos)
@@ -460,7 +464,9 @@ eval_string_repeat (const char *text)
if (!tmp) if (!tmp)
return strdup (""); return strdup ("");
if (!util_parse_int (tmp, 10, &number) || (number < 0)) error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
{ {
free (tmp); free (tmp);
return strdup (""); return strdup ("");
@@ -508,11 +514,10 @@ eval_string_repeat (const char *text)
char * char *
eval_string_split (const char *text) eval_string_split (const char *text)
{ {
const char *pos, *pos2, *pos3; char *pos, *pos2, *pos3, *str_number, *separators, **items, *value, *error;
char *str_number, *separators, **items, *value;
char str_value[32], *str_flags, **list_flags, *strip_items, **ptr_flag; char str_value[32], *str_flags, **list_flags, *strip_items, **ptr_flag;
int num_items, count_items, random_item, flags, max_items; int num_items, count_items, random_item, flags;
long number; long number, max_items;
str_number = NULL; str_number = NULL;
separators = NULL; separators = NULL;
@@ -545,7 +550,9 @@ eval_string_split (const char *text)
} }
else else
{ {
if (!util_parse_long (str_number, 10, &number) || (number == 0)) error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
goto end; goto end;
} }
@@ -583,8 +590,9 @@ eval_string_split (const char *text)
} }
else if (strncmp (*ptr_flag, "max_items=", 10) == 0) else if (strncmp (*ptr_flag, "max_items=", 10) == 0)
{ {
if (!util_parse_int (*ptr_flag + 10, 10, &max_items) error = NULL;
|| (max_items < 0)) max_items = strtol (*ptr_flag + 10, &error, 10);
if (!error || error[0] || (max_items < 0))
goto end; goto end;
} }
} }
@@ -656,8 +664,7 @@ end:
char * char *
eval_string_split_shell (const char *text) eval_string_split_shell (const char *text)
{ {
const char *pos; char *pos, *str_number, **items, *value, *error, str_value[32];
char *str_number, **items, *value, str_value[32];
int num_items, count_items, random_item; int num_items, count_items, random_item;
long number; long number;
@@ -686,7 +693,9 @@ eval_string_split_shell (const char *text)
} }
else else
{ {
if (!util_parse_long (str_number, 10, &number) || (number == 0)) error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
goto end; goto end;
} }
@@ -737,11 +746,11 @@ end:
char * char *
eval_string_regex_group (const char *text, struct t_eval_context *eval_context) eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
{ {
char str_value[64]; char str_value[64], *error;
long number; long number;
if (!eval_context->regex || !eval_context->regex->result) if (!eval_context->regex || !eval_context->regex->result)
goto end; return strdup ("");
if (strcmp (text, "#") == 0) if (strcmp (text, "#") == 0)
{ {
@@ -763,8 +772,10 @@ eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
} }
else else
{ {
if (!util_parse_long (text, 10, &number)) error = NULL;
goto end; number = strtol (text, &error, 10);
if (!error || error[0])
number = -1;
} }
if ((number >= 0) && (number <= eval_context->regex->last_match)) if ((number >= 0) && (number <= eval_context->regex->last_match))
{ {
@@ -775,7 +786,6 @@ eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
eval_context->regex->match[number].rm_so); eval_context->regex->match[number].rm_so);
} }
end:
return strdup (""); return strdup ("");
} }
@@ -1048,8 +1058,7 @@ eval_string_if (const char *text, struct t_eval_context *eval_context)
char * char *
eval_string_random (const char *text) eval_string_random (const char *text)
{ {
const char *pos; char *pos, *error, *tmp, result[128];
char *tmp, result[128];
long long min_number, max_number; long long min_number, max_number;
if (!text || !text[0]) if (!text || !text[0])
@@ -1062,14 +1071,18 @@ eval_string_random (const char *text)
tmp = string_strndup (text, pos - text); tmp = string_strndup (text, pos - text);
if (!tmp) if (!tmp)
goto error; goto error;
if (!util_parse_longlong (tmp, 10, &min_number)) error = NULL;
min_number = strtoll (tmp, &error, 10);
if (!error || error[0])
{ {
free (tmp); free (tmp);
goto error; goto error;
} }
free (tmp); free (tmp);
if (!util_parse_longlong (pos + 1, 10, &max_number)) error = NULL;
max_number = strtoll (pos + 1, &error, 10);
if (!error || error[0])
goto error; goto error;
if (min_number > max_number) if (min_number > max_number)
@@ -1115,8 +1128,7 @@ eval_string_translate (const char *text)
void void
eval_string_define (const char *text, struct t_eval_context *eval_context) eval_string_define (const char *text, struct t_eval_context *eval_context)
{ {
const char *pos; char *pos, *name;
char *name;
pos = strchr (text, ','); pos = strchr (text, ',');
if (!pos) if (!pos)
@@ -1143,8 +1155,7 @@ eval_hdata_count (const char *text, struct t_eval_context *eval_context)
struct t_hdata *hdata; struct t_hdata *hdata;
unsigned long ptr_value; unsigned long ptr_value;
void *pointer; void *pointer;
const char *pos1, *pos2; char *pos1, *pos2, *value, *hdata_name, *pointer_name, str_count[64];
char *value, *hdata_name, *pointer_name, str_count[64];
int rc, count; int rc, count;
value = NULL; value = NULL;
@@ -1216,8 +1227,8 @@ char *
eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path, eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
struct t_eval_context *eval_context) struct t_eval_context *eval_context)
{ {
char *value, *var_name, str_value[128], *property; char *value, *var_name, str_value[128], *pos, *property;
const char *ptr_value, *hdata_name, *ptr_var_name, *pos, *pos_open_paren; const char *ptr_value, *hdata_name, *ptr_var_name, *pos_open_paren;
int type, debug_id; int type, debug_id;
struct t_hashtable *hashtable; struct t_hashtable *hashtable;
@@ -1544,8 +1555,8 @@ eval_syntax_highlight_add_markers (const char *prefix, const char *text,
char * char *
eval_syntax_highlight_colorize (const char *value) eval_syntax_highlight_colorize (const char *value)
{ {
const char *ptr_value, *pos; const char *ptr_value;
char **result; char **result, *pos;
int color; int color;
if (!value) if (!value)
@@ -2213,20 +2224,17 @@ eval_compare (const char *expr1, int comparison, const char *expr2,
if (!string_compare) if (!string_compare)
{ {
errno = 0;
error = NULL;
value1 = strtod (expr1, &error); value1 = strtod (expr1, &error);
if (!error || error[0] || (errno == ERANGE)) if (!error || error[0])
string_compare = 1; {
}
if (!string_compare)
{
errno = 0;
error = NULL;
value2 = strtod (expr2, &error);
if (!error || error[0] || (errno == ERANGE))
string_compare = 1; string_compare = 1;
}
else
{
value2 = strtod (expr2, &error);
if (!error || error[0])
string_compare = 1;
}
} }
if (string_compare) if (string_compare)
@@ -2675,9 +2683,10 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
{ {
struct t_eval_context context, *eval_context; struct t_eval_context context, *eval_context;
struct t_hashtable *user_vars; struct t_hashtable *user_vars;
int condition, rc, pointers_allocated, regex_allocated, debug_id, debug_level; int condition, rc, pointers_allocated, regex_allocated, debug_id;
int ptr_window_added, ptr_buffer_added; int ptr_window_added, ptr_buffer_added;
char *value; long number;
char *value, *error;
const char *default_prefix = EVAL_DEFAULT_PREFIX; const char *default_prefix = EVAL_DEFAULT_PREFIX;
const char *default_suffix = EVAL_DEFAULT_SUFFIX; const char *default_suffix = EVAL_DEFAULT_SUFFIX;
const char *ptr_value, *regex_replace; const char *ptr_value, *regex_replace;
@@ -2817,9 +2826,11 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
ptr_value = hashtable_get (options, "debug"); ptr_value = hashtable_get (options, "debug");
if (ptr_value && ptr_value[0]) if (ptr_value && ptr_value[0])
{ {
if (util_parse_int (ptr_value, 10, &debug_level) && (debug_level >= 1)) error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0] && (number >= 1))
{ {
eval_context->debug_level = debug_level; eval_context->debug_level = (int)number;
eval_context->debug_output = string_dyn_alloc (256); eval_context->debug_output = string_dyn_alloc (256);
} }
} }
+31 -19
View File
@@ -35,7 +35,6 @@
#include "core-hashtable.h" #include "core-hashtable.h"
#include "core-log.h" #include "core-log.h"
#include "core-string.h" #include "core-string.h"
#include "core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
@@ -263,7 +262,9 @@ hdata_get_var_array_size (struct t_hdata *hdata, void *pointer,
{ {
struct t_hdata_var *var; struct t_hdata_var *var;
const char *ptr_size; const char *ptr_size;
int i, offset, value; char *error;
long value;
int i, offset;
void *ptr_value; void *ptr_value;
if (!hdata || !name) if (!hdata || !name)
@@ -339,8 +340,10 @@ hdata_get_var_array_size (struct t_hdata *hdata, void *pointer,
else else
{ {
/* check if the size is a valid integer */ /* check if the size is a valid integer */
if (util_parse_int (ptr_size, 10, &value)) error = NULL;
return value; value = strtol (ptr_size, &error, 10);
if (error && !error[0])
return (int)value;
} }
} }
@@ -688,9 +691,8 @@ hdata_count (struct t_hdata *hdata, void *pointer)
void void
hdata_get_index_and_name (const char *name, int *index, const char **ptr_name) hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
{ {
const char *pos; char *pos, *str_index, *error;
char *str_index; long number;
int number;
if (index) if (index)
*index = -1; *index = -1;
@@ -706,7 +708,9 @@ hdata_get_index_and_name (const char *name, int *index, const char **ptr_name)
str_index = string_strndup (name, pos - name); str_index = string_strndup (name, pos - name);
if (str_index) if (str_index)
{ {
if (util_parse_int (str_index, 10, &number)) error = NULL;
number = strtol (str_index, &error, 10);
if (error && !error[0])
{ {
if (index) if (index)
*index = number; *index = number;
@@ -1242,11 +1246,11 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
const char *value) const char *value)
{ {
struct t_hdata_var *var; struct t_hdata_var *var;
char **ptr_string; char **ptr_string, *error;
unsigned long ptr; long number;
int rc, number_int;
long number_long;
long long number_longlong; long long number_longlong;
unsigned long ptr;
int rc;
if (!hdata->update_pending) if (!hdata->update_pending)
return 0; return 0;
@@ -1266,21 +1270,27 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
*((char *)(pointer + var->offset)) = (value) ? value[0] : '\0'; *((char *)(pointer + var->offset)) = (value) ? value[0] : '\0';
return 1; return 1;
case WEECHAT_HDATA_INTEGER: case WEECHAT_HDATA_INTEGER:
if (util_parse_int (value, 10, &number_int)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
*((int *)(pointer + var->offset)) = number_int; *((int *)(pointer + var->offset)) = (int)number;
return 1; return 1;
} }
break; break;
case WEECHAT_HDATA_LONG: case WEECHAT_HDATA_LONG:
if (util_parse_long (value, 10, &number_long)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
*((long *)(pointer + var->offset)) = number_long; *((long *)(pointer + var->offset)) = number;
return 1; return 1;
} }
break; break;
case WEECHAT_HDATA_LONGLONG: case WEECHAT_HDATA_LONGLONG:
if (util_parse_longlong (value, 10, &number_longlong)) error = NULL;
number_longlong = strtoll (value, &error, 10);
if (error && !error[0])
{ {
*((long long *)(pointer + var->offset)) = number_longlong; *((long long *)(pointer + var->offset)) = number_longlong;
return 1; return 1;
@@ -1313,9 +1323,11 @@ hdata_set (struct t_hdata *hdata, void *pointer, const char *name,
} }
break; break;
case WEECHAT_HDATA_TIME: case WEECHAT_HDATA_TIME:
if (util_parse_longlong (value, 10, &number_longlong) && (number_longlong >= 0)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0] && (number >= 0))
{ {
*((time_t *)(pointer + var->offset)) = (time_t)number_longlong; *((time_t *)(pointer + var->offset)) = (time_t)number;
return 1; return 1;
} }
break; break;
+11 -5
View File
@@ -560,7 +560,9 @@ void
hook_set (struct t_hook *hook, const char *property, const char *value) hook_set (struct t_hook *hook, const char *property, const char *value)
{ {
ssize_t num_written; ssize_t num_written;
int rc, number; char *error;
long number;
int rc;
/* invalid hook? */ /* invalid hook? */
if (!hook_valid (hook)) if (!hook_valid (hook))
@@ -603,20 +605,22 @@ hook_set (struct t_hook *hook, const char *property, const char *value)
&& (hook->type == HOOK_TYPE_PROCESS) && (hook->type == HOOK_TYPE_PROCESS)
&& (HOOK_PROCESS(hook, child_pid) > 0)) && (HOOK_PROCESS(hook, child_pid) > 0))
{ {
if (!util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (!error || error[0])
{ {
/* not a number? look for signal by name */ /* not a number? look for signal by name */
number = signal_search_name (value); number = signal_search_name (value);
} }
if (number >= 0) if (number >= 0)
{ {
rc = kill (HOOK_PROCESS(hook, child_pid), number); rc = kill (HOOK_PROCESS(hook, child_pid), (int)number);
if (rc < 0) if (rc < 0)
{ {
gui_chat_printf (NULL, gui_chat_printf (NULL,
_("%sError sending signal %d to pid %d: %s"), _("%sError sending signal %d to pid %d: %s"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
number, (int)number,
HOOK_PROCESS(hook, child_pid), HOOK_PROCESS(hook, child_pid),
strerror (errno)); strerror (errno));
} }
@@ -629,7 +633,9 @@ hook_set (struct t_hook *hook, const char *property, const char *value)
&& ((hook->type == HOOK_TYPE_COMMAND) && ((hook->type == HOOK_TYPE_COMMAND)
|| (hook->type == HOOK_TYPE_COMMAND_RUN))) || (hook->type == HOOK_TYPE_COMMAND_RUN)))
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
switch (hook->type) switch (hook->type)
{ {
+3 -8
View File
@@ -242,8 +242,8 @@ int
input_data (struct t_gui_buffer *buffer, const char *data, input_data (struct t_gui_buffer *buffer, const char *data,
const char *commands_allowed, int split_newline, int user_data) const char *commands_allowed, int split_newline, int user_data)
{ {
const char *ptr_data_for_buffer; char *pos, str_buffer[128], *new_data, *buffer_full_name;
char *pos, str_buffer[128], *new_data, *buffer_full_name, *ptr_data; const char *ptr_data, *ptr_data_for_buffer;
int first_command, rc; int first_command, rc;
if (!buffer || !gui_buffer_valid (buffer) || !data) if (!buffer || !gui_buffer_valid (buffer) || !data)
@@ -272,13 +272,8 @@ input_data (struct t_gui_buffer *buffer, const char *data,
if (data[0] && new_data && !new_data[0]) if (data[0] && new_data && !new_data[0])
goto end; goto end;
if (!new_data)
new_data = strdup (data);
if (!new_data)
goto end;
first_command = 1; first_command = 1;
ptr_data = new_data; ptr_data = (new_data) ? new_data : data;
while (ptr_data) while (ptr_data)
{ {
/* /*
+10 -5
View File
@@ -58,7 +58,6 @@
#include "core-config.h" #include "core-config.h"
#include "core-proxy.h" #include "core-proxy.h"
#include "core-string.h" #include "core-string.h"
#include "core-util.h"
#include "../gui/gui-chat.h" #include "../gui/gui-chat.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
@@ -1589,9 +1588,11 @@ int
network_connect_child_read_cb (const void *pointer, void *data, int fd) network_connect_child_read_cb (const void *pointer, void *data, int fd)
{ {
struct t_hook *hook_connect; struct t_hook *hook_connect;
char buffer[1], buf_size[6], *cb_error, *cb_ip_address; char buffer[1], buf_size[6], *cb_error, *cb_ip_address, *error;
int num_read;
long size_msg; long size_msg;
int rc, num_read, direction, sock, i; int rc, direction;
int sock, i;
struct msghdr msg; struct msghdr msg;
struct cmsghdr *cmsg; struct cmsghdr *cmsg;
char msg_buf[CMSG_SPACE(sizeof (sock))]; char msg_buf[CMSG_SPACE(sizeof (sock))];
@@ -1620,7 +1621,9 @@ network_connect_child_read_cb (const void *pointer, void *data, int fd)
buf_size, 5); buf_size, 5);
if (num_read == 5) if (num_read == 5)
{ {
if (util_parse_long (buf_size, 10, &size_msg) && (size_msg > 0)) error = NULL;
size_msg = strtol (buf_size, &error, 10);
if (error && !error[0] && (size_msg > 0))
{ {
cb_ip_address = malloc (size_msg + 1); cb_ip_address = malloc (size_msg + 1);
if (cb_ip_address) if (cb_ip_address)
@@ -1755,7 +1758,9 @@ network_connect_child_read_cb (const void *pointer, void *data, int fd)
buf_size, 5); buf_size, 5);
if (num_read == 5) if (num_read == 5)
{ {
if (util_parse_long (buf_size, 10, &size_msg) && (size_msg > 0)) error = NULL;
size_msg = strtol (buf_size, &error, 10);
if (error && !error[0] && (size_msg > 0))
{ {
cb_error = malloc (size_msg + 1); cb_error = malloc (size_msg + 1);
if (cb_error) if (cb_error)
+18 -13
View File
@@ -55,7 +55,6 @@
#include "core-eval.h" #include "core-eval.h"
#include "core-hashtable.h" #include "core-hashtable.h"
#include "core-utf8.h" #include "core-utf8.h"
#include "core-util.h"
#include "../gui/gui-chat.h" #include "../gui/gui-chat.h"
#include "../gui/gui-color.h" #include "../gui/gui-color.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
@@ -1686,8 +1685,9 @@ string_mask_to_regex (const char *mask)
const char * const char *
string_regex_flags (const char *regex, int default_flags, int *flags) string_regex_flags (const char *regex, int default_flags, int *flags)
{ {
const char *ptr_regex, *ptr_flags, *pos; const char *ptr_regex, *ptr_flags;
int set_flag, flag; int set_flag, flag;
char *pos;
if (flags) if (flags)
*flags = default_flags; *flags = default_flags;
@@ -2965,9 +2965,8 @@ char **
string_split_command (const char *command, char separator) string_split_command (const char *command, char separator)
{ {
int nb_substr, arr_idx, str_idx, type; int nb_substr, arr_idx, str_idx, type;
const char *p;
char **array, **array2; char **array, **array2;
char *buffer; char *buffer, *p;
const char *ptr; const char *ptr;
if (!command || !command[0]) if (!command || !command[0])
@@ -3435,7 +3434,7 @@ unsigned long long
string_parse_size (const char *size) string_parse_size (const char *size)
{ {
const char *pos; const char *pos;
char *str_number; char *str_number, *error;
long long number; long long number;
unsigned long long result; unsigned long long result;
@@ -3458,7 +3457,11 @@ string_parse_size (const char *size)
if (!str_number) if (!str_number)
goto end; goto end;
if (!util_parse_longlong (str_number, 10, &number) || (number < 0)) error = NULL;
number = strtoll (str_number, &error, 10);
if (!error || error[0])
goto end;
if (number < 0)
goto end; goto end;
while (pos[0] == ' ') while (pos[0] == ' ')
@@ -4138,7 +4141,8 @@ string_is_command_char (const char *string)
const char * const char *
string_input_for_buffer (const char *string) string_input_for_buffer (const char *string)
{ {
const char *pos_slash, *pos_space, *pos_newline, *next_char; char *pos_slash, *pos_space, *pos_newline;
const char *next_char;
if (!string) if (!string)
return NULL; return NULL;
@@ -4475,9 +4479,8 @@ string_get_priority_and_name (const char *string,
int *priority, const char **name, int *priority, const char **name,
int default_priority) int default_priority)
{ {
const char *pos; char *pos, *str_priority, *error;
char *str_priority; long number;
int number;
if (priority) if (priority)
*priority = default_priority; *priority = default_priority;
@@ -4493,15 +4496,17 @@ string_get_priority_and_name (const char *string,
str_priority = string_strndup (string, pos - string); str_priority = string_strndup (string, pos - string);
if (str_priority) if (str_priority)
{ {
if (util_parse_int (str_priority, 10, &number)) error = NULL;
number = strtol (str_priority, &error, 10);
if (error && !error[0])
{ {
if (priority) if (priority)
*priority = number; *priority = number;
if (name)
*name = pos + 1;
} }
free (str_priority); free (str_priority);
} }
if (name)
*name = pos + 1;
} }
} }
+4 -2
View File
@@ -181,7 +181,7 @@ void
sys_setrlimit (void) sys_setrlimit (void)
{ {
#ifdef HAVE_SYS_RESOURCE_H #ifdef HAVE_SYS_RESOURCE_H
char **items, *pos; char **items, *pos, *error;
int num_items, i; int num_items, i;
long long number; long long number;
@@ -198,7 +198,9 @@ sys_setrlimit (void)
if (pos) if (pos)
{ {
pos[0] = '\0'; pos[0] = '\0';
if (util_parse_longlong (pos + 1, 10, &number) && (number >= -1)) error = NULL;
number = strtoll (pos + 1, &error, 10);
if (error && !error[0])
{ {
sys_setrlimit_resource (items[i], number); sys_setrlimit_resource (items[i], number);
} }
+8 -3
View File
@@ -410,7 +410,7 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
const char *key, *var_name, *name, *plugin_name, *ptr_id; const char *key, *var_name, *name, *plugin_name, *ptr_id;
const char *str; const char *str;
char option_name[64], *option_key, *option_var; char option_name[64], *option_key, *option_var, *error;
int index, main_buffer; int index, main_buffer;
long long id; long long id;
@@ -421,7 +421,9 @@ upgrade_weechat_read_buffer (struct t_infolist *infolist)
ptr_id = infolist_string (infolist, "id"); ptr_id = infolist_string (infolist, "id");
if (ptr_id) if (ptr_id)
{ {
if (!util_parse_longlong (ptr_id, 10, &id)) error = NULL;
id = strtoll (ptr_id, &error, 10);
if (!error || error[0])
id = -1; id = -1;
} }
} }
@@ -710,6 +712,7 @@ upgrade_weechat_read_nicklist (struct t_infolist *infolist)
{ {
struct t_gui_nick_group *ptr_group; struct t_gui_nick_group *ptr_group;
const char *type, *name, *group_name, *ptr_id; const char *type, *name, *group_name, *ptr_id;
char *error;
long long id; long long id;
if (!upgrade_current_buffer) if (!upgrade_current_buffer)
@@ -728,7 +731,9 @@ upgrade_weechat_read_nicklist (struct t_infolist *infolist)
ptr_id = infolist_string (infolist, "id"); ptr_id = infolist_string (infolist, "id");
if (ptr_id) if (ptr_id)
{ {
if (!util_parse_longlong (ptr_id, 10, &id)) error = NULL;
id = strtoll (ptr_id, &error, 10);
if (!error || error[0])
id = -1; id = -1;
} }
} }
+10 -8
View File
@@ -416,8 +416,8 @@ util_strftimeval (char *string, int max, const char *format, struct timeval *tv)
int int
util_parse_time (const char *datetime, struct timeval *tv) util_parse_time (const char *datetime, struct timeval *tv)
{ {
const char *pos_colon, *pos_hyphen, *pos_dot; char *string, *pos, *pos2, *pos_colon, *pos_hyphen, *pos_dot;
char *pos, *pos2, *string, str_usec[16], str_date[128]; char str_usec[16], *error, str_date[128];
struct tm tm_date, tm_date_gm, tm_date_local, *local_time; struct tm tm_date, tm_date_gm, tm_date_local, *local_time;
time_t time_now, time_gm, time_local; time_t time_now, time_gm, time_local;
long long value; long long value;
@@ -488,7 +488,9 @@ util_parse_time (const char *datetime, struct timeval *tv)
{ {
strcat (str_usec, "0"); strcat (str_usec, "0");
} }
if (util_parse_longlong (str_usec, 10, &value)) error = NULL;
value = strtoll (str_usec, &error, 10);
if (error && !error[0])
{ {
/* /*
* just in case: this should not happen as minus is not * just in case: this should not happen as minus is not
@@ -653,7 +655,9 @@ util_parse_time (const char *datetime, struct timeval *tv)
else else
{ {
/* timestamp format: "1704402062" */ /* timestamp format: "1704402062" */
if (util_parse_longlong (string, 10, &value) && (value >= 0)) error = NULL;
value = strtoll (string, &error, 10);
if (error && !error[0] && (value >= 0))
{ {
tv->tv_sec = (time_t)value; tv->tv_sec = (time_t)value;
rc = 1; rc = 1;
@@ -773,10 +777,9 @@ util_parse_delay (const char *string_delay, unsigned long long default_factor,
if (!str_number) if (!str_number)
return 0; return 0;
errno = 0;
error = NULL; error = NULL;
*delay = strtoull (str_number, &error, 10); *delay = strtoull (str_number, &error, 10);
if ((errno == ERANGE) || !error || error[0]) if (!error || error[0])
{ {
free (str_number); free (str_number);
*delay = 0; *delay = 0;
@@ -843,10 +846,9 @@ util_version_number (const char *version)
buf[index_buf] = '\0'; buf[index_buf] = '\0';
if (buf[0]) if (buf[0])
{ {
errno = 0;
error = NULL; error = NULL;
number = strtoul (buf, &error, 10); number = strtoul (buf, &error, 10);
if ((errno != ERANGE) && error && !error[0]) if (error && !error[0])
{ {
if (number > 0xFF) if (number > 0xFF)
number = 0xFF; number = 0xFF;
+2 -2
View File
@@ -597,8 +597,8 @@ hook_command_exec (struct t_gui_buffer *buffer, int any_plugin,
struct t_hook *hook_plugin, *hook_other_plugin, *hook_other_plugin2; struct t_hook *hook_plugin, *hook_other_plugin, *hook_other_plugin2;
struct t_hook *hook_incomplete_command; struct t_hook *hook_incomplete_command;
struct t_hook_exec_cb hook_exec_cb; struct t_hook_exec_cb hook_exec_cb;
char **argv, **argv_eol, *command_name; char **argv, **argv_eol, *command_name, *pos;
const char *ptr_string, *pos; const char *ptr_string;
int argc, rc, length_command_name, allow_incomplete_commands; int argc, rc, length_command_name, allow_incomplete_commands;
int count_other_plugin, count_incomplete_commands, flags; int count_other_plugin, count_incomplete_commands, flags;
+6 -5
View File
@@ -41,7 +41,6 @@
#include "../core-log.h" #include "../core-log.h"
#include "../core-string.h" #include "../core-string.h"
#include "../core-url.h" #include "../core-url.h"
#include "../core-util.h"
#include "../../gui/gui-chat.h" #include "../../gui/gui-chat.h"
#include "../../plugins/plugin.h" #include "../../plugins/plugin.h"
@@ -89,9 +88,9 @@ hook_process_hashtable (struct t_weechat_plugin *plugin,
{ {
struct t_hook *new_hook; struct t_hook *new_hook;
struct t_hook_process *new_hook_process; struct t_hook_process *new_hook_process;
char *stdout_buffer, *stderr_buffer; char *stdout_buffer, *stderr_buffer, *error;
const char *ptr_value; const char *ptr_value;
int number; long number;
stdout_buffer = NULL; stdout_buffer = NULL;
stderr_buffer = NULL; stderr_buffer = NULL;
@@ -150,10 +149,12 @@ hook_process_hashtable (struct t_weechat_plugin *plugin,
ptr_value = hashtable_get (options, "buffer_flush"); ptr_value = hashtable_get (options, "buffer_flush");
if (ptr_value && ptr_value[0]) if (ptr_value && ptr_value[0])
{ {
if (util_parse_int (ptr_value, 10, &number) error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0]
&& (number >= 1) && (number <= HOOK_PROCESS_BUFFER_SIZE)) && (number >= 1) && (number <= HOOK_PROCESS_BUFFER_SIZE))
{ {
new_hook_process->buffer_flush = number; new_hook_process->buffer_flush = (int)number;
} }
} }
} }
+1 -2
View File
@@ -132,8 +132,7 @@ void
hook_signal_extract_flags (const char *signal, const char **ptr_signal, hook_signal_extract_flags (const char *signal, const char **ptr_signal,
int *stop_on_error, int *ignore_eat) int *stop_on_error, int *ignore_eat)
{ {
const char *pos; char *pos, *str_flags, **flags;
char *str_flags, **flags;
int i, num_flags; int i, num_flags;
if (!signal || !ptr_signal || !stop_on_error || !ignore_eat) if (!signal || !ptr_signal || !stop_on_error || !ignore_eat)
-2
View File
@@ -56,8 +56,6 @@
#define WEECHAT_COPYRIGHT_DATE "(C) 2003-2026" #define WEECHAT_COPYRIGHT_DATE "(C) 2003-2026"
#define WEECHAT_WEBSITE "https://weechat.org/" #define WEECHAT_WEBSITE "https://weechat.org/"
#define WEECHAT_WEBSITE_DOWNLOAD "https://weechat.org/download/" #define WEECHAT_WEBSITE_DOWNLOAD "https://weechat.org/download/"
#define WEECHAT_AUTHOR_NAME "Sébastien Helleu"
#define WEECHAT_AUTHOR_EMAIL "flashcode@flashtux.org"
/* log file */ /* log file */
#define WEECHAT_LOG_NAME "weechat.log" #define WEECHAT_LOG_NAME "weechat.log"
+18 -7
View File
@@ -37,7 +37,6 @@
#include "../../core/core-list.h" #include "../../core/core-list.h"
#include "../../core/core-string.h" #include "../../core/core-string.h"
#include "../../core/core-utf8.h" #include "../../core/core-utf8.h"
#include "../../core/core-util.h"
#include "../../plugins/plugin.h" #include "../../plugins/plugin.h"
#include "../gui-buffer.h" #include "../gui-buffer.h"
#include "../gui-color.h" #include "../gui-color.h"
@@ -226,6 +225,7 @@ int
gui_color_assign (int *color, const char *color_name) gui_color_assign (int *color, const char *color_name)
{ {
int flag, extra_attr, color_index, number; int flag, extra_attr, color_index, number;
char *error;
/* read extended attributes */ /* read extended attributes */
extra_attr = 0; extra_attr = 0;
@@ -244,7 +244,9 @@ gui_color_assign (int *color, const char *color_name)
} }
/* is it a color number? */ /* is it a color number? */
if (color_name[0] && util_parse_int (color_name, 10, &number) && (number >= 0)) error = NULL;
number = (int)strtol (color_name, &error, 10);
if (color_name[0] && error && !error[0] && (number >= 0))
{ {
/* color_name is a number, use this color number */ /* color_name is a number, use this color number */
if (number > GUI_COLOR_EXTENDED_MAX) if (number > GUI_COLOR_EXTENDED_MAX)
@@ -1355,6 +1357,7 @@ gui_color_palette_add_alias_cb (void *data,
const void *key, const void *value) const void *key, const void *value)
{ {
struct t_gui_color_palette *color_palette; struct t_gui_color_palette *color_palette;
char *error;
int number; int number;
/* make C compiler happy */ /* make C compiler happy */
@@ -1365,7 +1368,9 @@ gui_color_palette_add_alias_cb (void *data,
if (color_palette && color_palette->alias) if (color_palette && color_palette->alias)
{ {
if (util_parse_int ((const char *)key, 10, &number)) error = NULL;
number = (int)strtol ((char *)key, &error, 10);
if (error && !error[0])
{ {
hashtable_set (gui_color_hash_palette_alias, hashtable_set (gui_color_hash_palette_alias,
color_palette->alias, color_palette->alias,
@@ -1432,7 +1437,8 @@ struct t_gui_color_palette *
gui_color_palette_new (int number, const char *value) gui_color_palette_new (int number, const char *value)
{ {
struct t_gui_color_palette *new_color_palette; struct t_gui_color_palette *new_color_palette;
char **items, *pos, *pos2, *str_alias, *str_rgb, str_number[64]; char **items, *pos, *pos2, *error1, *error2, *error3;
char *str_alias, *str_rgb, str_number[64];
int num_items, i, r, g, b; int num_items, i, r, g, b;
if (!value) if (!value)
@@ -1484,11 +1490,16 @@ gui_color_palette_new (int number, const char *value)
if (pos2) if (pos2)
{ {
pos2[0] = '\0'; pos2[0] = '\0';
if (util_parse_int (str_rgb, 10, &r) error1 = NULL;
r = (int)strtol (str_rgb, &error1, 10);
error2 = NULL;
g = (int)strtol (pos + 1, &error2, 10);
error3 = NULL;
b = (int)strtol (pos2 + 1, &error3, 10);
if (error1 && !error1[0] && error2 && !error2[0]
&& error3 && !error3[0]
&& (r >= 0) && (r <= 1000) && (r >= 0) && (r <= 1000)
&& util_parse_int (pos + 1, 10, &g)
&& (g >= 0) && (g <= 1000) && (g >= 0) && (g <= 1000)
&& util_parse_int (pos2 + 1, 10, &b)
&& (b >= 0) && (b <= 1000)) && (b >= 0) && (b <= 1000))
{ {
new_color_palette->r = r; new_color_palette->r = r;
+1 -1
View File
@@ -186,7 +186,7 @@ gui_key_default_bindings (int context, int create_option)
BIND("meta-w,meta-b", "/window balance"); BIND("meta-w,meta-b", "/window balance");
BIND("meta-w,meta-s", "/window swap"); BIND("meta-w,meta-s", "/window swap");
BIND("meta-z", "/window zoom"); BIND("meta-z", "/window zoom");
BIND("meta-=", "/mute /filter toggle"); BIND("meta-=", "/filter toggle");
BIND("meta--", "/filter toggle @"); BIND("meta--", "/filter toggle @");
BIND("meta-0", "/buffer *10"); BIND("meta-0", "/buffer *10");
BIND("meta-1", "/buffer *1"); BIND("meta-1", "/buffer *1");
+12 -6
View File
@@ -36,7 +36,6 @@
#include "../../core/core-hook.h" #include "../../core/core-hook.h"
#include "../../core/core-string.h" #include "../../core/core-string.h"
#include "../../core/core-utf8.h" #include "../../core/core-utf8.h"
#include "../../core/core-util.h"
#include "../../plugins/plugin.h" #include "../../plugins/plugin.h"
#include "../gui-bar.h" #include "../gui-bar.h"
#include "../gui-bar-window.h" #include "../gui-bar-window.h"
@@ -356,9 +355,10 @@ gui_mouse_event_concat_gesture (char *key)
const char * const char *
gui_mouse_event_name_sgr (const char *key) gui_mouse_event_name_sgr (const char *key)
{ {
int length, num_items, is_release, button, x, y; int length, num_items, is_release;
char **items; char **items, *error;
static char mouse_key[128]; static char mouse_key[128];
long button, x, y;
if (!key || !key[0]) if (!key || !key[0])
return NULL; return NULL;
@@ -372,10 +372,14 @@ gui_mouse_event_name_sgr (const char *key)
if (num_items < 3) if (num_items < 3)
goto error; goto error;
if (!util_parse_int (items[0], 10, &button)) error = NULL;
button = strtol (items[0], &error, 10);
if (!error || error[0])
goto error; goto error;
if (!util_parse_int (items[1], 10, &x)) error = NULL;
x = strtol (items[1], &error, 10);
if (!error || error[0])
goto error; goto error;
x = (x >= 1) ? x - 1 : 0; x = (x >= 1) ? x - 1 : 0;
@@ -384,7 +388,9 @@ gui_mouse_event_name_sgr (const char *key)
goto error; goto error;
is_release = (items[2][length - 1] == 'm') ? 1 : 0; is_release = (items[2][length - 1] == 'm') ? 1 : 0;
items[2][length - 1] = '\0'; items[2][length - 1] = '\0';
if (!util_parse_int (items[2], 10, &y)) error = NULL;
y = strtol (items[2], &error, 10);
if (!error || error[0])
goto error; goto error;
y = (y >= 1) ? y - 1 : 0; y = (y >= 1) ? y - 1 : 0;
+51 -24
View File
@@ -41,7 +41,6 @@
#include "../../core/core-hook.h" #include "../../core/core-hook.h"
#include "../../core/core-log.h" #include "../../core/core-log.h"
#include "../../core/core-string.h" #include "../../core/core-string.h"
#include "../../core/core-util.h"
#include "../../plugins/plugin.h" #include "../../plugins/plugin.h"
#include "../gui-window.h" #include "../gui-window.h"
#include "../gui-bar.h" #include "../gui-bar.h"
@@ -642,7 +641,7 @@ void
gui_window_string_apply_color_fg (unsigned char **string, WINDOW *window) gui_window_string_apply_color_fg (unsigned char **string, WINDOW *window)
{ {
unsigned char *ptr_string; unsigned char *ptr_string;
char str_fg[6]; char str_fg[6], *error;
int fg, extra_attr, flag; int fg, extra_attr, flag;
ptr_string = *string; ptr_string = *string;
@@ -663,7 +662,9 @@ gui_window_string_apply_color_fg (unsigned char **string, WINDOW *window)
{ {
memcpy (str_fg, ptr_string, 5); memcpy (str_fg, ptr_string, 5);
str_fg[5] = '\0'; str_fg[5] = '\0';
if (util_parse_int (str_fg, 10, &fg)) error = NULL;
fg = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
{ {
gui_window_set_custom_color_fg (window, gui_window_set_custom_color_fg (window,
fg | GUI_COLOR_EXTENDED_FLAG | extra_attr); fg | GUI_COLOR_EXTENDED_FLAG | extra_attr);
@@ -687,7 +688,9 @@ gui_window_string_apply_color_fg (unsigned char **string, WINDOW *window)
str_fg[0] = ptr_string[0]; str_fg[0] = ptr_string[0];
str_fg[1] = ptr_string[1]; str_fg[1] = ptr_string[1];
str_fg[2] = '\0'; str_fg[2] = '\0';
if (util_parse_int (str_fg, 10, &fg)) error = NULL;
fg = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
{ {
gui_window_set_custom_color_fg (window, fg | extra_attr); gui_window_set_custom_color_fg (window, fg | extra_attr);
} }
@@ -710,7 +713,7 @@ void
gui_window_string_apply_color_bg (unsigned char **string, WINDOW *window) gui_window_string_apply_color_bg (unsigned char **string, WINDOW *window)
{ {
unsigned char *ptr_string; unsigned char *ptr_string;
char str_bg[6]; char str_bg[6], *error;
int bg; int bg;
ptr_string = *string; ptr_string = *string;
@@ -724,7 +727,9 @@ gui_window_string_apply_color_bg (unsigned char **string, WINDOW *window)
{ {
memcpy (str_bg, ptr_string + 1, 5); memcpy (str_bg, ptr_string + 1, 5);
str_bg[5] = '\0'; str_bg[5] = '\0';
if (util_parse_int (str_bg, 10, &bg)) error = NULL;
bg = (int)strtol (str_bg, &error, 10);
if (error && !error[0])
{ {
gui_window_set_custom_color_bg (window, gui_window_set_custom_color_bg (window,
bg | GUI_COLOR_EXTENDED_FLAG); bg | GUI_COLOR_EXTENDED_FLAG);
@@ -742,7 +747,9 @@ gui_window_string_apply_color_bg (unsigned char **string, WINDOW *window)
str_bg[0] = ptr_string[0]; str_bg[0] = ptr_string[0];
str_bg[1] = ptr_string[1]; str_bg[1] = ptr_string[1];
str_bg[2] = '\0'; str_bg[2] = '\0';
if (util_parse_int (str_bg, 10, &bg)) error = NULL;
bg = (int)strtol (str_bg, &error, 10);
if (error && !error[0])
{ {
gui_window_set_custom_color_bg (window, bg); gui_window_set_custom_color_bg (window, bg);
} }
@@ -765,7 +772,7 @@ void
gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window) gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window)
{ {
unsigned char *ptr_string; unsigned char *ptr_string;
char str_fg[6], str_bg[6]; char str_fg[6], str_bg[6], *error;
int fg, bg, extra_attr, flag; int fg, bg, extra_attr, flag;
ptr_string = *string; ptr_string = *string;
@@ -790,10 +797,12 @@ gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window)
{ {
memcpy (str_fg, ptr_string, 5); memcpy (str_fg, ptr_string, 5);
str_fg[5] = '\0'; str_fg[5] = '\0';
if (util_parse_int (str_fg, 10, &fg)) error = NULL;
fg |= GUI_COLOR_EXTENDED_FLAG | extra_attr; fg = (int)strtol (str_fg, &error, 10);
else if (!error || error[0])
fg = -1; fg = -1;
else
fg |= GUI_COLOR_EXTENDED_FLAG | extra_attr;
} }
ptr_string += 5; ptr_string += 5;
} }
@@ -813,10 +822,12 @@ gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window)
str_fg[0] = ptr_string[0]; str_fg[0] = ptr_string[0];
str_fg[1] = ptr_string[1]; str_fg[1] = ptr_string[1];
str_fg[2] = '\0'; str_fg[2] = '\0';
if (util_parse_int (str_fg, 10, &fg)) error = NULL;
fg |= extra_attr; fg = (int)strtol (str_fg, &error, 10);
else if (!error || error[0])
fg = -1; fg = -1;
else
fg |= extra_attr;
} }
ptr_string += 2; ptr_string += 2;
} }
@@ -838,10 +849,12 @@ gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window)
{ {
memcpy (str_bg, ptr_string + 1, 5); memcpy (str_bg, ptr_string + 1, 5);
str_bg[5] = '\0'; str_bg[5] = '\0';
if (util_parse_int (str_bg, 10, &bg)) error = NULL;
bg |= GUI_COLOR_EXTENDED_FLAG; bg = (int)strtol (str_bg, &error, 10);
else if (!error || error[0])
bg = -1; bg = -1;
else
bg |= GUI_COLOR_EXTENDED_FLAG;
} }
ptr_string += 6; ptr_string += 6;
} }
@@ -855,7 +868,9 @@ gui_window_string_apply_color_fg_bg (unsigned char **string, WINDOW *window)
str_bg[0] = ptr_string[0]; str_bg[0] = ptr_string[0];
str_bg[1] = ptr_string[1]; str_bg[1] = ptr_string[1];
str_bg[2] = '\0'; str_bg[2] = '\0';
if (!util_parse_int (str_bg, 10, &bg)) error = NULL;
bg = (int)strtol (str_bg, &error, 10);
if (!error || error[0])
bg = -1; bg = -1;
} }
ptr_string += 2; ptr_string += 2;
@@ -881,7 +896,7 @@ void
gui_window_string_apply_color_pair (unsigned char **string, WINDOW *window) gui_window_string_apply_color_pair (unsigned char **string, WINDOW *window)
{ {
unsigned char *ptr_string; unsigned char *ptr_string;
char str_pair[6]; char str_pair[6], *error;
int pair; int pair;
ptr_string = *string; ptr_string = *string;
@@ -894,8 +909,12 @@ gui_window_string_apply_color_pair (unsigned char **string, WINDOW *window)
{ {
memcpy (str_pair, ptr_string, 5); memcpy (str_pair, ptr_string, 5);
str_pair[5] = '\0'; str_pair[5] = '\0';
if (util_parse_int (str_pair, 10, &pair)) error = NULL;
pair = (int)strtol (str_pair, &error, 10);
if (error && !error[0])
{
gui_window_set_custom_color_pair (window, pair); gui_window_set_custom_color_pair (window, pair);
}
} }
ptr_string += 5; ptr_string += 5;
} }
@@ -914,7 +933,7 @@ void
gui_window_string_apply_color_weechat (unsigned char **string, WINDOW *window) gui_window_string_apply_color_weechat (unsigned char **string, WINDOW *window)
{ {
unsigned char *ptr_string; unsigned char *ptr_string;
char str_number[3]; char str_number[3], *error;
int weechat_color; int weechat_color;
ptr_string = *string; ptr_string = *string;
@@ -926,8 +945,13 @@ gui_window_string_apply_color_weechat (unsigned char **string, WINDOW *window)
str_number[0] = ptr_string[0]; str_number[0] = ptr_string[0];
str_number[1] = ptr_string[1]; str_number[1] = ptr_string[1];
str_number[2] = '\0'; str_number[2] = '\0';
if (util_parse_int (str_number, 10, &weechat_color)) error = NULL;
gui_window_set_weechat_color (window, weechat_color); weechat_color = (int)strtol (str_number, &error, 10);
if (error && !error[0])
{
gui_window_set_weechat_color (window,
weechat_color);
}
} }
ptr_string += 2; ptr_string += 2;
} }
@@ -2496,6 +2520,7 @@ void
gui_window_bare_display_toggle (const char *delay) gui_window_bare_display_toggle (const char *delay)
{ {
long seconds; long seconds;
char *error;
gui_window_bare_display ^= 1; gui_window_bare_display ^= 1;
@@ -2507,7 +2532,9 @@ gui_window_bare_display_toggle (const char *delay)
gui_mouse_disable (); gui_mouse_disable ();
if (delay) if (delay)
{ {
if (util_parse_long (delay, 10, &seconds) && (seconds >= 0)) error = NULL;
seconds = strtol (delay, &error, 10);
if (error && !error[0] && (seconds >= 0))
{ {
if (gui_window_bare_display_timer) if (gui_window_bare_display_timer)
{ {
+3 -4
View File
@@ -47,7 +47,7 @@ void
daemonize (void) daemonize (void)
{ {
pid_t pid; pid_t pid;
int fd, i, rc; int fd, i;
printf ("%s ", _("Running WeeChat in background...")); printf ("%s ", _("Running WeeChat in background..."));
@@ -77,9 +77,8 @@ daemonize (void)
close (i); close (i);
} }
fd = open ("/dev/null", O_RDWR); fd = open ("/dev/null", O_RDWR);
rc = dup (fd); (void) dup (fd);
rc = dup (fd); (void) dup (fd);
(void) rc;
} }
/* /*
+1 -2
View File
@@ -138,8 +138,7 @@ gui_bar_item_custom_search (const char *item_name)
struct t_gui_bar_item_custom * struct t_gui_bar_item_custom *
gui_bar_item_custom_search_with_option_name (const char *option_name) gui_bar_item_custom_search_with_option_name (const char *option_name)
{ {
const char *pos_option; char *item_name, *pos_option;
char *item_name;
struct t_gui_bar_item_custom *ptr_item; struct t_gui_bar_item_custom *ptr_item;
if (!option_name) if (!option_name)
+15 -11
View File
@@ -1880,9 +1880,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{ {
if (strchr (ptr_nick->prefix_color, '.')) if (strchr (ptr_nick->prefix_color, '.'))
{ {
config_file_search_with_string ( config_file_search_with_string (ptr_nick->prefix_color,
ptr_nick->prefix_color, NULL, NULL, &ptr_option,
NULL, NULL, &ptr_option, NULL); NULL);
if (ptr_option) if (ptr_option)
{ {
string_dyn_concat ( string_dyn_concat (
@@ -1907,9 +1907,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{ {
if (strchr (ptr_nick->color, '.')) if (strchr (ptr_nick->color, '.'))
{ {
config_file_search_with_string ( config_file_search_with_string (ptr_nick->color,
ptr_nick->color, NULL, NULL, &ptr_option,
NULL, NULL, &ptr_option, NULL); NULL);
if (ptr_option) if (ptr_option)
{ {
string_dyn_concat ( string_dyn_concat (
@@ -1940,9 +1940,9 @@ gui_bar_item_buffer_nicklist_cb (const void *pointer, void *data,
{ {
if (strchr (ptr_group->color, '.')) if (strchr (ptr_group->color, '.'))
{ {
config_file_search_with_string ( config_file_search_with_string (ptr_group->color,
ptr_group->color, NULL, NULL, &ptr_option,
NULL, NULL, &ptr_option, NULL); NULL);
if (ptr_option) if (ptr_option)
{ {
string_dyn_concat ( string_dyn_concat (
@@ -2153,6 +2153,7 @@ gui_bar_item_focus_buffer_nicklist_cb (const void *pointer,
const char *str_window, *str_buffer, *str_bar_item_line; const char *str_window, *str_buffer, *str_bar_item_line;
struct t_gui_window *window; struct t_gui_window *window;
struct t_gui_buffer *buffer; struct t_gui_buffer *buffer;
char *error;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -2161,8 +2162,6 @@ gui_bar_item_focus_buffer_nicklist_cb (const void *pointer,
str_bar_item_line = hashtable_get (info, "_bar_item_line"); str_bar_item_line = hashtable_get (info, "_bar_item_line");
if (!str_bar_item_line || !str_bar_item_line[0]) if (!str_bar_item_line || !str_bar_item_line[0])
return NULL; return NULL;
if (!util_parse_int (str_bar_item_line, 10, &bar_item_line))
return NULL;
/* get window */ /* get window */
str_window = hashtable_get (info, "_window"); str_window = hashtable_get (info, "_window");
@@ -2194,6 +2193,11 @@ gui_bar_item_focus_buffer_nicklist_cb (const void *pointer,
if (!buffer) if (!buffer)
return NULL; return NULL;
error = NULL;
bar_item_line = (int) strtol (str_bar_item_line, &error, 10);
if (!error || error[0])
return NULL;
i = 0; i = 0;
ptr_group = NULL; ptr_group = NULL;
ptr_nick = NULL; ptr_nick = NULL;
+22 -14
View File
@@ -39,7 +39,6 @@
#include "../core/core-infolist.h" #include "../core/core-infolist.h"
#include "../core/core-log.h" #include "../core/core-log.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-bar.h" #include "gui-bar.h"
#include "gui-bar-item.h" #include "gui-bar-item.h"
@@ -515,8 +514,7 @@ gui_bar_search (const char *name)
struct t_gui_bar * struct t_gui_bar *
gui_bar_search_with_option_name (const char *option_name) gui_bar_search_with_option_name (const char *option_name)
{ {
const char *pos_option; char *bar_name, *pos_option;
char *bar_name;
struct t_gui_bar *ptr_bar; struct t_gui_bar *ptr_bar;
if (!option_name) if (!option_name)
@@ -1020,7 +1018,9 @@ gui_bar_config_check_size (const void *pointer, void *data,
const char *value) const char *value)
{ {
struct t_gui_bar *ptr_bar; struct t_gui_bar *ptr_bar;
int new_value, current_size, number; long number;
char *error;
int new_value, current_size;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -1032,26 +1032,30 @@ gui_bar_config_check_size (const void *pointer, void *data,
new_value = -1; new_value = -1;
if (strncmp (value, "++", 2) == 0) if (strncmp (value, "++", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if ((number < 0) || (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) > INT_MAX - number))
return 0;
new_value = CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) + number; new_value = CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) + number;
} }
} }
else if (strncmp (value, "--", 2) == 0) else if (strncmp (value, "--", 2) == 0)
{ {
if (util_parse_int (value + 2, 10, &number)) error = NULL;
number = strtol (value + 2, &error, 10);
if (error && !error[0])
{ {
if ((number < 0) || (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) < INT_MIN + number))
return 0;
new_value = CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) - number; new_value = CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_SIZE]) - number;
} }
} }
else else
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{
new_value = number; new_value = number;
}
} }
if (new_value < 0) if (new_value < 0)
return 0; return 0;
@@ -2058,8 +2062,9 @@ gui_bar_scroll (struct t_gui_bar *bar, struct t_gui_window *window,
const char *scroll) const char *scroll)
{ {
struct t_gui_bar_window *ptr_bar_win; struct t_gui_bar_window *ptr_bar_win;
char *str; long number;
int length, add_x, add, percent, scroll_beginning, scroll_end, number; char *str, *error;
int length, add_x, add, percent, scroll_beginning, scroll_end;
if (!bar) if (!bar)
return 0; return 0;
@@ -2127,7 +2132,10 @@ gui_bar_scroll (struct t_gui_bar *bar, struct t_gui_window *window,
if (!str) if (!str)
return 0; return 0;
if (!util_parse_int (str, 10, &number) || (number <= 0)) error = NULL;
number = strtol (str, &error, 10);
if (!error || error[0] || (number <= 0))
{ {
free (str); free (str);
return 0; return 0;
+98 -69
View File
@@ -49,7 +49,6 @@
#include "../core/core-secure-buffer.h" #include "../core/core-secure-buffer.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-utf8.h" #include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-buffer.h" #include "gui-buffer.h"
#include "gui-chat.h" #include "gui-chat.h"
@@ -1764,13 +1763,17 @@ void
gui_buffer_set_notify (struct t_gui_buffer *buffer, const char *notify) gui_buffer_set_notify (struct t_gui_buffer *buffer, const char *notify)
{ {
const char *ptr_notify; const char *ptr_notify;
int mute_old, number; char *error;
long number;
int mute_old;
if (!buffer) if (!buffer)
return; return;
ptr_notify = NULL; ptr_notify = NULL;
if (util_parse_int (notify, 10, &number)) error = NULL;
number = strtol (notify, &error, 10);
if (error && !error[0])
{ {
if (number < GUI_BUFFER_NUM_NOTIFY) if (number < GUI_BUFFER_NUM_NOTIFY)
{ {
@@ -2228,8 +2231,9 @@ void
gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer, gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
const char *new_hotlist_max_level_nicks) const char *new_hotlist_max_level_nicks)
{ {
char **nicks, *pos; char **nicks, *pos, *error;
int nicks_count, number, value, i; int nicks_count, value, i;
long number;
if (!buffer) if (!buffer)
return; return;
@@ -2255,10 +2259,13 @@ gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
{ {
pos[0] = '\0'; pos[0] = '\0';
pos++; pos++;
if (util_parse_int (pos, 10, &number)) error = NULL;
value = number; number = strtol (pos, &error, 10);
if (error && !error[0])
value = (int)number;
} }
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i], &value); hashtable_set (buffer->hotlist_max_level_nicks, nicks[i],
&value);
} }
string_free_split (nicks); string_free_split (nicks);
} }
@@ -2271,8 +2278,9 @@ void
gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer, gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
const char *nicks_to_add) const char *nicks_to_add)
{ {
char **nicks, *pos; char **nicks, *pos, *error;
int nicks_count, number, value, i; int nicks_count, value, i;
long number;
if (!buffer || !nicks_to_add) if (!buffer || !nicks_to_add)
return; return;
@@ -2293,10 +2301,13 @@ gui_buffer_add_hotlist_max_level_nicks (struct t_gui_buffer *buffer,
{ {
pos[0] = '\0'; pos[0] = '\0';
pos++; pos++;
if (util_parse_int (pos, 10, &number)) error = NULL;
value = number; number = strtol (pos, &error, 10);
if (error && !error[0])
value = (int)number;
} }
hashtable_set (buffer->hotlist_max_level_nicks, nicks[i], &value); hashtable_set (buffer->hotlist_max_level_nicks, nicks[i],
&value);
} }
string_free_split (nicks); string_free_split (nicks);
} }
@@ -2442,7 +2453,9 @@ void
gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument) gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
{ {
struct t_gui_line *old_last_read_line; struct t_gui_line *old_last_read_line;
int i, number, old_first_line_not_read; int i, old_first_line_not_read;
long number;
char *error;
if (!buffer || (buffer->type != GUI_BUFFER_TYPE_FORMATTED)) if (!buffer || (buffer->type != GUI_BUFFER_TYPE_FORMATTED))
return; return;
@@ -2465,7 +2478,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '-') else if (argument[0] == '-')
{ {
/* move the unread marker N lines towards the first line */ /* move the unread marker N lines towards the first line */
if (util_parse_int (argument, 10, &number) && (number < 0)) error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number < 0))
{ {
for (i = 0; i > number; i--) for (i = 0; i > number; i--)
{ {
@@ -2491,7 +2506,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '+') else if (argument[0] == '+')
{ {
/* move the unread marker N lines towards the last line */ /* move the unread marker N lines towards the last line */
if (util_parse_int (argument, 10, &number) && (number > 0)) error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{ {
for (i = 0; i < number; i++) for (i = 0; i < number; i++)
{ {
@@ -2515,7 +2532,9 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else else
{ {
/* move the unread marker N lines from the end towards the first line */ /* move the unread marker N lines from the end towards the first line */
if (util_parse_int (argument, 10, &number) && (number > 0)) error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{ {
buffer->lines->last_read_line = buffer->lines->last_line; buffer->lines->last_read_line = buffer->lines->last_line;
buffer->lines->first_line_not_read = 0; buffer->lines->first_line_not_read = 0;
@@ -2549,7 +2568,8 @@ void
gui_buffer_set (struct t_gui_buffer *buffer, const char *property, gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
const char *value) const char *value)
{ {
int number; long number;
char *error;
if (!property || !value) if (!property || !value)
return; return;
@@ -2563,7 +2583,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
gui_add_hotlist = 1; gui_add_hotlist = 1;
else if (buffer) else if (buffer)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
if (number < 0) if (number < 0)
{ {
@@ -2591,7 +2613,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
/* properties that need a buffer */ /* properties that need a buffer */
if (strcmp (property, "hotlist_conditions") == 0) if (strcmp (property, "hotlist_conditions") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
if (number < 0) if (number < 0)
{ {
@@ -2625,7 +2649,9 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
} }
else if (strcmp (property, "hidden") == 0) else if (strcmp (property, "hidden") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
{ {
if (number) if (number)
gui_buffer_hide (buffer); gui_buffer_hide (buffer);
@@ -2635,27 +2661,37 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
} }
else if (strcmp (property, "print_hooks_enabled") == 0) else if (strcmp (property, "print_hooks_enabled") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
buffer->print_hooks_enabled = (number) ? 1 : 0; buffer->print_hooks_enabled = (number) ? 1 : 0;
} }
else if (strcmp (property, "day_change") == 0) else if (strcmp (property, "day_change") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_day_change (buffer, number); gui_buffer_set_day_change (buffer, number);
} }
else if (strcmp (property, "clear") == 0) else if (strcmp (property, "clear") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
buffer->clear = (number) ? 1 : 0; buffer->clear = (number) ? 1 : 0;
} }
else if (strcmp (property, "filter") == 0) else if (strcmp (property, "filter") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_filter (buffer, number); gui_buffer_set_filter (buffer, number);
} }
else if (strcmp (property, "number") == 0) else if (strcmp (property, "number") == 0)
{ {
if (util_parse_int (value, 10, &number) && (number >= 1)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0] && (number >= 1))
gui_buffer_move_to_number (buffer, number); gui_buffer_move_to_number (buffer, number);
} }
else if (strcmp (property, "name") == 0) else if (strcmp (property, "name") == 0)
@@ -2687,22 +2723,30 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
} }
else if (strcmp (property, "time_for_each_line") == 0) else if (strcmp (property, "time_for_each_line") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_time_for_each_line (buffer, number); gui_buffer_set_time_for_each_line (buffer, number);
} }
else if (strcmp (property, "nicklist") == 0) else if (strcmp (property, "nicklist") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist (buffer, number); gui_buffer_set_nicklist (buffer, number);
} }
else if (strcmp (property, "nicklist_case_sensitive") == 0) else if (strcmp (property, "nicklist_case_sensitive") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist_case_sensitive (buffer, number); gui_buffer_set_nicklist_case_sensitive (buffer, number);
} }
else if (strcmp (property, "nicklist_display_groups") == 0) else if (strcmp (property, "nicklist_display_groups") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_nicklist_display_groups (buffer, number); gui_buffer_set_nicklist_display_groups (buffer, number);
} }
else if (strcmp (property, "highlight_words") == 0) else if (strcmp (property, "highlight_words") == 0)
@@ -2771,27 +2815,37 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
} }
else if (strcmp (property, "input_pos") == 0) else if (strcmp (property, "input_pos") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_input_set_pos (buffer, number); gui_input_set_pos (buffer, number);
} }
else if (strcmp (property, "input_get_any_user_data") == 0) else if (strcmp (property, "input_get_any_user_data") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_any_user_data (buffer, number); gui_buffer_set_input_get_any_user_data (buffer, number);
} }
else if (strcmp (property, "input_get_unknown_commands") == 0) else if (strcmp (property, "input_get_unknown_commands") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_unknown_commands (buffer, number); gui_buffer_set_input_get_unknown_commands (buffer, number);
} }
else if (strcmp (property, "input_get_empty") == 0) else if (strcmp (property, "input_get_empty") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_get_empty (buffer, number); gui_buffer_set_input_get_empty (buffer, number);
} }
else if (strcmp (property, "input_multiline") == 0) else if (strcmp (property, "input_multiline") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
gui_buffer_set_input_multiline (buffer, number); gui_buffer_set_input_multiline (buffer, number);
} }
else if (strncmp (property, "localvar_set_", 13) == 0) else if (strncmp (property, "localvar_set_", 13) == 0)
@@ -3021,6 +3075,7 @@ gui_buffer_search (const char *plugin, const char *name)
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
int plugin_match, plugin_case_sensitive, name_case_sensitive; int plugin_match, plugin_case_sensitive, name_case_sensitive;
long long id; long long id;
char *error;
if (!name || !name[0]) if (!name || !name[0])
return gui_current_window->buffer; return gui_current_window->buffer;
@@ -3030,9 +3085,9 @@ gui_buffer_search (const char *plugin, const char *name)
if (plugin && (strcmp (plugin, "==id") == 0)) if (plugin && (strcmp (plugin, "==id") == 0))
{ {
if (util_parse_longlong (name, 10, &id)) error = NULL;
return gui_buffer_search_by_id (id); id = strtoll (name, &error, 10);
return NULL; return (error && !error[0]) ? gui_buffer_search_by_id (id) : NULL;
} }
plugin_case_sensitive = 1; plugin_case_sensitive = 1;
@@ -3223,35 +3278,6 @@ gui_buffer_search_by_number (int number)
return NULL; return NULL;
} }
/*
* Search for a buffer by id, full name or partial name.
*/
struct t_gui_buffer *
gui_buffer_search_by_id_name (const char *string)
{
struct t_gui_buffer *ptr_buffer;
long long id;
if (!string || !string[0])
return NULL;
ptr_buffer = NULL;
if (util_parse_longlong (string, 10, &id))
{
ptr_buffer = gui_buffer_search_by_id (id);
}
else
{
ptr_buffer = gui_buffer_search_by_full_name (string);
if (!ptr_buffer)
ptr_buffer = gui_buffer_search_by_partial_name (NULL, string);
}
return ptr_buffer;
}
/* /*
* Search for a buffer by id, number, full name or partial name. * Search for a buffer by id, number, full name or partial name.
*/ */
@@ -3261,13 +3287,16 @@ gui_buffer_search_by_id_number_name (const char *string)
{ {
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
long long number; long long number;
char *error;
if (!string || !string[0]) if (!string)
return NULL; return NULL;
ptr_buffer = NULL; ptr_buffer = NULL;
if (util_parse_longlong (string, 10, &number)) error = NULL;
number = strtoll (string, &error, 10);
if (error && !error[0])
{ {
ptr_buffer = gui_buffer_search_by_id (number); ptr_buffer = gui_buffer_search_by_id (number);
if (!ptr_buffer) if (!ptr_buffer)
-1
View File
@@ -416,7 +416,6 @@ extern struct t_gui_buffer *gui_buffer_search (const char *plugin, const char *n
extern struct t_gui_buffer *gui_buffer_search_by_partial_name (const char *plugin, extern struct t_gui_buffer *gui_buffer_search_by_partial_name (const char *plugin,
const char *name); const char *name);
extern struct t_gui_buffer *gui_buffer_search_by_number (int number); extern struct t_gui_buffer *gui_buffer_search_by_number (int number);
extern struct t_gui_buffer *gui_buffer_search_by_id_name (const char *string);
extern struct t_gui_buffer *gui_buffer_search_by_id_number_name (const char *string); extern struct t_gui_buffer *gui_buffer_search_by_id_number_name (const char *string);
extern int gui_buffer_count_merged_buffers (int number); extern int gui_buffer_count_merged_buffers (int number);
extern void gui_buffer_clear (struct t_gui_buffer *buffer); extern void gui_buffer_clear (struct t_gui_buffer *buffer);
+9 -5
View File
@@ -118,8 +118,8 @@ gui_chat_init (void)
void void
gui_chat_prefix_build (void) gui_chat_prefix_build (void)
{ {
const char *ptr_prefix, *pos_color; const char *ptr_prefix;
char prefix[512]; char prefix[512], *pos_color;
int prefix_color[GUI_CHAT_NUM_PREFIXES] = int prefix_color[GUI_CHAT_NUM_PREFIXES] =
{ GUI_COLOR_CHAT_PREFIX_ERROR, GUI_COLOR_CHAT_PREFIX_NETWORK, { GUI_COLOR_CHAT_PREFIX_ERROR, GUI_COLOR_CHAT_PREFIX_NETWORK,
GUI_COLOR_CHAT_PREFIX_ACTION, GUI_COLOR_CHAT_PREFIX_JOIN, GUI_COLOR_CHAT_PREFIX_ACTION, GUI_COLOR_CHAT_PREFIX_JOIN,
@@ -1400,7 +1400,7 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
struct timeval tv; struct timeval tv;
struct t_gui_line *ptr_line; struct t_gui_line *ptr_line;
int is_nick, rc; int is_nick, rc;
char str_time[128], *str; char str_time[128], *str, *error;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -1415,7 +1415,9 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
hashtable_get (hashtable, "_chat_line_date") : NULL; hashtable_get (hashtable, "_chat_line_date") : NULL;
if (ptr_date) if (ptr_date)
{ {
if (util_parse_longlong (ptr_date, 10, &number)) error = NULL;
number = strtoll (ptr_date, &error, 10);
if (error && !error[0])
{ {
tv.tv_sec = (time_t)number; tv.tv_sec = (time_t)number;
tv.tv_usec = 0; tv.tv_usec = 0;
@@ -1423,7 +1425,9 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
hashtable_get (hashtable, "_chat_line_date_usec") : NULL; hashtable_get (hashtable, "_chat_line_date_usec") : NULL;
if (ptr_date_usec) if (ptr_date_usec)
{ {
if (util_parse_longlong (ptr_date_usec, 10, &number)) error = NULL;
number = strtoll (ptr_date_usec, &error, 10);
if (error && !error[0])
tv.tv_usec = (long)number; tv.tv_usec = (long)number;
} }
util_strftimeval (str_time, sizeof (str_time), util_strftimeval (str_time, sizeof (str_time),
+41 -17
View File
@@ -41,7 +41,6 @@
#include "../core/core-list.h" #include "../core/core-list.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-utf8.h" #include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-color.h" #include "gui-color.h"
#include "gui-chat.h" #include "gui-chat.h"
@@ -171,7 +170,8 @@ gui_color_search_config (const char *color_name)
/* search in any configuration file (example: "irc.color.message_quit") */ /* search in any configuration file (example: "irc.color.message_quit") */
if (strchr (color_name, '.')) if (strchr (color_name, '.'))
{ {
config_file_search_with_string (color_name, NULL, NULL, &ptr_option, NULL); config_file_search_with_string (color_name, NULL, NULL, &ptr_option,
NULL);
if (ptr_option) if (ptr_option)
return gui_color_from_option (ptr_option); return gui_color_from_option (ptr_option);
} }
@@ -255,8 +255,8 @@ gui_color_get_custom (const char *color_name)
static char color[32][96]; static char color[32][96];
static int index_color = 0; static int index_color = 0;
char color_fg[32], color_bg[32]; char color_fg[32], color_bg[32];
char *str_fg, *color_attr; char *pos_delim, *str_fg, *pos_bg, *error, *color_attr;
const char *ptr_color_name, *pos_delim, *pos_bg; const char *ptr_color_name;
/* attribute or other color name (GUI dependent) */ /* attribute or other color name (GUI dependent) */
index_color = (index_color + 1) % 32; index_color = (index_color + 1) % 32;
@@ -439,7 +439,9 @@ gui_color_get_custom (const char *color_name)
fg_term = gui_color_palette_get_alias (str_fg); fg_term = gui_color_palette_get_alias (str_fg);
if (fg_term < 0) if (fg_term < 0)
{ {
if (util_parse_int (str_fg, 10, &term_color)) error = NULL;
term_color = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
{ {
fg_term = term_color; fg_term = term_color;
if (fg_term < 0) if (fg_term < 0)
@@ -456,7 +458,9 @@ gui_color_get_custom (const char *color_name)
bg_term = gui_color_palette_get_alias (pos_bg); bg_term = gui_color_palette_get_alias (pos_bg);
if (bg_term < 0) if (bg_term < 0)
{ {
if (util_parse_int (pos_bg, 10, &term_color)) error = NULL;
term_color = (int)strtol (pos_bg, &error, 10);
if (error && !error[0])
{ {
bg_term = term_color; bg_term = term_color;
if (bg_term < 0) if (bg_term < 0)
@@ -1283,7 +1287,7 @@ char *
gui_color_encode_ansi (const char *string) gui_color_encode_ansi (const char *string)
{ {
const unsigned char *ptr_string; const unsigned char *ptr_string;
char **out, str_concat[128], str_color[8]; char **out, str_concat[128], str_color[8], *error;
int flag, color, length, ansi_color, fg, bg, attrs; int flag, color, length, ansi_color, fg, bg, attrs;
if (!string) if (!string)
@@ -1317,7 +1321,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 5); memcpy (str_color, ptr_string, 5);
str_color[5] = '\0'; str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm", "\x1B[38;5;%dm",
@@ -1338,7 +1344,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 2); memcpy (str_color, ptr_string, 2);
str_color[2] = '\0'; str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
ansi_color = gui_color_weechat_to_ansi (color); ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
@@ -1363,7 +1371,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 5); memcpy (str_color, ptr_string, 5);
str_color[5] = '\0'; str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
"\x1B[48;5;%dm", "\x1B[48;5;%dm",
@@ -1379,7 +1389,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 2); memcpy (str_color, ptr_string, 2);
str_color[2] = '\0'; str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
ansi_color = gui_color_weechat_to_ansi (color); ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
@@ -1409,7 +1421,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 5); memcpy (str_color, ptr_string, 5);
str_color[5] = '\0'; str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm", "\x1B[38;5;%dm",
@@ -1430,7 +1444,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 2); memcpy (str_color, ptr_string, 2);
str_color[2] = '\0'; str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
ansi_color = gui_color_weechat_to_ansi (color); ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
@@ -1461,7 +1477,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 5); memcpy (str_color, ptr_string, 5);
str_color[5] = '\0'; str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
"\x1B[48;5;%dm", "\x1B[48;5;%dm",
@@ -1478,7 +1496,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 2); memcpy (str_color, ptr_string, 2);
str_color[2] = '\0'; str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
ansi_color = gui_color_weechat_to_ansi (color); ansi_color = gui_color_weechat_to_ansi (color);
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
@@ -1502,7 +1522,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 5); memcpy (str_color, ptr_string, 5);
str_color[5] = '\0'; str_color[5] = '\0';
if (util_parse_int (str_color, 10, &color)) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0])
{ {
snprintf (str_concat, sizeof (str_concat), snprintf (str_concat, sizeof (str_concat),
"\x1B[38;5;%dm", "\x1B[38;5;%dm",
@@ -1574,7 +1596,9 @@ gui_color_encode_ansi (const char *string)
{ {
memcpy (str_color, ptr_string, 2); memcpy (str_color, ptr_string, 2);
str_color[2] = '\0'; str_color[2] = '\0';
if (util_parse_int (str_color, 10, &color) error = NULL;
color = (int)strtol (str_color, &error, 10);
if (error && !error[0]
&& (color >= 0) && (color >= 0)
&& (color < GUI_COLOR_NUM_COLORS)) && (color < GUI_COLOR_NUM_COLORS))
{ {
+2 -2
View File
@@ -366,8 +366,8 @@ gui_filter_new (int enabled, const char *name, const char *buffer_name,
{ {
struct t_gui_filter *new_filter; struct t_gui_filter *new_filter;
regex_t *regex1, *regex2; regex_t *regex1, *regex2;
char *regex_prefix, buf[512], str_error[1024]; char *pos_tab, *regex_prefix, buf[512], str_error[1024];
const char *ptr_start_regex, *pos_regex_message, *pos_tab; const char *ptr_start_regex, *pos_regex_message;
int rc; int rc;
if (!name || !buffer_name || !tags || !regex) if (!name || !buffer_name || !tags || !regex)
+9 -5
View File
@@ -32,7 +32,6 @@
#include "../core/core-hashtable.h" #include "../core/core-hashtable.h"
#include "../core/core-hook.h" #include "../core/core-hook.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-bar.h" #include "gui-bar.h"
#include "gui-bar-window.h" #include "gui-bar-window.h"
@@ -281,10 +280,11 @@ gui_focus_info_hashtable_gui_focus_info_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
struct t_hashtable *hashtable) struct t_hashtable *hashtable)
{ {
struct t_gui_focus_info *focus_info; char *error;
struct t_hashtable *focus_hashtable, *ret_hashtable;
const char *ptr_value; const char *ptr_value;
int x, y; int x, y;
struct t_gui_focus_info *focus_info;
struct t_hashtable *focus_hashtable, *ret_hashtable;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -298,13 +298,17 @@ gui_focus_info_hashtable_gui_focus_info_cb (const void *pointer, void *data,
ptr_value = hashtable_get (hashtable, "x"); ptr_value = hashtable_get (hashtable, "x");
if (!ptr_value) if (!ptr_value)
return NULL; return NULL;
if (!util_parse_int (ptr_value, 10, &x)) error = NULL;
x = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return NULL; return NULL;
ptr_value = hashtable_get (hashtable, "y"); ptr_value = hashtable_get (hashtable, "y");
if (!ptr_value) if (!ptr_value)
return NULL; return NULL;
if (!util_parse_int (ptr_value, 10, &y)) error = NULL;
y = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return NULL; return NULL;
/* get focus info */ /* get focus info */
+7 -3
View File
@@ -623,8 +623,10 @@ void
gui_hotlist_clear_level_string (struct t_gui_buffer *buffer, gui_hotlist_clear_level_string (struct t_gui_buffer *buffer,
const char *str_level_mask) const char *str_level_mask)
{ {
long level_mask;
char *error;
struct t_gui_hotlist *ptr_hotlist; struct t_gui_hotlist *ptr_hotlist;
int level_mask, priority; int priority;
if (str_level_mask) if (str_level_mask)
{ {
@@ -663,9 +665,11 @@ gui_hotlist_clear_level_string (struct t_gui_buffer *buffer,
else else
{ {
/* clear hotlist using a mask of levels */ /* clear hotlist using a mask of levels */
if (util_parse_int (str_level_mask, 10, &level_mask) && (level_mask > 0)) error = NULL;
level_mask = strtol (str_level_mask, &error, 10);
if (error && !error[0] && (level_mask > 0))
{ {
gui_hotlist_clear (level_mask); gui_hotlist_clear ((int)level_mask);
gui_hotlist_initial_buffer = buffer; gui_hotlist_initial_buffer = buffer;
} }
} }
+6 -4
View File
@@ -44,7 +44,6 @@
#include "../core/core-log.h" #include "../core/core-log.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-utf8.h" #include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-key.h" #include "gui-key.h"
#include "gui-bar.h" #include "gui-bar.h"
@@ -194,7 +193,8 @@ gui_key_get_current_context (void)
void void
gui_key_grab_init (int grab_command, const char *delay) gui_key_grab_init (int grab_command, const char *delay)
{ {
int milliseconds; long milliseconds;
char *error;
gui_key_grab = 1; gui_key_grab = 1;
gui_key_grab_count = 0; gui_key_grab_count = 0;
@@ -203,7 +203,9 @@ gui_key_grab_init (int grab_command, const char *delay)
gui_key_grab_delay = CONFIG_INTEGER(config_look_key_grab_delay); gui_key_grab_delay = CONFIG_INTEGER(config_look_key_grab_delay);
if (delay != NULL) if (delay != NULL)
{ {
if (util_parse_int (delay, 10, &milliseconds) && (milliseconds >= 0)) error = NULL;
milliseconds = strtol (delay, &error, 10);
if (error && !error[0] && (milliseconds >= 0))
{ {
gui_key_grab_delay = milliseconds; gui_key_grab_delay = milliseconds;
if (gui_key_grab_delay == 0) if (gui_key_grab_delay == 0)
@@ -1074,7 +1076,7 @@ gui_key_set_area_type_name (const char *area,
int *area_type, char **area_name) int *area_type, char **area_name)
{ {
int focus, length; int focus, length;
const char *pos_end; char *pos_end;
for (focus = 0; focus < GUI_KEY_NUM_FOCUS; focus++) for (focus = 0; focus < GUI_KEY_NUM_FOCUS; focus++)
{ {
+28 -24
View File
@@ -39,7 +39,6 @@
#include "../core/core-infolist.h" #include "../core/core-infolist.h"
#include "../core/core-log.h" #include "../core/core-log.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-line.h" #include "gui-line.h"
#include "gui-buffer.h" #include "gui-buffer.h"
@@ -1675,10 +1674,10 @@ gui_line_hook_update (struct t_gui_line *line,
const char *ptr_value, *ptr_value2; const char *ptr_value, *ptr_value2;
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
unsigned long value_pointer; unsigned long value_pointer;
long long value_longlong; long value;
char *new_message, *pos_newline; char *error, *new_message, *pos_newline;
int rc, tags_updated, notify_level_updated, highlight_updated; int rc, tags_updated, notify_level_updated, highlight_updated;
int max_notify_level, value; int max_notify_level;
tags_updated = 0; tags_updated = 0;
notify_level_updated = 0; notify_level_updated = 0;
@@ -1731,7 +1730,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value = hashtable_get (hashtable2, "y"); ptr_value = hashtable_get (hashtable2, "y");
if (ptr_value) if (ptr_value)
{ {
if (util_parse_int (ptr_value, 10, &value) && (value >= 0)) error = NULL;
value = strtol (ptr_value, &error, 10);
if (error && !error[0] && (value >= 0))
line->data->y = value; line->data->y = value;
} }
} }
@@ -1739,8 +1740,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "notify_level"); ptr_value2 = hashtable_get (hashtable2, "notify_level");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_int (ptr_value2, 10, &value) error = NULL;
&& (value >= -1) && (value <= GUI_HOTLIST_MAX)) value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= -1) && (value <= GUI_HOTLIST_MAX))
{ {
notify_level_updated = 1; notify_level_updated = 1;
line->data->notify_level = value; line->data->notify_level = value;
@@ -1750,7 +1752,9 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "highlight"); ptr_value2 = hashtable_get (hashtable2, "highlight");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_int (ptr_value2, 10, &value)) error = NULL;
value = strtol (ptr_value2, &error, 10);
if (error && !error[0])
{ {
highlight_updated = 1; highlight_updated = 1;
line->data->highlight = (value) ? 1 : 0; line->data->highlight = (value) ? 1 : 0;
@@ -1760,10 +1764,11 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date"); ptr_value2 = hashtable_get (hashtable2, "date");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_longlong (ptr_value2, 10, &value_longlong) error = NULL;
&& (value_longlong >= 0)) value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0))
{ {
line->data->date = (time_t)value_longlong; line->data->date = (time_t)value;
free (line->data->str_time); free (line->data->str_time);
line->data->str_time = gui_chat_get_time_string ( line->data->str_time = gui_chat_get_time_string (
line->data->date, line->data->date,
@@ -1775,10 +1780,11 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date_usec"); ptr_value2 = hashtable_get (hashtable2, "date_usec");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_int (ptr_value2, 10, &value) error = NULL;
&& (value >= 0) && (value <= 999999)) value = strtol (ptr_value2, &error, 10);
if (error && !error[0] && (value >= 0) && (value <= 999999))
{ {
line->data->date_usec = value; line->data->date_usec = (int)value;
free (line->data->str_time); free (line->data->str_time);
line->data->str_time = gui_chat_get_time_string ( line->data->str_time = gui_chat_get_time_string (
line->data->date, line->data->date,
@@ -1790,21 +1796,19 @@ gui_line_hook_update (struct t_gui_line *line,
ptr_value2 = hashtable_get (hashtable2, "date_printed"); ptr_value2 = hashtable_get (hashtable2, "date_printed");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_longlong (ptr_value2, 10, &value_longlong) error = NULL;
&& (value_longlong >= 0)) value = strtol (ptr_value2, &error, 10);
{ if (error && !error[0] && (value >= 0))
line->data->date_printed = (time_t)value_longlong; line->data->date_printed = (time_t)value;
}
} }
ptr_value2 = hashtable_get (hashtable2, "date_usec_printed"); ptr_value2 = hashtable_get (hashtable2, "date_usec_printed");
if (ptr_value2) if (ptr_value2)
{ {
if (util_parse_int (ptr_value2, 10, &value) error = NULL;
&& (value >= 0) && (value <= 999999)) value = strtol (ptr_value2, &error, 10);
{ if (error && !error[0] && (value >= 0) && (value <= 999999))
line->data->date_usec_printed = value; line->data->date_usec_printed = (int)value;
}
} }
ptr_value = hashtable_get (hashtable, "str_time"); ptr_value = hashtable_get (hashtable, "str_time");
+22 -9
View File
@@ -44,7 +44,6 @@
#include "../core/core-log.h" #include "../core/core-log.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-utf8.h" #include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-nicklist.h" #include "gui-nicklist.h"
#include "gui-buffer.h" #include "gui-buffer.h"
@@ -276,6 +275,7 @@ gui_nicklist_search_group (struct t_gui_buffer *buffer,
const char *name) const char *name)
{ {
const char *ptr_name; const char *ptr_name;
char *error;
long long id; long long id;
if ((!buffer && !from_group) if ((!buffer && !from_group)
@@ -287,7 +287,8 @@ gui_nicklist_search_group (struct t_gui_buffer *buffer,
if (strncmp (name, "==id:", 5) == 0) if (strncmp (name, "==id:", 5) == 0)
{ {
if (util_parse_longlong (name + 5, 10, &id)) id = strtoll (name + 5, &error, 10);
if (error && !error[0])
return gui_nicklist_search_group_id (buffer, from_group, id); return gui_nicklist_search_group_id (buffer, from_group, id);
} }
@@ -569,6 +570,7 @@ gui_nicklist_search_nick (struct t_gui_buffer *buffer,
const char *name) const char *name)
{ {
long long id; long long id;
char *error;
if ((!buffer && !from_group) if ((!buffer && !from_group)
|| !name || !name
@@ -579,7 +581,8 @@ gui_nicklist_search_nick (struct t_gui_buffer *buffer,
if (strncmp (name, "==id:", 5) == 0) if (strncmp (name, "==id:", 5) == 0)
{ {
if (util_parse_longlong (name + 5, 10, &id)) id = strtoll (name + 5, &error, 10);
if (error && !error[0])
return gui_nicklist_search_nick_id (buffer, from_group, id); return gui_nicklist_search_nick_id (buffer, from_group, id);
} }
@@ -1033,7 +1036,9 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
const char *property, const char *value) const char *property, const char *value)
{ {
long long id; long long id;
int group_changed, number; long number;
char *error;
int group_changed;
if (!buffer || !group || !property || !value) if (!buffer || !group || !property || !value)
return; return;
@@ -1042,7 +1047,8 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
if (strcmp (property, "id") == 0) if (strcmp (property, "id") == 0)
{ {
if (util_parse_longlong (value, 10, &id) id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != group->id) && (id != group->id)
&& !gui_nicklist_search_group_id (buffer, NULL, id)) && !gui_nicklist_search_group_id (buffer, NULL, id))
{ {
@@ -1058,7 +1064,9 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
} }
else if (strcmp (property, "visible") == 0) else if (strcmp (property, "visible") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
group->visible = (number) ? 1 : 0; group->visible = (number) ? 1 : 0;
group_changed = 1; group_changed = 1;
} }
@@ -1150,7 +1158,9 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
const char *property, const char *value) const char *property, const char *value)
{ {
long long id; long long id;
int nick_changed, number; long number;
char *error;
int nick_changed;
if (!buffer || !nick || !property || !value) if (!buffer || !nick || !property || !value)
return; return;
@@ -1159,7 +1169,8 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
if (strcmp (property, "id") == 0) if (strcmp (property, "id") == 0)
{ {
if (util_parse_longlong (value, 10, &id) id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != nick->id) && (id != nick->id)
&& !gui_nicklist_search_nick_id (buffer, NULL, id)) && !gui_nicklist_search_nick_id (buffer, NULL, id))
{ {
@@ -1187,7 +1198,9 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
} }
else if (strcmp (property, "visible") == 0) else if (strcmp (property, "visible") == 0)
{ {
if (util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (error && !error[0])
nick->visible = (number) ? 1 : 0; nick->visible = (number) ? 1 : 0;
nick_changed = 1; nick_changed = 1;
} }
+10 -6
View File
@@ -43,7 +43,6 @@
#include "../core/core-log.h" #include "../core/core-log.h"
#include "../core/core-string.h" #include "../core/core-string.h"
#include "../core/core-utf8.h" #include "../core/core-utf8.h"
#include "../core/core-util.h"
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#include "gui-window.h" #include "gui-window.h"
#include "gui-bar.h" #include "gui-bar.h"
@@ -1183,7 +1182,7 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
int direction, stop, count_msg, scroll_from_end_free_buffer; int direction, stop, count_msg, scroll_from_end_free_buffer;
char time_letter, saved_char; char time_letter, saved_char;
time_t old_date, diff_date; time_t old_date, diff_date;
char *pos; char *pos, *error;
long number; long number;
struct t_gui_line *ptr_line; struct t_gui_line *ptr_line;
struct tm *date_tmp, line_date, old_line_date; struct tm *date_tmp, line_date, old_line_date;
@@ -1232,7 +1231,9 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
time_letter = pos[0]; time_letter = pos[0];
saved_char = pos[0]; saved_char = pos[0];
pos[0] = '\0'; pos[0] = '\0';
if (!util_parse_long (scroll, 10, &number)) error = NULL;
number = strtol (scroll, &error, 10);
if (!error || error[0])
number = 0; number = 0;
pos[0] = saved_char; pos[0] = saved_char;
} }
@@ -1429,8 +1430,9 @@ gui_window_scroll (struct t_gui_window *window, char *scroll)
void void
gui_window_scroll_horiz (struct t_gui_window *window, char *scroll) gui_window_scroll_horiz (struct t_gui_window *window, char *scroll)
{ {
int direction, percentage, start_col, number; int direction, percentage, start_col;
char saved_char, *pos; char saved_char, *pos, *error;
long number;
if (!window || !window->buffer->lines->first_line) if (!window || !window->buffer->lines->first_line)
return; return;
@@ -1462,7 +1464,9 @@ gui_window_scroll_horiz (struct t_gui_window *window, char *scroll)
percentage = (pos[0] == '%') ? 1 : 0; percentage = (pos[0] == '%') ? 1 : 0;
saved_char = pos[0]; saved_char = pos[0];
pos[0] = '\0'; pos[0] = '\0';
if (!util_parse_int (scroll, 10, &number)) error = NULL;
number = strtol (scroll, &error, 10);
if (!error || error[0])
number = 0; number = 0;
pos[0] = saved_char; pos[0] = saved_char;
} }
+20 -9
View File
@@ -40,8 +40,9 @@ struct t_hashtable *
buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info) buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
{ {
const char *ptr_bar_item_name, *ptr_bar_item_line, *keys, *ptr_value; const char *ptr_bar_item_name, *ptr_bar_item_line, *keys, *ptr_value;
char str_value[128], **list_keys; long item_line;
int i, item_index, item_line, num_keys, type; char *error, str_value[128], **list_keys;
int i, item_index, num_keys, type;
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
/* make C compiler happy */ /* make C compiler happy */
@@ -63,10 +64,15 @@ buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
ptr_bar_item_line = weechat_hashtable_get (info, "_bar_item_line"); ptr_bar_item_line = weechat_hashtable_get (info, "_bar_item_line");
if (!ptr_bar_item_line) if (!ptr_bar_item_line)
goto end; goto end;
if (!weechat_util_parse_int (ptr_bar_item_line, 10, &item_line) error = NULL;
|| (item_line < 0) item_line = strtol (ptr_bar_item_line, &error, 10);
|| (item_line >= weechat_arraylist_size (buflist_list_buffers[item_index]))) if (!error || error[0])
goto end; goto end;
if ((item_line < 0)
|| (item_line >= weechat_arraylist_size (buflist_list_buffers[item_index])))
{
goto end;
}
/* check if buffer pointer is still valid */ /* check if buffer pointer is still valid */
ptr_buffer = weechat_arraylist_get (buflist_list_buffers[item_index], ptr_buffer = weechat_arraylist_get (buflist_list_buffers[item_index],
@@ -327,9 +333,10 @@ buflist_hsignal_cb (const void *pointer, void *data, const char *signal,
const char *ptr_key, *ptr_pointer, *ptr_number, *ptr_number2; const char *ptr_key, *ptr_pointer, *ptr_number, *ptr_number2;
const char *ptr_full_name; const char *ptr_full_name;
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
char str_command[1024]; char *error, str_command[1024];
long number, number2;
unsigned long value; unsigned long value;
int rc, current_buffer_number, number, number2; int rc, current_buffer_number;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -353,9 +360,13 @@ buflist_hsignal_cb (const void *pointer, void *data, const char *signal,
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
ptr_buffer = (struct t_gui_buffer *)value; ptr_buffer = (struct t_gui_buffer *)value;
if (!weechat_util_parse_int (ptr_number, 10, &number)) error = NULL;
number = strtol (ptr_number, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
if (!weechat_util_parse_int (ptr_number2, 10, &number2)) error = NULL;
number2 = strtol (ptr_number2, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK; return WEECHAT_RC_OK;
current_buffer_number = weechat_buffer_get_integer ( current_buffer_number = weechat_buffer_get_integer (
+5 -3
View File
@@ -185,7 +185,8 @@ exec_command_parse_options (struct t_exec_cmd_options *cmd_options,
int argc, char **argv, int start_arg, int argc, char **argv, int start_arg,
int set_command_index) int set_command_index)
{ {
int i, j, end, length, length_total, timeout; int i, j, end, length, length_total;
char *error;
for (i = start_arg; i < argc; i++) for (i = start_arg; i < argc; i++)
{ {
@@ -317,9 +318,10 @@ exec_command_parse_options (struct t_exec_cmd_options *cmd_options,
if (i + 1 >= argc) if (i + 1 >= argc)
return 0; return 0;
i++; i++;
if (!weechat_util_parse_int (argv[i], 10, &timeout)) error = NULL;
cmd_options->timeout = strtol (argv[i], &error, 10);
if (!error || error[0])
return 0; return 0;
cmd_options->timeout = timeout;
} }
else if (weechat_strcmp (argv[i], "-name") == 0) else if (weechat_strcmp (argv[i], "-name") == 0)
{ {
+4 -1
View File
@@ -85,12 +85,15 @@ struct t_exec_cmd *
exec_search_by_id (const char *id) exec_search_by_id (const char *id)
{ {
struct t_exec_cmd* ptr_exec_cmd; struct t_exec_cmd* ptr_exec_cmd;
char *error;
long number; long number;
if (!id) if (!id)
return NULL; return NULL;
if (!weechat_util_parse_long (id, 10, &number)) error = NULL;
number = strtol (id, &error, 10);
if (!error || error[0])
number = -1; number = -1;
for (ptr_exec_cmd = exec_cmds; ptr_exec_cmd; for (ptr_exec_cmd = exec_cmds; ptr_exec_cmd;
+5 -2
View File
@@ -60,12 +60,15 @@ int
fset_command_get_int_arg (int argc, char **argv, int arg_number, fset_command_get_int_arg (int argc, char **argv, int arg_number,
int default_value) int default_value)
{ {
int value; long value;
char *error;
value = default_value; value = default_value;
if (argc > arg_number) if (argc > arg_number)
{ {
if (!weechat_util_parse_int (argv[arg_number], 10, &value)) error = NULL;
value = strtol (argv[arg_number], &error, 10);
if (!error || error[0])
value = default_value; value = default_value;
} }
return (int)value; return (int)value;
+15 -9
View File
@@ -42,10 +42,11 @@ struct t_hashtable *
fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info) fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
{ {
const char *buffer; const char *buffer;
int rc, format_number, y, option_index; int rc, format_number;
unsigned long value; unsigned long value;
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
char str_value[128]; long y, option_index;
char *error, str_value[128];
struct t_fset_option *ptr_fset_option; struct t_fset_option *ptr_fset_option;
/* make C compiler happy */ /* make C compiler happy */
@@ -68,11 +69,13 @@ fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
if (!ptr_buffer || (ptr_buffer != fset_buffer)) if (!ptr_buffer || (ptr_buffer != fset_buffer))
return info; return info;
if (!weechat_util_parse_int (weechat_hashtable_get (info, "_chat_line_y"), 10, &y) error = NULL;
|| (y < 0)) y = strtol (weechat_hashtable_get (info, "_chat_line_y"), &error, 10);
{ if (!error || error[0])
return info;
if (y < 0)
return info; return info;
}
format_number = weechat_config_integer (fset_config_look_format_number); format_number = weechat_config_integer (fset_config_look_format_number);
option_index = y / fset_config_format_option_num_lines[format_number - 1]; option_index = y / fset_config_format_option_num_lines[format_number - 1];
@@ -84,7 +87,7 @@ fset_mouse_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
snprintf (str_value, sizeof (str_value), snprintf (str_value, sizeof (str_value),
"0x%lx", (unsigned long)ptr_fset_option); "0x%lx", (unsigned long)ptr_fset_option);
weechat_hashtable_set (info, "fset_option", str_value); weechat_hashtable_set (info, "fset_option", str_value);
snprintf (str_value, sizeof (str_value), "%d", option_index); snprintf (str_value, sizeof (str_value), "%ld", option_index);
weechat_hashtable_set (info, "fset_option_index", str_value); weechat_hashtable_set (info, "fset_option_index", str_value);
weechat_hashtable_set (info, "fset_option_name", ptr_fset_option->name); weechat_hashtable_set (info, "fset_option_name", ptr_fset_option->name);
weechat_hashtable_set (info, "fset_option_parent_name", ptr_fset_option->parent_name); weechat_hashtable_set (info, "fset_option_parent_name", ptr_fset_option->parent_name);
@@ -134,12 +137,15 @@ fset_mouse_get_hashtable_int (struct t_hashtable *hashtable,
int default_value) int default_value)
{ {
const char *ptr_value; const char *ptr_value;
char *error;
int value; int value;
ptr_value = weechat_hashtable_get (hashtable, variable); ptr_value = weechat_hashtable_get (hashtable, variable);
if (!ptr_value) if (!ptr_value)
return default_value; return default_value;
if (!weechat_util_parse_int (ptr_value, 10, &value)) error = NULL;
value = (int)strtol (ptr_value, &error, 10);
if (!error || error[0])
return default_value; return default_value;
return value; return value;
@@ -331,7 +337,7 @@ fset_mouse_init (void)
weechat_hashtable_set ( weechat_hashtable_set (
keys, keys,
"@chat(" FSET_PLUGIN_NAME "." FSET_BUFFER_NAME "):button1", "@chat(" FSET_PLUGIN_NAME "." FSET_BUFFER_NAME "):button1",
"/window ${_window_number};/mute /fset -go ${fset_option_index}"); "/window ${_window_number};/fset -go ${fset_option_index}");
weechat_hashtable_set ( weechat_hashtable_set (
keys, keys,
"@chat(" FSET_PLUGIN_NAME "." FSET_BUFFER_NAME "):button2*", "@chat(" FSET_PLUGIN_NAME "." FSET_BUFFER_NAME "):button2*",
+28 -15
View File
@@ -96,8 +96,8 @@ char *irc_color_string_decoded[32];
int int
irc_color_convert_rgb2term (long rgb) irc_color_convert_rgb2term (long rgb)
{ {
char str_color[64], *info_color; char str_color[64], *info_color, *error;
int number; long number;
if (rgb < 0) if (rgb < 0)
return -1; return -1;
@@ -111,7 +111,9 @@ irc_color_convert_rgb2term (long rgb)
return -1; return -1;
} }
if (!weechat_util_parse_int (info_color, 10, &number)) error = NULL;
number = strtol (info_color, &error, 10);
if (!error || error[0])
{ {
free (info_color); free (info_color);
return -1; return -1;
@@ -119,7 +121,7 @@ irc_color_convert_rgb2term (long rgb)
free (info_color); free (info_color);
return number; return (int)number;
} }
/* /*
@@ -131,8 +133,8 @@ irc_color_convert_rgb2term (long rgb)
int int
irc_color_convert_rgb2irc (long rgb) irc_color_convert_rgb2irc (long rgb)
{ {
char str_color[64], *info_color; char str_color[64], *error, *info_color;
int number; long number;
if (rgb < 0) if (rgb < 0)
return -1; return -1;
@@ -149,7 +151,9 @@ irc_color_convert_rgb2irc (long rgb)
return -1; return -1;
} }
if (!weechat_util_parse_int (info_color, 10, &number) error = NULL;
number = strtol (info_color, &error, 10);
if (!error || error[0]
|| (number < 0) || (number >= IRC_COLOR_TERM2IRC_NUM_COLORS)) || (number < 0) || (number >= IRC_COLOR_TERM2IRC_NUM_COLORS))
{ {
free (info_color); free (info_color);
@@ -170,7 +174,7 @@ irc_color_convert_rgb2irc (long rgb)
int int
irc_color_convert_term2irc (int color) irc_color_convert_term2irc (int color)
{ {
char str_color[64], *info_color; char str_color[64], *error, *info_color;
long number; long number;
snprintf (str_color, sizeof (str_color), "%d", color); snprintf (str_color, sizeof (str_color), "%d", color);
@@ -182,8 +186,9 @@ irc_color_convert_term2irc (int color)
return -1; return -1;
} }
if (!weechat_util_parse_long (info_color, 10, &number) error = NULL;
|| (number < 0) || (number > 0xFFFFFF)) number = strtol (info_color, &error, 10);
if (!error || error[0] || (number < 0) || (number > 0xFFFFFF))
{ {
free (info_color); free (info_color);
return -1; return -1;
@@ -206,7 +211,7 @@ irc_color_convert_term2irc (int color)
char * char *
irc_color_decode (const char *string, int keep_colors) irc_color_decode (const char *string, int keep_colors)
{ {
char **out; char **out, *error;
char str_fg[16], str_bg[16], str_color[128], str_key[128], str_to_add[128]; char str_fg[16], str_bg[16], str_color[128], str_key[128], str_to_add[128];
const char *remapped_color; const char *remapped_color;
unsigned char *ptr_string; unsigned char *ptr_string;
@@ -332,14 +337,18 @@ irc_color_decode (const char *string, int keep_colors)
bg = -1; bg = -1;
if (str_fg[0]) if (str_fg[0])
{ {
if (weechat_util_parse_int (str_fg, 10, &fg)) error = NULL;
fg = (int)strtol (str_fg, &error, 10);
if (error && !error[0])
fg %= IRC_NUM_COLORS; fg %= IRC_NUM_COLORS;
else else
fg = -1; fg = -1;
} }
if (str_bg[0]) if (str_bg[0])
{ {
if (weechat_util_parse_int (str_bg, 10, &bg)) error = NULL;
bg = (int)strtol (str_bg, &error, 10);
if (error && !error[0])
bg %= IRC_NUM_COLORS; bg %= IRC_NUM_COLORS;
else else
bg = -1; bg = -1;
@@ -413,12 +422,16 @@ irc_color_decode (const char *string, int keep_colors)
bg_rgb = -1; bg_rgb = -1;
if (str_fg[0]) if (str_fg[0])
{ {
if (!weechat_util_parse_long (str_fg, 16, &fg_rgb)) error = NULL;
fg_rgb = strtol (str_fg, &error, 16);
if (!error || error[0])
fg_rgb = -1; fg_rgb = -1;
} }
if (str_bg[0]) if (str_bg[0])
{ {
if (!weechat_util_parse_long (str_bg, 16, &bg_rgb)) error = NULL;
bg_rgb = strtol (str_bg, &error, 16);
if (!error || error[0])
bg_rgb = -1; bg_rgb = -1;
} }
str_fg[0] = '\0'; str_fg[0] = '\0';
+30 -15
View File
@@ -232,8 +232,9 @@ irc_command_mode_nicks (struct t_irc_server *server,
char ** char **
irc_command_mode_masks_convert_ranges (char **argv, int arg_start) irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
{ {
char **str_masks, **masks, *pos, str_number[32]; char **str_masks, **masks, *error1, *error2, *pos, str_number[32];
int i, j, length, added, number1, number2; int i, length, added;
long j, number1, number2;
if (!argv || (arg_start < 0)) if (!argv || (arg_start < 0))
return NULL; return NULL;
@@ -254,8 +255,12 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
&& (argv[i][length - 1] != '-')) && (argv[i][length - 1] != '-'))
{ {
pos[0] = '\0'; pos[0] = '\0';
if (weechat_util_parse_int (argv[i], 10, &number1) error1 = NULL;
&& weechat_util_parse_int (pos + 1, 10, &number2) number1 = strtol (argv[i], &error1, 10);
error2 = NULL;
number2 = strtol (pos + 1, &error2, 10);
if (error1 && !error1[0]
&& error2 && !error2[0]
&& (number1 > 0) && (number1 < 128) && (number1 > 0) && (number1 < 128)
&& (number2 > 0) && (number2 < 128) && (number2 > 0) && (number2 < 128)
&& (number1 < number2)) && (number1 < number2))
@@ -264,7 +269,8 @@ irc_command_mode_masks_convert_ranges (char **argv, int arg_start)
{ {
if ((*str_masks)[0]) if ((*str_masks)[0])
weechat_string_dyn_concat (str_masks, " ", -1); weechat_string_dyn_concat (str_masks, " ", -1);
snprintf (str_number, sizeof (str_number), "%d", j); snprintf (str_number, sizeof (str_number),
"%ld", j);
weechat_string_dyn_concat (str_masks, str_number, -1); weechat_string_dyn_concat (str_masks, str_number, -1);
} }
added = 1; added = 1;
@@ -306,12 +312,14 @@ irc_command_mode_masks (struct t_irc_server *server,
const char *set, const char *mode, const char *set, const char *mode,
char **argv, int pos_masks) char **argv, int pos_masks)
{ {
int max_modes, modes_added, msg_priority, number; int max_modes, modes_added, msg_priority;
char **modes, **masks, *mask; char **modes, **masks, *mask;
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick; struct t_irc_nick *ptr_nick;
struct t_irc_modelist *ptr_modelist; struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item; struct t_irc_modelist_item *ptr_item;
long number;
char *error;
if (irc_mode_get_chanmode_type (server, mode[0]) != 'A') if (irc_mode_get_chanmode_type (server, mode[0]) != 'A')
{ {
@@ -359,7 +367,9 @@ irc_command_mode_masks (struct t_irc_server *server,
/* use modelist item for number arguments */ /* use modelist item for number arguments */
if (ptr_modelist && (set[0] == '-')) if (ptr_modelist && (set[0] == '-'))
{ {
if (weechat_util_parse_int (argv[pos_masks], 10, &number)) error = NULL;
number = strtol (argv[pos_masks], &error, 10);
if (error && !error[0])
{ {
ptr_item = irc_modelist_item_search_number (ptr_modelist, ptr_item = irc_modelist_item_search_number (ptr_modelist,
number - 1); number - 1);
@@ -2612,8 +2622,9 @@ irc_command_ignore_display (struct t_irc_ignore *ignore)
IRC_COMMAND_CALLBACK(ignore) IRC_COMMAND_CALLBACK(ignore)
{ {
struct t_irc_ignore *ptr_ignore; struct t_irc_ignore *ptr_ignore;
char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel; char *mask, *regex, *regex2, *ptr_regex, *pos, *server, *channel, *error;
int length, number, update; int length, update;
long number;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -2756,7 +2767,9 @@ IRC_COMMAND_CALLBACK(ignore)
} }
else else
{ {
if (weechat_util_parse_int (argv[2], 10, &number)) error = NULL;
number = strtol (argv[2], &error, 10);
if (error && !error[0])
{ {
ptr_ignore = irc_ignore_search_by_number (number); ptr_ignore = irc_ignore_search_by_number (number);
if (ptr_ignore) if (ptr_ignore)
@@ -2912,8 +2925,7 @@ void
irc_command_join_server (struct t_irc_server *server, const char *arguments, irc_command_join_server (struct t_irc_server *server, const char *arguments,
int manual_join, int noswitch) int manual_join, int noswitch)
{ {
const char *pos_space, *pos_keys; char *new_args, **channels, **keys, *pos_space, *pos_keys, *pos_channel;
char *new_args, **channels, **keys, *pos_channel;
char *channel_name_lower; char *channel_name_lower;
int i, num_channels, num_keys, length; int i, num_channels, num_keys, length;
time_t time_now; time_t time_now;
@@ -3417,15 +3429,18 @@ int
irc_command_list_get_int_arg (int argc, char **argv, int arg_number, irc_command_list_get_int_arg (int argc, char **argv, int arg_number,
int default_value) int default_value)
{ {
int value; long value;
char *error;
value = default_value; value = default_value;
if (argc > arg_number) if (argc > arg_number)
{ {
if (!weechat_util_parse_int (argv[arg_number], 10, &value)) error = NULL;
value = strtol (argv[arg_number], &error, 10);
if (!error || error[0])
value = default_value; value = default_value;
} }
return value; return (int)value;
} }
/* /*
+2 -3
View File
@@ -470,7 +470,7 @@ irc_completion_modelist_masks_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, struct t_gui_buffer *buffer,
struct t_gui_completion *completion) struct t_gui_completion *completion)
{ {
const char *pos; char *pos;
struct t_irc_modelist *ptr_modelist; struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item; struct t_irc_modelist_item *ptr_item;
@@ -512,8 +512,7 @@ irc_completion_modelist_numbers_cb (const void *pointer, void *data,
struct t_gui_buffer *buffer, struct t_gui_buffer *buffer,
struct t_gui_completion *completion) struct t_gui_completion *completion)
{ {
const char *pos; char *pos, str_number[32];
char str_number[32];
struct t_irc_modelist *ptr_modelist; struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item; struct t_irc_modelist_item *ptr_item;
+15 -13
View File
@@ -201,8 +201,7 @@ struct t_irc_server *
irc_config_get_server_from_option_name (const char *name) irc_config_get_server_from_option_name (const char *name)
{ {
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
const char *pos_option; char *pos_option, *server_name;
char *server_name;
ptr_server = NULL; ptr_server = NULL;
@@ -275,7 +274,7 @@ irc_config_compute_nick_colors (void)
int int
irc_config_display_channel_modes_arguments (const char *modes) irc_config_display_channel_modes_arguments (const char *modes)
{ {
const char *pos_space, *pos; char *pos_space, *pos;
const char *ptr_mode; const char *ptr_mode;
pos_space = strchr (modes, ' '); pos_space = strchr (modes, ' ');
@@ -1288,8 +1287,10 @@ irc_config_server_check_value_cb (const void *pointer, void *data,
struct t_config_option *option, struct t_config_option *option,
const char *value) const char *value)
{ {
int index_option, number, proxy_found; int index_option, proxy_found;
const char *pos_error, *proxy_name; const char *pos_error, *proxy_name;
char *error;
long number;
struct t_infolist *infolist; struct t_infolist *infolist;
/* make C compiler happy */ /* make C compiler happy */
@@ -1362,7 +1363,9 @@ irc_config_server_check_value_cb (const void *pointer, void *data,
case IRC_SERVER_OPTION_SPLIT_MSG_MAX_LENGTH: case IRC_SERVER_OPTION_SPLIT_MSG_MAX_LENGTH:
if (!value || !value[0]) if (!value || !value[0])
break; break;
if (!weechat_util_parse_int (value, 10, &number)) error = NULL;
number = strtol (value, &error, 10);
if (!error || error[0])
{ {
/* /*
* not a valid number, but we return 1 (OK) to let WeeChat * not a valid number, but we return 1 (OK) to let WeeChat
@@ -2808,8 +2811,7 @@ irc_config_server_read_cb (const void *pointer, void *data,
{ {
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
int index_option, rc, i; int index_option, rc, i;
const char *pos_option; char *pos_option, *server_name;
char *server_name;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -2938,9 +2940,9 @@ irc_config_update_cb (const void *pointer, void *data,
int version_read, int version_read,
struct t_hashtable *data_read) struct t_hashtable *data_read)
{ {
const char *ptr_config, *ptr_section, *ptr_option, *ptr_value, *pos_option; const char *ptr_config, *ptr_section, *ptr_option, *ptr_value;
const char *option_autojoin_delay = "autojoin_delay"; const char *option_autojoin_delay = "autojoin_delay";
char *new_option, *pos_new_option, *new_value; char *new_option, *pos_option, *new_value;
int changes, length; int changes, length;
/* make C compiler happy */ /* make C compiler happy */
@@ -2995,11 +2997,11 @@ irc_config_update_cb (const void *pointer, void *data,
new_option = strdup (ptr_option); new_option = strdup (ptr_option);
if (new_option) if (new_option)
{ {
pos_new_option = strrchr (new_option, '.'); pos_option = strrchr (new_option, '.');
if (pos_new_option) if (pos_option)
{ {
pos_new_option++; pos_option++;
memcpy (pos_new_option, "tls", 3); memcpy (pos_option, "tls", 3);
weechat_printf ( weechat_printf (
NULL, NULL,
_("IRC option renamed: \"irc.%s.%s\" => \"irc.%s.%s\""), _("IRC option renamed: \"irc.%s.%s\" => \"irc.%s.%s\""),
+24 -21
View File
@@ -67,8 +67,8 @@ irc_info_info_irc_is_channel_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *pos_channel, *pos_comma; const char *pos_channel;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -106,8 +106,8 @@ irc_info_info_irc_is_nick_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *pos_nick, *pos_comma; const char *pos_nick;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -233,8 +233,8 @@ irc_info_info_irc_buffer_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server, *channel, *host; char *pos_comma, *pos_comma2, *server, *channel, *host;
const char *nick, *pos_comma, *pos_comma2; const char *nick;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
@@ -332,8 +332,8 @@ irc_info_info_irc_server_isupport_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *isupport_value, *pos_comma; const char *isupport_value;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -373,8 +373,8 @@ irc_info_info_irc_server_isupport_value_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *isupport_value, *pos_comma; const char *isupport_value;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -414,8 +414,7 @@ irc_info_info_irc_server_cap_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *pos_comma;
int has_cap; int has_cap;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
@@ -456,8 +455,8 @@ irc_info_info_irc_server_cap_value_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *cap_value, *pos_comma; const char *cap_value;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -497,8 +496,8 @@ irc_info_info_irc_is_message_ignored_cb (const void *pointer, void *data,
const char *info_name, const char *info_name,
const char *arguments) const char *arguments)
{ {
char *server; char *pos_comma, *server;
const char *pos_message, *pos_comma; const char *pos_message;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
/* make C compiler happy */ /* make C compiler happy */
@@ -985,8 +984,9 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data,
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
struct t_irc_modelist *ptr_modelist; struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item; struct t_irc_modelist_item *ptr_item;
char **argv; char **argv, *error;
int argc, number; int argc;
long number;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
@@ -1028,12 +1028,15 @@ irc_info_infolist_irc_modelist_item_cb (const void *pointer, void *data,
} }
if (!obj_pointer && (argc >= 4)) if (!obj_pointer && (argc >= 4))
{ {
if (!weechat_util_parse_int (argv[3], 10, &number) || (number < 0)) error = NULL;
number = strtol (argv[3], &error, 10);
if (!error || error[0] || (number < 0))
{ {
weechat_string_free_split (argv); weechat_string_free_split (argv);
return NULL; return NULL;
} }
obj_pointer = irc_modelist_item_search_number (ptr_modelist, number); obj_pointer = irc_modelist_item_search_number (ptr_modelist,
(int)number);
if (!obj_pointer) if (!obj_pointer)
{ {
weechat_string_free_split (argv); weechat_string_free_split (argv);
@@ -1355,7 +1358,7 @@ irc_info_init (void)
weechat_hook_info ( weechat_hook_info (
"irc_nick_from_host", "irc_nick_from_host",
N_("get nick from IRC host"), N_("get nick from IRC host"),
N_("IRC host (like `:nick!name@server`)"), N_("IRC host (like `:nick!name@server.com`)"),
&irc_info_info_irc_nick_from_host_cb, NULL, NULL); &irc_info_info_irc_nick_from_host_cb, NULL, NULL);
weechat_hook_info ( weechat_hook_info (
"irc_nick_color", "irc_nick_color",
+1 -1
View File
@@ -457,7 +457,7 @@ irc_input_send_cb (const void *pointer, void *data,
const char *type_data, void *signal_data) const char *type_data, void *signal_data)
{ {
const char *ptr_string, *ptr_message; const char *ptr_string, *ptr_message;
const char *pos_semicol1, *pos_semicol2, *pos_semicol3, *pos_semicol4; char *pos_semicol1, *pos_semicol2, *pos_semicol3, *pos_semicol4;
char *server, *channel, *options, *tags, *data_with_colors, **list_options; char *server, *channel, *options, *tags, *data_with_colors, **list_options;
int i, num_options, flags, force_user_message; int i, num_options, flags, force_user_message;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
+22 -16
View File
@@ -234,8 +234,9 @@ int
irc_list_channel_match_filter (struct t_irc_server *server, irc_list_channel_match_filter (struct t_irc_server *server,
struct t_irc_list_channel *channel) struct t_irc_list_channel *channel)
{ {
char *result; char *error, *result;
int match, number; long number;
int match;
/* no filter? then any channel is matching */ /* no filter? then any channel is matching */
if (!server->list->filter) if (!server->list->filter)
@@ -279,22 +280,25 @@ irc_list_channel_match_filter (struct t_irc_server *server,
else if (strncmp (server->list->filter, "u:>", 3) == 0) else if (strncmp (server->list->filter, "u:>", 3) == 0)
{ {
/* filter by users (> N)*/ /* filter by users (> N)*/
if (weechat_util_parse_int (server->list->filter + 3, 10, &number) error = NULL;
&& (channel->users > number)) number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users > (int)number)
return 1; return 1;
} }
else if (strncmp (server->list->filter, "u:<", 3) == 0) else if (strncmp (server->list->filter, "u:<", 3) == 0)
{ {
/* filter by users (< N)*/ /* filter by users (< N)*/
if (weechat_util_parse_int (server->list->filter + 3, 10, &number) error = NULL;
&& (channel->users < number)) number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users < (int)number)
return 1; return 1;
} }
else if (strncmp (server->list->filter, "u:", 2) == 0) else if (strncmp (server->list->filter, "u:", 2) == 0)
{ {
/* filter by users */ /* filter by users */
if (weechat_util_parse_int (server->list->filter + 2, 10, &number) error = NULL;
&& (channel->users >= number)) number = strtol (server->list->filter + 2, &error, 10);
if (error && !error[0] && channel->users >= (int)number)
return 1; return 1;
} }
else else
@@ -371,9 +375,10 @@ int
irc_list_parse_messages (struct t_irc_server *server, const char *output) irc_list_parse_messages (struct t_irc_server *server, const char *output)
{ {
struct t_irc_list_channel *channel; struct t_irc_list_channel *channel;
char **irc_msgs, *command, **params; char **irc_msgs, *command, **params, *error;
const char *ptr_name; const char *ptr_name;
int i, count_irc_msgs, num_params, length, keep_colors, number; int i, count_irc_msgs, num_params, length, keep_colors;
long number;
if (server->list->channels) if (server->list->channels)
{ {
@@ -434,9 +439,9 @@ irc_list_parse_messages (struct t_irc_server *server, const char *output)
ptr_name++; ptr_name++;
} }
channel->name2 = strdup (ptr_name); channel->name2 = strdup (ptr_name);
if (!weechat_util_parse_int (params[2], 10, &number)) error = NULL;
number = 0; number = strtol (params[2], &error, 10);
channel->users = number; channel->users = (error && !error[0]) ? number : 0;
channel->topic = (num_params > 3) ? channel->topic = (num_params > 3) ?
irc_color_decode (params[3], keep_colors) : NULL; irc_color_decode (params[3], keep_colors) : NULL;
length = weechat_utf8_strlen_screen (channel->name); length = weechat_utf8_strlen_screen (channel->name);
@@ -476,9 +481,10 @@ irc_list_buffer_set_title (struct t_irc_server *server)
snprintf (str_title, sizeof (str_title), snprintf (str_title, sizeof (str_title),
_("%d channels (total: %d) | Filter: %s | Sort: %s | " _("%d channels (total: %d) | Filter: %s | Sort: %s | "
"Keys: ctrl+j=join channel | " "Key(input): "
"Input: $=refresh, s:x,y=sort, words=filter, *=reset filter, " "ctrl+j=join channel, "
"q=close buffer"), "($)=refresh, "
"(q)=close buffer"),
num_channels, num_channels,
num_channels_total, num_channels_total,
(server->list->filter) ? server->list->filter : "*", (server->list->filter) ? server->list->filter : "*",
+15 -12
View File
@@ -598,7 +598,8 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
{ {
struct t_hashtable *values; struct t_hashtable *values;
const char *ptr_value; const char *ptr_value;
int number; char *error;
long number;
if (!server) if (!server)
return; return;
@@ -616,14 +617,18 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
ptr_value = (const char *)weechat_hashtable_get (values, "max-bytes"); ptr_value = (const char *)weechat_hashtable_get (values, "max-bytes");
if (ptr_value) if (ptr_value)
{ {
if (weechat_util_parse_int (ptr_value, 10, &number)) error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_bytes = number; server->multiline_max_bytes = number;
} }
ptr_value = (const char *)weechat_hashtable_get (values, "max-lines"); ptr_value = (const char *)weechat_hashtable_get (values, "max-lines");
if (ptr_value) if (ptr_value)
{ {
if (weechat_util_parse_int (ptr_value, 10, &number)) error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_lines = number; server->multiline_max_lines = number;
} }
@@ -702,8 +707,8 @@ const char *
irc_message_get_nick_from_host (const char *host) irc_message_get_nick_from_host (const char *host)
{ {
static char nick[128]; static char nick[128];
char host2[128]; char host2[128], *pos_space, *pos;
const char *ptr_host, *pos_space, *pos; const char *ptr_host;
if (!host) if (!host)
return NULL; return NULL;
@@ -751,8 +756,8 @@ const char *
irc_message_get_address_from_host (const char *host) irc_message_get_address_from_host (const char *host)
{ {
static char address[256]; static char address[256];
char host2[256]; char host2[256], *pos_space, *pos;
const char *ptr_host, *pos_space, *pos; const char *ptr_host;
if (!host) if (!host)
return NULL; return NULL;
@@ -1177,9 +1182,8 @@ irc_message_split_join (struct t_irc_message_split_context *context,
{ {
int channels_count, keys_count, length, length_no_channel; int channels_count, keys_count, length, length_no_channel;
int length_to_add, index_channel; int length_to_add, index_channel;
char **channels, **keys, *str; char **channels, **keys, *pos, *str;
char msg_to_send[16384], keys_to_add[16384]; char msg_to_send[16384], keys_to_add[16384];
const char *pos;
max_length -= 2; /* by default: 512 - 2 = 510 bytes */ max_length -= 2; /* by default: 512 - 2 = 510 bytes */
@@ -1506,7 +1510,7 @@ irc_message_split_privmsg_notice (struct t_irc_message_split_context *context,
int int
irc_message_split_005 (struct t_irc_message_split_context *context, irc_message_split_005 (struct t_irc_message_split_context *context,
const char *tags, const char *host, const char *command, const char *tags, const char *host, const char *command,
const char *target, char *arguments, const char *target, const char *arguments,
int max_length) int max_length)
{ {
char *pos, suffix[4096]; char *pos, suffix[4096];
@@ -1566,8 +1570,7 @@ irc_message_split (struct t_irc_server *server, const char *message)
{ {
struct t_irc_message_split_context split_context; struct t_irc_message_split_context split_context;
char **argv, **argv_eol, *tags, *host, *command, *arguments, target[4096]; char **argv, **argv_eol, *tags, *host, *command, *arguments, target[4096];
char monitor_action[3]; char *pos, monitor_action[3];
const char *pos;
int split_ok, split_privmsg, argc, index_args, max_length_nick; int split_ok, split_privmsg, argc, index_args, max_length_nick;
int max_length_user, max_length_host, max_length_nick_user_host; int max_length_user, max_length_host, max_length_nick_user_host;
int split_msg_max_length, multiline, multiline_max_bytes; int split_msg_max_length, multiline, multiline_max_bytes;
+2 -2
View File
@@ -104,8 +104,8 @@ irc_mode_get_arguments_colors (const char *arguments)
char char
irc_mode_get_chanmode_type (struct t_irc_server *server, char chanmode) irc_mode_get_chanmode_type (struct t_irc_server *server, char chanmode)
{ {
char chanmode_type; char chanmode_type, *pos;
const char *chanmodes, *ptr_chanmodes, *pos; const char *chanmodes, *ptr_chanmodes;
/* /*
* assume it is type 'B' if mode is in prefix * assume it is type 'B' if mode is in prefix
+3 -2
View File
@@ -785,8 +785,9 @@ int
irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal, irc_notify_hsignal_cb (const void *pointer, void *data, const char *signal,
struct t_hashtable *hashtable) struct t_hashtable *hashtable)
{ {
const char *error, *server, *pattern, *command, *output, *ptr_args; const char *error, *server, *pattern, *command, *output;
char **messages, **nicks_sent, **nicks_recv, *irc_cmd, *arguments, *pos; char **messages, **nicks_sent, **nicks_recv, *irc_cmd, *arguments;
char *ptr_args, *pos;
int i, j, num_messages, num_nicks_sent, num_nicks_recv, nick_was_sent; int i, j, num_messages, num_nicks_sent, num_nicks_recv, nick_was_sent;
int away_message_updated, no_such_nick; int away_message_updated, no_such_nick;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
+31 -19
View File
@@ -2499,8 +2499,8 @@ IRC_PROTOCOL_CALLBACK(note)
IRC_PROTOCOL_CALLBACK(notice) IRC_PROTOCOL_CALLBACK(notice)
{ {
char *notice_args, end_char, *channel, str_tags[1024]; char *notice_args, *pos, end_char, *channel, str_tags[1024];
const char *pos, *pos_target, *pos_args, *nick_address; const char *pos_target, *pos_args, *nick_address;
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick; struct t_irc_nick *ptr_nick;
int notify_private, is_channel, is_channel_orig, display_host; int notify_private, is_channel, is_channel_orig, display_host;
@@ -4061,8 +4061,9 @@ IRC_PROTOCOL_CALLBACK(001)
IRC_PROTOCOL_CALLBACK(005) IRC_PROTOCOL_CALLBACK(005)
{ {
char *str_info, *isupport2; char *str_info, *error, *isupport2;
int i, arg_last, length_isupport, length, casemapping, utf8mapping, value; int i, arg_last, length_isupport, length, casemapping, utf8mapping;
long value;
IRC_PROTOCOL_MIN_PARAMS(2); IRC_PROTOCOL_MIN_PARAMS(2);
@@ -4080,26 +4081,34 @@ IRC_PROTOCOL_CALLBACK(005)
else if (strncmp (ctxt->params[i], "LINELEN=", 8) == 0) else if (strncmp (ctxt->params[i], "LINELEN=", 8) == 0)
{ {
/* save max message length */ /* save max message length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) error = NULL;
ctxt->server->msg_max_length = value; value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->msg_max_length = (int)value;
} }
else if (strncmp (ctxt->params[i], "NICKLEN=", 8) == 0) else if (strncmp (ctxt->params[i], "NICKLEN=", 8) == 0)
{ {
/* save max nick length */ /* save max nick length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) error = NULL;
ctxt->server->nick_max_length = value; value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->nick_max_length = (int)value;
} }
else if (strncmp (ctxt->params[i], "USERLEN=", 8) == 0) else if (strncmp (ctxt->params[i], "USERLEN=", 8) == 0)
{ {
/* save max user length */ /* save max user length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) error = NULL;
ctxt->server->user_max_length = value; value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->user_max_length = (int)value;
} }
else if (strncmp (ctxt->params[i], "HOSTLEN=", 8) == 0) else if (strncmp (ctxt->params[i], "HOSTLEN=", 8) == 0)
{ {
/* save max host length */ /* save max host length */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) error = NULL;
ctxt->server->host_max_length = value; value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->host_max_length = (int)value;
} }
else if (strncmp (ctxt->params[i], "CASEMAPPING=", 12) == 0) else if (strncmp (ctxt->params[i], "CASEMAPPING=", 12) == 0)
{ {
@@ -4135,8 +4144,10 @@ IRC_PROTOCOL_CALLBACK(005)
else if (strncmp (ctxt->params[i], "MONITOR=", 8) == 0) else if (strncmp (ctxt->params[i], "MONITOR=", 8) == 0)
{ {
/* save monitor (limit) */ /* save monitor (limit) */
if (weechat_util_parse_int (ctxt->params[i] + 8, 10, &value) && (value > 0)) error = NULL;
ctxt->server->monitor = value; value = strtol (ctxt->params[i] + 8, &error, 10);
if (error && !error[0] && (value > 0))
ctxt->server->monitor = (int)value;
} }
else if (strncmp (ctxt->params[i], "CLIENTTAGDENY=", 14) == 0) else if (strncmp (ctxt->params[i], "CLIENTTAGDENY=", 14) == 0)
{ {
@@ -7910,11 +7921,12 @@ irc_protocol_recv_command (struct t_irc_server *server,
int ignore_batch_tag) int ignore_batch_tag)
{ {
int i, cmd_found, return_code, ignored; int i, cmd_found, return_code, ignored;
char *pos_space, *tags;
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
t_irc_recv_func *cmd_recv_func; t_irc_recv_func *cmd_recv_func;
const char *ptr_msg_after_tags, *ptr_batch_ref, *ptr_tag_time; const char *ptr_msg_after_tags, *ptr_batch_ref, *ptr_tag_time;
const char *pos_space, *nick1, *address1, *host1; const char *nick1, *address1, *host1;
char *tags, *host, *host_no_color, *pos_space_host; char *host, *host_no_color;
struct t_irc_protocol_ctxt ctxt; struct t_irc_protocol_ctxt ctxt;
struct timeval tv; struct timeval tv;
@@ -8186,9 +8198,9 @@ irc_protocol_recv_command (struct t_irc_server *server,
host = (host1) ? strdup (host1) : NULL; host = (host1) ? strdup (host1) : NULL;
if (host) if (host)
{ {
pos_space_host = strchr (host, ' '); pos_space = strchr (host, ' ');
if (pos_space_host) if (pos_space)
pos_space_host[0] = '\0'; pos_space[0] = '\0';
} }
host_no_color = (host) ? irc_color_decode (host, 0) : NULL; host_no_color = (host) ? irc_color_decode (host, 0) : NULL;
ctxt.host = (host) ? ctxt.host = (host) ?
+18 -7
View File
@@ -404,8 +404,9 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
const char *cmd_filter) const char *cmd_filter)
{ {
struct t_irc_redirect *new_redirect; struct t_irc_redirect *new_redirect;
char **items[4], *item_upper, *pos; char **items[4], *item_upper, *pos, *error;
int i, j, num_items[4], value; int i, j, num_items[4];
long value;
struct t_hashtable *hash_cmd[4]; struct t_hashtable *hash_cmd[4];
new_redirect = malloc (sizeof (*new_redirect)); new_redirect = malloc (sizeof (*new_redirect));
@@ -459,7 +460,9 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
if (pos) if (pos)
{ {
pos[0] = '\0'; pos[0] = '\0';
if (!weechat_util_parse_int (pos + 1, 10, &value)) error = NULL;
value = strtol (pos + 1, &error, 10);
if (!error || error[0])
value = -1; value = -1;
} }
item_upper = weechat_string_toupper (items[i][j]); item_upper = weechat_string_toupper (items[i][j]);
@@ -613,7 +616,7 @@ void
irc_redirect_init_command (struct t_irc_redirect *redirect, irc_redirect_init_command (struct t_irc_redirect *redirect,
const char *command) const char *command)
{ {
const char *pos; char *pos;
if (!redirect) if (!redirect)
return; return;
@@ -1254,6 +1257,7 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data,
struct t_hashtable *hashtable) struct t_hashtable *hashtable)
{ {
const char *pattern, *str_timeout, *cmd_start, *cmd_stop, *cmd_extra; const char *pattern, *str_timeout, *cmd_start, *cmd_stop, *cmd_extra;
char *error;
int number, timeout; int number, timeout;
/* make C compiler happy */ /* make C compiler happy */
@@ -1291,7 +1295,9 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data,
timeout = 0; timeout = 0;
if (str_timeout && str_timeout[0]) if (str_timeout && str_timeout[0])
{ {
if (weechat_util_parse_int (str_timeout, 10, &number)) error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number; timeout = number;
} }
@@ -1319,6 +1325,7 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
{ {
const char *server, *pattern, *redirect_signal, *str_count, *string; const char *server, *pattern, *redirect_signal, *str_count, *string;
const char *str_timeout, *cmd_filter; const char *str_timeout, *cmd_filter;
char *error;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
int number, count, timeout; int number, count, timeout;
@@ -1359,14 +1366,18 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
count = 1; count = 1;
if (str_count && str_count[0]) if (str_count && str_count[0])
{ {
if (weechat_util_parse_int (str_count, 10, &number)) error = NULL;
number = (int)strtol (str_count, &error, 10);
if (error && !error[0])
count = number; count = number;
} }
timeout = 0; timeout = 0;
if (str_timeout && str_timeout[0]) if (str_timeout && str_timeout[0])
{ {
if (weechat_util_parse_int (str_timeout, 10, &number)) error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number; timeout = number;
} }
+7 -5
View File
@@ -109,7 +109,7 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
const char *sasl_password, const char *sasl_password,
char **sasl_error) char **sasl_error)
{ {
char *answer_base64, *string, *username, *username2, *data, **attrs; char *answer_base64, *string, *username, *username2, *data, **attrs, *error;
char nonce_client[18], nonce_client_base64[24 + 1], *nonce_server; char nonce_client[18], nonce_client_base64[24 + 1], *nonce_server;
char *salt_base64, *salt, *verifier_base64, *verifier, *attr_error; char *salt_base64, *salt, *verifier_base64, *verifier, *attr_error;
char *auth_no_proof, *auth_message; char *auth_no_proof, *auth_message;
@@ -117,10 +117,10 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
char client_signature[512 / 8], client_proof[512 / 8]; char client_signature[512 / 8], client_proof[512 / 8];
char client_proof_base64[((512 / 8) * 4) + 1], server_key[512 / 8]; char client_proof_base64[((512 / 8) * 4) + 1], server_key[512 / 8];
char server_signature[512 / 8]; char server_signature[512 / 8];
int i, rc, length, num_attrs, iterations, number; int i, rc, length, num_attrs, iterations, salt_size, salted_password_size;
int salt_size, salted_password_size;
int client_key_size, stored_key_size, client_signature_size; int client_key_size, stored_key_size, client_signature_size;
int server_key_size, server_signature_size, verifier_size; int server_key_size, server_signature_size, verifier_size;
long number;
if (!server || !hash_algo || !data_base64 || !sasl_username if (!server || !hash_algo || !data_base64 || !sasl_username
|| !sasl_password) || !sasl_password)
@@ -202,8 +202,10 @@ irc_sasl_mechanism_scram (struct t_irc_server *server,
} }
else if (strncmp (attrs[i], "i=", 2) == 0) else if (strncmp (attrs[i], "i=", 2) == 0)
{ {
if (weechat_util_parse_int (attrs[i] + 2, 10, &number)) error = NULL;
iterations = number; number = strtol (attrs[i] + 2, &error, 10);
if (error && !error[0])
iterations = (int)number;
} }
else if (strncmp (attrs[i], "v=", 2) == 0) else if (strncmp (attrs[i], "v=", 2) == 0)
{ {
+169 -155
View File
@@ -588,7 +588,7 @@ irc_server_sasl_enabled (struct t_irc_server *server)
char * char *
irc_server_get_name_without_port (const char *name) irc_server_get_name_without_port (const char *name)
{ {
const char *pos; char *pos;
if (!name) if (!name)
return NULL; return NULL;
@@ -676,9 +676,10 @@ int
irc_server_set_addresses (struct t_irc_server *server, const char *addresses, irc_server_set_addresses (struct t_irc_server *server, const char *addresses,
int tls) int tls)
{ {
int rc, i, default_port, number; int rc, i, default_port;
char *pos, *addresses_eval; char *pos, *error, *addresses_eval;
const char *ptr_addresses; const char *ptr_addresses;
long number;
if (!server) if (!server)
return 0; return 0;
@@ -752,14 +753,19 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses,
server->addresses_count * sizeof (server->retry_array[0])); server->addresses_count * sizeof (server->retry_array[0]));
for (i = 0; i < server->addresses_count; i++) for (i = 0; i < server->addresses_count; i++)
{ {
server->ports_array[i] = default_port;
pos = strchr (server->addresses_array[i], '/'); pos = strchr (server->addresses_array[i], '/');
if (pos) if (pos)
{ {
pos[0] = 0; pos[0] = 0;
pos++; pos++;
if (weechat_util_parse_int (pos, 10, &number)) error = NULL;
server->ports_array[i] = number; number = strtol (pos, &error, 10);
server->ports_array[i] = (error && !error[0]) ?
number : default_port;
}
else
{
server->ports_array[i] = default_port;
} }
server->retry_array[i] = 0; server->retry_array[i] = 0;
} }
@@ -1128,7 +1134,7 @@ void
irc_server_set_prefix_modes_chars (struct t_irc_server *server, irc_server_set_prefix_modes_chars (struct t_irc_server *server,
const char *prefix) const char *prefix)
{ {
const char *pos; char *pos;
int i, old_length_chars, length_modes, length_chars; int i, old_length_chars, length_modes, length_chars;
if (!server || !prefix) if (!server || !prefix)
@@ -1373,7 +1379,8 @@ irc_server_get_prefix_chars (struct t_irc_server *server)
int int
irc_server_get_prefix_mode_index (struct t_irc_server *server, char mode) irc_server_get_prefix_mode_index (struct t_irc_server *server, char mode)
{ {
const char *prefix_modes, *pos; const char *prefix_modes;
char *pos;
if (server) if (server)
{ {
@@ -1398,7 +1405,8 @@ int
irc_server_get_prefix_char_index (struct t_irc_server *server, irc_server_get_prefix_char_index (struct t_irc_server *server,
char prefix_char) char prefix_char)
{ {
const char *prefix_chars, *pos; const char *prefix_chars;
char *pos;
if (server) if (server)
{ {
@@ -1512,14 +1520,18 @@ int
irc_server_get_max_modes (struct t_irc_server *server) irc_server_get_max_modes (struct t_irc_server *server)
{ {
const char *support_modes; const char *support_modes;
int max_modes, number; char *error;
long number;
int max_modes;
max_modes = 4; max_modes = 4;
support_modes = irc_server_get_isupport_value (server, "MODES"); support_modes = irc_server_get_isupport_value (server, "MODES");
if (support_modes) if (support_modes)
{ {
if (weechat_util_parse_int (support_modes, 10, &number)) error = NULL;
number = strtol (support_modes, &error, 10);
if (error && !error[0])
{ {
max_modes = number; max_modes = number;
if (max_modes < 1) if (max_modes < 1)
@@ -2431,8 +2443,8 @@ irc_server_copy (struct t_irc_server *server, const char *new_name)
{ {
struct t_irc_server *new_server; struct t_irc_server *new_server;
struct t_infolist *infolist; struct t_infolist *infolist;
const char *option_name, *pos; char *mask, *pos;
char *mask; const char *option_name;
int index_option; int index_option;
/* check if another server exists with this name */ /* check if another server exists with this name */
@@ -2490,9 +2502,9 @@ irc_server_copy (struct t_irc_server *server, const char *new_name)
int int
irc_server_rename (struct t_irc_server *server, const char *new_name) irc_server_rename (struct t_irc_server *server, const char *new_name)
{ {
char *mask, *new_option_name, charset_modifier[1024]; char *mask, *pos_option, *new_option_name, charset_modifier[1024];
char *buffer_name; char *buffer_name;
const char *option_name, *pos_option; const char *option_name;
struct t_infolist *infolist; struct t_infolist *infolist;
struct t_config_option *ptr_option; struct t_config_option *ptr_option;
struct t_irc_channel *ptr_channel; struct t_irc_channel *ptr_channel;
@@ -2987,8 +2999,8 @@ irc_server_send_one_msg (struct t_irc_server *server, int flags,
const char *tags) const char *tags)
{ {
static char buffer[4096]; static char buffer[4096];
const char *ptr_chan_nick; const char *ptr_msg, *ptr_chan_nick;
char *new_msg, *ptr_msg, *pos, *tags_to_send, *msg_encoded; char *new_msg, *pos, *tags_to_send, *msg_encoded;
char str_modifier[128], modifier_data[1024]; char str_modifier[128], modifier_data[1024];
int first_message, queue_msg, pos_channel, pos_text, pos_encode; int first_message, queue_msg, pos_channel, pos_text, pos_encode;
struct t_irc_redirect *ptr_redirect; struct t_irc_redirect *ptr_redirect;
@@ -3001,148 +3013,150 @@ irc_server_send_one_msg (struct t_irc_server *server, int flags,
server->name, server->name,
message); message);
/* message dropped? */ /* no changes in new message */
if (new_msg && !new_msg[0]) if (new_msg && (strcmp (message, new_msg) == 0))
{
free (new_msg);
new_msg = NULL;
}
/* message not dropped? */
if (!new_msg || new_msg[0])
{
first_message = 1;
ptr_msg = (new_msg) ? new_msg : message;
msg_encoded = NULL;
irc_message_parse (server,
ptr_msg,
NULL, /* tags */
NULL, /* message_without_tags */
NULL, /* nick */
NULL, /* user */
NULL, /* host */
NULL, /* command */
NULL, /* channel */
NULL, /* arguments */
NULL, /* text */
NULL, /* params */
NULL, /* num_params */
NULL, /* pos_command */
NULL, /* pos_arguments */
&pos_channel,
&pos_text);
switch (IRC_SERVER_OPTION_ENUM(server,
IRC_SERVER_OPTION_CHARSET_MESSAGE))
{
case IRC_SERVER_CHARSET_MESSAGE_MESSAGE:
pos_encode = 0;
break;
case IRC_SERVER_CHARSET_MESSAGE_CHANNEL:
pos_encode = (pos_channel >= 0) ? pos_channel : pos_text;
break;
case IRC_SERVER_CHARSET_MESSAGE_TEXT:
pos_encode = pos_text;
break;
default:
pos_encode = 0;
break;
}
if (pos_encode >= 0)
{
ptr_chan_nick = (channel) ? channel : nick;
if (ptr_chan_nick)
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s.%s",
weechat_plugin->name,
server->name,
ptr_chan_nick);
}
else
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s",
weechat_plugin->name,
server->name);
}
/*
* when UTF8ONLY is enabled, clients must not send non-UTF-8 data
* to the server; the charset encoding below is then done only if
* UTF8ONLY is *NOT* enabled
* (see: https://ircv3.net/specs/extensions/utf8-only)
*/
if (!server->utf8only)
{
msg_encoded = irc_message_convert_charset (ptr_msg, pos_encode,
"charset_encode",
modifier_data);
}
}
if (msg_encoded)
ptr_msg = msg_encoded;
while (ptr_msg && ptr_msg[0])
{
pos = strchr (ptr_msg, '\n');
if (pos)
pos[0] = '\0';
snprintf (buffer, sizeof (buffer), "%s\r\n", ptr_msg);
if (flags & IRC_SERVER_SEND_OUTQ_PRIO_IMMEDIATE)
queue_msg = 0;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_HIGH)
queue_msg = 1;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_LOW)
queue_msg = 2;
else
{
/*
* if connected to server (message 001 received), consider
* it's low priority (otherwise send immediately)
*/
queue_msg = (server->is_connected) ? 2 : 0;
}
tags_to_send = irc_server_get_tags_to_send (tags);
ptr_redirect = irc_redirect_search_available (server);
/* queue message (do not send anything now) */
irc_server_outqueue_add (server,
queue_msg,
command,
(new_msg && first_message) ? message : NULL,
buffer,
(new_msg) ? 1 : 0,
tags_to_send,
ptr_redirect);
/* mark redirect as "used" */
if (ptr_redirect)
ptr_redirect->assigned_to_command = 1;
free (tags_to_send);
if (pos)
{
pos[0] = '\n';
ptr_msg = pos + 1;
}
else
ptr_msg = NULL;
first_message = 0;
}
free (msg_encoded);
}
else
{ {
irc_raw_print (server, IRC_RAW_FLAG_SEND | IRC_RAW_FLAG_MODIFIED, irc_raw_print (server, IRC_RAW_FLAG_SEND | IRC_RAW_FLAG_MODIFIED,
_("(message dropped)")); _("(message dropped)"));
free (new_msg);
return;
} }
if (!new_msg)
new_msg = strdup (message);
if (!new_msg)
return;
first_message = 1;
ptr_msg = new_msg;
msg_encoded = NULL;
irc_message_parse (server,
ptr_msg,
NULL, /* tags */
NULL, /* message_without_tags */
NULL, /* nick */
NULL, /* user */
NULL, /* host */
NULL, /* command */
NULL, /* channel */
NULL, /* arguments */
NULL, /* text */
NULL, /* params */
NULL, /* num_params */
NULL, /* pos_command */
NULL, /* pos_arguments */
&pos_channel,
&pos_text);
switch (IRC_SERVER_OPTION_ENUM(server,
IRC_SERVER_OPTION_CHARSET_MESSAGE))
{
case IRC_SERVER_CHARSET_MESSAGE_MESSAGE:
pos_encode = 0;
break;
case IRC_SERVER_CHARSET_MESSAGE_CHANNEL:
pos_encode = (pos_channel >= 0) ? pos_channel : pos_text;
break;
case IRC_SERVER_CHARSET_MESSAGE_TEXT:
pos_encode = pos_text;
break;
default:
pos_encode = 0;
break;
}
if (pos_encode >= 0)
{
ptr_chan_nick = (channel) ? channel : nick;
if (ptr_chan_nick)
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s.%s",
weechat_plugin->name,
server->name,
ptr_chan_nick);
}
else
{
snprintf (modifier_data, sizeof (modifier_data),
"%s.%s",
weechat_plugin->name,
server->name);
}
/*
* when UTF8ONLY is enabled, clients must not send non-UTF-8 data
* to the server; the charset encoding below is then done only if
* UTF8ONLY is *NOT* enabled
* (see: https://ircv3.net/specs/extensions/utf8-only)
*/
if (!server->utf8only)
{
msg_encoded = irc_message_convert_charset (ptr_msg, pos_encode,
"charset_encode",
modifier_data);
}
}
if (msg_encoded)
ptr_msg = msg_encoded;
while (ptr_msg && ptr_msg[0])
{
pos = strchr (ptr_msg, '\n');
if (pos)
pos[0] = '\0';
snprintf (buffer, sizeof (buffer), "%s\r\n", ptr_msg);
if (flags & IRC_SERVER_SEND_OUTQ_PRIO_IMMEDIATE)
queue_msg = 0;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_HIGH)
queue_msg = 1;
else if (flags & IRC_SERVER_SEND_OUTQ_PRIO_LOW)
queue_msg = 2;
else
{
/*
* if connected to server (message 001 received), consider
* it's low priority (otherwise send immediately)
*/
queue_msg = (server->is_connected) ? 2 : 0;
}
tags_to_send = irc_server_get_tags_to_send (tags);
ptr_redirect = irc_redirect_search_available (server);
/* queue message (do not send anything now) */
irc_server_outqueue_add (server,
queue_msg,
command,
(new_msg && first_message) ? message : NULL,
buffer,
(new_msg) ? 1 : 0,
tags_to_send,
ptr_redirect);
/* mark redirect as "used" */
if (ptr_redirect)
ptr_redirect->assigned_to_command = 1;
free (tags_to_send);
if (pos)
{
pos[0] = '\n';
ptr_msg = pos + 1;
}
else
ptr_msg = NULL;
first_message = 0;
}
free (msg_encoded);
free (new_msg); free (new_msg);
} }
@@ -3436,7 +3450,7 @@ irc_server_msgq_add_unterminated (struct t_irc_server *server,
*/ */
void void
irc_server_msgq_add_buffer (struct t_irc_server *server, char *buffer) irc_server_msgq_add_buffer (struct t_irc_server *server, const char *buffer)
{ {
char *pos_cr, *pos_lf; char *pos_cr, *pos_lf;
+1 -1
View File
@@ -427,7 +427,7 @@ extern struct t_arraylist *irc_server_sendf (struct t_irc_server *server,
const char *tags, const char *tags,
const char *format, ...); const char *format, ...);
extern void irc_server_msgq_add_buffer (struct t_irc_server *server, extern void irc_server_msgq_add_buffer (struct t_irc_server *server,
char *buffer); const char *buffer);
extern void irc_server_msgq_flush (void); extern void irc_server_msgq_flush (void);
extern void irc_server_set_buffer_title (struct t_irc_server *server); extern void irc_server_set_buffer_title (struct t_irc_server *server);
extern struct t_gui_buffer *irc_server_create_buffer (struct t_irc_server *server); extern struct t_gui_buffer *irc_server_create_buffer (struct t_irc_server *server);
+24 -13
View File
@@ -356,10 +356,11 @@ irc_upgrade_read_cb (const void *pointer, void *data,
int object_id, int object_id,
struct t_infolist *infolist) struct t_infolist *infolist)
{ {
int flags, sock, size, i, index, nicks_count, num_items, number, utf8mapping; int flags, sock, size, i, index, nicks_count, num_items, utf8mapping;
long long number_longlong; long number;
time_t join_time; time_t join_time;
char *buf, option_name[64], **nicks, *nick_join, *pos, **items; char *buf, option_name[64], **nicks, *nick_join, *pos, *error;
char **items;
const char *buffer_name, *str, *nick; const char *buffer_name, *str, *nick;
struct t_irc_server *ptr_server; struct t_irc_server *ptr_server;
struct t_irc_nick *ptr_nick; struct t_irc_nick *ptr_nick;
@@ -520,8 +521,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"LINELEN"); "LINELEN");
if (str) if (str)
{ {
if (weechat_util_parse_int (str, 10, &number)) error = NULL;
irc_upgrade_current_server->msg_max_length = number; number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->msg_max_length = (int)number;
} }
} }
irc_upgrade_current_server->nick_max_length = weechat_infolist_integer (infolist, "nick_max_length"); irc_upgrade_current_server->nick_max_length = weechat_infolist_integer (infolist, "nick_max_length");
@@ -537,8 +540,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"USERLEN"); "USERLEN");
if (str) if (str)
{ {
if (weechat_util_parse_int (str, 10, &number)) error = NULL;
irc_upgrade_current_server->user_max_length = number; number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->user_max_length = (int)number;
} }
} }
/* "host_max_length" is new in WeeChat 2.6 */ /* "host_max_length" is new in WeeChat 2.6 */
@@ -553,8 +558,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"HOSTLEN"); "HOSTLEN");
if (str) if (str)
{ {
if (weechat_util_parse_int (str, 10, &number)) error = NULL;
irc_upgrade_current_server->host_max_length = number; number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->host_max_length = (int)number;
} }
} }
irc_upgrade_current_server->casemapping = weechat_infolist_integer (infolist, "casemapping"); irc_upgrade_current_server->casemapping = weechat_infolist_integer (infolist, "casemapping");
@@ -614,8 +621,10 @@ irc_upgrade_read_cb (const void *pointer, void *data,
"MONITOR"); "MONITOR");
if (str) if (str)
{ {
if (weechat_util_parse_int (str, 10, &number)) error = NULL;
irc_upgrade_current_server->monitor = number; number = strtol (str, &error, 10);
if (error && !error[0])
irc_upgrade_current_server->monitor = (int)number;
} }
} }
/* "clienttagdeny" is new in WeeChat 3.3 */ /* "clienttagdeny" is new in WeeChat 3.3 */
@@ -762,9 +771,11 @@ irc_upgrade_read_cb (const void *pointer, void *data,
pos - nicks[i]); pos - nicks[i]);
if (nick_join) if (nick_join)
{ {
if (weechat_util_parse_longlong (pos + 1, 10, &number_longlong)) error = NULL;
number = strtol (pos + 1, &error, 10);
if (error && !error[0])
{ {
join_time = (time_t)number_longlong; join_time = (time_t)number;
irc_channel_join_smart_filtered_add (irc_upgrade_current_channel, irc_channel_join_smart_filtered_add (irc_upgrade_current_channel,
nick_join, nick_join,
join_time); join_time);

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